From c336567dad48c5cdae0b442b58fae70a83b03e9b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 28 Jul 2018 17:38:38 +0200 Subject: gnu: postgresql: Fix finding extensions. * gnu/packages/patches/postgresql-disable-resolve_symlinks.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/databases.scm (postgresql)[source]: Use it. --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 60db25a60c..c3bc35a80a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1042,6 +1042,7 @@ dist_patch_DATA = \ %D%/packages/patches/plotutils-libpng-jmpbuf.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portmidi-modular-build.patch \ + %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ %D%/packages/patches/potrace-tests.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ -- cgit v1.2.3 From 4115e8ea3bd3d64e7e2c85c74a4ea12bf0a81241 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 4 Dec 2018 16:57:41 +0100 Subject: gnu: json-glib: Update to 1.4.4. * gnu/packages/patches/json-glib-fix-tests-32bit.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/gnome.scm (json-glib): Update to 1.4.4. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 5 +- .../patches/json-glib-fix-tests-32bit.patch | 174 --------------------- 3 files changed, 2 insertions(+), 178 deletions(-) delete mode 100644 gnu/packages/patches/json-glib-fix-tests-32bit.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 108ccdceda..003b75961b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -847,7 +847,6 @@ dist_patch_DATA = \ %D%/packages/patches/java-xerces-build_dont_unzip.patch \ %D%/packages/patches/java-xerces-xjavac_taskdef.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ - %D%/packages/patches/json-glib-fix-tests-32bit.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b497b965bc..9652f32fb0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2292,16 +2292,15 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.4.2") + (version "1.4.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches (search-patches "json-glib-fix-tests-32bit.patch")) (sha256 (base32 - "1j3dd2xj1l9fi12m1gpmfgf5p4c1w0i970m6k62k3is98yj0jxrd")))) + "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/patches/json-glib-fix-tests-32bit.patch b/gnu/packages/patches/json-glib-fix-tests-32bit.patch deleted file mode 100644 index 77ea134915..0000000000 --- a/gnu/packages/patches/json-glib-fix-tests-32bit.patch +++ /dev/null @@ -1,174 +0,0 @@ -Fix floating point issues on 32-bit platforms: - -https://gitlab.gnome.org/GNOME/json-glib/issues/27 - -This is an amalgamation of the following upstream commits: -https://gitlab.gnome.org/GNOME/json-glib/commit/70e2648e02232c1a439a7418388f18fee9afb3fe -https://gitlab.gnome.org/GNOME/json-glib/commit/675e27505776a1d77fa1ffd1974284890caec1f4 - -diff --git a/json-glib/tests/json-test-utils.h b/json-glib/tests/json-test-utils.h -new file mode 100644 -index 0000000..83a02c6 ---- /dev/null -+++ b/json-glib/tests/json-test-utils.h -@@ -0,0 +1,21 @@ -+#include -+#include -+#include -+#include -+#include -+ -+#define json_fuzzy_equals(n1,n2,epsilon) \ -+ (((n1) > (n2) ? ((n1) - (n2)) : ((n2) - (n1))) < (epsilon)) -+ -+#define json_assert_fuzzy_equals(n1,n2,epsilon) \ -+ G_STMT_START { \ -+ double __n1 = (n1), __n2 = (n2), __epsilon = (epsilon); \ -+ if (json_fuzzy_equals (__n1, __n2, __epsilon)) ; else { \ -+ g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ -+ #n1 " == " #n2 " (+/- " #epsilon ")", \ -+ __n1, "==", __n2, 'f'); \ -+ } \ -+ } G_STMT_END -+ -+#define json_assert_almost_equals(n1,n2) \ -+ json_assert_fuzzy_equals (n1, n2, DBL_EPSILON) -diff --git a/json-glib/tests/array.c b/json-glib/tests/array.c -index 98afeab..426cd72 100644 ---- a/json-glib/tests/array.c -+++ b/json-glib/tests/array.c -@@ -1,9 +1,4 @@ --#include --#include --#include -- --#include --#include -+#include "json-test-utils.h" - - static void - test_empty_array (void) -@@ -37,7 +32,7 @@ test_add_element (void) - - json_array_add_double_element (array, 3.14); - g_assert_cmpint (json_array_get_length (array), ==, 3); -- g_assert_cmpfloat (json_array_get_double_element (array, 2), ==, 3.14); -+ json_assert_fuzzy_equals (json_array_get_double_element (array, 2), 3.14, 0.001); - - json_array_add_boolean_element (array, TRUE); - g_assert_cmpint (json_array_get_length (array), ==, 4); -diff --git a/json-glib/tests/node.c b/json-glib/tests/node.c -index 23bda63..80beb78 100644 ---- a/json-glib/tests/node.c -+++ b/json-glib/tests/node.c -@@ -1,6 +1,4 @@ --#include --#include --#include -+#include "json-test-utils.h" - - static void - test_init_int (void) -@@ -19,7 +17,7 @@ test_init_double (void) - JsonNode *node = json_node_new (JSON_NODE_VALUE); - - json_node_set_double (node, 3.14159); -- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14159); -+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14159, 0.00001); - - json_node_free (node); - } -@@ -119,13 +117,13 @@ test_get_int (void) - - json_node_set_int (node, 0); - g_assert_cmpint (json_node_get_int (node), ==, 0); -- g_assert_cmpfloat (json_node_get_double (node), ==, 0.0); -+ json_assert_almost_equals (json_node_get_double (node), 0.0); - g_assert (!json_node_get_boolean (node)); - g_assert (!json_node_is_null (node)); - - json_node_set_int (node, 42); - g_assert_cmpint (json_node_get_int (node), ==, 42); -- g_assert_cmpfloat (json_node_get_double (node), ==, 42.0); -+ json_assert_almost_equals (json_node_get_double (node), 42.0); - g_assert (json_node_get_boolean (node)); - g_assert (!json_node_is_null (node)); - -@@ -138,7 +136,7 @@ test_get_double (void) - JsonNode *node = json_node_new (JSON_NODE_VALUE); - - json_node_set_double (node, 3.14); -- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14); -+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14, 0.001); - g_assert_cmpint (json_node_get_int (node), ==, 3); - g_assert (json_node_get_boolean (node)); - -@@ -232,9 +230,9 @@ test_gvalue_autopromotion (void) - g_print ("Expecting a gdouble, got a %s\n", g_type_name (G_VALUE_TYPE (&check))); - - g_assert_cmpint (G_VALUE_TYPE (&check), ==, G_TYPE_DOUBLE); -- g_assert_cmpfloat ((float) g_value_get_double (&check), ==, 3.14159f); -+ json_assert_fuzzy_equals (g_value_get_double (&check), 3.14159, 0.00001); - g_assert_cmpint (G_VALUE_TYPE (&value), !=, G_VALUE_TYPE (&check)); -- g_assert_cmpfloat ((gdouble) g_value_get_float (&value), ==, g_value_get_double (&check)); -+ json_assert_almost_equals (g_value_get_float (&value), g_value_get_double (&check)); - - g_value_unset (&value); - g_value_unset (&check); -diff --git a/json-glib/tests/parser.c b/json-glib/tests/parser.c -index f71584a..8c52a1d 100644 ---- a/json-glib/tests/parser.c -+++ b/json-glib/tests/parser.c -@@ -1,11 +1,5 @@ --#include "config.h" -- -+#include "json-test-utils.h" - #include --#include -- --#include -- --#include - - static const gchar *test_empty_string = ""; - static const gchar *test_empty_array_string = "[ ]"; -@@ -38,13 +32,13 @@ verify_string_value (JsonNode *node) - static void - verify_double_value (JsonNode *node) - { -- g_assert_cmpfloat (10.2e3, ==, json_node_get_double (node)); -+ json_assert_fuzzy_equals (10.2e3, json_node_get_double (node), 0.1); - } - - static void - verify_negative_double_value (JsonNode *node) - { -- g_assert_cmpfloat (-3.14, ==, json_node_get_double (node)); -+ json_assert_fuzzy_equals (-3.14, json_node_get_double (node), 0.01); - } - - static const struct { -diff --git a/json-glib/tests/reader.c b/json-glib/tests/reader.c -index 43a6aac..9bab312 100644 ---- a/json-glib/tests/reader.c -+++ b/json-glib/tests/reader.c -@@ -1,9 +1,4 @@ --#include --#include -- --#include -- --#include -+#include "json-test-utils.h" - - static const gchar *test_base_array_data = - "[ 0, true, null, \"foo\", 3.14, [ false ], { \"bar\" : 42 } ]"; -@@ -78,7 +73,7 @@ test_base_object (void) - g_assert (json_reader_get_error (reader) == NULL); - - json_reader_read_member (reader, "double"); -- g_assert_cmpfloat (json_reader_get_double_value (reader), ==, 42.47); -+ json_assert_fuzzy_equals (json_reader_get_double_value (reader), 42.47, 0.01); - json_reader_end_element (reader); - - g_object_unref (reader); -- cgit v1.2.3 From 143fc1a591c552b0464674cfebf8de63bdde7461 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 9 Dec 2018 00:40:05 +0100 Subject: gnu: poppler: Update to 0.72.0. * gnu/packages/patches/poppler-CVE-2018-19149.patch: Delete file. * gnu/packages/patches/inkscape-poppler-compat3.patch, gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch, gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch, gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch: New files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/pdf.scm (poppler): Update to 0.72.0. [replacement]: Remove field. (poppler/fixed): Remove variable. * gnu/packages/inkscape.scm (inkscape)[source](patches): Add 'inkscape-poppler-compat{3..5}.patch'. * gnu/packages/tex.scm (texlive-bin)[source](patches): Update 'texlive-poppler-compat.patch'. Add 'texlive-bin-{lua,pdf,xe}tex-poppler-compat.patch'. * gnu/packages/emacs.scm (emacs-pdf-tools)[source](modules, snippet): New fields. * gnu/packages/scribus.scm (scribus)[source](patches): Add upstream patch origins. [source](modules, snippet): New fields. * gnu/packages/libreoffice.scm (libreoffice)[source](patches): Add three upstream origins. [source](snippet, modules): New field. --- gnu/local.mk | 5 +- gnu/packages/emacs.scm | 10 +- gnu/packages/inkscape.scm | 19 +- gnu/packages/libreoffice.scm | 42 +- .../patches/inkscape-poppler-compat3.patch | 499 +++++++++++++++++++++ gnu/packages/patches/poppler-CVE-2018-19149.patch | 80 ---- .../texlive-bin-luatex-poppler-compat.patch | 318 +++++++++++++ .../texlive-bin-pdftex-poppler-compat.patch | 188 ++++++++ .../patches/texlive-bin-xetex-poppler-compat.patch | 31 ++ gnu/packages/pdf.scm | 13 +- gnu/packages/scribus.scm | 54 ++- gnu/packages/tex.scm | 10 +- 12 files changed, 1169 insertions(+), 100 deletions(-) create mode 100644 gnu/packages/patches/inkscape-poppler-compat3.patch delete mode 100644 gnu/packages/patches/poppler-CVE-2018-19149.patch create mode 100644 gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch create mode 100644 gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch create mode 100644 gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3f19b3fe79..6541bcc8be 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -832,6 +832,7 @@ dist_patch_DATA = \ %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ + %D%/packages/patches/inkscape-poppler-compat3.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ @@ -1061,7 +1062,6 @@ dist_patch_DATA = \ %D%/packages/patches/plink-endian-detection.patch \ %D%/packages/patches/plotutils-libpng-jmpbuf.patch \ %D%/packages/patches/podofo-cmake-3.12.patch \ - %D%/packages/patches/poppler-CVE-2018-19149.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ @@ -1186,6 +1186,9 @@ dist_patch_DATA = \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/texinfo-perl-compat.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \ + %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \ + %D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch \ + %D%/packages/patches/texlive-bin-xetex-poppler-compat.patch \ %D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index d8a9ffeaed..24446bfc9e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1634,7 +1634,15 @@ filters, new key bindings and faces. It can be enabled by (sha256 (base32 "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s")) - (patches (search-patches "emacs-pdf-tools-poppler.patch")))) + (patches (search-patches "emacs-pdf-tools-poppler.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; In addition to the above patch, we need this additional + ;; provision for compatibility with Poppler 0.72: + (substitute* "server/poppler-hack.cc" + (("getCString") "c_str")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 1673cc602e..eae8ac962b 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -71,7 +71,24 @@ (file-name "inkscape-poppler-compat2.patch") (sha256 (base32 - "14k9yrfjz4nx3bz9dk91q74mc0i7rvl2qzkwhcy1br71yqjvngn5"))))))) + "14k9yrfjz4nx3bz9dk91q74mc0i7rvl2qzkwhcy1br71yqjvngn5"))) + (search-patch "inkscape-poppler-compat3.patch") + (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/inkscape/inkscape/commit/" + "d047859d90cef3784e2d13e40887a70d8d517897.diff")) + (file-name "inkscape-poppler-compat4.patch") + (sha256 + (base32 + "0xdfg3q4g4m15z7wna4brjn5j4kr15qiqc2f25vcw2nnr6x54qcp"))) + (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/inkscape/inkscape/commit/" + "b3d59cc8106da3bf6020a6c47eeb3b8a7bbae1a9.diff")) + (file-name "inkscape-poppler-compat5.patch") + (sha256 + (base32 + "0haviy66q9szizmvb82msfj80bb3wgi1fnq3ml8fyfp8l90a1217"))))))) (build-system cmake-build-system) (inputs `(("aspell" ,aspell) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 45e2f63767..451adb0eff 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -984,9 +984,47 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") (file-name "libreoffice-mdds.patch") (sha256 (base32 - "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f")))) + "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f"))) + ;; The Poppler API changed rapidly in the versions leading 0.72. + ;; Thus, we need several patches from upstream, each adapting to + ;; different Poppler changes since version 0.68. + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "1688a395d05125b83eac6cd5c43f0e3f2f66c491" + ".patch")) + (file-name "libreoffice-poppler-compat.patch") + (sha256 + (base32 + "0ia5avmj772mrgs6m4qqf01hs8hzpy3nafidj7w7gqx2zz2s5ih9"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "5e8bdd9203dd642111c62a6668ee665a20d4ba19" + ".patch")) + (file-name "libreoffice-poppler-gbool.patch") + (sha256 + (base32 + "19kc74h5vnk48l2vny8zmm2lkxpwc7g8n9d3wwpg99748dvbmikd"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/LibreOffice/core/commit/" + "8ff41a26caf51544699863c89598d37d93dc1b21" + ".patch")) + (file-name "libreoffice-poppler-0.71.patch") + (sha256 + (base32 + "1dsd0gynjf7d6412dd2sx70xa2s8kld7ibyjdkwg5w9hhi2zxw2f")))) (search-patches "libreoffice-icu.patch" - "libreoffice-glm.patch"))))) + "libreoffice-glm.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (file) + ;; Adjust to renamed function in Poppler 0.72. + (substitute* file (("getCString") "c_str"))) + (find-files "sdext/source/pdfimport/xpdfwrapper")) + #t)))) (build-system glib-or-gtk-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/patches/inkscape-poppler-compat3.patch b/gnu/packages/patches/inkscape-poppler-compat3.patch new file mode 100644 index 0000000000..eaaf7d93f1 --- /dev/null +++ b/gnu/packages/patches/inkscape-poppler-compat3.patch @@ -0,0 +1,499 @@ +Fix compatibility with Poppler >= 0.69. + +This is a combination of these upstream commits: +https://gitlab.com/inkscape/inkscape/commit/722e121361d0f784083d10e897155b7d4e44e515 +https://gitlab.com/inkscape/inkscape/commit/402c0274420fe39fd2f3393bc7d8d8879d436358 + +...with slight adjustments for the 0.92.3 release tarball. + +diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake +--- a/CMakeScripts/DefineDependsandFlags.cmake ++++ b/CMakeScripts/DefineDependsandFlags.cmake +@@ -116,18 +116,6 @@ if(ENABLE_POPPLER) + set(HAVE_POPPLER_GLIB ON) + endif() + endif() +- if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.26.0") +- set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) +- endif() +- if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.29.0") +- set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) +- endif() +- if(POPPLER_VERSION VERSION_GREATER "0.58.0" OR +- POPPLER_VERSION VERSION_EQUAL "0.58.0") +- set(POPPLER_NEW_OBJECT_API ON) +- endif() + else() + set(ENABLE_POPPLER_CAIRO OFF) + endif() +diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp +--- a/src/extension/internal/pdfinput/pdf-input.cpp ++++ b/src/extension/internal/pdfinput/pdf-input.cpp +@@ -793,7 +793,7 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) { + dlg->getImportSettings(prefs); + + // Apply crop settings +- PDFRectangle *clipToBox = NULL; ++ _POPPLER_CONST PDFRectangle *clipToBox = NULL; + double crop_setting; + sp_repr_get_double(prefs, "cropTo", &crop_setting); + +diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h +--- a/src/extension/internal/pdfinput/pdf-input.h ++++ b/src/extension/internal/pdfinput/pdf-input.h +@@ -15,6 +15,7 @@ + #endif + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + #include + +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -36,6 +36,7 @@ extern "C" { + #include "pdf-parser.h" + #include "util/units.h" + ++#include "glib/poppler-features.h" + #include "goo/gmem.h" + #include "goo/GooString.h" + #include "GlobalParams.h" +@@ -294,8 +295,8 @@ PdfParser::PdfParser(XRef *xrefA, + int /*pageNum*/, + int rotate, + Dict *resDict, +- PDFRectangle *box, +- PDFRectangle *cropBox) : ++ _POPPLER_CONST PDFRectangle *box, ++ _POPPLER_CONST PDFRectangle *cropBox) : + xref(xrefA), + builder(builderA), + subPage(gFalse), +@@ -317,7 +318,7 @@ PdfParser::PdfParser(XRef *xrefA, + builder->setDocumentSize(Inkscape::Util::Quantity::convert(state->getPageWidth(), "pt", "px"), + Inkscape::Util::Quantity::convert(state->getPageHeight(), "pt", "px")); + +- double *ctm = state->getCTM(); ++ const double *ctm = state->getCTM(); + double scaledCTM[6]; + for (int i = 0; i < 6; ++i) { + baseMatrix[i] = ctm[i]; +@@ -352,7 +353,7 @@ PdfParser::PdfParser(XRef *xrefA, + PdfParser::PdfParser(XRef *xrefA, + Inkscape::Extension::Internal::SvgBuilder *builderA, + Dict *resDict, +- PDFRectangle *box) : ++ _POPPLER_CONST PDFRectangle *box) : + xref(xrefA), + builder(builderA), + subPage(gTrue), +@@ -571,7 +572,7 @@ const char *PdfParser::getPreviousOperator(unsigned int look_back) { + + void PdfParser::execOp(Object *cmd, Object args[], int numArgs) { + PdfOperator *op; +- char *name; ++ const char *name; + Object *argPtr; + int i; + +@@ -619,7 +620,7 @@ void PdfParser::execOp(Object *cmd, Object args[], int numArgs) { + (this->*op->func)(argPtr, numArgs); + } + +-PdfOperator* PdfParser::findOp(char *name) { ++PdfOperator* PdfParser::findOp(const char *name) { + int a = -1; + int b = numOps; + int cmp = -1; +@@ -1751,7 +1752,7 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat, + GBool stroke, GBool eoFill) { + GfxShading *shading; + GfxPath *savedPath; +- double *ctm, *btm, *ptm; ++ const double *ctm, *btm, *ptm; + double m[6], ictm[6], m1[6]; + double xMin, yMin, xMax, yMax; + double det; +@@ -1993,7 +1994,7 @@ void PdfParser::doFunctionShFill1(GfxFunctionShading *shading, + GfxColor color0M, color1M, colorM0, colorM1, colorMM; + GfxColor colors2[4]; + double functionColorDelta = colorDeltas[pdfFunctionShading-1]; +- double *matrix; ++ const double *matrix; + double xM, yM; + int nComps, i, j; + +@@ -2173,7 +2174,7 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading *shading) { + } + } + +-void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { ++void PdfParser::fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth) { + GfxPatch patch00 = blankPatch(); + GfxPatch patch01 = blankPatch(); + GfxPatch patch10 = blankPatch(); +@@ -2581,7 +2582,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/) + } + } + ++#if POPPLER_CHECK_VERSION(0,64,0) + void PdfParser::doShowText(const GooString *s) { ++#else ++void PdfParser::doShowText(GooString *s) { ++#endif + GfxFont *font; + int wMode; + double riseX, riseY; +@@ -2590,11 +2595,15 @@ void PdfParser::doShowText(const GooString *s) { + double x, y, dx, dy, tdx, tdy; + double originX, originY, tOriginX, tOriginY; + double oldCTM[6], newCTM[6]; +- double *mat; ++ const double *mat; + Object charProc; + Dict *resDict; + Parser *oldParser; ++#if POPPLER_CHECK_VERSION(0,64,0) ++ const char *p; ++#else + char *p; ++#endif + int len, n, uLen; + + font = state->getFont(); +@@ -2630,7 +2639,7 @@ void PdfParser::doShowText(const GooString *s) { + double lineX = state->getLineX(); + double lineY = state->getLineY(); + oldParser = parser; +- p = g_strdup(s->getCString()); ++ p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, +@@ -2685,7 +2694,7 @@ void PdfParser::doShowText(const GooString *s) { + + } else { + state->textTransformDelta(0, state->getRise(), &riseX, &riseY); +- p = g_strdup(s->getCString()); ++ p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, +@@ -2731,7 +2740,11 @@ void PdfParser::opXObject(Object args[], int /*numArgs*/) + { + Object obj1, obj2, obj3, refObj; + +- char *name = g_strdup(args[0].getName()); ++#if POPPLER_CHECK_VERSION(0,64,0) ++ const char *name = args[0].getName(); ++#else ++ char *name = args[0].getName(); ++#endif + #if defined(POPPLER_NEW_OBJECT_API) + if ((obj1 = res->lookupXObject(name)).isNull()) { + #else +@@ -3656,7 +3669,6 @@ void PdfParser::opBeginImage(Object /*args*/[], int /*numArgs*/) + Stream *PdfParser::buildImageStream() { + Object dict; + Object obj; +- char *key; + Stream *str; + + // build dictionary +@@ -3674,26 +3686,17 @@ Stream *PdfParser::buildImageStream() { + obj.free(); + #endif + } else { +- key = copyString(obj.getName()); +-#if defined(POPPLER_NEW_OBJECT_API) +- obj = parser->getObj(); +-#else +- obj.free(); +- parser->getObj(&obj); +-#endif +- if (obj.isEOF() || obj.isError()) { +- gfree(key); ++ Object obj2; ++ _POPPLER_CALL(obj2, parser->getObj); ++ if (obj2.isEOF() || obj2.isError()) { ++ _POPPLER_FREE(obj); + break; + } +-#if defined(POPPLER_NEW_OBJECT_API) +- dict.dictAdd(key, std::move(obj)); +- } +- obj = parser->getObj(); +-#else +- dict.dictAdd(key, &obj); ++ _POPPLER_DICTADD(dict, obj.getName(), obj2); ++ _POPPLER_FREE(obj); ++ _POPPLER_FREE(obj2); + } +- parser->getObj(&obj); +-#endif ++ _POPPLER_CALL(obj, parser->getObj); + } + if (obj.isEOF()) { + error(errSyntaxError, getPos(), "End of file in inline image"); +diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h +--- a/src/extension/internal/pdfinput/pdf-parser.h ++++ b/src/extension/internal/pdfinput/pdf-parser.h +@@ -9,6 +9,7 @@ + #define PDF_PARSER_H + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + #ifdef USE_GCC_PRAGMAS + #pragma interface +@@ -25,6 +26,7 @@ namespace Inkscape { + // TODO clean up and remove using: + using Inkscape::Extension::Internal::SvgBuilder; + ++#include "glib/poppler-features.h" + #include "goo/gtypes.h" + #include "Object.h" + +@@ -127,11 +129,14 @@ public: + + // Constructor for regular output. + PdfParser(XRef *xrefA, SvgBuilder *builderA, int pageNum, int rotate, +- Dict *resDict, PDFRectangle *box, PDFRectangle *cropBox); ++ Dict *resDict, ++ _POPPLER_CONST PDFRectangle *box, ++ _POPPLER_CONST PDFRectangle *cropBox); + + // Constructor for a sub-page object. + PdfParser(XRef *xrefA, Inkscape::Extension::Internal::SvgBuilder *builderA, +- Dict *resDict, PDFRectangle *box); ++ Dict *resDict, ++ _POPPLER_CONST PDFRectangle *box); + + virtual ~PdfParser(); + +@@ -185,7 +190,7 @@ private: + + void go(GBool topLevel); + void execOp(Object *cmd, Object args[], int numArgs); +- PdfOperator *findOp(char *name); ++ PdfOperator *findOp(const char *name); + GBool checkArg(Object *arg, TchkType type); + int getPos(); + +@@ -256,7 +261,7 @@ private: + double x2, double y2, GfxColor *color2, + int nComps, int depth); + void doPatchMeshShFill(GfxPatchMeshShading *shading); +- void fillPatch(GfxPatch *patch, int nComps, int depth); ++ void fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth); + void doEndPath(); + + // path clipping operators +@@ -287,7 +292,12 @@ private: + void opMoveShowText(Object args[], int numArgs); + void opMoveSetShowText(Object args[], int numArgs); + void opShowSpaceText(Object args[], int numArgs); ++#if POPPLER_CHECK_VERSION(0,64,0) + void doShowText(const GooString *s); ++#else ++ void doShowText(GooString *s); ++#endif ++ + + // XObject operators + void opXObject(Object args[], int numArgs); +diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h +new file mode 100644 +--- /dev/null ++++ b/src/extension/internal/pdfinput/poppler-transition-api.h +@@ -0,0 +1,39 @@ ++#ifndef SEEN_POPPLER_TRANSITION_API_H ++#define SEEN_POPPLER_TRANSITION_API_H ++ ++#include ++ ++#if POPPLER_CHECK_VERSION(0,70,0) ++#define _POPPLER_CONST const ++#else ++#define _POPPLER_CONST ++#endif ++ ++#if POPPLER_CHECK_VERSION(0,69,0) ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(key, std::move(obj)) ++#elif POPPLER_CHECK_VERSION(0,58,0) ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), std::move(obj)) ++#else ++#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), &obj) ++#endif ++ ++#if POPPLER_CHECK_VERSION(0,58,0) ++#define POPPLER_NEW_OBJECT_API ++#define _POPPLER_FREE(obj) ++#define _POPPLER_CALL(ret, func) (ret = func()) ++#define _POPPLER_CALL_ARGS(ret, func, ...) (ret = func(__VA_ARGS__)) ++#else ++#define _POPPLER_FREE(obj) (obj).free() ++#define _POPPLER_CALL(ret, func) (*func(&ret)) ++#define _POPPLER_CALL_ARGS(ret, func, ...) (*func(__VA_ARGS__, &ret)) ++#endif ++ ++#if POPPLER_CHECK_VERSION(0, 29, 0) ++#define POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ++#endif ++ ++#if POPPLER_CHECK_VERSION(0, 25, 0) ++#define POPPLER_EVEN_NEWER_COLOR_SPACE_API ++#endif ++ ++#endif +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -625,7 +625,7 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern, GfxState *state, bool is_ + if ( pattern != NULL ) { + if ( pattern->getType() == 2 ) { // Shading pattern + GfxShadingPattern *shading_pattern = static_cast(pattern); +- double *ptm; ++ const double *ptm; + double m[6] = {1, 0, 0, 1, 0, 0}; + double det; + +@@ -672,7 +672,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + + Inkscape::XML::Node *pattern_node = _xml_doc->createElement("svg:pattern"); + // Set pattern transform matrix +- double *p2u = tiling_pattern->getMatrix(); ++ const double *p2u = tiling_pattern->getMatrix(); + double m[6] = {1, 0, 0, 1, 0, 0}; + double det; + det = _ttm[0] * _ttm[3] - _ttm[1] * _ttm[2]; // see LP Bug 1168908 +@@ -698,7 +698,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + pattern_node->setAttribute("patternUnits", "userSpaceOnUse"); + // Set pattern tiling + // FIXME: don't ignore XStep and YStep +- double *bbox = tiling_pattern->getBBox(); ++ const double *bbox = tiling_pattern->getBBox(); + sp_repr_set_svg_double(pattern_node, "x", 0.0); + sp_repr_set_svg_double(pattern_node, "y", 0.0); + sp_repr_set_svg_double(pattern_node, "width", bbox[2] - bbox[0]); +@@ -751,7 +751,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern, + */ + gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for_shading) { + Inkscape::XML::Node *gradient; +- Function *func; ++ _POPPLER_CONST Function *func; + int num_funcs; + bool extend0, extend1; + +@@ -865,7 +865,7 @@ static bool svgGetShadingColorRGB(GfxShading *shading, double offset, GfxRGB *re + + #define INT_EPSILON 8 + bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, +- Function *func) { ++ _POPPLER_CONST Function *func) { + int type = func->getType(); + if ( type == 0 || type == 2 ) { // Sampled or exponential function + GfxRGB stop1, stop2; +@@ -877,9 +877,9 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + _addStopToGradient(gradient, 1.0, &stop2, 1.0); + } + } else if ( type == 3 ) { // Stitching +- StitchingFunction *stitchingFunc = static_cast(func); +- double *bounds = stitchingFunc->getBounds(); +- double *encode = stitchingFunc->getEncode(); ++ auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func); ++ const double *bounds = stitchingFunc->getBounds(); ++ const double *encode = stitchingFunc->getEncode(); + int num_funcs = stitchingFunc->getNumFuncs(); + + // Add stops from all the stitched functions +@@ -890,7 +890,7 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + svgGetShadingColorRGB(shading, bounds[i + 1], &color); + // Add stops + if (stitchingFunc->getFunc(i)->getType() == 2) { // process exponential fxn +- double expE = (static_cast(stitchingFunc->getFunc(i)))->getE(); ++ double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE(); + if (expE > 1.0) { + expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1 + if (encode[2*i] == 0) { // normal sequence +@@ -1020,9 +1020,9 @@ void SvgBuilder::updateFont(GfxState *state) { + GfxFont *font = state->getFont(); + // Store original name + if (font->getName()) { +- _font_specification = g_strdup(font->getName()->getCString()); ++ _font_specification = font->getName()->getCString(); + } else { +- _font_specification = (char*) "Arial"; ++ _font_specification = "Arial"; + } + + // Prune the font name to get the correct font family name +@@ -1030,7 +1030,7 @@ void SvgBuilder::updateFont(GfxState *state) { + char *font_family = NULL; + char *font_style = NULL; + char *font_style_lowercase = NULL; +- char *plus_sign = strstr(_font_specification, "+"); ++ const char *plus_sign = strstr(_font_specification, "+"); + if (plus_sign) { + font_family = g_strdup(plus_sign + 1); + _font_specification = plus_sign + 1; +@@ -1148,7 +1148,7 @@ void SvgBuilder::updateFont(GfxState *state) { + Inkscape::CSSOStringStream os_font_size; + double css_font_size = _font_scaling * state->getFontSize(); + if ( font->getType() == fontType3 ) { +- double *font_matrix = font->getFontMatrix(); ++ const double *font_matrix = font->getFontMatrix(); + if ( font_matrix[0] != 0.0 ) { + css_font_size *= font_matrix[3] / font_matrix[0]; + } +@@ -1193,7 +1193,7 @@ void SvgBuilder::updateTextPosition(double tx, double ty) { + void SvgBuilder::updateTextMatrix(GfxState *state) { + _flushText(); + // Update text matrix +- double *text_matrix = state->getTextMat(); ++ const double *text_matrix = state->getTextMat(); + double w_scale = sqrt( text_matrix[0] * text_matrix[0] + text_matrix[2] * text_matrix[2] ); + double h_scale = sqrt( text_matrix[1] * text_matrix[1] + text_matrix[3] * text_matrix[3] ); + double max_scale; +diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h +--- a/src/extension/internal/pdfinput/svg-builder.h ++++ b/src/extension/internal/pdfinput/svg-builder.h +@@ -15,6 +15,7 @@ + #endif + + #ifdef HAVE_POPPLER ++#include "poppler-transition-api.h" + + class SPDocument; + namespace Inkscape { +@@ -80,7 +81,7 @@ struct SvgGlyph { + bool style_changed; // Set to true if style has to be reset + SPCSSAttr *style; + int render_mode; // Text render mode +- char *font_specification; // Pointer to current font specification ++ const char *font_specification; // Pointer to current font specification + }; + + /** +@@ -174,7 +175,7 @@ private: + void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, + GfxRGB *color, double opacity); + bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, +- Function *func); ++ _POPPLER_CONST Function *func); + gchar *_createTilingPattern(GfxTilingPattern *tiling_pattern, GfxState *state, + bool is_stroke=false); + // Image/mask creation +@@ -202,7 +203,7 @@ private: + + SPCSSAttr *_font_style; // Current font style + GfxFont *_current_font; +- char *_font_specification; ++ const char *_font_specification; + double _font_scaling; + bool _need_font_update; + Geom::Affine _text_matrix; diff --git a/gnu/packages/patches/poppler-CVE-2018-19149.patch b/gnu/packages/patches/poppler-CVE-2018-19149.patch deleted file mode 100644 index 3641f5f078..0000000000 --- a/gnu/packages/patches/poppler-CVE-2018-19149.patch +++ /dev/null @@ -1,80 +0,0 @@ -Fix CVE-2018-19149: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19149 -https://gitlab.freedesktop.org/poppler/poppler/issues/664 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/poppler/poppler/commit/f162ecdea0dda5dbbdb45503c1d55d9afaa41d44 - -From f162ecdea0dda5dbbdb45503c1d55d9afaa41d44 Mon Sep 17 00:00:00 2001 -From: Marek Kasik -Date: Fri, 20 Apr 2018 11:38:13 +0200 -Subject: [PATCH] Fix crash on missing embedded file - -Check whether an embedded file is actually present in the PDF -and show warning in that case. - -https://bugs.freedesktop.org/show_bug.cgi?id=106137 -https://gitlab.freedesktop.org/poppler/poppler/issues/236 ---- - glib/poppler-attachment.cc | 26 +++++++++++++++++--------- - glib/poppler-document.cc | 3 ++- - 2 files changed, 19 insertions(+), 10 deletions(-) - -diff --git a/glib/poppler-attachment.cc b/glib/poppler-attachment.cc -index c6502e9d..11ba5bb5 100644 ---- a/glib/poppler-attachment.cc -+++ b/glib/poppler-attachment.cc -@@ -111,17 +111,25 @@ _poppler_attachment_new (FileSpec *emb_file) - attachment->description = _poppler_goo_string_to_utf8 (emb_file->getDescription ()); - - embFile = emb_file->getEmbeddedFile(); -- attachment->size = embFile->size (); -+ if (embFile != NULL && embFile->streamObject()->isStream()) -+ { -+ attachment->size = embFile->size (); - -- if (embFile->createDate ()) -- _poppler_convert_pdf_date_to_gtime (embFile->createDate (), (time_t *)&attachment->ctime); -- if (embFile->modDate ()) -- _poppler_convert_pdf_date_to_gtime (embFile->modDate (), (time_t *)&attachment->mtime); -+ if (embFile->createDate ()) -+ _poppler_convert_pdf_date_to_gtime (embFile->createDate (), (time_t *)&attachment->ctime); -+ if (embFile->modDate ()) -+ _poppler_convert_pdf_date_to_gtime (embFile->modDate (), (time_t *)&attachment->mtime); - -- if (embFile->checksum () && embFile->checksum ()->getLength () > 0) -- attachment->checksum = g_string_new_len (embFile->checksum ()->getCString (), -- embFile->checksum ()->getLength ()); -- priv->obj_stream = embFile->streamObject()->copy(); -+ if (embFile->checksum () && embFile->checksum ()->getLength () > 0) -+ attachment->checksum = g_string_new_len (embFile->checksum ()->getCString (), -+ embFile->checksum ()->getLength ()); -+ priv->obj_stream = embFile->streamObject()->copy(); -+ } -+ else -+ { -+ g_warning ("Missing stream object for embedded file"); -+ g_clear_object (&attachment); -+ } - - return attachment; - } -diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc -index 83f6aea6..ea319344 100644 ---- a/glib/poppler-document.cc -+++ b/glib/poppler-document.cc -@@ -670,7 +670,8 @@ poppler_document_get_attachments (PopplerDocument *document) - attachment = _poppler_attachment_new (emb_file); - delete emb_file; - -- retval = g_list_prepend (retval, attachment); -+ if (attachment != NULL) -+ retval = g_list_prepend (retval, attachment); - } - return g_list_reverse (retval); - } --- -2.19.1 - diff --git a/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch new file mode 100644 index 0000000000..d8b9bf172a --- /dev/null +++ b/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch @@ -0,0 +1,318 @@ +Fix LuaTeX compatibility with Poppler 0.72. + +Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream +fixes are unavailable. This is based on Arch Linux patches, with minor +changes for Poppler 0.72: +https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=f1b424435c8fa31d9296c7a6dc17f939a8332780 + +diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w +--- a/texk/web2c/luatexdir/image/pdftoepdf.w ++++ b/texk/web2c/luatexdir/image/pdftoepdf.w +@@ -35,7 +35,7 @@ + + extern void md5(Guchar *msg, int msgLen, Guchar *digest); + +-static GBool isInit = gFalse; ++static bool isInit = false; + + /* Maintain AVL tree of all PDF files for embedding */ + +@@ -363,10 +363,10 @@ void copyReal(PDF pdf, double d) + + static void copyString(PDF pdf, GooString * string) + { +- char *p; ++ const char *p; + unsigned char c; + size_t i, l; +- p = string->getCString(); ++ p = string->c_str(); + l = (size_t) string->getLength(); + if (pdf->cave) + pdf_out(pdf, ' '); +@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string) + pdf->cave = true; + } + +-static void copyName(PDF pdf, char *s) ++static void copyName(PDF pdf, const char *s) + { + pdf_out(pdf, '/'); + for (; *s != 0; s++) { +@@ -468,14 +468,14 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj) + break; + /* + case objNum: +- GBool isNum() { return type == objInt || type == objReal; } ++ bool isNum() { return type == objInt || type == objReal; } + break; + */ + case objString: + copyString(pdf, (GooString *)obj->getString()); + break; + case objName: +- copyName(pdf, (char *)obj->getName()); ++ copyName(pdf, obj->getName()); + break; + case objNull: + pdf_add_null(pdf); +@@ -531,22 +531,22 @@ static PDFRectangle *get_pagebox(Page * page, int pagebox_spec) + { + switch (pagebox_spec) { + case PDF_BOX_SPEC_MEDIA: +- return page->getMediaBox(); ++ return (PDFRectangle *) page->getMediaBox(); + break; + case PDF_BOX_SPEC_CROP: +- return page->getCropBox(); ++ return (PDFRectangle *) page->getCropBox(); + break; + case PDF_BOX_SPEC_BLEED: +- return page->getBleedBox(); ++ return (PDFRectangle *) page->getBleedBox(); + break; + case PDF_BOX_SPEC_TRIM: +- return page->getTrimBox(); ++ return (PDFRectangle *) page->getTrimBox(); + break; + case PDF_BOX_SPEC_ART: +- return page->getArtBox(); ++ return (PDFRectangle *) page->getArtBox(); + break; + default: +- return page->getMediaBox(); ++ return (PDFRectangle *) page->getMediaBox(); + break; + } + } +@@ -587,11 +587,11 @@ void read_pdf_info(image_dict * idict) + PDFRectangle *pagebox; + int pdf_major_version_found, pdf_minor_version_found; + float xsize, ysize, xorig, yorig; +- if (isInit == gFalse) { ++ if (isInit == false) { + if (!(globalParams)) + globalParams = new GlobalParams(); +- globalParams->setErrQuiet(gFalse); +- isInit = gTrue; ++ globalParams->setErrQuiet(false); ++ isInit = true; + } + if (img_type(idict) == IMG_TYPE_PDF) + pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL); +@@ -966,7 +966,7 @@ void epdf_free() + if (PdfDocumentTree != NULL) + avl_destroy(PdfDocumentTree, destroyPdfDocument); + PdfDocumentTree = NULL; +- if (isInit == gTrue) ++ if (isInit == true) + delete globalParams; +- isInit = gFalse; ++ isInit = false; + } +diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc +--- a/texk/web2c/luatexdir/lua/lepdflib.cc ++++ b/texk/web2c/luatexdir/lua/lepdflib.cc +@@ -240,7 +240,7 @@ static int l_new_Attribute(lua_State * L) + if (uobj->pd != NULL && uobj->pd->pc != uobj->pc) + pdfdoc_changed_error(L); + uout = new_Attribute_userdata(L); +- uout->d = new Attribute(n, nlen, (Object *)uobj->d); ++ uout->d = new Attribute((GooString)n, (Object *)uobj->d); + uout->atype = ALLOC_LEPDF; + uout->pc = uobj->pc; + uout->pd = uobj->pd; +@@ -439,7 +439,7 @@ static int l_new_Object(lua_State * L) + break; + case 1: + if (lua_isboolean (L,1)) { +- uout->d = new Object(lua_toboolean(L, 1)? gTrue : gFalse); ++ uout->d = new Object(lua_toboolean(L, 1)? true : false); + uout->atype = ALLOC_LEPDF; + uout->pc = 0; + uout->pd = NULL; +@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \ + uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \ + if (uin->pd != NULL && uin->pd->pc != uin->pc) \ + pdfdoc_changed_error(L); \ +- o = ((in *) uin->d)->function(); \ ++ o = (out *) ((in *) uin->d)->function(); \ + if (o != NULL) { \ + uout = new_##out##_userdata(L); \ + uout->d = o; \ +@@ -676,7 +676,7 @@ static int m_##in##_##function(lua_State * L) \ + pdfdoc_changed_error(L); \ + gs = (GooString *)((in *) uin->d)->function(); \ + if (gs != NULL) \ +- lua_pushlstring(L, gs->getCString(), gs->getLength()); \ ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); \ + else \ + lua_pushnil(L); \ + return 1; \ +@@ -911,7 +911,7 @@ static int m_Array_getString(lua_State * L) + if (i > 0 && i <= len) { + gs = new GooString(); + if (((Array *) uin->d)->getString(i - 1, gs)) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + delete gs; +@@ -1063,7 +1063,7 @@ static int m_Catalog_getJS(lua_State * L) + if (i > 0 && i <= len) { + gs = ((Catalog *) uin->d)->getJS(i - 1); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + delete gs; +@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength); + + static int m_Dict_add(lua_State * L) + { +- char *s; ++ const char *s; + udstruct *uin, *uobj; + uin = (udstruct *) luaL_checkudata(L, 1, M_Dict); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- s = copyString(luaL_checkstring(L, 2)); ++ s = luaL_checkstring(L, 2); + uobj = (udstruct *) luaL_checkudata(L, 3, M_Object); + ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d))); + return 0; +@@ -1378,7 +1378,7 @@ static int m_GooString__tostring(lua_State * L) + uin = (udstruct *) luaL_checkudata(L, 1, M_GooString); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- lua_pushlstring(L, ((GooString *) uin->d)->getCString(), ++ lua_pushlstring(L, ((GooString *) uin->d)->c_str(), + ((GooString *) uin->d)->getLength()); + return 1; + } +@@ -1527,9 +1527,9 @@ static int m_Object_initBool(lua_State * L) + pdfdoc_changed_error(L); + luaL_checktype(L, 2, LUA_TBOOLEAN); + if (lua_toboolean(L, 2) != 0) +- *((Object *) uin->d) = Object(gTrue); ++ *((Object *) uin->d) = Object(true); + else +- *((Object *) uin->d) = Object(gFalse); ++ *((Object *) uin->d) = Object(false); + return 0; + } + +@@ -1814,7 +1814,7 @@ static int m_Object_getString(lua_State * L) + pdfdoc_changed_error(L); + if (((Object *) uin->d)->isString()) { + gs = (GooString *)((Object *) uin->d)->getString(); +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + } else + lua_pushnil(L); + return 1; +@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L) + pdfdoc_changed_error(L); + if (!((Object *) uin->d)->isDict()) + luaL_error(L, "Object is not a Dict"); +- ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d))); ++ ((Object *) uin->d)->dictAdd(s, std::move(*((Object *) uobj->d))); + return 0; + } + +@@ -2470,9 +2470,9 @@ static int m_PDFDoc_getFileName(lua_State * L) + uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- gs = ((PdfDocument *) uin->d)->doc->getFileName(); ++ gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName(); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + return 1; +@@ -2559,9 +2559,9 @@ static int m_PDFDoc_readMetadata(lua_State * L) + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { +- gs = ((PdfDocument *) uin->d)->doc->readMetadata(); ++ gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata(); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + } else +@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L) + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { +- obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); ++ obj = (StructTreeRoot *) ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); + uout = new_StructTreeRoot_userdata(L); + uout->d = obj; + uout->pc = uin->pc; +@@ -3038,12 +3038,12 @@ m_poppler_get_BOOL(Attribute, isHidden); + + static int m_Attribute_setHidden(lua_State * L) + { +- GBool i; ++ bool i; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- i = (GBool) lua_toboolean(L, 2); ++ i = (bool) lua_toboolean(L, 2); + ((Attribute *) uin->d)->setHidden(i); + return 0; + } +@@ -3180,7 +3180,7 @@ static int m_StructElement_getParentRef(lua_State * L) + // Ref is false if the C++ functione return false + static int m_StructElement_getPageRef(lua_State * L) + { +- GBool b; ++ bool b; + Ref *r; + udstruct *uin, *uout; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); +@@ -3226,16 +3226,16 @@ static int m_StructElement_setRevision(lua_State * L) + + static int m_StructElement_getText(lua_State * L) + { +- GBool i; ++ bool i; + GooString *gs; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); +- i = (GBool) lua_toboolean(L, 2); ++ i = (bool) lua_toboolean(L, 2); + gs = ((StructElement *) uin->d)->getText(i); + if (gs != NULL) +- lua_pushlstring(L, gs->getCString(), gs->getLength()); ++ lua_pushlstring(L, gs->c_str(), gs->getLength()); + else + lua_pushnil(L); + return 1; +@@ -3321,7 +3321,7 @@ static int m_StructElement_findAttribute(lua_State * L) + { + Attribute::Type t; + Attribute::Owner o; +- GBool g; ++ bool g; + udstruct *uin, *uout; + const Attribute *a; + uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement); +@@ -3329,7 +3329,7 @@ static int m_StructElement_findAttribute(lua_State * L) + pdfdoc_changed_error(L); + t = (Attribute::Type) luaL_checkint(L,1); + o = (Attribute::Owner) luaL_checkint(L,2); +- g = (GBool) lua_toboolean(L, 3); ++ g = (bool) lua_toboolean(L, 3); + a = ((StructElement *) uin->d)->findAttribute(t,g,o); + + if (a!=NULL){ diff --git a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch new file mode 100644 index 0000000000..eba4733f32 --- /dev/null +++ b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch @@ -0,0 +1,188 @@ +Fix compatibility with Poppler 0.72. + +These files are taken from the upstream "poppler0.72.0.cc" variants and +diffed against the "newpoppler" files from the 20180414 distribution. + +See revision 49336: +https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/ + +--- a/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 1970-01-01 01:00:00.000000000 +0100 ++++ b/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 2018-12-09 21:14:58.479732695 +0100 +@@ -22,7 +22,7 @@ + https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk + by Arch Linux. A little modifications are made to avoid a crash for + some kind of pdf images, such as figure_missing.pdf in gnuplot. +-The poppler should be 0.59.0 or newer versions. ++The poppler should be 0.72.0 or newer versions. + POPPLER_VERSION should be defined. + */ + +@@ -120,7 +120,7 @@ + + static InObj *inObjList; + static UsedEncoding *encodingList; +-static GBool isInit = gFalse; ++static bool isInit = false; + + // -------------------------------------------------------------------- + // Maintain list of open embedded PDF files +@@ -317,7 +317,7 @@ + pdf_puts("<<\n"); + assert(r->type == objFont); // FontDescriptor is in fd_tree + for (i = 0, l = obj->dictGetLength(); i < l; ++i) { +- key = obj->dictGetKey(i); ++ key = (char *)obj->dictGetKey(i); + if (strncmp("FontDescriptor", key, strlen("FontDescriptor")) == 0 + || strncmp("BaseFont", key, strlen("BaseFont")) == 0 + || strncmp("Encoding", key, strlen("Encoding")) == 0) +@@ -427,7 +427,7 @@ + charset = fontdesc.dictLookup("CharSet"); + if (!charset.isNull() && + charset.isString() && is_subsetable(fontmap)) +- epdf_mark_glyphs(fd, (char *)charset.getString()->getCString()); ++ epdf_mark_glyphs(fd, (char *)charset.getString()->c_str()); + else + embed_whole_font(fd); + addFontDesc(fontdescRef.getRef(), fd); +@@ -454,7 +454,7 @@ + for (i = 0, l = obj->dictGetLength(); i < l; ++i) { + fontRef = obj->dictGetValNF(i); + if (fontRef.isRef()) +- copyFont(obj->dictGetKey(i), &fontRef); ++ copyFont((char *)obj->dictGetKey(i), &fontRef); + else if (fontRef.isDict()) { // some programs generate pdf with embedded font object + copyName((char *)obj->dictGetKey(i)); + pdf_puts(" "); +@@ -566,7 +566,7 @@ + pdf_printf("%s", convertNumToPDF(obj->getNum())); + } else if (obj->isString()) { + s = (GooString *)obj->getString(); +- p = s->getCString(); ++ p = (char *)s->c_str(); + l = s->getLength(); + if (strlen(p) == (unsigned int) l) { + pdf_puts("("); +@@ -664,7 +664,7 @@ + ("PDF inclusion: CID fonts are not supported" + " (try to disable font replacement to fix this)"); + } +- if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0) ++ if ((s = (char *)((Gfx8BitFont *) r->font)->getCharName(i)) != 0) + glyphNames[i] = s; + else + glyphNames[i] = notdef; +@@ -683,7 +683,7 @@ + } + + // get the pagebox according to the pagebox_spec +-static PDFRectangle *get_pagebox(Page * page, int pagebox_spec) ++static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec) + { + if (pagebox_spec == pdfboxspecmedia) + return page->getMediaBox(); +@@ -715,7 +715,7 @@ + { + PdfDocument *pdf_doc; + Page *page; +- PDFRectangle *pagebox; ++ const PDFRectangle *pagebox; + #ifdef POPPLER_VERSION + int pdf_major_version_found, pdf_minor_version_found; + #else +@@ -724,8 +724,8 @@ + // initialize + if (!isInit) { + globalParams = new GlobalParams(); +- globalParams->setErrQuiet(gFalse); +- isInit = gTrue; ++ globalParams->setErrQuiet(false); ++ isInit = true; + } + // open PDF file + pdf_doc = find_add_document(image_name); +@@ -849,7 +849,7 @@ + pageObj = xref->fetch(pageRef->num, pageRef->gen); + pageDict = pageObj.getDict(); + rotate = page->getRotate(); +- PDFRectangle *pagebox; ++ const PDFRectangle *pagebox; + // write the Page header + pdf_puts("/Type /XObject\n"); + pdf_puts("/Subtype /Form\n"); +@@ -977,7 +977,7 @@ + } + l = dic1.getLength(); + for (i = 0; i < l; i++) { +- groupDict.dictAdd(copyString(dic1.getKey(i)), ++ groupDict.dictAdd((const char *)copyString(dic1.getKey(i)), + dic1.getValNF(i)); + } + // end modification +@@ -1001,14 +1001,14 @@ + pdf_puts("/Resources <<\n"); + for (i = 0, l = obj1->dictGetLength(); i < l; ++i) { + obj2 = obj1->dictGetVal(i); +- key = obj1->dictGetKey(i); ++ key = (char *)obj1->dictGetKey(i); + if (strcmp("Font", key) == 0) + copyFontResources(&obj2); + else if (strcmp("ProcSet", key) == 0) + copyProcSet(&obj2); + else +- copyOtherResources(&obj2, key); ++ copyOtherResources(&obj2, (char *)key); + } + pdf_puts(">>\n"); + } + +--- a/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc 1970-01-01 01:00:00.000000000 +0100 ++++ b/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc 2018-12-09 21:14:58.479732695 +0100 +@@ -20,7 +20,7 @@ + /* + This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at + https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk +-by Arch Linux. The poppler should be 0.59.0 or newer versions. ++by Arch Linux. The poppler should be 0.72.0 or newer versions. + POPPLER_VERSION should be defined. + */ + +@@ -109,7 +109,7 @@ + fprintf(stderr, "No SourceName found\n"); + exit(1); + } +- outname = (char *)srcName.getString()->getCString(); ++ outname = (char *)srcName.getString()->c_str(); + // We cannot free srcName, as objname shares its string. + // srcName.free(); + } else if (objnum > 0) { +@@ -118,7 +118,7 @@ + fprintf(stderr, "Not a Stream object\n"); + exit(1); + } +- sprintf(buf, "%s", fileName->getCString()); ++ sprintf(buf, "%s", fileName->c_str()); + if ((p = strrchr(buf, '.')) == 0) + p = strchr(buf, 0); + if (objgen == 0) +@@ -128,7 +128,7 @@ + outname = buf; + } else { // objnum < 0 means we are extracting the XRef table + extract_xref_table = true; +- sprintf(buf, "%s", fileName->getCString()); ++ sprintf(buf, "%s", fileName->c_str()); + if ((p = strrchr(buf, '.')) == 0) + p = strchr(buf, 0); + sprintf(p, ".xref"); +@@ -173,9 +173,9 @@ + + // parse the header: object numbers and offsets + objStr.streamReset(); +- str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first); ++ str = new EmbedStream(objStr.getStream(), Object(objNull), true, first); + lexer = new Lexer(xref, str); +- parser = new Parser(xref, lexer, gFalse); ++ parser = new Parser(xref, lexer, false); + for (n = 0; n < nObjects; ++n) { + obj1 = parser->getObj(); + obj2 = parser->getObj(); + diff --git a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch new file mode 100644 index 0000000000..cac716cc59 --- /dev/null +++ b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch @@ -0,0 +1,31 @@ +Fix compatibility with Poppler 0.72. + +Patch taken from upstream: +https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/xetexdir/pdfimage.cpp?r1=44964&r2=48969&diff_format=u + +--- a/texk/web2c/xetexdir/pdfimage.cpp 2017/08/06 07:12:02 44964 ++++ b/texk/web2c/xetexdir/pdfimage.cpp 2018/10/22 04:01:42 48969 +@@ -82,19 +82,19 @@ + switch (pdf_box) { + default: + case pdfbox_crop: +- r = page->getCropBox(); ++ r = (PDFRectangle *)page->getCropBox(); + break; + case pdfbox_media: +- r = page->getMediaBox(); ++ r = (PDFRectangle *)page->getMediaBox(); + break; + case pdfbox_bleed: +- r = page->getBleedBox(); ++ r = (PDFRectangle *)page->getBleedBox(); + break; + case pdfbox_trim: +- r = page->getTrimBox(); ++ r = (PDFRectangle *)page->getTrimBox(); + break; + case pdfbox_art: +- r = page->getArtBox(); ++ r = (PDFRectangle *)page->getArtBox(); + break; + } diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 4170e4a0ae..d5e23f6c9e 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -82,15 +82,14 @@ (define-public poppler (package (name "poppler") - (replacement poppler/fixed) - (version "0.68.0") + (version "0.72.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "0n0f7mv24lzv9p3dlzakpdhqg7ygcvl6l40grcz95xldzgq083gr")))) + "0lfs1b1jfamxl13zbl5n448dqvl9n8frbv8180y7b7kfyaw7wx61")))) (build-system cmake-build-system) ;; FIXME: ;; use libcurl: no @@ -132,14 +131,6 @@ (license license:gpl2+) (home-page "https://poppler.freedesktop.org/"))) -(define poppler/fixed - (package - (inherit poppler) - (source (origin - (inherit (package-source poppler)) - (patches (append (origin-patches (package-source poppler)) - (search-patches "poppler-CVE-2018-19149.patch"))))))) - (define-public poppler-data (package (name "poppler-data") diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 615d7e23a2..20795da275 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -56,7 +56,59 @@ (sha256 (base32 "00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034")) - (patches (search-patches "scribus-poppler.patch")))) + (patches (append + ;; Scribus relies heavily on Poppler internals, which have + ;; changed a lot since the latest Scribus release (2018-04). + ;; Thus, we require a bunch of patches to stay compatible. + (search-patches "scribus-poppler.patch") + (list (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "7d4ceeb5cac32287769e3c0238699e0b3e56c24d.patch")) + (file-name "scribus-poppler-0.64.patch") + (sha256 + (base32 + "1kr27bfzkpabrh42nsrrvlqyycdg9isbavpaa5spgmrhidcg02xj"))) + (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "76561c1a55cd07c268f8f2b2fea888532933700b.patch")) + (file-name "scribus-poppler-config.patch") + (sha256 + (base32 + "01k18xjj82c3ndzp89dlpfhhdccc8z0acf8b04r592jyr5y9rc19"))) + (origin + (method url-fetch) + (uri (string-append + "https://github.com/scribusproject/scribus/commit/" + "8e05d26c19097ac2ad5b4ebbf40a3771ee6faf9c.patch")) + (file-name "scribus-poppler-0.69.patch") + (sha256 + (base32 + "1avdmsj5l543j0irq18nxgiw99n395jj56ih5dsal59fn0wbqk42"))) + (origin + (method url-fetch) + (uri (string-append "https://git.archlinux.org/svntogit/" + "community.git/plain/trunk/scribus-" + "poppler-0.70.patch?h=packages/scribus&id=" + "8ef43ee2fceb0753ed5a76bb0a11c84775898ffc")) + (file-name "scribus-poppler-0.70.patch") + (sha256 + (base32 + "0dw7ix3jaj0y1q97cmmqwb2qgdx760yhxx86wa8rnx0xhfi5x6qr")))))) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (file) + (substitute* file + ;; These are required for compatibility with Poppler 0.71. + (("GBool") "bool") (("gTrue") "true") (("gFalse") "false") + ;; ...and this for Poppler 0.72. + (("getCString") "c_str"))) + (find-files "scribus/plugins/import/pdf")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 916aa54d58..d345e89430 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -102,15 +102,19 @@ (patches (list ;; This is required for compatibility with Poppler 0.64.0 and to fix a - ;; segmentation fault in dvipdfm-x from XeTeX. + ;; segmentation fault in dvipdfm-x from XeTeX, and also contains a fix + ;; for CVE-2018-17407. (origin (method url-fetch) (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/" - "svn/texlive-" version "-source-upstream_fixes-1.patch")) + "svn/texlive-" version "-source-upstream_fixes-2.patch")) (file-name "texlive-poppler-compat.patch") (sha256 (base32 - "0f8vhyj167y4xj0jx47vkybrcacfpxw0wdn1b777yq3xmhlahhlg"))))))) + "04sxy1qv9y575mxwyg3y7rx7mh540pfjqx7yni7ncb5wjbq9pq1a"))) + (search-patch "texlive-bin-luatex-poppler-compat.patch") + (search-patch "texlive-bin-pdftex-poppler-compat.patch") + (search-patch "texlive-bin-xetex-poppler-compat.patch"))))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) -- cgit v1.2.3 From d1ee69a9e8b33cdf6463fbece0421bb1e937b4ca Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 9 Dec 2018 00:56:58 +0100 Subject: gnu: cairo: Update to 1.16.0. * gnu/packages/patches/cairo-CVE-2016-9082.patch, gnu/packages/patches/cairo-setjmp-wrapper.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them/ * gnu/packages/gtk.scm (cairo): Update to 1.16.0. [source](patches): Remove. --- gnu/local.mk | 2 - gnu/packages/gtk.scm | 6 +- gnu/packages/patches/cairo-CVE-2016-9082.patch | 122 ------------------------ gnu/packages/patches/cairo-setjmp-wrapper.patch | 78 --------------- 4 files changed, 2 insertions(+), 206 deletions(-) delete mode 100644 gnu/packages/patches/cairo-CVE-2016-9082.patch delete mode 100644 gnu/packages/patches/cairo-setjmp-wrapper.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 6541bcc8be..aaab4c72ec 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -608,8 +608,6 @@ dist_patch_DATA = \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/borg-respect-storage-quota.patch \ %D%/packages/patches/byobu-writable-status.patch \ - %D%/packages/patches/cairo-CVE-2016-9082.patch \ - %D%/packages/patches/cairo-setjmp-wrapper.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a047988845..7992a978c8 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -115,16 +115,14 @@ tools have full access to view and control running applications.") (define-public cairo (package (name "cairo") - (version "1.14.12") + (version "1.16.0") (source (origin (method url-fetch) (uri (string-append "https://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 (base32 - "05mzyxkvsfc1annjw2dja8vka01ampp9pp93lg09j8hba06g144c")) - (patches (search-patches "cairo-CVE-2016-9082.patch" - "cairo-setjmp-wrapper.patch")))) + "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy")))) (build-system gnu-build-system) (propagated-inputs `(("fontconfig" ,fontconfig) diff --git a/gnu/packages/patches/cairo-CVE-2016-9082.patch b/gnu/packages/patches/cairo-CVE-2016-9082.patch deleted file mode 100644 index ad83404194..0000000000 --- a/gnu/packages/patches/cairo-CVE-2016-9082.patch +++ /dev/null @@ -1,122 +0,0 @@ -From: Adrian Johnson -Date: Thu, 20 Oct 2016 21:12:30 +1030 -Subject: [PATCH] image: prevent invalid ptr access for > 4GB images - -Image data is often accessed using: - - image->data + y * image->stride - -On 64-bit achitectures if the image data is > 4GB, this computation -will overflow since both y and stride are 32-bit types. - -bug report: https://bugs.freedesktop.org/show_bug.cgi?id=98165 -patch: https://bugs.freedesktop.org/attachment.cgi?id=127421 ---- - boilerplate/cairo-boilerplate.c | 4 +++- - src/cairo-image-compositor.c | 4 ++-- - src/cairo-image-surface-private.h | 2 +- - src/cairo-mesh-pattern-rasterizer.c | 2 +- - src/cairo-png.c | 2 +- - src/cairo-script-surface.c | 3 ++- - 6 files changed, 10 insertions(+), 7 deletions(-) - -diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c -index 7fdbf79..4804dea 100644 ---- a/boilerplate/cairo-boilerplate.c -+++ b/boilerplate/cairo-boilerplate.c -@@ -42,6 +42,7 @@ - #undef CAIRO_VERSION_H - #include "../cairo-version.h" - -+#include - #include - #include - #include -@@ -976,7 +977,8 @@ cairo_surface_t * - cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file) - { - char format; -- int width, height, stride; -+ int width, height; -+ ptrdiff_t stride; - int x, y; - unsigned char *data; - cairo_surface_t *image = NULL; -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c -index 48072f8..3ca0006 100644 ---- a/src/cairo-image-compositor.c -+++ b/src/cairo-image-compositor.c -@@ -1575,7 +1575,7 @@ typedef struct _cairo_image_span_renderer { - pixman_image_t *src, *mask; - union { - struct fill { -- int stride; -+ ptrdiff_t stride; - uint8_t *data; - uint32_t pixel; - } fill; -@@ -1594,7 +1594,7 @@ typedef struct _cairo_image_span_renderer { - struct finish { - cairo_rectangle_int_t extents; - int src_x, src_y; -- int stride; -+ ptrdiff_t stride; - uint8_t *data; - } mask; - } u; -diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h -index 8ca694c..7e78d61 100644 ---- a/src/cairo-image-surface-private.h -+++ b/src/cairo-image-surface-private.h -@@ -71,7 +71,7 @@ struct _cairo_image_surface { - - int width; - int height; -- int stride; -+ ptrdiff_t stride; - int depth; - - unsigned owns_data : 1; -diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c -index 1b63ca8..e7f0db6 100644 ---- a/src/cairo-mesh-pattern-rasterizer.c -+++ b/src/cairo-mesh-pattern-rasterizer.c -@@ -470,7 +470,7 @@ draw_pixel (unsigned char *data, int width, int height, int stride, - tg += tg >> 16; - tb += tb >> 16; - -- *((uint32_t*) (data + y*stride + 4*x)) = ((ta << 16) & 0xff000000) | -+ *((uint32_t*) (data + y*(ptrdiff_t)stride + 4*x)) = ((ta << 16) & 0xff000000) | - ((tr >> 8) & 0xff0000) | ((tg >> 16) & 0xff00) | (tb >> 24); - } - } -diff --git a/src/cairo-png.c b/src/cairo-png.c -index 562b743..aa8c227 100644 ---- a/src/cairo-png.c -+++ b/src/cairo-png.c -@@ -673,7 +673,7 @@ read_png (struct png_read_closure_t *png_closure) - } - - for (i = 0; i < png_height; i++) -- row_pointers[i] = &data[i * stride]; -+ row_pointers[i] = &data[i * (ptrdiff_t)stride]; - - png_read_image (png, row_pointers); - png_read_end (png, info); -diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c -index ea0117d..91e4baa 100644 ---- a/src/cairo-script-surface.c -+++ b/src/cairo-script-surface.c -@@ -1202,7 +1202,8 @@ static cairo_status_t - _write_image_surface (cairo_output_stream_t *output, - const cairo_image_surface_t *image) - { -- int stride, row, width; -+ int row, width; -+ ptrdiff_t stride; - uint8_t row_stack[CAIRO_STACK_BUFFER_SIZE]; - uint8_t *rowdata; - uint8_t *data; --- -2.1.4 - diff --git a/gnu/packages/patches/cairo-setjmp-wrapper.patch b/gnu/packages/patches/cairo-setjmp-wrapper.patch deleted file mode 100644 index bffac6e041..0000000000 --- a/gnu/packages/patches/cairo-setjmp-wrapper.patch +++ /dev/null @@ -1,78 +0,0 @@ -Revert faulty commit to avoid undefined behaviour: -https://bugs.freedesktop.org/show_bug.cgi?id=104325 - -Taken from this upstream commit: -https://cgit.freedesktop.org/cairo/commit/?h=1.14&id=2acc4382c54bd8239361ceed14423412a343d311 - -diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c -index cb2e30c..5541bdc 100644 ---- a/src/cairo-bentley-ottmann-rectangular.c -+++ b/src/cairo-bentley-ottmann-rectangular.c -@@ -593,12 +593,6 @@ sweep_line_insert (sweep_line_t *sweep, rectangle_t *rectangle) - pqueue_push (sweep, rectangle); - } - --static int --sweep_line_setjmp (sweep_line_t *sweep_line) --{ -- return setjmp (sweep_line->unwind); --} -- - static cairo_status_t - _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, - int num_rectangles, -@@ -615,7 +609,7 @@ _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles, - rectangles, num_rectangles, - fill_rule, - do_traps, container); -- if ((status = sweep_line_setjmp (&sweep_line))) -+ if ((status = setjmp (sweep_line.unwind))) - return status; - - rectangle = rectangle_pop_start (&sweep_line); -diff --git a/src/cairo-png.c b/src/cairo-png.c -index e64b14a..068617d 100644 ---- a/src/cairo-png.c -+++ b/src/cairo-png.c -@@ -158,14 +158,6 @@ png_simple_warning_callback (png_structp png, - */ - } - --static int --png_setjmp (png_struct *png) --{ --#ifdef PNG_SETJMP_SUPPORTED -- return setjmp (png_jmpbuf (png)); --#endif -- return 0; --} - - /* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn. - * Otherwise, we will segfault if we are writing to a stream. */ -@@ -237,8 +229,10 @@ write_png (cairo_surface_t *surface, - goto BAIL4; - } - -- if (png_setjmp (png)) -+#ifdef PNG_SETJMP_SUPPORTED -+ if (setjmp (png_jmpbuf (png))) - goto BAIL4; -+#endif - - png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn); - -@@ -577,11 +571,12 @@ read_png (struct png_read_closure_t *png_closure) - png_set_read_fn (png, png_closure, stream_read_func); - - status = CAIRO_STATUS_SUCCESS; -- -- if (png_setjmp (png)) { -+#ifdef PNG_SETJMP_SUPPORTED -+ if (setjmp (png_jmpbuf (png))) { - surface = _cairo_surface_create_in_error (status); - goto BAIL; - } -+#endif - - png_read_info (png, info); - -- cgit v1.2.3 From 87f29c1e5d00050ffb7bef0ee26cb6a4cad49d0d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 10 Dec 2018 01:10:00 +0100 Subject: gnu: ghostscript: Update to 9.26. * gnu/packages/patches/ghostscript-bug-699708.patch, gnu/packages/patches/ghostscript-CVE-2018-16509.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/ghostscript.scm (ghostscript): Update to 9.26. [source](patches): Remove obsolete. --- gnu/local.mk | 2 - gnu/packages/ghostscript.scm | 8 +- .../patches/ghostscript-CVE-2018-16509.patch | 193 --------------------- gnu/packages/patches/ghostscript-bug-699708.patch | 160 ----------------- 4 files changed, 3 insertions(+), 360 deletions(-) delete mode 100644 gnu/packages/patches/ghostscript-CVE-2018-16509.patch delete mode 100644 gnu/packages/patches/ghostscript-bug-699708.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index aaab4c72ec..45d8effc11 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -738,8 +738,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ %D%/packages/patches/ghc-haddock-library-unbundle.patch \ - %D%/packages/patches/ghostscript-CVE-2018-16509.patch \ - %D%/packages/patches/ghostscript-bug-699708.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index b46451d94e..d8c0050513 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -135,7 +135,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") - (version "9.24") + (version "9.26") (source (origin (method url-fetch) @@ -145,10 +145,8 @@ printing, and psresize, for adjusting page sizes.") "/ghostscript-" version ".tar.xz")) (sha256 (base32 - "1mk922rnml93w2g42yxiyn8xqanc50cm65irrgh0b6lp4kgifjfl")) - (patches (search-patches "ghostscript-CVE-2018-16509.patch" - "ghostscript-bug-699708.patch" - "ghostscript-no-header-creationdate.patch" + "1645f47all5w27bfhiq15vycdm954lmr6agqkrp68ksq6xglgvch")) + (patches (search-patches "ghostscript-no-header-creationdate.patch" "ghostscript-no-header-id.patch" "ghostscript-no-header-uuid.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/patches/ghostscript-CVE-2018-16509.patch b/gnu/packages/patches/ghostscript-CVE-2018-16509.patch deleted file mode 100644 index 50ffa3cb98..0000000000 --- a/gnu/packages/patches/ghostscript-CVE-2018-16509.patch +++ /dev/null @@ -1,193 +0,0 @@ -Ghostscript 9.24 was released with an incomplete fix for CVE-2018-16509: -https://nvd.nist.gov/vuln/detail/CVE-2018-16509 -https://bugs.chromium.org/p/project-zero/issues/detail?id=1640#c19 -https://bugs.ghostscript.com/show_bug.cgi?id=699718 - -The reproducers no longer work after applying these commits: - -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5812b1b78fc4d36fdc293b7859de69241140d590 -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e914f1da46e33decc534486598dc3eadf69e6efb -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e5d316b72e3965b7968bb1d96baa137cd063ac6 -https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=643b24dbd002fb9c131313253c307cf3951b3d47 - -This patch is a "squashed" version of those. - -diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps -index bba3c8c0e..8fa7c51df 100644 ---- a/Resource/Init/gs_setpd.ps -+++ b/Resource/Init/gs_setpd.ps -@@ -95,27 +95,41 @@ level2dict begin - { % Since setpagedevice doesn't create new device objects, - % we must (carefully) reinstall the old parameters in - % the same device. -- .currentpagedevice pop //null currentdevice //null .trysetparams -+ .currentpagedevice pop //null currentdevice //null -+ { .trysetparams } .internalstopped -+ { -+ //null -+ } if - dup type /booleantype eq - { pop pop } -- { % This should never happen! -+ { - SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if -- cleartomark pop pop pop -+ {cleartomark pop pop pop} .internalstopped pop -+ % if resetting the entire device state failed, at least put back the -+ % security related key -+ currentdevice //null //false mark /.LockSafetyParams -+ currentpagedevice /.LockSafetyParams .knownget not -+ {systemdict /SAFER .knownget not {//false} } if -+ .putdeviceparamsonly - /.installpagedevice cvx /rangecheck signalerror - } - ifelse pop pop - % A careful reading of the Red Book reveals that an erasepage - % should occur, but *not* an initgraphics. - erasepage .beginpage -- } bind def -+ } bind executeonly def - - /.uninstallpagedevice -- { 2 .endpage { .currentnumcopies //false .outputpage } if -+ { -+ {2 .endpage { .currentnumcopies //false .outputpage } if} .internalstopped pop - nulldevice - } bind def - - (%grestorepagedevice) cvn -- { .uninstallpagedevice grestore .installpagedevice -+ { -+ .uninstallpagedevice -+ grestore -+ .installpagedevice - } bind def - - (%grestoreallpagedevice) cvn -diff --git a/psi/zdevice2.c b/psi/zdevice2.c -index 0c7080d57..159a0c0d9 100644 ---- a/psi/zdevice2.c -+++ b/psi/zdevice2.c -@@ -251,8 +251,8 @@ z2currentgstate(i_ctx_t *i_ctx_p) - /* ------ Wrappers for operators that reset the graphics state. ------ */ - - /* Check whether we need to call out to restore the page device. */ --static bool --restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) -+static int -+restore_page_device(i_ctx_t *i_ctx_p, const gs_gstate * pgs_old, const gs_gstate * pgs_new) - { - gx_device *dev_old = gs_currentdevice(pgs_old); - gx_device *dev_new; -@@ -260,9 +260,10 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) - gx_device *dev_t2; - bool samepagedevice = obj_eq(dev_old->memory, &gs_int_gstate(pgs_old)->pagedevice, - &gs_int_gstate(pgs_new)->pagedevice); -+ bool LockSafetyParams = dev_old->LockSafetyParams; - - if ((dev_t1 = (*dev_proc(dev_old, get_page_device)) (dev_old)) == 0) -- return false; -+ return 0; - /* If we are going to putdeviceparams in a callout, we need to */ - /* unlock temporarily. The device will be re-locked as needed */ - /* by putdeviceparams from the pgs_old->pagedevice dict state. */ -@@ -271,23 +272,51 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new) - dev_new = gs_currentdevice(pgs_new); - if (dev_old != dev_new) { - if ((dev_t2 = (*dev_proc(dev_new, get_page_device)) (dev_new)) == 0) -- return false; -- if (dev_t1 != dev_t2) -- return true; -+ samepagedevice = true; -+ else if (dev_t1 != dev_t2) -+ samepagedevice = false; -+ } -+ -+ if (LockSafetyParams && !samepagedevice) { -+ const int required_ops = 512; -+ const int required_es = 32; -+ -+ /* The %grestorepagedevice must complete: the biggest danger -+ is operand stack overflow. As we use get/putdeviceparams -+ that means pushing all the device params onto the stack, -+ pdfwrite having by far the largest number of parameters -+ at (currently) 212 key/value pairs - thus needing (currently) -+ 424 entries on the op stack. Allowing for working stack -+ space, and safety margin..... -+ */ -+ if (required_ops + ref_stack_count(&o_stack) >= ref_stack_max_count(&o_stack)) { -+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; -+ return_error(gs_error_stackoverflow); -+ } -+ /* We also want enough exec stack space - 32 is an overestimate of -+ what we need to complete the Postscript call out. -+ */ -+ if (required_es + ref_stack_count(&e_stack) >= ref_stack_max_count(&e_stack)) { -+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams; -+ return_error(gs_error_execstackoverflow); -+ } - } - /* - * The current implementation of setpagedevice just sets new - * parameters in the same device object, so we have to check - * whether the page device dictionaries are the same. - */ -- return !samepagedevice; -+ return samepagedevice ? 0 : 1; - } - - /* - grestore - */ - static int - z2grestore(i_ctx_t *i_ctx_p) - { -- if (!restore_page_device(igs, gs_gstate_saved(igs))) -+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ -+ if (code == 0) - return gs_grestore(igs); - return push_callout(i_ctx_p, "%grestorepagedevice"); - } -@@ -297,7 +326,9 @@ static int - z2grestoreall(i_ctx_t *i_ctx_p) - { - for (;;) { -- if (!restore_page_device(igs, gs_gstate_saved(igs))) { -+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code == 0) { - bool done = !gs_gstate_saved(gs_gstate_saved(igs)); - - gs_grestore(igs); -@@ -328,11 +359,15 @@ z2restore(i_ctx_t *i_ctx_p) - if (code < 0) return code; - - while (gs_gstate_saved(gs_gstate_saved(igs))) { -- if (restore_page_device(igs, gs_gstate_saved(igs))) -+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code > 0) - return push_callout(i_ctx_p, "%restore1pagedevice"); - gs_grestore(igs); - } -- if (restore_page_device(igs, gs_gstate_saved(igs))) -+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs)); -+ if (code < 0) return code; -+ if (code > 0) - return push_callout(i_ctx_p, "%restorepagedevice"); - - code = dorestore(i_ctx_p, asave); -@@ -355,9 +390,12 @@ static int - z2setgstate(i_ctx_t *i_ctx_p) - { - os_ptr op = osp; -+ int code; - - check_stype(*op, st_igstate_obj); -- if (!restore_page_device(igs, igstate_ptr(op))) -+ code = restore_page_device(i_ctx_p, igs, igstate_ptr(op)); -+ if (code < 0) return code; -+ if (code == 0) - return zsetgstate(i_ctx_p); - return push_callout(i_ctx_p, "%setgstatepagedevice"); - } diff --git a/gnu/packages/patches/ghostscript-bug-699708.patch b/gnu/packages/patches/ghostscript-bug-699708.patch deleted file mode 100644 index 1567be1c6f..0000000000 --- a/gnu/packages/patches/ghostscript-bug-699708.patch +++ /dev/null @@ -1,160 +0,0 @@ -Additional security fix that missed 9.24. - -Taken from upstream: -http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb713b3818b52d8a6cf62c951eba2e1795ff9624 - -From fb713b3818b52d8a6cf62c951eba2e1795ff9624 Mon Sep 17 00:00:00 2001 -From: Chris Liddell -Date: Thu, 6 Sep 2018 09:16:22 +0100 -Subject: [PATCH] Bug 699708 (part 1): 'Hide' non-replaceable error handlers - for SAFER - -We already had a 'private' dictionary for non-standard errors: gserrordict. - -This now includes all the default error handlers, the dictionary is made -noaccess and all the prodedures are bound and executeonly. - -When running with -dSAFER, in the event of a Postscript error, instead of -pulling the handler from errordict, we'll pull it from gserrordict - thus -malicious input cannot trigger problems by the use of custom error handlers. - -errordict remains open and writeable, so files such as the Quality Logic tests -that install their own handlers will still 'work', with the exception that the -custom error handlers will not be called. - -This is a 'first pass', 'sledgehammer' approach: a nice addition would to allow -an integrator to specify a list of errors that are not to be replaced (for -example, embedded applications would probably want to ensure that VMerror is -always handled as they intend). ---- - Resource/Init/gs_init.ps | 29 ++++++++++++++++++----------- - psi/interp.c | 30 +++++++++++++++++++++--------- - 2 files changed, 39 insertions(+), 20 deletions(-) - -diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps -index 071c39205..bc8b7951c 100644 ---- a/Resource/Init/gs_init.ps -+++ b/Resource/Init/gs_init.ps -@@ -881,7 +881,7 @@ userdict /.currentresourcefile //null put - { not exch pop exit } { pop } ifelse - } - for exch pop .quit -- } bind def -+ } bind executeonly def - /.errorhandler % .errorhandler - - { % Detect an internal 'stopped'. - 1 .instopped { //null eq { pop pop stop } if } if -@@ -926,7 +926,7 @@ userdict /.currentresourcefile //null put - $error /globalmode get $error /.nosetlocal get and .setglobal - $error /.inerror //false put - stop -- } bind def -+ } bind executeonly def - % Define the standard handleerror. We break out the printing procedure - % (.printerror) so that it can be extended for binary output - % if the Level 2 facilities are present. -@@ -976,7 +976,7 @@ userdict /.currentresourcefile //null put - ifelse % newerror - end - flush -- } bind def -+ } bind executeonly def - /.printerror_long % long error printout, - % $error is on the dict stack - { % Push the (anonymous) stack printing procedure. -@@ -1053,14 +1053,14 @@ userdict /.currentresourcefile //null put - { (Current file position is ) print position = } - if - -- } bind def -+ } bind executeonly def - % Define a procedure for clearing the error indication. - /.clearerror - { $error /newerror //false put - $error /errorname //null put - $error /errorinfo //null put - 0 .setoserrno -- } bind def -+ } bind executeonly def - - % Define $error. This must be in local VM. - .currentglobal //false .setglobal -@@ -1086,11 +1086,15 @@ end - /errordict ErrorNames length 3 add dict - .forcedef % errordict is local, systemdict is global - .setglobal % back to global VM --% For greater Adobe compatibility, we put all non-standard errors in a --% separate dictionary, gserrordict. It does not need to be in local VM, --% because PostScript programs do not access it. -+% gserrordict contains all the default error handling methods, but unlike -+% errordict it is noaccess after creation (also it is in global VM). -+% When running 'SAFER', we'll ignore the contents of errordict, which -+% may have been tampered with by the running job, and always use gserrordict -+% gserrordict also contains any non-standard errors, for better compatibility -+% with Adobe. -+% - % NOTE: the name gserrordict is known to the interpreter. --/gserrordict 5 dict def -+/gserrordict ErrorNames length 3 add dict def - % Register an error in errordict. We make this a procedure because we only - % register the Level 1 errors here: the rest are registered by "feature" - % files. However, ErrorNames contains all of the error names regardless of -@@ -1119,8 +1123,11 @@ errordict begin - } bind def - end % errordict - --% Put non-standard errors in gserrordict. --gserrordict /unknownerror errordict /unknownerror get put -+% Put all the default handlers in gserrordict -+gserrordict -+errordict {2 index 3 1 roll put} forall -+noaccess pop -+% remove the non-standard errors from errordict - errordict /unknownerror .undef - % Define a stable private copy of handleerror that we will always use under - % JOBSERVER mode. -diff --git a/psi/interp.c b/psi/interp.c -index c27b70dca..d41a9d3f5 100644 ---- a/psi/interp.c -+++ b/psi/interp.c -@@ -661,16 +661,28 @@ again: - return code; - if (gs_errorname(i_ctx_p, code, &error_name) < 0) - return code; /* out-of-range error code! */ -- /* -- * For greater Adobe compatibility, only the standard PostScript errors -- * are defined in errordict; the rest are in gserrordict. -+ -+ /* If LockFilePermissions is true, we only refer to gserrordict, which -+ * is not accessible to Postcript jobs - */ -- if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || -- (dict_find(perrordict, &error_name, &epref) <= 0 && -- (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -- dict_find(perrordict, &error_name, &epref) <= 0)) -- ) -- return code; /* error name not in errordict??? */ -+ if (i_ctx_p->LockFilePermissions) { -+ if (((dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -+ dict_find(perrordict, &error_name, &epref) <= 0)) -+ ) -+ return code; /* error name not in errordict??? */ -+ } -+ else { -+ /* -+ * For greater Adobe compatibility, only the standard PostScript errors -+ * are defined in errordict; the rest are in gserrordict. -+ */ -+ if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 || -+ (dict_find(perrordict, &error_name, &epref) <= 0 && -+ (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 || -+ dict_find(perrordict, &error_name, &epref) <= 0)) -+ ) -+ return code; /* error name not in errordict??? */ -+ } - doref = *epref; - epref = &doref; - /* Push the error object on the operand stack if appropriate. */ --- -2.18.0 - -- cgit v1.2.3 From af0162bcc1057aeda9bcadd40dee5a884106f49f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 10 Dec 2018 02:34:08 +0100 Subject: gnu: cyrus-sasl: Update to 2.1.27. * gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/cyrus-sasl.scm (cyrus-sasl): Update to 2.1.27. [source](patches): Remove. [inputs]: Move MIT-KRB5 from here ... [propagated-inputs]: ... to here. New field. * gnu/packages/openldap.scm (openldap)[arguments]: Adjust 'patch-sasl-path' phase (which was defunct, possibly since b148506df74) to add krb5 linker flags. --- gnu/local.mk | 1 - gnu/packages/cyrus-sasl.scm | 9 +- gnu/packages/openldap.scm | 10 +- .../patches/cyrus-sasl-CVE-2013-4122.patch | 130 --------------------- 4 files changed, 12 insertions(+), 138 deletions(-) delete mode 100644 gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 45d8effc11..0d279e55eb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -649,7 +649,6 @@ dist_patch_DATA = \ %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-2017-12836.patch \ - %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \ %D%/packages/patches/datamash-arm-tests.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \ diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index 60c1e0ef94..0a5e464719 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -31,7 +31,7 @@ (define-public cyrus-sasl (package (name "cyrus-sasl") - (version "2.1.26") + (version "2.1.27") (source (origin (method url-fetch) (uri (list (string-append @@ -40,13 +40,14 @@ (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version ".tar.gz"))) - (patches (search-patches "cyrus-sasl-CVE-2013-4122.patch")) (sha256 (base32 - "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g")))) + "1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6")))) (build-system gnu-build-system) (inputs `(("gdbm" ,gdbm) - ("mit-krb5" ,mit-krb5) ("openssl" ,openssl))) + (propagated-inputs + `(;; cyrus-sasl.pc refers to -lkrb5, so propagate it. + ("mit-krb5" ,mit-krb5))) (arguments '(#:configure-flags (list (string-append "--with-plugindir=" (assoc-ref %outputs "out") diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 850223cd4c..3cba8142bf 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -91,11 +91,15 @@ ;; Give -L arguments for cyrus-sasl to avoid propagation. (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) - (sasl (assoc-ref inputs "cyrus-sasl"))) + (krb5 (assoc-ref inputs "mit-krb5"))) ;propagated from cyrus-sasl + + ;; The ancient Libtool bundled with OpenLDAP copies the linker flags + ;; from Cyrus-SASL and embeds them into its own .la files. Add an + ;; absolute reference to Kerberos so it does not have to be propagated. (substitute* (map (lambda (f) (string-append out "/" f)) '("lib/libldap.la" "lib/libldap_r.la")) - (("-lsasl2" lib) - (string-append "-L" sasl "/lib " lib))) + (("-lkrb5" lib) + (string-append "-L" krb5 "/lib " lib))) #t)))))) (synopsis "Implementation of the Lightweight Directory Access Protocol") (description diff --git a/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch b/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch deleted file mode 100644 index fc72e42e03..0000000000 --- a/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch +++ /dev/null @@ -1,130 +0,0 @@ -Fix CVE-2013-4122. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4122 - -Patch copied from upstream source repository: -https://github.com/cyrusimap/cyrus-sasl/commit/dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d - -From dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d Mon Sep 17 00:00:00 2001 -From: mancha -Date: Thu, 11 Jul 2013 10:08:07 +0100 -Subject: Handle NULL returns from glibc 2.17+ crypt() - -Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL -(w/ NULL return) if the salt violates specifications. Additionally, -on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords -passed to crypt() fail with EPERM (w/ NULL return). - -When using glibc's crypt(), check return value to avoid a possible -NULL pointer dereference. - -Patch by mancha1@hush.com. ---- - pwcheck/pwcheck_getpwnam.c | 3 ++- - pwcheck/pwcheck_getspnam.c | 4 +++- - saslauthd/auth_getpwent.c | 4 +++- - saslauthd/auth_shadow.c | 8 +++----- - 4 files changed, 11 insertions(+), 8 deletions(-) - -diff --git a/pwcheck/pwcheck_getpwnam.c b/pwcheck/pwcheck_getpwnam.c -index 4b34222..400289c 100644 ---- a/pwcheck/pwcheck_getpwnam.c -+++ b/pwcheck/pwcheck_getpwnam.c -@@ -32,6 +32,7 @@ char *userid; - char *password; - { - char* r; -+ char* crpt_passwd; - struct passwd *pwd; - - pwd = getpwnam(userid); -@@ -41,7 +42,7 @@ char *password; - else if (pwd->pw_passwd[0] == '*') { - r = "Account disabled"; - } -- else if (strcmp(pwd->pw_passwd, crypt(password, pwd->pw_passwd)) != 0) { -+ else if (!(crpt_passwd = crypt(password, pwd->pw_passwd)) || strcmp(pwd->pw_passwd, (const char *)crpt_passwd) != 0) { - r = "Incorrect password"; - } - else { -diff --git a/pwcheck/pwcheck_getspnam.c b/pwcheck/pwcheck_getspnam.c -index 2b11286..6d607bb 100644 ---- a/pwcheck/pwcheck_getspnam.c -+++ b/pwcheck/pwcheck_getspnam.c -@@ -32,13 +32,15 @@ char *userid; - char *password; - { - struct spwd *pwd; -+ char *crpt_passwd; - - pwd = getspnam(userid); - if (!pwd) { - return "Userid not found"; - } - -- if (strcmp(pwd->sp_pwdp, crypt(password, pwd->sp_pwdp)) != 0) { -+ crpt_passwd = crypt(password, pwd->sp_pwdp); -+ if (!crpt_passwd || strcmp(pwd->sp_pwdp, (const char *)crpt_passwd) != 0) { - return "Incorrect password"; - } - else { -diff --git a/saslauthd/auth_getpwent.c b/saslauthd/auth_getpwent.c -index fc8029d..d4ebe54 100644 ---- a/saslauthd/auth_getpwent.c -+++ b/saslauthd/auth_getpwent.c -@@ -77,6 +77,7 @@ auth_getpwent ( - { - /* VARIABLES */ - struct passwd *pw; /* pointer to passwd file entry */ -+ char *crpt_passwd; /* encrypted password */ - int errnum; - /* END VARIABLES */ - -@@ -105,7 +106,8 @@ auth_getpwent ( - } - } - -- if (strcmp(pw->pw_passwd, (const char *)crypt(password, pw->pw_passwd))) { -+ crpt_passwd = crypt(password, pw->pw_passwd); -+ if (!crpt_passwd || strcmp(pw->pw_passwd, (const char *)crpt_passwd)) { - if (flags & VERBOSE) { - syslog(LOG_DEBUG, "DEBUG: auth_getpwent: %s: invalid password", login); - } -diff --git a/saslauthd/auth_shadow.c b/saslauthd/auth_shadow.c -index 677131b..1988afd 100644 ---- a/saslauthd/auth_shadow.c -+++ b/saslauthd/auth_shadow.c -@@ -210,8 +210,8 @@ auth_shadow ( - RETURN("NO Insufficient permission to access NIS authentication database (saslauthd)"); - } - -- cpw = strdup((const char *)crypt(password, sp->sp_pwdp)); -- if (strcmp(sp->sp_pwdp, cpw)) { -+ cpw = crypt(password, sp->sp_pwdp); -+ if (!cpw || strcmp(sp->sp_pwdp, (const char *)cpw)) { - if (flags & VERBOSE) { - /* - * This _should_ reveal the SHADOW_PW_LOCKED prefix to an -@@ -221,10 +221,8 @@ auth_shadow ( - syslog(LOG_DEBUG, "DEBUG: auth_shadow: pw mismatch: '%s' != '%s'", - sp->sp_pwdp, cpw); - } -- free(cpw); - RETURN("NO Incorrect password"); - } -- free(cpw); - - /* - * The following fields will be set to -1 if: -@@ -286,7 +284,7 @@ auth_shadow ( - RETURN("NO Invalid username"); - } - -- if (strcmp(upw->upw_passwd, crypt(password, upw->upw_passwd)) != 0) { -+ if (!(cpw = crypt(password, upw->upw_passwd)) || (strcmp(upw->upw_passwd, (const char *)cpw) != 0)) { - if (flags & VERBOSE) { - syslog(LOG_DEBUG, "auth_shadow: pw mismatch: %s != %s", - password, upw->upw_passwd); --- -cgit v0.12 - -- cgit v1.2.3 From 06f5bc4e12a78883c6f4a543711311bd66e6832b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 10 Dec 2018 02:38:32 +0100 Subject: gnu: GnuTLS: Update to 3.6.5. * gnu/packages/patches/gnutls-skip-pkgconfig-test.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/tls.scm (gnutls): Update to 3.6.5. [source](patches): Remove obsolete. [source](snippet): Add Guile detection fix. * gnu/packages/gnome.scm (libsoup)[arguments]: Adjust 'certtool' invokation to cope with the new API. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 3 ++- .../patches/gnutls-skip-pkgconfig-test.patch | 24 ---------------------- gnu/packages/tls.scm | 17 ++++++++++----- 4 files changed, 14 insertions(+), 31 deletions(-) delete mode 100644 gnu/packages/patches/gnutls-skip-pkgconfig-test.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 0d279e55eb..3f2ca7a845 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -772,7 +772,6 @@ dist_patch_DATA = \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gnucash-disable-failing-tests.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ - %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9d8e4a8d33..cea9445191 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2556,7 +2556,8 @@ libxml to ease remote use of the RESTful API.") "" ;URI of subject "127.0.0.1" ;IP address of subject "" ;signing? - "" ;encryption? + "" ;encryption (RSA)? + "" ;data encryption? "" ;sign OCSP requests? "" ;sign code? "" ;time stamping? diff --git a/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch b/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch deleted file mode 100644 index 1fad7c14e3..0000000000 --- a/gnu/packages/patches/gnutls-skip-pkgconfig-test.patch +++ /dev/null @@ -1,24 +0,0 @@ -FIXME: The static test fails with an error such as: - -/tmp/guix-build-gnutls-3.5.13.drv-0/ccOnGPmc.o: In function `main': -c.29617.tmp.c:(.text+0x5): undefined reference to `gnutls_global_init' -collect2: error: ld returned 1 exit status -FAIL pkgconfig.sh (exit status: 1) - -diff --git a/tests/pkgconfig.sh b/tests/pkgconfig.sh -index 6bd4e62f9..05aab8278 100755 ---- a/tests/pkgconfig.sh -+++ b/tests/pkgconfig.sh -@@ -57,11 +57,7 @@ echo "Trying dynamic linking with:" - echo " * flags: $(${PKGCONFIG} --libs gnutls)" - echo " * common: ${COMMON}" - echo " * lib: ${CFLAGS}" --cc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} -- --echo "" --echo "Trying static linking with $(${PKGCONFIG} --libs --static gnutls)" --cc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --static --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} -+gcc ${TMPFILE} -o ${TMPFILE_O} $(${PKGCONFIG} --libs gnutls) $(${PKGCONFIG} --cflags gnutls) ${COMMON} - - rm -f ${TMPFILE} ${TMPFILE_O} - diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index d9971441c6..73be90d0d3 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -162,7 +162,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.18") + (version "3.6.5") (source (origin (method url-fetch) (uri @@ -171,12 +171,19 @@ living in the same process.") (string-append "mirror://gnupg/gnutls/v" (version-major+minor version) "/gnutls-" version ".tar.xz")) - (patches - (search-patches "gnutls-skip-trust-store-test.patch" - "gnutls-skip-pkgconfig-test.patch")) + (patches (search-patches "gnutls-skip-trust-store-test.patch")) (sha256 (base32 - "0d02x28fwkkx7xzn7807nww6idchizzq3plx8sfcyiw7wzclh8mf")))) + "0ddvg97dyrh8dkffv1mdc0knxx5my3qdbzv97s4a6jggmk9wwgh7")) + (modules '((guix build utils))) + (snippet + '(begin + ;; XXX: The generated configure script in GnuTLS 3.6.5 + ;; apparently does not know about Guile 2.2. + (substitute* "configure" + (("guile_versions_to_search=\"2\\.0 1\\.8\"") + "guile_versions_to_search=\"2.2 2.0 1.8\"")) + #t)))) (build-system gnu-build-system) (arguments `(; Ensure we don't keep a reference to this buggy software. -- cgit v1.2.3 From 6521155212990e22a903ea7a89da676cb2a09499 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 10 Dec 2018 07:39:52 +0100 Subject: gnu: glib-networking: Update to 2.58.0. * gnu/packages/gnome.scm (glib-networking): Update to 2.58.0. [build-system]: Change to MESON-BUILD-SYSTEM. [arguments]: Explicitly disable libproxy; add phase to appease tests. (libgdata, libsoup)[arguments]: Remove phase that sets SSL_CERT_FILE. * gnu/packages/spice.scm (spice)[arguments]: Likewise. * gnu/packages/web.scm (uhttpmock)[arguments]: Likewise. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 43 ++++++---------------- .../patches/glib-networking-ssl-cert-file.patch | 29 --------------- gnu/packages/spice.scm | 6 +-- gnu/packages/web.scm | 9 ----- 5 files changed, 12 insertions(+), 76 deletions(-) delete mode 100644 gnu/packages/patches/glib-networking-ssl-cert-file.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3f2ca7a845..03627b98c1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -741,7 +741,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \ - %D%/packages/patches/glib-networking-ssl-cert-file.patch \ %D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cea9445191..95bfcaf564 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -360,12 +360,6 @@ formats like PNG, SVG, PDF and EPS.") (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") - #t)) (add-before 'check 'disable-failing-tests (lambda _ ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2. @@ -2396,7 +2390,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.54.1") + (version "2.58.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -2404,29 +2398,17 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0bq16m9nh3gcz9x2fvygr0iwxd2pxcbrm3lj3kihsnh1afv8g9za")) - (patches - (search-patches "glib-networking-ssl-cert-file.patch")))) - (build-system gnu-build-system) + "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx")))) + (build-system meson-build-system) (arguments - `(#:configure-flags - '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-giomoduledir - ;; Install GIO modules into $out/lib/gio/modules. - (lambda _ - (substitute* "configure" - (("GIO_MODULE_DIR=.*") - (string-append "GIO_MODULE_DIR=" %output - "/lib/gio/modules\n"))) - #t)) - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) + `(#:configure-flags '("-Dlibproxy_support=false") + #:phases (modify-phases %standard-phases + (add-before 'check 'disable-TLSv1.3 + (lambda _ + ;; XXX: One test fails when TLS 1.3 is enabled, fixed in 2.60.0: + ;; . + (setenv "G_TLS_GNUTLS_PRIORITY" "NORMAL:-VERS-TLS1.3") + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) @@ -2516,9 +2498,6 @@ libxml to ease remote use of the RESTful API.") ;; The 'check-local' target runs 'env LANG=C sort -u', ;; unset 'LC_ALL' to make 'LANG' working. (unsetenv "LC_ALL") - ;; The ca-certificates.crt is not available in the build - ;; environment. - (setenv "SSL_CERT_FILE" "/dev/null") ;; HTTPD in Guix uses mod_event and does not build prefork. (substitute* "tests/httpd.conf" (("^LoadModule mpm_prefork_module.*$") "\n")) diff --git a/gnu/packages/patches/glib-networking-ssl-cert-file.patch b/gnu/packages/patches/glib-networking-ssl-cert-file.patch deleted file mode 100644 index 32bdd0790f..0000000000 --- a/gnu/packages/patches/glib-networking-ssl-cert-file.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b010e41346d418220582c20ab8d7f3971e4fb78a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= -Date: Fri, 14 Aug 2015 17:28:36 +0800 -Subject: [PATCH] gnutls: Allow overriding the anchor file location by - 'SSL_CERT_FILE' - ---- - tls/gnutls/gtlsbackend-gnutls.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tls/gnutls/gtlsbackend-gnutls.c b/tls/gnutls/gtlsbackend-gnutls.c -index 55ec1a5..217d3c8 100644 ---- a/tls/gnutls/gtlsbackend-gnutls.c -+++ b/tls/gnutls/gtlsbackend-gnutls.c -@@ -101,8 +101,10 @@ g_tls_backend_gnutls_real_create_database (GTlsBackendGnutls *self, - GError **error) - { - const gchar *anchor_file = NULL; -+ anchor_file = g_getenv ("SSL_CERT_FILE"); - #ifdef GTLS_SYSTEM_CA_FILE -- anchor_file = GTLS_SYSTEM_CA_FILE; -+ if (!anchor_file) -+ anchor_file = GTLS_SYSTEM_CA_FILE; - #endif - return g_tls_file_database_new (anchor_file, error); - } --- -2.4.3 - diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 94e6aa8438..8ab5a335c8 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -213,11 +213,7 @@ which allows users to view a desktop computing environment.") "--enable-automated-tests") ;; Several tests appear to be opening the same sockets concurrently. - #:parallel-tests? #f - - #:phases (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ (setenv "SSL_CERT_FILE" "/dev/null") #t))))) + #:parallel-tests? #f)) (synopsis "Server implementation of the SPICE protocol") (description "SPICE is a remote display system built for virtual environments which allows you to view a computing 'desktop' environment diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9b85bb4309..0aa0b321ff 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4243,15 +4243,6 @@ you'd expect.") (base32 "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6")))) (build-system glib-or-gtk-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ - ;; Search for ca-certificates.crt files - ;; during the check phase. - (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) (native-inputs `(("gobject-introspection" ,gobject-introspection) ;; For check phase. -- cgit v1.2.3 From 3f2848a5f91bf7bb9c5643776be13196f587f952 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 12 Dec 2018 20:36:46 +0100 Subject: gnu: libtiff: Update to 4.0.10. * gnu/packages/patches/libtiff-CVE-2017-18013.patch, gnu/packages/patches/libtiff-CVE-2017-9935.patch, gnu/packages/patches/libtiff-CVE-2018-10963.patch, gnu/packages/patches/libtiff-CVE-2018-8905.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/image.scm (libtiff): Update to 4.0.10. [source](patches): Remove. --- gnu/local.mk | 4 - gnu/packages/image.scm | 8 +- gnu/packages/patches/libtiff-CVE-2017-18013.patch | 45 ------ gnu/packages/patches/libtiff-CVE-2017-9935.patch | 162 ---------------------- gnu/packages/patches/libtiff-CVE-2018-10963.patch | 40 ------ gnu/packages/patches/libtiff-CVE-2018-8905.patch | 61 -------- 6 files changed, 2 insertions(+), 318 deletions(-) delete mode 100644 gnu/packages/patches/libtiff-CVE-2017-18013.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2017-9935.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2018-10963.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2018-8905.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 03627b98c1..fe5224c7de 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -909,10 +909,6 @@ dist_patch_DATA = \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ - %D%/packages/patches/libtiff-CVE-2017-9935.patch \ - %D%/packages/patches/libtiff-CVE-2017-18013.patch \ - %D%/packages/patches/libtiff-CVE-2018-8905.patch \ - %D%/packages/patches/libtiff-CVE-2018-10963.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 92447c23e2..1a6b8fe1c9 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -461,7 +461,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") - (version "4.0.9") + (version "4.0.10") (source (origin (method url-fetch) @@ -469,11 +469,7 @@ extracting icontainer icon files.") version ".tar.gz")) (sha256 (base32 - "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf")) - (patches (search-patches "libtiff-CVE-2017-9935.patch" - "libtiff-CVE-2017-18013.patch" - "libtiff-CVE-2018-8905.patch" - "libtiff-CVE-2018-10963.patch")))) + "1r4np635gr6zlc0bic38dzvxia6iqzcrary4n1ylarzpr8fd2lic")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation diff --git a/gnu/packages/patches/libtiff-CVE-2017-18013.patch b/gnu/packages/patches/libtiff-CVE-2017-18013.patch deleted file mode 100644 index ba03c83847..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2017-18013.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2017-18013: - -http://bugzilla.maptools.org/show_bug.cgi?id=2770 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-18013 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/c6f41df7b581402dfba3c19a1e3df4454c551a01 - -From c6f41df7b581402dfba3c19a1e3df4454c551a01 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sun, 31 Dec 2017 15:09:41 +0100 -Subject: [PATCH] libtiff/tif_print.c: TIFFPrintDirectory(): fix null pointer - dereference on corrupted file. Fixes - http://bugzilla.maptools.org/show_bug.cgi?id=2770 - ---- - libtiff/tif_print.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c -index 9959d353..8deceb2b 100644 ---- a/libtiff/tif_print.c -+++ b/libtiff/tif_print.c -@@ -665,13 +665,13 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - fprintf(fd, " %3lu: [%8I64u, %8I64u]\n", - (unsigned long) s, -- (unsigned __int64) td->td_stripoffset[s], -- (unsigned __int64) td->td_stripbytecount[s]); -+ td->td_stripoffset ? (unsigned __int64) td->td_stripoffset[s] : 0, -+ td->td_stripbytecount ? (unsigned __int64) td->td_stripbytecount[s] : 0); - #else - fprintf(fd, " %3lu: [%8llu, %8llu]\n", - (unsigned long) s, -- (unsigned long long) td->td_stripoffset[s], -- (unsigned long long) td->td_stripbytecount[s]); -+ td->td_stripoffset ? (unsigned long long) td->td_stripoffset[s] : 0, -+ td->td_stripbytecount ? (unsigned long long) td->td_stripbytecount[s] : 0); - #endif - } - } --- -2.16.1 - diff --git a/gnu/packages/patches/libtiff-CVE-2017-9935.patch b/gnu/packages/patches/libtiff-CVE-2017-9935.patch deleted file mode 100644 index 5685d81f68..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2017-9935.patch +++ /dev/null @@ -1,162 +0,0 @@ -Fix CVE-2017-9935 - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9935 -http://bugzilla.maptools.org/show_bug.cgi?id=2704 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/3dd8f6a357981a4090f126ab9025056c938b6940 - -From 3dd8f6a357981a4090f126ab9025056c938b6940 Mon Sep 17 00:00:00 2001 -From: Brian May -Date: Thu, 7 Dec 2017 07:46:47 +1100 -Subject: [PATCH] tiff2pdf: Fix CVE-2017-9935 - -Fix for http://bugzilla.maptools.org/show_bug.cgi?id=2704 - -This vulnerability - at least for the supplied test case - is because we -assume that a tiff will only have one transfer function that is the same -for all pages. This is not required by the TIFF standards. - -We than read the transfer function for every page. Depending on the -transfer function, we allocate either 2 or 4 bytes to the XREF buffer. -We allocate this memory after we read in the transfer function for the -page. - -For the first exploit - POC1, this file has 3 pages. For the first page -we allocate 2 extra extra XREF entries. Then for the next page 2 more -entries. Then for the last page the transfer function changes and we -allocate 4 more entries. - -When we read the file into memory, we assume we have 4 bytes extra for -each and every page (as per the last transfer function we read). Which -is not correct, we only have 2 bytes extra for the first 2 pages. As a -result, we end up writing past the end of the buffer. - -There are also some related issues that this also fixes. For example, -TIFFGetField can return uninitalized pointer values, and the logic to -detect a N=3 vs N=1 transfer function seemed rather strange. - -It is also strange that we declare the transfer functions to be of type -float, when the standard says they are unsigned 16 bit values. This is -fixed in another patch. - -This patch will check to ensure that the N value for every transfer -function is the same for every page. If this changes, we abort with an -error. In theory, we should perhaps check that the transfer function -itself is identical for every page, however we don't do that due to the -confusion of the type of the data in the transfer function. ---- - libtiff/tif_dir.c | 3 +++ - tools/tiff2pdf.c | 65 +++++++++++++++++++++++++++++++++++++------------------ - 2 files changed, 47 insertions(+), 21 deletions(-) - -diff --git a/libtiff/tif_dir.c b/libtiff/tif_dir.c -index 2ccaf448..cbf2b693 100644 ---- a/libtiff/tif_dir.c -+++ b/libtiff/tif_dir.c -@@ -1065,6 +1065,9 @@ _TIFFVGetField(TIFF* tif, uint32 tag, va_list ap) - if (td->td_samplesperpixel - td->td_extrasamples > 1) { - *va_arg(ap, uint16**) = td->td_transferfunction[1]; - *va_arg(ap, uint16**) = td->td_transferfunction[2]; -+ } else { -+ *va_arg(ap, uint16**) = NULL; -+ *va_arg(ap, uint16**) = NULL; - } - break; - case TIFFTAG_REFERENCEBLACKWHITE: -diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c -index d1a9b095..c3ec0746 100644 ---- a/tools/tiff2pdf.c -+++ b/tools/tiff2pdf.c -@@ -1047,6 +1047,8 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){ - uint16 pagen=0; - uint16 paged=0; - uint16 xuint16=0; -+ uint16 tiff_transferfunctioncount=0; -+ float* tiff_transferfunction[3]; - - directorycount=TIFFNumberOfDirectories(input); - t2p->tiff_pages = (T2P_PAGE*) _TIFFmalloc(TIFFSafeMultiply(tmsize_t,directorycount,sizeof(T2P_PAGE))); -@@ -1147,26 +1149,48 @@ void t2p_read_tiff_init(T2P* t2p, TIFF* input){ - } - #endif - if (TIFFGetField(input, TIFFTAG_TRANSFERFUNCTION, -- &(t2p->tiff_transferfunction[0]), -- &(t2p->tiff_transferfunction[1]), -- &(t2p->tiff_transferfunction[2]))) { -- if((t2p->tiff_transferfunction[1] != (float*) NULL) && -- (t2p->tiff_transferfunction[2] != (float*) NULL) && -- (t2p->tiff_transferfunction[1] != -- t2p->tiff_transferfunction[0])) { -- t2p->tiff_transferfunctioncount = 3; -- t2p->tiff_pages[i].page_extra += 4; -- t2p->pdf_xrefcount += 4; -- } else { -- t2p->tiff_transferfunctioncount = 1; -- t2p->tiff_pages[i].page_extra += 2; -- t2p->pdf_xrefcount += 2; -- } -- if(t2p->pdf_minorversion < 2) -- t2p->pdf_minorversion = 2; -+ &(tiff_transferfunction[0]), -+ &(tiff_transferfunction[1]), -+ &(tiff_transferfunction[2]))) { -+ -+ if((tiff_transferfunction[1] != (float*) NULL) && -+ (tiff_transferfunction[2] != (float*) NULL) -+ ) { -+ tiff_transferfunctioncount=3; -+ } else { -+ tiff_transferfunctioncount=1; -+ } - } else { -- t2p->tiff_transferfunctioncount=0; -+ tiff_transferfunctioncount=0; - } -+ -+ if (i > 0){ -+ if (tiff_transferfunctioncount != t2p->tiff_transferfunctioncount){ -+ TIFFError( -+ TIFF2PDF_MODULE, -+ "Different transfer function on page %d", -+ i); -+ t2p->t2p_error = T2P_ERR_ERROR; -+ return; -+ } -+ } -+ -+ t2p->tiff_transferfunctioncount = tiff_transferfunctioncount; -+ t2p->tiff_transferfunction[0] = tiff_transferfunction[0]; -+ t2p->tiff_transferfunction[1] = tiff_transferfunction[1]; -+ t2p->tiff_transferfunction[2] = tiff_transferfunction[2]; -+ if(tiff_transferfunctioncount == 3){ -+ t2p->tiff_pages[i].page_extra += 4; -+ t2p->pdf_xrefcount += 4; -+ if(t2p->pdf_minorversion < 2) -+ t2p->pdf_minorversion = 2; -+ } else if (tiff_transferfunctioncount == 1){ -+ t2p->tiff_pages[i].page_extra += 2; -+ t2p->pdf_xrefcount += 2; -+ if(t2p->pdf_minorversion < 2) -+ t2p->pdf_minorversion = 2; -+ } -+ - if( TIFFGetField( - input, - TIFFTAG_ICCPROFILE, -@@ -1828,9 +1852,8 @@ void t2p_read_tiff_data(T2P* t2p, TIFF* input){ - &(t2p->tiff_transferfunction[1]), - &(t2p->tiff_transferfunction[2]))) { - if((t2p->tiff_transferfunction[1] != (float*) NULL) && -- (t2p->tiff_transferfunction[2] != (float*) NULL) && -- (t2p->tiff_transferfunction[1] != -- t2p->tiff_transferfunction[0])) { -+ (t2p->tiff_transferfunction[2] != (float*) NULL) -+ ) { - t2p->tiff_transferfunctioncount=3; - } else { - t2p->tiff_transferfunctioncount=1; --- -2.16.1 - diff --git a/gnu/packages/patches/libtiff-CVE-2018-10963.patch b/gnu/packages/patches/libtiff-CVE-2018-10963.patch deleted file mode 100644 index d31c12399d..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2018-10963.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix CVE-2018-10963: - -http://bugzilla.maptools.org/show_bug.cgi?id=2795 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10963 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/de144fd228e4be8aa484c3caf3d814b6fa88c6d9 - -From de144fd228e4be8aa484c3caf3d814b6fa88c6d9 Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sat, 12 May 2018 14:24:15 +0200 -Subject: [PATCH] TIFFWriteDirectorySec: avoid assertion. Fixes - http://bugzilla.maptools.org/show_bug.cgi?id=2795. CVE-2018-10963 - ---- - libtiff/tif_dirwrite.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c -index 2430de6d..c15a28db 100644 ---- a/libtiff/tif_dirwrite.c -+++ b/libtiff/tif_dirwrite.c -@@ -695,8 +695,11 @@ TIFFWriteDirectorySec(TIFF* tif, int isimage, int imagedone, uint64* pdiroff) - } - break; - default: -- assert(0); /* we should never get here */ -- break; -+ TIFFErrorExt(tif->tif_clientdata,module, -+ "Cannot write tag %d (%s)", -+ TIFFFieldTag(o), -+ o->field_name ? o->field_name : "unknown"); -+ goto bad; - } - } - } --- -2.17.0 - diff --git a/gnu/packages/patches/libtiff-CVE-2018-8905.patch b/gnu/packages/patches/libtiff-CVE-2018-8905.patch deleted file mode 100644 index f49815789e..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2018-8905.patch +++ /dev/null @@ -1,61 +0,0 @@ -Fix CVE-2018-8095: - -http://bugzilla.maptools.org/show_bug.cgi?id=2780 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8905 - -Patch copied from upstream source repository: - -https://gitlab.com/libtiff/libtiff/commit/58a898cb4459055bb488ca815c23b880c242a27d - -From 58a898cb4459055bb488ca815c23b880c242a27d Mon Sep 17 00:00:00 2001 -From: Even Rouault -Date: Sat, 12 May 2018 15:32:31 +0200 -Subject: [PATCH] LZWDecodeCompat(): fix potential index-out-of-bounds write. - Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2780 / CVE-2018-8905 - -The fix consists in using the similar code LZWDecode() to validate we -don't write outside of the output buffer. ---- - libtiff/tif_lzw.c | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/libtiff/tif_lzw.c b/libtiff/tif_lzw.c -index 4ccb443c..94d85e38 100644 ---- a/libtiff/tif_lzw.c -+++ b/libtiff/tif_lzw.c -@@ -602,6 +602,7 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) - char *tp; - unsigned char *bp; - int code, nbits; -+ int len; - long nextbits, nextdata, nbitsmask; - code_t *codep, *free_entp, *maxcodep, *oldcodep; - -@@ -753,13 +754,18 @@ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s) - } while (--occ); - break; - } -- assert(occ >= codep->length); -- op += codep->length; -- occ -= codep->length; -- tp = op; -+ len = codep->length; -+ tp = op + len; - do { -- *--tp = codep->value; -- } while( (codep = codep->next) != NULL ); -+ int t; -+ --tp; -+ t = codep->value; -+ codep = codep->next; -+ *tp = (char)t; -+ } while (codep && tp > op); -+ assert(occ >= len); -+ op += len; -+ occ -= len; - } else { - *op++ = (char)code; - occ--; --- -2.17.0 - -- cgit v1.2.3 From 472c36bd36696cfe744e8a7b8f4d4ac5800e0f68 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 23 Dec 2018 21:40:58 +0200 Subject: gnu: pingus: Fix building. * gnu/packages/games.scm (pingus)[source]: Use 'git-fetch'. Add patch to update used boost headers. * gnu/packages/patches/pingus-boost-headers.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/games.scm | 14 +- gnu/packages/patches/pingus-boost-headers.patch | 379 ++++++++++++++++++++++++ 3 files changed, 388 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/patches/pingus-boost-headers.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c1a873ed0a..3e205a8f0a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1045,6 +1045,7 @@ dist_patch_DATA = \ %D%/packages/patches/pinball-src-deps.patch \ %D%/packages/patches/pinball-system-ltdl.patch \ %D%/packages/patches/pinentry-efl.patch \ + %D%/packages/patches/pingus-boost-headers.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \ %D%/packages/patches/pius.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7b8d2f1bae..2ef93d6247 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1283,14 +1283,16 @@ fight Morgoth, the Lord of Darkness.") (version "0.7.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/Pingus/pingus/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Pingus/pingus.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0r9v6as5vi7skvvy7b0fcaimhdlzmik64pyy68plgljhsghqkkf4")) - (patches (search-patches "pingus-sdl-libs-config.patch")))) + "0wp06kcmknsnxz7bjnsndb8x062z7r23fb3yrnbfnj68qhz18y74")) + (patches (search-patches "pingus-boost-headers.patch" + "pingus-sdl-libs-config.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("scons-python2" ,scons-python2))) diff --git a/gnu/packages/patches/pingus-boost-headers.patch b/gnu/packages/patches/pingus-boost-headers.patch new file mode 100644 index 0000000000..f820f5851c --- /dev/null +++ b/gnu/packages/patches/pingus-boost-headers.patch @@ -0,0 +1,379 @@ +https://github.com/Pingus/pingus/commit/fef8cf6512fa4aa09e87643c22ef66de9ec7bb41.patch + +From fef8cf6512fa4aa09e87643c22ef66de9ec7bb41 Mon Sep 17 00:00:00 2001 +From: Ingo Ruhnke +Date: Sat, 26 Jul 2014 20:49:11 +0200 +Subject: [PATCH] Switched to boost::signals2 + +--- + SConscript | 5 ++--- + src/editor/button.hpp | 4 ++-- + src/editor/checkbox.hpp | 4 ++-- + src/editor/combobox.hpp | 4 ++-- + src/editor/file_list.hpp | 4 ++-- + src/editor/inputbox.hpp | 6 +++--- + src/editor/message_box.hpp | 2 +- + src/editor/object_selector.cpp | 4 ++-- + src/editor/viewport.hpp | 4 ++-- + src/pingus/components/check_box.hpp | 4 ++-- + src/pingus/components/choice_box.hpp | 4 ++-- + src/pingus/components/slider_box.hpp | 4 ++-- + src/pingus/config_manager.hpp | 28 ++++++++++++++-------------- + src/pingus/screens/option_menu.hpp | 4 ++-- + 14 files changed, 40 insertions(+), 41 deletions(-) + +diff --git a/SConscript b/SConscript +index 758567f51..c4d25a8a9 100644 +--- a/SConscript ++++ b/SConscript +@@ -187,9 +187,8 @@ class Project: + 'src/engine/input/xinput/xinput_device.cpp']) + + def configure_boost(self): +- if not self.conf.CheckLibWithHeader('boost_signals', 'boost/signals.hpp', 'c++'): +- if not self.conf.CheckLibWithHeader('boost_signals-mt', 'boost/signals.hpp', 'c++'): +- self.fatal_error += " * library 'boost_signals' not found\n" ++ if not self.conf.CheckHeader('boost/signals2.hpp', '<>', 'c++'): ++ self.fatal_error += " * library 'boost_signals2' not found\n" + + def configure_png(self): + if self.conf.CheckMyProgram('pkg-config'): +diff --git a/src/editor/button.hpp b/src/editor/button.hpp +index c85d7da9e..d89dfe669 100644 +--- a/src/editor/button.hpp ++++ b/src/editor/button.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_BUTTON_HPP + #define HEADER_PINGUS_EDITOR_BUTTON_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -48,7 +48,7 @@ class Button : public GUI::RectComponent + void enable() { enabled = true; } + void disable() { enabled = false; } + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + Button (const Button&); +diff --git a/src/editor/checkbox.hpp b/src/editor/checkbox.hpp +index 7c3bc835f..66382d79b 100644 +--- a/src/editor/checkbox.hpp ++++ b/src/editor/checkbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_CHECKBOX_HPP + #define HEADER_PINGUS_EDITOR_CHECKBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,7 +40,7 @@ class Checkbox : public GUI::RectComponent + bool is_checked() const { return checked; } + void on_primary_button_press(int x, int y); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + Checkbox (const Checkbox&); +diff --git a/src/editor/combobox.hpp b/src/editor/combobox.hpp +index 0ca742593..603556bd9 100644 +--- a/src/editor/combobox.hpp ++++ b/src/editor/combobox.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_COMBOBOX_HPP + #define HEADER_PINGUS_EDITOR_COMBOBOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -88,7 +88,7 @@ class Combobox : public GUI::RectComponent + + void update_layout() {} + +- boost::signal on_select; ++ boost::signals2::signal on_select; + + private: + Combobox(); +diff --git a/src/editor/file_list.hpp b/src/editor/file_list.hpp +index cc4bba2de..85efe6aa0 100644 +--- a/src/editor/file_list.hpp ++++ b/src/editor/file_list.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_FILE_LIST_HPP + #define HEADER_PINGUS_EDITOR_FILE_LIST_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -61,7 +61,7 @@ class FileList : public GUI::RectComponent + bool has_more_next_pages(); + bool has_more_prev_pages(); + +- boost::signal on_click; ++ boost::signals2::signal on_click; + + private: + int items_per_page(); +diff --git a/src/editor/inputbox.hpp b/src/editor/inputbox.hpp +index cad9663ec..87321dbba 100644 +--- a/src/editor/inputbox.hpp ++++ b/src/editor/inputbox.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_EDITOR_INPUTBOX_HPP + #define HEADER_PINGUS_EDITOR_INPUTBOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -40,8 +40,8 @@ class Inputbox : public GUI::RectComponent + + void update_layout() {} + +- boost::signal on_change; +- boost::signal on_enter; ++ boost::signals2::signal on_change; ++ boost::signals2::signal on_enter; + + private: + Inputbox (const Inputbox&); +diff --git a/src/editor/message_box.hpp b/src/editor/message_box.hpp +index 385387a61..d885767cf 100644 +--- a/src/editor/message_box.hpp ++++ b/src/editor/message_box.hpp +@@ -45,7 +45,7 @@ class MessageBox : public GUI::GroupComponent + void on_cancel_button(); + + public: +- boost::signal on_ok; ++ boost::signals2::signal on_ok; + + private: + MessageBox(const MessageBox&); +diff --git a/src/editor/object_selector.cpp b/src/editor/object_selector.cpp +index 28e306826..f3a36b5e8 100644 +--- a/src/editor/object_selector.cpp ++++ b/src/editor/object_selector.cpp +@@ -16,7 +16,7 @@ + + #include "editor/object_selector.hpp" + +-#include ++#include + + #include "editor/generic_level_obj.hpp" + #include "editor/gui_style.hpp" +@@ -47,7 +47,7 @@ class ObjectSelectorButton : public GUI::RectComponent + std::string tooltip; + + public: +- boost::signal on_click; ++ boost::signals2::signal on_click; + + public: + ObjectSelectorButton(ObjectSelectorList* object_list_, +diff --git a/src/editor/viewport.hpp b/src/editor/viewport.hpp +index 1ae9eff7c..18868254d 100644 +--- a/src/editor/viewport.hpp ++++ b/src/editor/viewport.hpp +@@ -18,7 +18,7 @@ + #ifndef HEADER_PINGUS_EDITOR_VIEWPORT_HPP + #define HEADER_PINGUS_EDITOR_VIEWPORT_HPP + +-#include ++#include + #include + + #include "editor/selection.hpp" +@@ -148,7 +148,7 @@ class Viewport : public GUI::RectComponent + + void clear_selection(); + +- boost::signal selection_changed; ++ boost::signals2::signal selection_changed; + private: + Viewport(); + Viewport (const Viewport&); +diff --git a/src/pingus/components/check_box.hpp b/src/pingus/components/check_box.hpp +index 00e23b764..5bef50f6b 100644 +--- a/src/pingus/components/check_box.hpp ++++ b/src/pingus/components/check_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHECK_BOX_HPP + +-#include ++#include + + #include "engine/display/sprite.hpp" + #include "engine/gui/rect_component.hpp" +@@ -39,7 +39,7 @@ class CheckBox : public GUI::RectComponent + + void set_state(bool v, bool send_signal); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + CheckBox (const CheckBox&); +diff --git a/src/pingus/components/choice_box.hpp b/src/pingus/components/choice_box.hpp +index 49d6e1948..ef51b6dd2 100644 +--- a/src/pingus/components/choice_box.hpp ++++ b/src/pingus/components/choice_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_CHOICE_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -36,7 +36,7 @@ class ChoiceBox : public GUI::RectComponent + void add_choice(const std::string& str); + void set_current_choice(int choice); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + ChoiceBox (const ChoiceBox&); +diff --git a/src/pingus/components/slider_box.hpp b/src/pingus/components/slider_box.hpp +index ae4d92406..75118eac2 100644 +--- a/src/pingus/components/slider_box.hpp ++++ b/src/pingus/components/slider_box.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + #define HEADER_PINGUS_PINGUS_COMPONENTS_SLIDER_BOX_HPP + +-#include ++#include + + #include "engine/gui/rect_component.hpp" + +@@ -39,7 +39,7 @@ class SliderBox : public GUI::RectComponent + + void set_value(int v); + +- boost::signal on_change; ++ boost::signals2::signal on_change; + + private: + SliderBox (const SliderBox&); +diff --git a/src/pingus/config_manager.hpp b/src/pingus/config_manager.hpp +index b07b83e65..4cf08e046 100644 +--- a/src/pingus/config_manager.hpp ++++ b/src/pingus/config_manager.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + #define HEADER_PINGUS_PINGUS_CONFIG_MANAGER_HPP + +-#include ++#include + + #include "math/size.hpp" + #include "pingus/options.hpp" +@@ -39,55 +39,55 @@ class ConfigManager + + void set_master_volume(int); + int get_master_volume() const; +- boost::signal on_master_volume_change; ++ boost::signals2::signal on_master_volume_change; + + void set_sound_volume(int); + int get_sound_volume() const; +- boost::signal on_sound_volume_change; ++ boost::signals2::signal on_sound_volume_change; + + void set_music_volume(int); + int get_music_volume() const; +- boost::signal on_music_volume_change; ++ boost::signals2::signal on_music_volume_change; + + void set_fullscreen_resolution(const Size& size); + Size get_fullscreen_resolution() const; +- boost::signal on_fullscreen_resolution_change; ++ boost::signals2::signal on_fullscreen_resolution_change; + + void set_fullscreen(bool); + bool get_fullscreen() const; +- boost::signal on_fullscreen_change; ++ boost::signals2::signal on_fullscreen_change; + + void set_renderer(FramebufferType type); + FramebufferType get_renderer() const; +- boost::signal on_renderer_change; ++ boost::signals2::signal on_renderer_change; + + void set_resizable(bool); + bool get_resizable() const; +- boost::signal on_resizable_change; ++ boost::signals2::signal on_resizable_change; + + void set_mouse_grab(bool); + bool get_mouse_grab() const; +- boost::signal on_mouse_grab_change; ++ boost::signals2::signal on_mouse_grab_change; + + void set_print_fps(bool); + bool get_print_fps() const; +- boost::signal on_print_fps_change; ++ boost::signals2::signal on_print_fps_change; + + void set_language(const tinygettext::Language&); + tinygettext::Language get_language() const; +- boost::signal on_language_change; ++ boost::signals2::signal on_language_change; + + void set_software_cursor(bool); + bool get_software_cursor() const; +- boost::signal on_software_cursor_change; ++ boost::signals2::signal on_software_cursor_change; + + void set_auto_scrolling(bool); + bool get_auto_scrolling() const; +- boost::signal on_auto_scrolling_change; ++ boost::signals2::signal on_auto_scrolling_change; + + void set_drag_drop_scrolling(bool); + bool get_drag_drop_scrolling() const; +- boost::signal on_drag_drop_scrolling_change; ++ boost::signals2::signal on_drag_drop_scrolling_change; + + private: + ConfigManager (const ConfigManager&); +diff --git a/src/pingus/screens/option_menu.hpp b/src/pingus/screens/option_menu.hpp +index 60b1578d2..154ef0f69 100644 +--- a/src/pingus/screens/option_menu.hpp ++++ b/src/pingus/screens/option_menu.hpp +@@ -17,7 +17,7 @@ + #ifndef HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + #define HEADER_PINGUS_PINGUS_SCREENS_OPTION_MENU_HPP + +-#include ++#include + #include + #include + +@@ -66,7 +66,7 @@ class OptionMenu : public GUIScreen + //Label* defaults_label; + //CheckBox* defaults_box; + +- typedef std::vector Connections; ++ typedef std::vector Connections; + Connections connections; + + tinygettext::Language m_language; -- cgit v1.2.3 From 6bd8ba619db8bf206038463b2dbe6226d2a9b57b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 23 Dec 2018 22:39:27 +0100 Subject: gnu: zathura: Update to 0.4.3. * gnu/packages/patches/zathura-plugindir-environment-variable.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/pdf.scm (zathura): Update to 0.4.3. [source](patches): Remove. [native-search-paths]: Adjust for upstreamed patch. --- gnu/local.mk | 3 +- .../zathura-plugindir-environment-variable.patch | 32 ---------------------- gnu/packages/pdf.scm | 8 ++---- 3 files changed, 4 insertions(+), 39 deletions(-) delete mode 100644 gnu/packages/patches/zathura-plugindir-environment-variable.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 713050be72..3f59ee046f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1264,8 +1264,7 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ - %D%/packages/patches/xmodmap-asprintf.patch \ - %D%/packages/patches/zathura-plugindir-environment-variable.patch + %D%/packages/patches/xmodmap-asprintf.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch deleted file mode 100644 index a8ffff965a..0000000000 --- a/gnu/packages/patches/zathura-plugindir-environment-variable.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ae8e4cc9ab57ff25d2ba6c4b369e8531ce43a6d2 Mon Sep 17 00:00:00 2001 -From: Paul van der Walt -Date: Mon, 2 Mar 2015 22:15:39 +0100 -Subject: [PATCH] Search path environment variable for Zathura. - -Adds a search path environment variable for zathura plugins (for reading -different file formats) called ZATHURA_PLUGIN_PATH. Command line option --p still takes precedence. - -Patch by Paul van der Walt -Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice ---- - zathura/zathura.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/zathura/zathura.c b/zathura/zathura.c ---- a/zathura/zathura.c -+++ b/zathura/zathura.c -@@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) - g_return_if_fail(zathura != NULL); - g_return_if_fail(zathura->plugins.manager != NULL); - -+ /* Added for Guix: check if environment variable -+ * is set to specify location of zathura plugins. -+ */ -+ -+ if (dir == NULL) -+ dir = g_getenv("ZATHURA_PLUGIN_PATH"); -+ - if (dir != NULL) { - set_plugin_dir(zathura, dir); - #ifdef ZATHURA_PLUGINDIR diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index a53e22f8b3..bec119cf36 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -496,7 +496,7 @@ by using the poppler rendering engine.") (define-public zathura (package (name "zathura") - (version "0.4.0") + (version "0.4.3") (source (origin (method url-fetch) (uri @@ -504,9 +504,7 @@ by using the poppler rendering engine.") version ".tar.xz")) (sha256 (base32 - "1j0yah09adv3bsjhhbqra5lambal32svk8fxmf89wwmcqrcr4qma")) - (patches (search-patches - "zathura-plugindir-environment-variable.patch")))) + "0hgx5x09i6d0z45llzdmh4l348fxh1y102sb1w76f2fp4r21j4ky")))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -523,7 +521,7 @@ by using the poppler rendering engine.") ("girara" ,girara))) (native-search-paths (list (search-path-specification - (variable "ZATHURA_PLUGIN_PATH") + (variable "ZATHURA_PLUGINS_PATH") (files '("lib/zathura"))))) (build-system meson-build-system) (arguments -- cgit v1.2.3 From 33eb63da646706380f74ac710740f12a0f0a7a8c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 26 Dec 2018 12:25:29 +0100 Subject: gnu: sssd: Fix build with cURL >= 7.62.0. * gnu/packages/patches/sssd-curl-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/sssd.scm (sssd)[source](patches): Use it. --- gnu/local.mk | 1 + gnu/packages/patches/sssd-curl-compat.patch | 18 ++++++++++++++++++ gnu/packages/sssd.scm | 1 + 3 files changed, 20 insertions(+) create mode 100644 gnu/packages/patches/sssd-curl-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3f59ee046f..a4507f5e99 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1156,6 +1156,7 @@ dist_patch_DATA = \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \ %D%/packages/patches/soundtouch-CVE-2018-1000223.patch \ + %D%/packages/patches/sssd-curl-compat.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swig-guile-gc.patch \ diff --git a/gnu/packages/patches/sssd-curl-compat.patch b/gnu/packages/patches/sssd-curl-compat.patch new file mode 100644 index 0000000000..ecab737153 --- /dev/null +++ b/gnu/packages/patches/sssd-curl-compat.patch @@ -0,0 +1,18 @@ +Fix build with curl >= 7.62. Patch taken from upstream: + +https://pagure.io/SSSD/sssd/c/4d3841ca379afc01184453ba45ab3e75ffec60da?branch=sssd-1-16 + +diff --git a/src/util/tev_curl.c b/src/util/tev_curl.c +index 6a7a580..d70a429 100644 +--- a/src/util/tev_curl.c ++++ b/src/util/tev_curl.c +@@ -97,7 +97,9 @@ static errno_t curl_code2errno(CURLcode crv) + return ETIMEDOUT; + case CURLE_SSL_ISSUER_ERROR: + case CURLE_SSL_CACERT_BADFILE: ++#if LIBCURL_VERSION_NUM < 0x073e00 + case CURLE_SSL_CACERT: ++#endif + case CURLE_SSL_CERTPROBLEM: + return ERR_INVALID_CERT; + diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 0ff94cdd24..75ce7c854b 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -86,6 +86,7 @@ fundamental object types for C.") (method url-fetch) (uri (string-append "http://releases.pagure.org/SSSD/sssd/" "sssd-" version ".tar.gz")) + (patches (search-patches "sssd-curl-compat.patch")) (sha256 (base32 "032ppk57qs1lnvz7pb7lw9ldwm9i1yagh9fzgqgn6na3bg61ynzy")))) -- cgit v1.2.3 From e99d036828bd7d01bfd108f3d5a2f7de61fab32d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 26 Dec 2018 12:26:42 +0100 Subject: gnu: efl: Fix build on 32-bit architectures. * gnu/packages/patches/efl-mesa-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/enlightenment.scm (efl)[source](patches): Use it. --- gnu/local.mk | 1 + gnu/packages/enlightenment.scm | 1 + gnu/packages/patches/efl-mesa-compat.patch | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 gnu/packages/patches/efl-mesa-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index a4507f5e99..62407351a0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -659,6 +659,7 @@ dist_patch_DATA = \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dropbear-CVE-2018-15599.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ + %D%/packages/patches/efl-mesa-compat.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-exec-path.patch \ diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 9989e2f5a8..d0ad44271e 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -70,6 +70,7 @@ (uri (string-append "https://download.enlightenment.org/rel/libs/efl/efl-" version ".tar.xz")) + (patches (search-patches "efl-mesa-compat.patch")) (sha256 (base32 "0a5907h896pvpix7a6idc2fspzy6d78xrzf84k8y9fyvnd14nxs4")))) diff --git a/gnu/packages/patches/efl-mesa-compat.patch b/gnu/packages/patches/efl-mesa-compat.patch new file mode 100644 index 0000000000..6fe7b38428 --- /dev/null +++ b/gnu/packages/patches/efl-mesa-compat.patch @@ -0,0 +1,21 @@ +Fix build on 32-bit architectures with Mesa 18.3. Patch taken from upstream: + +https://git.enlightenment.org/core/efl.git/commit/?id=0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573 + +diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h +index b6b642400f..4f67b1695f 100644 +--- a/src/lib/evas/Evas_GL.h ++++ b/src/lib/evas/Evas_GL.h +@@ -4272,9 +4272,11 @@ typedef signed int GLfixed; // Changed khronos_int32_t + + #ifndef GL_ES_VERSION_2_0 + /* GL types for handling large vertex buffer objects */ +-#include ++# ifndef GL_VERSION_1_5 ++# include + typedef ptrdiff_t GLintptr; // Changed khronos_intptr_t + typedef ptrdiff_t GLsizeiptr; // Changed khronos_ssize_t ++# endif + #endif + + /* Some definitions from GLES 3.0. -- cgit v1.2.3 From 1262be5c61ce6508990e67ac161605bbc9bda923 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 27 Dec 2018 12:55:11 +0200 Subject: gnu: glib-networking: Work around test failure. * gnu/packages/gnome.scm (glib-networking)[source]: Add patch. * gnu/packages/patches/glib-networking-connection.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 3 +- .../patches/glib-networking-connection.patch | 51 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/glib-networking-connection.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index b55382cc5d..158d157395 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -742,6 +742,7 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \ %D%/packages/patches/glib-tests-timer.patch \ + %D%/packages/patches/glib-networking-connection.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ %D%/packages/patches/glibc-CVE-2016-3075.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 95bfcaf564..49872e6afe 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2398,7 +2398,8 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx")))) + "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx")) + (patches (search-patches "glib-networking-connection.patch")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dlibproxy_support=false") diff --git a/gnu/packages/patches/glib-networking-connection.patch b/gnu/packages/patches/glib-networking-connection.patch new file mode 100644 index 0000000000..f64b090ae5 --- /dev/null +++ b/gnu/packages/patches/glib-networking-connection.patch @@ -0,0 +1,51 @@ +https://gitlab.gnome.org/GNOME/glib-networking/issues/4 +https://gitlab.gnome.org/GNOME/glib-networking/commit/55daf3e5fd4bc9e4ebad1a9eab93f852dcbf527e.patch +This ultimately rejected work-around should be removed with the next +release, as the bug has supposedly been fixed for real. + + +From 55daf3e5fd4bc9e4ebad1a9eab93f852dcbf527e Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Thu, 19 Jul 2018 11:16:35 -0500 +Subject: [PATCH] Fix intermittent failures in missing client private key test + +Because our APIs do nice things like encapsulating the TLS connection +establishment, we have our test server writing to the client after +establishing the TCP connection, because the TLS connection is +established. It's fine in theory, but results in some weirdness like the +server seeing its write having completed successfully before TLS +connection establishment. Normally that's what happens and this test +passes (server sees no error), but sometimes the server sees that the +client has already failed and the test fails. + +This is unfortunate, and tricky to fix properly, so let's just remove +the bad check. The point of the test is to ensure that the TLS +connection is not established, and the client-side check is going to +have to be sufficient, because rewriting the test to wait for the TLS +connection to be established on the server side is quite tricky: my +naive attempt resulted in both sides waiting forever on the other. + +P.S. At no point in this test does the server ever examine the client +certificate. That's not quite what I expected when I added the test, but +it's fine. + +Fixes #4 +--- + tls/tests/connection.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/tls/tests/connection.c b/tls/tests/connection.c +index 94645c3..390275d 100644 +--- a/tls/tests/connection.c ++++ b/tls/tests/connection.c +@@ -1125,7 +1125,6 @@ test_client_auth_fail_missing_client_private_key (TestConnection *test, + g_main_loop_run (test->loop); + + g_assert_error (test->read_error, G_TLS_ERROR, G_TLS_ERROR_CERTIFICATE_REQUIRED); +- g_assert_no_error (test->server_error); + } + + static void +-- +2.18.1 + -- cgit v1.2.3 From 152d6bf014a16c6759f3ebd8d5109b758990bae8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 30 Dec 2018 11:49:16 +0200 Subject: gnu: fbreader: Fix building with newer curl. * gnu/packages/ebook.scm (fbreader)[source]: Add patch. * gnu/packages/patches/fbreader-curl-7.62.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/ebook.scm | 5 +++-- gnu/packages/patches/fbreader-curl-7.62.patch | 30 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/fbreader-curl-7.62.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 158d157395..5b117595b9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -685,6 +685,7 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spUtils.patch \ %D%/packages/patches/fasthenry-spSolve.patch \ %D%/packages/patches/fasthenry-spFactor.patch \ + %D%/packages/patches/fbreader-curl-7.62.patch \ %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index e750c6cac8..46d4c2cfe8 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Andreas Enge -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2017 Roel Janssen @@ -247,7 +247,8 @@ designed to be used in a generic text renderer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gf1nl562fqkwlzcn6rgkp1j8jcixzmfsnwxbc0sm49zh8n3zqib")))) + "0gf1nl562fqkwlzcn6rgkp1j8jcixzmfsnwxbc0sm49zh8n3zqib")) + (patches (search-patches "fbreader-curl-7.62.patch")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) diff --git a/gnu/packages/patches/fbreader-curl-7.62.patch b/gnu/packages/patches/fbreader-curl-7.62.patch new file mode 100644 index 0000000000..e42a3375f0 --- /dev/null +++ b/gnu/packages/patches/fbreader-curl-7.62.patch @@ -0,0 +1,30 @@ +https://github.com/geometer/FBReader/commit/b7c78e965d06f78043a57e230c866c3af3f5a1eb.patch +https://github.com/geometer/FBReader/issues/310 +https://github.com/geometer/FBReader/pull/311/commits + +From b7c78e965d06f78043a57e230c866c3af3f5a1eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= +Date: Sun, 9 Dec 2018 10:18:03 +0100 +Subject: [PATCH] fix compatibility with curl-7.62 + +https://github.com/curl/curl/commit/3f3b26d6fe +--- + zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp b/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp +index 54cc37f6c..03e2a5721 100644 +--- a/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp ++++ b/zlibrary/core/src/unix/curl/ZLCurlNetworkManager.cpp +@@ -285,9 +285,11 @@ std::string ZLCurlNetworkManager::perform(const ZLExecutionData::Vector &dataLis + #endif + errors.insert(ZLStringUtil::printf(errorResource["peerFailedVerificationMessage"].value(), ZLNetworkUtil::hostFromUrl(url))); + break; ++#if LIBCURL_VERSION_NUM < 0x073e00 + case CURLE_SSL_CACERT: + errors.insert(ZLStringUtil::printf(errorResource["sslCertificateAuthorityMessage"].value(), ZLNetworkUtil::hostFromUrl(url))); + break; ++#endif + case CURLE_SSL_CACERT_BADFILE: + errors.insert(ZLStringUtil::printf(errorResource["sslBadCertificateFileMessage"].value(), request.sslCertificate().Path)); + break; -- cgit v1.2.3 From 47970cf66ce1817d79a09dbc8e5a9e3af262b242 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 31 Dec 2018 10:26:16 +0200 Subject: gnu: wesnoth: Fix building with newer boost. * gnu/packages/games.scm (wesnoth)[source]: Add patch. * gnu/packages/patches/wenoth-newer-boost.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/games.scm | 3 +- gnu/packages/patches/wesnoth-newer-boost.patch | 46 ++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/wesnoth-newer-boost.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 5b117595b9..050d174f5b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1237,6 +1237,7 @@ dist_patch_DATA = \ %D%/packages/patches/wavpack-CVE-2018-7253.patch \ %D%/packages/patches/wavpack-CVE-2018-7254.patch \ %D%/packages/patches/weechat-python.patch \ + %D%/packages/patches/wesnoth-newer-boost.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-urwid-1.3.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7896c9c3f4..423c977de5 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2141,7 +2141,8 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85")))) + "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85")) + (patches (search-patches "wesnoth-newer-boost.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no check target diff --git a/gnu/packages/patches/wesnoth-newer-boost.patch b/gnu/packages/patches/wesnoth-newer-boost.patch new file mode 100644 index 0000000000..d48a48e801 --- /dev/null +++ b/gnu/packages/patches/wesnoth-newer-boost.patch @@ -0,0 +1,46 @@ +https://github.com/wesnoth/wesnoth/commit/f6a32792d023d182d350b5a2ed9e469ad67484c8.patch +This should be able to be removed with wesnoth@1.14.6 + +From f6a32792d023d182d350b5a2ed9e469ad67484c8 Mon Sep 17 00:00:00 2001 +From: Wedge009 +Date: Thu, 27 Dec 2018 08:15:10 +1100 +Subject: [PATCH] Use explicit casts to accommodate changes to boost's tribool + in 1.69. + +(fixes #3646) +--- + src/units/frame.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/units/frame.cpp b/src/units/frame.cpp +index 3215fa4fa79d..6370ad69566b 100644 +--- a/src/units/frame.cpp ++++ b/src/units/frame.cpp +@@ -460,15 +460,15 @@ std::vector frame_parsed_parameters::debug_strings() const + } + + if(!boost::indeterminate(auto_vflip_)) { +- v.emplace_back("auto_vflip=" + utils::bool_string(auto_vflip_)); ++ v.emplace_back("auto_vflip=" + utils::bool_string(static_cast(auto_vflip_))); + } + + if(!boost::indeterminate(auto_hflip_)) { +- v.emplace_back("auto_hflip=" + utils::bool_string(auto_hflip_)); ++ v.emplace_back("auto_hflip=" + utils::bool_string(static_cast(auto_hflip_))); + } + + if(!boost::indeterminate(primary_frame_)) { +- v.emplace_back("primary_frame=" + utils::bool_string(primary_frame_)); ++ v.emplace_back("primary_frame=" + utils::bool_string(static_cast(primary_frame_))); + } + + if(!drawing_layer_.get_original().empty()) { +@@ -768,7 +768,7 @@ const frame_parameters unit_frame::merge_parameters(int current_time, const fram + } + + // Convert the tribool to bool +- const bool primary = result.primary_frame == true || boost::logic::indeterminate(result.primary_frame); ++ const bool primary = static_cast(result.primary_frame) || boost::logic::indeterminate(result.primary_frame); + + /** The engine provides a default image to use for the unit when none is available */ + result.image = current_val.image.is_void() || current_val.image.get_filename().empty() -- cgit v1.2.3 From d5c60e0aff8c71d66e598e2c7787a9f7c875fd0c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Jan 2019 10:20:18 +0200 Subject: gnu: allegro@4: Fix building with newer mesa. * gnu/packages/game-development.scm (allegro@4)[source]: Add patch. * gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/game-development.scm | 4 ++- .../patches/allegro4-mesa-18.2.5-and-later.patch | 41 ++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 050d174f5b..64f2bf9a9c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -577,6 +577,7 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-icu59-include-unistr.patch \ %D%/packages/patches/aegisub-boost68.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ + %D%/packages/patches/allegro4-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 8a29297805..efca9852d6 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2018 Ludovic Courtès ;;; Copyright © 2015, 2018 Alex Kost ;;; Copyright © 2015, 2016, 2017 David Thompson -;;; Copyright © 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2016, 2017, 2018 Julian Graham @@ -613,6 +613,8 @@ programming language.") (uri (string-append "https://github.com/liballeg/allegro5/" "releases/download/" version "/allegro-" version ".tar.gz")) + (patches (search-patches + "allegro4-mesa-18.2.5-and-later.patch")) (sha256 (base32 "1p0ghkmpc4kwij1z9rzxfv7adnpy4ayi0ifahlns1bdzgmbyf88v")))) diff --git a/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch new file mode 100644 index 0000000000..a4944821db --- /dev/null +++ b/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch @@ -0,0 +1,41 @@ +Fixes compilation with Mesa >= 18.2.5. + +Modified from upstream to work on allegro4: + +https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47 + +diff --git a/addons/allegrogl/include/alleggl.h b/addons/allegrogl/include/alleggl.h +index 0f86a6768..652dd024e 100644 +--- a/addons/allegrogl/include/alleggl.h ++++ b/addons/allegrogl/include/alleggl.h +@@ -103,10 +103,14 @@ + + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glext_h_ ++#define __gl_glext_h_ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glext_h_ ++#undef __gl_glext_h_ + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #endif /* ALLEGRO_MACOSX */ + +diff --git a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h +index 49c502091..fba8aea5d 100644 +--- a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h ++++ b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h +@@ -1,7 +1,9 @@ + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #ifndef GLX_VERSION_1_3 + #define _ALLEGRO_GLX_VERSION_1_3 +-- +2.20.0 -- cgit v1.2.3 From 0109b89c5834b5374f248dc3681702180013f41f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 1 Jan 2019 10:22:34 +0200 Subject: gnu: allegro@5.0: Fix building with newer mesa. * gnu/packages/game-development.scm (allegro@5.0)[source]: Add patch. (allegro)[patch]: Rename patch file. * gnu/packages/patches/allegro-fix-compiliation-mesa-18.2.5-and-later.patch: Rename to gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/game-development.scm | 4 ++- ...gro-fix-compilation-mesa-18.2.5-and-later.patch | 41 ---------------------- .../patches/allegro-mesa-18.2.5-and-later.patch | 41 ++++++++++++++++++++++ 4 files changed, 45 insertions(+), 42 deletions(-) delete mode 100644 gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch create mode 100644 gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 64f2bf9a9c..4d8813a9b8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -577,6 +577,7 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-icu59-include-unistr.patch \ %D%/packages/patches/aegisub-boost68.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ + %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \ %D%/packages/patches/allegro4-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index efca9852d6..9a77cdc645 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -655,7 +655,7 @@ etc.") "/download/" version "/allegro-" version ".tar.gz")) (patches (search-patches - "allegro-fix-compilation-mesa-18.2.5-and-later.patch")) + "allegro-mesa-18.2.5-and-later.patch")) (sha256 (base32 "1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l")))) @@ -700,6 +700,8 @@ etc.") (string-drop-right version 2) version) ".tar.gz")) + (patches (search-patches + "allegro-mesa-18.2.5-and-later.patch")) (sha256 (base32 "0cd51qrh97jrr0xdmnivqgwljpmizg8pixsgvc4blqqlaz4i9zj9")))))) diff --git a/gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch deleted file mode 100644 index fa273a5dfa..0000000000 --- a/gnu/packages/patches/allegro-fix-compilation-mesa-18.2.5-and-later.patch +++ /dev/null @@ -1,41 +0,0 @@ -Fixes compilation with Mesa >= 18.2.5. - -Taken from upstream: - -https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47 - -diff --git a/include/allegro5/allegro_opengl.h b/include/allegro5/allegro_opengl.h -index 0f86a6768..652dd024e 100644 ---- a/include/allegro5/allegro_opengl.h -+++ b/include/allegro5/allegro_opengl.h -@@ -103,10 +103,14 @@ - - /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ - #define __glext_h_ -+#define __gl_glext_h_ - #define __glxext_h_ -+#define __glx_glxext_h_ - #include - #undef __glext_h_ -+#undef __gl_glext_h_ - #undef __glxext_h_ -+#undef __glx_glxext_h_ - - #endif /* ALLEGRO_MACOSX */ - -diff --git a/include/allegro5/opengl/GLext/glx_ext_defs.h b/include/allegro5/opengl/GLext/glx_ext_defs.h -index 49c502091..fba8aea5d 100644 ---- a/include/allegro5/opengl/GLext/glx_ext_defs.h -+++ b/include/allegro5/opengl/GLext/glx_ext_defs.h -@@ -1,7 +1,9 @@ - /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ - #define __glxext_h_ -+#define __glx_glxext_h_ - #include - #undef __glxext_h_ -+#undef __glx_glxext_h_ - - #ifndef GLX_VERSION_1_3 - #define _ALLEGRO_GLX_VERSION_1_3 --- -2.20.0 diff --git a/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch new file mode 100644 index 0000000000..fa273a5dfa --- /dev/null +++ b/gnu/packages/patches/allegro-mesa-18.2.5-and-later.patch @@ -0,0 +1,41 @@ +Fixes compilation with Mesa >= 18.2.5. + +Taken from upstream: + +https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47 + +diff --git a/include/allegro5/allegro_opengl.h b/include/allegro5/allegro_opengl.h +index 0f86a6768..652dd024e 100644 +--- a/include/allegro5/allegro_opengl.h ++++ b/include/allegro5/allegro_opengl.h +@@ -103,10 +103,14 @@ + + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glext_h_ ++#define __gl_glext_h_ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glext_h_ ++#undef __gl_glext_h_ + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #endif /* ALLEGRO_MACOSX */ + +diff --git a/include/allegro5/opengl/GLext/glx_ext_defs.h b/include/allegro5/opengl/GLext/glx_ext_defs.h +index 49c502091..fba8aea5d 100644 +--- a/include/allegro5/opengl/GLext/glx_ext_defs.h ++++ b/include/allegro5/opengl/GLext/glx_ext_defs.h +@@ -1,7 +1,9 @@ + /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ + #define __glxext_h_ ++#define __glx_glxext_h_ + #include + #undef __glxext_h_ ++#undef __glx_glxext_h_ + + #ifndef GLX_VERSION_1_3 + #define _ALLEGRO_GLX_VERSION_1_3 +-- +2.20.0 -- cgit v1.2.3 From c82cd3a7bd5d7a85fb48a37c3a5e37fbe3ed6738 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 2 Jan 2019 09:39:17 +0200 Subject: gnu: qt: Update to 5.11.3. * gnu/packages/qt.scm (qt, qtbase, qtsvg, qtimageformats, qtx11extras, qtxmlpatterns, qtdeclarative, qtconnectivity, qtwebsockets, qtsensors, qtmultimedia, qtwayland, qtserialport, qtserialbus, qtwebchannel qtwebglplugin, qtwebview, qtlocation, qttools, qtscript, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects, qtscxml, qtgamepad, qtpurchasing, qtcanvas3d, qtcharts, qtdatavis3d, qtnetworkauth, qtremoteobjects, qtspeech): Update to 5.11.3. (qt)[source]: Remove patch. * gnu/packages/patches/qt-5-renameat2.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/qt-5-renameat2.patch | 35 -------- gnu/packages/qt.scm | 142 +++++++++++++++--------------- 3 files changed, 70 insertions(+), 108 deletions(-) delete mode 100644 gnu/packages/patches/qt-5-renameat2.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 5deae50336..99603b3be9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1177,7 +1177,6 @@ dist_patch_DATA = \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ - %D%/packages/patches/qt-5-renameat2.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/quilt-test-fix-regex.patch \ diff --git a/gnu/packages/patches/qt-5-renameat2.patch b/gnu/packages/patches/qt-5-renameat2.patch deleted file mode 100644 index 036070c7ff..0000000000 --- a/gnu/packages/patches/qt-5-renameat2.patch +++ /dev/null @@ -1,35 +0,0 @@ -Avoid conflicting declaration of 'renameat2' on glibc 2.28 -(see .) - -Patch from -by Andreas Müller . - ---- - src/corelib/io/qfilesystemengine_unix.cpp | 11 ++++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp -index be6ce48d0cb..1bf1bebc7f1 100644 ---- a/qtbase/src/corelib/io/qfilesystemengine_unix.cpp -+++ b/qtbase/src/corelib/io/qfilesystemengine_unix.cpp -@@ -98,6 +98,17 @@ extern "C" NSString *NSTemporaryDirectory(); - # define FICLONE _IOW(0x94, 9, int) - #endif - -+// renameat2/statx features for non bootstrapped build -+#ifndef QT_BOOTSTRAPPED -+#ifdef __GLIBC_PREREQ -+# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1) -+# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1) -+#else -+# define QT_FEATURE_renameat2 -1 -+# define QT_FEATURE_statx -1 -+#endif -+#endif -+ - # if defined(Q_OS_ANDROID) - // renameat2() and statx() are disabled on Android because quite a few systems - // come with sandboxes that kill applications that make system calls outside a --- -2.14.4 - diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index de5d31e4d7..b980f20d83 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -110,7 +110,7 @@ system, and the core design of Django is reused in Grantlee.") (define-public qt (package (name "qt") - (version "5.11.2") + (version "5.11.3") (outputs '("out" "examples")) (source (origin (method url-fetch) @@ -123,8 +123,7 @@ system, and the core design of Django is reused in Grantlee.") version ".tar.xz")) (sha256 (base32 - "10faac59jvz6dxxljdkaknlxazpnaxgvqdcszabfbbkc1f24n466")) - (patches (search-patches "qt-5-renameat2.patch")) + "0kgzy32s1fr22fxxfhcyncfryb3qxrznlr737r4y5khk4xj1g545")) (modules '((guix build utils))) (snippet '(begin @@ -501,7 +500,7 @@ system, and the core design of Django is reused in Grantlee.") (define-public qtbase (package (name "qtbase") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -510,20 +509,19 @@ system, and the core design of Django is reused in Grantlee.") version ".tar.xz")) (sha256 (base32 - "01q1rn5rp9biq3z38953z2hgm4nirvp2jfv8wg7isnld8v1yg0b3")) + "071yc9iz14qs4s8yvrwllyfdzp5yjxsdpvbjxdrf0g5q69vqigy6")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 '(begin - (for-each - (lambda (dir) - (delete-file-recursively (string-append "src/3rdparty/" dir))) - (list "double-conversion" "freetype" "harfbuzz-ng" - "libpng" "libjpeg" "pcre2" "sqlite" "xcb" - "xkbcommon" "zlib")) - #t)))) + (with-directory-excursion "src/3rdparty" + (for-each delete-file-recursively + (list "double-conversion" "freetype" "harfbuzz-ng" + "libpng" "libjpeg" "pcre2" "sqlite" "xcb" + "xkbcommon" "zlib")) + #t))))) (build-system gnu-build-system) (propagated-inputs `(("mesa" ,mesa) @@ -741,7 +739,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -750,7 +748,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0rni3cdcli91v7k8ra9s9phpznvkza8qqvcrv9yyfrmlapwbn5mw")))) + "14a4rprbj9f9rhixbk7143xdz34d7d39xh9v2sc1w43q9sf2rsi1")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -816,7 +814,7 @@ HostData=lib/qt5 (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -825,7 +823,7 @@ HostData=lib/qt5 version ".tar.xz")) (sha256 (base32 - "0s1s33k0wrnf9fi1wlm1kaq9hs1fx89597nhk53vzdfha42x3r97")) + "0zq8igsjyyhxsjr43vpaasrqjw3x0g6rwqf8kaz7y9vs7ny63ch4")) (modules '((guix build utils))) (snippet '(begin @@ -847,7 +845,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -856,7 +854,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) version ".tar.xz")) (sha256 (base32 - "12cha7pd3cjx7zr0l7rbi1j2pfwmfpdwc7w3dsqbyi1d0mhwl1zl")))) + "11fd2mc20qmnyv1vqhaqad2q6m0i4lmkr432rmqvpkgphpkfp7pr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -871,7 +869,7 @@ from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -880,7 +878,7 @@ from within Qt 5."))) version ".tar.xz")) (sha256 (base32 - "0ik7m1a0shjsyzs8n9hfx8m9hy1p3wg505slcs0xznj0pa0gdmaz")))) + "1vhfvgi39miqsx3iq7c9sii2sykq0yfng69b70i0smr20zihpl4b")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -900,7 +898,7 @@ xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -909,7 +907,7 @@ xmlpatternsvalidator."))) version ".tar.xz")) (sha256 (base32 - "1kgj6q53rk573yi47j32mn1mfk5ag98zvhv9qgrlb78y0gw8c392")))) + "1rhsf9bma2zwwpixk2fsg31x7c1pmsk144npypgc9w86swhkc9lf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -932,7 +930,7 @@ with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -941,7 +939,7 @@ with JavaScript and C++."))) version ".tar.xz")) (sha256 (base32 - "1ia21llw610wd7licdm81p8zpkrkvkc5yc7y4wplgg6k2jyip42q")))) + "0amks3qad31i7cha85kvcaxvlmmgkc3gm4jdkw2p02ixxfygr30l")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -956,7 +954,7 @@ with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -965,7 +963,7 @@ with Bluetooth and NFC."))) version ".tar.xz")) (sha256 (base32 - "13cbr2pffv1hwvm8d8kzask0pyc2j3brgq23vi5i1i70kihrfqdf")))) + "1ffmapfy68xwwbxbg19ng6b5h8v42cf78s21j7rgq49gm70r0402")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -983,7 +981,7 @@ consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -992,7 +990,7 @@ consume data received from the server, or both."))) version ".tar.xz")) (sha256 (base32 - "1iv3gmk121myqdr64d9lf2m816ypxrb526gn0ssxx8gp4j4c69qf")))) + "0n88c8xi9pbyh7q1pcqv4yjv6nx62abflj8qgfr4qzb0sp8m6mx7")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:parallel-tests? _ #f) #f) ; can lead to race condition @@ -1016,7 +1014,7 @@ recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1025,7 +1023,7 @@ recognition API for devices."))) version ".tar.xz")) (sha256 (base32 - "0vbjrxsdahgbgpc2zcvgg3mpijzd5kknz5clfcw2cq3310yqyq15")) + "0h9wx86zj20n4xc3qnml0i360x2dc1yd2z2af1flj8fwyzppi03j")) (modules '((guix build utils))) (snippet '(begin @@ -1067,7 +1065,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1076,7 +1074,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) version ".tar.xz")) (sha256 (base32 - "0wdpxjr3zfmgcfg14zlwd8mjbc191pvlchj1xxd0lj30ldfy2daf")) + "1chz4wchgkzd45h143i5hkqg0whcgdbj37gkg7j4kj31whllzjb2")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail @@ -1119,7 +1117,7 @@ compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1128,7 +1126,7 @@ compositor libraries."))) version ".tar.xz")) (sha256 (base32 - "0vkgvicm67vds2iqmhnjsqwnx1f8zhbzc31w6q198i0x8b76j6xh")))) + "1nkbfsxzgicwns3k11hhzjxy2hgrigj8xcw2by0jc1j71mnmxi4n")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -1153,7 +1151,7 @@ interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1162,7 +1160,7 @@ interacting with serial ports from within Qt."))) version ".tar.xz")) (sha256 (base32 - "07k4g5qfh657das2f5i6ph0hl4bva13yzlmxnay7qpzqcb0w4x0p")))) + "0vf12jk1ma0v0dlpliw1x9i04iaik1kjkiaby7gaxm2abprxwr2n")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))) @@ -1174,7 +1172,7 @@ and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1183,7 +1181,7 @@ and others."))) version ".tar.xz")) (sha256 (base32 - "1z02dhrd1h2rpdhww9py9dnhss80xwf45n568y7gr3gay7ldlpwl")))) + "1wrdawlqvcw84h8q52mvbjhp1vkd6fhz6c8ijlg9rw0s3fj4y99w")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1198,7 +1196,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtwebglplugin (package (inherit qtsvg) (name "qtwebglplugin") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1207,7 +1205,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) version ".tar.xz")) (sha256 (base32 - "0vazz9yr1qgpcq7p77vg9mrjxy6hjabvwj9irw5l5w7fmsk2ns0n")))) + "0wqz8lycmi7pffzy0pz5960w109lbk4mkbw0l1lh64avl6clq7b9")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1233,7 +1231,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) (define-public qtwebview (package (inherit qtsvg) (name "qtwebview") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1242,7 +1240,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) version ".tar.xz")) (sha256 (base32 - "1r30n9vjcgh2cd2iycfwwwpmbz7grrd3iqrc0afwnri3vylnfqil")))) + "1njmn1n03dp4md8cz58cq2z6bsxd8nwlw0238zmavh7px3jzc9kh")))) (native-inputs `(("perl" ,perl))) (inputs @@ -1256,7 +1254,7 @@ native APIs where it makes sense."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1265,7 +1263,7 @@ native APIs where it makes sense."))) version ".tar.xz")) (sha256 (base32 - "0kh2c2ahg8xkpvqsva13i35ndsc0x0ypnmd6vix5pm5jvwg9366n")))) + "1sq0f41jwmsimv9a1wl2nk5nifjppm5j92rr4n4s7qwnnjjrir2q")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1286,7 +1284,7 @@ positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1295,7 +1293,7 @@ positioning and geolocation plugins."))) version ".tar.xz")) (sha256 (base32 - "1f1iqvksrlgkxdbagb6vvjib3argbv9l7iis6ymb8n0rfwn37s7h")))) + "13lzdxxi02yhvx4mflhisl6aqv2fiss5m804cqccd1wvp8dyh1f2")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1314,7 +1312,7 @@ that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1323,7 +1321,7 @@ that helps in Qt development."))) version ".tar.xz")) (sha256 (base32 - "0xprhd1brn30dqf5vy4inqgzpq48i8nlc428x9rr8fk5hdm4dhmj")) + "027cvggbcvwyz76cn1bl1zvqg0nq7iica1b7yx7xyy0hb36g715v")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1338,7 +1336,7 @@ ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1347,7 +1345,7 @@ ECMAScript and Qt."))) version ".tar.xz")) (sha256 (base32 - "1q11nr85436xzrf4mbrbav306hrz0s2qaclqhhb0g88vzcq2wxww")))) + "0dvmy31qbl76yy0j5y8m7mvnmqyg2c01fmlkn0snvc5h5ah5skjf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1362,7 +1360,7 @@ can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1371,7 +1369,7 @@ can be used to build complete interfaces in Qt Quick."))) version ".tar.xz")) (sha256 (base32 - "116b5nhmsx898626s37r446yci7kxd3k7xap1dh9spqklkwlj1da")))) + "11nhpb0xckv5jjkqj5szr94c2rvyjwr89ch58hh64nsqaav30mpl")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1387,7 +1385,7 @@ not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1396,7 +1394,7 @@ not available."))) version ".tar.xz")) (sha256 (base32 - "1zd9wjh2hhd6lby0z3ak0ff6zkbv73hh0drrg9qp2yrgjfismp59")))) + "1qjpdzkamf27cg5n1wsf0zk939lcgppgydfjzap9s4fxzj1nkn0l")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1442,7 +1440,7 @@ backend for QtQuick scene graph.") (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1451,7 +1449,7 @@ backend for QtQuick scene graph.") version ".tar.xz")) (sha256 (base32 - "076874iyadj7pkprlk24h257nb8i4sni9c6kbixm5zrr2y73fbxf")))) + "1k222cx18zq48sfna91hmy427qzk2n2xz3dlyz59iyz72k6915g9")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1472,7 +1470,7 @@ and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1481,7 +1479,7 @@ and mobile applications targeting TV-like form factors."))) version ".tar.xz")) (sha256 (base32 - "197p5x1dadgjb39pd2vw60r63lvz68i0pm5i8xbyzgzm94hwn9fn")) + "1mv8mz36v34dckrzy5r41mq3sqznbalrhndk3avz2154xmkjf5qk")) (modules '((guix build utils))) (snippet '(begin @@ -1503,7 +1501,7 @@ also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1512,7 +1510,7 @@ also contains functionality to support data models and executable content."))) version ".tar.xz")) (sha256 (base32 - "1xld1yx085mhnqdipy29g2yy5af67hfm0wy4mvj7pl6y5qj8jw9d")))) + "1fd0gxdj5mrh81iwimq1243i3n47sqv9ik8nslahfh0q3dsx7k8n")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1523,7 +1521,7 @@ purchasing goods and services."))) (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1532,7 +1530,7 @@ purchasing goods and services."))) version ".tar.xz")) (sha256 (base32 - "0h7arss7wr0jwl87kiwgbf0nlcgpbriyf7cnv9j4h7g8d09a777x")) + "0f110z7cmkzns9k00aa5zhzq2fpybfxkd7gdlwzcbhc8hn20986m")) (modules '((guix build utils))) (snippet '(begin @@ -1562,7 +1560,7 @@ drawing calls from Qt Quick JavaScript."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1571,7 +1569,7 @@ drawing calls from Qt Quick JavaScript."))) version ".tar.xz")) (sha256 (base32 - "0551qfqnsfiy8kb1ng2v0yn7s6ggy7ghcmis983sbzxzjv2i58zn")))) + "1p4m1nkbbxlkwmbmasx5r83skzssmlcgfzyvj30x2dyrqkmz7627")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1589,7 +1587,7 @@ selecting one of the charts themes.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1598,7 +1596,7 @@ selecting one of the charts themes.") version ".tar.xz")) (sha256 (base32 - "05pzvrhvxhxjlav4axrhwlnxjzlr7mi8k3f06g59ryrwmb99kd37")))) + "1kqwr3avcvcyy4i28vjgxk1bsjj9011zr668hsk1zrjxnnwjwdl3")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1616,7 +1614,7 @@ customized by using themes or by adding custom items and labels to them.") (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1625,7 +1623,7 @@ customized by using themes or by adding custom items and labels to them.") version ".tar.xz")) (sha256 (base32 - "1zmpvkhf2kmnr8vsa6jq675d5cpnmsg3f8yds6g91yq1g3prqdvr")))) + "0dd35698wzg89975vi2ijl2lym495fjizsl03mjixsjnvb1x0q50")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1645,7 +1643,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1654,7 +1652,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) version ".tar.xz")) (sha256 (base32 - "06awsaf15rch1y9p2q9kdlmlaa8g28whbzf04b10zfflyijnvg7j")))) + "1d3jzsxfyjhgb6wj9iv1388bv7j6pi08346nmkm1c1a4iykhc0zp")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1678,7 +1676,7 @@ processes or computers."))) (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.11.2") + (version "5.11.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1687,7 +1685,7 @@ processes or computers."))) version ".tar.xz")) (sha256 (base32 - "110xr2y174sayi9f6swzp1wx7mx4sw9rifcdx2bkbsnbfab6zg8a")))) + "158p7zqd0vg55gf88jzc3d4f7649ihh80k0m1q46m2yp6fpdjbxr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests -- cgit v1.2.3 From 85765054221de172049eeec5676da139212916a2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Feb 2019 18:53:02 +0100 Subject: gnu: libreoffice: Fix FTBFS with Boost 1.69.0. * gnu/packages/patches/libreoffice-boost.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/libreoffice.scm (libreoffice)[source](patches): Add it. --- gnu/local.mk | 1 + gnu/packages/libreoffice.scm | 3 ++- gnu/packages/patches/libreoffice-boost.patch | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libreoffice-boost.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index ee8b13d2fb..a63f595b30 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -977,6 +977,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ + %D%/packages/patches/libreoffice-boost.patch \ %D%/packages/patches/libreoffice-icu.patch \ %D%/packages/patches/libreoffice-glm.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 2824d87fc6..b047c34a0b 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -997,7 +997,8 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") (sha256 (base32 "1dsd0gynjf7d6412dd2sx70xa2s8kld7ibyjdkwg5w9hhi2zxw2f")))) - (search-patches "libreoffice-icu.patch" + (search-patches "libreoffice-boost.patch" + "libreoffice-icu.patch" "libreoffice-glm.patch"))) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/patches/libreoffice-boost.patch b/gnu/packages/patches/libreoffice-boost.patch new file mode 100644 index 0000000000..b50664226b --- /dev/null +++ b/gnu/packages/patches/libreoffice-boost.patch @@ -0,0 +1,17 @@ +Fix compatibility with newer Boost. + +Extracted from this upstream commit: +https://cgit.freedesktop.org/libreoffice/core/commit/?id=23a8d5ffbbe58761b89f590f0735abccd69a3681 + +diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx +--- a/sfx2/source/appl/shutdownicon.cxx ++++ b/sfx2/source/appl/shutdownicon.cxx +@@ -144,7 +144,7 @@ bool LoadModule() + #endif // ENABLE_QUICKSTART_APPLET + } + assert(!boost::logic::indeterminate(loaded)); +- return loaded; ++ return bool(loaded); + } + + } -- cgit v1.2.3