From d9804e5011a58341aafbf4fadd00947f3e5f436e Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 16 Nov 2016 20:08:46 +0100 Subject: gnu: util-linux: Add current system profile to fs search path. * gnu/packages/linux.scm (util-linux)[arguments]: Add "--enable-fs-paths-default=/run/current-system/profile/sbin" to configure-flags. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9518de4782..c96155e7f3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -472,7 +472,7 @@ providing the system administrator with some help in common tasks.") "static")) ; >2 MiB of static .a libraries (arguments `(#:configure-flags (list "--disable-use-tty-group" - + "--enable-fs-paths-default=/run/current-system/profile/sbin" ;; Install completions where our ;; bash-completion package expects them. (string-append "--with-bashcompletiondir=" -- cgit v1.2.3 From d3d2167728e2fa81ee043461d67da7358372ac15 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 19 Nov 2016 11:52:04 -0500 Subject: gnu: libgpg-error: Update to 1.25. * gnu/packages/gnupg.scm (libgpg-error): Update to 1.25. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index fccaa9708f..1f8ab21733 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -54,7 +54,7 @@ (define-public libgpg-error (package (name "libgpg-error") - (version "1.24") + (version "1.25") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ version ".tar.bz2")) (sha256 (base32 - "0h75sf1ngr750c3fjfn4583q7wz40qm63jhg8vjfdrbx936f2s4j")))) + "031jc5196fdcxn2g61i1pdabvdbxxcdi4j7jbaq3hfs38dcgfa7n")))) (build-system gnu-build-system) (home-page "https://gnupg.org") (synopsis "Library of error values for GnuPG components") -- cgit v1.2.3 From a373c68588498c7f2316227f020036e49ec648c5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 21 Nov 2016 14:12:40 -0500 Subject: gnu: libatomic-ops: Update to 7.4.4. * gnu/packages/bdw-gc.scm (libatomic-ops): Update to 7.4.4. --- gnu/packages/bdw-gc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 992a11bac0..193cbce620 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -67,7 +67,7 @@ C or C++ programs, though that is not its primary goal.") (define-public libatomic-ops (package (name "libatomic-ops") - (version "7.4.2") + (version "7.4.4") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +75,7 @@ C or C++ programs, though that is not its primary goal.") version ".tar.gz")) (sha256 (base32 - "1pdm0h1y7bgkczr8byg20r6bq15m5072cqm5pny4f9crc9gn3yh4")))) + "13vg5fqwil17zpf4hj4h8rh3blzmym693lkdjgvwpgni1mh0l8dz")))) (build-system gnu-build-system) (outputs '("out" "debug")) (synopsis "Accessing hardware atomic memory update operations") -- cgit v1.2.3 From a8ce976fe6e151a14b1a5ad48f652931ef67ca40 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 21 Nov 2016 14:16:01 -0500 Subject: gnu: libgc-7.2: Update to 7.2g. * gnu/packages/bdw-gc.scm (libgc-7.2): Update to 7.2g. --- gnu/packages/bdw-gc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 193cbce620..626a23ae08 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -27,14 +27,14 @@ (define-public libgc-7.2 (package (name "libgc") - (version "7.2f") + (version "7.2g") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "119x7p1cqw40mpwj80xfq879l9m1dkc7vbc1f3bz3kvkf8bf6p16")))) + "0bvw6cc555qg5b7dgcqy3ryiw0wir79dqy0glff3hjmyy7i2jkjq")))) (build-system gnu-build-system) (arguments ;; Make it so that we don't rely on /proc. This is especially useful in -- cgit v1.2.3 From 4b269baf44d02c00ff3a09743ce4224cfbdc312b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 21 Nov 2016 14:16:52 -0500 Subject: gnu: libgc: Update to 7.6.0. * gnu/packages/bdw-gc.scm (libgc): Update to 7.6.0. --- gnu/packages/bdw-gc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 626a23ae08..dfcca45c18 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -91,14 +91,14 @@ lock-free code, experiment with thread programming paradigms, etc.") (define-public libgc (package (inherit libgc-7.2) - (version "7.4.2") + (version "7.6.0") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "18mg28rr6kwr5clc65k4l4hkyy4kd16amx831sjf8q2lqkbhlck3")))) + "143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) ;; New dependencies. (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 6e388b08399b322121d9113ab7367366ad14eba0 Mon Sep 17 00:00:00 2001 From: Petter Date: Mon, 21 Nov 2016 19:30:50 +0100 Subject: gnu: openssl: Remove redundant use of mkdir-p. * gnu/packages/tls.scm (openssl)[arguments]: Remove redundant (mkdir-p). Signed-off-by: Leo Famulari --- gnu/packages/tls.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 74cc25bb67..bea15fa24d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -294,7 +294,6 @@ required structures.") (lib (string-append out "/lib")) (static (assoc-ref outputs "static")) (slib (string-append static "/lib"))) - (mkdir-p slib) (for-each (lambda (file) (install-file file slib) (delete-file file)) -- cgit v1.2.3 From 57742b35dc0260ad8779438273cccce5f3d6e2c0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 7 Nov 2016 15:19:21 +0100 Subject: gnu: ncurses: Install pkg-config ‘.pc’ files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ncurses.scm (ncurses)[arguments]: Add ‘--enable-pc-files’ and ‘--with-pkg-config-libdir=’ to #:configure-flags. Create ‘non-wide’ compatibility symbolic links for ‘.pc’ files in the post-install-phase. [native-inputs]: Add pkg-config. --- gnu/packages/ncurses.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index e21e477f4f..81da864413 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -28,6 +28,7 @@ #:use-module (guix build-system perl) #:use-module (gnu packages) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages swig)) (define-public ncurses @@ -70,7 +71,7 @@ (let ((out (assoc-ref outputs "out"))) ;; When building a wide-character (Unicode) build, create backward ;; compatibility links from the the "normal" libraries to the - ;; wide-character libraries (e.g. libncurses.so to libncursesw.so). + ;; wide-character ones (e.g. libncurses.so to libncursesw.so). (with-directory-excursion (string-append out "/lib") (for-each (lambda (lib) (define libw.a @@ -83,6 +84,10 @@ (string-append "lib" lib ".so.6")) (define lib.so (string-append "lib" lib ".so")) + (define packagew.pc + (string-append lib "w.pc")) + (define package.pc + (string-append lib ".pc")) (when (file-exists? libw.a) (format #t "creating symlinks for `lib~a'~%" lib) @@ -91,7 +96,11 @@ (false-if-exception (delete-file lib.so)) (call-with-output-file lib.so (lambda (p) - (format p "INPUT (-l~aw)~%" lib))))) + (format p "INPUT (-l~aw)~%" lib)))) + (with-directory-excursion "pkgconfig" + (format #t "creating symlink for `~a'~%" package.pc) + (when (file-exists? packagew.pc) + (symlink packagew.pc package.pc)))) '("curses" "ncurses" "form" "panel" "menu"))))))) (package (name "ncurses") @@ -110,6 +119,11 @@ `(#:configure-flags `("--with-shared" "--without-debug" "--enable-widec" + "--enable-pc-files" + ,(string-append "--with-pkg-config-libdir=" + (assoc-ref %outputs "out") + "/lib/pkgconfig") + ;; By default headers land in an `ncursesw' subdir, which is not ;; what users expect. ,(string-append "--includedir=" (assoc-ref %outputs "out") @@ -130,6 +144,8 @@ (add-after 'unpack 'remove-unneeded-shebang ,remove-shebang-phase)))) (self-native-input? #t) ; for `tic' + (native-inputs + `(("pkg-config" ,pkg-config))) (native-search-paths (list (search-path-specification (variable "TERMINFO_DIRS") -- cgit v1.2.3 From eec9c4a7c5615698254357b7fa0bcbeeb0137cbc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 7 Nov 2016 15:29:06 +0100 Subject: gnu: progress: Update to 0.13.1. * gnu/packages/admin.scm (progress): Update to 0.13.1. [native-inputs]: Add pkg-config and which. [arguments]: Drop LDFLAGS (now handled by pkg-config) from #:make-flags. --- gnu/packages/admin.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5adde6cc4a..88d9cdc21b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -112,20 +112,23 @@ usual file attributes can be checked for inconsistencies.") (define-public progress (package (name "progress") - (version "0.13") + (version "0.13.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/Xfennec/" name "/archive/v" version ".tar.gz")) (sha256 - (base32 "133iar4vq5vlklydb4cyazjy6slmpbndrws474mg738bd8avc30n")) + (base32 "199rk6608q9m6l0fbjm0xl2w1c5krf8245dqnksdp4rqp7l9ak06")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) (inputs `(("ncurses" ,ncurses))) (arguments `(#:tests? #f ; There is no test suite. - #:make-flags (list "CC=gcc" "LDFLAGS+=-lncurses" + #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases -- cgit v1.2.3 From c70047f12d7e9d5138a1a217d0995882a8c5f459 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 22 Nov 2016 17:50:07 +0100 Subject: gnu: freetype: Update to 2.7. * gnu/packages/fontutils.scm (freetype): Update to 2.7. [home-page]: Use HTTPS. --- gnu/packages/fontutils.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 60cff2e330..1ffb427529 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -46,13 +46,13 @@ (define-public freetype (package (name "freetype") - (version "2.6.3") + (version "2.7") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip")))) + "0j3xgzn6pchgg1nm294vhx7cdicb7x3x8kwnlcm7v1alnzsm396n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -69,7 +69,7 @@ It supports both bitmap and scalable formats, including TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others. It supports high-speed anti-aliased glyph bitmap generation with 256 gray levels.") (license license:freetype) ; some files have other licenses - (home-page "http://www.freetype.org/"))) + (home-page "https://www.freetype.org/"))) (define-public ttfautohint (package -- cgit v1.2.3 From c0bb7178be39fc5424c9f48e9c9f2d10d39b142b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 23 Nov 2016 00:14:29 -0500 Subject: gnu: libtiff: Update to 4.0.7. * gnu/packages/image.scm (libtiff): Update to 4.0.7. [source]: Update URL and remove obsolete patches. [home-page]: Update URL. (libtiff-4.0.7): Delete variable. * gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch, gnu/packages/patches/libtiff-CVE-2016-3623.patch, gnu/packages/patches/libtiff-CVE-2016-3945.patch, gnu/packages/patches/libtiff-CVE-2016-3990.patch, gnu/packages/patches/libtiff-CVE-2016-3991.patch, gnu/packages/patches/libtiff-CVE-2016-5314.patch, gnu/packages/patches/libtiff-CVE-2016-5321.patch, gnu/packages/patches/libtiff-CVE-2016-5323.patch, gnu/packages/patches/libtiff-oob-accesses-in-decode.patch, gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 10 -- gnu/packages/image.scm | 38 +---- .../libtiff-CVE-2015-8665+CVE-2015-8683.patch | 107 ------------- gnu/packages/patches/libtiff-CVE-2016-3623.patch | 30 ---- gnu/packages/patches/libtiff-CVE-2016-3945.patch | 94 ----------- gnu/packages/patches/libtiff-CVE-2016-3990.patch | 31 ---- gnu/packages/patches/libtiff-CVE-2016-3991.patch | 123 --------------- gnu/packages/patches/libtiff-CVE-2016-5314.patch | 45 ------ gnu/packages/patches/libtiff-CVE-2016-5321.patch | 25 --- gnu/packages/patches/libtiff-CVE-2016-5323.patch | 88 ----------- .../patches/libtiff-oob-accesses-in-decode.patch | 171 --------------------- .../patches/libtiff-oob-write-in-nextdecode.patch | 49 ------ 12 files changed, 7 insertions(+), 804 deletions(-) delete mode 100644 gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-3623.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-3945.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-3990.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-3991.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-5314.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-5321.patch delete mode 100644 gnu/packages/patches/libtiff-CVE-2016-5323.patch delete mode 100644 gnu/packages/patches/libtiff-oob-accesses-in-decode.patch delete mode 100644 gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch diff --git a/gnu/local.mk b/gnu/local.mk index 49137277f1..52e0742301 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -664,16 +664,6 @@ dist_patch_DATA = \ %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ - %D%/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ - %D%/packages/patches/libtiff-CVE-2016-3623.patch \ - %D%/packages/patches/libtiff-CVE-2016-3945.patch \ - %D%/packages/patches/libtiff-CVE-2016-3990.patch \ - %D%/packages/patches/libtiff-CVE-2016-3991.patch \ - %D%/packages/patches/libtiff-CVE-2016-5314.patch \ - %D%/packages/patches/libtiff-CVE-2016-5321.patch \ - %D%/packages/patches/libtiff-CVE-2016-5323.patch \ - %D%/packages/patches/libtiff-oob-accesses-in-decode.patch \ - %D%/packages/patches/libtiff-oob-write-in-nextdecode.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ %D%/packages/patches/libupnp-CVE-2016-6255.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 526c87cf86..0003ca0c67 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -243,25 +243,14 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") - (replacement libtiff-4.0.7) - (version "4.0.6") + (version "4.0.7") (source (origin (method url-fetch) - (uri (string-append "ftp://ftp.remotesensing.org/pub/libtiff/tiff-" - version ".tar.gz")) - (sha256 (base32 - "136nf1rj9dp5jgv1p7z4dk0xy3wki1w0vfjbk82f645m0w4samsd")) - (patches (search-patches - "libtiff-oob-accesses-in-decode.patch" - "libtiff-oob-write-in-nextdecode.patch" - "libtiff-CVE-2015-8665+CVE-2015-8683.patch" - "libtiff-CVE-2016-3623.patch" - "libtiff-CVE-2016-3945.patch" - "libtiff-CVE-2016-3990.patch" - "libtiff-CVE-2016-3991.patch" - "libtiff-CVE-2016-5314.patch" - "libtiff-CVE-2016-5321.patch" - "libtiff-CVE-2016-5323.patch")))) + (uri (string-append "ftp://download.osgeo.org/libtiff/tiff-" + version ".tar.gz")) + (sha256 + (base32 + "06ghqhr4db1ssq0acyyz49gr8k41gzw6pqb6mbn5r7jqp77s4hwz")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation @@ -281,20 +270,7 @@ Included are a library, libtiff, for reading and writing TIFF and a small collection of tools for doing simple manipulations of TIFF images.") (license (license:non-copyleft "file://COPYRIGHT" "See COPYRIGHT in the distribution.")) - (home-page "http://www.remotesensing.org/libtiff/"))) - -(define libtiff-4.0.7 - (package - (inherit libtiff) - (version "4.0.7") - (source (origin - (method url-fetch) - (uri (string-append "ftp://download.osgeo.org/libtiff/tiff-" - version ".tar.gz")) - (sha256 - (base32 - "06ghqhr4db1ssq0acyyz49gr8k41gzw6pqb6mbn5r7jqp77s4hwz")))) - (home-page "http://www.simplesystems.org/libtiff/"))) + (home-page "http://www.simplesystems.org/libtiff/"))) (define-public libwmf (package diff --git a/gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch b/gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch deleted file mode 100644 index 811516dbe9..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch +++ /dev/null @@ -1,107 +0,0 @@ -2015-12-26 Even Rouault - - * libtiff/tif_getimage.c: fix out-of-bound reads in TIFFRGBAImage - interface in case of unsupported values of SamplesPerPixel/ExtraSamples - for LogLUV / CIELab. Add explicit call to TIFFRGBAImageOK() in - TIFFRGBAImageBegin(). Fix CVE-2015-8665 reported by limingxing and - CVE-2015-8683 reported by zzf of Alibaba. - -diff -u -r1.93 -r1.94 ---- libtiff/libtiff/tif_getimage.c 22 Nov 2015 15:31:03 -0000 1.93 -+++ libtiff/libtiff/tif_getimage.c 26 Dec 2015 17:32:03 -0000 1.94 -@@ -182,20 +182,22 @@ - "Planarconfiguration", td->td_planarconfig); - return (0); - } -- if( td->td_samplesperpixel != 3 ) -+ if( td->td_samplesperpixel != 3 || colorchannels != 3 ) - { - sprintf(emsg, -- "Sorry, can not handle image with %s=%d", -- "Samples/pixel", td->td_samplesperpixel); -+ "Sorry, can not handle image with %s=%d, %s=%d", -+ "Samples/pixel", td->td_samplesperpixel, -+ "colorchannels", colorchannels); - return 0; - } - break; - case PHOTOMETRIC_CIELAB: -- if( td->td_samplesperpixel != 3 || td->td_bitspersample != 8 ) -+ if( td->td_samplesperpixel != 3 || colorchannels != 3 || td->td_bitspersample != 8 ) - { - sprintf(emsg, -- "Sorry, can not handle image with %s=%d and %s=%d", -+ "Sorry, can not handle image with %s=%d, %s=%d and %s=%d", - "Samples/pixel", td->td_samplesperpixel, -+ "colorchannels", colorchannels, - "Bits/sample", td->td_bitspersample); - return 0; - } -@@ -255,6 +257,9 @@ - int colorchannels; - uint16 *red_orig, *green_orig, *blue_orig; - int n_color; -+ -+ if( !TIFFRGBAImageOK(tif, emsg) ) -+ return 0; - - /* Initialize to normal values */ - img->row_offset = 0; -@@ -2509,29 +2514,33 @@ - case PHOTOMETRIC_RGB: - switch (img->bitspersample) { - case 8: -- if (img->alpha == EXTRASAMPLE_ASSOCALPHA) -+ if (img->alpha == EXTRASAMPLE_ASSOCALPHA && -+ img->samplesperpixel >= 4) - img->put.contig = putRGBAAcontig8bittile; -- else if (img->alpha == EXTRASAMPLE_UNASSALPHA) -+ else if (img->alpha == EXTRASAMPLE_UNASSALPHA && -+ img->samplesperpixel >= 4) - { - if (BuildMapUaToAa(img)) - img->put.contig = putRGBUAcontig8bittile; - } -- else -+ else if( img->samplesperpixel >= 3 ) - img->put.contig = putRGBcontig8bittile; - break; - case 16: -- if (img->alpha == EXTRASAMPLE_ASSOCALPHA) -+ if (img->alpha == EXTRASAMPLE_ASSOCALPHA && -+ img->samplesperpixel >=4 ) - { - if (BuildMapBitdepth16To8(img)) - img->put.contig = putRGBAAcontig16bittile; - } -- else if (img->alpha == EXTRASAMPLE_UNASSALPHA) -+ else if (img->alpha == EXTRASAMPLE_UNASSALPHA && -+ img->samplesperpixel >=4 ) - { - if (BuildMapBitdepth16To8(img) && - BuildMapUaToAa(img)) - img->put.contig = putRGBUAcontig16bittile; - } -- else -+ else if( img->samplesperpixel >=3 ) - { - if (BuildMapBitdepth16To8(img)) - img->put.contig = putRGBcontig16bittile; -@@ -2540,7 +2549,7 @@ - } - break; - case PHOTOMETRIC_SEPARATED: -- if (buildMap(img)) { -+ if (img->samplesperpixel >=4 && buildMap(img)) { - if (img->bitspersample == 8) { - if (!img->Map) - img->put.contig = putRGBcontig8bitCMYKtile; -@@ -2636,7 +2645,7 @@ - } - break; - case PHOTOMETRIC_CIELAB: -- if (buildMap(img)) { -+ if (img->samplesperpixel == 3 && buildMap(img)) { - if (img->bitspersample == 8) - img->put.contig = initCIELabConversion(img); - break; diff --git a/gnu/packages/patches/libtiff-CVE-2016-3623.patch b/gnu/packages/patches/libtiff-CVE-2016-3623.patch deleted file mode 100644 index 08705861e3..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-3623.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fix CVE-2016-3623. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3623 -http://bugzilla.maptools.org/show_bug.cgi?id=2569 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.16 -r1.17 tools/rgb2ycbcr.c - -Index: tools/rgb2ycbcr.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/tools/rgb2ycbcr.c,v -retrieving revision 1.16 -retrieving revision 1.17 -diff -u -r1.16 -r1.17 ---- libtiff/tools/rgb2ycbcr.c 21 Jun 2015 01:09:10 -0000 1.16 -+++ libtiff/tools/rgb2ycbcr.c 15 Aug 2016 21:26:56 -0000 1.17 -@@ -95,9 +95,13 @@ - break; - case 'h': - horizSubSampling = atoi(optarg); -+ if( horizSubSampling != 1 && horizSubSampling != 2 && horizSubSampling != 4 ) -+ usage(-1); - break; - case 'v': - vertSubSampling = atoi(optarg); -+ if( vertSubSampling != 1 && vertSubSampling != 2 && vertSubSampling != 4 ) -+ usage(-1); - break; - case 'r': - rowsperstrip = atoi(optarg); diff --git a/gnu/packages/patches/libtiff-CVE-2016-3945.patch b/gnu/packages/patches/libtiff-CVE-2016-3945.patch deleted file mode 100644 index 8ec62bab99..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-3945.patch +++ /dev/null @@ -1,94 +0,0 @@ -Fix CVE-2016-3945 (integer overflow in size of allocated -buffer, when -b mode is enabled, that could result in out-of-bounds -write). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3945 -http://bugzilla.maptools.org/show_bug.cgi?id=2545 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.21 -r1.22 tools/tiff2rgba.c - -Index: tools/tiff2rgba.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/tools/tiff2rgba.c,v -retrieving revision 1.21 -retrieving revision 1.22 -diff -u -r1.21 -r1.22 ---- libtiff/tools/tiff2rgba.c 21 Jun 2015 01:09:10 -0000 1.21 -+++ libtiff/tools/tiff2rgba.c 15 Aug 2016 20:06:41 -0000 1.22 -@@ -147,6 +147,7 @@ - uint32 row, col; - uint32 *wrk_line; - int ok = 1; -+ uint32 rastersize, wrk_linesize; - - TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); - TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); -@@ -163,7 +164,13 @@ - /* - * Allocate tile buffer - */ -- raster = (uint32*)_TIFFmalloc(tile_width * tile_height * sizeof (uint32)); -+ rastersize = tile_width * tile_height * sizeof (uint32); -+ if (tile_width != (rastersize / tile_height) / sizeof( uint32)) -+ { -+ TIFFError(TIFFFileName(in), "Integer overflow when calculating raster buffer"); -+ exit(-1); -+ } -+ raster = (uint32*)_TIFFmalloc(rastersize); - if (raster == 0) { - TIFFError(TIFFFileName(in), "No space for raster buffer"); - return (0); -@@ -173,7 +180,13 @@ - * Allocate a scanline buffer for swapping during the vertical - * mirroring pass. - */ -- wrk_line = (uint32*)_TIFFmalloc(tile_width * sizeof (uint32)); -+ wrk_linesize = tile_width * sizeof (uint32); -+ if (tile_width != wrk_linesize / sizeof (uint32)) -+ { -+ TIFFError(TIFFFileName(in), "Integer overflow when calculating wrk_line buffer"); -+ exit(-1); -+ } -+ wrk_line = (uint32*)_TIFFmalloc(wrk_linesize); - if (!wrk_line) { - TIFFError(TIFFFileName(in), "No space for raster scanline buffer"); - ok = 0; -@@ -249,6 +262,7 @@ - uint32 row; - uint32 *wrk_line; - int ok = 1; -+ uint32 rastersize, wrk_linesize; - - TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); - TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); -@@ -263,7 +277,13 @@ - /* - * Allocate strip buffer - */ -- raster = (uint32*)_TIFFmalloc(width * rowsperstrip * sizeof (uint32)); -+ rastersize = width * rowsperstrip * sizeof (uint32); -+ if (width != (rastersize / rowsperstrip) / sizeof( uint32)) -+ { -+ TIFFError(TIFFFileName(in), "Integer overflow when calculating raster buffer"); -+ exit(-1); -+ } -+ raster = (uint32*)_TIFFmalloc(rastersize); - if (raster == 0) { - TIFFError(TIFFFileName(in), "No space for raster buffer"); - return (0); -@@ -273,7 +293,13 @@ - * Allocate a scanline buffer for swapping during the vertical - * mirroring pass. - */ -- wrk_line = (uint32*)_TIFFmalloc(width * sizeof (uint32)); -+ wrk_linesize = width * sizeof (uint32); -+ if (width != wrk_linesize / sizeof (uint32)) -+ { -+ TIFFError(TIFFFileName(in), "Integer overflow when calculating wrk_line buffer"); -+ exit(-1); -+ } -+ wrk_line = (uint32*)_TIFFmalloc(wrk_linesize); - if (!wrk_line) { - TIFFError(TIFFFileName(in), "No space for raster scanline buffer"); - ok = 0; diff --git a/gnu/packages/patches/libtiff-CVE-2016-3990.patch b/gnu/packages/patches/libtiff-CVE-2016-3990.patch deleted file mode 100644 index 7641c3073b..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-3990.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix CVE-2016-3990 (write buffer overflow in PixarLogEncode if more input -samples are provided than expected by PixarLogSetupEncode). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3990 -http://bugzilla.maptools.org/show_bug.cgi?id=2544 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.45 -r1.46 libtiff/tif_pixarlog.c - -Index: libtiff/tif_pixarlog.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_pixarlog.c,v -retrieving revision 1.45 -retrieving revision 1.46 -diff -u -r1.45 -r1.46 ---- libtiff/libtiff/tif_pixarlog.c 28 Jun 2016 15:37:33 -0000 1.45 -+++ libtiff/libtiff/tif_pixarlog.c 15 Aug 2016 20:49:48 -0000 1.46 -@@ -1141,6 +1141,13 @@ - } - - llen = sp->stride * td->td_imagewidth; -+ /* Check against the number of elements (of size uint16) of sp->tbuf */ -+ if( n > td->td_rowsperstrip * llen ) -+ { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Too many input bytes provided"); -+ return 0; -+ } - - for (i = 0, up = sp->tbuf; i < n; i += llen, up += llen) { - switch (sp->user_datafmt) { diff --git a/gnu/packages/patches/libtiff-CVE-2016-3991.patch b/gnu/packages/patches/libtiff-CVE-2016-3991.patch deleted file mode 100644 index cb05f0007f..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-3991.patch +++ /dev/null @@ -1,123 +0,0 @@ -Fix CVE-2016-3991 (out-of-bounds write in loadImage()). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3991 -http://bugzilla.maptools.org/show_bug.cgi?id=2543 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.37 -r1.38 tools/tiffcrop.c - -Index: tools/tiffcrop.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/tools/tiffcrop.c,v -retrieving revision 1.37 -retrieving revision 1.38 -diff -u -r1.37 -r1.38 ---- libtiff/tools/tiffcrop.c 11 Jul 2016 21:38:31 -0000 1.37 -+++ libtiff/tools/tiffcrop.c 15 Aug 2016 21:05:40 -0000 1.38 -@@ -798,6 +798,11 @@ - } - - tile_buffsize = tilesize; -+ if (tilesize == 0 || tile_rowsize == 0) -+ { -+ TIFFError("readContigTilesIntoBuffer", "Tile size or tile rowsize is zero"); -+ exit(-1); -+ } - - if (tilesize < (tsize_t)(tl * tile_rowsize)) - { -@@ -807,7 +812,12 @@ - tilesize, tl * tile_rowsize); - #endif - tile_buffsize = tl * tile_rowsize; -- } -+ if (tl != (tile_buffsize / tile_rowsize)) -+ { -+ TIFFError("readContigTilesIntoBuffer", "Integer overflow when calculating buffer size."); -+ exit(-1); -+ } -+ } - - tilebuf = _TIFFmalloc(tile_buffsize); - if (tilebuf == 0) -@@ -1210,6 +1220,12 @@ - !TIFFGetField(out, TIFFTAG_BITSPERSAMPLE, &bps) ) - return 1; - -+ if (tilesize == 0 || tile_rowsize == 0 || tl == 0 || tw == 0) -+ { -+ TIFFError("writeBufferToContigTiles", "Tile size, tile row size, tile width, or tile length is zero"); -+ exit(-1); -+ } -+ - tile_buffsize = tilesize; - if (tilesize < (tsize_t)(tl * tile_rowsize)) - { -@@ -1219,6 +1235,11 @@ - tilesize, tl * tile_rowsize); - #endif - tile_buffsize = tl * tile_rowsize; -+ if (tl != tile_buffsize / tile_rowsize) -+ { -+ TIFFError("writeBufferToContigTiles", "Integer overflow when calculating buffer size"); -+ exit(-1); -+ } - } - - tilebuf = _TIFFmalloc(tile_buffsize); -@@ -5945,12 +5966,27 @@ - TIFFGetField(in, TIFFTAG_TILELENGTH, &tl); - - tile_rowsize = TIFFTileRowSize(in); -+ if (ntiles == 0 || tlsize == 0 || tile_rowsize == 0) -+ { -+ TIFFError("loadImage", "File appears to be tiled, but the number of tiles, tile size, or tile rowsize is zero."); -+ exit(-1); -+ } - buffsize = tlsize * ntiles; -+ if (tlsize != (buffsize / ntiles)) -+ { -+ TIFFError("loadImage", "Integer overflow when calculating buffer size"); -+ exit(-1); -+ } - -- - if (buffsize < (uint32)(ntiles * tl * tile_rowsize)) - { - buffsize = ntiles * tl * tile_rowsize; -+ if (ntiles != (buffsize / tl / tile_rowsize)) -+ { -+ TIFFError("loadImage", "Integer overflow when calculating buffer size"); -+ exit(-1); -+ } -+ - #ifdef DEBUG2 - TIFFError("loadImage", - "Tilesize %u is too small, using ntiles * tilelength * tilerowsize %lu", -@@ -5969,8 +6005,25 @@ - TIFFGetFieldDefaulted(in, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); - stsize = TIFFStripSize(in); - nstrips = TIFFNumberOfStrips(in); -+ if (nstrips == 0 || stsize == 0) -+ { -+ TIFFError("loadImage", "File appears to be striped, but the number of stipes or stripe size is zero."); -+ exit(-1); -+ } -+ - buffsize = stsize * nstrips; -- -+ if (stsize != (buffsize / nstrips)) -+ { -+ TIFFError("loadImage", "Integer overflow when calculating buffer size"); -+ exit(-1); -+ } -+ uint32 buffsize_check; -+ buffsize_check = ((length * width * spp * bps) + 7); -+ if (length != ((buffsize_check - 7) / width / spp / bps)) -+ { -+ TIFFError("loadImage", "Integer overflow detected."); -+ exit(-1); -+ } - if (buffsize < (uint32) (((length * width * spp * bps) + 7) / 8)) - { - buffsize = ((length * width * spp * bps) + 7) / 8; diff --git a/gnu/packages/patches/libtiff-CVE-2016-5314.patch b/gnu/packages/patches/libtiff-CVE-2016-5314.patch deleted file mode 100644 index e5380f8639..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-5314.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2016-5314. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5314 -bugzilla.maptools.org/show_bug.cgi?id=2554 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.43 -r1.44 libtiff/tif_pixarlog.c - -Index: libtiff/tif_pixarlog.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_pixarlog.c,v -retrieving revision 1.43 -retrieving revision 1.44 -diff -u -r1.43 -r1.44 ---- libtiff/libtiff/tif_pixarlog.c 27 Dec 2015 20:14:11 -0000 1.43 -+++ libtiff/libtiff/tif_pixarlog.c 28 Jun 2016 15:12:19 -0000 1.44 -@@ -459,6 +459,7 @@ - typedef struct { - TIFFPredictorState predict; - z_stream stream; -+ tmsize_t tbuf_size; /* only set/used on reading for now */ - uint16 *tbuf; - uint16 stride; - int state; -@@ -694,6 +695,7 @@ - sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size); - if (sp->tbuf == NULL) - return (0); -+ sp->tbuf_size = tbuf_size; - if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) - sp->user_datafmt = PixarLogGuessDataFmt(td); - if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) { -@@ -783,6 +785,12 @@ - TIFFErrorExt(tif->tif_clientdata, module, "ZLib cannot deal with buffers this size"); - return (0); - } -+ /* Check that we will not fill more than what was allocated */ -+ if (sp->stream.avail_out > sp->tbuf_size) -+ { -+ TIFFErrorExt(tif->tif_clientdata, module, "sp->stream.avail_out > sp->tbuf_size"); -+ return (0); -+ } - do { - int state = inflate(&sp->stream, Z_PARTIAL_FLUSH); - if (state == Z_STREAM_END) { diff --git a/gnu/packages/patches/libtiff-CVE-2016-5321.patch b/gnu/packages/patches/libtiff-CVE-2016-5321.patch deleted file mode 100644 index 2afca18e1d..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-5321.patch +++ /dev/null @@ -1,25 +0,0 @@ -Fix CVE-2016-5321. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5321 -http://bugzilla.maptools.org/show_bug.cgi?id=2558 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.35 -r1.36 tools/tiffcrop.c - -Index: tools/tiffcrop.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/tools/tiffcrop.c,v -retrieving revision 1.35 -retrieving revision 1.36 -diff -u -r1.35 -r1.36 ---- libtiff/tools/tiffcrop.c 19 Aug 2015 02:31:04 -0000 1.35 -+++ libtiff/tools/tiffcrop.c 11 Jul 2016 21:26:03 -0000 1.36 -@@ -989,7 +989,7 @@ - nrow = (row + tl > imagelength) ? imagelength - row : tl; - for (col = 0; col < imagewidth; col += tw) - { -- for (s = 0; s < spp; s++) -+ for (s = 0; s < spp && s < MAX_SAMPLES; s++) - { /* Read each plane of a tile set into srcbuffs[s] */ - tbytes = TIFFReadTile(in, srcbuffs[s], col, row, 0, s); - if (tbytes < 0 && !ignore) diff --git a/gnu/packages/patches/libtiff-CVE-2016-5323.patch b/gnu/packages/patches/libtiff-CVE-2016-5323.patch deleted file mode 100644 index 8b2a043d29..0000000000 --- a/gnu/packages/patches/libtiff-CVE-2016-5323.patch +++ /dev/null @@ -1,88 +0,0 @@ -Fix CVE-2016-5323. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5323 -http://bugzilla.maptools.org/show_bug.cgi?id=2559 - -Patch extracted from upstream CVS repo with: -$ cvs diff -u -r1.36 -r1.37 tools/tiffcrop.c - -Index: tools/tiffcrop.c -=================================================================== -RCS file: /cvs/maptools/cvsroot/libtiff/tools/tiffcrop.c,v -retrieving revision 1.36 -retrieving revision 1.37 -diff -u -r1.36 -r1.37 ---- libtiff/tools/tiffcrop.c 11 Jul 2016 21:26:03 -0000 1.36 -+++ libtiff/tools/tiffcrop.c 11 Jul 2016 21:38:31 -0000 1.37 -@@ -3738,7 +3738,7 @@ - - matchbits = maskbits << (8 - src_bit - bps); - /* load up next sample from each plane */ -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - buff1 = ((*src) & matchbits) << (src_bit); -@@ -3837,7 +3837,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (16 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) -@@ -3947,7 +3947,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (32 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) -@@ -4073,7 +4073,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (64 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) -@@ -4263,7 +4263,7 @@ - - matchbits = maskbits << (8 - src_bit - bps); - /* load up next sample from each plane */ -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - buff1 = ((*src) & matchbits) << (src_bit); -@@ -4362,7 +4362,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (16 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) -@@ -4471,7 +4471,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (32 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) -@@ -4597,7 +4597,7 @@ - src_bit = bit_offset % 8; - - matchbits = maskbits << (64 - src_bit - bps); -- for (s = 0; s < spp; s++) -+ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++) - { - src = in[s] + src_offset + src_byte; - if (little_endian) diff --git a/gnu/packages/patches/libtiff-oob-accesses-in-decode.patch b/gnu/packages/patches/libtiff-oob-accesses-in-decode.patch deleted file mode 100644 index 3fea745056..0000000000 --- a/gnu/packages/patches/libtiff-oob-accesses-in-decode.patch +++ /dev/null @@ -1,171 +0,0 @@ -2015-12-27 Even Rouault - - * libtiff/tif_luv.c: fix potential out-of-bound writes in decode - functions in non debug builds by replacing assert()s by regular if - checks (bugzilla #2522). - Fix potential out-of-bound reads in case of short input data. - -diff -u -r1.40 -r1.41 ---- libtiff/libtiff/tif_luv.c 21 Jun 2015 01:09:09 -0000 1.40 -+++ libtiff/libtiff/tif_luv.c 27 Dec 2015 16:25:11 -0000 1.41 -@@ -1,4 +1,4 @@ --/* $Id: tif_luv.c,v 1.40 2015-06-21 01:09:09 bfriesen Exp $ */ -+/* $Id: tif_luv.c,v 1.41 2015-12-27 16:25:11 erouault Exp $ */ - - /* - * Copyright (c) 1997 Greg Ward Larson -@@ -202,7 +202,11 @@ - if (sp->user_datafmt == SGILOGDATAFMT_16BIT) - tp = (int16*) op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (int16*) sp->tbuf; - } - _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0])); -@@ -211,9 +215,11 @@ - cc = tif->tif_rawcc; - /* get each byte string */ - for (shft = 2*8; (shft -= 8) >= 0; ) { -- for (i = 0; i < npixels && cc > 0; ) -+ for (i = 0; i < npixels && cc > 0; ) { - if (*bp >= 128) { /* run */ -- rc = *bp++ + (2-128); /* TODO: potential input buffer overrun when decoding corrupt or truncated data */ -+ if( cc < 2 ) -+ break; -+ rc = *bp++ + (2-128); - b = (int16)(*bp++ << shft); - cc -= 2; - while (rc-- && i < npixels) -@@ -223,6 +229,7 @@ - while (--cc && rc-- && i < npixels) - tp[i++] |= (int16)*bp++ << shft; - } -+ } - if (i != npixels) { - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - TIFFErrorExt(tif->tif_clientdata, module, -@@ -268,13 +275,17 @@ - if (sp->user_datafmt == SGILOGDATAFMT_RAW) - tp = (uint32 *)op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (uint32 *) sp->tbuf; - } - /* copy to array of uint32 */ - bp = (unsigned char*) tif->tif_rawcp; - cc = tif->tif_rawcc; -- for (i = 0; i < npixels && cc > 0; i++) { -+ for (i = 0; i < npixels && cc >= 3; i++) { - tp[i] = bp[0] << 16 | bp[1] << 8 | bp[2]; - bp += 3; - cc -= 3; -@@ -325,7 +336,11 @@ - if (sp->user_datafmt == SGILOGDATAFMT_RAW) - tp = (uint32*) op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (uint32*) sp->tbuf; - } - _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0])); -@@ -334,11 +349,13 @@ - cc = tif->tif_rawcc; - /* get each byte string */ - for (shft = 4*8; (shft -= 8) >= 0; ) { -- for (i = 0; i < npixels && cc > 0; ) -+ for (i = 0; i < npixels && cc > 0; ) { - if (*bp >= 128) { /* run */ -+ if( cc < 2 ) -+ break; - rc = *bp++ + (2-128); - b = (uint32)*bp++ << shft; -- cc -= 2; /* TODO: potential input buffer overrun when decoding corrupt or truncated data */ -+ cc -= 2; - while (rc-- && i < npixels) - tp[i++] |= b; - } else { /* non-run */ -@@ -346,6 +363,7 @@ - while (--cc && rc-- && i < npixels) - tp[i++] |= (uint32)*bp++ << shft; - } -+ } - if (i != npixels) { - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - TIFFErrorExt(tif->tif_clientdata, module, -@@ -413,6 +431,7 @@ - static int - LogL16Encode(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogL16Encode"; - LogLuvState* sp = EncoderState(tif); - int shft; - tmsize_t i; -@@ -433,7 +452,11 @@ - tp = (int16*) bp; - else { - tp = (int16*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* compress each byte string */ -@@ -506,6 +529,7 @@ - static int - LogLuvEncode24(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogLuvEncode24"; - LogLuvState* sp = EncoderState(tif); - tmsize_t i; - tmsize_t npixels; -@@ -521,7 +545,11 @@ - tp = (uint32*) bp; - else { - tp = (uint32*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* write out encoded pixels */ -@@ -553,6 +581,7 @@ - static int - LogLuvEncode32(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogLuvEncode32"; - LogLuvState* sp = EncoderState(tif); - int shft; - tmsize_t i; -@@ -574,7 +603,11 @@ - tp = (uint32*) bp; - else { - tp = (uint32*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* compress each byte string */ diff --git a/gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch b/gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch deleted file mode 100644 index 50657b667c..0000000000 --- a/gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch +++ /dev/null @@ -1,49 +0,0 @@ -2015-12-27 Even Rouault - - * libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode() - triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif - (bugzilla #2508) - -diff -u -r1.16 -r1.18 ---- libtiff/libtiff/tif_next.c 29 Dec 2014 12:09:11 -0000 1.16 -+++ libtiff/libtiff/tif_next.c 27 Dec 2015 17:14:52 -0000 1.18 -@@ -1,4 +1,4 @@ --/* $Id: tif_next.c,v 1.16 2014-12-29 12:09:11 erouault Exp $ */ -+/* $Id: tif_next.c,v 1.18 2015-12-27 17:14:52 erouault Exp $ */ - - /* - * Copyright (c) 1988-1997 Sam Leffler -@@ -37,7 +37,7 @@ - case 0: op[0] = (unsigned char) ((v) << 6); break; \ - case 1: op[0] |= (v) << 4; break; \ - case 2: op[0] |= (v) << 2; break; \ -- case 3: *op++ |= (v); break; \ -+ case 3: *op++ |= (v); op_offset++; break; \ - } \ - } - -@@ -103,6 +103,7 @@ - } - default: { - uint32 npixels = 0, grey; -+ tmsize_t op_offset = 0; - uint32 imagewidth = tif->tif_dir.td_imagewidth; - if( isTiled(tif) ) - imagewidth = tif->tif_dir.td_tilewidth; -@@ -122,10 +123,15 @@ - * bounds, potentially resulting in a security - * issue. - */ -- while (n-- > 0 && npixels < imagewidth) -+ while (n-- > 0 && npixels < imagewidth && op_offset < scanline) - SETPIXEL(op, grey); - if (npixels >= imagewidth) - break; -+ if (op_offset >= scanline ) { -+ TIFFErrorExt(tif->tif_clientdata, module, "Invalid data for scanline %ld", -+ (long) tif->tif_row); -+ return (0); -+ } - if (cc == 0) - goto bad; - n = *bp++, cc--; -- cgit v1.2.3 From 5ac13f9218141e7fc4b57540d2da86e90ca9ab54 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 22 Nov 2016 21:16:29 +0100 Subject: gnu: Update mit-krb5 to version 1.14.4. * gnu/packages/mit-krb5.scm (mit-krb5): Update to 1.14.4 --- gnu/packages/mit-krb5.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index 3299c7b5c4..87fe57dc4b 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -32,7 +32,7 @@ (define-public mit-krb5 (package (name "mit-krb5") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append "http://web.mit.edu/kerberos/dist/krb5/" @@ -40,7 +40,7 @@ "/krb5-" version ".tar.gz")) (sha256 (base32 - "1jgjiyh1sp72lkxvk437lz5hzcibvw99jc4ihzfz03fg43aj0ind")))) + "158bgq9xcg5ljgzia1880ak7m9g6vf2r009rzdqif5n9h111m9h3")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) -- cgit v1.2.3 From c8d1e7a1308e3c83aeb556be7d5b1e1836544e95 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 23 Nov 2016 23:03:37 -0500 Subject: gnu: libgc-7.2: Remove package. This package variant was unused. * gnu/packages/bdw-gc.scm (libgc-7.2): Delete variable. --- gnu/packages/bdw-gc.scm | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index dfcca45c18..b9732374d7 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,24 +25,23 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages pkg-config)) -(define-public libgc-7.2 +(define-public libgc (package (name "libgc") - (version "7.2g") + (version "7.6.0") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "0bvw6cc555qg5b7dgcqy3ryiw0wir79dqy0glff3hjmyy7i2jkjq")))) + "143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) (build-system gnu-build-system) (arguments - ;; Make it so that we don't rely on /proc. This is especially useful in - ;; an initrd run before /proc is mounted. - '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES" - ;; Install gc_cpp.h et al. + '(#:configure-flags '(;; Install gc_cpp.h et al. "--enable-cplusplus"))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("libatomic-ops" ,libatomic-ops))) (outputs '("out" "debug")) (synopsis "The Boehm-Demers-Weiser conservative garbage collector for C and C++") @@ -88,21 +88,3 @@ lock-free code, experiment with thread programming paradigms, etc.") ;; Some source files are X11-style, others are GPLv2+. (license gpl2+))) - -(define-public libgc - (package (inherit libgc-7.2) - (version "7.6.0") - (source (origin - (method url-fetch) - (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" - version ".tar.gz")) - (sha256 - (base32 - "143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) - - ;; New dependencies. - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("libatomic-ops" ,libatomic-ops))) - - ;; 'USE_LIBC_PRIVATES' is now the default. - (arguments '(#:configure-flags '("--enable-cplusplus"))))) -- cgit v1.2.3 From c254ac32004a4407d73ab254bc1c44eed0220355 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 24 Nov 2016 09:11:39 +0100 Subject: build-system/gnu: Make libraries writable before stripping. * guix/build/gnu-build-system.scm (strip)[strip-dir]: Change mode of files before running strip-command. --- guix/build/gnu-build-system.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 1dfd85450c..59394c2cac 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -393,6 +393,8 @@ makefiles." (or (elf-file? file) (ar-file? file)) (or (not debug-output) (make-debug-file file)) + ;; Ensure libraries are writable. + (chmod file #o755) (zero? (apply system* strip-command (append strip-flags (list file)))) (or (not debug-output) -- cgit v1.2.3 From 3ad8cb4163deee77882ee4bded83a548752b896f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 24 Nov 2016 17:05:47 +0100 Subject: gnu: sqlite: Update to 3.15.1. * gnu/packages/databases.scm (sqlite): Update to 3.15.1. [source]: Download from sqlite.org. [home-page]: Use HTTPS. (sqlite-3.15.1): Remove. * gnu/packages/php.scm (php)[inputs]: Change 'sqlite-3.15.1' to 'sqlite'. --- gnu/packages/databases.scm | 45 +++++---------------------------------------- gnu/packages/php.scm | 2 +- 2 files changed, 6 insertions(+), 41 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index d6746f092f..859e242cc7 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -507,12 +507,9 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.14.1") + (version "3.15.1") (source (origin (method url-fetch) - ;; TODO: Download from sqlite.org once this bug : - ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html - ;; has been fixed. (uri (let ((numeric-version (match (string-split version #\.) ((first-digit other-digits ...) @@ -522,23 +519,11 @@ for example from a shell script.") (map (cut string-pad <> 2 #\0) other-digits)) 6 #\0)))))) - (list - (string-append - "https://fossies.org/linux/misc/sqlite-autoconf-" - numeric-version ".tar.gz") - (string-append - "http://distfiles.gentoo.org/distfiles/" - "/sqlite-autoconf-" numeric-version ".tar.gz")) - - ;; XXX: As of 2015-09-08, SourceForge is squatting the URL - ;; below, returning 200 and showing an advertising page. - ;; (string-append - ;; "mirror://sourceforge/sqlite.mirror/SQLite%20" version - ;; "/sqlite-autoconf-" numeric-version ".tar.gz") - )) + (string-append "https://sqlite.org/2016/sqlite-autoconf-" + numeric-version ".tar.gz"))) (sha256 (base32 - "19j73j44akqgc6m82wm98yvnmm3mfzmfqr8mp3n7n080d53q4wdw")))) + "1ig2d9jzzixiifmgqsl6kjcvy17jwxby3s24gfnc5qvyd6vqkyjx")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments @@ -549,7 +534,7 @@ for example from a shell script.") (list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE " "-DSQLITE_ENABLE_UNLOCK_NOTIFY " "-DSQLITE_ENABLE_DBSTAT_VTAB")))) - (home-page "http://www.sqlite.org/") + (home-page "https://www.sqlite.org/") (synopsis "The SQLite database management system") (description "SQLite is a software library that implements a self-contained, serverless, @@ -558,26 +543,6 @@ widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.") (license public-domain))) -(define-public sqlite-3.15.1 - (package (inherit sqlite) - (version "3.15.1") - (source (origin - (method url-fetch) - (uri (let ((numeric-version - (match (string-split version #\.) - ((first-digit other-digits ...) - (string-append first-digit - (string-pad-right - (string-concatenate - (map (cut string-pad <> 2 #\0) - other-digits)) - 6 #\0)))))) - (string-append "https://sqlite.org/2016/sqlite-autoconf-" - numeric-version ".tar.gz"))) - (sha256 - (base32 - "1ig2d9jzzixiifmgqsl6kjcvy17jwxby3s24gfnc5qvyd6vqkyjx")))))) - (define-public tdb (package (name "tdb") diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 9ccbede873..245892f6e8 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -309,7 +309,7 @@ ("pcre" ,pcre) ("postgresql" ,postgresql) ("readline" ,readline) - ("sqlite" ,sqlite-3.15.1) + ("sqlite" ,sqlite) ("tidy" ,tidy) ("zip" ,zip) ("zlib" ,zlib))) -- cgit v1.2.3 From e30abbbb02583021eaf7f0533f234ea92f291d55 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 26 Nov 2016 16:22:25 -0500 Subject: gnu: cyrus-sasl: Incorporate grafted patch. * gnu/packages/cyrus-sasl.scm (cyrus-sasl)[source]: Use 'cyrus-sasl-CVE-2013-4122.patch'. [replacement]: Remove field. (cyrus-sasl/fixed): Remove variable. --- gnu/packages/cyrus-sasl.scm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index 89a4a49797..3c6a87828a 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -31,7 +31,6 @@ (define-public cyrus-sasl (package (name "cyrus-sasl") - (replacement cyrus-sasl/fixed) (version "2.1.26") (source (origin (method url-fetch) @@ -41,6 +40,7 @@ (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")))) (build-system gnu-build-system) @@ -66,10 +66,3 @@ server writers.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) (home-page "http://cyrusimap.web.cmu.edu"))) - -(define cyrus-sasl/fixed - (package - (inherit cyrus-sasl) - (source (origin - (inherit (package-source cyrus-sasl)) - (patches (search-patches "cyrus-sasl-CVE-2013-4122.patch")))))) -- cgit v1.2.3 From 5499de02ca265745b98ddcc40af087dfaa14c9ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 26 Nov 2016 22:16:16 +0200 Subject: gnu: icu4c: Update to 58.1. * gnu/packages/icu4c.scm (icu4c): Update to 58.1. [source]: Download from their website. [arguments]: Remove extra bash replacement. --- gnu/packages/icu4c.scm | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 13723bf585..18de81f4ad 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2015, 2016 Mark H Weaver +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,20 +29,17 @@ (define-public icu4c (package (name "icu4c") - (version "55.1") + (version "58.1") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/icu/ICU4C/" + "http://download.icu-project.org/files/icu4c/" version "/icu4c-" (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) (sha256 - (base32 "0ys5f5spizg45qlaa31j2lhgry0jka2gfha527n4ndfxxz5j4sz1")) - (patches (search-patches "icu4c-CVE-2014-6585.patch" - "icu4c-CVE-2015-1270.patch" - "icu4c-CVE-2015-4760.patch")))) + (base32 "0283lcgb39v7hsl16bbp8h8r9d51n4lpld5dr292173afjinpd0f")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) @@ -58,15 +56,7 @@ (alist-cons-after 'unpack 'chdir-to-source (lambda _ (chdir "source")) - (alist-cons-before - 'configure 'patch-configure - (lambda _ - ;; patch out two occurrences of /bin/sh from configure script - ;; that might have disappeared in a release later than 54.1 - (substitute* "configure" - (("`/bin/sh") - (string-append "`" (which "bash"))))) - %standard-phases)))) + %standard-phases))) (synopsis "International Components for Unicode") (description "ICU is a set of C/C++ and Java libraries providing Unicode and -- cgit v1.2.3 From c296d5d119ff48c87f19a354db2b2e117ddfe4e6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 09:21:48 +0200 Subject: gnu: icu4c: Use 'modify-phases' syntax. * gnu/packages/icu4c.scm (icu4c)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/icu4c.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 18de81f4ad..fb8ff72cbc 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -53,10 +53,9 @@ '("--with-data-packaging=archive") '())) #:phases - (alist-cons-after - 'unpack 'chdir-to-source - (lambda _ (chdir "source")) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'chdir-to-source + (lambda _ (chdir "source") #t))))) (synopsis "International Components for Unicode") (description "ICU is a set of C/C++ and Java libraries providing Unicode and -- cgit v1.2.3 From feefbb094632b40cb56ad9764ba6c88547ef13ff Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 09:24:17 +0200 Subject: gnu: bash: Update to patch level 5. * gnu/packages/bash.scm (%patch-url-seqno): Update for bash-4.4. (%patch-series-4.4): Add patches 1 to 5. --- gnu/packages/bash.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index d328d711d1..90b6c3f17e 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Leo Famulari +;;; Copyright © 2016 Efraim Flashenr ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,7 +39,7 @@ (define (patch-url seqno) "Return the URL of Bash patch number SEQNO." - (format #f "mirror://gnu/bash/bash-4.3-patches/bash43-~3,'0d" seqno)) + (format #f "mirror://gnu/bash/bash-4.4-patches/bash44-~3,'0d" seqno)) (define (bash-patch seqno sha256) "Return the origin of Bash patch SEQNO, with expected hash SHA256" @@ -54,7 +55,12 @@ (define %patch-series-4.4 ;; This is the current patches series for 4.4, generated using ;; 'download-patches' below. - (patch-series)) + (patch-series + (1 "03vzy7qwjdd5qvl3ydg99naazas2qmyd0yhnrflgjbbm64axja1y") + (2 "0lrwq6vyqism3yqv9s7kzaf3dsl4q5w9r5svcqz279qp7qca083h") + (3 "1chqww2rj6g42b8s60q5zlzy0jzp684jkpsbrbfy1vzxja8mmpsi") + (4 "1cy8abf96hkrjhw921ndr0shlcnc52bg45rn6xri4v5clhq0l25d") + (5 "0a8515kyk4zsgmvlqvlganjfr7pq0j6kzpr4d6xx02kpbdr4n7i2"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of -- cgit v1.2.3 From 31bd09e5a8136405ef6456ec9de72718a5a0740a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 09:44:48 +0200 Subject: gnu: nettle: Update to 3.3. * gnu/packages/nettle.scm (nettle): Update to 3.3. [home-page]: Use https. --- gnu/packages/nettle.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm index d1203dfe75..e4e0eedc05 100644 --- a/gnu/packages/nettle.scm +++ b/gnu/packages/nettle.scm @@ -47,7 +47,7 @@ (outputs '("out" "debug")) (native-inputs `(("m4" ,m4))) (propagated-inputs `(("gmp" ,gmp))) - (home-page "http://www.lysator.liu.se/~nisse/nettle/") + (home-page "https://www.lysator.liu.se/~nisse/nettle/") (synopsis "C library for low-level cryptographic functionality") (description "GNU Nettle is a low-level cryptographic library. It is designed to @@ -60,14 +60,14 @@ themselves.") ;; This version is not API-compatible with version 2. In particular, lsh ;; cannot use it yet. So keep it separate. (package (inherit nettle-2) - (version "3.2") + (version "3.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nettle/nettle-" version ".tar.gz")) (sha256 (base32 - "15wxhk52yc62rx0pddmry66hqm6z5brrrkx4npd3wh9nybg86hpa")))) + "07mif3af077763vc35s1x8vzhzlgqcgxh67c1xr13jnhslkjd526")))) (arguments (substitute-keyword-arguments (package-arguments nettle-2) ((#:configure-flags flags) -- cgit v1.2.3 From b7a5a4821f4dd48aaa69a87eddfe7ee10c9486c6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 10:23:59 +0200 Subject: gnu: grep: Update to 2.26. * gnu/packages/base.scm (grep): Update to 2.26. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1c01874bb0..52b035f385 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -77,14 +77,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.25") + (version "2.26") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "0c38b67cnwchwzv4wq2gpz6smkhdxrac2hhssv8f0l04qnx867p2")) + "0w38cdw1xc41mj75667qn2d06k4rmgyj4z5hjpa37al2gsrqysi4")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it -- cgit v1.2.3 From 51c8e2996c63311efc60e92743df21cd07044544 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 10:25:45 +0200 Subject: gnu: sed: Use 'modify-phases' syntax. * gnu/packages/base.scm (sed)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/base.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 52b035f385..8aa426959f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -131,16 +131,17 @@ including, for example, recursive directory searching.") (arguments (if (%current-target-system) '() - `(#:phases (alist-cons-before - 'patch-source-shebangs 'patch-test-suite - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (patch-makefile-SHELL "testsuite/Makefile.tests") - (substitute* '("testsuite/bsd.sh" - "testsuite/bug-regex9.c") - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases)))) + `(#:phases + (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'patch-test-suite + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (patch-makefile-SHELL "testsuite/Makefile.tests") + (substitute* '("testsuite/bsd.sh" + "testsuite/bug-regex9.c") + (("/bin/sh") + (string-append bash "/bin/bash"))) + #t))))))) (description "Sed is a non-interactive, text stream editor. It receives a text input from a file or from standard input and it then applies a series of text -- cgit v1.2.3 From bd128e2e8f68d08a1ca5c4730caee068a49c43ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 10:45:23 +0200 Subject: gnu: mpfr: Update to 3.1.5. * gnu/packages/multiprecision.scm (mpfr): Update to 3.1.5. --- gnu/packages/multiprecision.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 23ae68a28f..02e0d13b47 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -80,13 +80,13 @@ cryptography and computational algebra.") (define-public mpfr (package (name "mpfr") - (version "3.1.4") + (version "3.1.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.xz")) (sha256 (base32 - "1x8pcnpn1vxfzfsr0js07rwhwyq27fmdzcfjpzi5773ldnqi653n")))) + "1g32l2fg8f62lcyzzh88y3fsh6rk539qc6ahhdgvx7wpnf1dwpq1")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp))) ; refers to -- cgit v1.2.3 From be12f4e27505edd87c4aa457fec43dd0fee23b79 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 23 Nov 2016 18:40:53 +0100 Subject: build-system/perl: Don't create non-deterministic 'perllocal.pod' files. * guix/build/perl-build-system.scm (configure): Add "NO_PERLLOCAL=1" to Makefile.PL arguments. --- guix/build/perl-build-system.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm index 8f480eae16..b2024e4406 100644 --- a/guix/build/perl-build-system.scm +++ b/guix/build/perl-build-system.scm @@ -42,7 +42,11 @@ "--installdirs=site" ,@module-build-flags)) ((file-exists? "Makefile.PL") `("Makefile.PL" ,(string-append "PREFIX=" out) - "INSTALLDIRS=site" ,@make-maker-flags)) + ;; Prevent installation of 'perllocal.pod' files for + ;; determinism. These are typically used to build a + ;; catalogue of installed packages, but does not provide + ;; any useful information when installed with a module. + "INSTALLDIRS=site" "NO_PERLLOCAL=1" ,@make-maker-flags)) (else (error "no Build.PL or Makefile.PL found"))))) (format #t "running `perl' with arguments ~s~%" args) (zero? (apply system* "perl" args)))) -- cgit v1.2.3 From e673a1df29bd572a770b0aa76ee240b50c91ef2f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 28 Nov 2016 21:06:24 -0500 Subject: gnu: libarchive: Fix typo in 'libarchive-safe_fprintf-buffer-overflow.patch'. * gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch: Use correct URL in patch documentation. --- gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch b/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch index 0e70ac90ce..7ffff297c6 100644 --- a/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch +++ b/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch @@ -1,5 +1,5 @@ Fixes this buffer overflow: -https://github.com/libarchive/libarchive/commit/e37b620fe8f14535d737e89a4dcabaed4517bf1a +https://github.com/libarchive/libarchive/issues/767 Patch copied from upstream source repository: https://github.com/libarchive/libarchive/commit/e37b620fe8f14535d737e89a4dcabaed4517bf1a -- cgit v1.2.3 From f265a3cee55c5fbbd9e05ec351ae562274b55df6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 28 Nov 2016 21:09:44 -0500 Subject: gnu: libarchive: Update to 3.2.2. * gnu/packages/backup.scm (libarchive): Update to 3.2.2. [source]: Remove obsolete patches. * gnu/packages/patches/libarchive-7zip-heap-overflow.patch, gnu/packages/patches/libarchive-fix-filesystem-attacks.patch, gnu/packages/patches/libarchive-fix-symlink-check.patch, gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 4 - gnu/packages/backup.scm | 9 +- .../patches/libarchive-7zip-heap-overflow.patch | 77 ---- .../libarchive-fix-filesystem-attacks.patch | 445 --------------------- .../patches/libarchive-fix-symlink-check.patch | 60 --- .../libarchive-safe_fprintf-buffer-overflow.patch | 44 -- 6 files changed, 2 insertions(+), 637 deletions(-) delete mode 100644 gnu/packages/patches/libarchive-7zip-heap-overflow.patch delete mode 100644 gnu/packages/patches/libarchive-fix-filesystem-attacks.patch delete mode 100644 gnu/packages/patches/libarchive-fix-symlink-check.patch delete mode 100644 gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch diff --git a/gnu/local.mk b/gnu/local.mk index ea5100141b..ac21c9e078 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -647,10 +647,6 @@ dist_patch_DATA = \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ %D%/packages/patches/liba52-use-mtune-not-mcpu.patch \ - %D%/packages/patches/libarchive-7zip-heap-overflow.patch \ - %D%/packages/patches/libarchive-fix-symlink-check.patch \ - %D%/packages/patches/libarchive-fix-filesystem-attacks.patch \ - %D%/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libcmis-fix-test-onedrive.patch \ diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 203ff4c9dc..d127769986 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -172,20 +172,15 @@ backups (called chunks) to allow easy burning to CD/DVD.") (define-public libarchive (package (name "libarchive") - (version "3.2.1") + (version "3.2.2") (source (origin (method url-fetch) (uri (string-append "http://libarchive.org/downloads/libarchive-" version ".tar.gz")) - (patches (search-patches - "libarchive-7zip-heap-overflow.patch" - "libarchive-fix-symlink-check.patch" - "libarchive-fix-filesystem-attacks.patch" - "libarchive-safe_fprintf-buffer-overflow.patch")) (sha256 (base32 - "1lngng84k1kkljl74q0cdqc3s82vn2kimfm02dgm4d6m7x71mvkj")))) + "03q6y428rg723c9fj1vidzjw46w1vf8z0h95lkvz1l9jw571j739")))) (build-system gnu-build-system) ;; TODO: Add -L/path/to/nettle in libarchive.pc. (inputs diff --git a/gnu/packages/patches/libarchive-7zip-heap-overflow.patch b/gnu/packages/patches/libarchive-7zip-heap-overflow.patch deleted file mode 100644 index bef628f0a8..0000000000 --- a/gnu/packages/patches/libarchive-7zip-heap-overflow.patch +++ /dev/null @@ -1,77 +0,0 @@ -Fix buffer overflow reading 7Zip files: - -https://github.com/libarchive/libarchive/issues/761 - -Patch copied from upstream repository: - -https://github.com/libarchive/libarchive/commit/7f17c791dcfd8c0416e2cd2485b19410e47ef126 - -From 7f17c791dcfd8c0416e2cd2485b19410e47ef126 Mon Sep 17 00:00:00 2001 -From: Tim Kientzle -Date: Sun, 18 Sep 2016 18:14:58 -0700 -Subject: [PATCH] Issue 761: Heap overflow reading corrupted 7Zip files - -The sample file that demonstrated this had multiple 'EmptyStream' -attributes. The first one ended up being used to calculate -certain statistics, then was overwritten by the second which -was incompatible with those statistics. - -The fix here is to reject any header with multiple EmptyStream -attributes. While here, also reject headers with multiple -EmptyFile, AntiFile, Name, or Attributes markers. ---- - libarchive/archive_read_support_format_7zip.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c -index 1dfe52b..c0a536c 100644 ---- a/libarchive/archive_read_support_format_7zip.c -+++ b/libarchive/archive_read_support_format_7zip.c -@@ -2431,6 +2431,8 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, - - switch (type) { - case kEmptyStream: -+ if (h->emptyStreamBools != NULL) -+ return (-1); - h->emptyStreamBools = calloc((size_t)zip->numFiles, - sizeof(*h->emptyStreamBools)); - if (h->emptyStreamBools == NULL) -@@ -2451,6 +2453,8 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, - return (-1); - break; - } -+ if (h->emptyFileBools != NULL) -+ return (-1); - h->emptyFileBools = calloc(empty_streams, - sizeof(*h->emptyFileBools)); - if (h->emptyFileBools == NULL) -@@ -2465,6 +2469,8 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, - return (-1); - break; - } -+ if (h->antiBools != NULL) -+ return (-1); - h->antiBools = calloc(empty_streams, - sizeof(*h->antiBools)); - if (h->antiBools == NULL) -@@ -2491,6 +2497,8 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, - if ((ll & 1) || ll < zip->numFiles * 4) - return (-1); - -+ if (zip->entry_names != NULL) -+ return (-1); - zip->entry_names = malloc(ll); - if (zip->entry_names == NULL) - return (-1); -@@ -2543,6 +2551,8 @@ read_Header(struct archive_read *a, struct _7z_header_info *h, - if ((p = header_bytes(a, 2)) == NULL) - return (-1); - allAreDefined = *p; -+ if (h->attrBools != NULL) -+ return (-1); - h->attrBools = calloc((size_t)zip->numFiles, - sizeof(*h->attrBools)); - if (h->attrBools == NULL) --- -2.10.0 - diff --git a/gnu/packages/patches/libarchive-fix-filesystem-attacks.patch b/gnu/packages/patches/libarchive-fix-filesystem-attacks.patch deleted file mode 100644 index bce63d5e4e..0000000000 --- a/gnu/packages/patches/libarchive-fix-filesystem-attacks.patch +++ /dev/null @@ -1,445 +0,0 @@ -This patch fixes two bugs that allow attackers to overwrite or change -the permissions of arbitrary files: - -https://github.com/libarchive/libarchive/issues/745 -https://github.com/libarchive/libarchive/issues/746 - -Patch copied from upstream repository: - -https://github.com/libarchive/libarchive/commit/dfd6b54ce33960e420fb206d8872fb759b577ad9 - -From dfd6b54ce33960e420fb206d8872fb759b577ad9 Mon Sep 17 00:00:00 2001 -From: Tim Kientzle -Date: Sun, 11 Sep 2016 13:21:57 -0700 -Subject: [PATCH] Fixes for Issue #745 and Issue #746 from Doran Moppert. - ---- - libarchive/archive_write_disk_posix.c | 294 ++++++++++++++++++++++++++-------- - 1 file changed, 227 insertions(+), 67 deletions(-) - -diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c -index 8f0421e..abe1a86 100644 ---- a/libarchive/archive_write_disk_posix.c -+++ b/libarchive/archive_write_disk_posix.c -@@ -326,12 +326,14 @@ struct archive_write_disk { - - #define HFS_BLOCKS(s) ((s) >> 12) - -+static int check_symlinks_fsobj(char *path, int *error_number, struct archive_string *error_string, int flags); - static int check_symlinks(struct archive_write_disk *); - static int create_filesystem_object(struct archive_write_disk *); - static struct fixup_entry *current_fixup(struct archive_write_disk *, const char *pathname); - #if defined(HAVE_FCHDIR) && defined(PATH_MAX) - static void edit_deep_directories(struct archive_write_disk *ad); - #endif -+static int cleanup_pathname_fsobj(char *path, int *error_number, struct archive_string *error_string, int flags); - static int cleanup_pathname(struct archive_write_disk *); - static int create_dir(struct archive_write_disk *, char *); - static int create_parent_dir(struct archive_write_disk *, char *); -@@ -2014,6 +2016,10 @@ create_filesystem_object(struct archive_write_disk *a) - const char *linkname; - mode_t final_mode, mode; - int r; -+ /* these for check_symlinks_fsobj */ -+ char *linkname_copy; /* non-const copy of linkname */ -+ struct archive_string error_string; -+ int error_number; - - /* We identify hard/symlinks according to the link names. */ - /* Since link(2) and symlink(2) don't handle modes, we're done here. */ -@@ -2022,6 +2028,27 @@ create_filesystem_object(struct archive_write_disk *a) - #if !HAVE_LINK - return (EPERM); - #else -+ archive_string_init(&error_string); -+ linkname_copy = strdup(linkname); -+ if (linkname_copy == NULL) { -+ return (EPERM); -+ } -+ /* TODO: consider using the cleaned-up path as the link target? */ -+ r = cleanup_pathname_fsobj(linkname_copy, &error_number, &error_string, a->flags); -+ if (r != ARCHIVE_OK) { -+ archive_set_error(&a->archive, error_number, "%s", error_string.s); -+ free(linkname_copy); -+ /* EPERM is more appropriate than error_number for our callers */ -+ return (EPERM); -+ } -+ r = check_symlinks_fsobj(linkname_copy, &error_number, &error_string, a->flags); -+ if (r != ARCHIVE_OK) { -+ archive_set_error(&a->archive, error_number, "%s", error_string.s); -+ free(linkname_copy); -+ /* EPERM is more appropriate than error_number for our callers */ -+ return (EPERM); -+ } -+ free(linkname_copy); - r = link(linkname, a->name) ? errno : 0; - /* - * New cpio and pax formats allow hardlink entries -@@ -2362,115 +2389,228 @@ current_fixup(struct archive_write_disk *a, const char *pathname) - * recent paths. - */ - /* TODO: Extend this to support symlinks on Windows Vista and later. */ -+ -+/* -+ * Checks the given path to see if any elements along it are symlinks. Returns -+ * ARCHIVE_OK if there are none, otherwise puts an error in errmsg. -+ */ - static int --check_symlinks(struct archive_write_disk *a) -+check_symlinks_fsobj(char *path, int *error_number, struct archive_string *error_string, int flags) - { - #if !defined(HAVE_LSTAT) - /* Platform doesn't have lstat, so we can't look for symlinks. */ - (void)a; /* UNUSED */ -+ (void)path; /* UNUSED */ -+ (void)error_number; /* UNUSED */ -+ (void)error_string; /* UNUSED */ -+ (void)flags; /* UNUSED */ - return (ARCHIVE_OK); - #else -- char *pn; -+ int res = ARCHIVE_OK; -+ char *tail; -+ char *head; -+ int last; - char c; - int r; - struct stat st; -+ int restore_pwd; -+ -+ /* Nothing to do here if name is empty */ -+ if(path[0] == '\0') -+ return (ARCHIVE_OK); - - /* - * Guard against symlink tricks. Reject any archive entry whose - * destination would be altered by a symlink. -+ * -+ * Walk the filename in chunks separated by '/'. For each segment: -+ * - if it doesn't exist, continue -+ * - if it's symlink, abort or remove it -+ * - if it's a directory and it's not the last chunk, cd into it -+ * As we go: -+ * head points to the current (relative) path -+ * tail points to the temporary \0 terminating the segment we're currently examining -+ * c holds what used to be in *tail -+ * last is 1 if this is the last tail - */ -- /* Whatever we checked last time doesn't need to be re-checked. */ -- pn = a->name; -- if (archive_strlen(&(a->path_safe)) > 0) { -- char *p = a->path_safe.s; -- while ((*pn != '\0') && (*p == *pn)) -- ++p, ++pn; -- } -+ restore_pwd = open(".", O_RDONLY | O_BINARY | O_CLOEXEC); -+ __archive_ensure_cloexec_flag(restore_pwd); -+ if (restore_pwd < 0) -+ return (ARCHIVE_FATAL); -+ head = path; -+ tail = path; -+ last = 0; -+ /* TODO: reintroduce a safe cache here? */ - /* Skip the root directory if the path is absolute. */ -- if(pn == a->name && pn[0] == '/') -- ++pn; -- c = pn[0]; -- /* Keep going until we've checked the entire name. */ -- while (pn[0] != '\0' && (pn[0] != '/' || pn[1] != '\0')) { -+ if(tail == path && tail[0] == '/') -+ ++tail; -+ /* Keep going until we've checked the entire name. -+ * head, tail, path all alias the same string, which is -+ * temporarily zeroed at tail, so be careful restoring the -+ * stashed (c=tail[0]) for error messages. -+ * Exiting the loop with break is okay; continue is not. -+ */ -+ while (!last) { -+ /* Skip the separator we just consumed, plus any adjacent ones */ -+ while (*tail == '/') -+ ++tail; - /* Skip the next path element. */ -- while (*pn != '\0' && *pn != '/') -- ++pn; -- c = pn[0]; -- pn[0] = '\0'; -+ while (*tail != '\0' && *tail != '/') -+ ++tail; -+ /* is this the last path component? */ -+ last = (tail[0] == '\0') || (tail[0] == '/' && tail[1] == '\0'); -+ /* temporarily truncate the string here */ -+ c = tail[0]; -+ tail[0] = '\0'; - /* Check that we haven't hit a symlink. */ -- r = lstat(a->name, &st); -+ r = lstat(head, &st); - if (r != 0) { -+ tail[0] = c; - /* We've hit a dir that doesn't exist; stop now. */ - if (errno == ENOENT) { - break; - } else { -- /* Note: This effectively disables deep directory -+ /* Treat any other error as fatal - best to be paranoid here -+ * Note: This effectively disables deep directory - * support when security checks are enabled. - * Otherwise, very long pathnames that trigger - * an error here could evade the sandbox. - * TODO: We could do better, but it would probably - * require merging the symlink checks with the - * deep-directory editing. */ -- return (ARCHIVE_FAILED); -+ if (error_number) *error_number = errno; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Could not stat %s", -+ path); -+ res = ARCHIVE_FAILED; -+ break; -+ } -+ } else if (S_ISDIR(st.st_mode)) { -+ if (!last) { -+ if (chdir(head) != 0) { -+ tail[0] = c; -+ if (error_number) *error_number = errno; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Could not chdir %s", -+ path); -+ res = (ARCHIVE_FATAL); -+ break; -+ } -+ /* Our view is now from inside this dir: */ -+ head = tail + 1; - } - } else if (S_ISLNK(st.st_mode)) { -- if (c == '\0') { -+ if (last) { - /* - * Last element is symlink; remove it - * so we can overwrite it with the - * item being extracted. - */ -- if (unlink(a->name)) { -- archive_set_error(&a->archive, errno, -- "Could not remove symlink %s", -- a->name); -- pn[0] = c; -- return (ARCHIVE_FAILED); -+ if (unlink(head)) { -+ tail[0] = c; -+ if (error_number) *error_number = errno; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Could not remove symlink %s", -+ path); -+ res = ARCHIVE_FAILED; -+ break; - } -- a->pst = NULL; - /* - * Even if we did remove it, a warning - * is in order. The warning is silly, - * though, if we're just replacing one - * symlink with another symlink. - */ -- if (!S_ISLNK(a->mode)) { -- archive_set_error(&a->archive, 0, -- "Removing symlink %s", -- a->name); -+ tail[0] = c; -+ /* FIXME: not sure how important this is to restore -+ if (!S_ISLNK(path)) { -+ if (error_number) *error_number = 0; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Removing symlink %s", -+ path); - } -+ */ - /* Symlink gone. No more problem! */ -- pn[0] = c; -- return (0); -- } else if (a->flags & ARCHIVE_EXTRACT_UNLINK) { -+ res = ARCHIVE_OK; -+ break; -+ } else if (flags & ARCHIVE_EXTRACT_UNLINK) { - /* User asked us to remove problems. */ -- if (unlink(a->name) != 0) { -- archive_set_error(&a->archive, 0, -- "Cannot remove intervening symlink %s", -- a->name); -- pn[0] = c; -- return (ARCHIVE_FAILED); -+ if (unlink(head) != 0) { -+ tail[0] = c; -+ if (error_number) *error_number = 0; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Cannot remove intervening symlink %s", -+ path); -+ res = ARCHIVE_FAILED; -+ break; - } -- a->pst = NULL; -+ tail[0] = c; - } else { -- archive_set_error(&a->archive, 0, -- "Cannot extract through symlink %s", -- a->name); -- pn[0] = c; -- return (ARCHIVE_FAILED); -+ tail[0] = c; -+ if (error_number) *error_number = 0; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Cannot extract through symlink %s", -+ path); -+ res = ARCHIVE_FAILED; -+ break; - } - } -- pn[0] = c; -- if (pn[0] != '\0') -- pn++; /* Advance to the next segment. */ -+ /* be sure to always maintain this */ -+ tail[0] = c; -+ if (tail[0] != '\0') -+ tail++; /* Advance to the next segment. */ - } -- pn[0] = c; -- /* We've checked and/or cleaned the whole path, so remember it. */ -- archive_strcpy(&a->path_safe, a->name); -- return (ARCHIVE_OK); -+ /* Catches loop exits via break */ -+ tail[0] = c; -+#ifdef HAVE_FCHDIR -+ /* If we changed directory above, restore it here. */ -+ if (restore_pwd >= 0) { -+ r = fchdir(restore_pwd); -+ if (r != 0) { -+ if(error_number) *error_number = errno; -+ if(error_string) -+ archive_string_sprintf(error_string, -+ "chdir() failure"); -+ } -+ close(restore_pwd); -+ restore_pwd = -1; -+ if (r != 0) { -+ res = (ARCHIVE_FATAL); -+ } -+ } -+#endif -+ /* TODO: reintroduce a safe cache here? */ -+ return res; - #endif - } - -+/* -+ * Check a->name for symlinks, returning ARCHIVE_OK if its clean, otherwise -+ * calls archive_set_error and returns ARCHIVE_{FATAL,FAILED} -+ */ -+static int -+check_symlinks(struct archive_write_disk *a) -+{ -+ struct archive_string error_string; -+ int error_number; -+ int rc; -+ archive_string_init(&error_string); -+ rc = check_symlinks_fsobj(a->name, &error_number, &error_string, a->flags); -+ if (rc != ARCHIVE_OK) { -+ archive_set_error(&a->archive, error_number, "%s", error_string.s); -+ } -+ archive_string_free(&error_string); -+ a->pst = NULL; /* to be safe */ -+ return rc; -+} -+ -+ - #if defined(__CYGWIN__) - /* - * 1. Convert a path separator from '\' to '/' . -@@ -2544,15 +2684,17 @@ cleanup_pathname_win(struct archive_write_disk *a) - * is set) if the path is absolute. - */ - static int --cleanup_pathname(struct archive_write_disk *a) -+cleanup_pathname_fsobj(char *path, int *error_number, struct archive_string *error_string, int flags) - { - char *dest, *src; - char separator = '\0'; - -- dest = src = a->name; -+ dest = src = path; - if (*src == '\0') { -- archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, -- "Invalid empty pathname"); -+ if (error_number) *error_number = ARCHIVE_ERRNO_MISC; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Invalid empty pathname"); - return (ARCHIVE_FAILED); - } - -@@ -2561,9 +2703,11 @@ cleanup_pathname(struct archive_write_disk *a) - #endif - /* Skip leading '/'. */ - if (*src == '/') { -- if (a->flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) { -- archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, -- "Path is absolute"); -+ if (flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) { -+ if (error_number) *error_number = ARCHIVE_ERRNO_MISC; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Path is absolute"); - return (ARCHIVE_FAILED); - } - -@@ -2590,10 +2734,11 @@ cleanup_pathname(struct archive_write_disk *a) - } else if (src[1] == '.') { - if (src[2] == '/' || src[2] == '\0') { - /* Conditionally warn about '..' */ -- if (a->flags & ARCHIVE_EXTRACT_SECURE_NODOTDOT) { -- archive_set_error(&a->archive, -- ARCHIVE_ERRNO_MISC, -- "Path contains '..'"); -+ if (flags & ARCHIVE_EXTRACT_SECURE_NODOTDOT) { -+ if (error_number) *error_number = ARCHIVE_ERRNO_MISC; -+ if (error_string) -+ archive_string_sprintf(error_string, -+ "Path contains '..'"); - return (ARCHIVE_FAILED); - } - } -@@ -2624,7 +2769,7 @@ cleanup_pathname(struct archive_write_disk *a) - * We've just copied zero or more path elements, not including the - * final '/'. - */ -- if (dest == a->name) { -+ if (dest == path) { - /* - * Nothing got copied. The path must have been something - * like '.' or '/' or './' or '/././././/./'. -@@ -2639,6 +2784,21 @@ cleanup_pathname(struct archive_write_disk *a) - return (ARCHIVE_OK); - } - -+static int -+cleanup_pathname(struct archive_write_disk *a) -+{ -+ struct archive_string error_string; -+ int error_number; -+ int rc; -+ archive_string_init(&error_string); -+ rc = cleanup_pathname_fsobj(a->name, &error_number, &error_string, a->flags); -+ if (rc != ARCHIVE_OK) { -+ archive_set_error(&a->archive, error_number, "%s", error_string.s); -+ } -+ archive_string_free(&error_string); -+ return rc; -+} -+ - /* - * Create the parent directory of the specified path, assuming path - * is already in mutable storage. diff --git a/gnu/packages/patches/libarchive-fix-symlink-check.patch b/gnu/packages/patches/libarchive-fix-symlink-check.patch deleted file mode 100644 index f042c31a84..0000000000 --- a/gnu/packages/patches/libarchive-fix-symlink-check.patch +++ /dev/null @@ -1,60 +0,0 @@ -Make sure to check for symlinks even if the pathname is very long: - -https://github.com/libarchive/libarchive/issues/744 - -Patch copied from upstream repository: - -https://github.com/libarchive/libarchive/commit/1fa9c7bf90f0862036a99896b0501c381584451a - -From 1fa9c7bf90f0862036a99896b0501c381584451a Mon Sep 17 00:00:00 2001 -From: Tim Kientzle -Date: Sun, 21 Aug 2016 17:11:45 -0700 -Subject: [PATCH] Issue #744 (part of Issue #743): Enforce sandbox with very - long pathnames - -Because check_symlinks is handled separately from the deep-directory -support, very long pathnames cause problems. Previously, the code -ignored most failures to lstat() a path component. In particular, -this led to check_symlinks always passing for very long paths, which -in turn provides a way to evade the symlink checks in the sandboxing -code. - -We now fail on unrecognized lstat() failures, which plugs this -hole at the cost of disabling deep directory support when the -user requests sandboxing. - -TODO: This probably cannot be completely fixed without -entirely reimplementing the deep directory support to -integrate the symlink checks. I want to reimplement the -deep directory hanlding someday anyway; openat() and -related system calls now provide a much cleaner way to -handle deep directories than the chdir approach used by this -code. ---- - libarchive/archive_write_disk_posix.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c -index 39ee3b6..8f0421e 100644 ---- a/libarchive/archive_write_disk_posix.c -+++ b/libarchive/archive_write_disk_posix.c -@@ -2401,8 +2401,18 @@ check_symlinks(struct archive_write_disk *a) - r = lstat(a->name, &st); - if (r != 0) { - /* We've hit a dir that doesn't exist; stop now. */ -- if (errno == ENOENT) -+ if (errno == ENOENT) { - break; -+ } else { -+ /* Note: This effectively disables deep directory -+ * support when security checks are enabled. -+ * Otherwise, very long pathnames that trigger -+ * an error here could evade the sandbox. -+ * TODO: We could do better, but it would probably -+ * require merging the symlink checks with the -+ * deep-directory editing. */ -+ return (ARCHIVE_FAILED); -+ } - } else if (S_ISLNK(st.st_mode)) { - if (c == '\0') { - /* diff --git a/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch b/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch deleted file mode 100644 index 7ffff297c6..0000000000 --- a/gnu/packages/patches/libarchive-safe_fprintf-buffer-overflow.patch +++ /dev/null @@ -1,44 +0,0 @@ -Fixes this buffer overflow: -https://github.com/libarchive/libarchive/issues/767 - -Patch copied from upstream source repository: -https://github.com/libarchive/libarchive/commit/e37b620fe8f14535d737e89a4dcabaed4517bf1a - -From e37b620fe8f14535d737e89a4dcabaed4517bf1a Mon Sep 17 00:00:00 2001 -From: Tim Kientzle -Date: Sun, 21 Aug 2016 10:51:43 -0700 -Subject: [PATCH] Issue #767: Buffer overflow printing a filename - -The safe_fprintf function attempts to ensure clean output for an -arbitrary sequence of bytes by doing a trial conversion of the -multibyte characters to wide characters -- if the resulting wide -character is printable then we pass through the corresponding bytes -unaltered, otherwise, we convert them to C-style ASCII escapes. - -The stack trace in Issue #767 suggest that the 20-byte buffer -was getting overflowed trying to format a non-printable multibyte -character. This should only happen if there is a valid multibyte -character of more than 5 bytes that was unprintable. (Each byte -would get expanded to a four-charcter octal-style escape of the form -"\123" resulting in >20 characters for the >5 byte multibyte character.) - -I've not been able to reproduce this, but have expanded the conversion -buffer to 128 bytes on the belief that no multibyte character set -has a single character of more than 32 bytes. ---- - tar/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tar/util.c b/tar/util.c -index 9ff22f2..2b4aebe 100644 ---- a/tar/util.c -+++ b/tar/util.c -@@ -182,7 +182,7 @@ safe_fprintf(FILE *f, const char *fmt, ...) - } - - /* If our output buffer is full, dump it and keep going. */ -- if (i > (sizeof(outbuff) - 20)) { -+ if (i > (sizeof(outbuff) - 128)) { - outbuff[i] = '\0'; - fprintf(f, "%s", outbuff); - i = 0; -- cgit v1.2.3 From 9b5f498deff516a9799a132fb04b40fb9ccfd7a6 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sun, 13 Nov 2016 15:19:46 +0200 Subject: gnu: glibc-hurd: Force mach/hurd/libpthread subdirs to build first. * gnu/packages/base.scm (glibc/hurd)[arguments]: Replace 'build' phase. Co-authored-by: Ludovic Courts --- gnu/packages/base.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8aa426959f..9fb8c3a56d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -715,7 +715,21 @@ with the Linux kernel.") ;; Use the right 'pwd'. (substitute* "configure" (("/bin/pwd") "pwd"))) - ,original-phases))) + (alist-replace + 'build + (lambda _ + ;; Force mach/hurd/libpthread subdirs to build first in order to avoid + ;; linking errors. + ;; See + (let ((-j (list "-j" (number->string (parallel-job-count))))) + (let-syntax ((make (syntax-rules () + ((_ target) + (zero? (apply system* "make" target -j)))))) + (and (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (zero? (apply system* "make" -j)))))) + ,original-phases)))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" -- cgit v1.2.3 From 7d07e2a5274703ffc1a54dbfe6644fdfb84c32c4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 30 Nov 2016 14:13:14 +0100 Subject: gnu: gnutls: Update 3.5.6. * gnu/packages/tls.scm (gnutls): Update to 3.5.6. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index bea15fa24d..0b92b4e445 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -138,7 +138,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.4") + (version "3.5.6") (source (origin (method url-fetch) (uri @@ -149,7 +149,7 @@ living in the same process.") "/gnutls-" version ".tar.xz")) (sha256 (base32 - "1sx8p7v452s9m854r2c5pvcd1k15a3caiv5h35fhrxz0691h2f2f")))) + "16kbih51fwzxzqpvskqi8ywyl6zfhxzrqj7sdxh5iiripwavff33")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 83dcfa72d4d7aadf7c772607a97f6501de106dca Mon Sep 17 00:00:00 2001 From: David Craven Date: Sat, 29 Oct 2016 16:48:43 +0200 Subject: gnu: flex: Update to 2.6.2. * gnu/packages/flex.scm (flex): Update to 2.6.2. [native-inputs]: Add help2man. [origin]: Update uri to github. Remove CVE-2016-6354 patch. (flex-2.6.1): Remove variable. * gnu/packages/patches/flex-CVE-2016-6354.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Update. * gnu/packages/kde-frameworks.scm (solid, kservice)[native-inputs]: Use flex. --- gnu/local.mk | 1 - gnu/packages/flex.scm | 61 +++++++++++---------------- gnu/packages/kde-frameworks.scm | 12 +----- gnu/packages/patches/flex-CVE-2016-6354.patch | 30 ------------- 4 files changed, 26 insertions(+), 78 deletions(-) delete mode 100644 gnu/packages/patches/flex-CVE-2016-6354.patch diff --git a/gnu/local.mk b/gnu/local.mk index ac21c9e078..fdd5e3c81e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -536,7 +536,6 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-test-xargs.patch \ - %D%/packages/patches/flex-CVE-2016-6354.patch \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm index c1f74d65ad..d9abbfa4e2 100644 --- a/gnu/packages/flex.scm +++ b/gnu/packages/flex.scm @@ -24,6 +24,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages m4) + #:use-module (gnu packages man) #:use-module (gnu packages bison) #:use-module (gnu packages indent) #:use-module (srfi srfi-1)) @@ -31,29 +32,32 @@ (define-public flex (package (name "flex") - (version "2.6.0") + (version "2.6.2") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/flex/flex-" - version ".tar.bz2")) - (patches (search-patches "flex-CVE-2016-6354.patch")) - (sha256 - (base32 - "1sdqx63yadindzafrq1w31ajblf9gl1c301g068s20s7bbpi3ri4")))) + (method url-fetch) + (uri (string-append + "https://github.com/westes/flex" + "/releases/download/v" version "/" + "flex-" version ".tar.gz")) + (sha256 + (base32 + "1jdjghh1qjq3z7snphshcak6p07gch2n4215vjvrkism25x460cs")))) (build-system gnu-build-system) (inputs (let ((bison-for-tests ;; Work around an incompatibility with Bison 3.0: ;; . - (package (inherit bison) + (package + (inherit bison) (version "2.7.1") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/bison/bison-" - version ".tar.xz")) - (sha256 - (base32 - "1yx7isx67sdmyijvihgyra1f59fwdz7sqriginvavfj5yb5ss2dl")))) + (method url-fetch) + (uri (string-append + "mirror://gnu/bison/" + "bison-" version ".tar.xz")) + (sha256 + (base32 + "1yx7isx67sdmyijvihgyra1f59fwdz7sqriginvavfj5yb5ss2dl")))) ;; Unlike Bison 3.0, this version did not need Flex for its ;; tests, so it allows us to break the cycle. @@ -61,9 +65,11 @@ `(("bison" ,bison-for-tests) ("indent" ,indent)))) ;; m4 is not present in PATH when cross-building - (native-inputs `(("m4" ,m4))) + (native-inputs + `(("help2man" ,help2man) + ("m4" ,m4))) (propagated-inputs `(("m4" ,m4))) - (home-page "http://flex.sourceforge.net/") + (home-page "https://github.com/westes/flex") (synopsis "Fast lexical analyser generator") (description "Flex is a tool for generating scanners. A scanner, sometimes @@ -78,23 +84,4 @@ is run, it analyzes its input for occurrences of text matching the regular expressions for each rule. Whenever it finds a match, it executes the corresponding C code.") (license (non-copyleft "file://COPYING" - "See COPYING in the distribution.")))) - -(define-public flex-2.6.1 - ;; The kservice and solid packages use flex. extra-cmake-modules - ;; forces C89 for all C files for compatibility with windows. - ;; Flex 2.6.0 generates a lexer containing a single line comment. Single - ;; line comments are part of the C99 standard, so the lexer won't compile - ;; if C89 is used. - (package - (inherit flex) - (version "2.6.1") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/westes/flex" - "/releases/download/v" version "/" - "flex-" version ".tar.gz")) - (sha256 - (base32 - "0fy14c35yz2m1n1m4f02by3501fn0cca37zn7jp8lpp4b3kgjhrw")))))) + "See COPYING in the distribution.")))) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 9df37ac38d..d285faecb1 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1049,11 +1049,7 @@ which are used in DBus communication.") (native-inputs `(("bison" ,bison) ("extra-cmake-modules" ,extra-cmake-modules) - ;; extra-cmake-modules forces C89 for all C files for compatibility with - ;; Windows. Flex 2.6.0 generates a lexer containing a single line - ;; comment. Single line comments are part of the C99 standard, so the - ;; lexer won't compile if C89 is used. - ("flex" ,flex-2.6.1) + ("flex" ,flex) ("qttools" ,qttools))) (inputs `(("qtbase" ,qtbase) @@ -2456,11 +2452,7 @@ typed.") (native-inputs `(("bison" ,bison) ("extra-cmake-modules" ,extra-cmake-modules) - ;; extra-cmake-modules forces C89 for all C files for compatibility with - ;; Windows. Flex 2.6.0 generates a lexer containing a single line - ;; comment. Single line comments are part of the C99 standard, so the - ;; lexer won't compile if C89 is used. - ("flex" ,flex-2.6.1))) + ("flex" ,flex))) (inputs `(("kcrash" ,kcrash) ("kdbusaddons" ,kdbusaddons) diff --git a/gnu/packages/patches/flex-CVE-2016-6354.patch b/gnu/packages/patches/flex-CVE-2016-6354.patch deleted file mode 100644 index 1f3cb028d4..0000000000 --- a/gnu/packages/patches/flex-CVE-2016-6354.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fix CVE-2016-6354 (Buffer overflow in generated code (yy_get_next_buffer). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6354 -https://security-tracker.debian.org/tracker/CVE-2016-6354 - -Patch copied from upstream source repository: -https://github.com/westes/flex/commit/a5cbe929ac3255d371e698f62dc256afe7006466 - -From a5cbe929ac3255d371e698f62dc256afe7006466 Mon Sep 17 00:00:00 2001 -From: Will Estes -Date: Sat, 27 Feb 2016 11:56:05 -0500 -Subject: [PATCH] Fixed incorrect integer type - ---- - src/flex.skl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/flex.skl b/src/flex.skl -index 36a526a..64f853d 100644 ---- a/src/flex.skl -+++ b/src/flex.skl -@@ -1703,7 +1703,7 @@ int yyFlexLexer::yy_get_next_buffer() - - else - { -- yy_size_t num_to_read = -+ int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) -- cgit v1.2.3 From bec5022ffe6456e1e94d944aaaa5dcdd314208e2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 3 Dec 2016 17:30:33 +0200 Subject: gnu: coreutils: Update to 8.26. * gnu/packages/base.scm (coreutils): Update to 8.26. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 9fb8c3a56d..44475cae64 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -277,14 +277,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.25") + (version "8.26") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "11yfrnb94xzmvi4lhclkcmkqsbhww64wf234ya1aacjvg82prrii")))) + "13lspazc7xkviy93qz7ks9jv4sldvgmwpq36ghrbrqpq93br8phm")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! -- cgit v1.2.3 From d54c0bfde4fed2160689dc50b659c76cff9724be Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 3 Dec 2016 19:35:27 +0200 Subject: gnu: libunistring: Update to 0.9.7. * gnu/packages/libunistring.scm (libunistring): Update to 0.9.7. [home-page]: Use https. [license]: License has changed to dual lgpl3+ gpl2. --- gnu/packages/libunistring.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm index f29b7424de..5df7be67cf 100644 --- a/gnu/packages/libunistring.scm +++ b/gnu/packages/libunistring.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,15 +27,15 @@ (define-public libunistring (package (name "libunistring") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libunistring/libunistring-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0ixxmgpgh2v8ifm6hbwsjxl023myk3dfnj7wnvmqjivza31fw9cn")))) + "15z76qrmrvkc3c6hfq2lzzqysgd21s682f2smycfab5g598n8drf")))) (propagated-inputs '()) ; FIXME: add libiconv when !glibc (build-system gnu-build-system) (arguments @@ -47,5 +48,5 @@ "GNU libunistring is a library providing functions to manipulate Unicode strings and for manipulating C strings according to the Unicode standard.") - (home-page "http://www.gnu.org/software/libunistring/") - (license lgpl3+))) + (home-page "https://www.gnu.org/software/libunistring/") + (license (list lgpl3+ gpl2)))) -- cgit v1.2.3 From 78636f0b8ce0fa7c3483a378ef31832f38a3d19a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 10 Dec 2016 22:10:30 +0200 Subject: gnu: grep: Update to 2.27. * gnu/packages/base.scm (grep): Update to 2.27. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 44475cae64..30364f373c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -77,14 +77,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.26") + (version "2.27") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "0w38cdw1xc41mj75667qn2d06k4rmgyj4z5hjpa37al2gsrqysi4")) + "1syadppgpxpfhpwhhqcsibrn131azypzps5aicx1qjh74d6w8k5d")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it -- cgit v1.2.3 From 92cc9cf180213439374bf88f0782c5c087b751f7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 12 Dec 2016 00:42:32 +0100 Subject: gnu: guile: Update to 2.0.13. * gnu/packages/guile.scm (guile-2.0): Update to 2.0.13. [source](patches): New field. [replacement]: Remove. (guile-2.0.13): Remove. --- gnu/packages/guile.scm | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 4572544ec3..dffa1258d2 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -133,15 +133,15 @@ without requiring the source code to be rewritten.") (define-public guile-2.0 (package (name "guile") - (version "2.0.12") - (replacement guile-2.0.13) ;CVE-2016-8606 and CVE-2016-8605 + (version "2.0.13") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "1sdpjq0jf1h65w29q0zprj4x6kdp5jskkvbnlwphy9lvdxrqg0fy")))) + "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")) + (patches (search-patches "guile-repl-server-test.patch")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("libffi" ,libffi) @@ -207,19 +207,6 @@ without requiring the source code to be rewritten.") (properties '((hidden? . #t))) ;people should install 'guile-2.0' (replacement #f))) -(define guile-2.0.13 - (package - (inherit guile-2.0) - (version "2.0.13") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/guile/guile-" version - ".tar.xz")) - (sha256 - (base32 - "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")) - (patches (search-patches "guile-repl-server-test.patch")))))) - (define-public guile-next (package (inherit guile-2.0) (name "guile-next") -- cgit v1.2.3 From 1d0ceb4775ec045af24253e232c0f8475324500a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 12 Dec 2016 22:54:25 +0100 Subject: gnu: sqlite: Update to 3.15.2. * gnu/packages/databases.scm (sqlite): Update to 3.15.2. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 859e242cc7..2f46c2a4ec 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -507,7 +507,7 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.15.1") + (version "3.15.2") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -523,7 +523,7 @@ for example from a shell script.") numeric-version ".tar.gz"))) (sha256 (base32 - "1ig2d9jzzixiifmgqsl6kjcvy17jwxby3s24gfnc5qvyd6vqkyjx")))) + "0j9i1zrwxc7dfd6xr3xagal3incrlalsrk96havnas1qp5im1cq7")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments -- cgit v1.2.3 From b810a85019ab3c4ee1f889d0751b8eb06157dadc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 12 Dec 2016 01:01:13 +0100 Subject: gnu: Default to GCC 5. This reinstates and adjusts commit e3d0fcbf7e55e8cbe8d0a1c5a24d73f341d7243b. * gnu/packages/patches/gcc-libiberty-printf-decl.patch: New file. * gnu/packages/gcc.scm (gcc-5)[source]: Use it. [patches]: Add "gcc-arm-bug-71399.patch". (gcc): Switch to GCC-5. * gnu/packages/commencement.scm (libstdc++-boot0): New variable. (gcc-boot0)[inputs]: Add it. (gcc-toolchain-4.9): Switch to GCC-4.9. (gcc-toolchain-5): Switch to GCC-FINAL. * gnu/local.mk (dist_patch_DATA): Add 'gcc-libiberty-printf-decl.patch'. --- gnu/local.mk | 1 + gnu/packages/commencement.scm | 27 +++++++++++++++++++-- gnu/packages/gcc.scm | 5 ++-- .../patches/gcc-libiberty-printf-decl.patch | 28 ++++++++++++++++++++++ 4 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/gcc-libiberty-printf-decl.patch diff --git a/gnu/local.mk b/gnu/local.mk index fdd5e3c81e..79d6b14a2b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -546,6 +546,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-arm-bug-71399.patch \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \ %D%/packages/patches/gcc-cross-environment-variables.patch \ + %D%/packages/patches/gcc-libiberty-printf-decl.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 2431babcad..1238f5cf5b 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -172,6 +172,26 @@ ,cf))))) (inputs %boot0-inputs)))) +(define libstdc++-boot0 + ;; GCC's libcc1 is always built as a shared library (the top-level + ;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer + ;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on + ;; C++14 features missing in our bootstrap compiler. + (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) + (package + (inherit lib) + (name "libstdc++-boot0") + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + + ;; XXX: libstdc++.so NEEDs ld.so for some reason. + #:validate-runpath? #f + + ,@(package-arguments lib))) + (inputs %boot0-inputs) + (native-inputs '())))) + (define gcc-boot0 (package-with-bootstrap-guile (package (inherit gcc) @@ -257,6 +277,9 @@ ("mpc-source" ,(package-source mpc)) ("binutils-cross" ,binutils-boot0) + ;; The libstdc++ that libcc1 links against. + ("libstdc++" ,libstdc++-boot0) + ;; Call it differently so that the builder can check whether ;; the "libc" input is #f. ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) @@ -986,10 +1009,10 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.") (gcc-toolchain gcc-4.8)) (define-public gcc-toolchain-4.9 - (gcc-toolchain gcc-final)) + (gcc-toolchain gcc-4.9)) (define-public gcc-toolchain-5 - (gcc-toolchain gcc-5)) + (gcc-toolchain gcc-final)) (define-public gcc-toolchain-6 (gcc-toolchain gcc-6)) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c26cc4f497..acc57c8201 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -358,7 +358,8 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0")) - (patches (search-patches "gcc-strmov-store-file-names.patch" + (patches (search-patches "gcc-arm-bug-71399.patch" + "gcc-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) (define-public gcc-6 @@ -377,7 +378,7 @@ Go. It also includes runtime support libraries for these languages.") ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions accordingly. -(define-public gcc gcc-4.9) +(define-public gcc gcc-5) (define-public (make-libstdc++ gcc) "Return a libstdc++ package based on GCC. The primary use case is when diff --git a/gnu/packages/patches/gcc-libiberty-printf-decl.patch b/gnu/packages/patches/gcc-libiberty-printf-decl.patch new file mode 100644 index 0000000000..a612c9e00e --- /dev/null +++ b/gnu/packages/patches/gcc-libiberty-printf-decl.patch @@ -0,0 +1,28 @@ +This patch makes the exeception specifier of libiberty's 'asprintf' +and 'vasprintf' declarations match those of glibc to work around the +problem described at . + +The problem in part stems from the fact that libiberty is configured +without _GNU_SOURCE (thus, it sets HAVE_DECL_ASPRINTF to 0), whereas libcc1 +is configured and built with _GNU_SOURCE, hence the conflicting declarations. + +--- gcc-5.3.0/include/libiberty.h 2016-04-23 22:45:46.262709079 +0200 ++++ gcc-5.3.0/include/libiberty.h 2016-04-23 22:45:37.110635439 +0200 +@@ -625,7 +625,7 @@ extern int pwait (int, int *, int); + /* Like sprintf but provides a pointer to malloc'd storage, which must + be freed by the caller. */ + +-extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; ++extern int asprintf (char **, const char *, ...) __THROWNL ATTRIBUTE_PRINTF_2; + #endif + + /* Like asprintf but allocates memory without fail. This works like +@@ -637,7 +637,7 @@ extern char *xasprintf (const char *, .. + /* Like vsprintf but provides a pointer to malloc'd storage, which + must be freed by the caller. */ + +-extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0); ++extern int vasprintf (char **, const char *, va_list) __THROWNL ATTRIBUTE_PRINTF(2,0); + #endif + + /* Like vasprintf but allocates memory without fail. This works like -- cgit v1.2.3 From 20f7a750edee44373acdd0df33ba4ed09c7f1313 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 12 Dec 2016 12:57:17 +0100 Subject: gnu: gnutls: Update to 3.5.7. * gnu/packages/tls.scm (gnutls): Update to 3.5.7. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 0b92b4e445..4c19ebe3a4 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -138,7 +138,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.6") + (version "3.5.7") (source (origin (method url-fetch) (uri @@ -149,7 +149,7 @@ living in the same process.") "/gnutls-" version ".tar.xz")) (sha256 (base32 - "16kbih51fwzxzqpvskqi8ywyl6zfhxzrqj7sdxh5iiripwavff33")))) + "06l6sza1wk7cr910i70jbc68labklkd229kiiniwys32kq8zrjv0")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From c82fd97e0bb388f7228a06ac05d247209227a1e6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 12 Dec 2016 12:58:24 +0100 Subject: gnu: libgcrypt: Update to 1.7.4. * gnu/packages/gnupg.scm (libgcrypt): Update to 1.7.4. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b0e59532c5..418dea285c 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -78,14 +78,14 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package (name "libgcrypt") - (version "1.7.3") + (version "1.7.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "0wbh6fq5zi9wg2xcfvfpwh7dv52jihivx1vm4h91c2kx0w8n3b6x")))) + "1ip50gpw18ckgyjwdn6ivjps6n1asm44pk739iff44a75wp8crrv")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) -- cgit v1.2.3 From 673c0390aa3b3c5f5dede595c35ba5a13aecb181 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 13 Dec 2016 20:46:25 +0100 Subject: gnu: xproto: Update to 7.0.31. * gnu/packages/xorg.scm (xproto): Update to 7.0.31. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9f9549b6b9..b0044cac3e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4733,7 +4733,7 @@ script around the mkfontscale program.") (define-public xproto (package (name "xproto") - (version "7.0.29") + (version "7.0.31") (source (origin (method url-fetch) @@ -4743,7 +4743,7 @@ script around the mkfontscale program.") ".tar.bz2")) (sha256 (base32 - "12lzpa9mrzkyrhrphzpi1014np3328qg7mdq08wj6wyaj9q4f6kc")))) + "0ivpxz0rx2a7nahkpkhfgymz7j0pwzaqvyqpdgw9afmxl1yp9yf6")))) (build-system gnu-build-system) (propagated-inputs `(("util-macros" ,util-macros))) ; to get util-macros in (almost?) all package inputs -- cgit v1.2.3 From 8471a8d1fe34a3b8cff29189fe4272c61e670c3a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 14 Dec 2016 00:33:40 +0100 Subject: gnu: xkeyboard-config: Update to 2.19. * gnu/packages/xorg.scm (xkeyboard-config): Update to 2.19. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b0044cac3e..55e3bd0839 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3789,7 +3789,7 @@ extension to the X11 protocol. It includes: (define-public xkeyboard-config (package (name "xkeyboard-config") - (version "2.18") + (version "2.19") (source (origin (method url-fetch) @@ -3799,7 +3799,7 @@ extension to the X11 protocol. It includes: ".tar.bz2")) (sha256 (base32 - "1l6x2w357ja8vm94ns79s7yj9a5dlr01r9dxrjvzwncadiyr27f4")))) + "09sqyi430bbg13pp8j0j60p9p9xn2lpqx38xw1lyv77bp63d3pw3")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 68ea090b93132001d1fd1db44ffde7425cd1702c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 15 Dec 2016 23:46:38 +0100 Subject: gnu: libcap: Update to 2.25. * gnu/packages/linux.scm (libcap): Update to 2.25. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c504a1260b..3b8f5adcb9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1087,7 +1087,7 @@ advanced aspects of IP configuration (iptunnel, ipmaddr).") (define-public libcap (package (name "libcap") - (version "2.24") + (version "2.25") (source (origin (method url-fetch) (uri (string-append @@ -1095,7 +1095,7 @@ advanced aspects of IP configuration (iptunnel, ipmaddr).") "libcap2/libcap-" version ".tar.xz")) (sha256 (base32 - "0rbc9qbqs5bp9am9s9g83wxj5k4ixps2agy9dxr1v1fwg27mdr6f")))) + "0qjiqc5pknaal57453nxcbz3mn1r4hkyywam41wfcglq3v2qlg39")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From e02f1473da0ba463230ff78d4dab0aaa3ecc425c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 17 Dec 2016 00:56:09 -0500 Subject: gnu: libgcrypt: Update to 1.7.5. * gnu/packages/gnupg.scm (libgcrypt): Update to 1.7.5. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 418dea285c..e7c2e2739f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -78,14 +78,14 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package (name "libgcrypt") - (version "1.7.4") + (version "1.7.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "1ip50gpw18ckgyjwdn6ivjps6n1asm44pk739iff44a75wp8crrv")))) + "0078pbzm6nlgvnwlylshsg707ifcmfpnpbvhlhqbpwpfic9a9zni")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) -- cgit v1.2.3 From 5d97f4c74abf84e6c721fea7a86bdb50827705a8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 22 Dec 2016 00:14:54 -0500 Subject: gnu: libssh2: Update to 1.8.0. * gnu/packages/ssh.scm (libssh2): Update to 1.8.0. --- gnu/packages/ssh.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index ea5ec811d1..65f118f5ca 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -85,7 +85,7 @@ remote applications.") (define-public libssh2 (package (name "libssh2") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append @@ -93,7 +93,7 @@ remote applications.") version ".tar.gz")) (sha256 (base32 - "116mh112w48vv9k3f15ggp5kxw5sj4b88dzb5j69llsh7ba1ymp4")))) + "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr")))) (build-system gnu-build-system) ;; The installed libssh2.pc file does not include paths to libgcrypt and ;; zlib libraries, so we need to propagate the inputs. -- cgit v1.2.3 From c09dd486a2fffad6efc7d352cfea459876ba44bd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 27 Dec 2016 22:24:06 +0100 Subject: gnu: util-linux: Update to 2.28.2. * gnu/packages/linux.scm (util-linux): Update to 2.28.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3b8f5adcb9..a040aeb768 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -448,7 +448,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.28.1") + (version "2.28.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -456,7 +456,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "03xnaw3c7pavxvvh1vnimcr44hlhhf25whawiyv8dxsflfj4xkiy")) + "1kgh16j3ywzf5gdz4vq6v3dyc5qsi377p11clj9xxgi0dwa3g7dq")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From 3221d1a3929101f3133a11c618d4bc06482b9cbd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 28 Dec 2016 19:34:57 -0500 Subject: gnu: icu4c: Update to 58.2. * gnu/packages/icu4c.scm (icu4c): Update to 58.2. --- gnu/packages/icu4c.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index fb8ff72cbc..d842f03b4e 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -29,7 +29,7 @@ (define-public icu4c (package (name "icu4c") - (version "58.1") + (version "58.2") (source (origin (method url-fetch) (uri (string-append @@ -39,7 +39,7 @@ (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) (sha256 - (base32 "0283lcgb39v7hsl16bbp8h8r9d51n4lpld5dr292173afjinpd0f")))) + (base32 "036shcb3f8bm1lynhlsb4kpjm9s9c2vdiir01vg216rs2l8482ib")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) -- cgit v1.2.3 From 89ccb1d88132be14180ca3068df57d685dacdb08 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 30 Dec 2016 00:38:24 +0100 Subject: gnu: gmp: Update to 6.1.2. * gnu/packages/multiprecision.scm (gmp): Update to 6.1.2. --- gnu/packages/multiprecision.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 02e0d13b47..80fb11ac93 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -31,7 +31,7 @@ (define-public gmp (package (name "gmp") - (version "6.1.1") + (version "6.1.2") (source (origin (method url-fetch) (uri @@ -39,7 +39,7 @@ version ".tar.xz")) (sha256 (base32 - "0cg84n482gcvl0s4xq4wgwsk4r0x0m8dnzpizwqdd2j8vw2rqvnk")) + "04hrwahdxyqdik559604r7wrj9ffklwvipgfxgj4ys4skbl6bdc7")) (patches (search-patches "gmp-faulty-test.patch")))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4))) -- cgit v1.2.3 From 20be64dcf7d4d08e75eb56c34890420bea7882ec Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 31 Dec 2016 00:05:49 +0800 Subject: gnu: tar: Fix CVE-2016-6321. * gnu/packages/patches/tar-CVE-2016-6321.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (tar)[source]: Use it. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 + gnu/packages/base.scm | 3 +- gnu/packages/patches/tar-CVE-2016-6321.patch | 51 ++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/tar-CVE-2016-6321.patch diff --git a/gnu/local.mk b/gnu/local.mk index 79d6b14a2b..00f47e3165 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -857,6 +857,7 @@ dist_patch_DATA = \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch \ + %D%/packages/patches/tar-CVE-2016-6321.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcl-mkindex-deterministic.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 30364f373c..1962086169 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -162,7 +162,8 @@ implementation offers several extensions over the standard utility.") (sha256 (base32 "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) - (patches (search-patches "tar-skip-unreliable-tests.patch")))) + (patches (search-patches "tar-CVE-2016-6321.patch" + "tar-skip-unreliable-tests.patch")))) (build-system gnu-build-system) ;; Note: test suite requires ~1GiB of disk space. (arguments diff --git a/gnu/packages/patches/tar-CVE-2016-6321.patch b/gnu/packages/patches/tar-CVE-2016-6321.patch new file mode 100644 index 0000000000..b79be9bc94 --- /dev/null +++ b/gnu/packages/patches/tar-CVE-2016-6321.patch @@ -0,0 +1,51 @@ +Fix CVE-2016-6321: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6321 +https://security-tracker.debian.org/tracker/CVE-2016-6321 + +Patch adapted from upstream source repository (the changes to 'NEWS' +don't apply to the Tar 1.29 release tarball). + +http://git.savannah.gnu.org/cgit/tar.git/commit/?id=7340f67b9860ea0531c1450e5aa261c50f67165d + +From 7340f67b9860ea0531c1450e5aa261c50f67165d Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Sat, 29 Oct 2016 21:04:40 -0700 +Subject: [PATCH] When extracting, skip ".." members + +* NEWS: Document this. +* src/extract.c (extract_archive): Skip members whose names +contain "..". +--- + NEWS | 8 +++++++- + src/extract.c | 8 ++++++++ + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/src/extract.c b/src/extract.c +index f982433..7904148 100644 +--- a/src/extract.c ++++ b/src/extract.c +@@ -1629,12 +1629,20 @@ extract_archive (void) + { + char typeflag; + tar_extractor_t fun; ++ bool skip_dotdot_name; + + fatal_exit_hook = extract_finish; + + set_next_block_after (current_header); + ++ skip_dotdot_name = (!absolute_names_option ++ && contains_dot_dot (current_stat_info.orig_file_name)); ++ if (skip_dotdot_name) ++ ERROR ((0, 0, _("%s: Member name contains '..'"), ++ quotearg_colon (current_stat_info.orig_file_name))); ++ + if (!current_stat_info.file_name[0] ++ || skip_dotdot_name + || (interactive_option + && !confirm ("extract", current_stat_info.file_name))) + { +-- +2.11.0 + -- cgit v1.2.3 From 0c1b29db3ae1909abb3f074a2276f70cee4ab014 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 3 Jan 2017 19:55:36 +0100 Subject: gnu: m4: Update to 1.4.18. * gnu/packages/m4.scm (m4): Update to 1.4.18. [source]: Use xz compressed tarball. --- gnu/packages/m4.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm index d1ba928768..6ad00f8a58 100644 --- a/gnu/packages/m4.scm +++ b/gnu/packages/m4.scm @@ -26,14 +26,14 @@ (define-public m4 (package (name "m4") - (version "1.4.17") + (version "1.4.18") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/m4/m4-" - version ".tar.bz2")) + version ".tar.xz")) (sha256 (base32 - "0w0da1chh12mczxa5lnwzjk9czi3dq6gnnndbpa6w4rj76b1yklf")))) + "01sfjd5a4waqw83bibvmn522g69qfqvwig9i2qlgy154l1nfihgj")))) (build-system gnu-build-system) (arguments `(;; Explicitly disable tests when cross-compiling, otherwise 'make check' -- cgit v1.2.3 From fc649d0aada3d71de75ee6ca149bc8bbd045efd5 Mon Sep 17 00:00:00 2001 From: Carlos Sánchez de La Lama Date: Wed, 4 Jan 2017 23:47:24 +0100 Subject: gnu: gcc: Adjust for PowerPC. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add powerpc specific substitutions for dynamic linker and start files locations in 'pre-configure' phase. * gnu/packages/make-bootstrap.scm (%gcc-static)[arguments]: Add "gcc/config/rs6000/sysv4.h" to the list of files in 'remove-lgcc_s' phase. Signed-off-by: Ludovic Courtès --- gnu/packages/gcc.scm | 19 +++++++++++++++++-- gnu/packages/make-bootstrap.scm | 5 +++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index acc57c8201..8381392ba4 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; ;;; This file is part of GNU Guix. ;;; @@ -211,7 +212,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; Fix the dynamic linker's file name. (substitute* (find-files "gcc/config" - "^(linux|gnu)(64|-elf|-eabi)?\\.h$") + "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix) (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%" suffix @@ -240,7 +241,21 @@ where the OS part is overloaded to denote a specific ABI---into GCC (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" #define STANDARD_STARTFILE_PREFIX_2 \"\" ~a" - libc line)))) + libc line))) + + ;; The rs6000 (a.k.a. powerpc) config in GCC does not use + ;; GNU_USER_* defines. Do the above for this case. + (substitute* + "gcc/config/rs6000/sysv4.h" + (("#define LIB_LINUX_SPEC (.*)$" _ suffix) + (format #f "#define LIB_LINUX_SPEC \ +\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" + libc libc libdir suffix)) + (("#define STARTFILE_LINUX_SPEC.*$" line) + (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" +#define STANDARD_STARTFILE_PREFIX_2 \"\" +~a" + libc line)))) ;; Don't retain a dependency on the build-time sed. (substitute* "fixincludes/fixincl.x" diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index f31db6aaef..fcd22ee68b 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -441,8 +441,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; the 'pre-configure phase of our main gcc package, because ;; that shared library is not present in this static gcc. See ;; . - (substitute* (find-files "gcc/config" - "^gnu-user.*\\.h$") + (substitute* (cons "gcc/config/rs6000/sysv4.h" + (find-files "gcc/config" + "^gnu-user.*\\.h$")) ((" -lgcc_s}}") "}}"))) ,phases))))) (native-inputs -- cgit v1.2.3 From 440a3143f01083649dedddc97a0d6108bb3d2920 Mon Sep 17 00:00:00 2001 From: Carlos Sánchez de La Lama Date: Wed, 4 Jan 2017 23:50:37 +0100 Subject: gnu: linux-libre: Adjust for PowerPC. * gnu/packages/linux.scm (system->defconfig): New procedure. (linux-libre-headers)[arguments]: Use it in 'build' phase to determine the target name. * gnu/packages/cross-base.scm (cross-kernel-headers)[xlinux-headers] (arguments): Likewise. --- gnu/packages/cross-base.scm | 2 +- gnu/packages/linux.scm | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index e6553dcd34..da2efc3642 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -315,7 +315,7 @@ GCC that does not target a libc; otherwise, target that libc." (setenv "ARCH" ,(system->linux-architecture target)) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) - (and (zero? (system* "make" "defconfig")) + (and (zero? (system* "make" ,(system->defconfig target))) (zero? (system* "make" "mrproper" "headers_check")))) ,phases)))) (native-inputs `(("cross-gcc" ,xgcc) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a040aeb768..a0d86bb40e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2016 Rene Saavedra +;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; ;;; This file is part of GNU Guix. ;;; @@ -98,6 +99,13 @@ ((string-prefix? "aarch64" arch) "arm64") (else arch)))) +(define-public (system->defconfig system) + "Some systems (notably powerpc-linux) require a special target for kernel +defconfig. Return the appropiate make target if applicable, otherwise return +\"defconfig\"." + (cond ((string-prefix? "powerpc-" system) "pmac32_defconfig") + (else "defconfig"))) + (define (linux-libre-urls version) "Return a list of URLs for Linux-Libre VERSION." (list (string-append @@ -137,11 +145,13 @@ (lambda _ (let ((arch ,(system->linux-architecture (or (%current-target-system) - (%current-system))))) + (%current-system)))) + (defconfig ,(system->defconfig + (or (%current-target-system) + (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - - (and (zero? (system* "make" "defconfig")) + (and (zero? (system* "make" defconfig)) (zero? (system* "make" "mrproper" "headers_check")))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From 4a6f099e2c6dc3115abe708ea500d9e96e2ec0dc Mon Sep 17 00:00:00 2001 From: Carlos Sánchez de La Lama Date: Wed, 4 Jan 2017 23:52:41 +0100 Subject: gnu: bootstrap: Add the dynamic linker name for "powerpc-linux". This commit completes cross-compilation support for powerpc-linux-gnu. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "powerpc-linux" case. --- gnu/packages/bootstrap.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index f6faba3188..64a82393af 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -168,6 +168,7 @@ successful, or false to signal an error." ((string=? system "i586-gnu") "/lib/ld.so.1") ((string=? system "i686-gnu") "/lib/ld.so.1") ((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1") + ((string=? system "powerpc-linux") "/lib/ld.so.1") ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. -- cgit v1.2.3 From 9410a5aa916035bb4d7f032a5fe81cfb497887c8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 5 Jan 2017 00:00:59 +0100 Subject: hydra: Add "powerpc-linux-gnu" as a cross-compilation target. * build-aux/hydra/gnu-system.scm (%cross-targets): Add "powerpc-linux-gnu". --- build-aux/hydra/gnu-system.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 26c7b3ca45..10e0f89c4c 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -123,7 +123,8 @@ SYSTEM." (define %cross-targets '("mips64el-linux-gnu" "mips64el-linux-gnuabi64" - "arm-linux-gnueabihf")) + "arm-linux-gnueabihf" + "powerpc-linux-gnu")) (define (demo-os) "Return the \"demo\" 'operating-system' structure." -- cgit v1.2.3 From 7d7ea947f56e5080c9913f311ede71475045b9d6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 4 Jan 2017 16:47:48 +0100 Subject: gnu: sed: Update to 4.3. * gnu/packages/base.scm (sed): Update to 4.3. [source]: Use xz tarball. Remove upstreamed patch. [arguments]: Fix '/bin/sh' -> 'bash' substitution. [home-page]: Use https. [native-inputs]: Add perl. * gnu/packages/patches/sed-hurd-path-max.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/base.scm | 13 ++++++----- gnu/packages/patches/sed-hurd-path-max.patch | 34 ---------------------------- 3 files changed, 7 insertions(+), 41 deletions(-) delete mode 100644 gnu/packages/patches/sed-hurd-path-max.patch diff --git a/gnu/local.mk b/gnu/local.mk index 00f47e3165..55d56e1852 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -835,7 +835,6 @@ dist_patch_DATA = \ %D%/packages/patches/ruby-symlinkfix.patch \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ %D%/packages/patches/ruby-yard-fix-skip-of-markdown-tests.patch \ - %D%/packages/patches/sed-hurd-path-max.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-test-threading.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1962086169..66c5e0cdcb 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -117,15 +117,14 @@ including, for example, recursive directory searching.") (define-public sed (package (name "sed") - (version "4.2.2") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sed/sed-" version - ".tar.bz2")) + ".tar.xz")) (sha256 (base32 - "1myvrmh99jsvk7v3d7crm0gcrq51hmmm1r2kjyyci152in1x2j7h")) - (patches (search-patches "sed-hurd-path-max.patch")))) + "1anhdgah8h423hlmn9hwzxzr7hjbqjm6hxq3z1p7p7nf8640vhj7")))) (build-system gnu-build-system) (synopsis "Stream editor") (arguments @@ -140,8 +139,10 @@ including, for example, recursive directory searching.") (substitute* '("testsuite/bsd.sh" "testsuite/bug-regex9.c") (("/bin/sh") - (string-append bash "/bin/bash"))) + (string-append bash "/bin/sh"))) #t))))))) + (native-inputs + `(("perl" ,perl))) ; for build-aux/help2man (description "Sed is a non-interactive, text stream editor. It receives a text input from a file or from standard input and it then applies a series of text @@ -149,7 +150,7 @@ editing commands to the stream and prints its output to standard output. It is often used for substituting text patterns in a stream. The GNU implementation offers several extensions over the standard utility.") (license gpl3+) - (home-page "http://www.gnu.org/software/sed/"))) + (home-page "https://www.gnu.org/software/sed/"))) (define-public tar (package diff --git a/gnu/packages/patches/sed-hurd-path-max.patch b/gnu/packages/patches/sed-hurd-path-max.patch deleted file mode 100644 index 5226cba4cb..0000000000 --- a/gnu/packages/patches/sed-hurd-path-max.patch +++ /dev/null @@ -1,34 +0,0 @@ -7bb8d35d0330161a5af5341471d0c183a067e8c2 -Author: Jose E. Marchesi -Date: Sun Oct 6 14:43:38 2013 +0200 - - Set PATH_MAX to some constant in case it is not defined in system - headers. - - 2013-10-06 Jose E. Marchesi - - * basicdefs.h (PATH_MAX): Defined to some constant in case it is - not defined by system headers. - * sed/utils.c: Do not include pathmax.h anymore. - * bootstrap.conf (gnulib_modules): Do not use the gnulib module - pathmax. - -diff --git a/basicdefs.h b/basicdefs.h -index 0d28a97..09f5beb 100644 ---- a/basicdefs.h -+++ b/basicdefs.h -@@ -40,6 +41,13 @@ typedef unsigned long countT; - #define obstack_chunk_alloc ck_malloc - #define obstack_chunk_free free - -+/* MAX_PATH is not defined in some platforms, most notably GNU/Hurd. -+ In that case we define it here to some constant. Note however that -+ this relies in the fact that sed does reallocation if a buffer -+ needs to be larger than PATH_MAX. */ -+#ifndef PATH_MAX -+# define PATH_MAX 200 -+#endif - - /* handle misdesigned macros (snarfed from lib/regex.c) */ - /* Jim Meyering writes: - -- cgit v1.2.3 From dc70626d26c23b986fa4ae9f41a1187539cd470f Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 1 Jan 2017 15:24:27 +0000 Subject: gnu: libtool: Use 'modify-phases'. * gnu/packages/autotools.scm (libtool): Use 'modify-phases'. [arguments]: Use 'modify-phases'. Signed-off-by: Leo Famulari --- gnu/packages/autotools.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 72492e70eb..16ab2b8719 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 David Thompson +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -313,21 +314,21 @@ Makefile, simplifying the entire process for the developer.") (or (%current-target-system) (%current-system)))) - #:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - ;; Run the test suite in parallel, if possible. - (setenv "TESTSUITEFLAGS" - (string-append - "-j" - (number->string (parallel-job-count)))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Run the test suite in parallel, if possible. + (setenv "TESTSUITEFLAGS" + (string-append + "-j" + (number->string (parallel-job-count)))) + ;; Path references to /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "tests/testsuite" + (("/bin/sh") + (string-append bash "/bin/bash"))))))))) - ;; Path references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "tests/testsuite" - (("/bin/sh") - (string-append bash "/bin/bash"))))) - %standard-phases))) (synopsis "Generic shared library support tools") (description "GNU Libtool helps in the creation and use of shared libraries, by -- cgit v1.2.3 From 98341757c8c45fca8d2b53f9972f5c6a32cf2c95 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 1 Jan 2017 15:24:28 +0000 Subject: gnu: libtool: Restore ltmain.sh shebang. This fixes * gnu/packages/autotools.scm (libtool)[arguments]: Add new phase 'restore-ltmain-shebang'. [native-inputs]: Add help2man. Signed-off-by: Leo Famulari --- gnu/packages/autotools.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 16ab2b8719..83018ca8ff 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -27,6 +27,7 @@ #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages m4) + #:use-module (gnu packages man) #:use-module (gnu packages bash) #:use-module (guix utils) #:use-module (guix packages) @@ -301,6 +302,7 @@ Makefile, simplifying the entire process for the developer.") (propagated-inputs `(("m4" ,m4))) (native-inputs `(("m4" ,m4) ("perl" ,perl) + ("help2man" ,help2man) ;because we modify ltmain.sh ("automake" ,automake) ;some tests rely on 'aclocal' ("autoconf" ,(autoconf-wrapper)))) ;others on 'autom4te' @@ -328,6 +330,10 @@ Makefile, simplifying the entire process for the developer.") (substitute* "tests/testsuite" (("/bin/sh") (string-append bash "/bin/bash"))))))))) + (add-after 'patch-source-shebangs 'restore-ltmain-shebang + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build-aux/ltmain.in" + (("^#!.*/bin/sh$") "/bin/sh"))))))) (synopsis "Generic shared library support tools") (description -- cgit v1.2.3 From c5862bda95e3171c1addf6ff198a953bcda785b4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 4 Jan 2017 19:44:27 -0500 Subject: gnu: libtool: Don't replace 'sh' reference with 'bash'. Bash behaves differently based on how it is invoked (see Invocation in bash(1)). * gnu/packages/autotools.scm (libtool)[arguments]: Use /bin/sh instead of /bin/bash in 'pre-check' phase. Fix typo in comment. --- gnu/packages/autotools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 83018ca8ff..8ff7b8cf6d 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -325,11 +325,11 @@ Makefile, simplifying the entire process for the developer.") (string-append "-j" (number->string (parallel-job-count)))) - ;; Path references to /bin/sh. + ;; Patch references to /bin/sh. (let ((bash (assoc-ref inputs "bash"))) (substitute* "tests/testsuite" (("/bin/sh") - (string-append bash "/bin/bash"))))))))) + (string-append bash "/bin/sh")))))) (add-after 'patch-source-shebangs 'restore-ltmain-shebang (lambda* (#:key inputs #:allow-other-keys) (substitute* "build-aux/ltmain.in" -- cgit v1.2.3 From 78c172a56ef22b3145b9e8e78816a9607cb01b9b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 10:44:43 -0500 Subject: gnu: libtool: Make sure all phases return a successful value. * gnu/packages/autotools.scm (libtool)[arguments]: Return #t from 'pre-check' and 'restore-ltmain-shebang' phases. --- gnu/packages/autotools.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 8ff7b8cf6d..a2c1f3dd2e 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -329,11 +329,13 @@ Makefile, simplifying the entire process for the developer.") (let ((bash (assoc-ref inputs "bash"))) (substitute* "tests/testsuite" (("/bin/sh") - (string-append bash "/bin/sh")))))) + (string-append bash "/bin/sh"))) + #t))) (add-after 'patch-source-shebangs 'restore-ltmain-shebang (lambda* (#:key inputs #:allow-other-keys) (substitute* "build-aux/ltmain.in" - (("^#!.*/bin/sh$") "/bin/sh"))))))) + (("^#!.*/bin/sh$") "/bin/sh")) + #t))))) (synopsis "Generic shared library support tools") (description -- cgit v1.2.3 From 92e779592d269ca1924f184496eb4ca832997b12 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 11:31:34 -0500 Subject: gnu: libtool: Correct replacement shebang. * gnu/packages/autotools.scm (libtool)[arguments]: Correct replacement shebang in 'restore-ltmain-shebang' phase. --- gnu/packages/autotools.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index a2c1f3dd2e..442c87c1f1 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -334,7 +334,7 @@ Makefile, simplifying the entire process for the developer.") (add-after 'patch-source-shebangs 'restore-ltmain-shebang (lambda* (#:key inputs #:allow-other-keys) (substitute* "build-aux/ltmain.in" - (("^#!.*/bin/sh$") "/bin/sh")) + (("^#!.*/bin/sh$") "#!/bin/sh")) #t))))) (synopsis "Generic shared library support tools") -- cgit v1.2.3 From fa6428a19f8547b479abaab776cf1f3342d04445 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 03:00:06 -0500 Subject: gnu: m4: Don't replace 'sh' reference with 'bash'. * gnu/packages/m4.scm (m4)[arguments]: Use /bin/sh instead of /bin/bash in 'pre-check' phase. --- gnu/packages/m4.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm index 6ad00f8a58..3ee8142e7a 100644 --- a/gnu/packages/m4.scm +++ b/gnu/packages/m4.scm @@ -50,7 +50,7 @@ (substitute* (find-files "tests" "posix_spawn") (("/bin/sh") - (format #f "~a/bin/bash" bash))))) + (format #f "~a/bin/sh" bash))))) %standard-phases))) (synopsis "Macro processor") (description -- cgit v1.2.3 From 60f3ad8c073bba0a4672752f4b73ddd5ebd6b011 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 03:02:08 -0500 Subject: gnu: gnu-make: Don't replace 'sh' reference with 'bash'. * gnu/packages/base.scm (gnu-make)[arguments]: Use /bin/sh instead of /bin/bash in 'set-default-shell' phase. --- gnu/packages/base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 93b598f808..1483cd3421 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -365,7 +365,7 @@ functionality beyond that which is outlined in the POSIX standard.") (let ((bash (assoc-ref inputs "bash"))) (substitute* "job.c" (("default_shell =.*$") - (format #f "default_shell = \"~a/bin/bash\";\n" + (format #f "default_shell = \"~a/bin/sh\";\n" bash))))))))) (synopsis "Remake files automatically") (description -- cgit v1.2.3 From 11b6687609f24e3f238314c4b40a54341f96ab3c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 11:11:18 -0500 Subject: gnu: glibc/linux: Don't replace 'sh' reference with 'bash'. * gnu/packages/base.scm (glibc/linux)[arguments]: Use /bin/sh instead of /bin/bash in 'pre-configure' phase. --- gnu/packages/base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1483cd3421..3457c79bbc 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -622,7 +622,7 @@ store.") ;; Same for `popen'. (substitute* "libio/iopopen.c" (("/bin/sh") - (string-append bash "/bin/bash"))) + (string-append bash "/bin/sh"))) ;; Same for the shell used by the 'exec' functions for ;; scripts that lack a shebang. -- cgit v1.2.3 From e483139141c170131cca6589dc7942d7186329da Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 Jan 2017 11:11:38 -0500 Subject: gnu: glibc/linux: Use /bin/sh instead of /bin/bash as the default shell. * gnu/packages/base.scm (glibc/linux)[arguments]: Use /bin/sh for scripts that lack a shebang. --- gnu/packages/base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 3457c79bbc..4898b181e9 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -629,7 +629,7 @@ store.") (substitute* (find-files "." "^paths\\.h$") (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") (string-append "#define _PATH_BSHELL \"" - bash "/bin/bash\"\n"))) + bash "/bin/sh\"\n"))) ;; Nscd uses __DATE__ and __TIME__ to create a string to ;; make sure the client and server come from the same -- cgit v1.2.3 From 8ee40f684941764586cc2de4d8f85d961d02ec5f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 Jan 2017 17:15:38 -0500 Subject: Revert "Revert "gnu: gawk: Don't replace 'sh' reference with 'bash'."" This reverts commit f537ad0bf3bd3bdb43f752e091cb4a695a4aa077. --- gnu/packages/gawk.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm index 86f01335a8..280e3d3cff 100644 --- a/gnu/packages/gawk.scm +++ b/gnu/packages/gawk.scm @@ -47,7 +47,7 @@ (let ((bash (assoc-ref inputs "bash"))) (substitute* "io.c" (("/bin/sh") - (string-append bash "/bin/bash"))) + (string-append bash "/bin/sh"))) ;; When cross-compiling, remove dependencies on the ;; `check-for-shared-lib-support' target, which tries -- cgit v1.2.3 From e9384e3b746eb96beea6d3a9dce5f504825e8baa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jan 2017 19:10:25 +0100 Subject: gnu: ed: Update to 1.14.1. * gnu/packages/ed.scm (ed): Update to 1.14.1. [arguments]: Make sure 'patch-test-suite' phase ends with #t. [home-page]: Use HTTPS. --- gnu/packages/ed.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm index 3668aac19a..5014229952 100644 --- a/gnu/packages/ed.scm +++ b/gnu/packages/ed.scm @@ -28,14 +28,14 @@ (define-public ed (package (name "ed") - (version "1.13") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ed/ed-" version ".tar.lz")) (sha256 (base32 - "1ly7i1iw02vbcd0zrx084z577ngxnarffmkm45dg6vndad5carnd")))) + "0ajm69pma7gigddlrq2qi4dsllz9vhm8gqwpkcdagdd2yaw7xfgz")))) (build-system gnu-build-system) (native-inputs `(("lzip" ,lzip))) (arguments @@ -45,8 +45,9 @@ (add-before 'patch-source-shebangs 'patch-test-suite (lambda _ (substitute* "testsuite/check.sh" - (("/bin/sh") (which "sh")))))))) - (home-page "http://www.gnu.org/software/ed/") + (("/bin/sh") (which "sh"))) + #t))))) + (home-page "https://www.gnu.org/software/ed/") (synopsis "Line-oriented text editor") (description "Ed is a line-oriented text editor: rather than offering an overview of -- cgit v1.2.3 From e58db46bb8ab638d1a305c824807e2ef690bdeda Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 15 Jan 2017 23:36:31 +0100 Subject: gnu: sqlite: Update to 3.16.2. * gnu/packages/databases.scm (sqlite): Update to 3.16.2. --- gnu/packages/databases.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c5e8599028..16d43a31de 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -507,7 +507,7 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.15.2") + (version "3.16.2") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -519,11 +519,11 @@ for example from a shell script.") (map (cut string-pad <> 2 #\0) other-digits)) 6 #\0)))))) - (string-append "https://sqlite.org/2016/sqlite-autoconf-" + (string-append "https://sqlite.org/2017/sqlite-autoconf-" numeric-version ".tar.gz"))) (sha256 (base32 - "0j9i1zrwxc7dfd6xr3xagal3incrlalsrk96havnas1qp5im1cq7")))) + "059n4s9qd35qpbd4g29y9ay99a6f68ad7k65g430rxb6jcz0rk35")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments -- cgit v1.2.3 From 2b8bea03b605c96afe730ea088bcdc6b78e58c2d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 16 Jan 2017 09:52:54 +0200 Subject: gnu: zlib: Update to 1.2.11. * gnu/packages/compression.scm (zlib): Update to 1.2.11. --- gnu/packages/compression.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index bdf87562e4..d3bf7ec981 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Jeff Mickey -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Tobias Geerinckx-Rice @@ -51,7 +51,7 @@ (define-public zlib (package (name "zlib") - (version "1.2.8") + (version "1.2.11") (source (origin (method url-fetch) @@ -61,7 +61,7 @@ version ".tar.gz"))) (sha256 (base32 - "039agw5rqvqny92cpkrfn243x2gd4xn13hs3xi6isk55d2vqqr9n")))) + "18dighcs333gsvajvvgqp8l4cx7h1x7yx9gd5xacnk80spyykrf3")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace -- cgit v1.2.3 From 6cd00453476f2f040680d9d7163411af224101d1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 16 Jan 2017 09:54:47 +0200 Subject: gnu: zlib: Use 'modify-phases' syntax. * gnu/packages/compression.scm (zlib)[arguments]: Use 'modify-phases'. --- gnu/packages/compression.scm | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index d3bf7ec981..86cb147798 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -64,21 +64,21 @@ "18dighcs333gsvajvvgqp8l4cx7h1x7yx9gd5xacnk80spyykrf3")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; Zlib's home-made `configure' fails when passed - ;; extra flags like `--enable-fast-install', so we need to - ;; invoke it with just what it understand. - (let ((out (assoc-ref outputs "out"))) - ;; 'configure' doesn't understand '--host'. - ,@(if (%current-target-system) - `((setenv "CHOST" ,(%current-target-system))) - '()) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; Zlib's home-made `configure' fails when passed + ;; extra flags like `--enable-fast-install', so we need to + ;; invoke it with just what it understand. + (let ((out (assoc-ref outputs "out"))) + ;; 'configure' doesn't understand '--host'. + ,@(if (%current-target-system) + `((setenv "CHOST" ,(%current-target-system))) + '()) + (zero? + (system* "./configure" + (string-append "--prefix=" out))))))))) (home-page "http://zlib.net/") (synopsis "Compression library") (description -- cgit v1.2.3 From 8c6b077bfae3c257ad7b9967f63428f8504d61f0 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 16 Jan 2017 16:27:51 +0100 Subject: gnu: gdk-pixbuf: Make it reproducible. Fixes . * gnu/packages/gtk.scm (gdk-pixbuf)[source](patches): New field. --- gnu/local.mk | 1 + gnu/packages/gtk.scm | 3 ++- gnu/packages/patches/gdk-pixbuf-list-dir.patch | 35 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gdk-pixbuf-list-dir.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7e816f79af..34c4587db7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -568,6 +568,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcj-arm-mode.patch \ + %D%/packages/patches/gdk-pixbuf-list-dir.patch \ %D%/packages/patches/gd-CVE-2016-7568.patch \ %D%/packages/patches/gd-CVE-2016-8670.patch \ %D%/packages/patches/gd-fix-chunk-size-on-boundaries.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a506949aba..8f9d5f4786 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -433,7 +433,8 @@ highlighting and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "1v1rssjd8p5s3lymsfhiq5mbs2pc0h1r6jd0asrwdbrign7i68sj")))) + "1v1rssjd8p5s3lymsfhiq5mbs2pc0h1r6jd0asrwdbrign7i68sj")) + (patches (search-patches "gdk-pixbuf-list-dir.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-x11") diff --git a/gnu/packages/patches/gdk-pixbuf-list-dir.patch b/gnu/packages/patches/gdk-pixbuf-list-dir.patch new file mode 100644 index 0000000000..137914a19c --- /dev/null +++ b/gnu/packages/patches/gdk-pixbuf-list-dir.patch @@ -0,0 +1,35 @@ +Sort directory entries so that the output of +‘gdk-pixbuf-query-loaders’ is deterministic. + +See: https://bugzilla.gnome.org/show_bug.cgi?id=777332 +--- gdk-pixbuf-2.34.0/gdk-pixbuf/queryloaders.c.orig 2017-01-11 00:17:32.865843062 +0100 ++++ gdk-pixbuf-2.34.0/gdk-pixbuf/queryloaders.c 2017-01-16 16:12:03.420667874 +0100 +@@ -354,16 +354,27 @@ + + dir = g_dir_open (path, 0, NULL); + if (dir) { ++ GList *entries = NULL; + const char *dent; + + while ((dent = g_dir_read_name (dir))) { + gint len = strlen (dent); + if (len > SOEXT_LEN && + strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) { +- query_module (contents, path, dent); ++ entries = g_list_append (entries, g_strdup (dent)); + } + } + g_dir_close (dir); ++ /* Sort directory entries so that the output of ++ ‘gdk-pixbuf-query-loaders’ is deterministic. */ ++ entries = g_list_sort (entries, (GCompareFunc) strcmp); ++ GList *xentries; ++ for (xentries = entries; xentries; xentries = g_list_next (xentries)) { ++ dent = xentries->data; ++ query_module (contents, path, dent); ++ g_free (xentries->data); ++ } ++ g_list_free (entries); + } + #else + g_string_append_printf (contents, "# dynamic loading of modules not supported\n"); -- cgit v1.2.3 From b1972a83e8429cd8e37f5befef53a25060338171 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 1 Jan 2017 17:53:10 -0500 Subject: gnu: libsndfile: Update to 1.0.27. * gnu/packages/pulseaudio.scm (libsndfile): Update to 1.0.27. --- gnu/packages/pulseaudio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 9a22b38ec2..a5c1470da7 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -42,14 +42,14 @@ (define-public libsndfile (package (name "libsndfile") - (version "1.0.26") + (version "1.0.27") (source (origin (method url-fetch) (uri (string-append "http://www.mega-nerd.com/libsndfile/files/libsndfile-" version ".tar.gz")) (sha256 (base32 - "14jhla289cj45946h0hq2an0a9g4wkwb3v4571bla6ixfvn20rfd")))) + "1h7s61nhf7vklh9sdsbbqzb6x287q4x4j1jc5gmjragl4wprb4d3")))) (build-system gnu-build-system) (inputs `(("libvorbis" ,libvorbis) -- cgit v1.2.3 From 8efd10cd11f6e0d014b08410bd81d89941a52662 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 1 Jan 2017 17:53:34 -0500 Subject: gnu: speex: Update to 1.2.0. * gnu/packages/xiph.scm (speex): Update to 1.2.0. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index fc5cd6ca95..46afe08c6c 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -127,7 +127,7 @@ compressed video format.") (define speex (package (name "speex") - (version "1.2rc1") + (version "1.2.0") (source (origin (method url-fetch) @@ -135,7 +135,7 @@ compressed video format.") version ".tar.gz")) (sha256 (base32 - "19mpkhbz3s08snvndn0h1dk2j139max6b0rr86nnsjmxazf30brl")))) + "150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa")))) (build-system gnu-build-system) (inputs `(("libogg" ,libogg))) (home-page "https://gnu.org/software/speex") -- cgit v1.2.3 From b4fddeae20f1c575e17203c709d322bd1d9c43e0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 1 Jan 2017 17:53:51 -0500 Subject: gnu: flac: Update to 1.3.2. * gnu/packages/xiph.scm (flac): Update to 1.3.2. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 46afe08c6c..0d2aa81919 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -202,14 +202,14 @@ It currently supports: (define flac (package (name "flac") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "http://downloads.xiph.org/releases/flac/flac-" version ".tar.xz")) (sha256 (base32 - "0v65w7ph6ldwp5a8fbhp0a3w8f737ck468fr7yb7sxmskl4w0ws7")))) + "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) -- cgit v1.2.3 From 7e5b944e8f54b9e216e0edff2116b3e37a7e37ff Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 1 Jan 2017 23:20:18 -0500 Subject: gnu: libdrm: Update to 2.4.74. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.74. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 21d396972a..b05debade7 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -266,7 +266,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.68") + (version "2.4.74") (source (origin (method url-fetch) @@ -276,7 +276,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "1px91j6imaaq2fy8ksvgldmv0cdz3w379jqiciqvqa99jajxjjsv")) + "02w4xy3gsp0556l9d395mlxhlzixqscxkk6was3lq7s0djkxa3fq")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 603308ee601b9ca96e90822b61b4e150106db425 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Tue, 3 Jan 2017 12:58:28 +0100 Subject: gnu: doxygen: Use sh from the store. * gnu/packages/documentation.scm (doxygen)[inputs]: Add bash-minimal. [arguments]: Add phase to add store prefix to "/bin/sh". Signed-off-by: Leo Famulari --- gnu/packages/documentation.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index bbc25e8797..e0713c31c6 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2016 Andreas Enge ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Roel Janssen +;;; Copyright © 2016 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages python) #:use-module (gnu packages bison) #:use-module (gnu packages docbook) @@ -99,8 +101,18 @@ markup) can be customized and extended by the user.") ("flex" ,flex) ("libxml2" ,libxml2) ; provides xmllint for the tests ("python" ,python-2))) ; for creating the documentation + (inputs + `(("bash" ,bash-minimal))) (arguments - `(#:test-target "tests")) + `(#:test-target "tests" + #:phases (modify-phases %standard-phases + (add-before 'configure 'patch-sh + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/portable.cpp" + (("/bin/sh") + (string-append + (assoc-ref inputs "bash") "/bin/sh"))) + #t))))) (home-page "http://www.stack.nl/~dimitri/doxygen/") (synopsis "Generate documentation from annotated sources") (description "Doxygen is the de facto standard tool for generating -- cgit v1.2.3 From 79e90f05b6c11525215aae65ae5134f9a37ed7ef Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 16 Jan 2017 16:44:45 +0100 Subject: gnu: cups-filters: Disable mutool integration. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cups.scm (cups-filters)[arguments]: Add ‘--disable-mutool’ to #:configure-flags. [inputs]: Remove mupdf. --- gnu/packages/cups.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 39ab41c192..adf94a5128 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -88,6 +88,7 @@ `(#:make-flags (list (string-append "PREFIX=" %output)) #:configure-flags `("--disable-driverless" ; TODO: enable this + "--disable-mutool" ; depends on yet another PDF library (mupdf) ,(string-append "--with-test-font-path=" (assoc-ref %build-inputs "font-dejavu") "/share/fonts/truetype/DejaVuSans.ttf") @@ -114,7 +115,6 @@ ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("mupdf" ,mupdf) ("glib" ,glib) ("qpdf" ,qpdf) ("poppler" ,poppler) -- cgit v1.2.3 From 4c9c8a294ea64fcb969da84e6fe207780ebdb387 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 14 Jan 2017 00:28:54 +0100 Subject: gnu: boost: Update to 1.63.0. * gnu/packages/boost.scm (boost): Update to 1.63.0. --- gnu/packages/boost.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index e6abf4d5e3..b3fccdf2eb 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -34,7 +34,7 @@ (define-public boost (package (name "boost") - (version "1.61.0") + (version "1.63.0") (source (origin (method url-fetch) (uri (string-append @@ -43,7 +43,7 @@ ".tar.bz2")) (sha256 (base32 - "0h5nk7pgxf7xsvvshj9qfpsfp9wx6gq9r78n3nx736pxq83bsix5")))) + "1c5kzhcqahnic55dxcnw7r80qvwx5sfa2sa97yzv7xjrywljbbmy")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (native-inputs -- cgit v1.2.3 From 9f19f3a0ad4271d223f8519ba96133ab1b8526e6 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 18 Jan 2017 15:32:58 -0500 Subject: gnu: tcl: Update to 8.6.6. * gnu/packages/tcl.scm (tcl): Update to 8.6.6. --- gnu/packages/tcl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 4cd94299df..2d9bf1e592 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -37,14 +37,14 @@ (define-public tcl (package (name "tcl") - (version "8.6.4") + (version "8.6.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" version "/tcl" version "-src.tar.gz")) (sha256 (base32 - "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")) + "01zypqhy57wvh1ikk28bg733sk5kf4q568pq9v6fvcz4h6bl0rd2")) (patches (search-patches "tcl-mkindex-deterministic.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 539108e1138dc0a223f109b3feed5511c828b5ce Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 18 Jan 2017 16:03:00 -0500 Subject: gnu: tk: Update to 8.6.6. * gnu/packages/tcl.scm (tk): Update to 8.6.6. --- gnu/packages/tcl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 2d9bf1e592..f9a23c3230 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -135,14 +135,14 @@ X11 GUIs.") (define-public tk (package (name "tk") - (version "8.6.4") + (version "8.6.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" version "/tk" version "-src.tar.gz")) (sha256 (base32 - "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")) + "17diivcfcwdhp4v5zi6j9nkxncccjqkivhp363c4wx5lf4d3fb6n")) (patches (search-patches "tk-find-library.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 677b30221b5c4413f7d9316ae4009dd393ef8214 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 20 Jan 2017 22:32:47 +0100 Subject: hydra: Add "i586-pc-gnu" as a cross-compilation target. * build-aux/hydra/gnu-system.scm (%cross-targets): Add "i586-pc-gnu". --- build-aux/hydra/gnu-system.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index f5a37a2ca4..17c224ea4e 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -123,8 +123,9 @@ SYSTEM." '("mips64el-linux-gnu" "mips64el-linux-gnuabi64" "arm-linux-gnueabihf" - "i686-w64-mingw32" - "powerpc-linux-gnu")) + "powerpc-linux-gnu" + "i586-pc-gnu" ;aka. GNU/Hurd + "i686-w64-mingw32")) (define %guixsd-supported-systems '("x86_64-linux" "i686-linux")) -- cgit v1.2.3 From 168c400045bda767e9921789d93562c737b7b147 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 20 Jan 2017 22:57:47 +0100 Subject: gnu: ld-wrapper-boot0: Remove workaround for . Fixes . * gnu/packages/commencement.scm (ld-wrapper-boot0): Change the first 'make-ld-wrapper' argument to "ld-wrapper-boot0"; change #:target to BOOT-TRIPLET. --- gnu/packages/commencement.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 273e3ca808..94b4d440ca 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Mark H Weaver @@ -447,14 +447,8 @@ the bootstrap environment." (define ld-wrapper-boot0 ;; We need this so binaries on Hurd will have libmachuser and libhurduser ;; in their RUNPATH, otherwise validate-runpath will fail. - ;; - ;; XXX: Work around by fixing the name and - ;; triplet on GNU/Linux. For GNU/Hurd, use the right triplet. - (make-ld-wrapper (string-append "ld-wrapper-" "x86_64-guix-linux-gnu") - #:target (lambda (system) - (if (string-suffix? "-linux" system) - "x86_64-guix-linux-gnu" - (boot-triplet system))) + (make-ld-wrapper "ld-wrapper-boot0" + #:target boot-triplet #:binutils binutils-boot0 #:guile %bootstrap-guile #:bash (car (assoc-ref %boot0-inputs "bash")))) -- cgit v1.2.3 From b848f98e04e6403add7e7f6a61c2860001f1bbc3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 21 Jan 2017 21:35:34 -0500 Subject: gnu: bash: Update to patch level 11. * gnu/packages/bash.scm (%patch-series-4.4): Add patches 6 through 11. --- gnu/packages/bash.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 90b6c3f17e..0923f5d55a 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2015 Leo Famulari -;;; Copyright © 2016 Efraim Flashenr +;;; Copyright © 2015, 2017 Leo Famulari +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,7 +60,13 @@ (2 "0lrwq6vyqism3yqv9s7kzaf3dsl4q5w9r5svcqz279qp7qca083h") (3 "1chqww2rj6g42b8s60q5zlzy0jzp684jkpsbrbfy1vzxja8mmpsi") (4 "1cy8abf96hkrjhw921ndr0shlcnc52bg45rn6xri4v5clhq0l25d") - (5 "0a8515kyk4zsgmvlqvlganjfr7pq0j6kzpr4d6xx02kpbdr4n7i2"))) + (5 "0a8515kyk4zsgmvlqvlganjfr7pq0j6kzpr4d6xx02kpbdr4n7i2") + (6 "1f24wgqngmj2mrj9yibwvc2zvlmn5xi53mnw777g3l40c4m2x3ka") + (7 "1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y") + (8 "1firw915mjm03hbbw9a70ch3cpgrgnvqjpllgdnn6csr8q04f546") + (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") + (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") + (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of -- cgit v1.2.3 From 8a296947a6bdd173faeb5d7defba7069b537ddd4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 21 Jan 2017 22:37:06 +0100 Subject: gnu: sed: Use the same phases whether or not we're cross-compiling. * gnu/packages/base.scm (sed)[arguments]: Make #:phases argument unconditional. In 'patch-test-suite' phase, use (which "sh") instead of referring to the "bash" input. --- gnu/packages/base.scm | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 4898b181e9..dc6ce4f3d4 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016 Mark H Weaver @@ -129,19 +129,16 @@ including, for example, recursive directory searching.") (build-system gnu-build-system) (synopsis "Stream editor") (arguments - (if (%current-target-system) - '() - `(#:phases - (modify-phases %standard-phases - (add-before 'patch-source-shebangs 'patch-test-suite - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (patch-makefile-SHELL "testsuite/Makefile.tests") - (substitute* '("testsuite/bsd.sh" - "testsuite/bug-regex9.c") - (("/bin/sh") - (string-append bash "/bin/sh"))) - #t))))))) + `(#:phases + (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'patch-test-suite + (lambda* (#:key inputs #:allow-other-keys) + (patch-makefile-SHELL "testsuite/Makefile.tests") + (substitute* '("testsuite/bsd.sh" + "testsuite/bug-regex9.c") + (("/bin/sh") + (which "sh"))) + #t))))) (native-inputs `(("perl" ,perl))) ; for build-aux/help2man (description -- cgit v1.2.3 From c8b44fc10717a106b305d66e95ea27d1a3be45f5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 22 Jan 2017 13:10:56 +0100 Subject: gnu: sed: Do not attempt to rebuild 'doc/sed.1'. * gnu/packages/base.scm (sed)[arguments]: Add 'dont-rebuild-sed.1' phase. [native-inputs]: Remove. --- gnu/packages/base.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index dc6ce4f3d4..f6946f3c9e 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -131,6 +131,15 @@ including, for example, recursive directory searching.") (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'dont-rebuild-sed.1 + (lambda _ + ;; Make sure we do not attempt to rebuild 'doc/sed.1', which does + ;; not work when cross-compiling because we cannot run 'sed'. + ;; This is fixed upstream as commit a0a25e3. + (substitute* "Makefile.in" + (("^doc/sed\\.1:.*") + "doc/sed.1:\n")) + #t)) (add-before 'patch-source-shebangs 'patch-test-suite (lambda* (#:key inputs #:allow-other-keys) (patch-makefile-SHELL "testsuite/Makefile.tests") @@ -139,8 +148,6 @@ including, for example, recursive directory searching.") (("/bin/sh") (which "sh"))) #t))))) - (native-inputs - `(("perl" ,perl))) ; for build-aux/help2man (description "Sed is a non-interactive, text stream editor. It receives a text input from a file or from standard input and it then applies a series of text -- cgit v1.2.3 From 33ae7d43854d8e36f29892015d4ee172c7f518f6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 22 Jan 2017 13:11:45 +0100 Subject: gnu: gcc: Properly set the dynamic linker file name on GNU/Hurd. * gnu/packages/gcc.scm (gcc-4.7)[arguments]: In 'pre-configure' phase, match 'GNU_USER_DYNAMIC_LINKER' in addition to 'GLIBC_DYNAMIC_LINKER'. This fixes GNU/Hurd cross-compilation as reported at . --- gnu/packages/gcc.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 206c67ed99..0cdef6dec9 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -205,17 +205,18 @@ where the OS part is overloaded to denote a specific ABI---into GCC (for-each (lambda (x) (substitute* (find-files "gcc/config" - "^linux(64|-elf|-eabi)?\\.h$") - (("(#define GLIBC_DYNAMIC_LINKER.*)\\\\\n$" _ line) + "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") + (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) line))) '(1 2 3)) ;; Fix the dynamic linker's file name. (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") - (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix) - (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%" - suffix + (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ ]*).*$" + _ gnu-user suffix) + (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" + gnu-user suffix (string-append libc ,(glibc-dynamic-linker))))) ;; Tell where to find libstdc++, libc, and `?crt*.o', except -- cgit v1.2.3 From 026ee1a5a669658c8d4745c2733b4c201ca0e48e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 00:44:09 -0500 Subject: gnu: pcre: Update to 8.40. * gnu/packages/pcre.scm (pcre): Update to 8.40. [source]: Remove obsolete patch 'pcre-CVE-2016-3191.patch'. --- gnu/packages/pcre.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index fe9157af12..9ca950b967 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -31,7 +31,7 @@ (define-public pcre (package (name "pcre") - (version "8.38") + (version "8.40") (source (origin (method url-fetch) (uri (list @@ -42,8 +42,7 @@ version "/pcre-" version ".tar.bz2"))) (sha256 (base32 - "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r")) - (patches (list (search-patch "pcre-CVE-2016-3191.patch"))))) + "1x7lpjn7jhk0n3sdvggxrlrhab8kkfjwl7qix0ypw9nlx8lpmqh0")))) (build-system gnu-build-system) (outputs '("out" ;library & headers "bin" ;depends on Readline (adds 20MiB to the closure) -- cgit v1.2.3 From 0e88ada940953ac6b12fcbfd2add08835edcf49d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Jan 2017 10:28:15 +0200 Subject: gnu: Remove pcre-CVE-2016-3191.patch. This is a follow-up to 026ee1a5a669658c8d4745c2733b4c201ca0e48e. * gnu/packages/patches/pcre-CVE-2016-3191.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/pcre-CVE-2016-3191.patch | 151 -------------------------- 2 files changed, 152 deletions(-) delete mode 100644 gnu/packages/patches/pcre-CVE-2016-3191.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6dcd174bc3..d1efdbdf66 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -769,7 +769,6 @@ dist_patch_DATA = \ %D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ - %D%/packages/patches/pcre-CVE-2016-3191.patch \ %D%/packages/patches/pcre2-CVE-2016-3191.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-deterministic-ordering.patch \ diff --git a/gnu/packages/patches/pcre-CVE-2016-3191.patch b/gnu/packages/patches/pcre-CVE-2016-3191.patch deleted file mode 100644 index 89cce2a36f..0000000000 --- a/gnu/packages/patches/pcre-CVE-2016-3191.patch +++ /dev/null @@ -1,151 +0,0 @@ -Fix for CVE-2016-3191. -See . -This is svn r1631 at . - -Index: trunk/testdata/testoutput11-16 -=================================================================== ---- trunk/testdata/testoutput11-16 (revision 1630) -+++ trunk/testdata/testoutput11-16 (revision 1631) -@@ -765,4 +765,7 @@ - 25 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: regular expression is too complicated at offset 490 -+ - /-- End of testinput11 --/ -Index: trunk/testdata/testinput11 -=================================================================== ---- trunk/testdata/testinput11 (revision 1630) -+++ trunk/testdata/testinput11 (revision 1631) -@@ -138,4 +138,6 @@ - - /.((?2)(?R)\1)()/B - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+ - /-- End of testinput11 --/ -Index: trunk/testdata/testoutput11-8 -=================================================================== ---- trunk/testdata/testoutput11-8 (revision 1630) -+++ trunk/testdata/testoutput11-8 (revision 1631) -@@ -765,4 +765,7 @@ - 38 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: missing ) at offset 509 -+ - /-- End of testinput11 --/ -Index: trunk/testdata/testoutput11-32 -=================================================================== ---- trunk/testdata/testoutput11-32 (revision 1630) -+++ trunk/testdata/testoutput11-32 (revision 1631) -@@ -765,4 +765,7 @@ - 25 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: missing ) at offset 509 -+ - /-- End of testinput11 --/ -Index: trunk/pcre_internal.h -=================================================================== ---- trunk/pcre_internal.h (revision 1630) -+++ trunk/pcre_internal.h (revision 1631) -@@ -7,7 +7,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -2289,7 +2289,7 @@ - ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, - ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69, - ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79, -- ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT }; -+ ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERR87, ERRCOUNT }; - - /* JIT compiling modes. The function list is indexed by them. */ - -Index: trunk/pcre_compile.c -=================================================================== ---- trunk/pcre_compile.c (revision 1630) -+++ trunk/pcre_compile.c (revision 1631) -@@ -6,7 +6,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -560,6 +560,7 @@ - /* 85 */ - "parentheses are too deeply nested (stack check)\0" - "digits missing in \\x{} or \\o{}\0" -+ "regular expression is too complicated\0" - ; - - /* Table to identify digits and hex digits. This is used when compiling -@@ -4591,7 +4592,8 @@ - if (code > cd->start_workspace + cd->workspace_size - - WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */ - { -- *errorcodeptr = ERR52; -+ *errorcodeptr = (code >= cd->start_workspace + cd->workspace_size)? -+ ERR52 : ERR87; - goto FAILED; - } - -@@ -6626,8 +6628,21 @@ - cd->had_accept = TRUE; - for (oc = cd->open_caps; oc != NULL; oc = oc->next) - { -- *code++ = OP_CLOSE; -- PUT2INC(code, 0, oc->number); -+ if (lengthptr != NULL) -+ { -+#ifdef COMPILE_PCRE8 -+ *lengthptr += 1 + IMM2_SIZE; -+#elif defined COMPILE_PCRE16 -+ *lengthptr += 2 + IMM2_SIZE; -+#elif defined COMPILE_PCRE32 -+ *lengthptr += 4 + IMM2_SIZE; -+#endif -+ } -+ else -+ { -+ *code++ = OP_CLOSE; -+ PUT2INC(code, 0, oc->number); -+ } - } - setverb = *code++ = - (cd->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; -Index: trunk/pcreposix.c -=================================================================== ---- trunk/pcreposix.c (revision 1630) -+++ trunk/pcreposix.c (revision 1631) -@@ -6,7 +6,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -173,7 +173,8 @@ - REG_BADPAT, /* group name must start with a non-digit */ - /* 85 */ - REG_BADPAT, /* parentheses too deeply nested (stack check) */ -- REG_BADPAT /* missing digits in \x{} or \o{} */ -+ REG_BADPAT, /* missing digits in \x{} or \o{} */ -+ REG_BADPAT /* pattern too complicated */ - }; - - /* Table of texts corresponding to POSIX error codes */ -- cgit v1.2.3 From c063f34f6bbeaf1cf3351dbce3d8e7f1ff388bb2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 Jan 2017 17:39:21 +0100 Subject: gnu: libxi: Update to 1.7.9. * gnu/packages/xorg.scm (libxi): Update to 1.7.9. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b780d47c32..bb3182f5ab 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4793,7 +4793,7 @@ new API's in libXft, or the legacy API's in libX11.") (define-public libxi (package (name "libxi") - (version "1.7.8") + (version "1.7.9") (source (origin (method url-fetch) @@ -4803,7 +4803,7 @@ new API's in libXft, or the legacy API's in libX11.") ".tar.bz2")) (sha256 (base32 - "1fr7mi4nbcxsa88qin9g2ipmzh595ydxy9qnabzl270laf6zmwnq")))) + "0idg1wc01hndvaa820fvfs7phvd1ymf0lldmq6386i7rhkzvirn2")))) (build-system gnu-build-system) (propagated-inputs `(("inputproto" ,inputproto) -- cgit v1.2.3 From d71d6fe85c4db778be6a2081cbbec6a3a494e4f9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 21 Jan 2017 12:31:49 +0100 Subject: gnu: gcc@5: Respect SOURCE_DATE_EPOCH in __DATE__ and __TIME__ macros. * gnu/packages/patches/gcc-5-source-date-epoch-1.patch, gnu/packages/patches/gcc-5-source-date-epoch-2.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/gcc.scm (gcc-5)[source]: Use them. --- gnu/local.mk | 2 + gnu/packages/gcc.scm | 4 +- .../patches/gcc-5-source-date-epoch-1.patch | 190 +++++++++++ .../patches/gcc-5-source-date-epoch-2.patch | 353 +++++++++++++++++++++ 4 files changed, 548 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gcc-5-source-date-epoch-1.patch create mode 100644 gnu/packages/patches/gcc-5-source-date-epoch-2.patch diff --git a/gnu/local.mk b/gnu/local.mk index d1efdbdf66..ca14a85577 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -561,6 +561,8 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ + %D%/packages/patches/gcc-5-source-date-epoch-1.patch \ + %D%/packages/patches/gcc-5-source-date-epoch-2.patch \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcj-arm-mode.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 0cdef6dec9..075642ebd1 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -376,7 +376,9 @@ Go. It also includes runtime support libraries for these languages.") "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch" + "gcc-5-source-date-epoch-1.patch" + "gcc-5-source-date-epoch-2.patch")))))) (define-public gcc-6 (package diff --git a/gnu/packages/patches/gcc-5-source-date-epoch-1.patch b/gnu/packages/patches/gcc-5-source-date-epoch-1.patch new file mode 100644 index 0000000000..8c94a026b3 --- /dev/null +++ b/gnu/packages/patches/gcc-5-source-date-epoch-1.patch @@ -0,0 +1,190 @@ +Make GCC respect SOURCE_DATE_EPOCH in __DATE__ and __TIME__ macros. + +Patch adapted from upstream source repository: + +https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e3e8c48c4a494d9da741c1c8ea6c4c0b7c4ff934 + +From e3e8c48c4a494d9da741c1c8ea6c4c0b7c4ff934 Mon Sep 17 00:00:00 2001 +From: doko +Date: Thu, 28 Apr 2016 09:12:05 +0000 +Subject: [PATCH] gcc/c-family/ChangeLog: + +diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c +index 1bf5d080034..6f0898a38d7 100644 +--- a/gcc/c-family/c-common.c ++++ b/gcc/c-family/c-common.c +@@ -12318,4 +12318,37 @@ pointer_to_zero_sized_aggr_p (tree t) + return (TYPE_SIZE (t) && integer_zerop (TYPE_SIZE (t))); + } + ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++time_t ++get_source_date_epoch () ++{ ++ char *source_date_epoch; ++ long long epoch; ++ char *endptr; ++ ++ source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); ++ if (!source_date_epoch) ++ return (time_t) -1; ++ ++ errno = 0; ++ epoch = strtoll (source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == LLONG_MAX || epoch == LLONG_MIN)) ++ || (errno != 0 && epoch == 0)) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "strtoll: %s\n", xstrerror(errno)); ++ if (endptr == source_date_epoch) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "no digits were found: %s\n", endptr); ++ if (*endptr != '\0') ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "trailing garbage: %s\n", endptr); ++ if (epoch < 0) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "value must be nonnegative: %lld \n", epoch); ++ ++ return (time_t) epoch; ++} ++ + #include "gt-c-family-c-common.h" +diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h +index fdb227f85c3..ba0a5d7df50 100644 +--- a/gcc/c-family/c-common.h ++++ b/gcc/c-family/c-common.h +@@ -1437,4 +1437,10 @@ extern bool contains_cilk_spawn_stmt (tree); + extern tree cilk_for_number_of_iterations (tree); + extern bool check_no_cilk (tree, const char *, const char *, + location_t loc = UNKNOWN_LOCATION); ++ ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++extern time_t get_source_date_epoch (void); ++ + #endif /* ! GCC_C_COMMON_H */ +diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c +index bb55be8063e..e68471b9d2b 100644 +--- a/gcc/c-family/c-lex.c ++++ b/gcc/c-family/c-lex.c +@@ -402,6 +402,9 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags, + enum cpp_ttype type; + unsigned char add_flags = 0; + enum overflow_type overflow = OT_NONE; ++ time_t source_date_epoch = get_source_date_epoch (); ++ ++ cpp_init_source_date_epoch (parse_in, source_date_epoch); + + timevar_push (TV_CPP); + retry: +diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi +index 100811dc637..3b5317beb53 100644 +--- a/gcc/doc/cppenv.texi ++++ b/gcc/doc/cppenv.texi +@@ -79,4 +79,21 @@ main input file is omitted. + @ifclear cppmanual + @xref{Preprocessor Options}. + @end ifclear ++ ++@item SOURCE_DATE_EPOCH ++ ++If this variable is set, its value specifies a UNIX timestamp to be ++used in replacement of the current date and time in the @code{__DATE__} ++and @code{__TIME__} macros, so that the embedded timestamps become ++reproducible. ++ ++The value of @env{SOURCE_DATE_EPOCH} must be a UNIX timestamp, ++defined as the number of seconds (excluding leap seconds) since ++01 Jan 1970 00:00:00 represented in ASCII, identical to the output of ++@samp{@command{date +%s}}. ++ ++The value should be a known timestamp such as the last modification ++time of the source or package and it should be set by the build ++process. ++ + @end vtable +diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h +index 1b731d1a3ad..7a5481219be 100644 +--- a/libcpp/include/cpplib.h ++++ b/libcpp/include/cpplib.h +@@ -775,6 +775,9 @@ extern void cpp_init_special_builtins (cpp_reader *); + /* Set up built-ins like __FILE__. */ + extern void cpp_init_builtins (cpp_reader *, int); + ++/* Initialize the source_date_epoch value. */ ++extern void cpp_init_source_date_epoch (cpp_reader *, time_t); ++ + /* This is called after options have been parsed, and partially + processed. */ + extern void cpp_post_options (cpp_reader *); +diff --git a/libcpp/init.c b/libcpp/init.c +index 45a4d13ffa3..a8d00f4628b 100644 +--- a/libcpp/init.c ++++ b/libcpp/init.c +@@ -530,6 +530,13 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) + _cpp_define_builtin (pfile, "__OBJC__ 1"); + } + ++/* Initialize the source_date_epoch value. */ ++void ++cpp_init_source_date_epoch (cpp_reader *pfile, time_t source_date_epoch) ++{ ++ pfile->source_date_epoch = source_date_epoch; ++} ++ + /* Sanity-checks are dependent on command-line options, so it is + called as a subroutine of cpp_read_main_file (). */ + #if ENABLE_CHECKING +diff --git a/libcpp/internal.h b/libcpp/internal.h +index c2d08168945..8507eba1747 100644 +--- a/libcpp/internal.h ++++ b/libcpp/internal.h +@@ -502,6 +502,10 @@ struct cpp_reader + const unsigned char *date; + const unsigned char *time; + ++ /* Externally set timestamp to replace current date and time useful for ++ reproducibility. */ ++ time_t source_date_epoch; ++ + /* EOF token, and a token forcing paste avoidance. */ + cpp_token avoid_paste; + cpp_token eof; +diff --git a/libcpp/macro.c b/libcpp/macro.c +index eb32a6f8c98..3f3b278e97d 100644 +--- a/libcpp/macro.c ++++ b/libcpp/macro.c +@@ -350,13 +350,20 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) + time_t tt; + struct tm *tb = NULL; + +- /* (time_t) -1 is a legitimate value for "number of seconds +- since the Epoch", so we have to do a little dance to +- distinguish that from a genuine error. */ +- errno = 0; +- tt = time(NULL); +- if (tt != (time_t)-1 || errno == 0) +- tb = localtime (&tt); ++ /* Set a reproducible timestamp for __DATE__ and __TIME__ macro ++ usage if SOURCE_DATE_EPOCH is defined. */ ++ if (pfile->source_date_epoch != (time_t) -1) ++ tb = gmtime (&pfile->source_date_epoch); ++ else ++ { ++ /* (time_t) -1 is a legitimate value for "number of seconds ++ since the Epoch", so we have to do a little dance to ++ distinguish that from a genuine error. */ ++ errno = 0; ++ tt = time (NULL); ++ if (tt != (time_t)-1 || errno == 0) ++ tb = localtime (&tt); ++ } + + if (tb) + { +-- +2.11.0 + diff --git a/gnu/packages/patches/gcc-5-source-date-epoch-2.patch b/gnu/packages/patches/gcc-5-source-date-epoch-2.patch new file mode 100644 index 0000000000..ed2580679a --- /dev/null +++ b/gnu/packages/patches/gcc-5-source-date-epoch-2.patch @@ -0,0 +1,353 @@ +Continuation of the SOURCE_DATE_EPOCH patch. + +Patch adapted from upstream source repository: + +https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=dfa5c0d3f3e23e4fdb14857a42de376d9ff8601c + +From dfa5c0d3f3e23e4fdb14857a42de376d9ff8601c Mon Sep 17 00:00:00 2001 +From: doko +Date: Wed, 1 Jun 2016 16:42:41 +0000 +Subject: [PATCH] gcc/c-family/ChangeLog: + +diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c +index 6f0898a38d7..efbc78ef218 100644 +--- a/gcc/c-family/c-common.c ++++ b/gcc/c-family/c-common.c +@@ -12321,8 +12321,9 @@ pointer_to_zero_sized_aggr_p (tree t) + /* Read SOURCE_DATE_EPOCH from environment to have a deterministic + timestamp to replace embedded current dates to get reproducible + results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++ + time_t +-get_source_date_epoch () ++cb_get_source_date_epoch (cpp_reader *pfile ATTRIBUTE_UNUSED) + { + char *source_date_epoch; + long long epoch; +@@ -12334,19 +12335,14 @@ get_source_date_epoch () + + errno = 0; + epoch = strtoll (source_date_epoch, &endptr, 10); +- if ((errno == ERANGE && (epoch == LLONG_MAX || epoch == LLONG_MIN)) +- || (errno != 0 && epoch == 0)) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "strtoll: %s\n", xstrerror(errno)); +- if (endptr == source_date_epoch) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "no digits were found: %s\n", endptr); +- if (*endptr != '\0') +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "trailing garbage: %s\n", endptr); +- if (epoch < 0) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "value must be nonnegative: %lld \n", epoch); ++ if (errno != 0 || endptr == source_date_epoch || *endptr != '\0' ++ || epoch < 0 || epoch > MAX_SOURCE_DATE_EPOCH) ++ { ++ error_at (input_location, "environment variable SOURCE_DATE_EPOCH must " ++ "expand to a non-negative integer less than or equal to %wd", ++ MAX_SOURCE_DATE_EPOCH); ++ return (time_t) -1; ++ } + + return (time_t) epoch; + } +diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h +index ba0a5d7df50..977ae9df5ea 100644 +--- a/gcc/c-family/c-common.h ++++ b/gcc/c-family/c-common.h +@@ -1063,6 +1063,16 @@ extern vec *make_tree_vector_copy (const vec *); + c_register_builtin_type. */ + extern GTY(()) tree registered_builtin_types; + ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++extern time_t cb_get_source_date_epoch (cpp_reader *pfile); ++ ++/* The value (as a unix timestamp) corresponds to date ++ "Dec 31 9999 23:59:59 UTC", which is the latest date that __DATE__ and ++ __TIME__ can store. */ ++#define MAX_SOURCE_DATE_EPOCH HOST_WIDE_INT_C (253402300799) ++ + /* In c-gimplify.c */ + extern void c_genericize (tree); + extern int c_gimplify_expr (tree *, gimple_seq *, gimple_seq *); +@@ -1438,9 +1448,4 @@ extern tree cilk_for_number_of_iterations (tree); + extern bool check_no_cilk (tree, const char *, const char *, + location_t loc = UNKNOWN_LOCATION); + +-/* Read SOURCE_DATE_EPOCH from environment to have a deterministic +- timestamp to replace embedded current dates to get reproducible +- results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ +-extern time_t get_source_date_epoch (void); +- + #endif /* ! GCC_C_COMMON_H */ +diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c +index e68471b9d2b..3f78073f640 100644 +--- a/gcc/c-family/c-lex.c ++++ b/gcc/c-family/c-lex.c +@@ -97,6 +97,7 @@ init_c_lex (void) + cb->valid_pch = c_common_valid_pch; + cb->read_pch = c_common_read_pch; + cb->has_attribute = c_common_has_attribute; ++ cb->get_source_date_epoch = cb_get_source_date_epoch; + + /* Set the debug callbacks if we can use them. */ + if ((debug_info_level == DINFO_LEVEL_VERBOSE +@@ -402,9 +403,6 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags, + enum cpp_ttype type; + unsigned char add_flags = 0; + enum overflow_type overflow = OT_NONE; +- time_t source_date_epoch = get_source_date_epoch (); +- +- cpp_init_source_date_epoch (parse_in, source_date_epoch); + + timevar_push (TV_CPP); + retry: +diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi +index 3b5317beb53..7b4cf6adc11 100644 +--- a/gcc/doc/cppenv.texi ++++ b/gcc/doc/cppenv.texi +@@ -81,7 +81,6 @@ main input file is omitted. + @end ifclear + + @item SOURCE_DATE_EPOCH +- + If this variable is set, its value specifies a UNIX timestamp to be + used in replacement of the current date and time in the @code{__DATE__} + and @code{__TIME__} macros, so that the embedded timestamps become +@@ -89,8 +88,9 @@ reproducible. + + The value of @env{SOURCE_DATE_EPOCH} must be a UNIX timestamp, + defined as the number of seconds (excluding leap seconds) since +-01 Jan 1970 00:00:00 represented in ASCII, identical to the output of +-@samp{@command{date +%s}}. ++01 Jan 1970 00:00:00 represented in ASCII; identical to the output of ++@samp{@command{date +%s}} on GNU/Linux and other systems that support the ++@code{%s} extension in the @code{date} command. + + The value should be a known timestamp such as the last modification + time of the source or package and it should be set by the build +diff --git a/gcc/gcc.c b/gcc/gcc.c +index d956c36b151..2709f295734 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -3328,6 +3328,29 @@ save_switch (const char *opt, size_t n_args, const char *const *args, + n_switches++; + } + ++/* Set the SOURCE_DATE_EPOCH environment variable to the current time if it is ++ not set already. */ ++ ++static void ++set_source_date_epoch_envvar () ++{ ++ /* Array size is 21 = ceil(log_10(2^64)) + 1 to hold string representations ++ of 64 bit integers. */ ++ char source_date_epoch[21]; ++ time_t tt; ++ ++ errno = 0; ++ tt = time (NULL); ++ if (tt < (time_t) 0 || errno != 0) ++ tt = (time_t) 0; ++ ++ snprintf (source_date_epoch, 21, "%llu", (unsigned long long) tt); ++ /* Using setenv instead of xputenv because we want the variable to remain ++ after finalizing so that it's still set in the second run when using ++ -fcompare-debug. */ ++ setenv ("SOURCE_DATE_EPOCH", source_date_epoch, 0); ++} ++ + /* Handle an option DECODED that is unknown to the option-processing + machinery. */ + +@@ -3628,6 +3651,7 @@ driver_handle_option (struct gcc_options *opts, + else + compare_debug_opt = arg; + save_switch (compare_debug_replacement_opt, 0, NULL, validated, true); ++ set_source_date_epoch_envvar (); + return true; + + case OPT_fdiagnostics_color_: +diff --git a/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c +new file mode 100644 +index 00000000000..f6aa1a360ff +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c +@@ -0,0 +1,11 @@ ++/* { dg-do run } */ ++/* { dg-set-compiler-env-var SOURCE_DATE_EPOCH "630333296" } */ ++ ++int ++main(void) ++{ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); ++ return 0; ++} ++ ++/* { dg-output "^Dec 22 1989 12:34:56\n$" } */ +diff --git a/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c +new file mode 100644 +index 00000000000..ae18362ae87 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-set-compiler-env-var SOURCE_DATE_EPOCH "AAA" } */ ++ ++/* Make sure that SOURCE_DATE_EPOCH is only parsed once */ ++ ++int ++main(void) ++{ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); /* { dg-error "SOURCE_DATE_EPOCH must expand" } */ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); ++ return 0; ++} +diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp +index 4fa433d9954..7656b2254a1 100644 +--- a/gcc/testsuite/lib/gcc-dg.exp ++++ b/gcc/testsuite/lib/gcc-dg.exp +@@ -324,6 +324,38 @@ proc restore-target-env-var { } { + } + } + ++proc dg-set-compiler-env-var { args } { ++ global set_compiler_env_var ++ global saved_compiler_env_var ++ if { [llength $args] != 3 } { ++ error "dg-set-compiler-env-var: need two arguments" ++ return ++ } ++ set var [lindex $args 1] ++ set value [lindex $args 2] ++ if [info exists ::env($var)] { ++ lappend saved_compiler_env_var [list $var 1 $::env($var)] ++ } else { ++ lappend saved_compiler_env_var [list $var 0] ++ } ++ setenv $var $value ++ lappend set_compiler_env_var [list $var $value] ++} ++ ++proc restore-compiler-env-var { } { ++ global saved_compiler_env_var ++ for { set env_vari [llength $saved_compiler_env_var] } { ++ [incr env_vari -1] >= 0 } {} { ++ set env_var [lindex $saved_compiler_env_var $env_vari] ++ set var [lindex $env_var 0] ++ if [lindex $env_var 1] { ++ setenv $var [lindex $env_var 2] ++ } else { ++ unsetenv $var ++ } ++ } ++} ++ + # Utility routines. + + # +@@ -785,6 +817,11 @@ if { [info procs saved-dg-test] == [list] } { + if [info exists set_target_env_var] { + unset set_target_env_var + } ++ if [info exists set_compiler_env_var] { ++ restore-compiler-env-var ++ unset set_compiler_env_var ++ unset saved_compiler_env_var ++ } + unset_timeout_vars + if [info exists compiler_conditional_xfail_data] { + unset compiler_conditional_xfail_data +diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h +index 7a5481219be..867aeebc39f 100644 +--- a/libcpp/include/cpplib.h ++++ b/libcpp/include/cpplib.h +@@ -585,6 +585,9 @@ struct cpp_callbacks + + /* Callback that can change a user builtin into normal macro. */ + bool (*user_builtin_macro) (cpp_reader *, cpp_hashnode *); ++ ++ /* Callback to parse SOURCE_DATE_EPOCH from environment. */ ++ time_t (*get_source_date_epoch) (cpp_reader *); + }; + + #ifdef VMS +@@ -775,9 +778,6 @@ extern void cpp_init_special_builtins (cpp_reader *); + /* Set up built-ins like __FILE__. */ + extern void cpp_init_builtins (cpp_reader *, int); + +-/* Initialize the source_date_epoch value. */ +-extern void cpp_init_source_date_epoch (cpp_reader *, time_t); +- + /* This is called after options have been parsed, and partially + processed. */ + extern void cpp_post_options (cpp_reader *); +diff --git a/libcpp/init.c b/libcpp/init.c +index a8d00f4628b..61c9bbbf945 100644 +--- a/libcpp/init.c ++++ b/libcpp/init.c +@@ -254,6 +254,9 @@ cpp_create_reader (enum c_lang lang, cpp_hash_table *table, + /* Do not force token locations by default. */ + pfile->forced_token_location_p = NULL; + ++ /* Initialize source_date_epoch to -2 (not yet set). */ ++ pfile->source_date_epoch = (time_t) -2; ++ + /* The expression parser stack. */ + _cpp_expand_op_stack (pfile); + +@@ -530,13 +533,6 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) + _cpp_define_builtin (pfile, "__OBJC__ 1"); + } + +-/* Initialize the source_date_epoch value. */ +-void +-cpp_init_source_date_epoch (cpp_reader *pfile, time_t source_date_epoch) +-{ +- pfile->source_date_epoch = source_date_epoch; +-} +- + /* Sanity-checks are dependent on command-line options, so it is + called as a subroutine of cpp_read_main_file (). */ + #if ENABLE_CHECKING +diff --git a/libcpp/internal.h b/libcpp/internal.h +index 8507eba1747..226ae328e76 100644 +--- a/libcpp/internal.h ++++ b/libcpp/internal.h +@@ -503,7 +503,8 @@ struct cpp_reader + const unsigned char *time; + + /* Externally set timestamp to replace current date and time useful for +- reproducibility. */ ++ reproducibility. It should be initialized to -2 (not yet set) and ++ set to -1 to disable it or to a non-negative value to enable it. */ + time_t source_date_epoch; + + /* EOF token, and a token forcing paste avoidance. */ +diff --git a/libcpp/macro.c b/libcpp/macro.c +index 3f3b278e97d..756c7c6e0c6 100644 +--- a/libcpp/macro.c ++++ b/libcpp/macro.c +@@ -351,9 +351,13 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) + struct tm *tb = NULL; + + /* Set a reproducible timestamp for __DATE__ and __TIME__ macro +- usage if SOURCE_DATE_EPOCH is defined. */ +- if (pfile->source_date_epoch != (time_t) -1) +- tb = gmtime (&pfile->source_date_epoch); ++ if SOURCE_DATE_EPOCH is defined. */ ++ if (pfile->source_date_epoch == (time_t) -2 ++ && pfile->cb.get_source_date_epoch != NULL) ++ pfile->source_date_epoch = pfile->cb.get_source_date_epoch (pfile); ++ ++ if (pfile->source_date_epoch >= (time_t) 0) ++ tb = gmtime (&pfile->source_date_epoch); + else + { + /* (time_t) -1 is a legitimate value for "number of seconds +-- +2.11.0 + -- cgit v1.2.3 From 370522b888c73ad16bcd8c5709c86d9c1e91dc57 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 15:42:34 -0500 Subject: gnu: attr: Don't replace 'sh' reference with 'bash'. * gnu/packages/attr.scm (attr)[arguments]: Use /bin/sh instead of /bin/bash in 'check' phase. --- gnu/packages/attr.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/attr.scm b/gnu/packages/attr.scm index 907a568bdd..4dbe09ceca 100644 --- a/gnu/packages/attr.scm +++ b/gnu/packages/attr.scm @@ -54,7 +54,7 @@ ;; Use the right shell. (substitute* "test/run" (("/bin/sh") - (which "bash"))) + (which "sh"))) ;; When building natively, run the tests. (unless target -- cgit v1.2.3 From 2f2f4265b9f21af86ca9899c9dd5de3336856a6c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 15:52:06 -0500 Subject: gnu: ghostscript: Don't replace 'sh' reference with 'bash'. * gnu/packages/ghostscript.scm (ghostscript)[arguments]: Use /bin/sh instead of /bin/bash in 'patch-config-files' phase. --- gnu/packages/ghostscript.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 46b8c51299..0c212ca928 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -168,9 +168,9 @@ printing, and psresize, for adjusting page sizes.") (add-after 'configure 'patch-config-files (lambda _ (substitute* "base/all-arch.mak" - (("/bin/sh") (which "bash"))) + (("/bin/sh") (which "sh"))) (substitute* "base/unixhead.mak" - (("/bin/sh") (which "bash"))))) + (("/bin/sh") (which "sh"))))) (add-after 'configure 'remove-doc-reference (lambda _ ;; Don't retain a reference to the 'doc' output in 'gs'. -- cgit v1.2.3 From 3dd9b765c9e780e0229633af31b2b918155261ca Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 15:55:45 -0500 Subject: gnu: mit-krb5: Don't replace 'sh' reference with 'bash'. * gnu/packages/mit-krb5.scm (mit-krb5)[arguments]: Use /bin/sh instead of /bin/bash in 'pre-check' phase. --- gnu/packages/mit-krb5.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index 87fe57dc4b..f9e1e9009c 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -68,7 +68,7 @@ (let ((perl (assoc-ref inputs "perl"))) (substitute* "plugins/kdb/db2/libdb2/test/run.test" (("/bin/cat") (string-append perl "/bin/perl")) - (("D/bin/sh") (string-append "D" (which "bash"))) + (("D/bin/sh") (string-append "D" (which "sh"))) (("bindir=/bin/.") (string-append "bindir=" perl "/bin")))) ;; avoid service names since /etc/services is unavailable -- cgit v1.2.3 From 08a78c2fdec4697569c377bae91b269ee74014b2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jan 2017 15:56:57 -0500 Subject: gnu: openssl: Don't replace 'sh' reference with 'bash'. * gnu/packages/tls.scm (openssl)[arguments]: Use /bin/sh instead of /bin/bash in 'patch-tests' phase. --- gnu/packages/tls.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 111942ab1f..49d4c318fd 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -320,7 +320,7 @@ required structures.") (let ((bash (assoc-ref (or native-inputs inputs) "bash"))) (substitute* (find-files "test" ".*") (("/bin/sh") - (string-append bash "/bin/bash")) + (string-append bash "/bin/sh")) (("/bin/rm") "rm")) #t))) -- cgit v1.2.3 From c5746f239964a72642ac56640b8ff490d5bfa673 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 22 Jan 2017 22:25:26 +0100 Subject: guix package: Honor the order of profiles when -p appears multiple times. * guix/scripts/package.scm (process-query): Reverse the order of PROFILES. * tests/guix-package-net.sh: Test it with '--search-paths'. --- guix/scripts/package.scm | 4 ++-- tests/guix-package-net.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 90e7fa2298..79622ac149 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2013, 2015 Mark H Weaver ;;; Copyright © 2014, 2016 Alex Kost @@ -666,7 +666,7 @@ processed, #f otherwise." (_ #f)) opts) (() (list %current-profile)) - (lst lst))) + (lst (reverse lst)))) (profile (match profiles ((head tail ...) head)))) (match (assoc-ref opts 'query) diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh index 35ef6ff1a0..1eff6abba3 100644 --- a/tests/guix-package-net.sh +++ b/tests/guix-package-net.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès # Copyright © 2013 Nikita Karetnikov # # This file is part of GNU Guix. @@ -165,7 +165,7 @@ guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap if guix package -p "$profile" --search-paths | grep LIBRARY_PATH then false; fi guix package -p "$profile" -p "$profile_alt" --search-paths \ - | grep "LIBRARY_PATH.*$profile/lib" + | grep "LIBRARY_PATH.*$profile/lib.$profile_alt/lib" # # Try with the default profile. -- cgit v1.2.3 From fcd75bdbfa99d14363b905afbf914eec20e69df8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 22 Jan 2017 22:42:57 +0100 Subject: search-paths: Allow specs with #f as their separator. This adds support for single-entry search paths. Fixes . Reported by Leo Famulari . * guix/search-paths.scm ()[separator]: Document as string or #f. (evaluate-search-paths): Add case for SEPARATOR as #f. (environment-variable-definition): Handle SEPARATOR being #f. * guix/build/utils.scm (list->search-path-as-string): Add case for SEPARATOR as #f. (search-path-as-string->list): Likewise. * guix/build/profiles.scm (abstract-profile): Likewise. * tests/search-paths.scm: New file. * Makefile.am (SCM_TESTS): Add it. * tests/packages.scm ("--search-paths with single-item search path"): New test. * gnu/packages/version-control.scm (git)[native-search-paths](separator): New field. --- Makefile.am | 3 ++- gnu/packages/version-control.scm | 4 ++-- guix/build/profiles.scm | 24 ++++++++++++-------- guix/build/utils.scm | 13 ++++++++--- guix/search-paths.scm | 28 ++++++++++++++++------- tests/packages.scm | 49 +++++++++++++++++++++++++++++++++++++++- tests/search-paths.scm | 48 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 144 insertions(+), 25 deletions(-) create mode 100644 tests/search-paths.scm diff --git a/Makefile.am b/Makefile.am index 3e147df2e0..dd9069ea76 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès # Copyright © 2013 Andreas Enge # Copyright © 2015 Alex Kost # Copyright © 2016 Mathieu Lirzin @@ -272,6 +272,7 @@ SCM_TESTS = \ tests/nar.scm \ tests/union.scm \ tests/profiles.scm \ + tests/search-paths.scm \ tests/syscalls.scm \ tests/gremlin.scm \ tests/bournish.scm \ diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 7918b90ca6..bf1842010f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2013 Cyril Roelandt -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2014, 2015, 2016 Mark H Weaver @@ -297,10 +297,10 @@ as well as the classic centralized workflow.") (native-search-paths ;; For HTTPS access, Git needs a single-file certificate bundle, specified ;; with $GIT_SSL_CAINFO. - ;; FIXME: This variable designates a single file; it is not a search path. (list (search-path-specification (variable "GIT_SSL_CAINFO") (file-type 'regular) + (separator #f) ;single entry (files '("etc/ssl/certs/ca-certificates.crt"))))) (synopsis "Distributed version control system") diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index 6e316d5d2c..42eabfaf19 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,17 +39,21 @@ 'GUIX_PROFILE' environment variable. This allows users to specify what the user-friendly name of the profile is, for instance ~/.guix-profile rather than /gnu/store/...-profile." - (let ((replacement (string-append "${GUIX_PROFILE:-" profile "}"))) + (let ((replacement (string-append "${GUIX_PROFILE:-" profile "}")) + (crop (cute string-drop <> (string-length profile)))) (match-lambda ((search-path . value) - (let* ((separator (search-path-specification-separator search-path)) - (items (string-tokenize* value separator)) - (crop (cute string-drop <> (string-length profile)))) - (cons search-path - (string-join (map (lambda (str) - (string-append replacement (crop str))) - items) - separator))))))) + (match (search-path-specification-separator search-path) + (#f + (cons search-path + (string-append replacement (crop value)))) + ((? string? separator) + (let ((items (string-tokenize* value separator))) + (cons search-path + (string-join (map (lambda (str) + (string-append replacement (crop str))) + items) + separator))))))))) (define (write-environment-variable-definition port) "Write the given environment variable definition to PORT." diff --git a/guix/build/utils.scm b/guix/build/utils.scm index bc6f114152..cf09326393 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2015 Mark H Weaver @@ -400,10 +400,17 @@ for under the directories designated by FILES. For example: (delete-duplicates input-dirs))) (define (list->search-path-as-string lst separator) - (string-join lst separator)) + (if separator + (string-join lst separator) + (match lst + ((head rest ...) head) + (() "")))) (define* (search-path-as-string->list path #:optional (separator #\:)) - (string-tokenize path (char-set-complement (char-set separator)))) + (if separator + (string-tokenize path + (char-set-complement (char-set separator))) + (list path))) (define* (set-path-environment-variable env-var files input-dirs #:key diff --git a/guix/search-paths.scm b/guix/search-paths.scm index 7a6fe67959..4bf0e44389 100644 --- a/guix/search-paths.scm +++ b/guix/search-paths.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,7 +55,7 @@ search-path-specification? (variable search-path-specification-variable) ;string (files search-path-specification-files) ;list of strings - (separator search-path-specification-separator ;string + (separator search-path-specification-separator ;string | #f (default ":")) (file-type search-path-specification-file-type ;symbol (default 'directory)) @@ -131,11 +131,23 @@ like `string-tokenize', but SEPARATOR is a string." DIRECTORIES, a list of directory names, and return a list of specification/value pairs. Use GETENV to determine the current settings and report only settings not already effective." - (define search-path-definition - (match-lambda - ((and spec - ($ variable files separator - type pattern)) + (define (search-path-definition spec) + (match spec + (($ variable files #f type pattern) + ;; Separator is #f so return the first match. + (match (with-null-error-port + (search-path-as-list files directories + #:type type + #:pattern pattern)) + (() + #f) + ((head . _) + (let ((value (getenv variable))) + (if (and value (string=? value head)) + #f ;VARIABLE already set appropriately + (cons spec head)))))) + (($ variable files separator + type pattern) (let* ((values (or (and=> (getenv variable) (cut string-tokenize* <> separator)) '())) @@ -164,7 +176,7 @@ current value), or 'suffix (return the definition where VALUE is added as a suffix to VARIABLE's current value.) In the case of 'prefix and 'suffix, SEPARATOR is used as the separator between VARIABLE's current value and its prefix/suffix." - (match kind + (match (if (not separator) 'exact kind) ('exact (format #f "export ~a=\"~a\"" variable value)) ('prefix diff --git a/tests/packages.scm b/tests/packages.scm index 247f75cc43..962f120ea2 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +42,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages guile) #:use-module (gnu packages bootstrap) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -979,6 +980,52 @@ (guix-package "-p" (derivation->output-path prof) "--search-paths")))))) +(test-assert "--search-paths with single-item search path" + ;; Make sure 'guix package --search-paths' correctly reports environment + ;; variables for things like 'GIT_SSL_CAINFO' that have #f as their + ;; separator, meaning that the first match wins. + (let* ((p1 (dummy-package "foo" + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/etc/ssl/certs")) + (call-with-output-file + (string-append + out "/etc/ssl/certs/ca-certificates.crt") + (const #t)))))))) + (p2 (package (inherit p1) (name "bar"))) + (p3 (dummy-package "git" + ;; Provide a fake Git to avoid building the real one. + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:builder (mkdir (assoc-ref %outputs "out")))) + (native-search-paths (package-native-search-paths git)))) + (prof1 (run-with-store %store + (profile-derivation + (packages->manifest (list p1 p3)) + #:hooks '() + #:locales? #f) + #:guile-for-build (%guile-for-build))) + (prof2 (run-with-store %store + (profile-derivation + (packages->manifest (list p2 p3)) + #:hooks '() + #:locales? #f) + #:guile-for-build (%guile-for-build)))) + (build-derivations %store (list prof1 prof2)) + (string-match (format #f "^export GIT_SSL_CAINFO=\"~a/etc/ssl/certs/ca-certificates.crt" + (regexp-quote (derivation->output-path prof1))) + (with-output-to-string + (lambda () + (guix-package "-p" (derivation->output-path prof1) + "-p" (derivation->output-path prof2) + "--search-paths")))))) + (test-equal "specification->package when not found" 'quit (catch 'quit diff --git a/tests/search-paths.scm b/tests/search-paths.scm new file mode 100644 index 0000000000..2a4c18dd76 --- /dev/null +++ b/tests/search-paths.scm @@ -0,0 +1,48 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-search-paths) + #:use-module (guix search-paths) + #:use-module (ice-9 match) + #:use-module (srfi srfi-64)) + +(define %top-srcdir + (dirname (search-path %load-path "guix.scm"))) + + +(test-begin "search-paths") + +(test-equal "evaluate-search-paths, separator is #f" + (string-append %top-srcdir + "/gnu/packages/bootstrap/armhf-linux") + + ;; The following search path spec should evaluate to a single item: the + ;; first directory that matches the "-linux$" pattern in + ;; gnu/packages/bootstrap. + (let ((spec (search-path-specification + (variable "CHBOUIB") + (files '("gnu/packages/bootstrap")) + (file-type 'directory) + (separator #f) + (file-pattern "-linux$")))) + (match (evaluate-search-paths (list spec) + (list %top-srcdir)) + (((spec* . value)) + (and (eq? spec* spec) value))))) + +(test-end "search-paths") -- cgit v1.2.3 From a639525256aac5202f2e11c461cda39c126a38f6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Jan 2017 16:05:30 -0500 Subject: gnu: libgcrypt: Update to 1.7.6. * gnu/packages/gnupg.scm (libgcrypt): Update to 1.7.6. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 051b55f307..b0e0c261bc 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -82,14 +82,14 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package (name "libgcrypt") - (version "1.7.5") + (version "1.7.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "0078pbzm6nlgvnwlylshsg707ifcmfpnpbvhlhqbpwpfic9a9zni")))) + "1g05prhgqw4ryd0w433q8nhds0h93kf47hfjagi2r7dghkpaysk2")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) -- cgit v1.2.3 From a282d7ff174ccc13b3645359449af6052451c2a1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 23 Jan 2017 00:31:59 +0100 Subject: gnu: python-2.7: Enable UCS-4 Unicode encoding. * gnu/packages/python.scm (python-2.7)[arguments]: Modify. --- gnu/packages/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5feca2b68e..7e086139c9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -168,6 +168,7 @@ (list "--enable-shared" ;allow embedding "--with-system-ffi" ;build ctypes "--with-ensurepip=install" ;install pip and setuptools + "--enable-unicode=ucs4" (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) -- cgit v1.2.3 From e9f62e527e3fdf953ff4884ed1973eec6900c8ee Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:45:24 -0500 Subject: gnu: libxml2: Incorporate grafted patches. * gnu/packages/xml.scm (libxml2)[replacement]: Remove field. [source]: Add patches 'libxml2-CVE-2016-4658.patch' and 'libxml2-CVE-2016-5131.patch'. (python-libxml2)[replacement]: Remove field. (libxml2/fixed): Remove variable. --- gnu/packages/xml.scm | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 32b658489c..d16821f228 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Raimon Grau ;;; Copyright © 2016 Mathieu Lirzin -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 ng0 @@ -74,12 +74,13 @@ things the parser might find in the XML document (like start tags).") (define-public libxml2 (package (name "libxml2") - (replacement libxml2/fixed) (version "2.9.4") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" version ".tar.gz")) + (patches (search-patches "libxml2-CVE-2016-4658.patch" + "libxml2-CVE-2016-5131.patch")) (sha256 (base32 "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz")))) @@ -102,19 +103,9 @@ things the parser might find in the XML document (like start tags).") project (but it is usable outside of the Gnome platform).") (license license:x11))) -(define libxml2/fixed - (package - (inherit libxml2) - (source - (origin - (inherit (package-source libxml2)) - (patches (search-patches "libxml2-CVE-2016-4658.patch" - "libxml2-CVE-2016-5131.patch")))))) - (define-public python-libxml2 (package (inherit libxml2) (name "python-libxml2") - (replacement #f) (build-system python-build-system) (arguments `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'. -- cgit v1.2.3 From 2663c38826cd6c2ef0c5119f8072fac8e89b2e9b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:47:43 -0500 Subject: gnu: libxslt: Incorporate grafted patch. * gnu/packages/xml.scm (libxslt)[replacement]: Remove field. [source]: Add patch 'libxslt-CVE-2016-4738.patch'. (libxslt/fixed): Remove variable. --- gnu/packages/xml.scm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index d16821f228..b759b33420 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -135,12 +135,12 @@ project (but it is usable outside of the Gnome platform).") (define-public libxslt (package (name "libxslt") - (replacement libxslt/fixed) (version "1.1.29") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-" version ".tar.gz")) + (patches (search-patches "libxslt-CVE-2016-4738.patch")) (sha256 (base32 "1klh81xbm9ppzgqk339097i39b7fnpmlj8lzn8bpczl3aww6x5xm")) @@ -157,14 +157,6 @@ project (but it is usable outside of the Gnome platform).") based on libxml for XML parsing, tree manipulation and XPath support.") (license license:x11))) -(define libxslt/fixed - (package - (inherit libxslt) - (name "libxslt") - (source (origin - (inherit (package-source libxslt)) - (patches (search-patches "libxslt-CVE-2016-4738.patch")))))) - (define-public perl-graph-readwrite (package (name "perl-graph-readwrite") -- cgit v1.2.3 From 678dd8a5ed34ccc81e2b980e2002cd2afa4a6f71 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:49:45 -0500 Subject: gnu: curl: Incorporate grafted changes. * gnu/packages/curl.scm (curl)[replacement]: Remove field. (curl-7.52.1): Remove variable. --- gnu/packages/curl.scm | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 7329d870de..ec982ef65b 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Ludovic Courtès -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,15 +40,14 @@ (define-public curl (package (name "curl") - (replacement curl-7.52.1) - (version "7.50.3") + (version "7.52.1") (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" version ".tar.lzma")) (sha256 (base32 - "1spmk0345hq0sgpwxs8d410268lmg3wf1x9v23hxff7wxki5fm4c")))) + "0r937wplchjxifxqqcjxd9rzp6l9rqqdfjn41x1y4djrh95nsa24")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -120,16 +119,3 @@ tunneling, and so on.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) - -(define curl-7.52.1 - (package - (inherit curl) - (source - (let ((version "7.52.1")) - (origin - (method url-fetch) - (uri (string-append "https://curl.haxx.se/download/curl-" - version ".tar.lzma")) - (sha256 - (base32 - "0r937wplchjxifxqqcjxd9rzp6l9rqqdfjn41x1y4djrh95nsa24"))))))) -- cgit v1.2.3 From 9b1bb709047f814b89dcba9452e1b21da65e7da3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:51:50 -0500 Subject: gnu: libpng: Incorporate grafted patch. * gnu/packages/image.scm (libpng)[replacement]: Remove field. [source]: Add patch 'libpng-CVE-2016-10087.patch'. (libpng-1.2)[replacement]: Remove field. (libpng/fixed): Remove variable. --- gnu/packages/image.scm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 54b7dd6e22..c545f026ad 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -65,7 +65,6 @@ (define-public libpng (package (name "libpng") - (replacement libpng/fixed) (version "1.6.25") (source (origin (method url-fetch) @@ -76,6 +75,7 @@ (string-append "ftp://ftp.simplesystems.org/pub/libpng/png/src" "/libpng15/libpng-" version ".tar.xz"))) + (patches (search-patches "libpng-CVE-2016-10087.patch")) (sha256 (base32 "04c8inn745hw25wz2dc5vll5n5d2gsndj01i4srwzgz8861qvzh9")))) (build-system gnu-build-system) @@ -90,18 +90,9 @@ library. It supports almost all PNG features and is extensible.") (license license:zlib) (home-page "http://www.libpng.org/pub/png/libpng.html"))) -(define libpng/fixed - (package - (inherit libpng) - (source - (origin - (inherit (package-source libpng)) - (patches (search-patches "libpng-CVE-2016-10087.patch")))))) - (define-public libpng-1.2 (package (inherit libpng) - (replacement #f) (version "1.2.57") (source (origin -- cgit v1.2.3 From 29705bc29f891919edf67af4c8368af4c84bf9e0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:53:31 -0500 Subject: gnu: libtiff: Incorporate grafted patches. * gnu/packages/image.scm (libtiff)[replacement]: Remove field. [source]: Add patches from libtiff/fixed. (libtiff/fixed): Remove variable. --- gnu/packages/image.scm | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index c545f026ad..613d344b97 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -250,12 +250,27 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") - (replacement libtiff/fixed) (version "4.0.7") (source (origin (method url-fetch) (uri (string-append "ftp://download.osgeo.org/libtiff/tiff-" version ".tar.gz")) + (patches (search-patches "libtiff-heap-overflow-tiffcp.patch" + "libtiff-null-dereference.patch" + "libtiff-heap-overflow-tif-dirread.patch" + "libtiff-heap-overflow-pixarlog-luv.patch" + "libtiff-divide-by-zero.patch" + "libtiff-divide-by-zero-ojpeg.patch" + "libtiff-tiffcp-underflow.patch" + "libtiff-invalid-read.patch" + "libtiff-CVE-2016-10092.patch" + "libtiff-heap-overflow-tiffcrop.patch" + "libtiff-divide-by-zero-tiffcrop.patch" + "libtiff-CVE-2016-10093.patch" + "libtiff-divide-by-zero-tiffcp.patch" + "libtiff-assertion-failure.patch" + "libtiff-CVE-2016-10094.patch" + "libtiff-CVE-2017-5225.patch")) (sha256 (base32 "06ghqhr4db1ssq0acyyz49gr8k41gzw6pqb6mbn5r7jqp77s4hwz")))) @@ -283,29 +298,6 @@ collection of tools for doing simple manipulations of TIFF images.") "See COPYRIGHT in the distribution.")) (home-page "http://www.simplesystems.org/libtiff/"))) -(define libtiff/fixed - (package - (inherit libtiff) - (source - (origin - (inherit (package-source libtiff)) - (patches (search-patches "libtiff-heap-overflow-tiffcp.patch" - "libtiff-null-dereference.patch" - "libtiff-heap-overflow-tif-dirread.patch" - "libtiff-heap-overflow-pixarlog-luv.patch" - "libtiff-divide-by-zero.patch" - "libtiff-divide-by-zero-ojpeg.patch" - "libtiff-tiffcp-underflow.patch" - "libtiff-invalid-read.patch" - "libtiff-CVE-2016-10092.patch" - "libtiff-heap-overflow-tiffcrop.patch" - "libtiff-divide-by-zero-tiffcrop.patch" - "libtiff-CVE-2016-10093.patch" - "libtiff-divide-by-zero-tiffcp.patch" - "libtiff-assertion-failure.patch" - "libtiff-CVE-2016-10094.patch" - "libtiff-CVE-2017-5225.patch")))))) - (define-public libwmf (package (name "libwmf") -- cgit v1.2.3 From 66707558b61c69edb3b3ee7dbec28a75acf75cd3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:55:26 -0500 Subject: gnu: openjpeg: Incorporate grafted changes. * gnu/packages/image.scm (openjpeg)[replacement]: Remove field. [source]: Update to 2.1.2. Add patches 'openjpeg-CVE-2016-9850-CVE-2016-9851.patch' and 'openjpeg-CVE-2016-9572-CVE-2016-9573.patch'. (openjpeg-1)[replacement]: Remove field. (openjpeg-2.1.2): Remove variable. --- gnu/packages/image.scm | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 613d344b97..59113e3066 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -429,8 +429,7 @@ work.") (define-public openjpeg (package (name "openjpeg") - (replacement openjpeg-2.1.2) - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) @@ -440,9 +439,11 @@ work.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1anv0rjkbxw9kx91wvlfpb3dhppibda6kb1papny46bjzi3pzhl2")) + "19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc")) (patches (search-patches "openjpeg-CVE-2016-5157.patch" - "openjpeg-CVE-2016-7163.patch")))) + "openjpeg-CVE-2016-7163.patch" + "openjpeg-CVE-2016-9850-CVE-2016-9851.patch" + "openjpeg-CVE-2016-9572-CVE-2016-9573.patch")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. @@ -466,28 +467,9 @@ error-resilience, a Java-viewer for j2k-images, ...") (home-page "https://github.com/uclouvain/openjpeg") (license license:bsd-2))) -(define openjpeg-2.1.2 - (package - (inherit openjpeg) - (name "openjpeg") - (version "2.1.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/uclouvain/openjpeg/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc")) - (patches - (search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch" - "openjpeg-CVE-2016-9572-CVE-2016-9573.patch")))))) - (define-public openjpeg-1 (package (inherit openjpeg) (name "openjpeg") - (replacement #f) (version "1.5.2") (source (origin -- cgit v1.2.3 From 008649604296307682955d4c0da2525b606b7134 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 12:57:42 -0500 Subject: gnu: tcsh: Incorporate grafted patch. * gnu/packages/shells.scm (tcsh)[replacement]: Remove field. [source]: Add patch 'tcsh-fix-out-of-bounds-read.patch'. (tcsh/fixed): Remove variable. --- gnu/packages/shells.scm | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 4ed1f4696b..d4a7d8090f 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -217,7 +217,6 @@ written by Paul Haahr and Byron Rakitzis.") (define-public tcsh (package (name "tcsh") - (replacement tcsh/fixed) (version "6.18.01") (source (origin (method url-fetch) @@ -230,7 +229,8 @@ written by Paul Haahr and Byron Rakitzis.") (base32 "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q")) (patches (search-patches "tcsh-fix-autotest.patch" - "tcsh-do-not-define-BSDWAIT.patch")) + "tcsh-do-not-define-BSDWAIT.patch" + "tcsh-fix-out-of-bounds-read.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (inputs @@ -275,15 +275,6 @@ command-line editor, programmable word completion, spelling correction, a history mechanism, job control and a C-like syntax.") (license bsd-4))) -(define tcsh/fixed - (package - (inherit tcsh) - (name "tcsh") - (source (origin - (inherit (package-source tcsh)) - (patches (cons (search-patch "tcsh-fix-out-of-bounds-read.patch") - (origin-patches (package-source tcsh)))))))) - (define-public zsh (package (name "zsh") -- cgit v1.2.3 From 4158b1d1231b5c276022e0139a4050c174bd3997 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 13:06:32 -0500 Subject: gnu: lcms: Incorporate grafted patch. * gnu/packages/ghostscript.scm (lcms)[replacement]: Remove field. [source]: Add patch 'lcms-fix-out-of-bounds-read.patch'. (lcms/fixed): Remove variable. --- gnu/packages/ghostscript.scm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 7c217d903b..dcbed69e3e 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -39,12 +39,12 @@ (define-public lcms (package (name "lcms") - (replacement lcms/fixed) (version "2.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lcms/lcms/" version "/lcms2-" version ".tar.gz")) + (patches (search-patches "lcms-fix-out-of-bounds-read.patch")) (sha256 (base32 "1c8lgq8gfs3nyplvbx9k8wzfj6r2bqi3f611vb1m8z3476454wji")))) (build-system gnu-build-system) @@ -59,14 +59,6 @@ Consortium standard (ICC), approved as ISO 15076-1.") (license license:x11) (home-page "http://www.littlecms.com/"))) -(define lcms/fixed - (package - (inherit lcms) - (source - (origin - (inherit (package-source lcms)) - (patches (search-patches "lcms-fix-out-of-bounds-read.patch")))))) - (define-public libpaper (package (name "libpaper") -- cgit v1.2.3 From c134959b969303ae0c49a63399e6908c91eaa974 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 13:03:04 -0500 Subject: gnu: gd: Incorporate grafted changes. * gnu/packages/gd.scm (gd)[replacement]: Remove field. [source]: Update to 2.2.4. Remove patches 'gd-CVE-2016-7568.patch' and 'gd-CVE-2016-8670.patch'. [arguments]: New field. (gd-2.2.4): Remove variable. * gnu/packages/patches/gd-CVE-2016-7568.patch, gnu/packages/patches/gd-CVE-2016-8670.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 -- gnu/packages/gd.scm | 46 +++++++++-------------------- gnu/packages/patches/gd-CVE-2016-7568.patch | 44 --------------------------- gnu/packages/patches/gd-CVE-2016-8670.patch | 38 ------------------------ 4 files changed, 14 insertions(+), 116 deletions(-) delete mode 100644 gnu/packages/patches/gd-CVE-2016-7568.patch delete mode 100644 gnu/packages/patches/gd-CVE-2016-8670.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9d835a8250..19048561dd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -569,8 +569,6 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcj-arm-mode.patch \ - %D%/packages/patches/gd-CVE-2016-7568.patch \ - %D%/packages/patches/gd-CVE-2016-8670.patch \ %D%/packages/patches/gd-fix-chunk-size-on-boundaries.patch \ %D%/packages/patches/gd-fix-gd2-read-test.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 713f7ae91e..1c2be119b1 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -36,12 +36,11 @@ (define-public gd (package (name "gd") - (replacement gd-2.2.4) ;; Note: With libgd.org now pointing to github.com, genuine old ;; tarballs are no longer available. Notably, versions 2.0.x are ;; missing. - (version "2.2.3") + (version "2.2.4") (source (origin (method url-fetch) @@ -50,12 +49,21 @@ version "/libgd-" version ".tar.xz")) (sha256 (base32 - "0g3xz8jpz1pl2zzmssglrpa9nxiaa7rmcmvgpbrjz8k9cyynqsvl")) - (patches (search-patches "gd-CVE-2016-7568.patch" - "gd-CVE-2016-8670.patch" - "gd-fix-gd2-read-test.patch" + "1rp4v7n1dq38b92kl7gkvpvqqkw7nvdfnz6d5kip5klkxfki6zqk")) + (patches (search-patches "gd-fix-gd2-read-test.patch" "gd-fix-tests-on-i686.patch")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; This test is known to fail on i686-linux: + ;; https://github.com/libgd/libgd/issues/359 + ;; TODO Replace this substitution with an upstream bug fix. + (add-after 'unpack 'disable-failing-test + (lambda _ + (substitute* "tests/gdimagegrayscale/basic.c" + (("return gdNumFailures\\(\\)") + "return 0"))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -78,32 +86,6 @@ most common applications of GD involve website development.") "See COPYING file in the distribution.")) (properties '((cpe-name . "libgd"))))) -(define gd-2.2.4 - (package - (inherit gd) - (version "2.2.4") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/libgd/libgd/releases/download/" - "gd-" version "/libgd-" version ".tar.xz")) - (patches (search-patches "gd-fix-gd2-read-test.patch" - "gd-fix-tests-on-i686.patch")) - (sha256 - (base32 - "1rp4v7n1dq38b92kl7gkvpvqqkw7nvdfnz6d5kip5klkxfki6zqk")))) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; This test is known to fail on i686-linux: - ;; https://github.com/libgd/libgd/issues/359 - ;; TODO Replace this substitution with an upstream bug fix. - (add-after 'unpack 'disable-failing-test - (lambda _ - (substitute* "tests/gdimagegrayscale/basic.c" - (("return gdNumFailures\\(\\)") - "return 0"))))))))) - (define-public perl-gd (package (name "perl-gd") diff --git a/gnu/packages/patches/gd-CVE-2016-7568.patch b/gnu/packages/patches/gd-CVE-2016-7568.patch deleted file mode 100644 index 6a1a63296c..0000000000 --- a/gnu/packages/patches/gd-CVE-2016-7568.patch +++ /dev/null @@ -1,44 +0,0 @@ -Fix CVE-2016-7568 (integer overflow in gdImageWebpCtx()): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7568 - -Patch copied from upstream source repository: - -https://github.com/libgd/libgd/commit/2806adfdc27a94d333199345394d7c302952b95f - -From 2806adfdc27a94d333199345394d7c302952b95f Mon Sep 17 00:00:00 2001 -From: trylab -Date: Tue, 6 Sep 2016 18:35:32 +0800 -Subject: [PATCH] Fix integer overflow in gdImageWebpCtx - -Integer overflow can be happened in expression gdImageSX(im) * 4 * -gdImageSY(im). It could lead to heap buffer overflow in the following -code. This issue has been reported to the PHP Bug Tracking System. The -proof-of-concept file will be supplied some days later. This issue was -discovered by Ke Liu of Tencent's Xuanwu LAB. ---- - src/gd_webp.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gd_webp.c b/src/gd_webp.c -index 8eb4dee..9886399 100644 ---- a/src/gd_webp.c -+++ b/src/gd_webp.c -@@ -199,6 +199,14 @@ BGD_DECLARE(void) gdImageWebpCtx (gdImagePtr im, gdIOCtx * outfile, int quality) - quality = 80; - } - -+ if (overflow2(gdImageSX(im), 4)) { -+ return; -+ } -+ -+ if (overflow2(gdImageSX(im) * 4, gdImageSY(im))) { -+ return; -+ } -+ - argb = (uint8_t *)gdMalloc(gdImageSX(im) * 4 * gdImageSY(im)); - if (!argb) { - return; --- -2.10.0 - diff --git a/gnu/packages/patches/gd-CVE-2016-8670.patch b/gnu/packages/patches/gd-CVE-2016-8670.patch deleted file mode 100644 index 39ee99ac31..0000000000 --- a/gnu/packages/patches/gd-CVE-2016-8670.patch +++ /dev/null @@ -1,38 +0,0 @@ -Fix CVE-2016-8670 (buffer overflow in dynamicGetbuf()): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8670 -http://seclists.org/oss-sec/2016/q4/138 - -Patch copied from upstream source repository: - -https://github.com/libgd/libgd/commit/53110871935244816bbb9d131da0bccff734bfe9 - -From 53110871935244816bbb9d131da0bccff734bfe9 Mon Sep 17 00:00:00 2001 -From: "Christoph M. Becker" -Date: Wed, 12 Oct 2016 11:15:32 +0200 -Subject: [PATCH] Avoid potentially dangerous signed to unsigned conversion - -We make sure to never pass a negative `rlen` as size to memcpy(). See -also . - -Patch provided by Emmanuel Law. ---- - src/gd_io_dp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gd_io_dp.c b/src/gd_io_dp.c -index 135eda3..228bfa5 100644 ---- a/src/gd_io_dp.c -+++ b/src/gd_io_dp.c -@@ -276,7 +276,7 @@ static int dynamicGetbuf(gdIOCtxPtr ctx, void *buf, int len) - if(remain >= len) { - rlen = len; - } else { -- if(remain == 0) { -+ if(remain <= 0) { - /* 2.0.34: EOF is incorrect. We use 0 for - * errors and EOF, just like fileGetbuf, - * which is a simple fread() wrapper. --- -2.10.1 - -- cgit v1.2.3 From 9b9e147117e6009451d7acc1f8f156e041263e32 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 23:42:11 -0500 Subject: gnu: gnutls: Update to 3.5.8. * gnu/packages/tls.scm (gnutls): Update to 3.5.8. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 4a81250339..f02a072a24 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -140,7 +140,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.7") + (version "3.5.8") (source (origin (method url-fetch) (uri @@ -151,7 +151,7 @@ living in the same process.") "/gnutls-" version ".tar.xz")) (sha256 (base32 - "06l6sza1wk7cr910i70jbc68labklkd229kiiniwys32kq8zrjv0")))) + "1zyl2z63s68hx1dpxqx0lykmlf3rwrzlrf44sq3h7dvjmr1z55qf")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 0363474a0b57067000ddd4b131cb31d7c70223fb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 26 Jan 2017 11:27:11 +0100 Subject: build-system/gnu: 'strip' phase now skips symlinks. This avoids a situation where the "debug" output would contain separate (and different) .debug files for "libfoo.so" and "libfoo.so.0.0", even though "libfoo.so" is actually a symlink to "libfoo.so.0.0". * guix/build/gnu-build-system.scm (strip): Remove 'file-exists?' call in 'for-each' lambda. Pass a predicate to 'find-files' to restrict the result to regular files. --- guix/build/gnu-build-system.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 59394c2cac..a19d2a3e96 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -389,8 +389,7 @@ makefiles." debug-output objcopy-command)) (for-each (lambda (file) - (and (file-exists? file) ;discard dangling symlinks - (or (elf-file? file) (ar-file? file)) + (and (or (elf-file? file) (ar-file? file)) (or (not debug-output) (make-debug-file file)) ;; Ensure libraries are writable. @@ -399,7 +398,12 @@ makefiles." (append strip-flags (list file)))) (or (not debug-output) (add-debug-link file)))) - (find-files dir))) + (find-files dir + (lambda (file stat) + ;; Ignore symlinks such as: + ;; libfoo.so -> libfoo.so.0.0. + (eq? 'regular (stat:type stat))) + #:stat lstat))) (or (not strip-binaries?) (every strip-dir -- cgit v1.2.3 From 95e7be97282f136190d7007f34d355a9691a16fa Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 26 Jan 2017 21:58:37 +0100 Subject: utils: Add 'gzip-file?' and 'reset-gzip-timestamp'. * guix/build/utils.scm (%gzip-magic-bytes): New variable. (gzip-file?, reset-gzip-timestamp): New procedures. --- guix/build/utils.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index cf09326393..9e9ac90050 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -45,6 +45,8 @@ call-with-ascii-input-file elf-file? ar-file? + gzip-file? + reset-gzip-timestamp with-directory-excursion mkdir-p install-file @@ -195,6 +197,29 @@ with the bytes in HEADER, a bytevector." (define ar-file? (file-header-match %ar-magic-bytes)) +(define %gzip-magic-bytes + ;; Magic bytes of gzip file. Beware, it's a small header so there could be + ;; false positives. + #vu8(#x1f #x8b)) + +(define gzip-file? + (file-header-match %gzip-magic-bytes)) + +(define* (reset-gzip-timestamp file #:key (keep-mtime? #t)) + "If FILE is a gzip file, reset its embedded timestamp (as with 'gzip +--no-name') and return true. Otherwise return #f. When KEEP-MTIME? is true, +preserve FILE's modification time." + (let ((stat (stat file)) + (port (open file O_RDWR))) + (dynamic-wind + (const #t) + (lambda () + (and (= 4 (seek port 4 SEEK_SET)) + (put-bytevector port #vu8(0 0 0 0)))) + (lambda () + (close-port port) + (set-file-time file stat))))) + (define-syntax-rule (with-directory-excursion dir body ...) "Run BODY with DIR as the process's current directory." (let ((init (getcwd))) -- cgit v1.2.3 From 1d636d63193b66f67fbd0f10315cd61818f132c1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 26 Jan 2017 22:05:49 +0100 Subject: build-system/gnu: Add 'reset-gzip-timestamps' phase. * guix/build/gnu-build-system.scm (reset-gzip-timestamps): New procedure. (%standard-phases): Add it. --- guix/build/gnu-build-system.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index a19d2a3e96..39ed1e4d4a 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -482,6 +482,23 @@ and 'man/'. This phase moves directories to the right place if needed." (for-each validate-output directories))) #t) +(define* (reset-gzip-timestamps #:key outputs #:allow-other-keys) + "Reset embedded timestamps in gzip files found in OUTPUTS." + (define (process-directory directory) + (let ((files (find-files directory + (lambda (file stat) + (and (eq? 'regular (stat:type stat)) + (or (string-suffix? ".gz" file) + (string-suffix? ".tgz" file)) + (gzip-file? file))) + #:stat lstat))) + (for-each reset-gzip-timestamp files))) + + (match outputs + (((names . directories) ...) + (for-each process-directory directories))) + #t) + (define* (compress-documentation #:key outputs (compress-documentation? #t) (documentation-compressor "gzip") @@ -604,6 +621,7 @@ which cannot be found~%" validate-documentation-location delete-info-dir-file patch-dot-desktop-files + reset-gzip-timestamps compress-documentation))) -- cgit v1.2.3 From 14551e073f96d1d3add3eed3036f9eee6371a508 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 14:59:16 +0100 Subject: gnu: pkg-config: Update to 0.29.1. * gnu/packages/pkg-config.scm (%pkg-config): Update to 0.29.1. [home-page]: Use HTTPS. --- gnu/packages/pkg-config.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm index d7cc454e03..01069d27a5 100644 --- a/gnu/packages/pkg-config.scm +++ b/gnu/packages/pkg-config.scm @@ -30,7 +30,7 @@ (define-public %pkg-config (package (name "pkg-config") - (version "0.29") + (version "0.29.1") (source (origin (method url-fetch) (uri (list @@ -46,14 +46,14 @@ version ".tar.gz"))) (sha256 (base32 - "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68")))) + "00dh1jn8rbppmgbhhgqhmbh3c58b0gccy39rsjdlcma50sg3rd5y")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-internal-glib"))) (native-search-paths (list (search-path-specification (variable "PKG_CONFIG_PATH") (files '("lib/pkgconfig" "lib64/pkgconfig" "share/pkgconfig"))))) - (home-page "http://www.freedesktop.org/wiki/Software/pkg-config") + (home-page "https://www.freedesktop.org/wiki/Software/pkg-config") (license gpl2+) (synopsis "Helper tool used when compiling applications and libraries") (description -- cgit v1.2.3 From 5a64a791317d98171435eff541a835ab0d3f498c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 16:28:03 +0100 Subject: utils: Add helper method to make files writable. * gnu/build/activation.scm (make-file-writable): Move this to ... * guix/build/utils.scm (make-file-writable): ... here. Export it. * guix/build/gnu-build-system.scm (strip): Use it. --- gnu/build/activation.scm | 5 ----- guix/build/gnu-build-system.scm | 6 ++++-- guix/build/utils.scm | 6 ++++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 1b31dc1538..756a6872bb 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -78,11 +78,6 @@ (define (dot-or-dot-dot? file) (member file '("." ".."))) -(define (make-file-writable file) - "Make FILE writable for its owner.." - (let ((stat (lstat file))) ;XXX: symlinks - (chmod file (logior #o600 (stat:perms stat))))) - (define* (copy-account-skeletons home #:optional (directory %skeleton-directory)) "Copy the account skeletons from DIRECTORY to HOME." diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 39ed1e4d4a..1786e2e3c9 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -392,8 +392,10 @@ makefiles." (and (or (elf-file? file) (ar-file? file)) (or (not debug-output) (make-debug-file file)) - ;; Ensure libraries are writable. - (chmod file #o755) + + ;; Ensure the file is writable. + (begin (make-file-writable file) #t) + (zero? (apply system* strip-command (append strip-flags (list file)))) (or (not debug-output) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 9e9ac90050..e8efb0653a 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -50,6 +50,7 @@ with-directory-excursion mkdir-p install-file + make-file-writable copy-recursively delete-file-recursively file-name-predicate @@ -262,6 +263,11 @@ name." (mkdir-p directory) (copy-file file (string-append directory "/" (basename file)))) +(define (make-file-writable file) + "Make FILE writable for its owner." + (let ((stat (lstat file))) ;XXX: symlinks + (chmod file (logior #o600 (stat:perms stat))))) + (define* (copy-recursively source destination #:key (log (current-output-port)) -- cgit v1.2.3 From ef00f3ebaee08fe245cad6a6e0b431f88a4b7103 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 Jan 2017 13:42:46 -0500 Subject: gnu: mupdf, cups-filters: Incorporated grafted changes. * gnu/packages/pdf.scm (mupdf)[replacement]: Remove field. [source]: Add 'mupdf-mujs-CVE-2016-10132.patch' and 'mupdf-mujs-CVE-2016-10133.patch'. (mupdf/fixed): Remove variable. * gnu/packages/cups.scm (cups-filters)[replacement]: Remove field. (mupdf/fixed-instead-of-mupdf),(cups-filters/fixed): Remove variables. --- gnu/packages/cups.scm | 8 -------- gnu/packages/pdf.scm | 17 +++-------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 39ab41c192..94f8e91f17 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -52,7 +52,6 @@ (define-public cups-filters (package (name "cups-filters") - (replacement cups-filters/fixed) (version "1.13.1") (source(origin (method url-fetch) @@ -135,13 +134,6 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") license:lgpl2.0+ license:expat)))) -(define mupdf/fixed-instead-of-mupdf - (package-input-rewriting `((,mupdf . ,(@@ (gnu packages pdf) mupdf/fixed))))) - -;;; Fix CVE-2016-10132 and CVE-2016-10133. See mupdf/fixed for more information. -(define cups-filters/fixed - (mupdf/fixed-instead-of-mupdf cups-filters)) - ;; CUPS on non-MacOS systems requires cups-filters. Since cups-filters also ;; depends on CUPS libraries and binaries, cups-minimal has been added to ;; satisfy this dependency. diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 2ea48e5999..d449b72eef 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -481,7 +481,6 @@ extracting content or merging files.") (define-public mupdf (package (name "mupdf") - (replacement mupdf/fixed) (version "1.10a") (source (origin @@ -491,7 +490,9 @@ extracting content or merging files.") (sha256 (base32 "0dm8wcs8i29aibzkqkrn8kcnk4q0kd1v66pg48h5c3qqp4v1zk5a")) - (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch")) + (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch" + "mupdf-mujs-CVE-2016-10132.patch" + "mupdf-mujs-CVE-2016-10133.patch")) (modules '((guix build utils))) (snippet ;; Delete all the bundled libraries except for mujs, which is @@ -540,18 +541,6 @@ line tools for batch rendering (pdfdraw), rewriting files (pdfclean), and examining the file structure (pdfshow).") (license license:agpl3+))) -(define mupdf/fixed - (package - (inherit mupdf) - (source - (origin - (inherit (package-source mupdf)) - (patches - (append - (origin-patches (package-source mupdf)) - (search-patches "mupdf-mujs-CVE-2016-10132.patch" - "mupdf-mujs-CVE-2016-10133.patch"))))))) - (define-public qpdf (package (name "qpdf") -- cgit v1.2.3 From 82a7a8c6671cb50a7886983af0c2d58d1cf62bc9 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Wed, 18 Jan 2017 20:48:27 +0200 Subject: gnu: coreutils: Fix cross-compilation. * gnu/packages/patches/coreutils-fix-cross-compilation.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (coreutils)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/base.scm | 3 ++- .../patches/coreutils-fix-cross-compilation.patch | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/coreutils-fix-cross-compilation.patch diff --git a/gnu/local.mk b/gnu/local.mk index 19048561dd..8c915741bc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -510,6 +510,7 @@ dist_patch_DATA = \ %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/coreutils-fix-cross-compilation.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ %D%/packages/patches/cracklib-CVE-2016-6318.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f6946f3c9e..703274d0cd 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -291,7 +291,8 @@ used to apply commands with arbitrarily long arguments.") version ".tar.xz")) (sha256 (base32 - "13lspazc7xkviy93qz7ks9jv4sldvgmwpq36ghrbrqpq93br8phm")))) + "13lspazc7xkviy93qz7ks9jv4sldvgmwpq36ghrbrqpq93br8phm")) + (patches (search-patches "coreutils-fix-cross-compilation.patch")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! diff --git a/gnu/packages/patches/coreutils-fix-cross-compilation.patch b/gnu/packages/patches/coreutils-fix-cross-compilation.patch new file mode 100644 index 0000000000..3f0d35c33e --- /dev/null +++ b/gnu/packages/patches/coreutils-fix-cross-compilation.patch @@ -0,0 +1,15 @@ +Coreutils fails to cross compile for other platforms because cu_install_program +is not being evaluated properly. This patch fixes it. +See +--- a/Makefile.in ++++ b/Makefile.in +@@ -5023,7 +5023,7 @@ pr = progs-readme + @CROSS_COMPILING_FALSE@cu_install_program = src/ginstall + + # Use the just-built 'ginstall', when not cross-compiling. +-@CROSS_COMPILING_TRUE@cu_install_program = @INSTALL_PROGRAM@ ++@CROSS_COMPILING_TRUE@cu_install_program := @INSTALL@ + info_TEXINFOS = doc/coreutils.texi + doc_coreutils_TEXINFOS = \ + doc/perm.texi \ + -- cgit v1.2.3 From d9b4cbc2a168ca3d248c5abf1f1d14c1808e6a20 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Jan 2017 09:50:07 +0100 Subject: gnu: bash: Do not retain dependency on Coreutils. Previously the "include" output of BASH-FINAL would refer to 'bootstrap-binaries' via 'Makefile.inc'. * gnu/packages/bash.scm (bash)[arguments]: In 'move-development-files' phase, remove absolute file name of 'install' from the 'INSTALL' variable in 'Makefile.inc'. * gnu/packages/commencement.scm (bash-final)[arguments]: Pass #:disallowed-references. --- gnu/packages/bash.scm | 9 ++++++++- gnu/packages/commencement.scm | 17 +++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 0923f5d55a..96ebe991e4 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015, 2017 Leo Famulari ;;; Copyright © 2016 Efraim Flashner @@ -171,6 +171,13 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." (rename-file (string-append out "/lib/pkgconfig") (string-append include "/lib/pkgconfig")) + + ;; Don't capture the absolute file name of 'install' to avoid + ;; retaining a dependency on Coreutils. + (substitute* (string-append (lib include) + "/Makefile.inc") + (("^INSTALL =.*") + "INSTALL = install -c\n")) #t)))))) (native-search-paths diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 94b4d440ca..675852fb57 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -800,12 +800,17 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (define bash-final ;; Link with `-static-libgcc' to make sure we don't retain a reference ;; to the bootstrap GCC. - ;; FIXME: This depends on 'bootstrap-binaries' via Makefile.in. - (package-with-bootstrap-guile - (package-with-explicit-inputs (static-libgcc-package bash) - %boot3-inputs - (current-source-location) - #:guile %bootstrap-guile))) + (let ((bash (package + (inherit bash) + (arguments + `(#:disallowed-references + ,(assoc-ref %boot3-inputs "coreutils&co") + ,@(package-arguments bash)))))) + (package-with-bootstrap-guile + (package-with-explicit-inputs (static-libgcc-package bash) + %boot3-inputs + (current-source-location) + #:guile %bootstrap-guile)))) (define %boot4-inputs ;; Now use the final Bash. -- cgit v1.2.3 From 737c572a2b7131fc69a07ac7639b173914d48363 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 29 Jan 2017 15:34:19 +0100 Subject: gnu: libdrm: Update to 2.4.75. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.75. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index b05debade7..2df9bd22f1 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -266,7 +266,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.74") + (version "2.4.75") (source (origin (method url-fetch) @@ -276,7 +276,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "02w4xy3gsp0556l9d395mlxhlzixqscxkk6was3lq7s0djkxa3fq")) + "0kq5hmck0gq7b29fr8jp94njc7jpkpbyws12s63w4b21xw750nid")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From fbb4755c8ad49d82437bfc1db86ca7957769d67b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 30 Jan 2017 14:59:22 +0100 Subject: gnu: libxkbcommon: Update to 0.7.1. * gnu/packages/xdisorg.scm (libxkbcommon): Update to 0.7.1. [source]: Use HTTPS. [home-page]: Ditto. --- gnu/packages/xdisorg.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 2df9bd22f1..a606f68b0e 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -131,14 +131,14 @@ avoiding password prompts when X11 forwarding has already been setup.") (define-public libxkbcommon (package (name "libxkbcommon") - (version "0.6.1") + (version "0.7.1") (source (origin (method url-fetch) - (uri (string-append "http://xkbcommon.org/download/" name "-" + (uri (string-append "https://xkbcommon.org/download/" name "-" version ".tar.xz")) (sha256 (base32 - "0q47xa1szlxwgvwmhv4b7xwawnykz1hnc431d84nj8dlh2q8f22v")))) + "12z6hih3n1r0asp2hzp9qsiwdfkfz46jwp06x8kprr0r5rfk0nds")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -155,7 +155,7 @@ avoiding password prompts when X11 forwarding has already been setup.") (string-append "--with-x-locale-root=" (assoc-ref %build-inputs "libx11") "/share/X11/locale")))) - (home-page "http://xkbcommon.org/") + (home-page "https://xkbcommon.org/") (synopsis "Library to handle keyboard descriptions") (description "Xkbcommon is a library to handle keyboard descriptions, including loading them from disk, parsing them and handling their -- cgit v1.2.3 From b23992afb2771ed9ef7f8f9ab2aaa100fa3031d0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 30 Jan 2017 15:31:01 +0100 Subject: gnu: wayland, weston: Update to 1.12.0. * gnu/packages/freedesktop.scm (wayland): Update to 1.12.0. (weston): Update to 1.12.0. [arguments]: Adjust to source file renames. --- gnu/packages/freedesktop.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 0c8f97f6be..e4bfa0609f 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -274,14 +274,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.11.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "1c0d5ivy9n44hykvw2ggrvqrnn7naw3wg11vbvgwzgi8g5gr4h4m")))) + "1c8sha5vm8w346wcbvgnjihisxfyvrr3qlbmfb5sp201p9f17d6n")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) (native-inputs @@ -331,7 +331,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public weston (package (name "weston") - (version "1.11.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +339,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "weston-" version ".tar.xz")) (sha256 (base32 - "09biddxw3ar797kxf9mywjkb2iwky6my39gpp51ni846y7lqdq05")))) + "0cshmw4ql4cr36v90bbi4qi6plvb6b9dbpnc3w9m17rv5siw4ymc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -372,9 +372,11 @@ applications, X servers (rootless or fullscreen) or other display servers.") ;; Use elogind instead of systemd (substitute* "configure" (("libsystemd-login >= 198") "libelogind")) - (substitute* '("src/launcher-logind.c" "src/weston-launch.c") + (substitute* '("libweston/launcher-logind.c" + "libweston/weston-launch.c") (("#include ") - "#include ")))) + "#include ")) + #t)) (add-after 'configure 'patch-confdefs.h (lambda _ (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h"))) -- cgit v1.2.3 From b1b8e8f1b2d4e30da9e793535f23ac5cf6cfa574 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 1 Feb 2017 14:44:59 +0100 Subject: gnu: mesa: Update to 13.0.4. * gnu/packages/gl.scm (mesa): Update to 13.0.4. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index a3862f1ec3..7f97277541 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -197,7 +197,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "13.0.3") + (version "13.0.4") (source (origin (method url-fetch) @@ -205,7 +205,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz")) (sha256 (base32 - "03m4gc6qc50lb0ic06f83r3yl0x4lmj2zjq3sl60vl3nq7jqpanr")) + "09p740qvmf4vqnpgxxlizk0dhdhj6i519qsbbrc8hpxxyzl7qpd9")) (patches (search-patches "mesa-wayland-egl-symbols-check-mips.patch")))) (build-system gnu-build-system) -- cgit v1.2.3 From b097a3387ea78797104f97eef445f5da6278c922 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 1 Feb 2017 14:45:22 +0100 Subject: gnu: xkeyboard-config: Update to 2.20. * gnu/packages/xorg.scm (xkeyboard-config): Update to 2.20. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index bb3182f5ab..35a3b06297 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3722,7 +3722,7 @@ extension to the X11 protocol. It includes: (define-public xkeyboard-config (package (name "xkeyboard-config") - (version "2.18") + (version "2.20") (source (origin (method url-fetch) @@ -3732,7 +3732,7 @@ extension to the X11 protocol. It includes: ".tar.bz2")) (sha256 (base32 - "1l6x2w357ja8vm94ns79s7yj9a5dlr01r9dxrjvzwncadiyr27f4")))) + "0d619g4r0w1f6q5qmaqjnsc0956gi02fqgpisqffzqy4acjwggyi")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From e83ef684fc1b490cd54612339a909203d5b94fa4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 2 Feb 2017 10:48:53 -0500 Subject: gnu: libevent-2.0: Include CVE IDs in patches. * gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch, gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch, gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch: Rename to ... * gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch, gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch, gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch: ... new files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/libevent.scm (libevent-2.0)[sources]: Likewise. --- gnu/local.mk | 6 ++-- gnu/packages/libevent.scm | 6 ++-- .../patches/libevent-2.0-CVE-2016-10195.patch | 41 +++++++++++++++++++++ .../patches/libevent-2.0-CVE-2016-10196.patch | 41 +++++++++++++++++++++ .../patches/libevent-2.0-CVE-2016-10197.patch | 39 ++++++++++++++++++++ ...event-2.0-evdns-fix-remote-stack-overread.patch | 42 ---------------------- ...t-2.0-evdns-fix-searching-empty-hostnames.patch | 40 --------------------- .../libevent-2.0-evutil-fix-buffer-overflow.patch | 42 ---------------------- 8 files changed, 127 insertions(+), 130 deletions(-) create mode 100644 gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch create mode 100644 gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch create mode 100644 gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch delete mode 100644 gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch delete mode 100644 gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch delete mode 100644 gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch diff --git a/gnu/local.mk b/gnu/local.mk index e1b4780147..ad3be4b135 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -668,9 +668,9 @@ dist_patch_DATA = \ %D%/packages/patches/libdrm-symbol-check.patch \ %D%/packages/patches/libepoxy-gl-null-checks.patch \ %D%/packages/patches/libevent-dns-tests.patch \ - %D%/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch \ - %D%/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch \ - %D%/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch \ + %D%/packages/patches/libevent-2.0-CVE-2016-10195.patch \ + %D%/packages/patches/libevent-2.0-CVE-2016-10196.patch \ + %D%/packages/patches/libevent-2.0-CVE-2016-10197.patch \ %D%/packages/patches/libevent-2.1-dns-tests.patch \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libextractor-ffmpeg-3.patch \ diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index bef09f9538..f26ce63386 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -80,9 +80,9 @@ loop.") "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki")) (patches (search-patches "libevent-dns-tests.patch" - "libevent-2.0-evdns-fix-remote-stack-overread.patch" - "libevent-2.0-evutil-fix-buffer-overflow.patch" - "libevent-2.0-evdns-fix-searching-empty-hostnames.patch")))))) + "libevent-2.0-CVE-2016-10195.patch" + "libevent-2.0-CVE-2016-10196.patch" + "libevent-2.0-CVE-2016-10197.patch")))))) (define-public libev (package diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch new file mode 100644 index 0000000000..bffe2c454c --- /dev/null +++ b/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch @@ -0,0 +1,41 @@ +Fix CVE-2016-10195 (buffer overread in libevent's DNS code): + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10195 +https://github.com/libevent/libevent/issues/317 + +Patch copied from upstream source repository: + +https://github.com/libevent/libevent/commit/96f64a022014a208105ead6c8a7066018449d86d + +From 3c570970516f48da35f42fef98276531fcc0abaa Mon Sep 17 00:00:00 2001 +From: Azat Khuzhin +Date: Mon, 1 Feb 2016 17:32:09 +0300 +Subject: [PATCH] evdns: name_parse(): fix remote stack overread + +--- + evdns.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/evdns.c b/evdns.c +index 60b10485..137c24ea 100644 +--- a/evdns.c ++++ b/evdns.c +@@ -960,7 +960,6 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) { + + for (;;) { + u8 label_len; +- if (j >= length) return -1; + GET8(label_len); + if (!label_len) break; + if (label_len & 0xc0) { +@@ -981,6 +980,7 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) { + *cp++ = '.'; + } + if (cp + label_len >= end) return -1; ++ if (j + label_len > length) return -1; + memcpy(cp, packet + j, label_len); + cp += label_len; + j += label_len; +-- +2.11.0 + diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch new file mode 100644 index 0000000000..03f96e938b --- /dev/null +++ b/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch @@ -0,0 +1,41 @@ +Fix CVE-2016-10196 (buffer overflow in evutil): + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10196 +https://github.com/libevent/libevent/issues/318 + +Patch copied from upstream source repository: + +https://github.com/libevent/libevent/commit/329acc18a0768c21ba22522f01a5c7f46cacc4d5 + +From 28bdc2f3f62259d21ccaf7be2b60ef0a53e6f342 Mon Sep 17 00:00:00 2001 +From: Azat Khuzhin +Date: Sun, 31 Jan 2016 00:57:16 +0300 +Subject: [PATCH] evutil_parse_sockaddr_port(): fix buffer overflow + +--- + evutil.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/evutil.c b/evutil.c +index 33445170..e2dfe6e4 100644 +--- a/evutil.c ++++ b/evutil.c +@@ -1808,12 +1808,12 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int * + + cp = strchr(ip_as_string, ':'); + if (*ip_as_string == '[') { +- int len; ++ size_t len; + if (!(cp = strchr(ip_as_string, ']'))) { + return -1; + } +- len = (int) ( cp-(ip_as_string + 1) ); +- if (len > (int)sizeof(buf)-1) { ++ len = ( cp-(ip_as_string + 1) ); ++ if (len > sizeof(buf)-1) { + return -1; + } + memcpy(buf, ip_as_string+1, len); +-- +2.11.0 + diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch new file mode 100644 index 0000000000..c62a328627 --- /dev/null +++ b/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch @@ -0,0 +1,39 @@ +Fix CVE-2016-10197 (out of bounds read on empty hostnames in evdns): + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10197 +https://github.com/libevent/libevent/issues/332 + +Patch copied from upstream source repository: + +https://github.com/libevent/libevent/commit/ec65c42052d95d2c23d1d837136d1cf1d9ecef9e + +From a0305cec166a5bc89f1eb362510cc4cd25ecc0bc Mon Sep 17 00:00:00 2001 +From: Azat Khuzhin +Date: Fri, 25 Mar 2016 00:33:47 +0300 +Subject: [PATCH] evdns: fix searching empty hostnames + +--- + evdns.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/evdns.c b/evdns.c +index 137c24ea..6191c677 100644 +--- a/evdns.c ++++ b/evdns.c +@@ -3122,9 +3122,12 @@ search_set_from_hostname(struct evdns_base *base) { + static char * + search_make_new(const struct search_state *const state, int n, const char *const base_name) { + const size_t base_len = strlen(base_name); +- const char need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1; ++ char need_to_append_dot; + struct search_domain *dom; + ++ if (!base_len) return NULL; ++ need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1; ++ + for (dom = state->head; dom; dom = dom->next) { + if (!n--) { + /* this is the postfix we want */ +-- +2.11.0 + diff --git a/gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch b/gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch deleted file mode 100644 index f1907d53e2..0000000000 --- a/gnu/packages/patches/libevent-2.0-evdns-fix-remote-stack-overread.patch +++ /dev/null @@ -1,42 +0,0 @@ -Fix buffer overread in libevents DNS code. - -Upstream bug report: - -https://github.com/libevent/libevent/issues/317 - -Patch copied from upstream source repository: - -https://github.com/libevent/libevent/commit/96f64a022014a208105ead6c8a7066018449d86d - -From 3c570970516f48da35f42fef98276531fcc0abaa Mon Sep 17 00:00:00 2001 -From: Azat Khuzhin -Date: Mon, 1 Feb 2016 17:32:09 +0300 -Subject: [PATCH] evdns: name_parse(): fix remote stack overread - ---- - evdns.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/evdns.c b/evdns.c -index 60b10485..137c24ea 100644 ---- a/evdns.c -+++ b/evdns.c -@@ -960,7 +960,6 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) { - - for (;;) { - u8 label_len; -- if (j >= length) return -1; - GET8(label_len); - if (!label_len) break; - if (label_len & 0xc0) { -@@ -981,6 +980,7 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) { - *cp++ = '.'; - } - if (cp + label_len >= end) return -1; -+ if (j + label_len > length) return -1; - memcpy(cp, packet + j, label_len); - cp += label_len; - j += label_len; --- -2.11.0 - diff --git a/gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch b/gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch deleted file mode 100644 index c4ad0a1a4a..0000000000 --- a/gnu/packages/patches/libevent-2.0-evdns-fix-searching-empty-hostnames.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix OOB read on empty hostnames in evdns. - -Upstream bug report: - -https://github.com/libevent/libevent/issues/332 - -Patch copied from upstream source repository: - -https://github.com/libevent/libevent/commit/ec65c42052d95d2c23d1d837136d1cf1d9ecef9e - -From a0305cec166a5bc89f1eb362510cc4cd25ecc0bc Mon Sep 17 00:00:00 2001 -From: Azat Khuzhin -Date: Fri, 25 Mar 2016 00:33:47 +0300 -Subject: [PATCH] evdns: fix searching empty hostnames - ---- - evdns.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/evdns.c b/evdns.c -index 137c24ea..6191c677 100644 ---- a/evdns.c -+++ b/evdns.c -@@ -3122,9 +3122,12 @@ search_set_from_hostname(struct evdns_base *base) { - static char * - search_make_new(const struct search_state *const state, int n, const char *const base_name) { - const size_t base_len = strlen(base_name); -- const char need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1; -+ char need_to_append_dot; - struct search_domain *dom; - -+ if (!base_len) return NULL; -+ need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1; -+ - for (dom = state->head; dom; dom = dom->next) { - if (!n--) { - /* this is the postfix we want */ --- -2.11.0 - diff --git a/gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch b/gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch deleted file mode 100644 index 4d16a4b917..0000000000 --- a/gnu/packages/patches/libevent-2.0-evutil-fix-buffer-overflow.patch +++ /dev/null @@ -1,42 +0,0 @@ -Fix buffer overflow in evutil. - -Upstream bug report: - -https://github.com/libevent/libevent/issues/318 - -Patch copied from upstream source repository: - -https://github.com/libevent/libevent/commit/329acc18a0768c21ba22522f01a5c7f46cacc4d5 - -From 28bdc2f3f62259d21ccaf7be2b60ef0a53e6f342 Mon Sep 17 00:00:00 2001 -From: Azat Khuzhin -Date: Sun, 31 Jan 2016 00:57:16 +0300 -Subject: [PATCH] evutil_parse_sockaddr_port(): fix buffer overflow - ---- - evutil.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/evutil.c b/evutil.c -index 33445170..e2dfe6e4 100644 ---- a/evutil.c -+++ b/evutil.c -@@ -1808,12 +1808,12 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int * - - cp = strchr(ip_as_string, ':'); - if (*ip_as_string == '[') { -- int len; -+ size_t len; - if (!(cp = strchr(ip_as_string, ']'))) { - return -1; - } -- len = (int) ( cp-(ip_as_string + 1) ); -- if (len > (int)sizeof(buf)-1) { -+ len = ( cp-(ip_as_string + 1) ); -+ if (len > sizeof(buf)-1) { - return -1; - } - memcpy(buf, ip_as_string+1, len); --- -2.11.0 - -- cgit v1.2.3 From d6592d84ca754d65d821d2a22179da690054e58c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 4 Feb 2017 10:49:54 +0100 Subject: gnu: sed: Update to 4.4. * gnu/packages/base.scm (sed): Update to 4.4. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 703274d0cd..ad086f8976 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -118,14 +118,14 @@ including, for example, recursive directory searching.") (define-public sed (package (name "sed") - (version "4.3") + (version "4.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sed/sed-" version ".tar.xz")) (sha256 (base32 - "1anhdgah8h423hlmn9hwzxzr7hjbqjm6hxq3z1p7p7nf8640vhj7")))) + "0fv88bcnraixc8jvpacvxshi30p5x9m7yb8ns1hfv07hmb2ypmnb")))) (build-system gnu-build-system) (synopsis "Stream editor") (arguments -- cgit v1.2.3 From 0cd3e445776ab3138cf59637c2a9050cab574655 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 7 Feb 2017 17:01:23 +0100 Subject: gnu: grep: Update to 2.28. * gnu/packages/base.scm (grep): Update to 2.28. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index ad086f8976..931311a585 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -78,14 +78,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.27") + (version "2.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "1syadppgpxpfhpwhhqcsibrn131azypzps5aicx1qjh74d6w8k5d")) + "1181nsjzpxwy7fw1shfy9gaxqpzpk21kdgndhkxa5pxqxqilrb9v")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it -- cgit v1.2.3 From 242c09274588d6f747b666da5e693f0f526460eb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 7 Feb 2017 19:26:00 +0200 Subject: gnu: glibc: Update to 2.25. * gnu/packages/base.scm (glibc): Update to 2.25 --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 931311a585..a2efa32500 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -509,14 +509,14 @@ store.") (define-public glibc/linux (package (name "glibc") - (version "2.24") + (version "2.25") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")) + "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so -- cgit v1.2.3 From 7ca72ec44bf52d459f1fbd994037b792999fe0eb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 7 Feb 2017 19:40:46 +0200 Subject: gnu: glibc: Add version 2.24. * gnu/packages/base.scm (glibc-2.24): New variable. --- gnu/packages/base.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a2efa32500..62f105613e 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -772,6 +772,18 @@ GLIBC/HURD for a Hurd host" ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) +(define-public glibc-2.24 + (package + (inherit glibc) + (version "2.24") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" + version ".tar.xz")) + (sha256 + (base32 + "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")))))) + (define-public glibc-2.23 (package (inherit glibc) -- cgit v1.2.3 From 17c732295aef09e8e9b485ce38af60cb6cd357fb Mon Sep 17 00:00:00 2001 From: Carlos Sánchez de La Lama Date: Tue, 18 Oct 2016 18:07:29 +0200 Subject: gnu: bash-minimal: Assume getcwd works correctly when cross-compiling * gnu/packages/bash.scm (bash-minimal): Assume getcwd works correctly when cross compiling. Signed-off-by: Efraim Flashner --- gnu/packages/bash.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 96ebe991e4..d5e3549573 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -226,7 +226,8 @@ without modification.") "ac_cv_func_dlopen=no" ,@(if (%current-target-system) - '("bash_cv_job_control_missing=no") + '("bash_cv_job_control_missing=no" + "bash_cv_getcwd_malloc=yes") '()))) ((#:phases phases) `(modify-phases ,phases -- cgit v1.2.3 From e77fe95097145268249302bd5c1f73236ae0f155 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 9 Feb 2017 16:58:31 +0200 Subject: gnu: linux-libre-headers: Update to 4.4.47. * gnu/packages/linux.scm (linux-libre-headers): Update to 4.4.47. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e5615c0e5b..e6ac5121fb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Alex Kost @@ -131,13 +131,13 @@ defconfig. Return the appropiate make target if applicable, otherwise return (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.4.18") + (version "4.4.47") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0k8k17in7dkjd9d8zg3i8l1ax466dba6bxw28flxizzyq8znljps")))) + "00zdq7swhvzbbnnhzizq6m34q5k4fycpcp215bmkbxh1ic76v7bs")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments -- cgit v1.2.3 From 59e0bd7154205bdecf57064a4dfa995eaa6b80d1 Mon Sep 17 00:00:00 2001 From: David Craven Date: Tue, 10 Jan 2017 22:26:08 +0100 Subject: gnu: gnutls: Remove perl dependency. * gnu/packages/tls.scm (gnutls)[inputs]: Remove perl. --- gnu/packages/tls.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 84865a31cf..c004086b83 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -194,8 +194,7 @@ living in the same process.") ("pkg-config" ,pkg-config) ("which" ,which))) (inputs - `(("guile" ,guile-2.0) - ("perl" ,perl))) + `(("guile" ,guile-2.0))) (propagated-inputs ;; These are all in the 'Requires.private' field of gnutls.pc. `(("libtasn1" ,libtasn1) -- cgit v1.2.3 From f3a79f88e51d367c5e5668bfbf7fb433260b1fd6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 10 Feb 2017 16:16:17 +0100 Subject: gnu: grep: Update to 3.0. * gnu/packages/base.scm (grep): Update to 3.0. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 62f105613e..8dbec90a67 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -78,14 +78,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.28") + (version "3.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "1181nsjzpxwy7fw1shfy9gaxqpzpk21kdgndhkxa5pxqxqilrb9v")) + "1dcasjp3a578nrvzrcn38mpizb8w1q6mvfzhjmcqqgkf0nsivj72")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it -- cgit v1.2.3 From 955ba55c6bf3a22264b56274ec22cad1551c1ce6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 10 Feb 2017 17:38:59 +0100 Subject: gnu: avahi: Add dependency on libcap. * gnu/packages/avahi.scm (avahi)[inputs]: Add LIBCAP. --- gnu/packages/avahi.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index 5740ab2ff8..73e63ab0dc 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -25,6 +25,7 @@ #:use-module (gnu packages) #:use-module (gnu packages databases) #:use-module (gnu packages libdaemon) + #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages xml)) @@ -59,6 +60,7 @@ ("glib" ,glib) ("dbus" ,dbus) ("gdbm" ,gdbm) + ("libcap" ,libcap) ;to enable chroot support in avahi-daemon ("libdaemon" ,libdaemon))) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From 20c1b4b88d396b6261660e2fda03229094cce62d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 10 Feb 2017 17:44:31 +0100 Subject: gnu: bash: Remove graft for CVE-2017-5932. * gnu/packages/bash.scm (bash)[replacement]: Remove. (bash-minimal)[replacement]: Remove. (url-fetch/reset-patch-level, bash/fixed): Remove. --- gnu/packages/bash.scm | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index ec9f83519f..910da0b197 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -65,7 +65,7 @@ (4 "1cy8abf96hkrjhw921ndr0shlcnc52bg45rn6xri4v5clhq0l25d") (5 "0a8515kyk4zsgmvlqvlganjfr7pq0j6kzpr4d6xx02kpbdr4n7i2") (6 "1f24wgqngmj2mrj9yibwvc2zvlmn5xi53mnw777g3l40c4m2x3ka") - (7 "1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y") + (7 "1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y") ;CVE-2017-5932 (8 "1firw915mjm03hbbw9a70ch3cpgrgnvqjpllgdnn6csr8q04f546") (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") @@ -110,7 +110,6 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." (version "4.4")) (package (name "bash") - (replacement bash/fixed) (source (origin (method url-fetch) (uri (string-append @@ -204,7 +203,6 @@ without modification.") ;; A stripped-down Bash for non-interactive use. (package (inherit bash) (name "bash-minimal") - (replacement #f) ;not vulnerable to CVE-2017-5932 since it lacks completion (inputs '()) ; no readline, no curses ;; No "include" output because there's no support for loadable modules. @@ -260,43 +258,6 @@ without modification.") (delete-file-recursively (string-append out "/share")) #t)))))))))) -(define* (url-fetch/reset-patch-level url hash-algo hash - #:optional name - #:key (system (%current-system)) guile) - "Fetch the Bash patch from URL and reset its 'PATCHLEVEL' definition so it -can apply to a patch-level 0 Bash." - (mlet* %store-monad ((name -> (or name (basename url))) - (patch (url-fetch url hash-algo hash - (string-append name ".orig") - #:system system - #:guile guile))) - (gexp->derivation name - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - (copy-file #$patch #$output) - (substitute* #$output - (("PATCHLEVEL [0-6]+") - "PATCHLEVEL 0")))) - #:guile-for-build guile - #:system system))) - -(define bash/fixed ;CVE-2017-5932 (RCE with completion) - (package - (inherit bash) - (version "4.4.A") ;4.4.0 + patch #7 - (replacement #f) - (source - (origin - (inherit (package-source bash)) - (patches (cons (origin - (method url-fetch/reset-patch-level) - (uri (patch-url 7)) - (sha256 - (base32 - "1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y"))) - (origin-patches (package-source bash)))))))) - (define-public bash-completion (package (name "bash-completion") -- cgit v1.2.3 From e4f43bc517a5ccf181f23072da4544c6437d92ae Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 11 Feb 2017 22:45:38 +0800 Subject: gnu: lcms: Update to 2.8. * gnu/packages/ghostscript.scm (lcms): Update to 2.8. Signed-off-by: Marius Bakke --- gnu/packages/ghostscript.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index dcbed69e3e..4b8e62348c 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2013, 2015, 2016 Ludovic Courtès +;;; Copyright © 2017 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,14 +40,14 @@ (define-public lcms (package (name "lcms") - (version "2.6") + (version "2.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lcms/lcms/" version "/lcms2-" version ".tar.gz")) (patches (search-patches "lcms-fix-out-of-bounds-read.patch")) (sha256 (base32 - "1c8lgq8gfs3nyplvbx9k8wzfj6r2bqi3f611vb1m8z3476454wji")))) + "08pvl289g0mbznzx5l6ibhaldsgx41kwvdn2c974ga9fkli2pl36")))) (build-system gnu-build-system) (inputs `(("libjpeg-8" ,libjpeg-8) ("libtiff" ,libtiff) -- cgit v1.2.3 From ed7732bc625585e6ec51c6f60716c8a6a916082b Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 11 Feb 2017 22:58:19 +0800 Subject: gnu: lcms: Mention CVE-2016-10165. * gnu/packages/patches/lcms-fix-out-of-bounds-read.patch: Rename to ... * gnu/packages/patches/lcms-CVE-2016-10165.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust. * gnu/packages/ghostscript.scm (lcms)[source]: Use renamed patch. Signed-off-by: Marius Bakke --- gnu/local.mk | 3 +- gnu/packages/ghostscript.scm | 2 +- gnu/packages/patches/lcms-CVE-2016-10165.patch | 36 ++++++++++++++++++++++ .../patches/lcms-fix-out-of-bounds-read.patch | 34 -------------------- 4 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 gnu/packages/patches/lcms-CVE-2016-10165.patch delete mode 100644 gnu/packages/patches/lcms-fix-out-of-bounds-read.patch diff --git a/gnu/local.mk b/gnu/local.mk index 753c0ef053..af9dfff0f8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -9,6 +9,7 @@ # Copyright © 2016 Adonay "adfeno" Felipe Nogueira # Copyright © 2016, 2017 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft +# Copyright © 2016, 2017 Alex Vong # # This file is part of GNU Guix. # @@ -656,7 +657,7 @@ dist_patch_DATA = \ %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \ %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \ %D%/packages/patches/laby-make-install.patch \ - %D%/packages/patches/lcms-fix-out-of-bounds-read.patch \ + %D%/packages/patches/lcms-CVE-2016-10165.patch \ %D%/packages/patches/ldc-disable-tests.patch \ %D%/packages/patches/ldc-1.1.0-disable-dmd-tests.patch \ %D%/packages/patches/ldc-1.1.0-disable-phobos-tests.patch \ diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 4b8e62348c..826a2fc374 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -45,7 +45,7 @@ (method url-fetch) (uri (string-append "mirror://sourceforge/lcms/lcms/" version "/lcms2-" version ".tar.gz")) - (patches (search-patches "lcms-fix-out-of-bounds-read.patch")) + (patches (search-patches "lcms-CVE-2016-10165.patch")) (sha256 (base32 "08pvl289g0mbznzx5l6ibhaldsgx41kwvdn2c974ga9fkli2pl36")))) (build-system gnu-build-system) diff --git a/gnu/packages/patches/lcms-CVE-2016-10165.patch b/gnu/packages/patches/lcms-CVE-2016-10165.patch new file mode 100644 index 0000000000..fa4d75c9ee --- /dev/null +++ b/gnu/packages/patches/lcms-CVE-2016-10165.patch @@ -0,0 +1,36 @@ +Fix CVE-2016-10165, an out-of-bounds heap read in Type_MLU_Read(): + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10165 +http://seclists.org/oss-sec/2016/q3/288 +https://bugzilla.redhat.com/show_bug.cgi?id=1367357 +https://security-tracker.debian.org/tracker/CVE-2016-10165 + +Patch copied from upstream source repository: + +https://github.com/mm2/Little-CMS/commit/5ca71a7bc18b6897ab21d815d15e218e204581e2 + +From 5ca71a7bc18b6897ab21d815d15e218e204581e2 Mon Sep 17 00:00:00 2001 +From: Marti +Date: Mon, 15 Aug 2016 23:31:39 +0200 +Subject: [PATCH] Added an extra check to MLU bounds + +Thanks to Ibrahim el-sayed for spotting the bug +--- + src/cmstypes.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/cmstypes.c b/src/cmstypes.c +index cb61860..c7328b9 100644 +--- a/src/cmstypes.c ++++ b/src/cmstypes.c +@@ -1460,6 +1460,7 @@ void *Type_MLU_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io, cmsU + + // Check for overflow + if (Offset < (SizeOfHeader + 8)) goto Error; ++ if ((Offset + Len) > SizeOfTag + 8) goto Error; + + // True begin of the string + BeginOfThisString = Offset - SizeOfHeader - 8; +-- +2.11.0 + diff --git a/gnu/packages/patches/lcms-fix-out-of-bounds-read.patch b/gnu/packages/patches/lcms-fix-out-of-bounds-read.patch deleted file mode 100644 index d9f7ac6a36..0000000000 --- a/gnu/packages/patches/lcms-fix-out-of-bounds-read.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix an out-of-bounds heap read in Type_MLU_Read(): - -http://seclists.org/oss-sec/2016/q3/288 -https://bugzilla.redhat.com/show_bug.cgi?id=1367357 - -Patch copied from upstream source repository: - -https://github.com/mm2/Little-CMS/commit/5ca71a7bc18b6897ab21d815d15e218e204581e2 - -From 5ca71a7bc18b6897ab21d815d15e218e204581e2 Mon Sep 17 00:00:00 2001 -From: Marti -Date: Mon, 15 Aug 2016 23:31:39 +0200 -Subject: [PATCH] Added an extra check to MLU bounds - -Thanks to Ibrahim el-sayed for spotting the bug ---- - src/cmstypes.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/cmstypes.c b/src/cmstypes.c -index cb61860..c7328b9 100644 ---- a/src/cmstypes.c -+++ b/src/cmstypes.c -@@ -1460,6 +1460,7 @@ void *Type_MLU_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io, cmsU - - // Check for overflow - if (Offset < (SizeOfHeader + 8)) goto Error; -+ if ((Offset + Len) > SizeOfTag + 8) goto Error; - - // True begin of the string - BeginOfThisString = Offset - SizeOfHeader - 8; --- -2.11.0 - -- cgit v1.2.3 From 8a68a353172a7b359ee8a909441b81fb6c68b955 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 13 Feb 2017 20:14:39 +0100 Subject: gnu: sqlite: Update to 3.17.0. * gnu/packages/databases.scm (sqlite): Update to 3.17.0. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 477f806734..f55b1b6d0e 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -665,7 +665,7 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.16.2") + (version "3.17.0") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -681,7 +681,7 @@ for example from a shell script.") numeric-version ".tar.gz"))) (sha256 (base32 - "059n4s9qd35qpbd4g29y9ay99a6f68ad7k65g430rxb6jcz0rk35")))) + "0k472gq0p706jq4529p60znvw02hdf172qxgbdv59q0n7anqbr54")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments -- cgit v1.2.3 From b5efd14a9add1bcb4a44fa5b9c1b47706f3df9da Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Feb 2017 00:08:42 +0100 Subject: gnu: guile: Update to 2.0.14. * gnu/packages/guile.scm (guile-2.0): Update to 2.0.14 [source]: Remove 'patches'. * gnu/packages/patches/guile-repl-server-test.patch: Remove. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 - gnu/packages/guile.scm | 5 +-- gnu/packages/patches/guile-repl-server-test.patch | 48 ----------------------- 3 files changed, 2 insertions(+), 52 deletions(-) delete mode 100644 gnu/packages/patches/guile-repl-server-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index af9dfff0f8..2c513dee5c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -612,7 +612,6 @@ dist_patch_DATA = \ %D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-relocatable.patch \ - %D%/packages/patches/guile-repl-server-test.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index a9b3fdfcda..98498ae087 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -134,15 +134,14 @@ without requiring the source code to be rewritten.") (define-public guile-2.0 (package (name "guile") - (version "2.0.13") + (version "2.0.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")) - (patches (search-patches "guile-repl-server-test.patch")))) + "10lxc6l5alf3lzbs3ihnbfy6dfcrsyf8667wa57f26vf4mk2ai78")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("libffi" ,libffi) diff --git a/gnu/packages/patches/guile-repl-server-test.patch b/gnu/packages/patches/guile-repl-server-test.patch deleted file mode 100644 index 81e724ecc4..0000000000 --- a/gnu/packages/patches/guile-repl-server-test.patch +++ /dev/null @@ -1,48 +0,0 @@ -commit 8d6209ea56241bb1890c142539927c9ef3fb5a13 -Author: Ludovic Courtès -Date: Fri Nov 4 22:44:32 2016 +0100 - - tests: Throw 'unresolved when the REPL server is too slow. - -commit 2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4 -Author: Ludovic Courtès -Date: Fri Nov 4 22:45:51 2016 +0100 - - tests: Avoid race condition in REPL server test. - -index ca389ba..4b5ec0c 100644 ---- a/test-suite/tests/00-repl-server.test -+++ b/test-suite/tests/00-repl-server.test -@@ -61,10 +61,11 @@ socket connected to that server." - (lambda () - (connect client-socket sockaddr)) - (lambda args -- (when (and (memv (system-error-errno args) -- (list ENOENT ECONNREFUSED)) -- (< tries 3)) -- (sleep 1) -+ (when (memv (system-error-errno args) -+ (list ENOENT ECONNREFUSED)) -+ (when (> tries 30) -+ (throw 'unresolved)) -+ (usleep 100) - (loop (+ tries 1)))))) - - (proc client-socket)) -@@ -104,8 +105,14 @@ reached." - "scheme@(repl-server)> $1 = 42\n" - (with-repl-server socket - (read-until-prompt socket %last-line-before-prompt) -- (display "(+ 40 2)\n(quit)\n" socket) -- (read-string socket))) -+ -+ ;; Wait until 'repl-reader' in boot-9 has written the prompt. -+ ;; Otherwise, if we write too quickly, 'repl-reader' checks for -+ ;; 'char-ready?' and doesn't print the prompt. -+ (match (select (list socket) '() (list socket) 3) -+ (((_) () ()) -+ (display "(+ 40 2)\n(quit)\n" socket) -+ (read-string socket))))) - - (pass-if "HTTP inter-protocol attack" ;CVE-2016-8606 - (with-repl-server socket -- cgit v1.2.3 From 0172d5a12ec2efd57a8e05201ae83dc02a2b9d31 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 15 Feb 2017 22:06:13 -0500 Subject: gnu: util-linux: Update to 2.29.1. * gnu/packages/linux.scm (util-linux): Update to 2.29.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 95e8a0a151..0460846c6e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -469,7 +469,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.28.2") + (version "2.29.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -477,7 +477,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "1kgh16j3ywzf5gdz4vq6v3dyc5qsi377p11clj9xxgi0dwa3g7dq")) + "0kzmhb2swiqk402jp0y2jsx53l42d7z4xz3bzbn2zv1lp400dr0c")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From 96aad36f9f0f328756753964f2769bb47bf7146a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 16 Feb 2017 13:48:57 -0500 Subject: gnu: dbus: Update to 1.10.16. * gnu/packages/glib.scm (dbus): Update to 1.10.16. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 9dd46d60b1..1a794db253 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -67,7 +67,7 @@ (define dbus (package (name "dbus") - (version "1.10.14") + (version "1.10.16") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +75,7 @@ version ".tar.gz")) (sha256 (base32 - "10x0wvv2ly4lyyfd42k4xw0ar5qdbi9cksw3l5fcwf1y6mq8y8r3")) + "121kqkjsd3vgf8vca8364xl44qa5086h7qy5zs5f1l78ldpbmc57")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From c5481600bbc27111f154e22c37ebc0824a575b26 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 17 Feb 2017 07:10:27 +0100 Subject: gnu: gperf: Update to 3.1 * gnu/packages/gperf.scm (gperf): Update to 3.1 --- gnu/packages/gperf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gperf.scm b/gnu/packages/gperf.scm index 9d9aaba3ce..5e55f8d86f 100644 --- a/gnu/packages/gperf.scm +++ b/gnu/packages/gperf.scm @@ -25,7 +25,7 @@ (define-public gperf (package (name "gperf") - (version "3.0.4") + (version "3.1") (source (origin (method url-fetch) @@ -33,7 +33,7 @@ version ".tar.gz")) (sha256 (base32 - "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn")))) + "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq")))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f)) (home-page "http://www.gnu.org/software/gperf/") -- cgit v1.2.3 From ac16cf3ece815d02c708cc00da958cf52e158ba6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 Jan 2017 11:28:28 +0200 Subject: hydra: Add "aarch64-linux-gnu" as a cross-compilation target. * build-aux/hydra/gnu-system.scm (%cross-targets): Add "aarch64-linux-gnu". --- build-aux/hydra/gnu-system.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 17c224ea4e..53fa637f14 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -123,6 +123,7 @@ SYSTEM." '("mips64el-linux-gnu" "mips64el-linux-gnuabi64" "arm-linux-gnueabihf" + "aarch64-linux-gnu" "powerpc-linux-gnu" "i586-pc-gnu" ;aka. GNU/Hurd "i686-w64-mingw32")) -- cgit v1.2.3 From b05fa64fcf262fc6f3c936f237e88f850d9cabe1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 3 Feb 2017 16:24:34 +0200 Subject: gnu: %static-inputs: Use 'grep' without custom phase. This reverts commit 1063d325ea76aa2b00dfcd3d436b16e412103df1 for during creation of the bootstrap-binaries. * gnu/packages/make-bootstrap.scm (%static-inputs): Use a custom 'grep' without the absolute path name in fgrep/egrep. --- gnu/packages/make-bootstrap.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index d2a559c084..5cc2ac51d9 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -206,7 +207,17 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ("patch" ,patch) ("coreutils" ,coreutils) ("sed" ,sed) - ("grep" ,grep) + ;; We don't want to retain a reference to /gnu/store in the + ;; bootstrap versions of egrep/fgrep, so we remove the custom + ;; phase added since grep@2.25. The effect is 'egrep' and + ;; 'fgrep' look for 'grep' in $PATH. + ("grep" ,(package + (inherit grep) + (arguments + (substitute-keyword-arguments (package-arguments grep) + ((#:phases phases) + `(modify-phases ,phases + (delete 'fix-egrep-and-fgrep))))))) ("gawk" ,gawk))) ("bash" ,static-bash)))) -- cgit v1.2.3 From 8f8f250bdca917b3ce38aa0902f01b19081859a4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 17 Feb 2017 12:30:13 +0200 Subject: gnu: glibc-bootstrap-system.patch: Update for glibc-2.25. * gnu/packages/patches/glibc-bootstrap-system.patch: Revert a change from glibc-2.25 which would require the bootstrap-glibc to require the linux-kernel-headers. --- gnu/packages/patches/glibc-bootstrap-system.patch | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch b/gnu/packages/patches/glibc-bootstrap-system.patch index 7208cce3f4..6d09efed2c 100644 --- a/gnu/packages/patches/glibc-bootstrap-system.patch +++ b/gnu/packages/patches/glibc-bootstrap-system.patch @@ -3,6 +3,10 @@ and popen(3) need to be tweaked to use the right shell. For the bootstrap glibc, we just use whatever `sh' can be found in $PATH. The final glibc instead uses the hard-coded absolute file name of `bash'. +The second part that touches fcntl-linux.h reverts a change from glibc-2.25 +which would require the statically compiled glibc used in bootstrapping to +depend on the linux kernel headers. + --- a/sysdeps/posix/system.c +++ b/sysdeps/posix/system.c @@ -134,7 +134,7 @@ do_system (const char *line) @@ -26,3 +30,23 @@ instead uses the hard-coded absolute file name of `bash'. _IO__exit (127); } _IO_close (child_end); + +--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h ++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +@@ -318,7 +318,15 @@ struct f_owner_ex + + + /* Flags for fallocate. */ ++# define FALLOC_FL_KEEP_SIZE 1 /* Don't extend size of file ++ even if offset + len is ++ greater than file size. */ ++# define FALLOC_FL_PUNCH_HOLE 2 /* Create a hole in the file. */ ++# define FALLOC_FL_COLLAPSE_RANGE 8 /* Remove a range of a file ++ without leaving a ++ hole. */ ++# define FALLOC_FL_ZERO_RANGE 16 /* Convert a range of a ++ file to zeros. */ +-# include + + + /* File handle structure. */ -- cgit v1.2.3 From 913059a12034a11e7f16374ae6e3291da5860d1b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2017 09:03:04 +0200 Subject: gnu: libpng: Update source urls. * gnu/packages/image.scm (libpng)[source]: Add 'history' location for older versions. --- gnu/packages/image.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 59113e3066..82d9091188 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -68,13 +68,14 @@ (version "1.6.25") (source (origin (method url-fetch) - - ;; Note: upstream removes older tarballs. (uri (list (string-append "mirror://sourceforge/libpng/libpng16/" version "/libpng-" version ".tar.xz") (string-append "ftp://ftp.simplesystems.org/pub/libpng/png/src" - "/libpng15/libpng-" version ".tar.xz"))) + "/libpng16/libpng-" version ".tar.xz") + (string-append + "ftp://ftp.simplesystems.org/pub/libpng/png/src/history" + "/libpng16/libpng-" version ".tar.xz"))) (patches (search-patches "libpng-CVE-2016-10087.patch")) (sha256 (base32 "04c8inn745hw25wz2dc5vll5n5d2gsndj01i4srwzgz8861qvzh9")))) @@ -97,11 +98,13 @@ library. It supports almost all PNG features and is extensible.") (source (origin (method url-fetch) - ;; Note: upstream removes older tarballs. (uri (list (string-append "mirror://sourceforge/libpng/libpng12/" version "/libpng-" version ".tar.xz") (string-append "ftp://ftp.simplesystems.org/pub/libpng/png/src" + "/libpng12/libpng-" version ".tar.xz") + (string-append + "ftp://ftp.simplesystems.org/pub/libpng/png/src/history" "/libpng12/libpng-" version ".tar.xz"))) (sha256 (base32 "1n2lrzjkm5jhfg2bs10q398lkwbbx742fi27zgdgx0x23zhj0ihg")))))) -- cgit v1.2.3 From 864738baaa7bb75c08647ccfc684736479e67f7f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2017 09:48:09 +0200 Subject: gnu: libpng: Update to 1.6.28. * gnu/packages/image.scm (libpng): Update to 1.6.28. [source]: Remove patch. * gnu/packages/patches/libpng-CVE-2016-10087.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/image.scm | 5 ++-- gnu/packages/patches/libpng-CVE-2016-10087.patch | 37 ------------------------ 3 files changed, 2 insertions(+), 41 deletions(-) delete mode 100644 gnu/packages/patches/libpng-CVE-2016-10087.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2c513dee5c..db15273eb6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -685,7 +685,6 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ - %D%/packages/patches/libpng-CVE-2016-10087.patch \ %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 82d9091188..cbdc1b39dc 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -65,7 +65,7 @@ (define-public libpng (package (name "libpng") - (version "1.6.25") + (version "1.6.28") (source (origin (method url-fetch) (uri (list (string-append "mirror://sourceforge/libpng/libpng16/" @@ -76,9 +76,8 @@ (string-append "ftp://ftp.simplesystems.org/pub/libpng/png/src/history" "/libpng16/libpng-" version ".tar.xz"))) - (patches (search-patches "libpng-CVE-2016-10087.patch")) (sha256 - (base32 "04c8inn745hw25wz2dc5vll5n5d2gsndj01i4srwzgz8861qvzh9")))) + (base32 "0ylgyx93hnk38haqrh8prd3ax5ngzwvjqw5cxw7p9nxmwsfyrlyq")))) (build-system gnu-build-system) ;; libpng.la says "-lz", so propagate it. diff --git a/gnu/packages/patches/libpng-CVE-2016-10087.patch b/gnu/packages/patches/libpng-CVE-2016-10087.patch deleted file mode 100644 index 8093b3e448..0000000000 --- a/gnu/packages/patches/libpng-CVE-2016-10087.patch +++ /dev/null @@ -1,37 +0,0 @@ -Fix CVE-2016-10087, a null pointer dereference in png_set_text_2(): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10087 -http://seclists.org/oss-sec/2016/q4/777 - -Patch adapted from upstream source repository: - -https://sourceforge.net/p/libpng/code/ci/812768d7a9c973452222d454634496b25ed415eb/ - -From 812768d7a9c973452222d454634496b25ed415eb Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson -Date: Thu, 29 Dec 2016 07:51:33 -0600 -Subject: [PATCH] [libpng16] Fixed a potential null pointer dereference in - png_set_text_2() - -(bug report and patch by Patrick Keshishian). ---- - ANNOUNCE | 2 ++ - CHANGES | 2 ++ - png.c | 1 + - 3 files changed, 5 insertions(+) - -diff --git a/png.c b/png.c -index 8afc28fc2..2e05de159 100644 ---- a/png.c -+++ b/png.c -@@ -477,6 +477,7 @@ png_free_data(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 mask, - png_free(png_ptr, info_ptr->text); - info_ptr->text = NULL; - info_ptr->num_text = 0; -+ info_ptr->max_text = 0; - } - } - #endif --- -2.11.0 - -- cgit v1.2.3 From e74796442095370259df714c7700b8412459e804 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2017 10:56:32 +0200 Subject: gnu: coreutils: Don't run tests in parallel. * gnu/packages/base.scm (coreutils)[arguments]: Add '#:parallel-tests? #f' to address a race contition in the test suite. --- gnu/packages/base.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8dbec90a67..8be9c88abb 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -313,6 +313,7 @@ used to apply commands with arbitrarily long arguments.") (outputs '("out" "debug")) (arguments `(#:parallel-build? #f ; help2man may be called too early + #:parallel-tests? #f ; race condition fixed after 8.26 #:phases (alist-cons-before 'build 'patch-shell-references (lambda* (#:key inputs #:allow-other-keys) -- cgit v1.2.3 From def971689052ebc3e0a68684328c28cac35b8596 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Feb 2017 12:35:12 +0200 Subject: gnu: bash: Update to patch level 12. * gnu/packages/bash.scm (%patch-series-4.4): Add patch 12. --- gnu/packages/bash.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 910da0b197..8d453bdaa1 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015, 2017 Leo Famulari -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,7 +69,8 @@ (8 "1firw915mjm03hbbw9a70ch3cpgrgnvqjpllgdnn6csr8q04f546") (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") - (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx"))) + (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx") + (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of -- cgit v1.2.3 From 653add37af10b0d5dbc20c8bc7ce30eec8cf4ae7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 13 Nov 2016 11:48:23 +0200 Subject: gnu: %bootstrap-coreutils&co: Patch egrep/fgrep to work regardless of $PATH. This is the bootstrap version of 1063d325ea76aa2b00dfcd3d436b16e412103df1 * gnu/packages/bootstrap.scm (%bootstrap-coreutils&co)[source]: Patch the absolute location of 'grep' when called from 'egrep' or 'fgrep'. --- gnu/packages/bootstrap.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 3be6e1246c..251d1fec7b 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -28,6 +28,7 @@ #:use-module ((guix store) #:select (add-to-store add-text-to-store)) #:use-module ((guix derivations) #:select (derivation)) #:use-module ((guix utils) #:select (gnu-triplet->nix-system)) + #:use-module ((guix build utils) #:select (elf-file?)) #:use-module (guix memoization) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -325,6 +326,13 @@ $out/bin/guile --version~%" (chmod "bin" #o755) (patch-shebang "bin/egrep" path) (patch-shebang "bin/fgrep" path) + ;; Starting with grep@2.25 'egrep' and 'fgrep' are shell files + ;; that call 'grep'. If the bootstrap 'egrep' and 'fgrep' + ;; are not binaries then patch them to execute 'grep' via its + ;; absolute file name instead of searching for it in $PATH. + (if (not (elf-file? "bin/egrep")) + (substitute* '("bin/egrep" "bin/fgrep") + (("^exec grep") (string-append (getcwd) "/bin/grep")))) (chmod "bin" #o555) #t))) -- cgit v1.2.3 From 77e16733197b8950f6b665be1f69375cb2a7155f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 14 Feb 2017 21:48:30 +0200 Subject: daemon: Ensure proper alignment on the stack. * nix/libstore/build.cc (startBuilder): When calling 'clone', increase the step to 16 and ensure it aligns properly on the stack. --- nix/libstore/build.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index cebc404d1c..9b7bb5391c 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -2008,7 +2009,11 @@ void DerivationGoal::startBuilder() char stack[32 * 1024]; int flags = CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWIPC | CLONE_NEWUTS | SIGCHLD; if (!fixedOutput) flags |= CLONE_NEWNET; - pid = clone(childEntry, stack + sizeof(stack) - 8, flags, this); + + /* Ensure proper alignment on the stack. On aarch64, it has to be 16 + bytes. */ + pid = clone(childEntry, (char *)(((uintptr_t)stack + 16) & ~0xf), + flags, this); if (pid == -1) throw SysError("cloning builder process"); } else -- cgit v1.2.3 From 3b88f3767d9f3ad2cc64173525cd53d429bfe7e7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Jun 2016 20:53:24 +0300 Subject: gnu: Add bootstrap-binaries for 'aarch64-linux'. These bootstrap-binaries were built against commit 8f8f250bdca917b3ce38aa0902f01b19081859a4. * gnu/packages/bootstrap/aarch64-linux/bash, gnu/packages/bootstrap/aarch64-linux/mkdir, gnu/packages/bootstrap/aarch64-linux/xz, gnu/packages/bootstrap/aarch64-linux/tar: New files. * gnu/local.mk (bootstrap_aarch64_linuxdir) (dist_bootstrap_aarch64_linux_DATA) (nodist_bootstrap_aarch64_linux_DATA): New variables. (DISTCLEANFILES): Add $(nodist_bootstrap_aarch64_linux_DATA). (gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz): New target. * build-aux/download.scm (filename->uri): Add aarch64-linux entry. * gnu/packages/bootstrap.scm (raw-build): Use guile-2.0.14.tar.xz on aarch64-linux. (glibc-dynamic-linker, %bootstrap-coreutils&co, %boostrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add aarch64-linux cases. * m4/guix.m4 (GUIX_SYSTEM_TYPE): Add aarch64 case. (GUIX_ASSERT_SUPPORTED_SYSTEM): Add aarch64-linux to supported list. * doc/guix.texi (GNU Distribution): Add aarch64-linux to the list of supported systems. * tests/packages.scm (package-search-derivation, snippet): Add aarch64 case. --- build-aux/download.scm | 20 +++++++++++++------- doc/guix.texi | 7 ++++++- gnu/local.mk | 15 +++++++++++++++ gnu/packages/bootstrap.scm | 26 +++++++++++++++++++++++++- gnu/packages/bootstrap/aarch64-linux/bash | Bin 0 -> 1162056 bytes gnu/packages/bootstrap/aarch64-linux/mkdir | Bin 0 -> 558216 bytes gnu/packages/bootstrap/aarch64-linux/tar | Bin 0 -> 1085128 bytes gnu/packages/bootstrap/aarch64-linux/xz | Bin 0 -> 738576 bytes m4/guix.m4 | 3 ++- tests/packages.scm | 2 ++ 10 files changed, 63 insertions(+), 10 deletions(-) create mode 100755 gnu/packages/bootstrap/aarch64-linux/bash create mode 100755 gnu/packages/bootstrap/aarch64-linux/mkdir create mode 100755 gnu/packages/bootstrap/aarch64-linux/tar create mode 100755 gnu/packages/bootstrap/aarch64-linux/xz diff --git a/build-aux/download.scm b/build-aux/download.scm index 1e91e4b87c..e0b40e6f26 100644 --- a/build-aux/download.scm +++ b/build-aux/download.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,13 +46,18 @@ "Return the URI for FILE." (match (string-tokenize file (char-set-complement (char-set #\/))) ((_ ... system basename) - (string->uri (string-append %url-base "/" system - (match system - ("armhf-linux" - "/20150101/") - (_ - "/20131110/")) - basename))))) + (string->uri + (match system + ("aarch64-linux" + (string-append "http://flashner.co.il/guix/bootstrap/aarch64-linux" + "/20170217/" basename)) + (_ (string-append %url-base "/" system + (match system + ("armhf-linux" + "/20150101/") + (_ + "/20131110/")) + basename))))))) (match (command-line) ((_ file expected-hash) diff --git a/doc/guix.texi b/doc/guix.texi index 6cdb5e592b..8b97920f21 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -24,7 +24,7 @@ Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016 Chris Marusich@* -Copyright @copyright{} 2016 Efraim Flashner@* +Copyright @copyright{} 2016, 2017 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016 ng0@* Copyright @copyright{} 2016 Jan Nieuwenhuizen@* @@ -6710,6 +6710,11 @@ ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel. +@item aarch64-linux +little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is +currently in an experimental stage, with limited support. See +@xref{Contributing}, for how to help! + @item mips64el-linux little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel. diff --git a/gnu/local.mk b/gnu/local.mk index e7db9a6052..7ad66f5df8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -10,6 +10,7 @@ # Copyright © 2016, 2017 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft # Copyright © 2016, 2017 Alex Vong +# Copyright © 2016, 2017 Efraim Flashner # # This file is part of GNU Guix. # @@ -992,6 +993,7 @@ bootstrapdir = $(guilemoduledir)/%D%/packages/bootstrap bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux +bootstrap_aarch64_linuxdir = $(bootstrapdir)/aarch64-linux bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux dist_bootstrap_x86_64_linux_DATA = \ @@ -1012,6 +1014,12 @@ dist_bootstrap_armhf_linux_DATA = \ %D%/packages/bootstrap/armhf-linux/tar \ %D%/packages/bootstrap/armhf-linux/xz +dist_bootstrap_aarch64_linux_DATA = \ + %D%/packages/bootstrap/aarch64-linux/bash \ + %D%/packages/bootstrap/aarch64-linux/mkdir \ + %D%/packages/bootstrap/aarch64-linux/tar \ + %D%/packages/bootstrap/aarch64-linux/xz + dist_bootstrap_mips64el_linux_DATA = \ %D%/packages/bootstrap/mips64el-linux/bash \ %D%/packages/bootstrap/mips64el-linux/mkdir \ @@ -1026,6 +1034,8 @@ nodist_bootstrap_i686_linux_DATA = \ %D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz nodist_bootstrap_armhf_linux_DATA = \ %D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz +nodist_bootstrap_aarch64_linux_DATA = \ + %D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz nodist_bootstrap_mips64el_linux_DATA = \ %D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz @@ -1038,6 +1048,7 @@ DISTCLEANFILES = \ $(nodist_bootstrap_x86_64_linux_DATA) \ $(nodist_bootstrap_i686_linux_DATA) \ $(nodist_bootstrap_armhf_linux_DATA) \ + $(nodist_bootstrap_aarch64_linux_DATA) \ $(nodist_bootstrap_mips64el_linux_DATA) # Method to download a file from an external source. @@ -1058,6 +1069,10 @@ DOWNLOAD_FILE = \ $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6" +%D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz: + $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ + $(DOWNLOAD_FILE) "$@" \ + "3939909f24dcb955621aa7f81ecde6844bea8a083969c2d275c55699af123ebe" %D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 251d1fec7b..61f1f1ab3f 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -203,6 +204,8 @@ successful, or false to signal an error." (guile (->store (match system ("armhf-linux" "guile-2.0.11.tar.xz") + ("aarch64-linux" + "guile-2.0.14.tar.xz") (_ "guile-2.0.9.tar.xz")))) ;; The following code, run by the bootstrap guile after it is @@ -291,7 +294,8 @@ $out/bin/guile --version~%" ;; This is where the initial binaries come from. '("ftp://alpha.gnu.org/gnu/guix/bootstrap" "http://alpha.gnu.org/gnu/guix/bootstrap" - "http://www.fdn.fr/~lcourtes/software/guix/packages")) + "http://www.fdn.fr/~lcourtes/software/guix/packages" + "http://flashner.co.il/guix/bootstrap")) (define %bootstrap-coreutils&co (package-from-tarball "bootstrap-binaries" @@ -302,6 +306,8 @@ $out/bin/guile --version~%" (match system ("armhf-linux" "/20150101/static-binaries.tar.xz") + ("aarch64-linux" + "/20170217/static-binaries.tar.xz") (_ "/20131110/static-binaries.tar.xz"))) %bootstrap-base-urls)) @@ -316,6 +322,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")) + ("aarch64-linux" + (base32 + "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")) ("mips64el-linux" (base32 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753")))))) @@ -345,6 +354,8 @@ $out/bin/guile --version~%" (match system ("armhf-linux" "/20150101/binutils-2.25.tar.xz") + ("aarch64-linux" + "/20170217/binutils-2.27.tar.xz") (_ "/20131110/binutils-2.23.2.tar.xz"))) %bootstrap-base-urls)) @@ -359,6 +370,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")) + ("aarch64-linux" + (base32 + "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")) ("mips64el-linux" (base32 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7")))))) @@ -406,6 +420,8 @@ $out/bin/guile --version~%" (match (%current-system) ("armhf-linux" "/20150101/glibc-2.20.tar.xz") + ("aarch64-linux" + "/20170217/glibc-2.25.tar.xz") (_ "/20131110/glibc-2.18.tar.xz"))) %bootstrap-base-urls)) @@ -420,6 +436,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")) + ("aarch64-linux" + (base32 + "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")) ("mips64el-linux" (base32 "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))) @@ -484,6 +503,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (match (%current-system) ("armhf-linux" "/20150101/gcc-4.8.4.tar.xz") + ("aarch64-linux" + "/20170217/gcc-5.4.0.tar.xz") (_ "/20131110/gcc-4.8.2.tar.xz"))) %bootstrap-base-urls)) @@ -498,6 +519,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ ("armhf-linux" (base32 "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")) + ("aarch64-linux" + (base32 + "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")) ("mips64el-linux" (base32 "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))) diff --git a/gnu/packages/bootstrap/aarch64-linux/bash b/gnu/packages/bootstrap/aarch64-linux/bash new file mode 100755 index 0000000000..0bfb9d1824 Binary files /dev/null and b/gnu/packages/bootstrap/aarch64-linux/bash differ diff --git a/gnu/packages/bootstrap/aarch64-linux/mkdir b/gnu/packages/bootstrap/aarch64-linux/mkdir new file mode 100755 index 0000000000..35cd1815fd Binary files /dev/null and b/gnu/packages/bootstrap/aarch64-linux/mkdir differ diff --git a/gnu/packages/bootstrap/aarch64-linux/tar b/gnu/packages/bootstrap/aarch64-linux/tar new file mode 100755 index 0000000000..7e68edb0be Binary files /dev/null and b/gnu/packages/bootstrap/aarch64-linux/tar differ diff --git a/gnu/packages/bootstrap/aarch64-linux/xz b/gnu/packages/bootstrap/aarch64-linux/xz new file mode 100755 index 0000000000..5aa18c9234 Binary files /dev/null and b/gnu/packages/bootstrap/aarch64-linux/xz differ diff --git a/m4/guix.m4 b/m4/guix.m4 index 6630598416..e546b8f4dd 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -1,6 +1,7 @@ dnl GNU Guix --- Functional package management for GNU dnl Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès dnl Copyright © 2014 Mark H Weaver +dnl Copyright © 2017 Efraim Flashner dnl dnl This file is part of GNU Guix. dnl @@ -105,7 +106,7 @@ courageous and port the GNU System distribution to it (see # Currently only Linux-based systems are supported, and only on some # platforms. case "$guix_system" in - x86_64-linux|i686-linux|armhf-linux|mips64el-linux) + x86_64-linux|i686-linux|armhf-linux|aarch64-linux|mips64el-linux) ;; *) if test "x$guix_courageous" = "xyes"; then diff --git a/tests/packages.scm b/tests/packages.scm index 962f120ea2..aa29758830 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -380,6 +380,8 @@ (let* ((file (search-bootstrap-binary (match (%current-system) ("armhf-linux" "guile-2.0.11.tar.xz") + ("aarch64-linux" + "guile-2.0.14.tar.xz") (_ "guile-2.0.9.tar.xz")) (%current-system))) -- cgit v1.2.3 From 4bbb7d48658a80dcbb2d03f51f0e3cbc1cd3bc11 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 03:34:36 +0100 Subject: gnu: cmake: Update to 3.7.2. * gnu/packages/cmake.scm (cmake): Update to 3.7.2. [arguments]: Fix truthiness of some phases. [inputs]: Add LIBUV. --- gnu/packages/cmake.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index cd82978de2..3ffa7d49f5 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -32,13 +32,14 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages file) + #:use-module (gnu packages libevent) #:use-module (gnu packages ncurses) #:use-module (gnu packages xml)) (define-public cmake (package (name "cmake") - (version "3.6.1") + (version "3.7.2") (source (origin (method url-fetch) (uri (string-append "https://www.cmake.org/files/v" @@ -46,7 +47,7 @@ "/cmake-" version ".tar.gz")) (sha256 (base32 - "04ggm9c0zklxypm6df1v4klrrd85m6vpv13kasj42za283n9ivi8")) + "1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw")) (patches (search-patches "cmake-fix-tests.patch")))) (build-system gnu-build-system) (arguments @@ -72,7 +73,8 @@ "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" "Tests/CMakeLists.txt" "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") - (("/bin/sh") (which "sh"))))) + (("/bin/sh") (which "sh"))) + #t)) (add-before 'configure 'set-paths (lambda _ ;; Help cmake's bootstrap process to find system libraries @@ -80,7 +82,8 @@ (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) ;; Get verbose output from failed tests - (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE")))) + (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE") + #t))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -106,6 +109,7 @@ ("expat" ,expat) ("bzip2" ,bzip2) ("ncurses" ,ncurses) ; required for ccmake + ("libuv" ,libuv) ("libarchive" ,libarchive))) (native-search-paths (list (search-path-specification -- cgit v1.2.3 From db909bf23c5aae817c7d9011b66d02ee564651e7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 03:56:45 +0100 Subject: gnu: cmake: Remove bundled software. * gnu/packages/cmake.scm (cmake)[source]: Add 'snippet' to remove bundled libraries. [arguments]: Drop removed files from 'patch-bin-sh' phase. [license]: Update for remaining software. --- gnu/packages/cmake.scm | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 3ffa7d49f5..da7a9bdb6b 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages cmake) - #:use-module ((guix licenses) #:select (bsd-3)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -48,7 +49,23 @@ (sha256 (base32 "1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw")) - (patches (search-patches "cmake-fix-tests.patch")))) + (patches (search-patches "cmake-fix-tests.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Drop bundled software. + (with-directory-excursion "Utilities" + (for-each delete-file-recursively + '("cmbzip2" + ;"cmcompress" + "cmcurl" + "cmexpat" + ;"cmjsoncpp" + ;"cmlibarchive" + "cmliblzma" + "cmlibuv" + "cmzlib")) + #t))))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -68,7 +85,6 @@ "Source/CTest/cmCTestBatchTestHandler.cxx" "Source/cmLocalUnixMakefileGenerator3.cxx" "Source/cmExecProgramCommand.cxx" - "Utilities/cmbzip2/Makefile-libbz2_so" "Utilities/Release/release_cmake.cmake" "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" "Tests/CMakeLists.txt" @@ -91,7 +107,7 @@ "./configure" (string-append "--prefix=" out) "--system-libs" - "--no-system-jsoncpp" ; not packaged yet + "--no-system-jsoncpp" ; FIXME: Circular dependency. ;; By default, the man pages and other docs land ;; in PREFIX/man and PREFIX/doc, but we want them ;; in share/{man,doc}. Note that unlike @@ -122,4 +138,8 @@ CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.") - (license bsd-3))) + (license (list license:bsd-3 ; cmake + license:bsd-4 ; cmcompress + license:bsd-2 ; cmlibarchive + license:expat ; cmjsoncpp is dual MIT/public domain + license:public-domain)))) ; cmlibarchive/archive_getdate.c -- cgit v1.2.3 From d270c606b31ef5574ee1f67e2449b5e5f2b00e2c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 04:29:38 +0100 Subject: gnu: cmake: Run tests in parallel. * gnu/packages/cmake.scm (cmake)[arguments]: Add 'set-test-environment' phase. --- gnu/packages/cmake.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index da7a9bdb6b..a4e2d38e36 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -97,8 +97,6 @@ (begin (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) - ;; Get verbose output from failed tests - (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE") #t))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) @@ -117,7 +115,15 @@ "--mandir=share/man" ,(string-append "--docdir=share/doc/cmake-" - (version-major+minor version)))))))))) + (version-major+minor version))))))) + (add-before 'check 'set-test-environment + (lambda _ + ;; Get verbose output from failed tests. + (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE") + ;; Run tests in parallel. + (setenv "CTEST_PARALLEL_LEVEL" + (number->string (parallel-job-count))) + #t))))) (inputs `(("file" ,file) ("curl" ,curl) -- cgit v1.2.3 From 404e48c4eda69dc308055dc7f317ee93ab6d6893 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 17:00:58 +0100 Subject: gnu: Add libxfont@2. * gnu/packages/xorg.scm (libxfont2): New variable. --- gnu/packages/xorg.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7348cbb205..4c4af32a9c 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4796,6 +4796,17 @@ not be used by normal X11 clients. X11 clients access fonts via either the new API's in libXft, or the legacy API's in libX11.") (license license:x11))) +(define-public libxfont2 + (package + (inherit libxfont) + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://xorg/individual/lib/libXfont2-" + version ".tar.bz2")) + (sha256 + (base32 + "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9")))))) (define-public libxi (package -- cgit v1.2.3 From 10cd39d1e03e267d0c47a80e7edf9f98a5ce8b5b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 14:26:04 +0100 Subject: gnu: xorg-server: Use 'modify-phases' syntax. * gnu/packages/xorg.scm (xorg-server)[arguments]: Use 'modify-phases'. --- gnu/packages/xorg.scm | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4c4af32a9c..ede07fa0ec 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5066,17 +5066,19 @@ over Xlib, including: "--enable-kdrive" "--enable-xephyr") - #:phases (alist-cons-before - 'configure 'pre-configure - (lambda _ - (substitute* (find-files "." "\\.c$") - (("/bin/sh") (which "sh"))) - - ;; Don't try to 'mkdir /var'. - (substitute* "hw/xfree86/Makefile.in" - (("\\$\\(MKDIR_P\\).*logdir.*") - "true\n"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'pre-configure + (lambda _ + (substitute* (find-files "." "\\.c$") + (("/bin/sh") (which "sh"))) + + ;; Don't try to 'mkdir /var'. + (substitute* "hw/xfree86/Makefile.in" + (("\\$\\(MKDIR_P\\).*logdir.*") + "true\n")) + #t))))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg implementation of the X Window System") (description -- cgit v1.2.3 From 27e982e0d338531cadc79a783d84c7e837f277a2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 13 Jan 2017 01:51:42 +0100 Subject: gnu: xorg-server: Update to 1.19.1. * gnu/packages/xorg.scm (xorg-server, xorg-server-xwayland): Update to 1.19.1. [inputs]: Change from LIBXFONT to LIBXFONT2. Add LIBEPOXY. --- gnu/packages/xorg.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index ede07fa0ec..9554682005 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4974,7 +4974,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.18.4") + (version "1.19.1") (source (origin (method url-fetch) @@ -4983,7 +4983,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "1j1i3n5xy1wawhk95kxqdc54h34kg7xp4nnramba2q8xqfr5k117")))) + "1yx7cnlhl14hsdq5lg0740s4nxqxkmaav38x428llv1zkprjrbkr")))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) @@ -5012,12 +5012,13 @@ over Xlib, including: ("dbus" ,dbus) ("dmxproto" ,dmxproto) ("libdmx" ,libdmx) + ("libepoxy" ,libepoxy) ("libgcrypt" ,libgcrypt) ("libxau" ,libxau) ("libxaw" ,libxaw) ("libxdmcp" ,libxdmcp) ("libxfixes" ,libxfixes) - ("libxfont" ,libxfont) + ("libxfont2" ,libxfont2) ("libxkbfile" ,libxkbfile) ("libxrender" ,libxrender) ("libxres" ,libxres) -- cgit v1.2.3 From 62489932a01d6b0c43759b64b08b8aea25331dad Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jan 2017 17:38:53 +0100 Subject: gnu: xf86-video-qxl: Change to libxfont2 ABI. * gnu/packages/xorg.scm (xf86-video-qxl)[inputs]: Change LIBXFONT to LIBXFONT2. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9554682005..be6655e4ba 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3056,7 +3056,7 @@ UniChrome Pro and Chrome9 integrated graphics processors.") (build-system gnu-build-system) (inputs `(("fontsproto" ,fontsproto) - ("libxfont" ,libxfont) + ("libxfont" ,libxfont2) ("spice-protocol" ,spice-protocol) ("xf86dgaproto" ,xf86dgaproto) ("xorg-server" ,xorg-server) -- cgit v1.2.3 From 008dfa23d4d719e5522bbafbb949e38ee202c62a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 14:39:57 +0100 Subject: gnu: xf86-video-intel: Change to libxfont2 ABI. * gnu/packages/xorg.scm (xf86-video-intel)[inputs]: Change LIBXFONT to LIBXFONT2. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index be6655e4ba..9e5de952a7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2824,7 +2824,7 @@ X server.") (inputs `(("mesa" ,mesa) ("udev" ,eudev) ("libx11" ,libx11) - ("libxfont" ,libxfont) + ("libxfont" ,libxfont2) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From f12def72ae6e6d06335d726b93bc88e0e896b9ae Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 14:41:03 +0100 Subject: gnu: xf86-input-wacom: Fix compatibility with xorg ABI 25. * gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xdisorg.scm (xf86-input-wacom)[source](patches): Use it. --- gnu/local.mk | 1 + .../patches/xf86-input-wacom-xorg-abi-25.patch | 46 ++++++++++++++++++++++ gnu/packages/xdisorg.scm | 4 +- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2ca90dfce6..82d9a31bd1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -970,6 +970,7 @@ dist_patch_DATA = \ %D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \ %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ + %D%/packages/patches/xf86-input-wacom-xorg-abi-25.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ %D%/packages/patches/xf86-video-geode-glibc-2.20.patch \ diff --git a/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch b/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch new file mode 100644 index 0000000000..dc594bdccb --- /dev/null +++ b/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch @@ -0,0 +1,46 @@ +Resolves a test compatibility issue with xorg >= 1.19. + +Upstream bug report: + +https://sourceforge.net/p/linuxwacom/bugs/329/ + +Patch copied from upstream source repository: + +https://sourceforge.net/p/linuxwacom/xf86-input-wacom/ci/f0dedf7a610ac97bc45738492b98ce4f1e0514ec/ + +From f0dedf7a610ac97bc45738492b98ce4f1e0514ec Mon Sep 17 00:00:00 2001 +From: Jason Gerecke +Date: Wed, 18 Jan 2017 09:00:10 -0800 +Subject: [PATCH] tests: Fix compilation under ABI 25 and greater + +diff --git a/test/fake-symbols.c b/test/fake-symbols.c +index 6f2c10a..e649fb9 100644 +--- a/test/fake-symbols.c ++++ b/test/fake-symbols.c +@@ -493,6 +493,7 @@ void TimerFree(OsTimerPtr timer) + { + } + ++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 24 + int + xf86BlockSIGIO (void) + { +@@ -503,6 +504,15 @@ void + xf86UnblockSIGIO (int wasset) + { + } ++#else ++void input_lock (void) ++{ ++} ++ ++void input_unlock (void) ++{ ++} ++#endif + + /* This is not the same as the X server one, but it'll do for the tests */ + #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 14 +-- +2.11.1 + diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7b3142657f..1b91404dbe 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -796,7 +796,9 @@ Wacom tablet applet.") name "-" version ".tar.bz2")) (sha256 (base32 - "0idhkigl0pnyp08sqm6bqfb4h20v6rjrb71z1gdv59gk7d7qwpgi")))) + "0idhkigl0pnyp08sqm6bqfb4h20v6rjrb71z1gdv59gk7d7qwpgi")) + (patches + (search-patches "xf86-input-wacom-xorg-abi-25.patch")))) (arguments `(#:configure-flags (list (string-append "--with-sdkdir=" -- cgit v1.2.3 From 9e5af7b4560ef87a2fe15e879a6795a741481023 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 20 Feb 2017 13:36:50 +0100 Subject: gnu: mesa: Update to 13.0.5. * gnu/packages/gl.scm (mesa): Update to 13.0.5. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 7f97277541..775d656e17 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -197,7 +197,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "13.0.4") + (version "13.0.5") (source (origin (method url-fetch) @@ -205,7 +205,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz")) (sha256 (base32 - "09p740qvmf4vqnpgxxlizk0dhdhj6i519qsbbrc8hpxxyzl7qpd9")) + "11zgynii1wz17131ml1mmblpwib8m88zz2jwi5h5llh1r3iagkmz")) (patches (search-patches "mesa-wayland-egl-symbols-check-mips.patch")))) (build-system gnu-build-system) -- cgit v1.2.3 From 4c145d21d1f425a626c451d3b6ab519edcb88440 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Feb 2017 15:08:02 +0100 Subject: gnu: openssl: Incorporate grafted changes. This un-grafts 544db93cafc3e0bf9a89623b8fed3a169958c1d3. * gnu/packages/tls.scm (openssl): Update to 1.0.2k. [replacement]: Remove field. (openssl-1.0.2k): Remove variable. (openssl-next)[replacement]: Remove field. --- gnu/packages/tls.scm | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 2fbcabd8fa..214f0145b3 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -228,8 +228,7 @@ required structures.") (define-public openssl (package (name "openssl") - (replacement openssl-1.0.2k) - (version "1.0.2j") + (version "1.0.2k") (source (origin (method url-fetch) (uri (list (string-append "ftp://ftp.openssl.org/source/" @@ -239,7 +238,7 @@ required structures.") "/" name "-" version ".tar.gz"))) (sha256 (base32 - "0cf4ar97ijfc7mg35zdgpad6x8ivkdx9qii6mz35khi1ps9g5bz7")) + "1h6qi35w6hv6rd73p4cdgdzg732pdrfgpp37cgwz1v9a3z37ffbb")) (patches (search-patches "openssl-runpath.patch" "openssl-c-rehash-in.patch")))) (build-system gnu-build-system) @@ -365,29 +364,9 @@ required structures.") (license license:openssl) (home-page "http://www.openssl.org/"))) -(define openssl-1.0.2k - (package - (inherit openssl) - (name "openssl") - (version "1.0.2k") - (source - (origin - (method url-fetch) - (uri (list (string-append "ftp://ftp.openssl.org/source/" - name "-" version ".tar.gz") - (string-append "ftp://ftp.openssl.org/source/old/" - (string-trim-right version char-set:letter) - "/" name "-" version ".tar.gz"))) - (sha256 - (base32 - "1h6qi35w6hv6rd73p4cdgdzg732pdrfgpp37cgwz1v9a3z37ffbb")) - (patches (search-patches "openssl-runpath.patch" - "openssl-c-rehash-in.patch")))))) - (define-public openssl-next (package (inherit openssl) - (replacement #f) (name "openssl") (version "1.1.0e") (source (origin -- cgit v1.2.3 From 2060b4d95f182a09cbdf925675f53a8043e29b01 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 18 Dec 2016 14:22:11 -0500 Subject: gnu: bdftopcf: Use libxfont2. * gnu/packages/xorg.scm (bdftopcf)[inputs]: Replace libxfont with libxfont2. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9e5de952a7..7e1572723b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -175,7 +175,7 @@ directory tree.") "09i03sk878cmx2i40lkpsysn7zqcvlczb30j7x3lryb11jz4gx1q")))) (build-system gnu-build-system) (inputs - `(("libxfont" ,libxfont))) + `(("libxfont2" ,libxfont2))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") -- cgit v1.2.3 From eed214ef226c80529170b2070a43deea8b7d9de5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 18 Dec 2016 15:19:30 -0500 Subject: gnu: xf86-video-geode: Update to 2.11.19. * gnu/packages/xorg.scm (xf86-video-geode): Update to 2.11.19. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7e1572723b..dc500641f0 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2696,7 +2696,7 @@ framebuffer device.") (define-public xf86-video-geode (package (name "xf86-video-geode") - (version "2.11.18") + (version "2.11.19") (source (origin (method url-fetch) @@ -2706,7 +2706,7 @@ framebuffer device.") ".tar.bz2")) (sha256 (base32 - "1s59kdj573v38sb14xfhp1l926aypbhy11vaz36y72x6calfkv6n")) + "0zn9gb49grds5mcs1dlrx241k2w1sgqmx4i5x7v6159xxqhlqsf6")) (patches (search-patches "xf86-video-geode-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) -- cgit v1.2.3 From 0b86650650c558c0da32f9cfebea4be78884486d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 08:54:39 +0200 Subject: gnu: gnutls: Update to 3.5.9. * gnu/packages/tls.scm (gnutls): Update to 3.5.9. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 214f0145b3..c5580f984e 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -140,7 +140,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.8") + (version "3.5.9") (source (origin (method url-fetch) (uri @@ -151,7 +151,7 @@ living in the same process.") "/gnutls-" version ".tar.xz")) (sha256 (base32 - "1zyl2z63s68hx1dpxqx0lykmlf3rwrzlrf44sq3h7dvjmr1z55qf")))) + "0l9971841jsfdcvcyhas17sk5rsby6x5vvwcmmj4x3zi9q60zcc2")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 3853bf2542e949c642410a3ef06651f063af726e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 20:27:47 +0200 Subject: gnu: libtasn1: Update to 4.10. * gnu/packages/tls.scm (libtasn1): Update to 4.10. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index c5580f984e..d4ba77fed3 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -52,7 +52,7 @@ (define-public libtasn1 (package (name "libtasn1") - (version "4.9") + (version "4.10") (source (origin (method url-fetch) @@ -60,7 +60,7 @@ version ".tar.gz")) (sha256 (base32 - "0869cp6jx7cajgv6cnddsh3vc7bimmdkdjn80y1jpb4iss7plvsg")))) + "00jsix5hny0g768zv4hk78dib7w0qmk5fbizf4jj37r51nd4s6k8")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/libtasn1/") -- cgit v1.2.3 From 6d755c7b8482cf013b6c68eadb572320a4f091f2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 20:28:53 +0200 Subject: gnu: libgpg-error: Update to 1.26. * gnu/packages/gnupg.scm (libgpg-error): Update to 1.26. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 2be26447a3..fb0423c606 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -58,7 +58,7 @@ (define-public libgpg-error (package (name "libgpg-error") - (version "1.25") + (version "1.26") (source (origin (method url-fetch) @@ -66,7 +66,7 @@ version ".tar.bz2")) (sha256 (base32 - "031jc5196fdcxn2g61i1pdabvdbxxcdi4j7jbaq3hfs38dcgfa7n")))) + "0sgfia0syq78k1c9h10rkhc1nfv5v097icrprlx2x4qn074wnjsc")))) (build-system gnu-build-system) (home-page "https://gnupg.org") (synopsis "Library of error values for GnuPG components") -- cgit v1.2.3 From eb9a603317c4b8a77079f0a9ebd3ea802a0ed8df Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 19:57:50 +0200 Subject: gnu: libelf: Support aarch64. * gnu/packages/elf.scm (libelf)[arguments]: Modify custom configure phase to declare host type on aarch64. --- gnu/packages/elf.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 35b644906b..95ba7618a1 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,7 +79,7 @@ addr2line, and more.") (base32 "0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr")))) (build-system gnu-build-system) - (arguments '(#:phases (alist-replace + (arguments `(#:phases (alist-replace 'configure (lambda* (#:key outputs #:allow-other-keys) ;; This old `configure' script doesn't support @@ -87,7 +88,12 @@ addr2line, and more.") (setenv "CONFIG_SHELL" (which "bash")) (zero? (system* "./configure" - (string-append "--prefix=" out))))) + (string-append "--prefix=" out) + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()) + )))) %standard-phases))) (home-page "http://www.mr511.de/software/english.html") (synopsis "ELF object file access library") -- cgit v1.2.3 From db700d58299dd0a063622de519ae42afe33c3ee5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 20:05:40 +0200 Subject: gnu: libelf: Use 'modify-phases'. * gnu/packages/elf.scm (libelf)[arguments]: Use 'modify-phases'. --- gnu/packages/elf.scm | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 95ba7618a1..c68604cf83 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -79,22 +79,22 @@ addr2line, and more.") (base32 "0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr")))) (build-system gnu-build-system) - (arguments `(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; This old `configure' script doesn't support - ;; variables passed as arguments. - (let ((out (assoc-ref outputs "out"))) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '()) - )))) - %standard-phases))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This old `configure' script doesn't support + ;; variables passed as arguments. + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()))))))))) (home-page "http://www.mr511.de/software/english.html") (synopsis "ELF object file access library") (description "Libelf is a C library to access ELF object files.") -- cgit v1.2.3 From fd61591850f493f1aff6b8cfb7eb8ea8c3d82d1f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 20:12:12 +0200 Subject: gnu: python: Remove failing test on aarch64. * gnu/packages/python.scm (python-3.5)[source]: Add snippet removing test that fails on aarch64. --- gnu/packages/python.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 684c7fbbe7..4161cd3480 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -326,7 +326,10 @@ data types.") (patch-flags '("-p0")) (sha256 (base32 - "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400")))) + "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400")) + (snippet + '(delete-file + "Lib/ctypes/test/test_win32.py")))) ; fails on aarch64 (arguments (substitute-keyword-arguments (package-arguments python-2) ((#:tests? _) #t))) (native-search-paths -- cgit v1.2.3 From 64465558765e7d48b531cacfcf1e5f28d8eb2a5f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 20:56:45 +0200 Subject: gnu: aalib: Support aarch64. * gnu/packages/video.scm (aalib)[arguments]: Modify custom configure phase to declare host type on aarch64. --- gnu/packages/video.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7eff842e0d..c61b372af7 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -136,6 +136,11 @@ (%current-system)) '("--host=mips64el-unknown-linux-gnu") '()) + ;; The same is also true with aarch64. + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()) (string-append "--with-ncurses=" ncurses))))))))) (home-page "http://aa-project.sourceforge.net/aalib/") -- cgit v1.2.3 From a6d352cc017e30fec2301cdf7b496ab630ba0a41 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Feb 2017 21:49:31 +0200 Subject: gnu: gs-fonts: Use 'modify-phases'. * gnu/packages/ghostscript.scm (gs-fonts)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/ghostscript.scm | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 826a2fc374..7b3182fd8b 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2013, 2015, 2016 Ludovic Courtès ;;; Copyright © 2017 Alex Vong +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -271,25 +272,19 @@ architecture.") (build-system gnu-build-system) (arguments `(#:tests? #f ; nothing to check, just files to copy - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) ; for alist-delete #:phases - (alist-delete - 'configure - (alist-delete - 'build - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/share/fonts/type1/ghostscript"))) - (mkdir-p dir) - (for-each - (lambda (file) - (copy-file file (string-append dir "/" file))) - (find-files "." "pfb|afm")))) - %standard-phases))))) + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/fonts/type1/ghostscript"))) + (mkdir-p dir) + (for-each + (lambda (file) + (copy-file file (string-append dir "/" file))) + (find-files "." "pfb|afm")))))))) (synopsis "Free replacements for the PostScript fonts") (description "Ghostscript fonts provides fonts and font metrics customarily distributed with -- cgit v1.2.3 From 827dc6295c3aafd592f3bb5fe151fdc4fd8d35b7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 22 Feb 2017 06:29:21 +0100 Subject: gnu: libepoxy: Update to 1.4.0. * gnu/packages/patches/libepoxy-gl-null-checks.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/gl.scm (libepoxy): Update to 1.4.0. [source]: Remove patch. Use release tarball and remove explicit file-name. [arguments]: Drop 'autoreconf' phase. Remove obsolete test substitution. [native-inputs]: Remove AUTOCONF, AUTOMAKE and LIBTOOL. --- gnu/local.mk | 1 - gnu/packages/gl.scm | 30 +++--------- gnu/packages/patches/libepoxy-gl-null-checks.patch | 54 ---------------------- 3 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 gnu/packages/patches/libepoxy-gl-null-checks.patch diff --git a/gnu/local.mk b/gnu/local.mk index 82d9a31bd1..1e919c8483 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -673,7 +673,6 @@ dist_patch_DATA = \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libcmis-fix-test-onedrive.patch \ %D%/packages/patches/libdrm-symbol-check.patch \ - %D%/packages/patches/libepoxy-gl-null-checks.patch \ %D%/packages/patches/libevent-dns-tests.patch \ %D%/packages/patches/libevent-2.0-CVE-2016-10195.patch \ %D%/packages/patches/libevent-2.0-CVE-2016-10196.patch \ diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 775d656e17..53f720ac2a 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -456,25 +456,20 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.3.1") + (version "1.4.0") (source (origin (method url-fetch) (uri (string-append - "https://github.com/anholt/libepoxy/archive/v" + "https://github.com/anholt/libepoxy/releases/download/v" + (version-major+minor version) "/libepoxy-" version - ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + ".tar.xz")) (sha256 (base32 - "1d1brhwfmlzgnphmdwlvn5wbcrxsdyzf1qfcf8nb89xqzznxs037")) - (patches (search-patches "libepoxy-gl-null-checks.patch")))) + "0hdbaapbxjjfdqsdvag460kfjvs800da5sngi2sc46wj9aqhda95")))) (arguments `(#:phases (modify-phases %standard-phases - (add-after - 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vif")))) (add-before 'configure 'patch-paths (lambda* (#:key inputs #:allow-other-keys) @@ -485,23 +480,10 @@ OpenGL graphics API.") (substitute* (find-files "." "\\.[ch]$") (("libGL.so.1") (string-append mesa "/lib/libGL.so.1")) (("libEGL.so.1") (string-append mesa "/lib/libEGL.so.1"))) - - ;; XXX On armhf systems, we must add "GLIBC_2.4" to the list of - ;; versions in test/dlwrap.c:dlwrap_real_dlsym. It would be - ;; better to make this a normal patch, but for now we do it here - ;; to prevent rebuilding on other platforms. - ,@(if (string-prefix? "arm" (or (%current-target-system) - (%current-system))) - '((substitute* '"test/dlwrap.c" - (("\"GLIBC_2\\.0\"") "\"GLIBC_2.0\", \"GLIBC_2.4\""))) - '()) #t)))))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) + `(("pkg-config" ,pkg-config) ("python" ,python))) (inputs `(("mesa" ,mesa))) diff --git a/gnu/packages/patches/libepoxy-gl-null-checks.patch b/gnu/packages/patches/libepoxy-gl-null-checks.patch deleted file mode 100644 index bdc4b05989..0000000000 --- a/gnu/packages/patches/libepoxy-gl-null-checks.patch +++ /dev/null @@ -1,54 +0,0 @@ -This patch from adds NULL -checks to avoid crashes when GL support is missing, as is the case when running -Xvfb. - -Upstream issue: . - -diff -ur libepoxy-1.3.1/src/dispatch_common.c libepoxy-1.3.1/src/dispatch_common.c ---- libepoxy-1.3.1/src/dispatch_common.c 2015-07-15 19:46:36.000000000 -0400 -+++ libepoxy-1.3.1/src/dispatch_common.c 2016-11-16 09:03:52.809066247 -0500 -@@ -348,6 +348,8 @@ - epoxy_extension_in_string(const char *extension_list, const char *ext) - { - const char *ptr = extension_list; -+ if (! ptr) return false; -+ if (! ext) return false; - int len = strlen(ext); - - /* Make sure that don't just find an extension with our name as a prefix. */ -@@ -380,6 +382,7 @@ - - for (i = 0; i < num_extensions; i++) { - const char *gl_ext = (const char *)glGetStringi(GL_EXTENSIONS, i); -+ if (! gl_ext) return false; - if (strcmp(ext, gl_ext) == 0) - return true; - } -diff -ur libepoxy-1.3.1/src/dispatch_egl.c libepoxy-1.3.1/src/dispatch_egl.c ---- libepoxy-1.3.1/src/dispatch_egl.c 2015-07-15 19:46:36.000000000 -0400 -+++ libepoxy-1.3.1/src/dispatch_egl.c 2016-11-16 08:40:34.069358709 -0500 -@@ -46,6 +46,7 @@ - int ret; - - version_string = eglQueryString(dpy, EGL_VERSION); -+ if (! version_string) return 0; - ret = sscanf(version_string, "%d.%d", &major, &minor); - assert(ret == 2); - return major * 10 + minor; -diff -ur libepoxy-1.3.1/src/dispatch_glx.c libepoxy-1.3.1/src/dispatch_glx.c ---- libepoxy-1.3.1/src/dispatch_glx.c 2015-07-15 19:46:36.000000000 -0400 -+++ libepoxy-1.3.1/src/dispatch_glx.c 2016-11-16 08:41:03.065730370 -0500 -@@ -57,11 +57,13 @@ - int ret; - - version_string = glXQueryServerString(dpy, screen, GLX_VERSION); -+ if (! version_string) return 0; - ret = sscanf(version_string, "%d.%d", &server_major, &server_minor); - assert(ret == 2); - server = server_major * 10 + server_minor; - - version_string = glXGetClientString(dpy, GLX_VERSION); -+ if (! version_string) return 0; - ret = sscanf(version_string, "%d.%d", &client_major, &client_minor); - assert(ret == 2); - client = client_major * 10 + client_minor; -- cgit v1.2.3 From c05be50a6f95ac57924c9d7b6330f63c7d4346b0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 22 Feb 2017 07:15:45 +0100 Subject: gnu: graphite2: Update to 1.3.9. * gnu/packages/fontutils.scm (graphite2): Update to 1.3.9. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 1ffb427529..fad0cb11ab 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -366,7 +366,7 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.8") + (version "1.3.9") (source (origin (method url-fetch) @@ -374,7 +374,7 @@ applications should be.") "download/" version "/" name "-" version ".tgz")) (sha256 (base32 - "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz")))) + "0rs5h7m340z75kygx8d72cps0q6yvvqa9i788vym7585cfv8a0gc")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests -- cgit v1.2.3 From ba5e23d605dbbae7541d8d9a680e8fde3ad1d745 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 22 Feb 2017 12:42:52 +0100 Subject: gnu: xcb-proto: Update to 1.12. * gnu/packages/patches/xcb-proto-python3-print.patch, gnu/packages/patches/xcb-proto-python3-whitespace.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/xorg.scm (xcb-proto): Update to 1.12. [source]: Use patches. Download from new home. [home-page]: Change to new xcb.fd.o home. --- gnu/local.mk | 2 + gnu/packages/patches/xcb-proto-python3-print.patch | 75 +++++++ .../patches/xcb-proto-python3-whitespace.patch | 217 +++++++++++++++++++++ gnu/packages/xorg.scm | 11 +- 4 files changed, 301 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/xcb-proto-python3-print.patch create mode 100644 gnu/packages/patches/xcb-proto-python3-whitespace.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1e919c8483..dec231a08e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -968,6 +968,8 @@ dist_patch_DATA = \ %D%/packages/patches/wordnet-CVE-2008-2149.patch \ %D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \ %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ + %D%/packages/patches/xcb-proto-python3-print.patch \ + %D%/packages/patches/xcb-proto-python3-whitespace.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xf86-input-wacom-xorg-abi-25.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/xcb-proto-python3-print.patch b/gnu/packages/patches/xcb-proto-python3-print.patch new file mode 100644 index 0000000000..7d5dc9bc27 --- /dev/null +++ b/gnu/packages/patches/xcb-proto-python3-print.patch @@ -0,0 +1,75 @@ +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/xcb/proto/commit/?id=bea5e1c85bdc0950913790364e18228f20395a3d + +From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Thu, 19 May 2016 17:30:05 +0200 +Subject: [PATCH] print() is a function and needs parentheses. + +Fixes build with python-3.x. + +Signed-off-by: Thomas Klausner +Signed-off-by: Uli Schlachter +--- + xcbgen/xtypes.py | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py +index c3b5758..b83b119 100644 +--- a/xcbgen/xtypes.py ++++ b/xcbgen/xtypes.py +@@ -501,7 +501,7 @@ class ComplexType(Type): + int(required_start_align_element.get('align', "4"), 0), + int(required_start_align_element.get('offset', "0"), 0)) + if verbose_align_log: +- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align) ++ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align)) + + def resolve(self, module): + if self.resolved: +@@ -592,7 +592,7 @@ class ComplexType(Type): + if verbose_align_log: + print ("calc_required_start_align: %s has start-align %s" + % (str(self), str(self.required_start_align))) +- print "Details:\n" + str(log) ++ print ("Details:\n" + str(log)) + if self.required_start_align.offset != 0: + print (("WARNING: %s\n\thas start-align with non-zero offset: %s" + + "\n\tsuggest to add explicit definition with:" +@@ -619,12 +619,12 @@ class ComplexType(Type): + for offset in range(0,align): + align_candidate = Alignment(align, offset) + if verbose_align_log: +- print "trying %s for %s" % (str(align_candidate), str(self)) ++ print ("trying %s for %s" % (str(align_candidate), str(self))) + my_log = AlignmentLog() + if self.is_possible_start_align(align_candidate, callstack, my_log): + log.append(my_log) + if verbose_align_log: +- print "found start-align %s for %s" % (str(align_candidate), str(self)) ++ print ("found start-align %s for %s" % (str(align_candidate), str(self))) + return align_candidate + else: + my_ok_count = my_log.ok_count() +@@ -641,7 +641,7 @@ class ComplexType(Type): + # none of the candidates applies + # this type has illegal internal aligns for all possible start_aligns + if verbose_align_log: +- print "didn't find start-align for %s" % str(self) ++ print ("didn't find start-align for %s" % str(self)) + log.append(best_log) + return None + +@@ -900,7 +900,7 @@ class SwitchType(ComplexType): + # aux function for unchecked_get_alignment_after + def get_align_for_selected_case_field(self, case_field, start_align, callstack, log): + if verbose_align_log: +- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)) ++ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))) + total_align = start_align + for field in self.bitcases: + my_callstack = callstack[:] +-- +2.11.1 + diff --git a/gnu/packages/patches/xcb-proto-python3-whitespace.patch b/gnu/packages/patches/xcb-proto-python3-whitespace.patch new file mode 100644 index 0000000000..f0509138b2 --- /dev/null +++ b/gnu/packages/patches/xcb-proto-python3-whitespace.patch @@ -0,0 +1,217 @@ +Fixes compatibility issue with python > 3.5. + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/xcb/proto/commit/?id=ea7a3ac6c658164690e0febb55f4467cb9e0bcac + +From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Thu, 19 May 2016 17:30:04 +0200 +Subject: [PATCH] Make whitespace use consistent. + +At least python-3.5.x complains about this forcefully. + +Signed-off-by: Thomas Klausner +Signed-off-by: Uli Schlachter +--- + xcbgen/align.py | 96 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 48 insertions(+), 48 deletions(-) + +diff --git a/xcbgen/align.py b/xcbgen/align.py +index 5e31838..d4c12ee 100644 +--- a/xcbgen/align.py ++++ b/xcbgen/align.py +@@ -16,12 +16,12 @@ class Alignment(object): + return self.align == other.align and self.offset == other.offset + + def __str__(self): +- return "(align=%d, offset=%d)" % (self.align, self.offset) ++ return "(align=%d, offset=%d)" % (self.align, self.offset) + + @staticmethod + def for_primitive_type(size): +- # compute the required start_alignment based on the size of the type +- if size % 8 == 0: ++ # compute the required start_alignment based on the size of the type ++ if size % 8 == 0: + # do 8-byte primitives require 8-byte alignment in X11? + return Alignment(8,0) + elif size % 4 == 0: +@@ -33,7 +33,7 @@ class Alignment(object): + + + def align_after_fixed_size(self, size): +- new_offset = (self.offset + size) % self.align ++ new_offset = (self.offset + size) % self.align + return Alignment(self.align, new_offset) + + +@@ -41,7 +41,7 @@ class Alignment(object): + ''' + Assuming the given external_align, checks whether + self is fulfilled for all cases. +- Returns True if yes, False otherwise. ++ Returns True if yes, False otherwise. + ''' + if self.align == 1 and self.offset == 0: + # alignment 1 with offset 0 is always fulfilled +@@ -55,9 +55,9 @@ class Alignment(object): + # the external align guarantees less alignment -> not guaranteed + return False + +- if external_align.align % self.align != 0: ++ if external_align.align % self.align != 0: + # the external align cannot be divided by our align +- # -> not guaranteed ++ # -> not guaranteed + # (this can only happen if there are alignments that are not + # a power of 2, which is highly discouraged. But better be + # safe and check for it) +@@ -72,7 +72,7 @@ class Alignment(object): + + def combine_with(self, other): + # returns the alignment that is guaranteed when +- # both, self or other, can happen ++ # both, self or other, can happen + new_align = gcd(self.align, other.align) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align +@@ -83,8 +83,8 @@ class Alignment(object): + new_align = gcd(new_align, offset_diff) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align +- assert new_offset_candidate1 == new_offset_candidate2 +- new_offset = new_offset_candidate1 ++ assert new_offset_candidate1 == new_offset_candidate2 ++ new_offset = new_offset_candidate1 + # return the result + return Alignment(new_align, new_offset) + +@@ -92,44 +92,44 @@ class Alignment(object): + class AlignmentLog(object): + + def __init__(self): +- self.ok_list = [] +- self.fail_list = [] +- self.verbosity = 1 ++ self.ok_list = [] ++ self.fail_list = [] ++ self.verbosity = 1 + + def __str__(self): +- result = "" ++ result = "" + +- # output the OK-list +- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: +- stacksize = len(callstack) ++ # output the OK-list ++ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: ++ stacksize = len(callstack) + indent = ' ' * stacksize +- if self.ok_callstack_is_relevant(callstack): ++ if self.ok_callstack_is_relevant(callstack): + if field_name is None or field_name == "": +- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" +- % (indent, str(type_obj), indent, str(align_before), str(align_after))) +- else: +- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" +- % (indent, str(field_name), str(type_obj), +- indent, str(align_before), str(align_after))) ++ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" ++ % (indent, str(type_obj), indent, str(align_before), str(align_after))) ++ else: ++ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" ++ % (indent, str(field_name), str(type_obj), ++ indent, str(align_before), str(align_after))) + if self.verbosity >= 1: +- result += self.callstack_to_str(indent, callstack) ++ result += self.callstack_to_str(indent, callstack) + +- # output the fail-list +- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: +- stacksize = len(callstack) ++ # output the fail-list ++ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: ++ stacksize = len(callstack) + indent = ' ' * stacksize +- if field_name is None or field_name == "": +- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" +- % (indent, str(align_before), indent, str(type_obj), indent, reason)) +- else: +- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" +- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) ++ if field_name is None or field_name == "": ++ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" ++ % (indent, str(align_before), indent, str(type_obj), indent, reason)) ++ else: ++ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" ++ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) + + if self.verbosity >= 1: +- result += self.callstack_to_str(indent, callstack) ++ result += self.callstack_to_str(indent, callstack) + + +- return result ++ return result + + + def callstack_to_str(self, indent, callstack): +@@ -137,41 +137,41 @@ class AlignmentLog(object): + for stack_elem in callstack: + result += "\t %s%s\n" % (indent, str(stack_elem)) + result += "\t%s]\n" % indent +- return result ++ return result + + + def ok_callstack_is_relevant(self, ok_callstack): + # determine whether an ok callstack is relevant for logging +- if self.verbosity >= 2: +- return True ++ if self.verbosity >= 2: ++ return True + + # empty callstacks are always relevant +- if len(ok_callstack) == 0: ++ if len(ok_callstack) == 0: + return True + +- # check whether the ok_callstack is a subset or equal to a fail_callstack ++ # check whether the ok_callstack is a subset or equal to a fail_callstack + for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list: + if len(ok_callstack) <= len(fail_callstack): + zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)]) +- is_subset = all([i == j for i, j in zipped]) +- if is_subset: ++ is_subset = all([i == j for i, j in zipped]) ++ if is_subset: + return True + + return False + + + def ok(self, align_before, field_name, type_obj, callstack, align_after): +- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) ++ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) + + def fail(self, align_before, field_name, type_obj, callstack, reason): +- self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) ++ self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) + + def append(self, other): +- self.ok_list.extend(other.ok_list) +- self.fail_list.extend(other.fail_list) ++ self.ok_list.extend(other.ok_list) ++ self.fail_list.extend(other.fail_list) + + def ok_count(self): +- return len(self.ok_list) ++ return len(self.ok_list) + + + +-- +2.11.1 + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index dc500641f0..8bc54e6d52 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2053,21 +2053,24 @@ emulate a TI-30 or an HP-10C.") (define-public xcb-proto (package (name "xcb-proto") - (version "1.11") + (version "1.12") (source (origin (method url-fetch) (uri (string-append - "mirror://xorg/individual/xcb/xcb-proto-" + "https://xcb.freedesktop.org/dist/xcb-proto-" version ".tar.bz2")) (sha256 (base32 - "0bp3f53l9fy5x3mn1rkj1g81aiyzl90wacwvqdgy831aa3kfxb5l")))) + "01j91946q8f34l1mbvmmgvyc393sm28ym4lxlacpiav4qsjan8jr")) + (patches + (search-patches "xcb-proto-python3-whitespace.patch" + "xcb-proto-python3-print.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) - (home-page "https://www.x.org/wiki/") + (home-page "https://xcb.freedesktop.org/") (synopsis "XML-XCB protocol descriptions") (description "XCB-Proto provides the XML-XCB protocol descriptions that libxcb -- cgit v1.2.3 From 2f7b4749e702e6952632e02d2a0791099e4f931e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 22 Feb 2017 12:47:02 +0100 Subject: gnu: libxcb: Update to 1.12. * gnu/packages/patches/libxcb-python-3.5-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xorg.scm (libxcb): Update to 1.12. [source]: Add patch. Download from new home. [home-page]: Change to new xcb.fd.o home. --- gnu/local.mk | 1 + .../patches/libxcb-python-3.5-compat.patch | 64 ++++++++++++++++++++++ gnu/packages/xorg.scm | 10 ++-- 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/libxcb-python-3.5-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index dec231a08e..d0afedd6b1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -724,6 +724,7 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ + %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxml2-CVE-2016-4658.patch \ %D%/packages/patches/libxml2-CVE-2016-5131.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ diff --git a/gnu/packages/patches/libxcb-python-3.5-compat.patch b/gnu/packages/patches/libxcb-python-3.5-compat.patch new file mode 100644 index 0000000000..f652498aad --- /dev/null +++ b/gnu/packages/patches/libxcb-python-3.5-compat.patch @@ -0,0 +1,64 @@ +Fix compatibility issue with Python 3.5. + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/xcb/libxcb/commit/?id=8740a288ca468433141341347aa115b9544891d3 + +From 8740a288ca468433141341347aa115b9544891d3 Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Thu, 19 May 2016 17:31:18 +0200 +Subject: [PATCH] Fix inconsistent use of tabs vs. space. + +Needed for at least python-3.5.x. + +Signed-off-by: Thomas Klausner +Signed-off-by: Uli Schlachter +--- + src/c_client.py | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/c_client.py b/src/c_client.py +index 57de3fb..043338d 100644 +--- a/src/c_client.py ++++ b/src/c_client.py +@@ -1364,7 +1364,7 @@ def _c_serialize(context, self): + _c(' unsigned int xcb_align_to = 0;') + if self.is_switch: + _c(' unsigned int xcb_padding_offset = %d;', +- self.get_align_offset() ) ++ self.get_align_offset() ) + prefix = [('_aux', '->', self)] + aux_ptr = 'xcb_out' + +@@ -1390,7 +1390,7 @@ def _c_serialize(context, self): + _c(' unsigned int xcb_align_to = 0;') + if self.is_switch: + _c(' unsigned int xcb_padding_offset = %d;', +- self.get_align_offset() ) ++ self.get_align_offset() ) + + elif 'sizeof' == context: + param_names = [p[2] for p in params] +@@ -1930,14 +1930,14 @@ def _c_accessors_list(self, field): + # from the request size and divide that by the member size + return '(((R->length * 4) - sizeof('+ self.c_type + '))/'+'sizeof('+field.type.member.c_wiretype+'))' + else: +- # use the accessor to get the start of the list, then +- # compute the length of it by subtracting it from ++ # use the accessor to get the start of the list, then ++ # compute the length of it by subtracting it from + # the adress of the first byte after the end of the + # request +- after_end_of_request = '(((char*)R) + R->length * 4)' +- start_of_list = '%s(R)' % (field.c_accessor_name) ++ after_end_of_request = '(((char*)R) + R->length * 4)' ++ start_of_list = '%s(R)' % (field.c_accessor_name) + bytesize_of_list = '%s - (char*)(%s)' % (after_end_of_request, start_of_list) +- return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype) ++ return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype) + else: + raise Exception( + "lengthless lists with varsized members are not supported. Fieldname '%s'" +-- +2.11.1 + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 8bc54e6d52..115f9fb31b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4933,15 +4933,17 @@ protocol.") (define-public libxcb (package (name "libxcb") - (version "1.11.1") + (version "1.12") (source (origin (method url-fetch) - (uri (string-append "mirror://xorg/individual/xcb/" + (uri (string-append "https://xcb.freedesktop.org/dist/" name "-" version ".tar.bz2")) (sha256 (base32 - "0c4xyvdyx5adh8dzyhnrmvwwz24gri4z1czxmxqm63i0gmngs85p")))) + "0nvv0la91cf8p5qqlb3r5xnmg1jn2wphn4fb5jfbr6byqsvv3psa")) + (patches + (search-patches "libxcb-python-3.5-compat.patch")))) (build-system gnu-build-system) (propagated-inputs `(("libpthread-stubs" ,libpthread-stubs) @@ -4955,7 +4957,7 @@ protocol.") ("python" ,python-minimal-wrapper))) (arguments `(#:configure-flags '("--enable-xkb"))) - (home-page "https://www.x.org/wiki/") + (home-page "https://xcb.freedesktop.org/") (synopsis "The X C Binding (XCB) library") (description "libxcb provides an interface to the X Window System protocol, -- cgit v1.2.3 From 5f3070a500f22f32e606d30d0fa1c08a95704fda Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 23 Feb 2017 10:56:15 +0100 Subject: gnu: alsa-lib: Update to 1.1.3. * gnu/packages/patches/alsa-lib-mips-atomic-fix.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/linux.scm (alsa-lib): Update to 1.1.3. [source]: Remove patch. [home-page]: Use HTTPS. --- gnu/local.mk | 1 - gnu/packages/linux.scm | 7 ++-- .../patches/alsa-lib-mips-atomic-fix.patch | 42 ---------------------- 3 files changed, 3 insertions(+), 47 deletions(-) delete mode 100644 gnu/packages/patches/alsa-lib-mips-atomic-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index d0afedd6b1..d7c7ed347f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -481,7 +481,6 @@ dist_patch_DATA = \ %D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ - %D%/packages/patches/alsa-lib-mips-atomic-fix.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/arb-ldconfig.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f9b8810b06..eadd18f78d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -865,7 +865,7 @@ intercept and print the system calls executed by the program.") (define-public alsa-lib (package (name "alsa-lib") - (version "1.0.27.1") + (version "1.1.3") (source (origin (method url-fetch) (uri (string-append @@ -873,10 +873,9 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9")) - (patches (search-patches "alsa-lib-mips-atomic-fix.patch")))) + "174n2psp0328xcy2f1ayls67598bxli6q9cf00d2qnac3012aa3i")))) (build-system gnu-build-system) - (home-page "http://www.alsa-project.org/") + (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") (description "The Advanced Linux Sound Architecture (ALSA) provides audio and diff --git a/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch b/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch deleted file mode 100644 index 8c37bd3ac4..0000000000 --- a/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch +++ /dev/null @@ -1,42 +0,0 @@ -Fix the declarations of inlined atomic ops for mips. - -This patch was copied from Debian. - ---- alsa-lib/include/iatomic.h.orig 2013-05-21 04:48:28.000000000 -0400 -+++ alsa-lib/include/iatomic.h 2013-10-29 13:01:37.055995968 -0400 -@@ -720,7 +720,7 @@ - * Atomically adds @i to @v. Note that the guaranteed useful range - * of an atomic_t is only 24 bits. - */ --extern __inline__ void atomic_add(int i, atomic_t * v) -+static __inline__ void atomic_add(int i, atomic_t * v) - { - unsigned long temp; - -@@ -744,7 +744,7 @@ - * Atomically subtracts @i from @v. Note that the guaranteed - * useful range of an atomic_t is only 24 bits. - */ --extern __inline__ void atomic_sub(int i, atomic_t * v) -+static __inline__ void atomic_sub(int i, atomic_t * v) - { - unsigned long temp; - -@@ -763,7 +763,7 @@ - /* - * Same as above, but return the result value - */ --extern __inline__ int atomic_add_return(int i, atomic_t * v) -+static __inline__ int atomic_add_return(int i, atomic_t * v) - { - unsigned long temp, result; - -@@ -784,7 +784,7 @@ - return result; - } - --extern __inline__ int atomic_sub_return(int i, atomic_t * v) -+static __inline__ int atomic_sub_return(int i, atomic_t * v) - { - unsigned long temp, result; - -- cgit v1.2.3 From 83090f6ae7eb5353049b253f74670d72d9387463 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 23 Feb 2017 11:11:13 +0100 Subject: gnu: util-linux: Update to 2.29.2. * gnu/packages/linux.scm (util-linux): Update to 2.29.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index eadd18f78d..03b7e295d8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -475,7 +475,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.29.1") + (version "2.29.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -483,7 +483,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "0kzmhb2swiqk402jp0y2jsx53l42d7z4xz3bzbn2zv1lp400dr0c")) + "1qz81w8vzrmy8xn9yx7ls4amkbgwx6vr62pl6kv9g7r0g3ba9kmc")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From 816417f5a48cbdf8e551b47d36bb56be17dd4b9e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 24 Feb 2017 00:13:02 -0500 Subject: gnu: tcsh: Update to 6.20.00. * gnu/packages/shells.scm (tcsh): Update to 6.20.00. [source]: Remove 'tcsh-do-not-define-BSDWAIT.patch'. [inputs]: Remove coreutils. Move autoconf to ... [native-inputs]: ... here. Add perl. * gnu/packages/patches/tcsh-fix-autotest.patch: Adjust patch to upstream changes. * gnu/packages/patches/tcsh-do-not-define-BSDWAIT.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - .../patches/tcsh-do-not-define-BSDWAIT.patch | 33 ------ gnu/packages/patches/tcsh-fix-autotest.patch | 113 ++++++++++----------- gnu/packages/shells.scm | 12 +-- 4 files changed, 58 insertions(+), 101 deletions(-) delete mode 100644 gnu/packages/patches/tcsh-do-not-define-BSDWAIT.patch diff --git a/gnu/local.mk b/gnu/local.mk index d7c7ed347f..ec9332271f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -918,7 +918,6 @@ dist_patch_DATA = \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcl-mkindex-deterministic.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ - %D%/packages/patches/tcsh-do-not-define-BSDWAIT.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ diff --git a/gnu/packages/patches/tcsh-do-not-define-BSDWAIT.patch b/gnu/packages/patches/tcsh-do-not-define-BSDWAIT.patch deleted file mode 100644 index 1426883216..0000000000 --- a/gnu/packages/patches/tcsh-do-not-define-BSDWAIT.patch +++ /dev/null @@ -1,33 +0,0 @@ -Do not define BSDWAIT to avoid error "storage size of ‘w’ isn’t known". - -This is an adapted version of the upstream patch taken from here: -https://github.com/tcsh-org/tcsh/commit/4689eb60a74bf13bc146ca3d76e9d7a124ab7b49.patch - -From 4689eb60a74bf13bc146ca3d76e9d7a124ab7b49 Mon Sep 17 00:00:00 2001 -From: christos -Date: Fri, 23 Sep 2016 19:17:28 +0000 -Subject: [PATCH] Don't define BSDWAIT for linux anymore. - ---- - sh.proc.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/sh.proc.c b/sh.proc.c -index 49b199f..874d67c 100644 ---- sh.proc.c -+++ sh.proc.c -@@ -47,11 +47,9 @@ RCSID("$tcsh$") - # define HZ 16 - #endif /* aiws */ - --#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) --# if !defined(__ANDROID__) --# define BSDWAIT --# endif --#endif /* _BSD || (IRIS4D && __STDC__) || __lucid || glibc */ -+#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) -+# define BSDWAIT -+#endif /* _BSD || (IRIS4D && __STDC__) || __lucid */ - #ifndef WTERMSIG - # define WTERMSIG(w) (((union wait *) &(w))->w_termsig) - # ifndef BSDWAIT diff --git a/gnu/packages/patches/tcsh-fix-autotest.patch b/gnu/packages/patches/tcsh-fix-autotest.patch index a16980161c..78444a1b2a 100644 --- a/gnu/packages/patches/tcsh-fix-autotest.patch +++ b/gnu/packages/patches/tcsh-fix-autotest.patch @@ -1,6 +1,6 @@ ---- tests/commands.at 2011-01-22 01:04:02.000000000 +0100 -+++ tests/commands.at 2013-02-04 10:57:24.000000000 +0100 -@@ -919,26 +919,27 @@ +--- tests/commands.at ++++ tests/commands.at +@@ -921,26 +921,27 @@ AT_CLEANUP TCSH_UNTESTED([notify]) @@ -48,27 +48,9 @@ AT_SETUP([popd]) -@@ -1203,11 +1204,12 @@ - AT_DATA([script.csh], - [[set var=$1 - ]]) --AT_CHECK([[tcsh -f -c 'source -h script.csh foo; history' \ -- | sed 's/ [^ ]* / TIME /']], , --[ 1 TIME source -h script.csh foo ; history -- 2 TIME set var=$1 --]) -+# XXX: Not sure why this fails. The output is : "1 TIME set var=$1" -+#AT_CHECK([[tcsh -f -c 'source -h script.csh foo; history' \ -+# | sed 's/ [^ ]* / TIME /']], , -+#[ 1 TIME source -h script.csh foo ; history -+# 2 TIME set var=$1 -+#]) - - AT_CHECK([tcsh -f -c 'source -h script.csh foo; echo $var'], 1, [], - [var: Undefined variable. ---- tests/lexical.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/lexical.at 2013-02-04 10:53:21.000000000 +0100 -@@ -33,9 +33,9 @@ +--- tests/lexical.at ++++ tests/lexical.at +@@ -35,9 +35,9 @@ AT_CHECK([if [ ! -t 0 ]; then exit 77; fi],, [Skipping comment tests]) AT_CHECK([echo 'echo OK@%:@comment' | tcsh -f], , [OK ]) @@ -81,9 +63,33 @@ AT_DATA([comment2.csh], [[echo testing...@%:@\ ---- tests/subst.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/subst.at 2013-02-01 08:14:25.000000000 +0100 -@@ -54,7 +54,7 @@ +@@ -567,10 +567,10 @@ run=3 +# Adapt to changes in sed 4.3: +# https://github.com/tcsh-org/tcsh/commit/2ad4fc1705893207598ed5cd21713ddf3f17bba0 + ]]) + AT_DATA([uniformity_test.csh], + [[ +-set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'` ++set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'` + echo -n "$SERVICE_NAME_LOG" > ./output1 + +-cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2 ++cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2 + + diff -uprN ./output1 ./output2 >& /dev/null + +@@ -587,7 +587,7 @@ AT_DATA([quoting_result_test.csh], + echo "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP\)(HOST=db\)(PORT=1521\)\)(CONNECT_DATA=(SERVER=DEDICATED\)(SERVICE_NAME=bns03\)\)\)" > ./expected_result + + set string = "jdbc_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=bns03)))" +-set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'` ++set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'` + + echo "$SERVICE_NAME_LOG" > ./actual_result + +--- tests/subst.at ++++ tests/subst.at +@@ -54,7 +54,7 @@ AT_CHECK([echo 'echo ~; echo "$HOME"' | tcsh -f | uniq | wc -l | tr -d ' \t'], , [1 ]) @@ -92,39 +98,9 @@ | wc -l | tr -d ' \t'], , [1 ]) ---- tests/variables.at 2011-12-27 22:50:52.000000000 +0100 -+++ tests/variables.at 2013-02-04 11:40:35.000000000 +0100 -@@ -317,17 +317,18 @@ - AT_CLEANUP - - --AT_SETUP([$ edit]) -- --AT_CHECK([TERM=something tcsh -f -c 'echo $?edit'], , --[1 --]) -- --AT_CHECK([TERM=dumb tcsh -f -c 'echo $?edit'], , --[0 --]) -- --AT_CLEANUP -+# XXX -+#AT_SETUP([$ edit]) -+# -+#AT_CHECK([TERM=something tcsh -f -c 'echo $?edit'], , -+#[1 -+#]) -+# -+#AT_CHECK([TERM=dumb tcsh -f -c 'echo $?edit'], , -+#[0 -+#]) -+# -+#AT_CLEANUP - - - AT_SETUP([$ ellipsis]) -@@ -642,7 +643,8 @@ +--- tests/variables.at ++++ tests/variables.at +@@ -666,7 +666,8 @@ set listflags=(-xA $cwd/args.sh) ls-F -something . ]]) AT_DATA([args.sh], @@ -134,7 +110,22 @@ ]]) chmod a+x args.sh AT_CHECK([tcsh -f listflags.csh], , -@@ -695,55 +697,57 @@ +@@ -704,9 +705,9 @@ AT_CHECK([tcsh -f mail.csh], , +# This test fails by trying to change to the build user's home +# directory, which does not exist. + AT_CLEANUP + + +-AT_SETUP([$ cdtohome]) +-AT_CHECK([tcsh -f -c 'cd'], 0) +-AT_CLEANUP ++#AT_SETUP([$ cdtohome]) ++#AT_CHECK([tcsh -f -c 'cd'], 0) ++#AT_CLEANUP + AT_SETUP([$ noimplicithome]) + AT_CHECK([tcsh -f -c 'unset cdtohome; cd'], 1, , [cd: Too few arguments. + ]) +@@ -728,55 +729,57 @@ TCSH_UNTESTED([$ oid]) AT_SETUP([$ owd]) AT_DATA([owd.csh], diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index cc3968f9bf..d9e0f93a1a 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -218,7 +218,7 @@ written by Paul Haahr and Byron Rakitzis.") (define-public tcsh (package (name "tcsh") - (version "6.18.01") + (version "6.20.00") (source (origin (method url-fetch) ;; Old tarballs are moved to old/. @@ -228,16 +228,16 @@ written by Paul Haahr and Byron Rakitzis.") "old/tcsh-" version ".tar.gz"))) (sha256 (base32 - "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q")) + "17ggxkkn5skl0v1x0j6hbv5l0sgnidfzwv16992sqkdm983fg7dq")) (patches (search-patches "tcsh-fix-autotest.patch" - "tcsh-do-not-define-BSDWAIT.patch" "tcsh-fix-out-of-bounds-read.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) - (inputs + (native-inputs `(("autoconf" ,autoconf) - ("coreutils" ,coreutils) - ("ncurses" ,ncurses))) + ("perl" ,perl))) + (inputs + `(("ncurses" ,ncurses))) (arguments `(#:phases (alist-cons-before -- cgit v1.2.3 From c71011f80f17a7160d067a6b83e444b75f8bc527 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 24 Feb 2017 03:05:13 -0500 Subject: gnu: tcsh: Use modify-phases. * gnu/packages/shells.scm (tcsh)[arguments]: Use modify-phases. --- gnu/packages/shells.scm | 50 ++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index d9e0f93a1a..eb3e69bb86 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -240,32 +240,32 @@ written by Paul Haahr and Byron Rakitzis.") `(("ncurses" ,ncurses))) (arguments `(#:phases - (alist-cons-before - 'check 'patch-test-scripts - (lambda _ - ;; Take care of pwd - (substitute* '("tests/commands.at" "tests/variables.at") - (("/bin/pwd") (which "pwd"))) - ;; The .at files create shell scripts without shebangs. Erk. - (substitute* "tests/commands.at" - (("./output.sh") "/bin/sh output.sh")) - (substitute* "tests/syntax.at" - (("; other_script.csh") "; /bin/sh other_script.csh")) - ;; Now, let's generate the test suite and patch it - (system* "make" "tests/testsuite") + (modify-phases %standard-phases + (add-before 'check 'patch-test-scripts + (lambda _ + ;; Take care of pwd + (substitute* '("tests/commands.at" "tests/variables.at") + (("/bin/pwd") (which "pwd"))) + ;; The .at files create shell scripts without shebangs. Erk. + (substitute* "tests/commands.at" + (("./output.sh") "/bin/sh output.sh")) + (substitute* "tests/syntax.at" + (("; other_script.csh") "; /bin/sh other_script.csh")) + ;; Now, let's generate the test suite and patch it + (system* "make" "tests/testsuite") - ;; This file is ISO-8859-1 encoded. - (with-fluids ((%default-port-encoding #f)) - (substitute* "tests/testsuite" - (("/bin/sh") (which "sh"))))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (bin (string-append out "/bin"))) - (with-directory-excursion bin - (symlink "tcsh" "csh")))) - %standard-phases)))) + ;; This file is ISO-8859-1 encoded. + (with-fluids ((%default-port-encoding #f)) + (substitute* "tests/testsuite" + (("/bin/sh") (which "sh")))) + #t)) + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (symlink "tcsh" "csh")) + #t)))))) (home-page "http://www.tcsh.org/") (synopsis "Unix shell based on csh") (description -- cgit v1.2.3 From 55e61c4db856ed110c5a7e2398328d0bc2e1bcc4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 24 Feb 2017 13:37:18 -0500 Subject: gnu: gnutls: Support internationalized domain names. * gnu/packages/tls.scm (gnutls)[propagated-inputs]: Replace libidn with libidn2. --- gnu/packages/tls.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index d4ba77fed3..d2bc12ab40 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -198,7 +198,7 @@ living in the same process.") (propagated-inputs ;; These are all in the 'Requires.private' field of gnutls.pc. `(("libtasn1" ,libtasn1) - ("libidn" ,libidn) + ("libidn2" ,libidn2) ("nettle" ,nettle) ("zlib" ,zlib))) (home-page "https://www.gnu.org/software/gnutls/") -- cgit v1.2.3 From d470d2d520d0d29801b5263b84e3a5dd51ba4d58 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Feb 2017 13:05:52 +0100 Subject: gnu: libva: Update to 1.7.3. * gnu/packages/video.scm (libva): Update to 1.7.3. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c61b372af7..561de0412f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -399,7 +399,7 @@ SMPTE 314M.") (define-public libva (package (name "libva") - (version "1.7.1") + (version "1.7.3") (source (origin (method url-fetch) @@ -407,7 +407,7 @@ SMPTE 314M.") "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "1j8mb3p9kafhp30r3kmndnrklvzycc2ym0w6xdqz6m7jap626028")))) + (base32 "1ndrf136rlw03xag7j1xpmf9015d1h0dpnv6v587jnh6k2a17g12")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 9a9d6d782c4752124912e545b411ed8189e2d754 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Feb 2017 20:36:11 +0200 Subject: gnu: bdb@5.3: Support aarch64. * gnu/packages/databases.scm (bdb@5.3)[arguments]: Copy arguments from * bdb, add '--build' flag for aarch64. --- gnu/packages/databases.scm | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 93776c366c..877eac9559 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Leo Famulari -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 David Craven @@ -210,7 +210,44 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") version ".tar.gz")) (sha256 (base32 - "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0")))))) + "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0")))) + (arguments + `(#:tests? #f ; no check target available + #:disallowed-references ("doc") + #:phases + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + ;; '--docdir' is not honored, so we need to patch. + (substitute* "dist/Makefile.in" + (("docdir[[:blank:]]*=.*") + (string-append "docdir = " doc "/share/doc/bdb"))) + + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) + + ;; Bdb doesn't recognize aarch64 as an architecture. + ,@(if (string=? "aarch64-linux" (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '()) + + ;; Remove 7 MiB of .a files. + "--disable-static" + + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185" + + ;; The following flag is needed so that the inclusion + ;; of db_cxx.h into C++ files works; it leads to + ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. + "--enable-cxx")))) + %standard-phases))))) (define-public leveldb (package -- cgit v1.2.3 From d043ceedbb3ce1873db97cfe2c8806de64881f01 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Feb 2017 21:22:08 -0500 Subject: gnu: cups-minimal: Fix build failure in reset-gzip-timestamps phase. * gnu/packages/cups.scm (cups-minimal)[arguments]: Add 'make-manpages-writable' phase. --- gnu/packages/cups.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 20621e32b7..2649cd3469 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -166,6 +166,14 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (substitute* "Makedefs.in" (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") (("/bin/sh") (which "sh"))))) + ;; Make the compressed manpages writable so that the + ;; reset-gzip-timestamps phase does not error out. + (add-before 'reset-gzip-timestamps 'make-manpages-writable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man"))) + (for-each (lambda (file) (chmod file #o644)) + (find-files man "\\.gz"))))) (add-before 'build 'patch-tests (lambda _ (substitute* "test/ippserver.c" -- cgit v1.2.3 From 378618640da836d5a892f48ad64dda8465652127 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Feb 2017 21:45:44 -0500 Subject: gnu: eudev: Update to 3.2.1. * gnu/packages/linux.scm (eudev): Update to 3.2.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 03b7e295d8..b3fd9d2601 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1732,7 +1732,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2") + (version "3.2.1") (source (origin (method url-fetch) (uri (string-append @@ -1740,7 +1740,7 @@ from the module-init-tools project.") version ".tar.gz")) (sha256 (base32 - "099w62ncq78nxpxizf910mx18hc8x4qvzw3azjd00fir89wmyjnq")) + "06gyyl90n85x8i7lfhns514y1kg1ians13l467admyzy3kjxkqsp")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (native-inputs -- cgit v1.2.3 From f0a01af5c6e297f9068e4f359488e9fd0417fad2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Feb 2017 21:59:09 -0500 Subject: gnu: eudev: Fix build failure caused by conflicting function type declaration. * gnu/packages/patches/eudev-conflicting-declaration.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/linux.scm (eudev)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/linux.scm | 3 ++- .../patches/eudev-conflicting-declaration.patch | 31 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/eudev-conflicting-declaration.patch diff --git a/gnu/local.mk b/gnu/local.mk index ec9332271f..fbf0552afa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -541,6 +541,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/eudev-rules-directory.patch \ + %D%/packages/patches/eudev-conflicting-declaration.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ %D%/packages/patches/expat-CVE-2016-0718-fix-regression.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b3fd9d2601..fe72f98b78 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1741,7 +1741,8 @@ from the module-init-tools project.") (sha256 (base32 "06gyyl90n85x8i7lfhns514y1kg1ians13l467admyzy3kjxkqsp")) - (patches (search-patches "eudev-rules-directory.patch")))) + (patches (search-patches "eudev-rules-directory.patch" + "eudev-conflicting-declaration.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/patches/eudev-conflicting-declaration.patch b/gnu/packages/patches/eudev-conflicting-declaration.patch new file mode 100644 index 0000000000..f5399e20d3 --- /dev/null +++ b/gnu/packages/patches/eudev-conflicting-declaration.patch @@ -0,0 +1,31 @@ +Fix build failure due to conflicting declaration of +keyboard_lookup_key() in gperf-3.1: + +https://bugs.gentoo.org/show_bug.cgi?id=604864 + +Patch copied from upstream source repository: + +https://github.com/gentoo/eudev/commit/5bab4d8de0dcbb8e2e7d4d5125b4aea1652a0d60 + +From 5bab4d8de0dcbb8e2e7d4d5125b4aea1652a0d60 Mon Sep 17 00:00:00 2001 +From: "Anthony G. Basile" +Date: Thu, 5 Jan 2017 16:21:17 -0500 +Subject: [PATCH] src/udev/udev-builtin-keyboard.c: fix build with gperf 3.1 + +Signed-off-by: Anthony G. Basile +--- + src/udev/udev-builtin-keyboard.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/udev/udev-builtin-keyboard.c b/src/udev/udev-builtin-keyboard.c +index 73171c3..fad3520 100644 +--- a/src/udev/udev-builtin-keyboard.c ++++ b/src/udev/udev-builtin-keyboard.c +@@ -28,7 +28,6 @@ + + #include "udev.h" + +-static const struct key *keyboard_lookup_key(const char *str, unsigned len); + #include "keyboard-keys-from-name.h" + #include "keyboard-keys-to-name.h" + -- cgit v1.2.3 From fe36608f99384f0bb6d3376038b8ddd82841b020 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Feb 2017 11:13:16 -0500 Subject: gnu: fontconfig: Fix build failure caused by symbol conflict with glibc@2.25. * gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/fontutils.scm (fontconfig)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/fontutils.scm | 1 + .../fontconfig-charwidth-symbol-conflict.patch | 82 ++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch diff --git a/gnu/local.mk b/gnu/local.mk index fbf0552afa..6f7bed9d11 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -558,6 +558,7 @@ dist_patch_DATA = \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ + %D%/packages/patches/fontconfig-charwidth-symbol-conflict.patch \ %D%/packages/patches/fontforge-svg-modtime.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index fad0cb11ab..ad15659f6e 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -229,6 +229,7 @@ fonts to/from the WOFF2 format.") (uri (string-append "https://www.freedesktop.org/software/fontconfig/release/fontconfig-" version ".tar.bz2")) + (patches (search-patches "fontconfig-charwidth-symbol-conflict.patch")) (sha256 (base32 "1wy7svvp7df6bjpg1m5vizb3ngd7rhb20vpclv3x3qa71khs6jdl")))) (build-system gnu-build-system) diff --git a/gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch b/gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch new file mode 100644 index 0000000000..8ebe33bc6c --- /dev/null +++ b/gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch @@ -0,0 +1,82 @@ +The first patch is copied from the upstream source repository: + +https://cgit.freedesktop.org/fontconfig/commit/?id=1ab5258f7c2abfafcd63a760ca08bf93591912da + +The second patch is adapted from a message to from the OpenEmbedded mailing list: + +http://lists.openembedded.org/pipermail/openembedded-core/2016-December/130213.html + +From 1ab5258f7c2abfafcd63a760ca08bf93591912da Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 14 Dec 2016 16:11:05 -0800 +Subject: Avoid conflicts with integer width macros from TS 18661-1:2014 + +glibc 2.25+ has now defined these macros in +https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a + +Create an alias for FC_CHAR_WIDTH for ABI compatibility + +Signed-off-by: Khem Raj + +diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h +index 5c72b22..070a557 100644 +--- a/fontconfig/fontconfig.h ++++ b/fontconfig/fontconfig.h +@@ -128,7 +128,8 @@ typedef int FcBool; + #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION + + /* Adjust outline rasterizer */ +-#define FC_CHAR_WIDTH "charwidth" /* Int */ ++#define FC_CHARWIDTH "charwidth" /* Int */ ++#define FC_CHAR_WIDTH FC_CHARWIDTH + #define FC_CHAR_HEIGHT "charheight"/* Int */ + #define FC_MATRIX "matrix" /* FcMatrix */ + +diff --git a/src/fcobjs.h b/src/fcobjs.h +index 1fc4f65..d27864b 100644 +--- a/src/fcobjs.h ++++ b/src/fcobjs.h +@@ -51,7 +51,7 @@ FC_OBJECT (DPI, FcTypeDouble, NULL) + FC_OBJECT (RGBA, FcTypeInteger, NULL) + FC_OBJECT (SCALE, FcTypeDouble, NULL) + FC_OBJECT (MINSPACE, FcTypeBool, NULL) +-FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL) ++FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL) + FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL) + FC_OBJECT (MATRIX, FcTypeMatrix, NULL) + FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet) +-- +cgit v0.10.2 + +From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 11 Dec 2016 14:32:00 -0800 +Subject: [PATCH] Avoid conflicts with integer width macros from TS + 18661-1:2014 + +glibc 2.25+ has now defined these macros in +https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + fontconfig/fontconfig.h | 2 +- + src/fcobjs.h | 2 +- + src/fcobjshash.gperf | 2 +- + src/fcobjshash.h | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +Index: fontconfig-2.12.1/src/fcobjshash.h +=================================================================== +--- fontconfig-2.12.1.orig/src/fcobjshash.h ++++ fontconfig-2.12.1/src/fcobjshash.h +@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT}, + {-1}, + #line 47 "fcobjshash.gperf" +- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT}, ++ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT}, + #line 48 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT}, + #line 55 "fcobjshash.gperf" -- cgit v1.2.3 From 56a44e2d5b16ff9b54468f0f48d8fa679b8163ed Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 26 Feb 2017 15:37:54 -0500 Subject: gnu: gd: Fix test failure with FreeType 2.7. * gnu/packages/patches/gd-freetype-test-failure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gd.scm (gd)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/gd.scm | 3 +- .../patches/gd-freetype-test-failure.patch | 59 ++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gd-freetype-test-failure.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6f7bed9d11..dc210c7662 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -581,6 +581,7 @@ dist_patch_DATA = \ %D%/packages/patches/gd-fix-gd2-read-test.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-fix-truecolor-format-correction.patch \ + %D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gegl-CVE-2012-4433.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 1c2be119b1..8cac242b5d 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -51,7 +51,8 @@ (base32 "1rp4v7n1dq38b92kl7gkvpvqqkw7nvdfnz6d5kip5klkxfki6zqk")) (patches (search-patches "gd-fix-gd2-read-test.patch" - "gd-fix-tests-on-i686.patch")))) + "gd-fix-tests-on-i686.patch" + "gd-freetype-test-failure.patch")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/gd-freetype-test-failure.patch b/gnu/packages/patches/gd-freetype-test-failure.patch new file mode 100644 index 0000000000..49c16ca089 --- /dev/null +++ b/gnu/packages/patches/gd-freetype-test-failure.patch @@ -0,0 +1,59 @@ +Fix a test failure with freetype 2.7: + +https://github.com/libgd/libgd/commit/a5570d3ed30ff76c2a8bdd54f4ab1825acca0143 + +Patch copied from upstream source repository: + +https://github.com/libgd/libgd/commit/a5570d3ed30ff76c2a8bdd54f4ab1825acca0143 + +From a5570d3ed30ff76c2a8bdd54f4ab1825acca0143 Mon Sep 17 00:00:00 2001 +From: "Christoph M. Becker" +Date: Sun, 29 Jan 2017 17:07:50 +0100 +Subject: [PATCH] Fix #302: Test suite fails with freetype 2.7 + +Actually, the test failures are not necessarily related to freetype +2.7, but rather are caused by subpixel hinting which is enabled by +default in freetype 2.7. Subpixel hinting is, however, already +available in freetype 2.5 and in versions having the "Infinality" +patch. + +To get the expected results in all environments, we have to disable +subpixel hinting, what is easily done by setting a respective +environment variable. + +See also: +* https://www.freetype.org/freetype2/docs/subpixel-hinting.html +* https://www.freetype.org/freetype2/docs/reference/ft2-tt_driver.html +--- + tests/freetype/bug00132.c | 3 +++ + tests/gdimagestringft/gdimagestringft_bbox.c | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/tests/freetype/bug00132.c b/tests/freetype/bug00132.c +index 713dd2d..42ed5b1 100644 +--- a/tests/freetype/bug00132.c ++++ b/tests/freetype/bug00132.c +@@ -11,6 +11,9 @@ int main() + char *path; + char *ret = NULL; + ++ /* disable subpixel hinting */ ++ putenv("FREETYPE_PROPERTIES=truetype:interpreter-version=35"); ++ + im = gdImageCreateTrueColor(50, 30); + + if (!im) { +diff --git a/tests/gdimagestringft/gdimagestringft_bbox.c b/tests/gdimagestringft/gdimagestringft_bbox.c +index 0161ec8..1596a9e 100644 +--- a/tests/gdimagestringft/gdimagestringft_bbox.c ++++ b/tests/gdimagestringft/gdimagestringft_bbox.c +@@ -38,6 +38,9 @@ int main() + int error = 0; + FILE *fp; + ++ /* disable subpixel hinting */ ++ putenv("FREETYPE_PROPERTIES=truetype:interpreter-version=35"); ++ + path = gdTestFilePath("freetype/DejaVuSans.ttf"); + im = gdImageCreate(800, 800); + gdImageColorAllocate(im, 0xFF, 0xFF, 0xFF); /* allocate white for background color */ -- cgit v1.2.3 From ac2d5de3dae5a1854f27e1a0b4c09f71001cb91a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Feb 2017 20:12:18 +0100 Subject: gnu: libssh2: Fix build failure after 1.8.0 upgrade. * gnu/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ssh.scm (libssh2)[source]: Use it. [arguments]: Add 'autoreconf' phase. [native-inputs]: Add AUTOCONF and AUTOMAKE. --- gnu/local.mk | 1 + .../libssh2-fix-build-failure-with-gcrypt.patch | 33 ++++++++++++++++++++++ gnu/packages/ssh.scm | 12 ++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch diff --git a/gnu/local.mk b/gnu/local.mk index dc210c7662..3d9ad7065c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -692,6 +692,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ + %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-2016-10092.patch \ diff --git a/gnu/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch b/gnu/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch new file mode 100644 index 0000000000..4133be7fc9 --- /dev/null +++ b/gnu/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch @@ -0,0 +1,33 @@ +This fixes a regression introduced in 1.8.0 where libssh2 fails to build +with the gcrypt backend. + +Upstream bug URL: + +https://github.com/libssh2/libssh2/issues/150 + +Patch copied from upstream source repository: + +https://github.com/libssh2/libssh2/commit/ced924b78a40126606797ef57a74066eb3b4b83f + +From ced924b78a40126606797ef57a74066eb3b4b83f Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Mon, 31 Oct 2016 09:04:33 +0000 +Subject: [PATCH] acinclude.m4: fix ./configure --with-libgcrypt + +diff --git a/acinclude.m4 b/acinclude.m4 +index 734ef07..c78260c 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -412,9 +412,9 @@ AC_DEFUN([LIBSSH2_CHECKFOR_GCRYPT], [ + + old_LDFLAGS=$LDFLAGS + old_CFLAGS=$CFLAGS +- if test -n "$use_libgcrypt" && test "$use_libgcrypt" != "no"; then +- LDFLAGS="$LDFLAGS -L$use_libgcrypt/lib" +- CFLAGS="$CFLAGS -I$use_libgcrypt/include" ++ if test -n "$with_libgcrypt_prefix" && test "$use_libgcrypt" != "no"; then ++ LDFLAGS="$LDFLAGS -L$with_libgcrypt_prefix/lib" ++ CFLAGS="$CFLAGS -I$with_libgcrypt_prefix/include" + fi + AC_LIB_HAVE_LINKFLAGS([gcrypt], [], [ + #include diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index c48e3e6f90..2e502fe7fc 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -93,13 +93,21 @@ remote applications.") version ".tar.gz")) (sha256 (base32 - "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr")))) + "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr")) + (patches + (search-patches "libssh2-fix-build-failure-with-gcrypt.patch")))) (build-system gnu-build-system) ;; The installed libssh2.pc file does not include paths to libgcrypt and ;; zlib libraries, so we need to propagate the inputs. (propagated-inputs `(("libgcrypt" ,libgcrypt) ("zlib" ,zlib))) - (arguments '(#:configure-flags `("--with-libgcrypt"))) + (arguments '(#:configure-flags `("--with-libgcrypt") + #:phases (modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-v"))))))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake))) (synopsis "Client-side C library implementing the SSH2 protocol") (description "libssh2 is a library intended to allow software developers access to -- cgit v1.2.3 From 3de15bb740dbadf89cdcbd1b0737057996f4f87a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Feb 2017 22:59:50 +0200 Subject: gnu: freetype: Update to 2.7.1. * gnu/packages/fontutils.scm (freetype): Update to 2.7.1. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index ad15659f6e..ea324d3cd2 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -46,13 +46,13 @@ (define-public freetype (package (name "freetype") - (version "2.7") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "0j3xgzn6pchgg1nm294vhx7cdicb7x3x8kwnlcm7v1alnzsm396n")))) + "121gm15ayfg3rglby8ifh8384mcjb9dhmx9j40zl7yszw72b4frs")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From b9375d89443f2ce55a4f659fd95097982489d55c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Feb 2017 23:39:14 +0100 Subject: gnu: kmod: Update to 24. * gnu/packages/linux.scm (kmod): Update to 24. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fe72f98b78..71d4597920 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1687,7 +1687,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (define-public kmod (package (name "kmod") - (version "23") + (version "24") (source (origin (method url-fetch) (uri @@ -1695,7 +1695,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") "kmod-" version ".tar.xz")) (sha256 (base32 - "0mc12sx06p8il1ym3hdmgxxb37apn9yv7xij26gddjdfkx8xa0yk")) + "15xkkkzvca9flvkm48gkh8y8f13vlm3sl7nz9ydc7b3jy4fqs2v1")) (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs -- cgit v1.2.3 From 212c775c9cf6263770ea686eaed9bcf867a68bcd Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Feb 2017 23:40:09 +0100 Subject: gnu: bluez: Update to 5.44. * gnu/packages/linux.scm (bluez): Update to 5.44. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 71d4597920..c1e495675f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2618,7 +2618,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.43") + (version "5.44") (source (origin (method url-fetch) (uri (string-append @@ -2626,7 +2626,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "05cdnpz0w2lwq2x5ba87q1h2wgb4lfnpbnbh6p7499hx59fw1j8n")))) + "11bc6pndivd0rkqr3c8a1xd9ar9bb60gx79piskycicb3wliwchc")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 1c598515cd1e969ca950107a6e01941f48e25c37 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Feb 2017 08:29:05 +0200 Subject: gnu: fontconfig: Fix test-suite for freetype update. * gnu/packages/fontutils.scm (fontconfig)[arguments]: Add phase to fix the test-suite to have the input expected. --- gnu/packages/fontutils.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index ea324d3cd2..136b5bc992 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2016 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -255,6 +255,11 @@ fonts to/from the WOFF2 format.") "PYTHON=false") #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-tests-for-freetype-2.7.1 + (lambda _ + (substitute* "test/run-test.sh" + (("\\\| sort") "| cut -d' ' -f2 | sort")) + #t)) (replace 'install (lambda _ ;; Don't try to create /var/cache/fontconfig. -- cgit v1.2.3 From daed5b7ed31289826517a03fc6d10586703dc989 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 27 Feb 2017 11:27:43 +0100 Subject: gnu: libx11: Update to 1.6.5. * gnu/packages/xorg.scm (libx11): Update to 1.6.5. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 115f9fb31b..ea21c416ef 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5123,7 +5123,7 @@ draggable titlebars and borders.") (define-public libx11 (package (name "libx11") - (version "1.6.4") + (version "1.6.5") (source (origin (method url-fetch) @@ -5133,7 +5133,7 @@ draggable titlebars and borders.") ".tar.bz2")) (sha256 (base32 - "0hg46i6h92pmb7xp1cis2j43zq3fkdz89p0yv35w4vm17az4iixp")))) + "0pa3cfp6h9rl2vxmkph65250gfqyki0ccqyaan6bl9d25gdr0f2d")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of man pages + XML -- cgit v1.2.3 From 8e5652f924a5ef8605b791999b600fd510a8f6e6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 27 Feb 2017 11:41:54 +0100 Subject: gnu: harfbuzz: Update to 1.4.3. * gnu/packages/gtk.scm (harfbuzz): Update to 1.4.3. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 953272de40..92f399ecb6 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -168,7 +168,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.4.1") + (version "1.4.3") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -176,7 +176,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1g8mndf0p0fzjfvxrprga84zvqq186gbddnw6wbna7cscfmpz8l5")))) + "08akv3qzwnf48xajb60dfcchkmfdjkpp65a0xd8s98w81901g343")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo -- cgit v1.2.3 From 751702676e0dcf39657082138f45340b65ae4d3e Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sat, 25 Feb 2017 18:57:14 +0200 Subject: guix: build: make-bootstrap: Copy "falloc.h" to the new system. In glibc-2.25 a dependency on "linux/falloc.h" was added. This also reverts commit 8f8f250bdca917b3ce38aa0902f01b19081859a4 which is no longer needed. This commit was not compatible with the glibc version Hurd is using. See * guix/build/make-bootstrap.scm (make-stripped-libc): Copy "falloc.h" to the new system. * gnu/packages/patches/glibc-bootstrap-system.patch: Remove part that touches fcntl-linux.h. Problem reported by Andreas Enge . --- gnu/packages/patches/glibc-bootstrap-system.patch | 24 +---------------------- guix/build/make-bootstrap.scm | 2 +- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch b/gnu/packages/patches/glibc-bootstrap-system.patch index 6d09efed2c..2f8e7da7e1 100644 --- a/gnu/packages/patches/glibc-bootstrap-system.patch +++ b/gnu/packages/patches/glibc-bootstrap-system.patch @@ -3,10 +3,6 @@ and popen(3) need to be tweaked to use the right shell. For the bootstrap glibc, we just use whatever `sh' can be found in $PATH. The final glibc instead uses the hard-coded absolute file name of `bash'. -The second part that touches fcntl-linux.h reverts a change from glibc-2.25 -which would require the statically compiled glibc used in bootstrapping to -depend on the linux kernel headers. - --- a/sysdeps/posix/system.c +++ b/sysdeps/posix/system.c @@ -134,7 +134,7 @@ do_system (const char *line) @@ -31,22 +27,4 @@ depend on the linux kernel headers. } _IO_close (child_end); ---- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h -@@ -318,7 +318,15 @@ struct f_owner_ex - - - /* Flags for fallocate. */ -+# define FALLOC_FL_KEEP_SIZE 1 /* Don't extend size of file -+ even if offset + len is -+ greater than file size. */ -+# define FALLOC_FL_PUNCH_HOLE 2 /* Create a hole in the file. */ -+# define FALLOC_FL_COLLAPSE_RANGE 8 /* Remove a range of a file -+ without leaving a -+ hole. */ -+# define FALLOC_FL_ZERO_RANGE 16 /* Convert a range of a -+ file to zeros. */ --# include - - - /* File handle structure. */ + diff --git a/guix/build/make-bootstrap.scm b/guix/build/make-bootstrap.scm index 21c78cc8f5..43b136248f 100644 --- a/guix/build/make-bootstrap.scm +++ b/guix/build/make-bootstrap.scm @@ -55,7 +55,7 @@ when producing a bootstrap libc." (string-append incdir "/linux"))) '("limits.h" "errno.h" "socket.h" "kernel.h" "sysctl.h" "param.h" "ioctl.h" "types.h" - "posix_types.h" "stddef.h")) + "posix_types.h" "stddef.h" "falloc.h")) (copy-recursively (string-append kernel-headers "/include/asm") (string-append incdir "/asm")) -- cgit v1.2.3 From 29796b3f94b6cb5955c4e6d99afba8fe1a799bd7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 28 Feb 2017 02:03:56 -0500 Subject: gnu: cups: Fix build failure in reset-gzip-timestamps phase. * gnu/packages/cups.scm (cups)[arguments]: Add 'make-manpages-writable' phase. --- gnu/packages/cups.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 2649cd3469..dc070fff83 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -275,6 +275,14 @@ device-specific programs to convert and print many types of files.") (string-append "cupsFileFind(\"cat\", \"" catpath "\"")) (("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"") (string-append "cupsFileFind(\"cat\", \"" catpath "\"")))))) + ;; Make the compressed manpages writable so that the + ;; reset-gzip-timestamps phase does not error out. + (add-before 'reset-gzip-timestamps 'make-manpages-writable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man"))) + (for-each (lambda (file) (chmod file #o644)) + (find-files man "\\.gz"))))) (add-after 'install 'install-cups-filters-symlinks (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From 4407a3535b03a6eaad339d870809c341b21af307 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Feb 2017 23:00:36 -0500 Subject: gnu: flex: Update to 2.6.3. * gnu/packages/flex.scm (flex): Update to 2.6.3. --- gnu/packages/flex.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm index d9abbfa4e2..2d31660f3e 100644 --- a/gnu/packages/flex.scm +++ b/gnu/packages/flex.scm @@ -32,7 +32,7 @@ (define-public flex (package (name "flex") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +41,7 @@ "flex-" version ".tar.gz")) (sha256 (base32 - "1jdjghh1qjq3z7snphshcak6p07gch2n4215vjvrkism25x460cs")))) + "1an2cn2z85mkpgqcinh1fhhcd7993qm2lil1yxic8iz76ci79ck8")))) (build-system gnu-build-system) (inputs (let ((bison-for-tests -- cgit v1.2.3 From f3a24b46c82f6a8e9f2638cbfe01f70abc4de04f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Feb 2017 23:01:09 -0500 Subject: gnu: doxygen: Update to 1.8.13. * gnu/packages/documentation.scm (doxygen): Update to 1.8.13. --- gnu/packages/documentation.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index e0713c31c6..cd42bc0f35 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -86,14 +86,14 @@ markup) can be customized and extended by the user.") (define-public doxygen (package (name "doxygen") - (version "1.8.11") + (version "1.8.13") (source (origin (method url-fetch) (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" name "-" version ".src.tar.gz")) (sha256 (base32 - "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35")) + "0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg")) (patches (search-patches "doxygen-test.patch")))) (build-system cmake-build-system) (native-inputs -- cgit v1.2.3 From 7ed7be3c2e11f78ccfa2e123f63c522c4b902f97 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 1 Mar 2017 22:17:23 +0200 Subject: gnu: gd: Fix test failure on aarch64. * gnu/packages/gd.scm (gd)[arguments]: Add make-flag -ffp-contract=off to work around upstream bug 278. --- gnu/packages/gd.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 8cac242b5d..ea13540415 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016, 2017 Leo Famulari +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,7 +56,10 @@ "gd-freetype-test-failure.patch")))) (build-system gnu-build-system) (arguments - `(#:phases + ;; As recommended by github.com/libgd/libgd/issues/278 to fix rounding + ;; issues on aarch64 and other architectures. + `(#:make-flags '("CFLAGS=-ffp-contract=off") + #:phases (modify-phases %standard-phases ;; This test is known to fail on i686-linux: ;; https://github.com/libgd/libgd/issues/359 @@ -64,7 +68,8 @@ (lambda _ (substitute* "tests/gdimagegrayscale/basic.c" (("return gdNumFailures\\(\\)") - "return 0"))))))) + "return 0")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From cec21d689d1ee0c2dbd2b1c81887a51b2b3279b5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 1 Mar 2017 22:43:46 +0200 Subject: gnu: libdrm-symbol-check.patch: Add case for radeon. * gnu/packages/patches/libdrm-symbol-check.patch: Add the extra seven symbols from the public headers to the radeon-symbol-check to satisfy the test. Also add aarch64-linux to the list of architectures affected. --- gnu/packages/patches/libdrm-symbol-check.patch | 27 +++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch index 676024beb4..69c67e778d 100644 --- a/gnu/packages/patches/libdrm-symbol-check.patch +++ b/gnu/packages/patches/libdrm-symbol-check.patch @@ -1,5 +1,5 @@ Augment the list of expected symbols to fix the symbol-check tests on -mips64el-linux and armhf-linux. +mips64el-linux, armhf-linux and aarch64-linux. --- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400 +++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400 @@ -193,3 +193,28 @@ mips64el-linux and armhf-linux. drm_tegra_bo_get_flags drm_tegra_bo_get_handle drm_tegra_bo_get_tiling + +--- libdrm-2.4.65/radeon/radeon-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/radeon/radeon-symbol-check 2015-10-18 23:57:00.756759698 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_RADEON_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + radeon_bo_debug + radeon_bo_get_handle + radeon_bo_get_src_domain -- cgit v1.2.3 From 10045e5c81b6dfcf3804ceb1bb4b8df04bde7c98 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 2 Mar 2017 11:51:43 +0200 Subject: gnu: pth: Add support for aarch64. * gnu/packages/pth.scm (pth)[arguments]: When compiling on aarch64 add the '--host=aarch64' flag. [home-page]: Use https. --- gnu/packages/pth.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pth.scm b/gnu/packages/pth.scm index 50385b14f8..ed6637b330 100644 --- a/gnu/packages/pth.scm +++ b/gnu/packages/pth.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2015 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,8 +38,13 @@ "0ckjqw5kz5m30srqi87idj7xhpw6bpki43mj07bazjm2qmh3cdbj")))) (build-system gnu-build-system) (arguments - '(#:parallel-build? #f)) - (home-page "http://www.gnu.org/software/pth") + `(#:parallel-build? #f + #:configure-flags (list + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '())))) + (home-page "https://www.gnu.org/software/pth") (synopsis "Portable thread library") (description "GNU Pth is a portable library providing non-preemptive, priority-based -- cgit v1.2.3 From 37e78bc7f2707ec621274e4ed8c307a3da9843c6 Mon Sep 17 00:00:00 2001 From: Rene Saavedra Date: Wed, 1 Mar 2017 19:19:01 -0600 Subject: gnu: fontconfig: Fix PATH_MAX for Hurd systems. * gnu/packages/patches/fontconfig-path-max.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/fontutils.scm (fontconfig)[source]: Use it. Signed-off-by: Manolis Ragkousis --- gnu/local.mk | 3 +- gnu/packages/fontutils.scm | 4 +- gnu/packages/patches/fontconfig-path-max.patch | 124 +++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/fontconfig-path-max.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3d9ad7065c..abb1b0405c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -5,7 +5,7 @@ # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver # Copyright © 2016 Chris Marusich # Copyright © 2016, 2017 Kei Kebreau -# Copyright © 2016 Rene Saavedra +# Copyright © 2016, 2017 Rene Saavedra # Copyright © 2016 Adonay "adfeno" Felipe Nogueira # Copyright © 2016, 2017 Ricardo Wurmus # Copyright © 2016 Ben Woodcroft @@ -559,6 +559,7 @@ dist_patch_DATA = \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/fontconfig-charwidth-symbol-conflict.patch \ + %D%/packages/patches/fontconfig-path-max.patch \ %D%/packages/patches/fontforge-svg-modtime.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 136b5bc992..d89bd49b74 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2017 Rene Saavedra ;;; ;;; This file is part of GNU Guix. ;;; @@ -229,7 +230,8 @@ fonts to/from the WOFF2 format.") (uri (string-append "https://www.freedesktop.org/software/fontconfig/release/fontconfig-" version ".tar.bz2")) - (patches (search-patches "fontconfig-charwidth-symbol-conflict.patch")) + (patches (search-patches "fontconfig-charwidth-symbol-conflict.patch" + "fontconfig-path-max.patch")) (sha256 (base32 "1wy7svvp7df6bjpg1m5vizb3ngd7rhb20vpclv3x3qa71khs6jdl")))) (build-system gnu-build-system) diff --git a/gnu/packages/patches/fontconfig-path-max.patch b/gnu/packages/patches/fontconfig-path-max.patch new file mode 100644 index 0000000000..e12f60ef00 --- /dev/null +++ b/gnu/packages/patches/fontconfig-path-max.patch @@ -0,0 +1,124 @@ +This patch fix the build on GNU/Hurd, due to PATH_MAX isn't defined. + +The patch was adapted from upstream source repository: +'' +Commit: abdb6d658e1a16410dd1c964e365a3ebd5039e7c + +--- + src/fcdefault.c | 34 +++++++++++++++++++++++++++------- + src/fcint.h | 6 ++++++ + src/fcstat.c | 12 +++++++++++- + 3 files changed, 44 insertions(+), 8 deletions(-) + +diff --git a/src/fcdefault.c b/src/fcdefault.c +index 6647a8f..5afd7ec 100644 +--- a/src/fcdefault.c ++++ b/src/fcdefault.c +@@ -148,17 +148,34 @@ retry: + prgname = FcStrdup (""); + #else + # if defined (HAVE_GETEXECNAME) +- const char *p = getexecname (); ++ char *p = FcStrdup(getexecname ()); + # elif defined (HAVE_READLINK) +- char buf[PATH_MAX + 1]; +- int len; ++ size_t size = FC_PATH_MAX; + char *p = NULL; + +- len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1); +- if (len != -1) ++ while (1) + { +- buf[len] = '\0'; +- p = buf; ++ char *buf = malloc (size); ++ ssize_t len; ++ ++ if (!buf) ++ break; ++ ++ len = readlink ("/proc/self/exe", buf, size - 1); ++ if (len < 0) ++ { ++ free (buf); ++ break; ++ } ++ if (len < size - 1) ++ { ++ buf[len] = 0; ++ p = buf; ++ break; ++ } ++ ++ free (buf); ++ size *= 2; + } + # else + char *p = NULL; +@@ -176,6 +193,9 @@ retry: + + if (!prgname) + prgname = FcStrdup (""); ++ ++ if (p) ++ free (p); + #endif + + if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) { +diff --git a/src/fcint.h b/src/fcint.h +index ac911ad..dad34c5 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -70,6 +70,12 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA; + # define FC_DIR_SEPARATOR_S "/" + #endif + ++#ifdef PATH_MAX ++#define FC_PATH_MAX PATH_MAX ++#else ++#define FC_PATH_MAX 128 ++#endif ++ + #if __GNUC__ >= 4 + #define FC_UNUSED __attribute__((unused)) + #else +diff --git a/src/fcstat.c b/src/fcstat.c +index 1734fa4..f6e1aaa 100644 +--- a/src/fcstat.c ++++ b/src/fcstat.c +@@ -278,8 +278,13 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) + { + #endif + struct stat statb; +- char f[PATH_MAX + 1]; ++ char *f = malloc (len + 1 + dlen + 1); + ++ if (!f) ++ { ++ ret = -1; ++ goto bail; ++ } + memcpy (f, dir, len); + f[len] = FC_DIR_SEPARATOR; + memcpy (&f[len + 1], files[n]->d_name, dlen); +@@ -287,11 +292,16 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) + if (lstat (f, &statb) < 0) + { + ret = -1; ++ free (f); + goto bail; + } + if (S_ISDIR (statb.st_mode)) ++ { ++ free (f); + goto bail; ++ } + ++ free (f); + dtype = statb.st_mode; + #ifdef HAVE_STRUCT_DIRENT_D_TYPE + } +-- +2.11.0 + -- cgit v1.2.3 From e8293ef12cd3df77f4111163fa5ac554480d134b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 27 Feb 2017 11:09:11 +0100 Subject: gnu: gd: Fix an issue with XBM decoding. * gnu/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch: New file. * gnu/local.scm (dist_patch_DATA): Add it. * gnu/packages/gd.scm (gd)[source]: Use it. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 + gnu/packages/gd.scm | 3 +- .../patches/gd-php-73968-Fix-109-XBM-reading.patch | 121 +++++++++++++++++++++ 3 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch diff --git a/gnu/local.mk b/gnu/local.mk index abb1b0405c..5765a3f332 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -583,6 +583,7 @@ dist_patch_DATA = \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-fix-truecolor-format-correction.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \ + %D%/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch \ %D%/packages/patches/gegl-CVE-2012-4433.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index ea13540415..62c8fd8588 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -53,7 +53,8 @@ "1rp4v7n1dq38b92kl7gkvpvqqkw7nvdfnz6d5kip5klkxfki6zqk")) (patches (search-patches "gd-fix-gd2-read-test.patch" "gd-fix-tests-on-i686.patch" - "gd-freetype-test-failure.patch")))) + "gd-freetype-test-failure.patch" + "gd-php-73968-Fix-109-XBM-reading.patch")))) (build-system gnu-build-system) (arguments ;; As recommended by github.com/libgd/libgd/issues/278 to fix rounding diff --git a/gnu/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch b/gnu/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch new file mode 100644 index 0000000000..a926c1455c --- /dev/null +++ b/gnu/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch @@ -0,0 +1,121 @@ +This bug was first reported to php on https://bugs.php.net/bug.php?id=73968. +php then reported it to gd in https://github.com/libgd/libgd/issues/109. + +Patch adapted from upstream source repository: + +https://github.com/libgd/libgd/commit/082c5444838ea0d84f9fb6441aefdb44d78d9bba + +Binary diffs have been removed from the patch because our patch +procedure doesn't support them. + +From 082c5444838ea0d84f9fb6441aefdb44d78d9bba Mon Sep 17 00:00:00 2001 +From: "Christoph M. Becker" +Date: Fri, 20 Jan 2017 22:48:20 +0100 +Subject: [PATCH] Fix #109: XBM reading fails with printed error + +When calculating the number of required bytes of an XBM image, we have +to take the line padding into account. +--- + src/gd_xbm.c | 2 +- + tests/xbm/CMakeLists.txt | 1 + + tests/xbm/Makemodule.am | 5 ++++- + tests/xbm/github_bug_109.c | 35 +++++++++++++++++++++++++++++++++++ + tests/xbm/github_bug_109.xbm | 5 +++++ + 5 files changed, 47 insertions(+), 2 deletions(-) + create mode 100644 tests/xbm/github_bug_109.c + create mode 100644 tests/xbm/github_bug_109.xbm + create mode 100644 tests/xbm/github_bug_109_exp.png + +diff --git a/src/gd_xbm.c b/src/gd_xbm.c +index 5f09b56..c2ba2ad 100644 +--- a/src/gd_xbm.c ++++ b/src/gd_xbm.c +@@ -108,7 +108,7 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromXbm(FILE * fd) + max_bit = 32768; + } + if (max_bit) { +- bytes = (width * height / 8) + 1; ++ bytes = (width + 7) / 8 * height; + if (!bytes) { + return 0; + } +diff --git a/tests/xbm/CMakeLists.txt b/tests/xbm/CMakeLists.txt +index 183cf5e..08576e0 100644 +--- a/tests/xbm/CMakeLists.txt ++++ b/tests/xbm/CMakeLists.txt +@@ -1,4 +1,5 @@ + LIST(APPEND TESTS_FILES ++ github_bug_109 + github_bug_170 + ) + +diff --git a/tests/xbm/Makemodule.am b/tests/xbm/Makemodule.am +index ba1eabd..0f5beb6 100644 +--- a/tests/xbm/Makemodule.am ++++ b/tests/xbm/Makemodule.am +@@ -1,5 +1,8 @@ + libgd_test_programs += \ ++ xbm/github_bug_109 \ + xbm/github_bug_170 + + EXTRA_DIST += \ +- xbm/CMakeLists.txt ++ xbm/CMakeLists.txt \ ++ xbm/github_bug_109.xbm \ ++ xbm/github_bug_109_exp.png +diff --git a/tests/xbm/github_bug_109.c b/tests/xbm/github_bug_109.c +new file mode 100644 +index 0000000..1a020c6 +--- /dev/null ++++ b/tests/xbm/github_bug_109.c +@@ -0,0 +1,35 @@ ++/** ++ * Test reading of XBM images with a width that is not a multiple of 8 ++ * ++ * We're reading such an XBM image, and check that we got what we've expected, ++ * instead of an error message. ++ * ++ * See also . ++ */ ++ ++ ++#include "gd.h" ++#include "gdtest.h" ++ ++ ++int main() ++{ ++ gdImagePtr im; ++ FILE *fp; ++ char *path; ++ ++ fp = gdTestFileOpen2("xbm", "github_bug_109.xbm"); ++ im = gdImageCreateFromXbm(fp); ++ fclose(fp); ++ gdTestAssert(im != NULL); ++ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 0) == 0); ++ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 1) == 0xffffff); ++ ++ path = gdTestFilePath2("xbm", "github_bug_109_exp.png"); ++ gdAssertImageEqualsToFile(path, im); ++ gdFree(path); ++ ++ gdImageDestroy(im); ++ ++ return gdNumFailures(); ++} +diff --git a/tests/xbm/github_bug_109.xbm b/tests/xbm/github_bug_109.xbm +new file mode 100644 +index 0000000..f427d86 +--- /dev/null ++++ b/tests/xbm/github_bug_109.xbm +@@ -0,0 +1,5 @@ ++#define test_width 10 ++#define test_height 10 ++static unsigned char test_bits[] = { ++ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, ++ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00}; + +-- +2.7.4 + -- cgit v1.2.3 From 60a5080675e3787c51b6cd61d43c610f85e4028a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 27 Feb 2017 11:15:29 +0100 Subject: gnu: php: Update to 7.1.2. * gnu/packages/php.scm (php): Update to 7.1.2. [inputs]: Add gnutls. [arguments]: Disable more tests in 'prepare-tests' phase. (gd-for-php): Remove variable. * gnu/packages/patches/gd-fix-chunk-size-on-boundaries.patch, gnu/packages/patches/gd-fix-truecolor-format-correction.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. Signed-off-by: Leo Famulari --- gnu/local.mk | 2 - .../patches/gd-fix-chunk-size-on-boundaries.patch | 102 --------------------- .../gd-fix-truecolor-format-correction.patch | 95 ------------------- gnu/packages/php.scm | 27 +++--- 4 files changed, 13 insertions(+), 213 deletions(-) delete mode 100644 gnu/packages/patches/gd-fix-chunk-size-on-boundaries.patch delete mode 100644 gnu/packages/patches/gd-fix-truecolor-format-correction.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5765a3f332..e4114be65b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -578,10 +578,8 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcj-arm-mode.patch \ %D%/packages/patches/gdk-pixbuf-list-dir.patch \ - %D%/packages/patches/gd-fix-chunk-size-on-boundaries.patch \ %D%/packages/patches/gd-fix-gd2-read-test.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ - %D%/packages/patches/gd-fix-truecolor-format-correction.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch \ %D%/packages/patches/gegl-CVE-2012-4433.patch \ diff --git a/gnu/packages/patches/gd-fix-chunk-size-on-boundaries.patch b/gnu/packages/patches/gd-fix-chunk-size-on-boundaries.patch deleted file mode 100644 index e395c66d89..0000000000 --- a/gnu/packages/patches/gd-fix-chunk-size-on-boundaries.patch +++ /dev/null @@ -1,102 +0,0 @@ -This fixes PHP bug #73155: https://bugs.php.net/bug.php?id=73155 - -Patch adapted from upstream source repository: - -https://github.com/libgd/libgd/commit/8067a8ac336dfe0acbe96ec2eb24572209a7f279 - -(.gitignore change removed) - -From 8067a8ac336dfe0acbe96ec2eb24572209a7f279 Mon Sep 17 00:00:00 2001 -From: "Christoph M. Becker" -Date: Fri, 23 Sep 2016 18:29:52 +0200 -Subject: [PATCH] Fix #309: gdImageGd2() writes wrong chunk sizes on boundaries - -(cherry picked from commit bb1998a16e30d542ab22eba5501911a9aa066edb) ---- - src/gd_gd2.c | 4 ++-- - tests/gd2/CMakeLists.txt | 1 + - tests/gd2/Makemodule.am | 1 + - tests/gd2/bug00309.c | 37 +++++++++++++++++++++++++++++++++++++ - 4 files changed, 41 insertions(+), 2 deletions(-) - create mode 100644 tests/gd2/bug00309.c - -diff --git a/src/gd_gd2.c b/src/gd_gd2.c -index 75e5e1f..b9b2f93 100644 ---- a/src/gd_gd2.c -+++ b/src/gd_gd2.c -@@ -938,8 +938,8 @@ _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt) - }; - - /* Work out number of chunks. */ -- ncx = im->sx / cs + 1; -- ncy = im->sy / cs + 1; -+ ncx = (im->sx + cs - 1) / cs; -+ ncy = (im->sy + cs - 1) / cs; - - /* Write the standard header. */ - _gd2PutHeader (im, out, cs, fmt, ncx, ncy); -diff --git a/tests/gd2/CMakeLists.txt b/tests/gd2/CMakeLists.txt -index 3b650ad..247b466 100644 ---- a/tests/gd2/CMakeLists.txt -+++ b/tests/gd2/CMakeLists.txt -@@ -1,5 +1,6 @@ - SET(TESTS_FILES - bug_289 -+ bug00309 - gd2_empty_file - gd2_im2im - gd2_null -diff --git a/tests/gd2/Makemodule.am b/tests/gd2/Makemodule.am -index b8ee946..d69aee0 100644 ---- a/tests/gd2/Makemodule.am -+++ b/tests/gd2/Makemodule.am -@@ -1,5 +1,6 @@ - libgd_test_programs += \ - gd2/bug_289 \ -+ gd2/bug00309 \ - gd2/gd2_empty_file \ - gd2/php_bug_72339 \ - gd2/gd2_read_corrupt -diff --git a/tests/gd2/bug00309.c b/tests/gd2/bug00309.c -new file mode 100644 -index 0000000..b649cdc ---- /dev/null -+++ b/tests/gd2/bug00309.c -@@ -0,0 +1,37 @@ -+/** -+ * Regression test for . -+ * -+ * We test that an image with 64x64 pixels reports only a single chunk in the -+ * GD2 image header when the chunk size is 64. -+ */ -+ -+ -+#include "gd.h" -+#include "gdtest.h" -+ -+ -+int main() -+{ -+ gdImagePtr im; -+ unsigned char *buf; -+ int size, word; -+ -+ im = gdImageCreate(64, 64); -+ gdImageColorAllocate(im, 0, 0, 0); -+ -+ buf = gdImageGd2Ptr(im, 64, 1, &size); -+ -+ gdImageDestroy(im); -+ -+ word = buf[10] << 8 | buf[11]; -+ gdTestAssertMsg(word == 64, "chunk size is %d, but expected 64\n", word); -+ word = buf[14] << 8 | buf[15]; -+ gdTestAssertMsg(word == 1, "x chunk count is %d, but expected 1\n", word); -+ word = buf[16] << 8 | buf[17]; -+ gdTestAssertMsg(word == 1, "y chunk count is %d, but expected 1\n", word); -+ gdTestAssertMsg(size == 5145, "file size is %d, but expected 5145\n", size); -+ -+ gdFree(buf); -+ -+ return gdNumFailures(); -+} diff --git a/gnu/packages/patches/gd-fix-truecolor-format-correction.patch b/gnu/packages/patches/gd-fix-truecolor-format-correction.patch deleted file mode 100644 index be3eff9327..0000000000 --- a/gnu/packages/patches/gd-fix-truecolor-format-correction.patch +++ /dev/null @@ -1,95 +0,0 @@ -This fixes PHP bug #73159: https://bugs.php.net/bug.php?id=73159 - -Patch lifted from upstream source repository: - -https://github.com/libgd/libgd/commit/e1f61a4141d2e0937a13b8bfb1992b9f29eb05f5 - -From e1f61a4141d2e0937a13b8bfb1992b9f29eb05f5 Mon Sep 17 00:00:00 2001 -From: "Christoph M. Becker" -Date: Mon, 15 Aug 2016 17:49:40 +0200 -Subject: [PATCH] Fix #289: Passing unrecognized formats to gdImageGd2 results - in corrupted files - -We must not apply the format correction twice for truecolor images. - -(cherry picked from commit 09090c125658e23a4ae2a2e002646bb7278bd89e) ---- - src/gd_gd2.c | 2 +- - tests/gd2/CMakeLists.txt | 1 + - tests/gd2/Makemodule.am | 1 + - tests/gd2/bug_289.c | 33 +++++++++++++++++++++++++++++++++ - 4 files changed, 36 insertions(+), 1 deletion(-) - create mode 100644 tests/gd2/bug_289.c - -diff --git a/src/gd_gd2.c b/src/gd_gd2.c -index 86c881e..75e5e1f 100644 ---- a/src/gd_gd2.c -+++ b/src/gd_gd2.c -@@ -918,7 +918,7 @@ _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt) - /* Force fmt to a valid value since we don't return anything. */ - /* */ - if ((fmt != GD2_FMT_RAW) && (fmt != GD2_FMT_COMPRESSED)) { -- fmt = im->trueColor ? GD2_FMT_TRUECOLOR_COMPRESSED : GD2_FMT_COMPRESSED; -+ fmt = GD2_FMT_COMPRESSED; - }; - if (im->trueColor) { - fmt += 2; -diff --git a/tests/gd2/CMakeLists.txt b/tests/gd2/CMakeLists.txt -index 8aecacc..3b650ad 100644 ---- a/tests/gd2/CMakeLists.txt -+++ b/tests/gd2/CMakeLists.txt -@@ -1,4 +1,5 @@ - SET(TESTS_FILES -+ bug_289 - gd2_empty_file - gd2_im2im - gd2_null -diff --git a/tests/gd2/Makemodule.am b/tests/gd2/Makemodule.am -index 754a284..b8ee946 100644 ---- a/tests/gd2/Makemodule.am -+++ b/tests/gd2/Makemodule.am -@@ -1,4 +1,5 @@ - libgd_test_programs += \ -+ gd2/bug_289 \ - gd2/gd2_empty_file \ - gd2/php_bug_72339 \ - gd2/gd2_read_corrupt -diff --git a/tests/gd2/bug_289.c b/tests/gd2/bug_289.c -new file mode 100644 -index 0000000..ad311e9 ---- /dev/null -+++ b/tests/gd2/bug_289.c -@@ -0,0 +1,33 @@ -+/** -+ * Passing an unrecognized format to gdImageGd2() should result in -+ * GD2_FMT_TRUECOLOR_COMPRESSED for truecolor images. -+ * -+ * See . -+ */ -+ -+#include "gd.h" -+#include "gdtest.h" -+ -+ -+#define GD2_FMT_UNRECOGNIZED 0 -+#define GD2_FMT_TRUECOLOR_COMPRESSED 4 -+ -+#define MSG "expected %s byte to be %d, but got %d\n" -+ -+ -+int main() -+{ -+ gdImagePtr im; -+ char *buffer; -+ int size; -+ -+ im = gdImageCreateTrueColor(10, 10); -+ gdTestAssert(im != NULL); -+ buffer = (char *) gdImageGd2Ptr(im, 128, GD2_FMT_UNRECOGNIZED, &size); -+ gdTestAssert(buffer != NULL); -+ gdImageDestroy(im); -+ gdTestAssertMsg(buffer[12] == 0, MSG, "1st", 0, buffer[12]); -+ gdTestAssertMsg(buffer[13] == GD2_FMT_TRUECOLOR_COMPRESSED, MSG, "2nd", GD2_FMT_TRUECOLOR_COMPRESSED, buffer[13]); -+ -+ return gdNumFailures(); -+} diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 16b098517a..0dfee36c1b 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -50,21 +50,10 @@ #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:)) -;; This fixes PHP bugs 73155 and 73159. Remove when gd -;; is updated to > 2.2.3. -(define gd-for-php - (package (inherit gd) - (source - (origin - (inherit (package-source gd)) - (patches (search-patches - "gd-fix-truecolor-format-correction.patch" - "gd-fix-chunk-size-on-boundaries.patch")))))) - (define-public php (package (name "php") - (version "7.0.14") + (version "7.1.2") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -72,7 +61,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "12ccgbrfchgvmcfb88rcknq7xmrf19c5ysdr4v8jxk51j9izy78g")) + "0wg9ng230w724rpwsrhcg4pw41xm1xhz0zx76haanyymkz1s05fq")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -179,6 +168,13 @@ "ext/standard/tests/general_functions/bug44667.phpt" "ext/standard/tests/general_functions/proc_open.phpt") (("/bin/cat") (which "cat"))) + + ;; These tests fail because they include a file whose modification + ;; time is 0. Touch them to make the test pass. The issue is reported + ;; upstream as #74137. + (utime "sapi/phpdbg/tests/include.inc" 1 1) + (utime "sapi/phpdbg/tests/phpdbg_get_executable_stream_wrapper.inc" 1 1) + ;; The encoding of this file is not recognized, so we simply drop it. (delete-file "ext/mbstring/tests/mb_send_mail07.phpt") @@ -257,8 +253,10 @@ ;; The test expects an Array, but instead get the contents(?). "ext/gd/tests/bug43073.phpt" ;; imagettftext() returns wrong coordinates. + "ext/gd/tests/bug48732-mb.phpt" "ext/gd/tests/bug48732.phpt" ;; Similarly for imageftbbox(). + "ext/gd/tests/bug48801-mb.phpt" "ext/gd/tests/bug48801.phpt" ;; Different expected output from imagecolorallocate(). "ext/gd/tests/bug53504.phpt" @@ -291,10 +289,11 @@ ("curl" ,curl) ("cyrus-sasl" ,cyrus-sasl) ("freetype" ,freetype) - ("gd" ,gd-for-php) + ("gd" ,gd) ("gdbm" ,gdbm) ("glibc" ,glibc) ("gmp" ,gmp) + ("gnutls" ,gnutls) ("libgcrypt" ,libgcrypt) ("libjpeg" ,libjpeg) ("libpng" ,libpng) -- cgit v1.2.3 From 848d643874125d846b43e916bca901487ab15e15 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Mar 2017 13:44:48 -0500 Subject: gnu: xorg-server: Update to 1.19.2 [fixes CVE-2017-2624]. * gnu/packages/xorg.scm (xorg-server): Update to 1.19.2. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index ea21c416ef..095a2c4ac7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4979,7 +4979,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.1") + (version "1.19.2") (source (origin (method url-fetch) @@ -4988,7 +4988,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "1yx7cnlhl14hsdq5lg0740s4nxqxkmaav38x428llv1zkprjrbkr")))) + "1fw4b2lf75nsqkiyhn95b1c2if1l3cw5a188a1szx1d8l7sbk2jg")))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) -- cgit v1.2.3 From fe6db6ecff9ab0b2d7a66b27491e4d1a15e6f982 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Mar 2017 14:05:53 -0500 Subject: gnu: libxdmcp: Build with libbsd [fixes CVE-2017-2625]. * gnu/packages/xorg.scm (libxdmcp)[inputs]: Add libbsd. --- gnu/packages/xorg.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 095a2c4ac7..3601ff8361 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -48,6 +48,7 @@ #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) #:use-module (gnu packages image) + #:use-module (gnu packages libbsd) #:use-module (gnu packages linux) #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) @@ -1247,7 +1248,8 @@ with the Cygwin XWin server when running X11 in a rootless mode.") "1qp4yhxbfnpj34swa0fj635kkihdkwaiw7kf55cg5zqqg630kzl1")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto))) + `(("libbsd" ,libbsd) + ("xproto" ,xproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") -- cgit v1.2.3 From 5eda3d824cae4b44ddecb82ddbe76e80bf19f82d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Mar 2017 14:07:23 -0500 Subject: gnu: libice: Build with libbsd [fixes CVE-2017-2626]. * gnu/packages/xorg.scm (libice)[inputs]: Add libbsd. --- gnu/packages/xorg.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 3601ff8361..3a38553fe6 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4703,7 +4703,8 @@ common definitions and porting layer.") (propagated-inputs `(("xproto" ,xproto))) (inputs - `(("xtrans" ,xtrans))) + `(("libbsd" ,libbsd) + ("xtrans" ,xtrans))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") -- cgit v1.2.3 From 74a2b2b43933201966e30eeeb58596a616df16bd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Mar 2017 14:33:14 -0500 Subject: Revert "gnu: xorg-server: Update to 1.19.2 [fixes CVE-2017-2624]." This release was not properly bootstrapped: https://lists.x.org/archives/xorg-announce/2017-March/002780.html We will wait for 1.19.3 before updating. This reverts commit 848d643874125d846b43e916bca901487ab15e15. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 3a38553fe6..31ea296d4e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4982,7 +4982,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.2") + (version "1.19.1") (source (origin (method url-fetch) @@ -4991,7 +4991,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "1fw4b2lf75nsqkiyhn95b1c2if1l3cw5a188a1szx1d8l7sbk2jg")))) + "1yx7cnlhl14hsdq5lg0740s4nxqxkmaav38x428llv1zkprjrbkr")))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) -- cgit v1.2.3 From b773e9b005fe0479f6504dcbb9d44d5a380de95e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 9 Feb 2017 20:45:09 +0200 Subject: gnu: gcc: Force Aarch64 to use /lib. * gnu/packages/gcc.scm (gcc)[arguments]: On aarch64 replace force libdir to be lib and not lib64. --- gnu/packages/gcc.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 075642ebd1..9376679f14 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -263,6 +263,12 @@ where the OS part is overloaded to denote a specific ABI---into GCC (("static char const sed_cmd_z\\[\\] =.*;") "static char const sed_cmd_z[] = \"sed\";")) + ;; Aarch64 support didn't land in GCC until the 4.8 series. + (when (file-exists? "gcc/config/aarch64") + ;; Force Aarch64 libdir to be /lib and not /lib64 + (substitute* "gcc/config/aarch64/t-aarch64-linux" + (("lib64") "lib"))) + (when (file-exists? "libbacktrace") ;; GCC 4.8+ comes with libbacktrace. By default it builds ;; with -Werror, which fails with a -Wcast-qual error in glibc -- cgit v1.2.3 From 093c6f8bc734246491530e58b363fbdd6782f439 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 18 Oct 2016 09:50:37 +0200 Subject: gnu: mesa: Build LLVM Gallium drivers. Fixes . * gnu/packages/gl.scm (mesa)[inputs]: Add llvm. [arguments]: Build LLVM Gallium drivers. --- gnu/packages/gl.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 53f720ac2a..fce44b43e2 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2016 David Thompson ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2016 ng0 -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. @@ -33,6 +33,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages guile) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages video) @@ -230,14 +231,15 @@ also known as DXTn or DXTC) for Mesa.") ("makedepend" ,makedepend) ("presentproto" ,presentproto) ("s2tc" ,s2tc) + ("llvm" ,llvm) ("wayland" ,wayland))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-2))) (arguments `(#:configure-flags - '(;; drop r300 from default gallium drivers, as it requires llvm - "--with-gallium-drivers=r600,svga,swrast,nouveau,virgl" + '("--with-gallium-drivers=i915,r300,r600,svga,swrast,nouveau,virgl" + "--enable-gallium-llvm" ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio "--with-egl-platforms=x11,drm,wayland" -- cgit v1.2.3 From aac67f210df820e84cdd380dc061e417ebd2154e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 7 Mar 2017 22:37:58 -0500 Subject: gnu: Add flex-2.6.1. * gnu/packages/flex.scm (flex-2.6.1): New variable. --- gnu/packages/flex.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm index 2d31660f3e..1470b967da 100644 --- a/gnu/packages/flex.scm +++ b/gnu/packages/flex.scm @@ -85,3 +85,20 @@ regular expressions for each rule. Whenever it finds a match, it executes the corresponding C code.") (license (non-copyleft "file://COPYING" "See COPYING in the distribution.")))) + +;;; Many packages fail to build with flex > 2.6.1, due to this bug in flex: +;;; +;;; We must not use a flex before 2.6.1, due to CVE-2016-6354. +;;; TODO Try using flex > 2.6.3. +(define-public flex-2.6.1 + (package + (inherit flex) + (version "2.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/westes/flex" + "/releases/download/v" version "/" + "flex-" version ".tar.xz")) + (sha256 + (base32 + "0gqhk4vkwy4gl9xbpgkljph8c0a5kpijz6wd0p5r9q202qn42yic")))))) -- cgit v1.2.3 From af50d389c5ceaf978182c8d783a4d0e76c56655f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 7 Mar 2017 22:38:35 -0500 Subject: gnu: grub: Fix build failure with recent flex. * gnu/packages/bootloaders.scm (grub)[native-inputs]: Use flex-2.6.1. --- gnu/packages/bootloaders.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 16cb7b4c0b..86a776910a 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -27,7 +27,6 @@ #:use-module (gnu packages admin) #:use-module ((gnu packages algebra) #:select (bc)) #:use-module (gnu packages assembly) - #:use-module (gnu packages flex) #:use-module (gnu packages disk) #:use-module (gnu packages bison) #:use-module (gnu packages cdrom) @@ -115,7 +114,10 @@ (native-inputs `(("unifont" ,unifont) ("bison" ,bison) - ("flex" ,flex) + ;; Due to a bug in flex >= 2.6.2, GRUB must be built with an older flex: + ;; + ;; TODO Try building with flex > 2.6.3. + ("flex" ,flex-2.6.1) ("texinfo" ,texinfo) ("help2man" ,help2man) -- cgit v1.2.3 From e3ff83834b6b55256410b7f7eb94a81d226c8a29 Mon Sep 17 00:00:00 2001 From: Troy Sankey Date: Mon, 6 Mar 2017 19:31:02 -0500 Subject: gnu: git: force GIT_EXEC_PATH to be single-entry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (git)[native-search-paths](separator): New field. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9cbd492208..d2ddfeef00 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -295,6 +295,7 @@ as well as the classic centralized workflow.") (files '("etc/ssl/certs/ca-certificates.crt"))) (search-path-specification (variable "GIT_EXEC_PATH") + (separator #f) ;single entry (files '("libexec/git-core"))))) (synopsis "Distributed version control system") -- cgit v1.2.3 From 9a91b00fd08e652d158bd6bf96bdcb045f7c72cb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Mar 2017 13:44:48 -0500 Subject: gnu: xorg-server: Update to 1.19.2 [fixes CVE-2017-2624]. * gnu/packages/xorg.scm (xorg-server): Update to 1.19.2. [native-inputs]: Add font-util, libtool, autoconf, and automake. [arguments]: Add 'bootstrap' phase. --- gnu/packages/xorg.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 31ea296d4e..5c9300e209 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4982,7 +4982,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.1") + (version "1.19.2") (source (origin (method url-fetch) @@ -4991,7 +4991,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "1yx7cnlhl14hsdq5lg0740s4nxqxkmaav38x428llv1zkprjrbkr")))) + "1fw4b2lf75nsqkiyhn95b1c2if1l3cw5a188a1szx1d8l7sbk2jg")))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) @@ -5050,7 +5050,12 @@ over Xlib, including: ("xcb-util-wm" ,xcb-util-wm))) (native-inputs `(("python" ,python-minimal-wrapper) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ;; XXX Bootstrapping inputs for 1.19.2. Remove for > 1.19.2. + ("font-util" ,font-util) + ("libtool" ,libtool) + ("autoconf" ,autoconf) + ("automake" ,automake))) (arguments `(#:parallel-tests? #f #:configure-flags @@ -5077,6 +5082,10 @@ over Xlib, including: #:phases (modify-phases %standard-phases + ;; XXX The 1.19.2 release of xorg-server was not bootstrapped: + ;; + (add-before 'configure 'bootstrap + (lambda _ (zero? (system* "autoreconf" "-vfi")))) (add-before 'configure 'pre-configure (lambda _ -- cgit v1.2.3 From da79e82b14b78dba7247cd39c370efd7887ed9fc Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 8 Mar 2017 00:40:37 -0500 Subject: gnu: gtk+: Build GTK+ with its own xorg-server package. This will allow us to update xorg-server directly on the master branch. * gnu/packages/xorg.scm (xorg-server-1.19.2): New variable. * gnu/packages/gtk.scm (gtk+) [native-inputs]: Use xorg-server-1.19.2 instead of xorg-server. [arguments]: Add xorg-server-1.19.2 to #:disallowed-references. --- gnu/packages/gtk.scm | 7 +++++-- gnu/packages/xorg.scm | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 92f399ecb6..057c808597 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -689,9 +689,12 @@ application suites.") ("pkg-config" ,pkg-config) ("gobject-introspection" ,gobject-introspection) ("python-wrapper" ,python-wrapper) - ("xorg-server" ,xorg-server))) + ;; By using a special xorg-server for GTK+'s tests, we reduce the impact + ;; of updating xorg-server directly on the master branch. + ("xorg-server" ,xorg-server-1.19.2))) (arguments - `(;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes + `(#:disallowed-references (,xorg-server-1.19.2) + ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes ;; to "doc". #:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 5c9300e209..bd8f38c398 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5111,6 +5111,22 @@ communicates with the user via graphical controls such as buttons and draggable titlebars and borders.") (license license:x11))) +;;; This package is intended to be used when building GTK+. +(define-public xorg-server-1.19.2 + (package + (inherit xorg-server) + (name "xorg-server") + (version "1.19.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/xserver/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1fw4b2lf75nsqkiyhn95b1c2if1l3cw5a188a1szx1d8l7sbk2jg")))))) + (define-public xorg-server-xwayland (package (inherit xorg-server) -- cgit v1.2.3 From 946937e36d1ed50f2b0e0c42464937c7a052359c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 8 Mar 2017 16:17:24 +0100 Subject: gnu: pulseaudio: Update to 10.0. * gnu/packages/pulseaudio.scm (pulseaudio): Update to 10.0. [inputs]: Remove JSON-C. --- gnu/packages/pulseaudio.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index a5c1470da7..a12f8d8494 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -113,7 +113,7 @@ rates.") (define-public pulseaudio (package (name "pulseaudio") - (version "9.0") + (version "10.0") (source (origin (method url-fetch) (uri (string-append @@ -121,7 +121,7 @@ rates.") name "-" version ".tar.xz")) (sha256 (base32 - "11j682g2mn723sz3bh4i44ggq29z053zcggy0glzn63zh9mxdly3")) + "0mrg8qvpwm4ifarzphl3749p7p050kdx1l6mvsaj03czvqj6h653")) (modules '((guix build utils))) (snippet ;; Disable console-kit support by default since it's deprecated @@ -155,7 +155,6 @@ rates.") `(("alsa-lib" ,alsa-lib) ("bluez" ,bluez) ("sbc" ,sbc) - ("json-c" ,json-c) ("speex" ,speex) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) -- cgit v1.2.3 From fe5790e1e0865c4acd6b39856396bc0fec8f05a7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 8 Mar 2017 16:27:42 +0100 Subject: gnu: poppler: Update to 0.52.0. * gnu/packages/pdf.scm (poppler): Update to 0.52.0. --- gnu/packages/pdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index d449b72eef..2e26ba9ad4 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -73,14 +73,14 @@ (define-public poppler (package (name "poppler") - (version "0.50.0") + (version "0.52.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "0dmwnh59m75vhii6dw63x8l0qa0ha733pb8bdqzr7lw9nwc37jf9")))) + "14hrrac2f1phi5j0qn283457w06vsp9gr075yqjrm7w370bnd2sj")))) (build-system gnu-build-system) ;; FIXME: ;; use libcurl: no -- cgit v1.2.3 From 20289af368a1a7b336367ad5e39854a2e6cafb41 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 8 Mar 2017 16:39:10 +0100 Subject: gnu: wayland: Update to 1.13.0. * gnu/packages/freedesktop.scm (wayland): Update to 1.13.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 6deb929458..61b4d368d1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -274,14 +274,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.12.0") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "1c8sha5vm8w346wcbvgnjihisxfyvrr3qlbmfb5sp201p9f17d6n")))) + "0lgywr1m0d79vr4s8aimj8a307nss29hhy68gjpqj7m667055c39")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) (native-inputs -- cgit v1.2.3 From f095109e2c78a44a3089b3bd65df0d425ca03d52 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 8 Mar 2017 16:40:12 +0100 Subject: gnu: weston: Update to 2.0.0. * gnu/packages/freedesktop.scm (weston): Update to 2.0.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 61b4d368d1..36b5962cd0 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -331,7 +331,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public weston (package (name "weston") - (version "1.12.0") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +339,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "weston-" version ".tar.xz")) (sha256 (base32 - "0cshmw4ql4cr36v90bbi4qi6plvb6b9dbpnc3w9m17rv5siw4ymc")))) + "1n35acsknwqfhsni854q5mjq2gnbnfdvinh92rpij67i4yn4dr5l")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 8ea0700d231a8819fc7e8332e9685f0ce15c174e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 8 Mar 2017 18:03:16 -0500 Subject: gnu: tzdata: Update to 2017a. * gnu/packages/base.scm (tzdata): Update to 2017a. --- gnu/packages/base.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8be9c88abb..c452385a90 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -978,7 +978,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2016j") + (version "2017a") (source (origin (method url-fetch) (uri (string-append @@ -986,7 +986,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1j4xycpwhs57qnkcxwh3np8wnf3km69n3cf4w6p2yv2z247lxvpm")))) + "1mmv4rvcs12lrvgghw4fidczvb69yv69cmzknghcvw1c196mqfnz")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -1034,7 +1034,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1dxhrk4z0n2di8p0yd6q00pa6bwyz5xqbrfbasiz8785ni7zrvxr")))))) + "1b1q7gnlsh5hjgs5065pvajd37rmbc3k9b8cgzad1vcrifswdwh2")))))) (home-page "https://www.iana.org/time-zones") (synopsis "Database of current and historical time zones") (description "The Time Zone Database (often called tz or zoneinfo) -- cgit v1.2.3 From 24c72670d9d0efb3c88b40628cf2004eec200702 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 9 Mar 2017 15:09:57 -0500 Subject: gnu: glib: Update to 2.50.3. * gnu/packages/glib.scm (glib): Update to 2.50.3. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 1a794db253..74905004ef 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -137,7 +137,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.50.2") + (version "2.50.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -145,7 +145,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "1xgvmiqbhla6grpmbidqs3bl6zrb9mjknfsh7r4hb3163xy76s5y")) + "16frrwhc1yqkzx6bgh3060g94dr2biab17fb01mrni819jzr9vl2")) (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything -- cgit v1.2.3 From baa467762cd111cbc62adfb1dedcb82b3343c425 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 9 Mar 2017 15:07:16 -0500 Subject: gnu: glib: Avoid failing test caused by changes in the time zone database. * gnu/packages/glib.scm (glib)[arguments]: Skip a failing test in 'disable-failing-tests' phase. --- gnu/packages/glib.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 74905004ef..45f4631f9f 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -246,7 +246,12 @@ shared NFS home directories.") ("gio/tests/gdbus-unix-addresses.c" (;; Requires /etc/machine-id. - "/gdbus/x11-autolaunch"))))) + "/gdbus/x11-autolaunch")) + + ("glib/tests/gdatetime.c" + (;; Assumes that the Brasilian time zone is named 'BRT', + ;; which is no longer true as of tzdata-2017a. + "/GDateTime/new_full"))))) (and-map (lambda (x) (apply disable x)) failing-tests))))) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. -- cgit v1.2.3 From 343cee8af31e4dd917b88bec768a95dc449cadce Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 Mar 2017 04:00:48 +0100 Subject: gnu: python@3.5: Update to 3.5.3. * gnu/packages/python.scm (python-3.5, python-minimal, python-minimal-wrapper, python-wrapper): Update to 3.5.3. * gnu/packages/patches/python-fix-tests.patch: Adjust patch context. * gnu/packages/patches/python-3.5-fix-tests.patch: Likewise. Patch one new test. --- gnu/packages/patches/python-3.5-fix-tests.patch | 37 ++++++++++++++++++++----- gnu/packages/patches/python-fix-tests.patch | 17 ++++++------ gnu/packages/python.scm | 4 +-- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/gnu/packages/patches/python-3.5-fix-tests.patch b/gnu/packages/patches/python-3.5-fix-tests.patch index 46d2a84efb..9778b88dbd 100644 --- a/gnu/packages/patches/python-3.5-fix-tests.patch +++ b/gnu/packages/patches/python-3.5-fix-tests.patch @@ -35,12 +35,35 @@ prior revisions of Python. --- Lib/test/test_asyncio/test_base_events.py +++ Lib/test/test_asyncio/test_base_events.py -@@ -142,6 +142,8 @@ class BaseEventTests(test_utils.TestCase): - (INET, STREAM, TCP, '', ('1.2.3.4', 1)), - base_events._ipaddr_info('1.2.3.4', b'1', INET, STREAM, TCP)) - +@@ -1216,6 +1216,8 @@ + self._test_create_connection_ip_addr(m_socket, False) + + @patch_socket + @unittest.skipUnless(support.is_resource_enabled('network'), + 'network is not enabled') - def test_getaddrinfo_servname(self): - INET = socket.AF_INET - STREAM = socket.SOCK_STREAM + def test_create_connection_service_name(self, m_socket): + m_socket.getaddrinfo = socket.getaddrinfo + sock = m_socket.socket.return_value + +--- Lib/test/test_pdb.py.org 2017-03-12 03:09:01.991856701 +0100 ++++ Lib/test/test_pdb.py 2017-03-12 03:26:17.742572869 +0100 + +For some reason, KeyboardInterrupts do not work in the build +environment (lack of controlling TTY?). Just change the expected +outcome. Unfortunately, this will make it fail for users running +`python -m test test_pdb test_pdb` interactively. + +@@ -928,11 +928,11 @@ + > (6)test_function() + -> print('pdb %d: %s' % (i, sess._previous_sigint_handler)) + (Pdb) continue +- pdb 1: ++ pdb 1: Handlers.SIG_IGN + > (5)test_function() + -> sess.set_trace(sys._getframe()) + (Pdb) continue +- pdb 2: ++ pdb 2: Handlers.SIG_IGN + """ + + class PdbTestCase(unittest.TestCase): diff --git a/gnu/packages/patches/python-fix-tests.patch b/gnu/packages/patches/python-fix-tests.patch index e093307c51..d8f69866fd 100644 --- a/gnu/packages/patches/python-fix-tests.patch +++ b/gnu/packages/patches/python-fix-tests.patch @@ -3,23 +3,22 @@ http://bugs.python.org/issue20868 . --- Lib/test/test_shutil.py 2014-03-01 03:02:36.088311000 +0100 +++ Lib/test/test_shutil.py 2014-03-01 04:56:37.768311000 +0100 -@@ -1053,6 +1053,7 @@ +@@ -1127,6 +1127,7 @@ self.assertRaises(ValueError, make_archive, base_name, 'xxx') - - @requires_zlib + + @support.requires_zlib + @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix") def test_make_archive_owner_group(self): # testing make_archive with owner and group, with various combinations # this works even if there's not gid/uid support -@@ -1081,6 +1082,7 @@ - - - @requires_zlib +@@ -1155,6 +1156,7 @@ + + + @support.requires_zlib + @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix") @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support") def test_tarfile_root_owner(self): - tmpdir, tmpdir2, base_name = self._create_files() - + root_dir, base_dir = self._create_files() --- Lib/test/test_socket.py.orig 2014-03-02 22:14:12.264311000 +0100 +++ Lib/test/test_socket.py 2014-03-21 03:50:45.660311000 +0100 @@ -819,6 +819,8 @@ diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8326de679d..6e41108df6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -317,7 +317,7 @@ data types.") (define-public python-3.5 (package (inherit python-2) - (version "3.5.2") + (version "3.5.3") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" @@ -330,7 +330,7 @@ data types.") (patch-flags '("-p0")) (sha256 (base32 - "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400")) + "1c6v1n9nz4mlx9mw1125fxpmbrgniqdbbx9hnqx44maqazb2mzpf")) (snippet '(delete-file "Lib/ctypes/test/test_win32.py")))) ; fails on aarch64 -- cgit v1.2.3 From e4d34cd0f0ced54210ed2df2b251430a9c98c6f4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 11 Mar 2017 20:20:50 +0100 Subject: gnu: python@3.5: Fix getentropy() calls on kernels < 3.17. * gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/python.scm (python-3.5, python-minimal, python-minimal-wrapper, python-wrapper)[source]: Use it. --- gnu/local.mk | 1 + .../python-3.5-getentropy-on-old-kernels.patch | 720 +++++++++++++++++++++ gnu/packages/python.scm | 1 + 3 files changed, 722 insertions(+) create mode 100644 gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3356c9e34c..c51e04289b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -855,6 +855,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3.4-fix-tests.patch \ %D%/packages/patches/python-3.5-fix-tests.patch \ + %D%/packages/patches/python-3.5-getentropy-on-old-kernels.patch \ %D%/packages/patches/python-dendropy-fix-tests.patch \ %D%/packages/patches/python-file-double-encoding-bug.patch \ %D%/packages/patches/python-fix-tests.patch \ diff --git a/gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch b/gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch new file mode 100644 index 0000000000..8a12b5b448 --- /dev/null +++ b/gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch @@ -0,0 +1,720 @@ +This patch resolves a compatibility issue when compiled against glibc 2.25 +and run runder kernels < 3.17: + +https://bugzilla.redhat.com/show_bug.cgi?id=1410175 + +Upstream bug URL: https://bugs.python.org/issue29157 + +Patch copied from upstream source repository: + +https://hg.python.org/cpython/rev/8125d9a8152b + +# HG changeset patch +# User Victor Stinner +# Date 1483957133 -3600 +# Node ID 8125d9a8152b79e712cb09c7094b9129b9bcea86 +# Parent 337461574c90281630751b6095c4e1baf380cf7d +Issue #29157: Prefer getrandom() over getentropy() + +Copy and then adapt Python/random.c from default branch. Difference between 3.5 +and default branches: + +* Python 3.5 only uses getrandom() in non-blocking mode: flags=GRND_NONBLOCK +* If getrandom() fails with EAGAIN: py_getrandom() immediately fails and + remembers that getrandom() doesn't work. +* Python 3.5 has no _PyOS_URandomNonblock() function: _PyOS_URandom() + works in non-blocking mode on Python 3.5 + +diff --git a/Python/random.c b/Python/random.c +--- Python/random.c ++++ Python/random.c +@@ -1,6 +1,9 @@ + #include "Python.h" + #ifdef MS_WINDOWS + # include ++/* All sample MSDN wincrypt programs include the header below. It is at least ++ * required with Min GW. */ ++# include + #else + # include + # ifdef HAVE_SYS_STAT_H +@@ -37,10 +40,9 @@ win32_urandom_init(int raise) + return 0; + + error: +- if (raise) ++ if (raise) { + PyErr_SetFromWindowsErr(0); +- else +- Py_FatalError("Failed to initialize Windows random API (CryptoGen)"); ++ } + return -1; + } + +@@ -53,8 +55,9 @@ win32_urandom(unsigned char *buffer, Py_ + + if (hCryptProv == 0) + { +- if (win32_urandom_init(raise) == -1) ++ if (win32_urandom_init(raise) == -1) { + return -1; ++ } + } + + while (size > 0) +@@ -63,11 +66,9 @@ win32_urandom(unsigned char *buffer, Py_ + if (!CryptGenRandom(hCryptProv, (DWORD)chunk, buffer)) + { + /* CryptGenRandom() failed */ +- if (raise) ++ if (raise) { + PyErr_SetFromWindowsErr(0); +- else +- Py_FatalError("Failed to initialized the randomized hash " +- "secret using CryptoGen)"); ++ } + return -1; + } + buffer += chunk; +@@ -76,58 +77,23 @@ win32_urandom(unsigned char *buffer, Py_ + return 0; + } + +-/* Issue #25003: Don't use getentropy() on Solaris (available since +- * Solaris 11.3), it is blocking whereas os.urandom() should not block. */ +-#elif defined(HAVE_GETENTROPY) && !defined(sun) +-#define PY_GETENTROPY 1 +- +-/* Fill buffer with size pseudo-random bytes generated by getentropy(). +- Return 0 on success, or raise an exception and return -1 on error. +- +- If fatal is nonzero, call Py_FatalError() instead of raising an exception +- on error. */ +-static int +-py_getentropy(unsigned char *buffer, Py_ssize_t size, int fatal) +-{ +- while (size > 0) { +- Py_ssize_t len = Py_MIN(size, 256); +- int res; +- +- if (!fatal) { +- Py_BEGIN_ALLOW_THREADS +- res = getentropy(buffer, len); +- Py_END_ALLOW_THREADS +- +- if (res < 0) { +- PyErr_SetFromErrno(PyExc_OSError); +- return -1; +- } +- } +- else { +- res = getentropy(buffer, len); +- if (res < 0) +- Py_FatalError("getentropy() failed"); +- } +- +- buffer += len; +- size -= len; +- } +- return 0; +-} +- +-#else ++#else /* !MS_WINDOWS */ + + #if defined(HAVE_GETRANDOM) || defined(HAVE_GETRANDOM_SYSCALL) + #define PY_GETRANDOM 1 + +-/* Call getrandom() ++/* Call getrandom() to get random bytes: ++ + - Return 1 on success +- - Return 0 if getrandom() syscall is not available (failed with ENOSYS or +- EPERM) or if getrandom(GRND_NONBLOCK) failed with EAGAIN (system urandom +- not initialized yet) and raise=0. ++ - Return 0 if getrandom() is not available (failed with ENOSYS or EPERM), ++ or if getrandom(GRND_NONBLOCK) failed with EAGAIN (system urandom not ++ initialized yet). + - Raise an exception (if raise is non-zero) and return -1 on error: +- getrandom() failed with EINTR and the Python signal handler raised an +- exception, or getrandom() failed with a different error. */ ++ if getrandom() failed with EINTR, raise is non-zero and the Python signal ++ handler raised an exception, or if getrandom() failed with a different ++ error. ++ ++ getrandom() is retried if it failed with EINTR: interrupted by a signal. */ + static int + py_getrandom(void *buffer, Py_ssize_t size, int raise) + { +@@ -142,16 +108,19 @@ py_getrandom(void *buffer, Py_ssize_t si + * see https://bugs.python.org/issue26839. To avoid this, use the + * GRND_NONBLOCK flag. */ + const int flags = GRND_NONBLOCK; ++ char *dest; + long n; + + if (!getrandom_works) { + return 0; + } + ++ dest = buffer; + while (0 < size) { + #ifdef sun + /* Issue #26735: On Solaris, getrandom() is limited to returning up +- to 1024 bytes */ ++ to 1024 bytes. Call it multiple times if more bytes are ++ requested. */ + n = Py_MIN(size, 1024); + #else + n = Py_MIN(size, LONG_MAX); +@@ -161,34 +130,35 @@ py_getrandom(void *buffer, Py_ssize_t si + #ifdef HAVE_GETRANDOM + if (raise) { + Py_BEGIN_ALLOW_THREADS +- n = getrandom(buffer, n, flags); ++ n = getrandom(dest, n, flags); + Py_END_ALLOW_THREADS + } + else { +- n = getrandom(buffer, n, flags); ++ n = getrandom(dest, n, flags); + } + #else + /* On Linux, use the syscall() function because the GNU libc doesn't +- * expose the Linux getrandom() syscall yet. See: +- * https://sourceware.org/bugzilla/show_bug.cgi?id=17252 */ ++ expose the Linux getrandom() syscall yet. See: ++ https://sourceware.org/bugzilla/show_bug.cgi?id=17252 */ + if (raise) { + Py_BEGIN_ALLOW_THREADS +- n = syscall(SYS_getrandom, buffer, n, flags); ++ n = syscall(SYS_getrandom, dest, n, flags); + Py_END_ALLOW_THREADS + } + else { +- n = syscall(SYS_getrandom, buffer, n, flags); ++ n = syscall(SYS_getrandom, dest, n, flags); + } + #endif + + if (n < 0) { +- /* ENOSYS: getrandom() syscall not supported by the kernel (but +- * maybe supported by the host which built Python). EPERM: +- * getrandom() syscall blocked by SECCOMP or something else. */ ++ /* ENOSYS: the syscall is not supported by the kernel. ++ EPERM: the syscall is blocked by a security policy (ex: SECCOMP) ++ or something else. */ + if (errno == ENOSYS || errno == EPERM) { + getrandom_works = 0; + return 0; + } ++ + if (errno == EAGAIN) { + /* getrandom(GRND_NONBLOCK) fails with EAGAIN if the system + urandom is not initialiazed yet. In this case, fall back on +@@ -202,32 +172,101 @@ py_getrandom(void *buffer, Py_ssize_t si + } + + if (errno == EINTR) { +- if (PyErr_CheckSignals()) { +- if (!raise) { +- Py_FatalError("getrandom() interrupted by a signal"); ++ if (raise) { ++ if (PyErr_CheckSignals()) { ++ return -1; + } +- return -1; + } + +- /* retry getrandom() */ ++ /* retry getrandom() if it was interrupted by a signal */ + continue; + } + + if (raise) { + PyErr_SetFromErrno(PyExc_OSError); + } +- else { +- Py_FatalError("getrandom() failed"); ++ return -1; ++ } ++ ++ dest += n; ++ size -= n; ++ } ++ return 1; ++} ++ ++#elif defined(HAVE_GETENTROPY) ++#define PY_GETENTROPY 1 ++ ++/* Fill buffer with size pseudo-random bytes generated by getentropy(): ++ ++ - Return 1 on success ++ - Return 0 if getentropy() syscall is not available (failed with ENOSYS or ++ EPERM). ++ - Raise an exception (if raise is non-zero) and return -1 on error: ++ if getentropy() failed with EINTR, raise is non-zero and the Python signal ++ handler raised an exception, or if getentropy() failed with a different ++ error. ++ ++ getentropy() is retried if it failed with EINTR: interrupted by a signal. */ ++static int ++py_getentropy(char *buffer, Py_ssize_t size, int raise) ++{ ++ /* Is getentropy() supported by the running kernel? Set to 0 if ++ getentropy() failed with ENOSYS or EPERM. */ ++ static int getentropy_works = 1; ++ ++ if (!getentropy_works) { ++ return 0; ++ } ++ ++ while (size > 0) { ++ /* getentropy() is limited to returning up to 256 bytes. Call it ++ multiple times if more bytes are requested. */ ++ Py_ssize_t len = Py_MIN(size, 256); ++ int res; ++ ++ if (raise) { ++ Py_BEGIN_ALLOW_THREADS ++ res = getentropy(buffer, len); ++ Py_END_ALLOW_THREADS ++ } ++ else { ++ res = getentropy(buffer, len); ++ } ++ ++ if (res < 0) { ++ /* ENOSYS: the syscall is not supported by the running kernel. ++ EPERM: the syscall is blocked by a security policy (ex: SECCOMP) ++ or something else. */ ++ if (errno == ENOSYS || errno == EPERM) { ++ getentropy_works = 0; ++ return 0; ++ } ++ ++ if (errno == EINTR) { ++ if (raise) { ++ if (PyErr_CheckSignals()) { ++ return -1; ++ } ++ } ++ ++ /* retry getentropy() if it was interrupted by a signal */ ++ continue; ++ } ++ ++ if (raise) { ++ PyErr_SetFromErrno(PyExc_OSError); + } + return -1; + } + +- buffer += n; +- size -= n; ++ buffer += len; ++ size -= len; + } + return 1; + } +-#endif ++#endif /* defined(HAVE_GETENTROPY) && !defined(sun) */ ++ + + static struct { + int fd; +@@ -235,136 +274,123 @@ static struct { + ino_t st_ino; + } urandom_cache = { -1 }; + ++/* Read random bytes from the /dev/urandom device: + +-/* Read 'size' random bytes from py_getrandom(). Fall back on reading from +- /dev/urandom if getrandom() is not available. ++ - Return 0 on success ++ - Raise an exception (if raise is non-zero) and return -1 on error + +- Call Py_FatalError() on error. */ +-static void +-dev_urandom_noraise(unsigned char *buffer, Py_ssize_t size) ++ Possible causes of errors: ++ ++ - open() failed with ENOENT, ENXIO, ENODEV, EACCES: the /dev/urandom device ++ was not found. For example, it was removed manually or not exposed in a ++ chroot or container. ++ - open() failed with a different error ++ - fstat() failed ++ - read() failed or returned 0 ++ ++ read() is retried if it failed with EINTR: interrupted by a signal. ++ ++ The file descriptor of the device is kept open between calls to avoid using ++ many file descriptors when run in parallel from multiple threads: ++ see the issue #18756. ++ ++ st_dev and st_ino fields of the file descriptor (from fstat()) are cached to ++ check if the file descriptor was replaced by a different file (which is ++ likely a bug in the application): see the issue #21207. ++ ++ If the file descriptor was closed or replaced, open a new file descriptor ++ but don't close the old file descriptor: it probably points to something ++ important for some third-party code. */ ++static int ++dev_urandom(char *buffer, Py_ssize_t size, int raise) + { + int fd; + Py_ssize_t n; + +- assert (0 < size); ++ if (raise) { ++ struct _Py_stat_struct st; + +-#ifdef PY_GETRANDOM +- if (py_getrandom(buffer, size, 0) == 1) { +- return; ++ if (urandom_cache.fd >= 0) { ++ /* Does the fd point to the same thing as before? (issue #21207) */ ++ if (_Py_fstat_noraise(urandom_cache.fd, &st) ++ || st.st_dev != urandom_cache.st_dev ++ || st.st_ino != urandom_cache.st_ino) { ++ /* Something changed: forget the cached fd (but don't close it, ++ since it probably points to something important for some ++ third-party code). */ ++ urandom_cache.fd = -1; ++ } ++ } ++ if (urandom_cache.fd >= 0) ++ fd = urandom_cache.fd; ++ else { ++ fd = _Py_open("/dev/urandom", O_RDONLY); ++ if (fd < 0) { ++ if (errno == ENOENT || errno == ENXIO || ++ errno == ENODEV || errno == EACCES) { ++ PyErr_SetString(PyExc_NotImplementedError, ++ "/dev/urandom (or equivalent) not found"); ++ } ++ /* otherwise, keep the OSError exception raised by _Py_open() */ ++ return -1; ++ } ++ if (urandom_cache.fd >= 0) { ++ /* urandom_fd was initialized by another thread while we were ++ not holding the GIL, keep it. */ ++ close(fd); ++ fd = urandom_cache.fd; ++ } ++ else { ++ if (_Py_fstat(fd, &st)) { ++ close(fd); ++ return -1; ++ } ++ else { ++ urandom_cache.fd = fd; ++ urandom_cache.st_dev = st.st_dev; ++ urandom_cache.st_ino = st.st_ino; ++ } ++ } ++ } ++ ++ do { ++ n = _Py_read(fd, buffer, (size_t)size); ++ if (n == -1) ++ return -1; ++ if (n == 0) { ++ PyErr_Format(PyExc_RuntimeError, ++ "Failed to read %zi bytes from /dev/urandom", ++ size); ++ return -1; ++ } ++ ++ buffer += n; ++ size -= n; ++ } while (0 < size); + } +- /* getrandom() failed with ENOSYS or EPERM, +- fall back on reading /dev/urandom */ +-#endif +- +- fd = _Py_open_noraise("/dev/urandom", O_RDONLY); +- if (fd < 0) { +- Py_FatalError("Failed to open /dev/urandom"); +- } +- +- while (0 < size) +- { +- do { +- n = read(fd, buffer, (size_t)size); +- } while (n < 0 && errno == EINTR); +- +- if (n <= 0) { +- /* read() failed or returned 0 bytes */ +- Py_FatalError("Failed to read bytes from /dev/urandom"); +- break; +- } +- buffer += n; +- size -= n; +- } +- close(fd); +-} +- +-/* Read 'size' random bytes from py_getrandom(). Fall back on reading from +- /dev/urandom if getrandom() is not available. +- +- Return 0 on success. Raise an exception and return -1 on error. */ +-static int +-dev_urandom_python(char *buffer, Py_ssize_t size) +-{ +- int fd; +- Py_ssize_t n; +- struct _Py_stat_struct st; +-#ifdef PY_GETRANDOM +- int res; +-#endif +- +- if (size <= 0) +- return 0; +- +-#ifdef PY_GETRANDOM +- res = py_getrandom(buffer, size, 1); +- if (res < 0) { +- return -1; +- } +- if (res == 1) { +- return 0; +- } +- /* getrandom() failed with ENOSYS or EPERM, +- fall back on reading /dev/urandom */ +-#endif +- +- if (urandom_cache.fd >= 0) { +- /* Does the fd point to the same thing as before? (issue #21207) */ +- if (_Py_fstat_noraise(urandom_cache.fd, &st) +- || st.st_dev != urandom_cache.st_dev +- || st.st_ino != urandom_cache.st_ino) { +- /* Something changed: forget the cached fd (but don't close it, +- since it probably points to something important for some +- third-party code). */ +- urandom_cache.fd = -1; +- } +- } +- if (urandom_cache.fd >= 0) +- fd = urandom_cache.fd; + else { +- fd = _Py_open("/dev/urandom", O_RDONLY); ++ fd = _Py_open_noraise("/dev/urandom", O_RDONLY); + if (fd < 0) { +- if (errno == ENOENT || errno == ENXIO || +- errno == ENODEV || errno == EACCES) +- PyErr_SetString(PyExc_NotImplementedError, +- "/dev/urandom (or equivalent) not found"); +- /* otherwise, keep the OSError exception raised by _Py_open() */ + return -1; + } +- if (urandom_cache.fd >= 0) { +- /* urandom_fd was initialized by another thread while we were +- not holding the GIL, keep it. */ +- close(fd); +- fd = urandom_cache.fd; +- } +- else { +- if (_Py_fstat(fd, &st)) { ++ ++ while (0 < size) ++ { ++ do { ++ n = read(fd, buffer, (size_t)size); ++ } while (n < 0 && errno == EINTR); ++ ++ if (n <= 0) { ++ /* stop on error or if read(size) returned 0 */ + close(fd); + return -1; + } +- else { +- urandom_cache.fd = fd; +- urandom_cache.st_dev = st.st_dev; +- urandom_cache.st_ino = st.st_ino; +- } ++ ++ buffer += n; ++ size -= n; + } ++ close(fd); + } +- +- do { +- n = _Py_read(fd, buffer, (size_t)size); +- if (n == -1) { +- return -1; +- } +- if (n == 0) { +- PyErr_Format(PyExc_RuntimeError, +- "Failed to read %zi bytes from /dev/urandom", +- size); +- return -1; +- } +- +- buffer += n; +- size -= n; +- } while (0 < size); +- + return 0; + } + +@@ -376,8 +402,8 @@ dev_urandom_close(void) + urandom_cache.fd = -1; + } + } ++#endif /* !MS_WINDOWS */ + +-#endif + + /* Fill buffer with pseudo-random bytes generated by a linear congruent + generator (LCG): +@@ -400,29 +426,98 @@ lcg_urandom(unsigned int x0, unsigned ch + } + } + ++/* Read random bytes: ++ ++ - Return 0 on success ++ - Raise an exception (if raise is non-zero) and return -1 on error ++ ++ Used sources of entropy ordered by preference, preferred source first: ++ ++ - CryptGenRandom() on Windows ++ - getrandom() function (ex: Linux and Solaris): call py_getrandom() ++ - getentropy() function (ex: OpenBSD): call py_getentropy() ++ - /dev/urandom device ++ ++ Read from the /dev/urandom device if getrandom() or getentropy() function ++ is not available or does not work. ++ ++ Prefer getrandom() over getentropy() because getrandom() supports blocking ++ and non-blocking mode and Python requires non-blocking RNG at startup to ++ initialize its hash secret: see the PEP 524. ++ ++ Prefer getrandom() and getentropy() over reading directly /dev/urandom ++ because these functions don't need file descriptors and so avoid ENFILE or ++ EMFILE errors (too many open files): see the issue #18756. ++ ++ Only use RNG running in the kernel. They are more secure because it is ++ harder to get the internal state of a RNG running in the kernel land than a ++ RNG running in the user land. The kernel has a direct access to the hardware ++ and has access to hardware RNG, they are used as entropy sources. ++ ++ Note: the OpenSSL RAND_pseudo_bytes() function does not automatically reseed ++ its RNG on fork(), two child processes (with the same pid) generate the same ++ random numbers: see issue #18747. Kernel RNGs don't have this issue, ++ they have access to good quality entropy sources. ++ ++ If raise is zero: ++ ++ - Don't raise an exception on error ++ - Don't call the Python signal handler (don't call PyErr_CheckSignals()) if ++ a function fails with EINTR: retry directly the interrupted function ++ - Don't release the GIL to call functions. ++*/ ++static int ++pyurandom(void *buffer, Py_ssize_t size, int raise) ++{ ++#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY) ++ int res; ++#endif ++ ++ if (size < 0) { ++ if (raise) { ++ PyErr_Format(PyExc_ValueError, ++ "negative argument not allowed"); ++ } ++ return -1; ++ } ++ ++ if (size == 0) { ++ return 0; ++ } ++ ++#ifdef MS_WINDOWS ++ return win32_urandom((unsigned char *)buffer, size, raise); ++#else ++ ++#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY) ++#ifdef PY_GETRANDOM ++ res = py_getrandom(buffer, size, raise); ++#else ++ res = py_getentropy(buffer, size, raise); ++#endif ++ if (res < 0) { ++ return -1; ++ } ++ if (res == 1) { ++ return 0; ++ } ++ /* getrandom() or getentropy() function is not available: failed with ++ ENOSYS, EPERM or EAGAIN. Fall back on reading from /dev/urandom. */ ++#endif ++ ++ return dev_urandom(buffer, size, raise); ++#endif ++} ++ + /* Fill buffer with size pseudo-random bytes from the operating system random + number generator (RNG). It is suitable for most cryptographic purposes + except long living private keys for asymmetric encryption. + +- Return 0 on success, raise an exception and return -1 on error. */ ++ Return 0 on success. Raise an exception and return -1 on error. */ + int + _PyOS_URandom(void *buffer, Py_ssize_t size) + { +- if (size < 0) { +- PyErr_Format(PyExc_ValueError, +- "negative argument not allowed"); +- return -1; +- } +- if (size == 0) +- return 0; +- +-#ifdef MS_WINDOWS +- return win32_urandom((unsigned char *)buffer, size, 1); +-#elif defined(PY_GETENTROPY) +- return py_getentropy(buffer, size, 0); +-#else +- return dev_urandom_python((char*)buffer, size); +-#endif ++ return pyurandom(buffer, size, 1); + } + + void +@@ -463,13 +558,14 @@ void + } + } + else { +-#ifdef MS_WINDOWS +- (void)win32_urandom(secret, secret_size, 0); +-#elif defined(PY_GETENTROPY) +- (void)py_getentropy(secret, secret_size, 1); +-#else +- dev_urandom_noraise(secret, secret_size); +-#endif ++ int res; ++ ++ /* _PyRandom_Init() is called very early in the Python initialization ++ and so exceptions cannot be used (use raise=0). */ ++ res = pyurandom(secret, secret_size, 0); ++ if (res < 0) { ++ Py_FatalError("failed to get random numbers to initialize Python"); ++ } + } + } + +@@ -481,8 +577,6 @@ void + CryptReleaseContext(hCryptProv, 0); + hCryptProv = 0; + } +-#elif defined(PY_GETENTROPY) +- /* nothing to clean */ + #else + dev_urandom_close(); + #endif + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6e41108df6..2a7257b21d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -325,6 +325,7 @@ data types.") (patches (search-patches "python-fix-tests.patch" "python-3.5-fix-tests.patch" + "python-3.5-getentropy-on-old-kernels.patch" "python-3-deterministic-build-info.patch" "python-3-search-paths.patch")) (patch-flags '("-p0")) -- cgit v1.2.3 From 3ffaec136fab017e6cc094287da207cf30f05974 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 8 Mar 2017 18:03:38 -0500 Subject: gnu: Add a tzdata variant for testing purposes. * gnu/packages/base.scm (tzdata-2017a): New variable. * gnu/packages/glib.scm (glib)[inputs]: Remove tzdata. [native-inputs]: Add tzdata-2017a. [arguments]: Add tzdata-2017a to #:disallowed-references. * gnu/packages/statistics.scm (r)[inputs]: Remove tzdata. [native-inputs]: Add tzdata-2017a. [arguments]: Add tzdata-2017a to #:disallowed-references. --- gnu/packages/base.scm | 25 +++++++++++++++++++++++++ gnu/packages/glib.scm | 9 +++++---- gnu/packages/statistics.scm | 5 +++-- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index c452385a90..ba9c820efa 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1044,6 +1044,31 @@ reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules.") (license public-domain))) +;;; A "fixed" version of tzdata, which is used in the test suites of +;;; glib and R. We can update this whenever we are able to rebuild +;;; thousands of packages (for example, in a core-updates rebuild). +(define-public tzdata-2017a + (package + (inherit tzdata) + (version "2017a") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.iana.org/time-zones/repository" + "/releases/tzdata" version ".tar.gz")) + (sha256 + (base32 + "1mmv4rvcs12lrvgghw4fidczvb69yv69cmzknghcvw1c196mqfnz")))) + (inputs `(("tzcode" ,(origin + (method url-fetch) + (uri (string-append + "http://www.iana.org/time-zones/repository/releases/tzcode" + version ".tar.gz")) + (sha256 + (base32 + "1b1q7gnlsh5hjgs5065pvajd37rmbc3k9b8cgzad1vcrifswdwh2")))))))) + + (define-public libiconv (package (name "libiconv") diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 45f4631f9f..6de9cce0b7 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -157,17 +157,18 @@ shared NFS home directories.") `(("coreutils" ,coreutils) ("util-linux" ,util-linux) ; for libmount ("libffi" ,libffi) - ("zlib" ,zlib) - ("tzdata" ,tzdata))) ; for tests/gdatetime.c + ("zlib" ,zlib))) (native-inputs `(("gettext" ,gettext-minimal) ("dbus" ,dbus) ; for GDBus tests ("pkg-config" ,pkg-config) ("python" ,python-wrapper) ("perl" ,perl) ; needed by GIO tests - ("bash" ,bash))) + ("bash" ,bash) + ("tzdata" ,tzdata-2017a))) ; for tests/gdatetime.c (arguments - '(#:phases + `(#:disallowed-references (,tzdata-2017a) + #:phases (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e02c342c6f..64b0b0e940 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -113,7 +113,8 @@ be output in text, PostScript, PDF or HTML.") "0v7wpj89b0i3ad3fi1wak5c93hywmbxv8sdnixhq8l17782nidss")))) (build-system gnu-build-system) (arguments - `(#:make-flags + `(#:disallowed-references (,tzdata-2017a) + #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib/R/lib") @@ -187,6 +188,7 @@ be output in text, PostScript, PDF or HTML.") ("pkg-config" ,pkg-config) ("texinfo" ,texinfo) ; for building HTML manuals ("which" ,which) ; for tests/Examples/base-Ex.R + ("tzdata" ,tzdata-2017a) ("xz" ,xz))) (inputs `(;; We need not only cairo here, but pango to ensure that tests for the @@ -194,7 +196,6 @@ be output in text, PostScript, PDF or HTML.") ("pango" ,pango) ("coreutils" ,coreutils) ("curl" ,curl) - ("tzdata" ,tzdata) ("openblas" ,openblas) ("gfortran" ,gfortran) ("icu4c" ,icu4c) -- cgit v1.2.3 From be81133a13932bc83b0697d73581a47674ef6987 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 12 Mar 2017 16:37:02 -0400 Subject: gnu: libical: Fix substitution of path to time zone database. Fixes . This is a followup to commit 2b193389d243c469e159d0ab5dfc86b5867db05d. * gnu/packages/calendar.scm (arguments): Update 'patch-paths' phase. --- gnu/packages/calendar.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 1e9a93ca93..d7260b5f42 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016 Leo Famulari +;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Troy Sankey @@ -64,10 +64,11 @@ (lambda _ (let ((tzdata (assoc-ref %build-inputs "tzdata"))) (substitute* "src/libical/icaltz-util.c" - (("char \\*search_paths \\[\\] =.*$") - (string-append - "char *search_paths [] = " - "{\"" tzdata "/share/zoneinfo\"};\n")))) + (("\\\"/usr/share/zoneinfo\\\",") + (string-append "\"" tzdata "/share/zoneinfo\"")) + (("\\\"/usr/lib/zoneinfo\\\",") "") + (("\\\"/etc/zoneinfo\\\",") "") + (("\\\"/usr/share/lib/zoneinfo\\\"") ""))) #t))))) (native-inputs `(("perl" ,perl))) -- cgit v1.2.3 From 7cb68a3cb3082cb6ae5435c28ae7f9278e4d1a0f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 13 Mar 2017 00:11:12 -0400 Subject: gnu: Remove python-3.4. * gnu/packages/python.scm (python-3.4): Remove variable. * gnu/packages/patches/python-3.4-fix-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/python-3.4-fix-tests.patch | 12 ------------ gnu/packages/python.scm | 17 ----------------- 3 files changed, 30 deletions(-) delete mode 100644 gnu/packages/patches/python-3.4-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index c51e04289b..c74418d0dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -853,7 +853,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-2.7-source-date-epoch.patch \ %D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-search-paths.patch \ - %D%/packages/patches/python-3.4-fix-tests.patch \ %D%/packages/patches/python-3.5-fix-tests.patch \ %D%/packages/patches/python-3.5-getentropy-on-old-kernels.patch \ %D%/packages/patches/python-dendropy-fix-tests.patch \ diff --git a/gnu/packages/patches/python-3.4-fix-tests.patch b/gnu/packages/patches/python-3.4-fix-tests.patch deleted file mode 100644 index d1f8138e79..0000000000 --- a/gnu/packages/patches/python-3.4-fix-tests.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- Lib/test/test_posixpath.py 2014-03-01 05:46:56.984311000 +0100 -+++ Lib/test/test_posixpath.py 2014-03-07 00:59:20.888311000 +0100 -@@ -319,7 +319,11 @@ - del env['HOME'] - home = pwd.getpwuid(os.getuid()).pw_dir - # $HOME can end with a trailing /, so strip it (see #17809) -- self.assertEqual(posixpath.expanduser("~"), home.rstrip("/")) -+ # The Guix builders have '/' as a home directory, so -+ # home.rstrip("/") will be an empty string and the test will -+ # fail. Let's just disable it since it does not really make -+ # sense with such a bizarre setup. -+ # self.assertEqual(posixpath.expanduser("~"), home.rstrip("/")) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2a7257b21d..60f0594453 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -344,23 +344,6 @@ data types.") (version-major+minor version) "/site-packages")))))))) -(define-public python-3.4 - (package (inherit python-3.5) - (version "3.4.5") - (source (origin - (method url-fetch) - (uri (string-append "https://www.python.org/ftp/python/" - version "/Python-" version ".tar.xz")) - (patches (search-patches - "python-fix-tests.patch" - "python-3.4-fix-tests.patch" - "python-3-deterministic-build-info.patch" - "python-3-search-paths.patch")) - (patch-flags '("-p0")) - (sha256 - (base32 - "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f")))))) - ;; Current 3.x version. (define-public python-3 python-3.5) -- cgit v1.2.3 From 864a9590ad948df09f2ad6e9e929608a7587a5f7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 13 Mar 2017 20:16:35 +0200 Subject: gnu: luajit: Update to 2.1.0-beta2. * gnu/packages/lua.scm (luajit): Update to 2.1.0-beta2. --- gnu/packages/lua.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index e3ab3561cb..c3cb700be2 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014 Raimon Grau ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2014 Andreas Enge -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016 Clément Lassieur @@ -112,13 +112,13 @@ for configuration, scripting, and rapid prototyping.") (define-public luajit (package (name "luajit") - (version "2.0.4") + (version "2.1.0-beta2") (source (origin (method url-fetch) (uri (string-append "http://luajit.org/download/LuaJIT-" version ".tar.gz")) (sha256 - (base32 "0zc0y7p6nx1c0pp4nhgbdgjljpfxsb5kgwp4ysz22l1p2bms83v2")) + (base32 "0iyghj1xjlmd9ywa4flf9yszynf3jhbp0yqb9b49k7ab0g528fbi")) (patches (search-patches "luajit-symlinks.patch" "luajit-no_ldconfig.patch")))) (build-system gnu-build-system) -- cgit v1.2.3 From dc5cec21f275a023a2793befb692a0dc193ed88a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 13 Mar 2017 17:11:19 -0400 Subject: gnu: python@2.7: Fix getentropy() calls on kernels < 3.17. * gnu/packages/patches/python-2.7-getentropy-on-old-kernels.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/python.scm (python-2.7)[source]: Use it. --- gnu/local.mk | 1 + .../python-2.7-getentropy-on-old-kernels.patch | 54 ++++++++++++++++++++++ gnu/packages/python.scm | 3 +- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-2.7-getentropy-on-old-kernels.patch diff --git a/gnu/local.mk b/gnu/local.mk index f4d3ec1529..3c11e3adde 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -848,6 +848,7 @@ dist_patch_DATA = \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ + %D%/packages/patches/python-2.7-getentropy-on-old-kernels.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ %D%/packages/patches/python-2.7-site-prefixes.patch \ %D%/packages/patches/python-2.7-source-date-epoch.patch \ diff --git a/gnu/packages/patches/python-2.7-getentropy-on-old-kernels.patch b/gnu/packages/patches/python-2.7-getentropy-on-old-kernels.patch new file mode 100644 index 0000000000..5a09b4ac52 --- /dev/null +++ b/gnu/packages/patches/python-2.7-getentropy-on-old-kernels.patch @@ -0,0 +1,54 @@ +This patch resolves a compatibility issue when compiled against glibc +2.25 +and run runder kernels < 3.17: + +https://bugzilla.redhat.com/show_bug.cgi?id=1410175 + +Upstream bug URLs: + +https://bugs.python.org/issue29157 +https://bugs.python.org/issue29188 + +Patch adapted from upstream source repository: + +https://github.com/python/cpython/commit/01bdbad3e951014c58581635b94b22868537901c + +From 01bdbad3e951014c58581635b94b22868537901c Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Mon, 9 Jan 2017 11:10:41 +0100 +Subject: [PATCH] Don't use getentropy() on Linux + +Issue #29188: Support glibc 2.24 on Linux: don't use getentropy() function but +read from /dev/urandom to get random bytes, for example in os.urandom(). On +Linux, getentropy() is implemented which getrandom() is blocking mode, whereas +os.urandom() should not block. +--- + Misc/NEWS | 5 +++++ + Python/random.c | 11 +++++++++-- + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/Python/random.c b/Python/random.c +index 57c41ffcd6..000cb36938 100644 +--- a/Python/random.c ++++ b/Python/random.c +@@ -97,8 +97,15 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise) + } + + /* Issue #25003: Don't use getentropy() on Solaris (available since +- * Solaris 11.3), it is blocking whereas os.urandom() should not block. */ +-#elif defined(HAVE_GETENTROPY) && !defined(sun) ++ Solaris 11.3), it is blocking whereas os.urandom() should not block. ++ ++ Issue #29188: Don't use getentropy() on Linux since the glibc 2.24 ++ implements it with the getrandom() syscall which can fail with ENOSYS, ++ and this error is not supported in py_getentropy() and getrandom() is called ++ with flags=0 which blocks until system urandom is initialized, which is not ++ the desired behaviour to seed the Python hash secret nor for os.urandom(): ++ see the PEP 524 which was only implemented in Python 3.6. */ ++#elif defined(HAVE_GETENTROPY) && !defined(sun) && !defined(linux) + #define PY_GETENTROPY 1 + + /* Fill buffer with size pseudo-random bytes generated by getentropy(). +-- +2.12.0 + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5baf329995..1f375621f6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -133,7 +133,8 @@ (patches (search-patches "python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" "python-2.7-site-prefixes.patch" - "python-2.7-source-date-epoch.patch")) + "python-2.7-source-date-epoch.patch" + "python-2.7-getentropy-on-old-kernels.patch")) (modules '((guix build utils))) ;; suboptimal to delete failing tests here, but if we delete them in the ;; arguments then we need to make sure to strip out that phase when it -- cgit v1.2.3 From 49c2a46e74fc51023fcd82c72bffdd7256f63bc0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 13 Mar 2017 17:11:20 -0400 Subject: gnu: python@2.7: Update to 2.7.13 * gnu/packages/python.scm (python-2.7): Update to 2.7.13. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1f375621f6..fa4235703b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -121,7 +121,7 @@ (define-public python-2.7 (package (name "python") - (version "2.7.12") + (version "2.7.13") (source (origin (method url-fetch) @@ -129,7 +129,7 @@ version "/Python-" version ".tar.xz")) (sha256 (base32 - "0y7rl603vmwlxm6ilkhc51rx2mfj14ckcz40xxgs0ljnvlhp30yp")) + "0cgpk3zk0fgpji59pb4zy9nzljr70qzgv1vpz5hq5xw2d2c47m9m")) (patches (search-patches "python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" "python-2.7-site-prefixes.patch" -- cgit v1.2.3 From c5e91014a2859b7e5c226c411fb14d19bb008a8a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 14 Mar 2017 20:00:03 +0200 Subject: gnu: mesa: Use llvm backend for Intel hardware only. * gnu/packages/gl.scm (mesa)[inputs]: Only use llvm for i686-linux and x86_64-linux. [arguments]: Only pass '--enable-gallium-llvm' to 'configure on i686-linux and x86_64-linux. --- gnu/packages/gl.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index fce44b43e2..14b033e305 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 ng0 ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 David Thompson +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -228,10 +229,14 @@ also known as DXTn or DXTC) for Mesa.") ("libxml2" ,libxml2) ;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support ("libxvmc" ,libxvmc) + ,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `(("llvm" ,llvm))) + (_ + `())) ("makedepend" ,makedepend) ("presentproto" ,presentproto) ("s2tc" ,s2tc) - ("llvm" ,llvm) ("wayland" ,wayland))) (native-inputs `(("pkg-config" ,pkg-config) @@ -239,7 +244,6 @@ also known as DXTn or DXTC) for Mesa.") (arguments `(#:configure-flags '("--with-gallium-drivers=i915,r300,r600,svga,swrast,nouveau,virgl" - "--enable-gallium-llvm" ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio "--with-egl-platforms=x11,drm,wayland" @@ -255,12 +259,13 @@ also known as DXTn or DXTC) for Mesa.") ;; Without floating point texture support, drivers such as Nouveau ;; are stuck at OpenGL 2.1 instead of OpenGL 3.0+. "--enable-texture-float" - + ;; on non-intel systems, drop i915 and i965 ;; from the default dri drivers ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - '()) + '("--with-dri-drivers=915,i965,nouveau,r200,radeon,swrast" + "--enable-gallium-llvm")) ; default is x86/x86_64 only (_ '("--with-dri-drivers=nouveau,r200,radeon,swrast")))) #:phases -- cgit v1.2.3 From 2a8b89c27fe80a438ad95becb5da8ed4191d6cd4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 14 Mar 2017 20:09:52 +0200 Subject: gnu: mesa: Customize build flags based on architecture. * gnu/packages/gl.scm (mesa)[arguments]: On armhf-linux and aarch64-linux remove the i915 gallium driver and add freedreno and vc4. --- gnu/packages/gl.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 14b033e305..4a23cf4042 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -243,7 +243,11 @@ also known as DXTn or DXTC) for Mesa.") ("python" ,python-2))) (arguments `(#:configure-flags - '("--with-gallium-drivers=i915,r300,r600,svga,swrast,nouveau,virgl" + '(,@(match (%current-system) + ((or "armhf-linux" "aarch64-linux") + '("--with-galluim-drivers=freedreno,nouveau,r300,r600,svga,svrast,vc4,virgl")) + (_ + '("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio "--with-egl-platforms=x11,drm,wayland" -- cgit v1.2.3 From 044006f3d28ec20aa111440471b2150956a832e5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 14 Mar 2017 20:10:56 +0200 Subject: gnu: mesa: Enable gallium tests. * gnu/packages/gl.scm (mesa)[arguments]: Add configure flag to enable the gallium tests. --- gnu/packages/gl.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 4a23cf4042..209628f342 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -264,6 +264,9 @@ also known as DXTn or DXTC) for Mesa.") ;; are stuck at OpenGL 2.1 instead of OpenGL 3.0+. "--enable-texture-float" + ;; Also enable the tests. + "--enable-gallium-tests" + ;; on non-intel systems, drop i915 and i965 ;; from the default dri drivers ,@(match (%current-system) -- cgit v1.2.3 From 568004c3c9a87b95d4e19a3187f336a20d33440a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 14 Mar 2017 20:47:40 +0200 Subject: gnu: nss: Build for aarch64-linux with 64-bit support. * gnu/packages/gnuzilla.scm (nss)[arguments]: Set the environmental variable 'USE_64' on aarch64-linux also. --- gnu/packages/gnuzilla.scm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 55dfda4948..79bf103306 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; ;;; This file is part of GNU Guix. @@ -23,6 +23,7 @@ (define-module (gnu packages gnuzilla) #:use-module ((srfi srfi-1) #:hide (zip)) + #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -203,7 +204,7 @@ in the Mozilla clients.") (build-system gnu-build-system) (outputs '("out" "bin")) (arguments - '(#:parallel-build? #f ; failed + `(#:parallel-build? #f ; not supported #:make-flags (let* ((out (assoc-ref %outputs "out")) (nspr (string-append (assoc-ref %build-inputs "nspr"))) @@ -223,11 +224,14 @@ in the Mozilla clients.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key system inputs #:allow-other-keys) + (lambda _ (setenv "CC" "gcc") ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. - (when (string-prefix? "x86_64" system) - (setenv "USE_64" "1")) + ,@(match (%current-system) + ((or "x86_64-linux" "aarch64-linux") + `((setenv "USE_64" "1"))) + (_ + '())) #t)) (replace 'check (lambda _ -- cgit v1.2.3 From 77c5d63f4d76f2905d975316347948cc913c6d20 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 13 Mar 2017 21:20:56 +0100 Subject: gnu: libidn2: Create 'pkg-config' file. * gnu/packages/libidn.scm (libidn2)[arguments]: Add phase creating libidn2.pc. --- gnu/packages/libidn.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm index 3af19b1c70..df0ac8b0b4 100644 --- a/gnu/packages/libidn.scm +++ b/gnu/packages/libidn.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Andreas Enge ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,9 +61,34 @@ Java libraries.") (sha256 (base32 "13v8kh4d5nfkymai88zlw3h7k4x9khrpdpv97waf4ah8ykzrxb9g")))) + ;; XXX: Make sure to remove the 'create-pkg-config' phase + ;; below when this package is updated to >= 0.17. (inputs `(("libunistring" ,libunistring))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'create-pkgconfig-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (pkgconfig (string-append out "/lib/pkgconfig"))) + (mkdir-p pkgconfig) + (call-with-output-file (string-append pkgconfig "/libidn2.pc") + (lambda (port) + (format port "prefix=~a +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Libidn2 +Description: Library implementing IDNA2008 and TR46 +Version: ~a +Libs: -L${libdir} -lidn2 +Cflags: -I${includedir} +" + out ,version))) + #t)))))) (synopsis "Internationalized domain name library for IDNA2008") (description "Libidn2 is an internationalized domain library implementing the IDNA2008 specifications. Libidn2 is believed to be a complete IDNA2008 -- cgit v1.2.3 From 378640ec37301de84f0ac7183aa88c52b25338c1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 15 Mar 2017 15:58:02 +0200 Subject: gnu: qemu-minimal: Add aarch64 to target list. * gnu/packages/qemu.scm (qemu-minimal)[arguments]: Add 'aarch64-softmmu' to the target list. --- gnu/packages/qemu.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 3aa4128be0..d43593957e 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -197,7 +197,7 @@ server and embedded PowerPC, and S390 guests.") (arguments `(#:configure-flags ;; Restrict to the targets supported by Guix. - '("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu") + '("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu") ,@(package-arguments qemu))) ;; Remove dependencies on optional libraries, notably GUI libraries. -- cgit v1.2.3 From adb984d23c003d5d48ada47bf5ad8105a3b8e412 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 15 Mar 2017 17:51:23 +0100 Subject: Revert "gnu: nss: Build for aarch64-linux with 64-bit support." Temporary revert to fix messy merge conflict! This reverts commit 568004c3c9a87b95d4e19a3187f336a20d33440a. --- gnu/packages/gnuzilla.scm | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 79bf103306..55dfda4948 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; ;;; This file is part of GNU Guix. @@ -23,7 +23,6 @@ (define-module (gnu packages gnuzilla) #:use-module ((srfi srfi-1) #:hide (zip)) - #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -204,7 +203,7 @@ in the Mozilla clients.") (build-system gnu-build-system) (outputs '("out" "bin")) (arguments - `(#:parallel-build? #f ; not supported + '(#:parallel-build? #f ; failed #:make-flags (let* ((out (assoc-ref %outputs "out")) (nspr (string-append (assoc-ref %build-inputs "nspr"))) @@ -224,14 +223,11 @@ in the Mozilla clients.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda _ + (lambda* (#:key system inputs #:allow-other-keys) (setenv "CC" "gcc") ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. - ,@(match (%current-system) - ((or "x86_64-linux" "aarch64-linux") - `((setenv "USE_64" "1"))) - (_ - '())) + (when (string-prefix? "x86_64" system) + (setenv "USE_64" "1")) #t)) (replace 'check (lambda _ -- cgit v1.2.3 From db3c06d511a47f653a87de82c0c7c0739033932d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 5 Mar 2017 15:13:46 +0100 Subject: gnu: nss: Use 'modify-phases' syntax. * gnu/packages/gnuzilla.scm (nss)[arguments]: Use 'modify-phases'. --- gnu/packages/gnuzilla.scm | 91 +++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 47 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e6e24f6650..e11e831cbe 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -221,55 +221,52 @@ in the Mozilla clients.") (ice-9 match) (srfi srfi-26)) #:phases - (alist-replace - 'configure - (lambda* (#:key system inputs #:allow-other-keys) - (setenv "CC" "gcc") - ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. - (when (string-prefix? "x86_64" system) - (setenv "USE_64" "1")) - #t) - (alist-replace - 'check - (lambda _ - ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing. - ;; The later requires a working DNS or /etc/hosts. - (setenv "DOMSUF" "(none)") - (setenv "USE_IP" "TRUE") - (setenv "IP_ADDRESS" "127.0.0.1") - (zero? (system* "./nss/tests/all.sh"))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append (assoc-ref outputs "bin") "/bin")) - (inc (string-append out "/include/nss")) - (lib (string-append out "/lib/nss")) - (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>)) - ((obj) (string-append "dist/" obj))))) - ;; Install nss-config to $out/bin. - (install-file (string-append obj "/bin/nss-config") - (string-append out "/bin")) - (delete-file (string-append obj "/bin/nss-config")) - ;; Install nss.pc to $out/lib/pkgconfig. - (install-file (string-append obj "/lib/pkgconfig/nss.pc") - (string-append out "/lib/pkgconfig")) - (delete-file (string-append obj "/lib/pkgconfig/nss.pc")) - (rmdir (string-append obj "/lib/pkgconfig")) - ;; Install other files. - (copy-recursively "dist/public/nss" inc) - (copy-recursively (string-append obj "/bin") bin) - (copy-recursively (string-append obj "/lib") lib) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key system inputs #:allow-other-keys) + (setenv "CC" "gcc") + ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. + (when (string-prefix? "x86_64" system) + (setenv "USE_64" "1")) + #t)) + (replace 'check + (lambda _ + ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing. + ;; The later requires a working DNS or /etc/hosts. + (setenv "DOMSUF" "(none)") + (setenv "USE_IP" "TRUE") + (setenv "IP_ADDRESS" "127.0.0.1") + (zero? (system* "./nss/tests/all.sh")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append (assoc-ref outputs "bin") "/bin")) + (inc (string-append out "/include/nss")) + (lib (string-append out "/lib/nss")) + (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>)) + ((obj) (string-append "dist/" obj))))) + ;; Install nss-config to $out/bin. + (install-file (string-append obj "/bin/nss-config") + (string-append out "/bin")) + (delete-file (string-append obj "/bin/nss-config")) + ;; Install nss.pc to $out/lib/pkgconfig. + (install-file (string-append obj "/lib/pkgconfig/nss.pc") + (string-append out "/lib/pkgconfig")) + (delete-file (string-append obj "/lib/pkgconfig/nss.pc")) + (rmdir (string-append obj "/lib/pkgconfig")) + ;; Install other files. + (copy-recursively "dist/public/nss" inc) + (copy-recursively (string-append obj "/bin") bin) + (copy-recursively (string-append obj "/lib") lib) - ;; FIXME: libgtest1.so is installed in the above step, and it's - ;; (unnecessarily) linked with several NSS libraries, but - ;; without the needed rpaths, causing the 'validate-runpath' - ;; phase to fail. Here we simply delete libgtest1.so, since it - ;; seems to be used only during the tests. - (delete-file (string-append lib "/libgtest1.so")) + ;; FIXME: libgtest1.so is installed in the above step, and it's + ;; (unnecessarily) linked with several NSS libraries, but + ;; without the needed rpaths, causing the 'validate-runpath' + ;; phase to fail. Here we simply delete libgtest1.so, since it + ;; seems to be used only during the tests. + (delete-file (string-append lib "/libgtest1.so")) - #t)) - %standard-phases))))) + #t)))))) (inputs `(("sqlite" ,sqlite) ("zlib" ,zlib))) -- cgit v1.2.3 From 1461dd241000b44f03733fe9fd2f13ba4463ed28 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 15 Mar 2017 17:53:27 +0100 Subject: Revert "Revert "gnu: nss: Build for aarch64-linux with 64-bit support."" This reverts commit adb984d23c003d5d48ada47bf5ad8105a3b8e412. --- gnu/packages/gnuzilla.scm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e11e831cbe..afb5ad3061 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; ;;; This file is part of GNU Guix. @@ -23,6 +23,7 @@ (define-module (gnu packages gnuzilla) #:use-module ((srfi srfi-1) #:hide (zip)) + #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -203,7 +204,7 @@ in the Mozilla clients.") (build-system gnu-build-system) (outputs '("out" "bin")) (arguments - '(#:parallel-build? #f ; failed + `(#:parallel-build? #f ; not supported #:make-flags (let* ((out (assoc-ref %outputs "out")) (nspr (string-append (assoc-ref %build-inputs "nspr"))) @@ -223,11 +224,14 @@ in the Mozilla clients.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key system inputs #:allow-other-keys) + (lambda _ (setenv "CC" "gcc") ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. - (when (string-prefix? "x86_64" system) - (setenv "USE_64" "1")) + ,@(match (%current-system) + ((or "x86_64-linux" "aarch64-linux") + `((setenv "USE_64" "1"))) + (_ + '())) #t)) (replace 'check (lambda _ -- cgit v1.2.3 From d027b0011f2dec1c6568381deeb817933fd131a9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 14 Mar 2017 22:54:41 +0100 Subject: gnu: nss: Increase test timeouts. * gnu/packages/patches/nss-increase-test-timeout.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gnuzilla.scm (nss)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/gnuzilla.scm | 3 ++- .../patches/nss-increase-test-timeout.patch | 25 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/nss-increase-test-timeout.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3c11e3adde..3b2bde7290 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -781,6 +781,7 @@ dist_patch_DATA = \ %D%/packages/patches/ninja-tests.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ %D%/packages/patches/node-9077.patch \ + %D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/ntfs-3g-CVE-2017-0358.patch \ %D%/packages/patches/nvi-assume-preserve-path.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index afb5ad3061..4759b9236f 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -200,7 +200,8 @@ in the Mozilla clients.") (base32 "149807rmzb76hnh48rw4m9jw83iw0168njzchz0hmbsgc8mk0i5w")) ;; Create nss.pc and nss-config. - (patches (search-patches "nss-pkgconfig.patch")))) + (patches (search-patches "nss-pkgconfig.patch" + "nss-increase-test-timeout.patch")))) (build-system gnu-build-system) (outputs '("out" "bin")) (arguments diff --git a/gnu/packages/patches/nss-increase-test-timeout.patch b/gnu/packages/patches/nss-increase-test-timeout.patch new file mode 100644 index 0000000000..c6aac6ac00 --- /dev/null +++ b/gnu/packages/patches/nss-increase-test-timeout.patch @@ -0,0 +1,25 @@ +We've seen some tests take more than 20s to complete on a busy armhf +machine. Even a busy x86_64 machine can use more than 5s on some tests. + +Increase timeouts to increase chances of a successful build. + +--- a/nss/gtests/ssl_gtest/tls_connect.cc 2017-03-14 22:47:30.855813629 +0100 ++++ b/nss/gtests/ssl_gtest/tls_connect.cc 2017-03-14 22:48:49.042335273 +0100 +@@ -245,7 +245,7 @@ + + ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) && + (server_->state() != TlsAgent::STATE_CONNECTING), +- 5000); ++ 25000); + } + + void TlsConnectTestBase::EnableExtendedMasterSecret() { +@@ -387,7 +387,7 @@ + } else { + fail_agent = server_; + } +- ASSERT_TRUE_WAIT(fail_agent->state() == TlsAgent::STATE_ERROR, 5000); ++ ASSERT_TRUE_WAIT(fail_agent->state() == TlsAgent::STATE_ERROR, 25000); + } + + void TlsConnectTestBase::ConfigureVersion(uint16_t version) { -- cgit v1.2.3 From b8f99f4ae3b4dac4c040dda99833f61188c528c7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 13 Mar 2017 16:53:27 +0100 Subject: gnu: nss, nss-certs: Update to 3.29.3. * gnu/packages/gnuzilla.scm (nss): Update to 3.29.3. * gnu/packages/certs.scm (nss-certs): Update to 3.29.3. --- gnu/packages/certs.scm | 4 ++-- gnu/packages/gnuzilla.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index e35e9aabab..7f5c5b793f 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -74,7 +74,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.29.2") + (version "3.29.3") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -85,7 +85,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "149807rmzb76hnh48rw4m9jw83iw0168njzchz0hmbsgc8mk0i5w")))) + "1sz1r2iml9bhd4iqiqz75gii855a25895vpy9scjky0y4lqwrp9m")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 4759b9236f..af95f149f7 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -187,7 +187,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.29.2") + (version "3.29.3") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -198,7 +198,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "149807rmzb76hnh48rw4m9jw83iw0168njzchz0hmbsgc8mk0i5w")) + "1sz1r2iml9bhd4iqiqz75gii855a25895vpy9scjky0y4lqwrp9m")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) -- cgit v1.2.3 From 5707ce6e4bfd808c5fd78b043ab0e0c92ee0901e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 16 Mar 2017 01:57:33 -0400 Subject: Revert "gnu: bdftopcf: Use libxfont2." Building with libxfont2 leads to an error in the configure phase: "No package 'xfont' found" This reverts commit 2060b4d95f182a09cbdf925675f53a8043e29b01. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 191dc7dd19..266ac78fb8 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -177,7 +177,7 @@ directory tree.") "09i03sk878cmx2i40lkpsysn7zqcvlczb30j7x3lryb11jz4gx1q")))) (build-system gnu-build-system) (inputs - `(("libxfont2" ,libxfont2))) + `(("libxfont" ,libxfont))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") -- cgit v1.2.3 From 56f76b08be97549dcc409b090186103413dc4e4b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 16 Mar 2017 09:41:20 +0100 Subject: gnu: jack-2: Fix build by patching fast_rand. * gnu/packages/audio.scm (jack-2)[arguments]: Add phase "patch-fast_rand" to apply upstream fixes. --- gnu/packages/audio.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2b11a32caf..29b4718452 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1286,6 +1286,15 @@ synchronous execution of all clients, and low latency operation.") "--alsa") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-fast_rand + (lambda _ + (substitute* "common/memops.c" + ;; Fixed in upstream commit d3c8e2d8d78899fba40a3e677ed4dbe388d82269 + (("^inline unsigned int fast_rand" line) + (string-append "static " line)) + ;; Fixed in upstream commit 0279a2d65a36d1378f5bab56d95bf9e99cc8cefb + ((" 96314165") " 196314165")) + #t)) (add-before 'configure 'set-linkflags (lambda _ -- cgit v1.2.3 From 38c4ca414165dfc5ed2bcc69a50280f710f11bcf Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 16 Mar 2017 17:19:47 -0400 Subject: gnu: mesa: Fix typo. The typo caused the configure phase to fail like this: "configure: error: classic DRI driver '915' does not exist" This is a followup to commit c5e91014a2859b7e5c226c411fb14d19bb008a8a. * gnu/packages/gl.scm (mesa)[arguments]: Fix typo in #:configure-flags. --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 209628f342..b24903a3e5 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -271,7 +271,7 @@ also known as DXTn or DXTC) for Mesa.") ;; from the default dri drivers ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - '("--with-dri-drivers=915,i965,nouveau,r200,radeon,swrast" + '("--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast" "--enable-gallium-llvm")) ; default is x86/x86_64 only (_ '("--with-dri-drivers=nouveau,r200,radeon,swrast")))) -- cgit v1.2.3 From 3d3d4014c208e998dacbb9a3071223ec52d68025 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 19 Mar 2017 10:56:40 +0200 Subject: gnu: libepoxy: Update to 1.4.1. * gnu/packages/gl.scm (libepoxy): Update to 1.4.1. [home-page]: Use https. --- gnu/packages/gl.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index b24903a3e5..3a1e90f427 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -470,17 +470,15 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append - "https://github.com/anholt/libepoxy/releases/download/v" - (version-major+minor version) "/libepoxy-" - version - ".tar.xz")) + "https://github.com/anholt/libepoxy/releases/download/" + version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "0hdbaapbxjjfdqsdvag460kfjvs800da5sngi2sc46wj9aqhda95")))) + "19hsyap2p0sflj75ycf4af9bsp453bamymbcgnmrphigabsspil8")))) (arguments `(#:phases (modify-phases %standard-phases @@ -501,7 +499,7 @@ OpenGL graphics API.") ("python" ,python))) (inputs `(("mesa" ,mesa))) - (home-page "http://github.com/anholt/libepoxy/") + (home-page "https://github.com/anholt/libepoxy/") (synopsis "A library for handling OpenGL function pointer management") (description "A library for handling OpenGL function pointer management.") -- cgit v1.2.3 From ea50fb8d03ba16ff9757687a569b3d1f2846859d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 19 Mar 2017 11:06:29 +0200 Subject: gnu: libepoxy: Add support for aarch64. * gnu/packages/gl.scm (libepoxy)[arguments]: Add substitution to support aarch64. --- gnu/packages/gl.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 3a1e90f427..5801085c21 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -489,6 +489,10 @@ OpenGL graphics API.") (mesa (assoc-ref inputs "mesa"))) (substitute* "src/gen_dispatch.py" (("/usr/bin/env python") python)) + ;; Add support for aarch64, see upstream: + ;; https://github.com/anholt/libepoxy/pull/114 + (substitute* "test/dlwrap.c" + (("GLIBC_2.4") "GLIBC_2.17\", \"GLIBC_2.4")) (substitute* (find-files "." "\\.[ch]$") (("libGL.so.1") (string-append mesa "/lib/libGL.so.1")) (("libEGL.so.1") (string-append mesa "/lib/libEGL.so.1"))) -- cgit v1.2.3 From 717c659630970982c06e4aeab684f41f724af2f9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 19 Mar 2017 16:05:16 -0400 Subject: gnu: mesa: Fix another typo. This is a followup to commit 2a8b89c27fe80a438ad95becb5da8ed4191d6cd4. * gnu/packages/gl.scm (mesa)[arguments]: Fix typo (galluim -> gallium). --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 5801085c21..cf9688fdf6 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -245,7 +245,7 @@ also known as DXTn or DXTC) for Mesa.") `(#:configure-flags '(,@(match (%current-system) ((or "armhf-linux" "aarch64-linux") - '("--with-galluim-drivers=freedreno,nouveau,r300,r600,svga,svrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,svga,svrast,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, -- cgit v1.2.3 From 4c20b0bcf7c8396cadc618a3df0127b864fd10f2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 18 Mar 2017 22:58:14 -0400 Subject: gnu: graphite2: Fix test failure caused by rounding error on 32-bit CPUs. * gnu/packages/patches/graphite2-ffloat-store.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/fontutils.scm (graphite2): Use it. --- gnu/local.mk | 1 + gnu/packages/fontutils.scm | 2 ++ gnu/packages/patches/graphite2-ffloat-store.patch | 34 +++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 gnu/packages/patches/graphite2-ffloat-store.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3b2bde7290..9fc5953863 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -606,6 +606,7 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grub-CVE-2015-8370.patch \ %D%/packages/patches/grub-gets-undeclared.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 46c658b667..7e7234960d 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 Rene Saavedra +;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -380,6 +381,7 @@ applications should be.") (method url-fetch) (uri (string-append "https://github.com/silnrsi/graphite/releases/" "download/" version "/" name "-" version ".tgz")) + (patches (search-patches "graphite2-ffloat-store.patch")) (sha256 (base32 "0rs5h7m340z75kygx8d72cps0q6yvvqa9i788vym7585cfv8a0gc")))) diff --git a/gnu/packages/patches/graphite2-ffloat-store.patch b/gnu/packages/patches/graphite2-ffloat-store.patch new file mode 100644 index 0000000000..f6ee56973e --- /dev/null +++ b/gnu/packages/patches/graphite2-ffloat-store.patch @@ -0,0 +1,34 @@ +Fix test failures of awamicmp1 and awamicmp2. + +Debian bug report: + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855814 + +Patch adapted from upstream source repository: + +https://github.com/silnrsi/graphite/commit/f7bbdd87d510d587c872e314d6458160c0069c65 + +From f7bbdd87d510d587c872e314d6458160c0069c65 Mon Sep 17 00:00:00 2001 +From: Martin Hosken +Date: Tue, 14 Feb 2017 17:00:03 +0000 +Subject: [PATCH] try -ffloat-store for fp stability. Remove nested const to + work around VS bug + +--- + src/CMakeLists.txt | 2 +- + src/inc/locale2lcid.h | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 4f1e7e5..5b61b5c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -108,7 +108,7 @@ set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" + + if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + set_target_properties(graphite2 PROPERTIES +- COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector" ++ COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector -ffloat-store" + LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + if (CMAKE_COMPILER_IS_GNUCXX) -- cgit v1.2.3 From 4ed06287376bc1632c6bca4a395795bc8cc1b874 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Mar 2017 23:09:15 +0100 Subject: gnu: elogind: Build with gperf 3.0. * gnu/packages/gperf.scm (gperf-3.0): New variable. * gnu/packages/freedesktop.scm (elogind)[native-inputs]: Use GPERF-3.0 instead of GPERF. --- gnu/packages/freedesktop.scm | 5 ++++- gnu/packages/gperf.scm | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 20a104f623..065046e667 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -206,7 +206,10 @@ the freedesktop.org XDG Base Directory specification.") ("m4" ,m4) ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("pkg-config" ,pkg-config) - ("gperf" ,gperf))) + + ;; Use gperf 3.0 to work around + ;; . + ("gperf" ,gperf-3.0))) (inputs `(("linux-pam" ,linux-pam) ("linux-libre-headers" ,linux-libre-headers) diff --git a/gnu/packages/gperf.scm b/gnu/packages/gperf.scm index 5e55f8d86f..a9f958f59a 100644 --- a/gnu/packages/gperf.scm +++ b/gnu/packages/gperf.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,3 +44,18 @@ strings, it produces a hash function and hash table in C or C++ code. That the hash function is perfect means that no collisions can exist and that look-ups can be made by single string comparisons.") (license gpl3+))) + +(define-public gperf-3.0 + ;; This older version would use 'unsigned int' in its generated lookup + ;; functions whereas 3.1 uses 'size_t', which causes breakage such as + ;; . + (package + (inherit gperf) + (version "3.0.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gperf/gperf-" + version ".tar.gz")) + (sha256 + (base32 + "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn")))))) -- cgit v1.2.3 From 5927a843b4a91416b5be9e65c69616447f82e162 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Mar 2017 22:10:12 +0100 Subject: gnu: python-minimal@2: Add dependencies on libffi and zlib. * gnu/packages/python.scm (python2-minimal)[inputs]: Add LIBFFI and ZLIB. [arguments]: Remove. --- gnu/packages/python.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index be452f0627..00598776ab 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -359,11 +359,12 @@ data types.") (package (inherit python-2) (name "python-minimal") (outputs '("out")) - (arguments - (substitute-keyword-arguments (package-arguments python-2) - ((#:configure-flags cf) - `(append ,cf '("--without-system-ffi"))))) - (inputs '()))) ;none of the optional dependencies + + ;; Keep zlib, which is used by 'pip' (via the 'zipimport' module), which + ;; is invoked upon 'make install'. 'pip' also expects 'ctypes' and thus + ;; libffi. + (inputs `(("libffi" ,libffi) + ("zlib" ,zlib))))) (define-public python-minimal (package (inherit python) -- cgit v1.2.3 From d5c969ce0c3cb0de0e68551de3db62588fd2c534 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Mar 2017 23:28:27 +0100 Subject: gnu: lsh: Use libc's argp instead of the bundled one. * gnu/packages/ssh.scm (lsh)[arguments] <#:configure-flags>: Add --with-system-argp and CPPFLAGS=-DHAVE_ARGP_PARSE. <#:phases>: In 'pre-configure' phase, modify src/Makefile.in. --- gnu/packages/ssh.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index eaa832269d..068e870f93 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -446,7 +446,14 @@ basis for almost any application.") '(;; Skip the `configure' test that checks whether /dev/ptmx & ;; co. work as expected, because it relies on impurities (for ;; instance, /dev/pts may be unavailable in chroots.) - #:configure-flags '("lsh_cv_sys_unix98_ptys=yes") + #:configure-flags '("lsh_cv_sys_unix98_ptys=yes" + + ;; Use glibc's argp rather than the bundled one. + "--with-system-argp" + + ;; 'lsh_argp.h' checks HAVE_ARGP_PARSE but nothing + ;; defines it. + "CPPFLAGS=-DHAVE_ARGP_PARSE") ;; FIXME: Tests won't run in a chroot, presumably because ;; /etc/profile is missing, and thus clients get an empty $PATH @@ -459,6 +466,12 @@ basis for almost any application.") (lambda* (#:key inputs #:allow-other-keys) (let* ((nettle (assoc-ref inputs "nettle")) (sexp-conv (string-append nettle "/bin/sexp-conv"))) + ;; Remove argp from the list of sub-directories; we don't want + ;; to build it, really. + (substitute* "src/Makefile.in" + (("^SUBDIRS = argp") + "SUBDIRS =")) + ;; Make sure 'lsh' and 'lshd' pick 'sexp-conv' in the right place ;; by default. (substitute* "src/environ.h.in" -- cgit v1.2.3 From b99eec83b861f6bee7afb7bd6ffcbdddd8f62b65 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Mar 2017 23:40:51 +0100 Subject: gnu: librep: Update to 0.92.6. * gnu/packages/sawfish.scm (librep): Update to 0.92.6. [arguments]: New field. [native-inputs]: Add AUTOCONF-WRAPPER, AUTOMAKE, and LIBTOOL. --- gnu/packages/sawfish.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index 54b72ffe03..535dd8eb06 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -22,6 +22,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages databases) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) @@ -36,18 +37,29 @@ (define-public librep (package (name "librep") - (version "0.92.5") + (version "0.92.6") (source (origin (method url-fetch) (uri (string-append "http://download.tuxfamily.org/" name "/" name "_" version ".tar.xz")) (sha256 (base32 - "0zsy5gi8kvz5vq41y5rzm6lfi3dpiwbg4diwb6d30qfi72mrpni2")))) + "1k6c0hmyzxh8459r790slh9vv9vwy9d7w3nlmrqypbx9mk855hgy")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + ;; The 0.92.6 tarball was not produced by 'make dist' + ;; and lacks generated files. Sadness. + (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("makeinfo" ,texinfo) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + + ("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake) + ("libtool" ,libtool))) (inputs `(("gdbm" ,gdbm) ("gmp" ,gmp) -- cgit v1.2.3 From 80042ae93d80244fff5b8c11e9bcbc164a3320e7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Mar 2017 20:04:11 +0200 Subject: gnu: wget: Fix test-504 failures. * gnu/packages/wget.scm (wget)[source]: Add patch. * gnu/packages/patches/wget-fix-504-test-timeout.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/wget-fix-504-test-timeout.patch | 160 +++++++++++++++++++++ gnu/packages/wget.scm | 5 +- 3 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/wget-fix-504-test-timeout.patch diff --git a/gnu/local.mk b/gnu/local.mk index c92a5d09f8..40d2e74023 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -977,6 +977,7 @@ dist_patch_DATA = \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/weechat-python.patch \ %D%/packages/patches/wget-CVE-2017-6508.patch \ + %D%/packages/patches/wget-fix-504-test-timeout.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/patches/wget-fix-504-test-timeout.patch b/gnu/packages/patches/wget-fix-504-test-timeout.patch new file mode 100644 index 0000000000..d9bf154103 --- /dev/null +++ b/gnu/packages/patches/wget-fix-504-test-timeout.patch @@ -0,0 +1,160 @@ +This patch is from upstream. If a machine is too slow it can cause +test-504.py to fail. +http://git.savannah.gnu.org/cgit/wget.git/patch/?id=ac4fed32204e9ec1874e7cb5ecc55f1b35c1c8de + +From ac4fed32204e9ec1874e7cb5ecc55f1b35c1c8de Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim=20R=C3=BChsen?= +Date: Tue, 14 Feb 2017 16:20:26 +0100 +Subject: Fix 504 status handling + +* src/http.c (gethttp): Move 504 handling to correct place. + (http_loop): Fix memeory leak. +* testenv/server/http/http_server.py: Add Content-Length header on non-2xx + status codes with a body + +Reported-by: Adam Sampson +--- + src/http.c | 30 +++++++++++------------------- + testenv/server/http/http_server.py | 9 +++++---- + 2 files changed, 16 insertions(+), 23 deletions(-) + +diff --git a/src/http.c b/src/http.c +index 898e184..d2c5c77 100644 +--- a/src/http.c ++++ b/src/http.c +@@ -3476,7 +3476,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, + + #ifdef HAVE_METALINK + /* We need to check for the Metalink data in the very first response +- we get from the server (before redirectionrs, authorization, etc.). */ ++ we get from the server (before redirections, authorization, etc.). */ + if (metalink) + { + hs->metalink = metalink_from_http (resp, hs, u); +@@ -3496,7 +3496,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, + uerr_t auth_err = RETROK; + bool retry; + /* Normally we are not interested in the response body. +- But if we are writing a WARC file we are: we like to keep everyting. */ ++ But if we are writing a WARC file we are: we like to keep everything. */ + if (warc_enabled) + { + int _err; +@@ -3556,20 +3556,6 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, + pconn.authorized = true; + } + +- if (statcode == HTTP_STATUS_GATEWAY_TIMEOUT) +- { +- hs->len = 0; +- hs->res = 0; +- hs->restval = 0; +- +- CLOSE_FINISH (sock); +- xfree (hs->message); +- +- retval = GATEWAYTIMEOUT; +- goto cleanup; +- } +- +- + { + uerr_t ret = check_file_output (u, hs, resp, hdrval, sizeof hdrval); + if (ret != RETROK) +@@ -3910,8 +3896,8 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, + retval = _err; + goto cleanup; + } +- else +- CLOSE_FINISH (sock); ++ ++ CLOSE_FINISH (sock); + } + else + { +@@ -3934,7 +3920,11 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs, + CLOSE_INVALIDATE (sock); + } + +- retval = RETRFINISHED; ++ if (statcode == HTTP_STATUS_GATEWAY_TIMEOUT) ++ retval = GATEWAYTIMEOUT; ++ else ++ retval = RETRFINISHED; ++ + goto cleanup; + } + +@@ -4208,6 +4198,8 @@ http_loop (const struct url *u, struct url *original_url, char **newloc, + bring them to "while" statement at the end, to judge + whether the number of tries was exceeded. */ + printwhat (count, opt.ntry); ++ xfree (hstat.message); ++ xfree (hstat.error); + continue; + case FWRITEERR: case FOPENERR: + /* Another fatal error. */ +diff --git a/testenv/server/http/http_server.py b/testenv/server/http/http_server.py +index e96f6e8..b222df0 100644 +--- a/testenv/server/http/http_server.py ++++ b/testenv/server/http/http_server.py +@@ -204,7 +204,6 @@ class _Handler(BaseHTTPRequestHandler): + + def Response(self, resp_obj): + self.send_response(resp_obj.response_code) +- self.finish_headers() + if resp_obj.response_code == 304: + raise NoBodyServerError("Conditional get falling to head") + raise ServerError("Custom Response code sent.") +@@ -329,7 +328,6 @@ class _Handler(BaseHTTPRequestHandler): + except AuthError as se: + self.send_response(401, "Authorization Required") + self.send_challenge(auth_rule.auth_type, auth_rule.auth_parm) +- self.finish_headers() + raise se + + def handle_auth(self, auth_rule): +@@ -362,7 +360,6 @@ class _Handler(BaseHTTPRequestHandler): + if header_recd is None or header_recd != exp_headers[header_line]: + self.send_error(400, "Expected Header %s not found" % + header_line) +- self.finish_headers() + raise ServerError("Header " + header_line + " not found") + + def RejectHeader(self, header_obj): +@@ -372,7 +369,6 @@ class _Handler(BaseHTTPRequestHandler): + if header_recd and header_recd == rej_headers[header_line]: + self.send_error(400, 'Blacklisted Header %s received' % + header_line) +- self.finish_headers() + raise ServerError("Header " + header_line + ' received') + + def __log_request(self, method): +@@ -400,6 +396,7 @@ class _Handler(BaseHTTPRequestHandler): + + content = self.server.fileSys.get(path) + content_length = len(content) ++ + for rule_name in self.rules: + try: + assert hasattr(self, rule_name) +@@ -410,12 +407,16 @@ class _Handler(BaseHTTPRequestHandler): + return(None, None) + except AuthError as ae: + print(ae.__str__()) ++ self.finish_headers() + return(None, None) + except NoBodyServerError as nbse: + print(nbse.__str__()) ++ self.finish_headers() + return(None, None) + except ServerError as se: + print(se.__str__()) ++ self.add_header("Content-Length", content_length) ++ self.finish_headers() + return(content, None) + + try: +-- +cgit v1.0-41-gc330 + diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 1c56e14a66..a73c68004d 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Ludovic Courtès -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,7 +40,8 @@ (method url-fetch) (uri (string-append "mirror://gnu/wget/wget-" version ".tar.xz")) - (patches (search-patches "wget-CVE-2017-6508.patch")) + (patches (search-patches "wget-CVE-2017-6508.patch" + "wget-fix-504-test-timeout.patch")) (sha256 (base32 "1ljcfhbkdsd0zjfm520rbl1ai62fc34i7c45sfj244l8f6b0p58c")))) -- cgit v1.2.3 From 4e6509b27f584df4fb8a23366cc89af6cd9130b1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 20 Mar 2017 21:42:07 +0200 Subject: gnu: mesa: Correct another typo. * gnu/packages/gl.scm (mesa)[arguments]: Fix typo (svrast -> swrast). --- gnu/packages/gl.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index cf9688fdf6..f0f84ba4db 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -245,7 +245,7 @@ also known as DXTn or DXTC) for Mesa.") `(#:configure-flags '(,@(match (%current-system) ((or "armhf-linux" "aarch64-linux") - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,svga,svrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,svga,swrast,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, -- cgit v1.2.3 From bd0c62315b2ed400f3b58d457b5d2e4efb6ea138 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Mar 2017 22:44:26 +0100 Subject: gnu: bristol: Fix build failure with alsa-lib 1.1.x. * gnu/packages/music.scm (bristol)[arguments]: Add build phase to fix build failure with alsa-lib 1.1.x. --- gnu/packages/music.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 87b6d5b9b3..5067ee8afa 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1236,6 +1236,13 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.") (substitute* "bristol/Makefile.in" (("-msse -mfpmath=sse") ""))) #t)) + ;; alsa-lib 1.1.x no longer provides iatomic.h. That's okay because + ;; bristol actually doesn't use it. + (add-after 'unpack 'do-not-use-alsa-iatomic + (lambda _ + (substitute* "libbristolaudio/audioEngineJack.c" + (("#include ") "")) + #t)) ;; We know that Bristol has been linked with JACK and we don't have ;; ldd, so we can just skip this check. (add-after 'unpack 'do-not-grep-for-jack -- cgit v1.2.3 From 4140b86beae1bb54bcfc85b34955f916cb054540 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 17 Mar 2017 15:53:29 +0100 Subject: gnu: php: Update to 7.1.3. * gnu/packages/php.scm (php): Update to 7.1.3. --- gnu/packages/php.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 0dfee36c1b..071820ecb3 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -53,7 +53,7 @@ (define-public php (package (name "php") - (version "7.1.2") + (version "7.1.3") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -61,7 +61,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "0wg9ng230w724rpwsrhcg4pw41xm1xhz0zx76haanyymkz1s05fq")) + "1c0brdq5aqh4i127pq1g904dfb6klz2gbg9gjvykg3kp6hk7r274")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" -- cgit v1.2.3 From 957699ee92a86367d4ba60d1e3a02431b2852963 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 20 Mar 2017 18:16:20 -0400 Subject: gnu: openjpeg: Remove obsolete patches. * gnu/packages/patches/openjpeg-CVE-2016-5157.patch, gnu/packages/patches/openjpeg-CVE-2016-7163.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/image.scm (openjpeg)[source]: Remove them. --- gnu/local.mk | 2 - gnu/packages/image.scm | 4 +- gnu/packages/patches/openjpeg-CVE-2016-5157.patch | 96 ----------------------- gnu/packages/patches/openjpeg-CVE-2016-7163.patch | 71 ----------------- 4 files changed, 1 insertion(+), 172 deletions(-) delete mode 100644 gnu/packages/patches/openjpeg-CVE-2016-5157.patch delete mode 100644 gnu/packages/patches/openjpeg-CVE-2016-7163.patch diff --git a/gnu/local.mk b/gnu/local.mk index 40d2e74023..a194469c4e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -796,8 +796,6 @@ dist_patch_DATA = \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/openexr-missing-samples.patch \ - %D%/packages/patches/openjpeg-CVE-2016-5157.patch \ - %D%/packages/patches/openjpeg-CVE-2016-7163.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ %D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \ %D%/packages/patches/openjpeg-use-after-free-fix.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 2989ea006f..9c0e695f9a 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -489,9 +489,7 @@ work.") (sha256 (base32 "19yz4g0c45sm8y1z01j9djsrl1mkz3pmw7fykc6hkvrqymp7prsc")) - (patches (search-patches "openjpeg-CVE-2016-5157.patch" - "openjpeg-CVE-2016-7163.patch" - "openjpeg-CVE-2016-9850-CVE-2016-9851.patch" + (patches (search-patches "openjpeg-CVE-2016-9850-CVE-2016-9851.patch" "openjpeg-CVE-2016-9572-CVE-2016-9573.patch")))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/patches/openjpeg-CVE-2016-5157.patch b/gnu/packages/patches/openjpeg-CVE-2016-5157.patch deleted file mode 100644 index f83bd9b511..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2016-5157.patch +++ /dev/null @@ -1,96 +0,0 @@ -Fix CVE-2016-5157 (heap overflow in opj_dwt_interleave_v() allowing execution of -arbitrary code): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5157 -https://pdfium.googlesource.com/pdfium/+/b6befb2ed2485a3805cddea86dc7574510178ea9 -http://seclists.org/oss-sec/2016/q3/441 - -Adapted from upstream source repository: - -https://github.com/uclouvain/openjpeg/commit/e078172b1c3f98d2219c37076b238fb759c751ea - -The final hunk of the patch, affecting -'tests/nonregression/test_suite.ctest.in', had to be adjusted, since it referred -to some context that is not yet provided by a tagged release. - -From c80286a4d573ad07ccc3c8b53289c38bb8256b30 Mon Sep 17 00:00:00 2001 -From: Leo Famulari -Date: Fri, 9 Sep 2016 04:37:40 -0400 -Subject: [PATCH] CVE-2016-5157 adjusted to apply to 2.1.0. - ---- - src/lib/openjp2/tcd.c | 11 +++++++++++ - tests/compare_dump_files.c | 14 +++++++------- - tests/nonregression/test_suite.ctest.in | 2 ++ - 3 files changed, 20 insertions(+), 7 deletions(-) - -diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c -index 12da05c..7a29c49 100644 ---- a/src/lib/openjp2/tcd.c -+++ b/src/lib/openjp2/tcd.c -@@ -696,9 +696,20 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no, - l_tx0 = l_cp->tx0 + p * l_cp->tdx; /* can't be greater than l_image->x1 so won't overflow */ - l_tile->x0 = (OPJ_INT32)opj_uint_max(l_tx0, l_image->x0); - l_tile->x1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_tx0, l_cp->tdx), l_image->x1); -+ /* all those OPJ_UINT32 are casted to OPJ_INT32, let's do some sanity check */ -+ if ((l_tile->x0 < 0) || (l_tile->x1 <= l_tile->x0)) { -+ opj_event_msg(manager, EVT_ERROR, "Tile X coordinates are not supported\n"); -+ return OPJ_FALSE; -+ } - l_ty0 = l_cp->ty0 + q * l_cp->tdy; /* can't be greater than l_image->y1 so won't overflow */ - l_tile->y0 = (OPJ_INT32)opj_uint_max(l_ty0, l_image->y0); - l_tile->y1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_ty0, l_cp->tdy), l_image->y1); -+ /* all those OPJ_UINT32 are casted to OPJ_INT32, let's do some sanity check */ -+ if ((l_tile->y0 < 0) || (l_tile->y1 <= l_tile->y0)) { -+ opj_event_msg(manager, EVT_ERROR, "Tile Y coordinates are not supported\n"); -+ return OPJ_FALSE; -+ } -+ - - /* testcase 1888.pdf.asan.35.988 */ - if (l_tccp->numresolutions == 0) { -diff --git a/tests/compare_dump_files.c b/tests/compare_dump_files.c -index 946c92a..7d22270 100644 ---- a/tests/compare_dump_files.c -+++ b/tests/compare_dump_files.c -@@ -118,10 +118,10 @@ int main(int argc, char **argv) - test_cmp_parameters inParam; - FILE *fbase=NULL, *ftest=NULL; - int same = 0; -- char lbase[256]; -- char strbase[256]; -- char ltest[256]; -- char strtest[256]; -+ char lbase[512]; -+ char strbase[512]; -+ char ltest[512]; -+ char strtest[512]; - - if( parse_cmdline_cmp(argc, argv, &inParam) == 1 ) - { -@@ -154,9 +154,9 @@ int main(int argc, char **argv) - - while (fgets(lbase, sizeof(lbase), fbase) && fgets(ltest,sizeof(ltest),ftest)) - { -- int nbase = sscanf(lbase, "%255[^\r\n]", strbase); -- int ntest = sscanf(ltest, "%255[^\r\n]", strtest); -- assert( nbase != 255 && ntest != 255 ); -+ int nbase = sscanf(lbase, "%511[^\r\n]", strbase); -+ int ntest = sscanf(ltest, "%511[^\r\n]", strtest); -+ assert( nbase != 511 && ntest != 511 ); - if( nbase != 1 || ntest != 1 ) - { - fprintf(stderr, "could not parse line from files\n" ); -diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in -index d393e6c..90cfa43 100644 ---- a/tests/nonregression/test_suite.ctest.in -+++ b/tests/nonregression/test_suite.ctest.in -@@ -564,3 +564,5 @@ opj_decompress -i @INPUT_NR_PATH@/issue726.j2k -o @TEMP_PATH@/issue726.png - # issue 775 - !opj_decompress -i @INPUT_NR_PATH@/issue775.j2k -o @TEMP_PATH@/issue775.png - !opj_decompress -i @INPUT_NR_PATH@/issue775-2.j2k -o @TEMP_PATH@/issue775-2.png -+# issue 823 (yes, not a typo, test image is issue822) -+!opj_decompress -i @INPUT_NR_PATH@/issue822.jp2 -o @TEMP_PATH@/issue822.png --- -2.10.0 - diff --git a/gnu/packages/patches/openjpeg-CVE-2016-7163.patch b/gnu/packages/patches/openjpeg-CVE-2016-7163.patch deleted file mode 100644 index a4a24e4ff5..0000000000 --- a/gnu/packages/patches/openjpeg-CVE-2016-7163.patch +++ /dev/null @@ -1,71 +0,0 @@ -Fix CVE-2016-7613 (Integer overflow in opj_pi_create_decode allowing execution -of arbitrary code): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7163 -https://github.com/uclouvain/openjpeg/issues/826 -http://seclists.org/oss-sec/2016/q3/442 - -Copied from upstream repository: - -https://github.com/uclouvain/openjpeg/commit/c16bc057ba3f125051c9966cf1f5b68a05681de4 -https://github.com/uclouvain/openjpeg/commit/ef01f18dfc6780b776d0674ed3e7415c6ef54d24 - -From c16bc057ba3f125051c9966cf1f5b68a05681de4 Mon Sep 17 00:00:00 2001 -From: trylab -Date: Tue, 6 Sep 2016 13:55:49 +0800 -Subject: [PATCH] Fix an integer overflow issue (#809) - -Prevent an integer overflow issue in function opj_pi_create_decode of -pi.c. ---- - src/lib/openjp2/pi.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/lib/openjp2/pi.c b/src/lib/openjp2/pi.c -index cffad66..36e2ff0 100644 ---- a/src/lib/openjp2/pi.c -+++ b/src/lib/openjp2/pi.c -@@ -1237,7 +1237,13 @@ opj_pi_iterator_t *opj_pi_create_decode(opj_image_t *p_image, - l_current_pi = l_pi; - - /* memory allocation for include */ -- l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16)); -+ /* prevent an integer overflow issue */ -+ l_current_pi->include = 00; -+ if (l_step_l <= (SIZE_MAX / (l_tcp->numlayers + 1U))) -+ { -+ l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16)); -+ } -+ - if - (!l_current_pi->include) - { --- -2.10.0 - -From ef01f18dfc6780b776d0674ed3e7415c6ef54d24 Mon Sep 17 00:00:00 2001 -From: Matthieu Darbois -Date: Thu, 8 Sep 2016 07:34:46 +0200 -Subject: [PATCH] Cast to size_t before multiplication - -Need to cast to size_t before multiplication otherwise overflow check is useless. ---- - src/lib/openjp2/pi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/lib/openjp2/pi.c b/src/lib/openjp2/pi.c -index 36e2ff0..809b33d 100644 ---- a/src/lib/openjp2/pi.c -+++ b/src/lib/openjp2/pi.c -@@ -1241,7 +1241,7 @@ opj_pi_iterator_t *opj_pi_create_decode(opj_image_t *p_image, - l_current_pi->include = 00; - if (l_step_l <= (SIZE_MAX / (l_tcp->numlayers + 1U))) - { -- l_current_pi->include = (OPJ_INT16*) opj_calloc((l_tcp->numlayers +1) * l_step_l, sizeof(OPJ_INT16)); -+ l_current_pi->include = (OPJ_INT16*) opj_calloc((size_t)(l_tcp->numlayers + 1U) * l_step_l, sizeof(OPJ_INT16)); - } - - if --- -2.10.0 - -- cgit v1.2.3 From deee8a9dfcd86e3f97035f2d71e34dfadbc09397 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 20 Mar 2017 18:22:14 -0400 Subject: gnu: Remove leftover patch. * gnu/packages/patches/openjpeg-use-after-free-fix.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - .../patches/openjpeg-use-after-free-fix.patch | 48 ---------------------- 2 files changed, 49 deletions(-) delete mode 100644 gnu/packages/patches/openjpeg-use-after-free-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index a194469c4e..6e6f03a3ec 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -798,7 +798,6 @@ dist_patch_DATA = \ %D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ %D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \ - %D%/packages/patches/openjpeg-use-after-free-fix.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ diff --git a/gnu/packages/patches/openjpeg-use-after-free-fix.patch b/gnu/packages/patches/openjpeg-use-after-free-fix.patch deleted file mode 100644 index 1a9cb1ae1d..0000000000 --- a/gnu/packages/patches/openjpeg-use-after-free-fix.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 940100c28ae28931722290794889cf84a92c5f6f Mon Sep 17 00:00:00 2001 -From: mayeut -Date: Sun, 6 Sep 2015 17:24:03 +0200 -Subject: [PATCH] Fix potential use-after-free in opj_j2k_write_mco function - -Fixes #563 ---- - src/lib/openjp2/j2k.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c -index 19a48f5..d487d89 100644 ---- a/src/lib/openjp2/j2k.c -+++ b/src/lib/openjp2/j2k.c -@@ -5559,8 +5559,7 @@ static OPJ_BOOL opj_j2k_write_mco( opj_j2k_t *p_j2k, - assert(p_stream != 00); - - l_tcp =&(p_j2k->m_cp.tcps[p_j2k->m_current_tile_number]); -- l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; -- -+ - l_mco_size = 5 + l_tcp->m_nb_mcc_records; - if (l_mco_size > p_j2k->m_specific_param.m_encoder.m_header_tile_data_size) { - -@@ -5575,6 +5574,8 @@ static OPJ_BOOL opj_j2k_write_mco( opj_j2k_t *p_j2k, - p_j2k->m_specific_param.m_encoder.m_header_tile_data = new_header_tile_data; - p_j2k->m_specific_param.m_encoder.m_header_tile_data_size = l_mco_size; - } -+ l_current_data = p_j2k->m_specific_param.m_encoder.m_header_tile_data; -+ - - opj_write_bytes(l_current_data,J2K_MS_MCO,2); /* MCO */ - l_current_data += 2; -@@ -5586,10 +5587,9 @@ static OPJ_BOOL opj_j2k_write_mco( opj_j2k_t *p_j2k, - ++l_current_data; - - l_mcc_record = l_tcp->m_mcc_records; -- for (i=0;im_nb_mcc_records;++i) { -+ for (i=0;im_nb_mcc_records;++i) { - opj_write_bytes(l_current_data,l_mcc_record->m_index,1);/* Imco -> use the mcc indicated by 1*/ - ++l_current_data; -- - ++l_mcc_record; - } - --- -2.5.0 - -- cgit v1.2.3 From f826c8c7ee2634acfff1a04f60787d6b02672c36 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Mar 2017 01:18:29 -0400 Subject: gnu: go@1.4, go@1.7: Skip test that fails with tzdata-2017a. * gnu/packages/golang.scm (go-1.4, go-1.7)[arguments]: Disable the test TestParseInLocation in 'prebuild' phase. --- gnu/packages/golang.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4bb54f031d..00630ce067 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -120,6 +120,7 @@ ;; https://github.com/golang/go/issues/17545 ;; https://github.com/golang/go/issues/17276 ("time/time_test.go" "(.+)(TestLoadFixed.+)") + ("time/format_test.go" "(.+)(TestParseInLocation.+)") ("os/exec/exec_test.go" "(.+)(TestEcho.+)") ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)") @@ -266,6 +267,7 @@ sequential processes (CSP) concurrent programming features added.") ("net/dial_test.go" "(.+)(TestDialTimeout.+)") ("os/os_test.go" "(.+)(TestHostname.+)") ("time/format_test.go" "(.+)(TestParseInSydney.+)") + ("time/format_test.go" "(.+)(TestParseInLocation.+)") ("os/exec/exec_test.go" "(.+)(TestEcho.+)") ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)") ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)") -- cgit v1.2.3 From a160778cba9f0e696547de6207268fb5ae8df728 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Mar 2017 18:01:05 +0200 Subject: gnu: x265: Fix build on aarch64. * gnu/packages/video.scm (x265)[arguments]: On aarch64 add a configure-flag to enable PIC. --- gnu/packages/video.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9fa7b8544d..0d2803dd64 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -283,6 +283,10 @@ H.264 (MPEG-4 AVC) video streams.") (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built + ;; Currently the source code doesn't check for aarch64 + ,@(if (string-prefix? "aarch64" (or (%current-target-system) (%current-system))) + '(#:configure-flags '("-DENABLE_PIC=TRUE")) + '()) #:phases (modify-phases %standard-phases (add-before 'configure 'prepare-build -- cgit v1.2.3 From 7fc72c7731336bbe830ac264ad6470e54058ba35 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Mar 2017 03:45:09 -0400 Subject: gnu: libcmis: Update to 0.5.1. * gnu/packages/libreoffice.scm (libcmis): Update to 0.5.1. [source]: Use new source URL. Remove obsolete patch 'libcmis-fix-test-onedrive.patch'. [home-page]: Update URL. * gnu/packages/patches/libcmis-fix-test-onedrive.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/libreoffice.scm | 14 ++++----- .../patches/libcmis-fix-test-onedrive.patch | 35 ---------------------- 3 files changed, 7 insertions(+), 43 deletions(-) delete mode 100644 gnu/packages/patches/libcmis-fix-test-onedrive.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6e6f03a3ec..65be56ac47 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -675,7 +675,6 @@ dist_patch_DATA = \ %D%/packages/patches/liba52-use-mtune-not-mcpu.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ - %D%/packages/patches/libcmis-fix-test-onedrive.patch \ %D%/packages/patches/libdrm-symbol-check.patch \ %D%/packages/patches/libevent-dns-tests.patch \ %D%/packages/patches/libevent-2.0-CVE-2016-10195.patch \ diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a962d9a301..52f4266920 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -243,15 +243,15 @@ working with graphics in the WPG (WordPerfect Graphics) format.") (define-public libcmis (package (name "libcmis") - (version "0.5.0") + (version "0.5.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" name "-" - version ".tar.gz")) - (sha256 (base32 - "1dprvk4fibylv24l7gr49gfqbkfgmxynvgssvdcycgpf7n8h4zm8")) - (patches (search-patches "libcmis-fix-test-onedrive.patch")))) + (uri (string-append "https://github.com/tdf/libcmis/releases/download/v" + version "/libcmis-" version ".tar.gz")) + (sha256 + (base32 + "03kvl8ywsv5qrxblf0m6955mmvl5q2zpb6vj51vs7ayvxhidzjva")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) @@ -276,7 +276,7 @@ working with graphics in the WPG (WordPerfect Graphics) format.") ;; fails without the following flag. (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))))) - (home-page "https://sourceforge.net/projects/libcmis/") + (home-page "https://github.com/tdf/libcmis") (synopsis "CMIS client library") (description "LibCMIS is a C++ client library for the CMIS interface. It allows C++ applications to connect to any ECM behaving as a CMIS server such diff --git a/gnu/packages/patches/libcmis-fix-test-onedrive.patch b/gnu/packages/patches/libcmis-fix-test-onedrive.patch deleted file mode 100644 index adf2e0b8e5..0000000000 --- a/gnu/packages/patches/libcmis-fix-test-onedrive.patch +++ /dev/null @@ -1,35 +0,0 @@ -Patch from resolution of http://sourceforge.net/p/libcmis/tickets/13/ - -From 814c7845d53688b35a747cf193c2ff99e40a8652 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 2 Sep 2015 16:35:45 +0100 -Subject: [PATCH 5/5] Remove invalid comments from test JSON file. - ---- - qa/libcmis/data/onedrive/search-result.json | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/qa/libcmis/data/onedrive/search-result.json b/qa/libcmis/data/onedrive/search-result.json -index 61d250a..2482429 100644 ---- a/qa/libcmis/data/onedrive/search-result.json -+++ b/qa/libcmis/data/onedrive/search-result.json -@@ -8,7 +8,7 @@ - }, - "name":"OneDriveFile", - "description":"", -- "parent_id":"folderA", // path: /A/Wrong File -+ "parent_id":"folderA", - "size":18047, - "upload_location":"https://apis.live.net/v5.0/wrongFileId/content/", - "comments_count":0, -@@ -32,7 +32,7 @@ - }, - "name":"OneDriveFile", - "description":"", -- "parent_id":"folderC", // path: /A/B/C/Right File -+ "parent_id":"folderC", - "size":4, - "upload_location":"https://apis.live.net/v5.0/rightFileId/content/", - "comments_count":0, --- -2.4.3 \ No newline at end of file -- cgit v1.2.3 From 8e4b7b75148e21bb5e800e64cf2dd51ad9f14286 Mon Sep 17 00:00:00 2001 From: rennes Date: Tue, 21 Mar 2017 14:20:42 -0400 Subject: gnu: xf86-video-vmware: Fix build failure due to missing LLVM. * gnu/packages/xorg.scm (xf86-video-vmware)[inputs]: Add llvm. Signed-off-by: Leo Famulari --- gnu/packages/xorg.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 266ac78fb8..def1bbbb11 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages libbsd) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -3356,6 +3357,7 @@ X server.") (inputs `(("libx11" ,libx11) ("libxext" ,libxext) + ("llvm" ,llvm) ("mesa" ,mesa) ; for xatracker ("xorg-server" ,xorg-server))) (native-inputs -- cgit v1.2.3 From 83a3464793f6aeb8d79e8561d50f0cdb6fb0068d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 21 Mar 2017 22:02:43 +0200 Subject: gnu: openblas: Add support for aarch64. * gnu/packages/maths.scm (openblas)[arguments]: Mark aarch64 as substitutable, build for target ARMv8. --- gnu/packages/maths.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ed13556cb4..166926da15 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2015 Fabian Harfert ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Kei Kebreau @@ -2243,7 +2243,8 @@ parts of it.") ,(let ((system (or (%current-target-system) (%current-system)))) (or (string-prefix? "x86_64" system) (string-prefix? "i686" system) - (string-prefix? "mips" system))) + (string-prefix? "mips" system) + (string-prefix? "aarch64" system))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "SHELL=bash" @@ -2263,6 +2264,9 @@ parts of it.") ;; for Loongson cores are used. ((string-prefix? "mips" system) '("TARGET=SICORTEX")) + ;; On aarch64 force the generic 'armv8-a' target + ((string-prefix? "aarch64" system) + '("TARGET=ARMV8")) (else '())))) ;; no configure script #:phases (alist-delete 'configure %standard-phases))) -- cgit v1.2.3 From a9681c74cad12488e86d06d37812a732719c4c3a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Mar 2017 16:18:59 -0400 Subject: gnu: python-pillow: Fix test failures with freetype-2.7. * gnu/packages/patches/python-pillow-freetype-2.7-test-failure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/python.scm (python-pillow, python2-pillow)[source]: Use it. --- gnu/local.mk | 1 + .../python-pillow-freetype-2.7-test-failure.patch | 75 ++++++++++++++++++++++ gnu/packages/python.scm | 1 + 3 files changed, 77 insertions(+) create mode 100644 gnu/packages/patches/python-pillow-freetype-2.7-test-failure.patch diff --git a/gnu/local.mk b/gnu/local.mk index 65be56ac47..256682effa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -867,6 +867,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-pandas-skip-failing-tests.patch \ %D%/packages/patches/python-paste-remove-website-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ + %D%/packages/patches/python-pillow-freetype-2.7-test-failure.patch \ %D%/packages/patches/python-pygit2-disable-network-tests.patch \ %D%/packages/patches/python-pyopenssl-skip-network-test.patch \ %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ diff --git a/gnu/packages/patches/python-pillow-freetype-2.7-test-failure.patch b/gnu/packages/patches/python-pillow-freetype-2.7-test-failure.patch new file mode 100644 index 0000000000..18bc30bc79 --- /dev/null +++ b/gnu/packages/patches/python-pillow-freetype-2.7-test-failure.patch @@ -0,0 +1,75 @@ +Fix some test failures when building with freetype-2.7. + +https://github.com/python-pillow/Pillow/issues/2116 +https://github.com/python-pillow/Pillow/pull/2286 + +Patch copied from upstream source repository: + +https://github.com/python-pillow/Pillow/commit/acf68c835c93ba144f83198306aa7e6082a43f43 + +From acf68c835c93ba144f83198306aa7e6082a43f43 Mon Sep 17 00:00:00 2001 +From: hugovk +Date: Mon, 12 Dec 2016 15:16:43 +0200 +Subject: [PATCH] Increase epsilon for FreeType 2.7 + +--- + Tests/test_imagefont.py | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py +index de89ac92..5207dce3 100644 +--- a/Tests/test_imagefont.py ++++ b/Tests/test_imagefont.py +@@ -125,7 +125,9 @@ try: + + target = 'Tests/images/rectangle_surrounding_text.png' + target_img = Image.open(target) +- self.assert_image_similar(im, target_img, .5) ++ ++ # Epsilon ~.5 fails with FreeType 2.7 ++ self.assert_image_similar(im, target_img, 2.5) + + def test_render_multiline(self): + im = Image.new(mode='RGB', size=(300, 100)) +@@ -144,7 +146,7 @@ try: + # some versions of freetype have different horizontal spacing. + # setting a tight epsilon, I'm showing the original test failure + # at epsilon = ~38. +- self.assert_image_similar(im, target_img, .5) ++ self.assert_image_similar(im, target_img, 6.2) + + def test_render_multiline_text(self): + ttf = ImageFont.truetype(FONT_PATH, FONT_SIZE) +@@ -158,7 +160,8 @@ try: + target = 'Tests/images/multiline_text.png' + target_img = Image.open(target) + +- self.assert_image_similar(im, target_img, .5) ++ # Epsilon ~.5 fails with FreeType 2.7 ++ self.assert_image_similar(im, target_img, 6.2) + + # Test that text() can pass on additional arguments + # to multiline_text() +@@ -178,7 +181,8 @@ try: + target = 'Tests/images/multiline_text'+ext+'.png' + target_img = Image.open(target) + +- self.assert_image_similar(im, target_img, .5) ++ # Epsilon ~.5 fails with FreeType 2.7 ++ self.assert_image_similar(im, target_img, 6.2) + + def test_unknown_align(self): + im = Image.new(mode='RGB', size=(300, 100)) +@@ -227,7 +231,8 @@ try: + target = 'Tests/images/multiline_text_spacing.png' + target_img = Image.open(target) + +- self.assert_image_similar(im, target_img, .5) ++ # Epsilon ~.5 fails with FreeType 2.7 ++ self.assert_image_similar(im, target_img, 6.2) + + def test_rotated_transposed_font(self): + img_grey = Image.new("L", (100, 100)) +-- +2.12.0 + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 96c4245384..1903247d77 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4537,6 +4537,7 @@ services for your Python modules and applications.") (origin (method url-fetch) (uri (pypi-uri "Pillow" version)) + (patches (search-patches "python-pillow-freetype-2.7-test-failure.patch")) (sha256 (base32 "0xkv0p1d73gz0a1qaasf0ai4262g8f334j07vd60bjrxs2wr3nmj")))) -- cgit v1.2.3 From 049e02eaa258942515260a58c8d9ddfc4e7caffe Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Mar 2017 16:31:57 -0400 Subject: gnu: libesmtp: Add alternate source URL. * gnu/packages/mail.scm (libesmtp)[source]: Add alternate URL. --- gnu/packages/mail.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 3bf0e66479..f387204d06 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1461,8 +1461,14 @@ format and headers.") (source (origin (method url-fetch) - (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-" - version ".tar.bz2")) + (uri (list (string-append "https://pkgs.fedoraproject.org/repo/pkgs/" + "libesmtp/libesmtp-" version ".tar.bz2/" + "bf3915e627fd8f35524a8fdfeed979c8/libesmtp-" + version ".tar.bz2") + ;; XXX This site is offline, so we fetch Fedora's cached copy + ;; of the source tarball. + (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-" + version ".tar.bz2"))) (sha256 (base32 "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh")))) -- cgit v1.2.3 From 9488776a18318bf5bc42747dee98b07650b64e25 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:18:23 +0100 Subject: gnu: python-pysam: Update to 0.10.0. * gnu/packages/bioinformatics.scm (python-pysam): Update to 0.10.0. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 90092ddf70..8f0cd0ae77 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1413,7 +1413,7 @@ multiple sequence alignments.") (define-public python-pysam (package (name "python-pysam") - (version "0.9.1.4") + (version "0.10.0") (source (origin (method url-fetch) ;; Test data is missing on PyPi. @@ -1423,7 +1423,7 @@ multiple sequence alignments.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y41ssbg6nvn2jgcbnrvkzblpjcwszaiv1rgyd8dwzjkrbfsgsmc")) + "1mmvn91agr238kwz7226xq0i7k84lg2nxywn9712mzj7gvgqhfy8")) (modules '((guix build utils))) (snippet ;; Drop bundled htslib. TODO: Also remove samtools and bcftools. -- cgit v1.2.3 From 611154efc8c0b11098fa9c32e57dc3ba935da7f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:18:59 +0100 Subject: gnu: python-pysam: Run tests before installation. * gnu/packages/bioinformatics.scm (python-pysam)[arguments]: Adjust check phase to be run before installation. --- gnu/packages/bioinformatics.scm | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8f0cd0ae77..51f0e0c0b0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1430,7 +1430,11 @@ multiple sequence alignments.") '(delete-file-recursively "htslib")))) (build-system python-build-system) (arguments - `(#:phases + `(#:modules ((ice-9 ftw) + (srfi srfi-26) + (guix build python-build-system) + (guix build utils)) + #:phases (modify-phases %standard-phases (add-before 'build 'set-flags (lambda* (#:key inputs #:allow-other-keys) @@ -1442,23 +1446,21 @@ multiple sequence alignments.") (setenv "LDFLAGS" "-lncurses") (setenv "CFLAGS" "-D_CURSES_LIB=1") #t)) - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Add first subdirectory of "build" directory to PYTHONPATH. (setenv "PYTHONPATH" (string-append (getenv "PYTHONPATH") - ":" (assoc-ref outputs "out") - "/lib/python" - (string-take (string-take-right - (assoc-ref inputs "python") 5) 3) - "/site-packages")) + ":" (getcwd) "/build/" + (car (scandir "build" + (compose not (cut string-prefix? "." <>)))))) ;; Step out of source dir so python does not import from CWD. - (chdir "tests") - (setenv "HOME" "/tmp") - (and (zero? (system* "make" "-C" "pysam_data")) - (zero? (system* "make" "-C" "cbcf_data")) - (zero? (system* "nosetests" "-v")))))))) + (with-directory-excursion "tests" + (setenv "HOME" "/tmp") + (and (zero? (system* "make" "-C" "pysam_data")) + (zero? (system* "make" "-C" "cbcf_data")) + (zero? (system* "nosetests" "-v"))))))))) (propagated-inputs `(("htslib" ,htslib))) ; Included from installed header files. (inputs -- cgit v1.2.3 From d553cd6015d9e99226b5d89266edbc6df4c838b3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:20:18 +0100 Subject: gnu: python-pysam: Run tests in parallel. * gnu/packages/bioinformatics.scm (python-pysam)[arguments]: Run nose tests in parallel. --- gnu/packages/bioinformatics.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 51f0e0c0b0..97380fc032 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1460,7 +1460,9 @@ multiple sequence alignments.") (setenv "HOME" "/tmp") (and (zero? (system* "make" "-C" "pysam_data")) (zero? (system* "make" "-C" "cbcf_data")) - (zero? (system* "nosetests" "-v"))))))))) + (zero? (system* "nosetests" "-v" + "--processes" + (number->string (parallel-job-count))))))))))) (propagated-inputs `(("htslib" ,htslib))) ; Included from installed header files. (inputs -- cgit v1.2.3 From dc8a34ed46f58397b5a53c99ec5f718c6d0e4fef Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 14:45:44 +0100 Subject: gnu: freeimage: Fix build with GCC 5. * gnu/packages/patches/freeimage-fix-build-with-gcc-5.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/image.scm (freeimage)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/image.scm | 3 +- .../patches/freeimage-fix-build-with-gcc-5.patch | 1453 ++++++++++++++++++++ 3 files changed, 1456 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/freeimage-fix-build-with-gcc-5.patch diff --git a/gnu/local.mk b/gnu/local.mk index b8db8712d9..4d85f15a06 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -563,6 +563,7 @@ dist_patch_DATA = \ %D%/packages/patches/fontforge-svg-modtime.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \ + %D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \ %D%/packages/patches/gawk-shell.patch \ %D%/packages/patches/gcc-arm-bug-71399.patch \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index fb6536b8c0..51c465a0cc 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -679,7 +679,8 @@ supplies a generic doubly-linked list and some string functions.") (base32 "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v")) (patches (search-patches "freeimage-CVE-2015-0852.patch" - "freeimage-CVE-2016-5684.patch")))) + "freeimage-CVE-2016-5684.patch" + "freeimage-fix-build-with-gcc-5.patch")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/patches/freeimage-fix-build-with-gcc-5.patch b/gnu/packages/patches/freeimage-fix-build-with-gcc-5.patch new file mode 100644 index 0000000000..2c9f2c3357 --- /dev/null +++ b/gnu/packages/patches/freeimage-fix-build-with-gcc-5.patch @@ -0,0 +1,1453 @@ +The original patch was downloaded from here: +https://chromium-review.googlesource.com/c/297211 + +The paths, file names, and line endings have been adapted. + +From eebaf97f5a1cb713d81d311308d8a48c124e5aef Mon Sep 17 00:00:00 2001 +From: James Zern +Date: Wed, 02 Sep 2015 23:21:13 -0700 +Subject: [PATCH] dsp/mips: add whitespace around stringizing operator + +fixes compile with gcc 5.1 +BUG=259 + +Change-Id: Ideb39c6290ab8569b1b6cc835bea11c822d0286c +--- + +diff --git a/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +index 6590f43..40e4d82 100644 +--- a/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +@@ -548,10 +548,10 @@ + // TEMP3 = SRC[D + D1 * BPS] + #define LOAD_4_BYTES(TEMP0, TEMP1, TEMP2, TEMP3, \ + A, A1, B, B1, C, C1, D, D1, SRC) \ +- "lbu %["#TEMP0"], "#A"+"#A1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \ +- "lbu %["#TEMP1"], "#B"+"#B1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \ +- "lbu %["#TEMP2"], "#C"+"#C1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \ +- "lbu %["#TEMP3"], "#D"+"#D1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \ ++ "lbu %[" #TEMP0 "], " #A "+" #A1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \ ++ "lbu %[" #TEMP1 "], " #B "+" #B1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \ ++ "lbu %[" #TEMP2 "], " #C "+" #C1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \ ++ "lbu %[" #TEMP3 "], " #D "+" #D1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \ + + static void SimpleHFilter16(uint8_t* p, int stride, int thresh) { + int i; +@@ -623,8 +623,8 @@ + // DST[A * BPS] = TEMP0 + // DST[B + C * BPS] = TEMP1 + #define STORE_8_BYTES(TEMP0, TEMP1, A, B, C, DST) \ +- "usw %["#TEMP0"], "#A"*"XSTR(BPS)"(%["#DST"]) \n\t" \ +- "usw %["#TEMP1"], "#B"+"#C"*"XSTR(BPS)"(%["#DST"]) \n\t" ++ "usw %[" #TEMP0 "], " #A "*"XSTR(BPS)"(%[" #DST "]) \n\t" \ ++ "usw %[" #TEMP1 "], " #B "+" #C "*"XSTR(BPS)"(%[" #DST "]) \n\t" + + static void VE4(uint8_t* dst) { // vertical + const uint8_t* top = dst - BPS; +@@ -725,8 +725,8 @@ + // TEMP0 = SRC[A * BPS] + // TEMP1 = SRC[B + C * BPS] + #define LOAD_8_BYTES(TEMP0, TEMP1, A, B, C, SRC) \ +- "ulw %["#TEMP0"], "#A"*"XSTR(BPS)"(%["#SRC"]) \n\t" \ +- "ulw %["#TEMP1"], "#B"+"#C"*"XSTR(BPS)"(%["#SRC"]) \n\t" ++ "ulw %[" #TEMP0 "], " #A "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \ ++ "ulw %[" #TEMP1 "], " #B "+" #C "*"XSTR(BPS)"(%[" #SRC "]) \n\t" + + static void LD4(uint8_t* dst) { // Down-Left + int temp0, temp1, temp2, temp3, temp4; +@@ -873,24 +873,24 @@ + #define CLIPPING(SIZE) \ + "preceu.ph.qbl %[temp2], %[temp0] \n\t" \ + "preceu.ph.qbr %[temp0], %[temp0] \n\t" \ +-".if "#SIZE" == 8 \n\t" \ ++".if " #SIZE " == 8 \n\t" \ + "preceu.ph.qbl %[temp3], %[temp1] \n\t" \ + "preceu.ph.qbr %[temp1], %[temp1] \n\t" \ + ".endif \n\t" \ + "addu.ph %[temp2], %[temp2], %[dst_1] \n\t" \ + "addu.ph %[temp0], %[temp0], %[dst_1] \n\t" \ +-".if "#SIZE" == 8 \n\t" \ ++".if " #SIZE " == 8 \n\t" \ + "addu.ph %[temp3], %[temp3], %[dst_1] \n\t" \ + "addu.ph %[temp1], %[temp1], %[dst_1] \n\t" \ + ".endif \n\t" \ + "shll_s.ph %[temp2], %[temp2], 7 \n\t" \ + "shll_s.ph %[temp0], %[temp0], 7 \n\t" \ +-".if "#SIZE" == 8 \n\t" \ ++".if " #SIZE " == 8 \n\t" \ + "shll_s.ph %[temp3], %[temp3], 7 \n\t" \ + "shll_s.ph %[temp1], %[temp1], 7 \n\t" \ + ".endif \n\t" \ + "precrqu_s.qb.ph %[temp0], %[temp2], %[temp0] \n\t" \ +-".if "#SIZE" == 8 \n\t" \ ++".if " #SIZE " == 8 \n\t" \ + "precrqu_s.qb.ph %[temp1], %[temp3], %[temp1] \n\t" \ + ".endif \n\t" + +@@ -899,7 +899,7 @@ + int dst_1 = ((int)(DST)[-1] << 16) + (DST)[-1]; \ + int temp0, temp1, temp2, temp3; \ + __asm__ volatile ( \ +- ".if "#SIZE" < 8 \n\t" \ ++ ".if " #SIZE " < 8 \n\t" \ + "ulw %[temp0], 0(%[top]) \n\t" \ + "subu.ph %[dst_1], %[dst_1], %[top_1] \n\t" \ + CLIPPING(4) \ +@@ -911,7 +911,7 @@ + CLIPPING(8) \ + "usw %[temp0], 0(%[dst]) \n\t" \ + "usw %[temp1], 4(%[dst]) \n\t" \ +- ".if "#SIZE" == 16 \n\t" \ ++ ".if " #SIZE " == 16 \n\t" \ + "ulw %[temp0], 8(%[top]) \n\t" \ + "ulw %[temp1], 12(%[top]) \n\t" \ + CLIPPING(8) \ +diff --git a/Source/LibWebP/src/dsp/dsp.enc_mips32.c b/Source/LibWebP/src/dsp/dsp.enc_mips32.c +index c5837f1..b50e08b 100644 +--- a/Source/LibWebP/src/dsp/dsp.enc_mips32.c ++++ b/Source/LibWebP/src/dsp/dsp.enc_mips32.c +@@ -31,26 +31,26 @@ + // TEMP0..TEMP3 - registers for corresponding tmp elements + // TEMP4..TEMP5 - temporary registers + #define VERTICAL_PASS(A, B, C, D, TEMP4, TEMP0, TEMP1, TEMP2, TEMP3) \ +- "lh %[temp16], "#A"(%[temp20]) \n\t" \ +- "lh %[temp18], "#B"(%[temp20]) \n\t" \ +- "lh %[temp17], "#C"(%[temp20]) \n\t" \ +- "lh %[temp19], "#D"(%[temp20]) \n\t" \ +- "addu %["#TEMP4"], %[temp16], %[temp18] \n\t" \ +- "subu %[temp16], %[temp16], %[temp18] \n\t" \ +- "mul %["#TEMP0"], %[temp17], %[kC2] \n\t" \ +- "mul %[temp18], %[temp19], %[kC1] \n\t" \ +- "mul %[temp17], %[temp17], %[kC1] \n\t" \ +- "mul %[temp19], %[temp19], %[kC2] \n\t" \ +- "sra %["#TEMP0"], %["#TEMP0"], 16 \n\n" \ +- "sra %[temp18], %[temp18], 16 \n\n" \ +- "sra %[temp17], %[temp17], 16 \n\n" \ +- "sra %[temp19], %[temp19], 16 \n\n" \ +- "subu %["#TEMP2"], %["#TEMP0"], %[temp18] \n\t" \ +- "addu %["#TEMP3"], %[temp17], %[temp19] \n\t" \ +- "addu %["#TEMP0"], %["#TEMP4"], %["#TEMP3"] \n\t" \ +- "addu %["#TEMP1"], %[temp16], %["#TEMP2"] \n\t" \ +- "subu %["#TEMP2"], %[temp16], %["#TEMP2"] \n\t" \ +- "subu %["#TEMP3"], %["#TEMP4"], %["#TEMP3"] \n\t" ++ "lh %[temp16], " #A "(%[temp20]) \n\t" \ ++ "lh %[temp18], " #B "(%[temp20]) \n\t" \ ++ "lh %[temp17], " #C "(%[temp20]) \n\t" \ ++ "lh %[temp19], " #D "(%[temp20]) \n\t" \ ++ "addu %[" #TEMP4 "], %[temp16], %[temp18] \n\t" \ ++ "subu %[temp16], %[temp16], %[temp18] \n\t" \ ++ "mul %[" #TEMP0 "], %[temp17], %[kC2] \n\t" \ ++ "mul %[temp18], %[temp19], %[kC1] \n\t" \ ++ "mul %[temp17], %[temp17], %[kC1] \n\t" \ ++ "mul %[temp19], %[temp19], %[kC2] \n\t" \ ++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\n" \ ++ "sra %[temp18], %[temp18], 16 \n\n" \ ++ "sra %[temp17], %[temp17], 16 \n\n" \ ++ "sra %[temp19], %[temp19], 16 \n\n" \ ++ "subu %[" #TEMP2 "], %[" #TEMP0 "], %[temp18] \n\t" \ ++ "addu %[" #TEMP3 "], %[temp17], %[temp19] \n\t" \ ++ "addu %[" #TEMP0 "], %[" #TEMP4 "], %[" #TEMP3 "] \n\t" \ ++ "addu %[" #TEMP1 "], %[temp16], %[" #TEMP2 "] \n\t" \ ++ "subu %[" #TEMP2 "], %[temp16], %[" #TEMP2 "] \n\t" \ ++ "subu %[" #TEMP3 "], %[" #TEMP4 "], %[" #TEMP3 "] \n\t" + + // macro for one horizontal pass in ITransformOne + // MUL and STORE macros inlined +@@ -58,59 +58,59 @@ + // temp0..temp15 holds tmp[0]..tmp[15] + // A - offset in bytes to load from ref and store to dst buffer + // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements +-#define HORIZONTAL_PASS(A, TEMP0, TEMP4, TEMP8, TEMP12) \ +- "addiu %["#TEMP0"], %["#TEMP0"], 4 \n\t" \ +- "addu %[temp16], %["#TEMP0"], %["#TEMP8"] \n\t" \ +- "subu %[temp17], %["#TEMP0"], %["#TEMP8"] \n\t" \ +- "mul %["#TEMP0"], %["#TEMP4"], %[kC2] \n\t" \ +- "mul %["#TEMP8"], %["#TEMP12"], %[kC1] \n\t" \ +- "mul %["#TEMP4"], %["#TEMP4"], %[kC1] \n\t" \ +- "mul %["#TEMP12"], %["#TEMP12"], %[kC2] \n\t" \ +- "sra %["#TEMP0"], %["#TEMP0"], 16 \n\t" \ +- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \ +- "sra %["#TEMP4"], %["#TEMP4"], 16 \n\t" \ +- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \ +- "subu %[temp18], %["#TEMP0"], %["#TEMP8"] \n\t" \ +- "addu %[temp19], %["#TEMP4"], %["#TEMP12"] \n\t" \ +- "addu %["#TEMP0"], %[temp16], %[temp19] \n\t" \ +- "addu %["#TEMP4"], %[temp17], %[temp18] \n\t" \ +- "subu %["#TEMP8"], %[temp17], %[temp18] \n\t" \ +- "subu %["#TEMP12"], %[temp16], %[temp19] \n\t" \ +- "lw %[temp20], 0(%[args]) \n\t" \ +- "sra %["#TEMP0"], %["#TEMP0"], 3 \n\t" \ +- "sra %["#TEMP4"], %["#TEMP4"], 3 \n\t" \ +- "sra %["#TEMP8"], %["#TEMP8"], 3 \n\t" \ +- "sra %["#TEMP12"], %["#TEMP12"], 3 \n\t" \ +- "lbu %[temp16], 0+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \ +- "lbu %[temp17], 1+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \ +- "lbu %[temp18], 2+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \ +- "lbu %[temp19], 3+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \ +- "addu %["#TEMP0"], %[temp16], %["#TEMP0"] \n\t" \ +- "addu %["#TEMP4"], %[temp17], %["#TEMP4"] \n\t" \ +- "addu %["#TEMP8"], %[temp18], %["#TEMP8"] \n\t" \ +- "addu %["#TEMP12"], %[temp19], %["#TEMP12"] \n\t" \ +- "slt %[temp16], %["#TEMP0"], $zero \n\t" \ +- "slt %[temp17], %["#TEMP4"], $zero \n\t" \ +- "slt %[temp18], %["#TEMP8"], $zero \n\t" \ +- "slt %[temp19], %["#TEMP12"], $zero \n\t" \ +- "movn %["#TEMP0"], $zero, %[temp16] \n\t" \ +- "movn %["#TEMP4"], $zero, %[temp17] \n\t" \ +- "movn %["#TEMP8"], $zero, %[temp18] \n\t" \ +- "movn %["#TEMP12"], $zero, %[temp19] \n\t" \ +- "addiu %[temp20], $zero, 255 \n\t" \ +- "slt %[temp16], %["#TEMP0"], %[temp20] \n\t" \ +- "slt %[temp17], %["#TEMP4"], %[temp20] \n\t" \ +- "slt %[temp18], %["#TEMP8"], %[temp20] \n\t" \ +- "slt %[temp19], %["#TEMP12"], %[temp20] \n\t" \ +- "movz %["#TEMP0"], %[temp20], %[temp16] \n\t" \ +- "movz %["#TEMP4"], %[temp20], %[temp17] \n\t" \ +- "lw %[temp16], 8(%[args]) \n\t" \ +- "movz %["#TEMP8"], %[temp20], %[temp18] \n\t" \ +- "movz %["#TEMP12"], %[temp20], %[temp19] \n\t" \ +- "sb %["#TEMP0"], 0+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \ +- "sb %["#TEMP4"], 1+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \ +- "sb %["#TEMP8"], 2+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \ +- "sb %["#TEMP12"], 3+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" ++#define HORIZONTAL_PASS(A, TEMP0, TEMP4, TEMP8, TEMP12) \ ++ "addiu %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \ ++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \ ++ "subu %[temp17], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \ ++ "mul %[" #TEMP0 "], %[" #TEMP4 "], %[kC2] \n\t" \ ++ "mul %[" #TEMP8 "], %[" #TEMP12 "], %[kC1] \n\t" \ ++ "mul %[" #TEMP4 "], %[" #TEMP4 "], %[kC1] \n\t" \ ++ "mul %[" #TEMP12 "], %[" #TEMP12 "], %[kC2] \n\t" \ ++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\t" \ ++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \ ++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 16 \n\t" \ ++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \ ++ "subu %[temp18], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \ ++ "addu %[temp19], %[" #TEMP4 "], %[" #TEMP12 "] \n\t" \ ++ "addu %[" #TEMP0 "], %[temp16], %[temp19] \n\t" \ ++ "addu %[" #TEMP4 "], %[temp17], %[temp18] \n\t" \ ++ "subu %[" #TEMP8 "], %[temp17], %[temp18] \n\t" \ ++ "subu %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \ ++ "lw %[temp20], 0(%[args]) \n\t" \ ++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 3 \n\t" \ ++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 3 \n\t" \ ++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 3 \n\t" \ ++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 3 \n\t" \ ++ "lbu %[temp16], 0+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \ ++ "lbu %[temp17], 1+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \ ++ "lbu %[temp18], 2+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \ ++ "lbu %[temp19], 3+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \ ++ "addu %[" #TEMP0 "], %[temp16], %[" #TEMP0 "] \n\t" \ ++ "addu %[" #TEMP4 "], %[temp17], %[" #TEMP4 "] \n\t" \ ++ "addu %[" #TEMP8 "], %[temp18], %[" #TEMP8 "] \n\t" \ ++ "addu %[" #TEMP12 "], %[temp19], %[" #TEMP12 "] \n\t" \ ++ "slt %[temp16], %[" #TEMP0 "], $zero \n\t" \ ++ "slt %[temp17], %[" #TEMP4 "], $zero \n\t" \ ++ "slt %[temp18], %[" #TEMP8 "], $zero \n\t" \ ++ "slt %[temp19], %[" #TEMP12 "], $zero \n\t" \ ++ "movn %[" #TEMP0 "], $zero, %[temp16] \n\t" \ ++ "movn %[" #TEMP4 "], $zero, %[temp17] \n\t" \ ++ "movn %[" #TEMP8 "], $zero, %[temp18] \n\t" \ ++ "movn %[" #TEMP12 "], $zero, %[temp19] \n\t" \ ++ "addiu %[temp20], $zero, 255 \n\t" \ ++ "slt %[temp16], %[" #TEMP0 "], %[temp20] \n\t" \ ++ "slt %[temp17], %[" #TEMP4 "], %[temp20] \n\t" \ ++ "slt %[temp18], %[" #TEMP8 "], %[temp20] \n\t" \ ++ "slt %[temp19], %[" #TEMP12 "], %[temp20] \n\t" \ ++ "movz %[" #TEMP0 "], %[temp20], %[temp16] \n\t" \ ++ "movz %[" #TEMP4 "], %[temp20], %[temp17] \n\t" \ ++ "lw %[temp16], 8(%[args]) \n\t" \ ++ "movz %[" #TEMP8 "], %[temp20], %[temp18] \n\t" \ ++ "movz %[" #TEMP12 "], %[temp20], %[temp19] \n\t" \ ++ "sb %[" #TEMP0 "], 0+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \ ++ "sb %[" #TEMP4 "], 1+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \ ++ "sb %[" #TEMP8 "], 2+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \ ++ "sb %[" #TEMP12 "], 3+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" + + // Does one or two inverse transforms. + static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in, +@@ -161,9 +161,9 @@ + // K - offset in bytes (kZigzag[n] * 4) + // N - offset in bytes (n * 2) + #define QUANTIZE_ONE(J, K, N) \ +- "lh %[temp0], "#J"(%[ppin]) \n\t" \ +- "lhu %[temp1], "#J"(%[ppsharpen]) \n\t" \ +- "lw %[temp2], "#K"(%[ppzthresh]) \n\t" \ ++ "lh %[temp0], " #J "(%[ppin]) \n\t" \ ++ "lhu %[temp1], " #J "(%[ppsharpen]) \n\t" \ ++ "lw %[temp2], " #K "(%[ppzthresh]) \n\t" \ + "sra %[sign], %[temp0], 15 \n\t" \ + "xor %[coeff], %[temp0], %[sign] \n\t" \ + "subu %[coeff], %[coeff], %[sign] \n\t" \ +@@ -172,9 +172,9 @@ + "addiu %[temp5], $zero, 0 \n\t" \ + "addiu %[level], $zero, 0 \n\t" \ + "beqz %[temp4], 2f \n\t" \ +- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \ +- "lw %[temp2], "#K"(%[ppbias]) \n\t" \ +- "lhu %[temp3], "#J"(%[ppq]) \n\t" \ ++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \ ++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \ ++ "lhu %[temp3], " #J "(%[ppq]) \n\t" \ + "mul %[level], %[coeff], %[temp1] \n\t" \ + "addu %[level], %[level], %[temp2] \n\t" \ + "sra %[level], %[level], 17 \n\t" \ +@@ -184,8 +184,8 @@ + "subu %[level], %[level], %[sign] \n\t" \ + "mul %[temp5], %[level], %[temp3] \n\t" \ + "2: \n\t" \ +- "sh %[temp5], "#J"(%[ppin]) \n\t" \ +- "sh %[level], "#N"(%[pout]) \n\t" ++ "sh %[temp5], " #J "(%[ppin]) \n\t" \ ++ "sh %[level], " #N "(%[pout]) \n\t" + + static int QuantizeBlock(int16_t in[16], int16_t out[16], + const VP8Matrix* const mtx) { +@@ -253,39 +253,39 @@ + // A - offset in bytes to load from a and b buffers + // E..H - offsets in bytes to store first results to tmp buffer + // E1..H1 - offsets in bytes to store second results to tmp buffer +-#define HORIZONTAL_PASS(A, E, F, G, H, E1, F1, G1, H1) \ +- "lbu %[temp0], 0+"XSTR(BPS)"*"#A"(%[a]) \n\t" \ +- "lbu %[temp1], 1+"XSTR(BPS)"*"#A"(%[a]) \n\t" \ +- "lbu %[temp2], 2+"XSTR(BPS)"*"#A"(%[a]) \n\t" \ +- "lbu %[temp3], 3+"XSTR(BPS)"*"#A"(%[a]) \n\t" \ +- "lbu %[temp4], 0+"XSTR(BPS)"*"#A"(%[b]) \n\t" \ +- "lbu %[temp5], 1+"XSTR(BPS)"*"#A"(%[b]) \n\t" \ +- "lbu %[temp6], 2+"XSTR(BPS)"*"#A"(%[b]) \n\t" \ +- "lbu %[temp7], 3+"XSTR(BPS)"*"#A"(%[b]) \n\t" \ +- "addu %[temp8], %[temp0], %[temp2] \n\t" \ +- "subu %[temp0], %[temp0], %[temp2] \n\t" \ +- "addu %[temp2], %[temp1], %[temp3] \n\t" \ +- "subu %[temp1], %[temp1], %[temp3] \n\t" \ +- "addu %[temp3], %[temp4], %[temp6] \n\t" \ +- "subu %[temp4], %[temp4], %[temp6] \n\t" \ +- "addu %[temp6], %[temp5], %[temp7] \n\t" \ +- "subu %[temp5], %[temp5], %[temp7] \n\t" \ +- "addu %[temp7], %[temp8], %[temp2] \n\t" \ +- "subu %[temp2], %[temp8], %[temp2] \n\t" \ +- "addu %[temp8], %[temp0], %[temp1] \n\t" \ +- "subu %[temp0], %[temp0], %[temp1] \n\t" \ +- "addu %[temp1], %[temp3], %[temp6] \n\t" \ +- "subu %[temp3], %[temp3], %[temp6] \n\t" \ +- "addu %[temp6], %[temp4], %[temp5] \n\t" \ +- "subu %[temp4], %[temp4], %[temp5] \n\t" \ +- "sw %[temp7], "#E"(%[tmp]) \n\t" \ +- "sw %[temp2], "#H"(%[tmp]) \n\t" \ +- "sw %[temp8], "#F"(%[tmp]) \n\t" \ +- "sw %[temp0], "#G"(%[tmp]) \n\t" \ +- "sw %[temp1], "#E1"(%[tmp]) \n\t" \ +- "sw %[temp3], "#H1"(%[tmp]) \n\t" \ +- "sw %[temp6], "#F1"(%[tmp]) \n\t" \ +- "sw %[temp4], "#G1"(%[tmp]) \n\t" ++#define HORIZONTAL_PASS(A, E, F, G, H, E1, F1, G1, H1) \ ++ "lbu %[temp0], 0+"XSTR(BPS)"*" #A "(%[a]) \n\t" \ ++ "lbu %[temp1], 1+"XSTR(BPS)"*" #A "(%[a]) \n\t" \ ++ "lbu %[temp2], 2+"XSTR(BPS)"*" #A "(%[a]) \n\t" \ ++ "lbu %[temp3], 3+"XSTR(BPS)"*" #A "(%[a]) \n\t" \ ++ "lbu %[temp4], 0+"XSTR(BPS)"*" #A "(%[b]) \n\t" \ ++ "lbu %[temp5], 1+"XSTR(BPS)"*" #A "(%[b]) \n\t" \ ++ "lbu %[temp6], 2+"XSTR(BPS)"*" #A "(%[b]) \n\t" \ ++ "lbu %[temp7], 3+"XSTR(BPS)"*" #A "(%[b]) \n\t" \ ++ "addu %[temp8], %[temp0], %[temp2] \n\t" \ ++ "subu %[temp0], %[temp0], %[temp2] \n\t" \ ++ "addu %[temp2], %[temp1], %[temp3] \n\t" \ ++ "subu %[temp1], %[temp1], %[temp3] \n\t" \ ++ "addu %[temp3], %[temp4], %[temp6] \n\t" \ ++ "subu %[temp4], %[temp4], %[temp6] \n\t" \ ++ "addu %[temp6], %[temp5], %[temp7] \n\t" \ ++ "subu %[temp5], %[temp5], %[temp7] \n\t" \ ++ "addu %[temp7], %[temp8], %[temp2] \n\t" \ ++ "subu %[temp2], %[temp8], %[temp2] \n\t" \ ++ "addu %[temp8], %[temp0], %[temp1] \n\t" \ ++ "subu %[temp0], %[temp0], %[temp1] \n\t" \ ++ "addu %[temp1], %[temp3], %[temp6] \n\t" \ ++ "subu %[temp3], %[temp3], %[temp6] \n\t" \ ++ "addu %[temp6], %[temp4], %[temp5] \n\t" \ ++ "subu %[temp4], %[temp4], %[temp5] \n\t" \ ++ "sw %[temp7], " #E "(%[tmp]) \n\t" \ ++ "sw %[temp2], " #H "(%[tmp]) \n\t" \ ++ "sw %[temp8], " #F "(%[tmp]) \n\t" \ ++ "sw %[temp0], " #G "(%[tmp]) \n\t" \ ++ "sw %[temp1], " #E1 "(%[tmp]) \n\t" \ ++ "sw %[temp3], " #H1 "(%[tmp]) \n\t" \ ++ "sw %[temp6], " #F1 "(%[tmp]) \n\t" \ ++ "sw %[temp4], " #G1 "(%[tmp]) \n\t" + + // macro for one vertical pass in Disto4x4 (TTransform) + // two calls of function TTransform are merged into single one +@@ -300,10 +300,10 @@ + // A1..D1 - offsets in bytes to load second results from tmp buffer + // E..H - offsets in bytes to load from w buffer + #define VERTICAL_PASS(A, B, C, D, A1, B1, C1, D1, E, F, G, H) \ +- "lw %[temp0], "#A1"(%[tmp]) \n\t" \ +- "lw %[temp1], "#C1"(%[tmp]) \n\t" \ +- "lw %[temp2], "#B1"(%[tmp]) \n\t" \ +- "lw %[temp3], "#D1"(%[tmp]) \n\t" \ ++ "lw %[temp0], " #A1 "(%[tmp]) \n\t" \ ++ "lw %[temp1], " #C1 "(%[tmp]) \n\t" \ ++ "lw %[temp2], " #B1 "(%[tmp]) \n\t" \ ++ "lw %[temp3], " #D1 "(%[tmp]) \n\t" \ + "addu %[temp8], %[temp0], %[temp1] \n\t" \ + "subu %[temp0], %[temp0], %[temp1] \n\t" \ + "addu %[temp1], %[temp2], %[temp3] \n\t" \ +@@ -324,18 +324,18 @@ + "subu %[temp1], %[temp1], %[temp5] \n\t" \ + "subu %[temp0], %[temp0], %[temp6] \n\t" \ + "subu %[temp8], %[temp8], %[temp7] \n\t" \ +- "lhu %[temp4], "#E"(%[w]) \n\t" \ +- "lhu %[temp5], "#F"(%[w]) \n\t" \ +- "lhu %[temp6], "#G"(%[w]) \n\t" \ +- "lhu %[temp7], "#H"(%[w]) \n\t" \ ++ "lhu %[temp4], " #E "(%[w]) \n\t" \ ++ "lhu %[temp5], " #F "(%[w]) \n\t" \ ++ "lhu %[temp6], " #G "(%[w]) \n\t" \ ++ "lhu %[temp7], " #H "(%[w]) \n\t" \ + "madd %[temp4], %[temp3] \n\t" \ + "madd %[temp5], %[temp1] \n\t" \ + "madd %[temp6], %[temp0] \n\t" \ + "madd %[temp7], %[temp8] \n\t" \ +- "lw %[temp0], "#A"(%[tmp]) \n\t" \ +- "lw %[temp1], "#C"(%[tmp]) \n\t" \ +- "lw %[temp2], "#B"(%[tmp]) \n\t" \ +- "lw %[temp3], "#D"(%[tmp]) \n\t" \ ++ "lw %[temp0], " #A "(%[tmp]) \n\t" \ ++ "lw %[temp1], " #C "(%[tmp]) \n\t" \ ++ "lw %[temp2], " #B "(%[tmp]) \n\t" \ ++ "lw %[temp3], " #D "(%[tmp]) \n\t" \ + "addu %[temp8], %[temp0], %[temp1] \n\t" \ + "subu %[temp0], %[temp0], %[temp1] \n\t" \ + "addu %[temp1], %[temp2], %[temp3] \n\t" \ +@@ -412,71 +412,71 @@ + // temp0..temp15 holds tmp[0]..tmp[15] + // A - offset in bytes to load from src and ref buffers + // TEMP0..TEMP3 - registers for corresponding tmp elements +-#define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \ +- "lw %["#TEMP1"], 0(%[args]) \n\t" \ +- "lw %["#TEMP2"], 4(%[args]) \n\t" \ +- "lbu %[temp16], 0+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \ +- "lbu %[temp17], 0+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \ +- "lbu %[temp18], 1+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \ +- "lbu %[temp19], 1+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \ +- "subu %[temp20], %[temp16], %[temp17] \n\t" \ +- "lbu %[temp16], 2+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \ +- "lbu %[temp17], 2+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \ +- "subu %["#TEMP0"], %[temp18], %[temp19] \n\t" \ +- "lbu %[temp18], 3+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \ +- "lbu %[temp19], 3+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \ +- "subu %["#TEMP1"], %[temp16], %[temp17] \n\t" \ +- "subu %["#TEMP2"], %[temp18], %[temp19] \n\t" \ +- "addu %["#TEMP3"], %[temp20], %["#TEMP2"] \n\t" \ +- "subu %["#TEMP2"], %[temp20], %["#TEMP2"] \n\t" \ +- "addu %[temp20], %["#TEMP0"], %["#TEMP1"] \n\t" \ +- "subu %["#TEMP0"], %["#TEMP0"], %["#TEMP1"] \n\t" \ +- "mul %[temp16], %["#TEMP2"], %[c5352] \n\t" \ +- "mul %[temp17], %["#TEMP2"], %[c2217] \n\t" \ +- "mul %[temp18], %["#TEMP0"], %[c5352] \n\t" \ +- "mul %[temp19], %["#TEMP0"], %[c2217] \n\t" \ +- "addu %["#TEMP1"], %["#TEMP3"], %[temp20] \n\t" \ +- "subu %[temp20], %["#TEMP3"], %[temp20] \n\t" \ +- "sll %["#TEMP0"], %["#TEMP1"], 3 \n\t" \ +- "sll %["#TEMP2"], %[temp20], 3 \n\t" \ +- "addiu %[temp16], %[temp16], 1812 \n\t" \ +- "addiu %[temp17], %[temp17], 937 \n\t" \ +- "addu %[temp16], %[temp16], %[temp19] \n\t" \ +- "subu %[temp17], %[temp17], %[temp18] \n\t" \ +- "sra %["#TEMP1"], %[temp16], 9 \n\t" \ +- "sra %["#TEMP3"], %[temp17], 9 \n\t" ++#define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \ ++ "lw %[" #TEMP1 "], 0(%[args]) \n\t" \ ++ "lw %[" #TEMP2 "], 4(%[args]) \n\t" \ ++ "lbu %[temp16], 0+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \ ++ "lbu %[temp17], 0+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \ ++ "lbu %[temp18], 1+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \ ++ "lbu %[temp19], 1+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \ ++ "subu %[temp20], %[temp16], %[temp17] \n\t" \ ++ "lbu %[temp16], 2+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \ ++ "lbu %[temp17], 2+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \ ++ "subu %[" #TEMP0 "], %[temp18], %[temp19] \n\t" \ ++ "lbu %[temp18], 3+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \ ++ "lbu %[temp19], 3+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \ ++ "subu %[" #TEMP1 "], %[temp16], %[temp17] \n\t" \ ++ "subu %[" #TEMP2 "], %[temp18], %[temp19] \n\t" \ ++ "addu %[" #TEMP3 "], %[temp20], %[" #TEMP2 "] \n\t" \ ++ "subu %[" #TEMP2 "], %[temp20], %[" #TEMP2 "] \n\t" \ ++ "addu %[temp20], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \ ++ "subu %[" #TEMP0 "], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \ ++ "mul %[temp16], %[" #TEMP2 "], %[c5352] \n\t" \ ++ "mul %[temp17], %[" #TEMP2 "], %[c2217] \n\t" \ ++ "mul %[temp18], %[" #TEMP0 "], %[c5352] \n\t" \ ++ "mul %[temp19], %[" #TEMP0 "], %[c2217] \n\t" \ ++ "addu %[" #TEMP1 "], %[" #TEMP3 "], %[temp20] \n\t" \ ++ "subu %[temp20], %[" #TEMP3 "], %[temp20] \n\t" \ ++ "sll %[" #TEMP0 "], %[" #TEMP1 "], 3 \n\t" \ ++ "sll %[" #TEMP2 "], %[temp20], 3 \n\t" \ ++ "addiu %[temp16], %[temp16], 1812 \n\t" \ ++ "addiu %[temp17], %[temp17], 937 \n\t" \ ++ "addu %[temp16], %[temp16], %[temp19] \n\t" \ ++ "subu %[temp17], %[temp17], %[temp18] \n\t" \ ++ "sra %[" #TEMP1 "], %[temp16], 9 \n\t" \ ++ "sra %[" #TEMP3 "], %[temp17], 9 \n\t" + + // macro for one vertical pass in FTransform + // temp0..temp15 holds tmp[0]..tmp[15] + // A..D - offsets in bytes to store to out buffer + // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements +-#define VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12) \ +- "addu %[temp16], %["#TEMP0"], %["#TEMP12"] \n\t" \ +- "subu %[temp19], %["#TEMP0"], %["#TEMP12"] \n\t" \ +- "addu %[temp17], %["#TEMP4"], %["#TEMP8"] \n\t" \ +- "subu %[temp18], %["#TEMP4"], %["#TEMP8"] \n\t" \ +- "mul %["#TEMP8"], %[temp19], %[c2217] \n\t" \ +- "mul %["#TEMP12"], %[temp18], %[c2217] \n\t" \ +- "mul %["#TEMP4"], %[temp19], %[c5352] \n\t" \ +- "mul %[temp18], %[temp18], %[c5352] \n\t" \ +- "addiu %[temp16], %[temp16], 7 \n\t" \ +- "addu %["#TEMP0"], %[temp16], %[temp17] \n\t" \ +- "sra %["#TEMP0"], %["#TEMP0"], 4 \n\t" \ +- "addu %["#TEMP12"], %["#TEMP12"], %["#TEMP4"] \n\t" \ +- "subu %["#TEMP4"], %[temp16], %[temp17] \n\t" \ +- "sra %["#TEMP4"], %["#TEMP4"], 4 \n\t" \ +- "addiu %["#TEMP8"], %["#TEMP8"], 30000 \n\t" \ +- "addiu %["#TEMP12"], %["#TEMP12"], 12000 \n\t" \ +- "addiu %["#TEMP8"], %["#TEMP8"], 21000 \n\t" \ +- "subu %["#TEMP8"], %["#TEMP8"], %[temp18] \n\t" \ +- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \ +- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \ +- "addiu %[temp16], %["#TEMP12"], 1 \n\t" \ +- "movn %["#TEMP12"], %[temp16], %[temp19] \n\t" \ +- "sh %["#TEMP0"], "#A"(%[temp20]) \n\t" \ +- "sh %["#TEMP4"], "#C"(%[temp20]) \n\t" \ +- "sh %["#TEMP8"], "#D"(%[temp20]) \n\t" \ +- "sh %["#TEMP12"], "#B"(%[temp20]) \n\t" ++#define VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12) \ ++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \ ++ "subu %[temp19], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \ ++ "addu %[temp17], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \ ++ "subu %[temp18], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \ ++ "mul %[" #TEMP8 "], %[temp19], %[c2217] \n\t" \ ++ "mul %[" #TEMP12 "], %[temp18], %[c2217] \n\t" \ ++ "mul %[" #TEMP4 "], %[temp19], %[c5352] \n\t" \ ++ "mul %[temp18], %[temp18], %[c5352] \n\t" \ ++ "addiu %[temp16], %[temp16], 7 \n\t" \ ++ "addu %[" #TEMP0 "], %[temp16], %[temp17] \n\t" \ ++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \ ++ "addu %[" #TEMP12 "], %[" #TEMP12 "], %[" #TEMP4 "] \n\t" \ ++ "subu %[" #TEMP4 "], %[temp16], %[temp17] \n\t" \ ++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 4 \n\t" \ ++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 30000 \n\t" \ ++ "addiu %[" #TEMP12 "], %[" #TEMP12 "], 12000 \n\t" \ ++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 21000 \n\t" \ ++ "subu %[" #TEMP8 "], %[" #TEMP8 "], %[temp18] \n\t" \ ++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \ ++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \ ++ "addiu %[temp16], %[" #TEMP12 "], 1 \n\t" \ ++ "movn %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \ ++ "sh %[" #TEMP0 "], " #A "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP4 "], " #C "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t" + + static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { + int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; +@@ -516,14 +516,14 @@ + #if !defined(WORK_AROUND_GCC) + + #define GET_SSE_INNER(A, B, C, D) \ +- "lbu %[temp0], "#A"(%[a]) \n\t" \ +- "lbu %[temp1], "#A"(%[b]) \n\t" \ +- "lbu %[temp2], "#B"(%[a]) \n\t" \ +- "lbu %[temp3], "#B"(%[b]) \n\t" \ +- "lbu %[temp4], "#C"(%[a]) \n\t" \ +- "lbu %[temp5], "#C"(%[b]) \n\t" \ +- "lbu %[temp6], "#D"(%[a]) \n\t" \ +- "lbu %[temp7], "#D"(%[b]) \n\t" \ ++ "lbu %[temp0], " #A "(%[a]) \n\t" \ ++ "lbu %[temp1], " #A "(%[b]) \n\t" \ ++ "lbu %[temp2], " #B "(%[a]) \n\t" \ ++ "lbu %[temp3], " #B "(%[b]) \n\t" \ ++ "lbu %[temp4], " #C "(%[a]) \n\t" \ ++ "lbu %[temp5], " #C "(%[b]) \n\t" \ ++ "lbu %[temp6], " #D "(%[a]) \n\t" \ ++ "lbu %[temp7], " #D "(%[b]) \n\t" \ + "subu %[temp0], %[temp0], %[temp1] \n\t" \ + "subu %[temp2], %[temp2], %[temp3] \n\t" \ + "subu %[temp4], %[temp4], %[temp5] \n\t" \ +diff --git a/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +index 56db07c..44f6fd2 100644 +--- a/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +@@ -27,25 +27,25 @@ + // I - input (macro doesn't change it) + #define ADD_SUB_HALVES_X4(O0, O1, O2, O3, O4, O5, O6, O7, \ + I0, I1, I2, I3, I4, I5, I6, I7) \ +- "addq.ph %["#O0"], %["#I0"], %["#I1"] \n\t" \ +- "subq.ph %["#O1"], %["#I0"], %["#I1"] \n\t" \ +- "addq.ph %["#O2"], %["#I2"], %["#I3"] \n\t" \ +- "subq.ph %["#O3"], %["#I2"], %["#I3"] \n\t" \ +- "addq.ph %["#O4"], %["#I4"], %["#I5"] \n\t" \ +- "subq.ph %["#O5"], %["#I4"], %["#I5"] \n\t" \ +- "addq.ph %["#O6"], %["#I6"], %["#I7"] \n\t" \ +- "subq.ph %["#O7"], %["#I6"], %["#I7"] \n\t" ++ "addq.ph %[" #O0 "], %[" #I0 "], %[" #I1 "] \n\t" \ ++ "subq.ph %[" #O1 "], %[" #I0 "], %[" #I1 "] \n\t" \ ++ "addq.ph %[" #O2 "], %[" #I2 "], %[" #I3 "] \n\t" \ ++ "subq.ph %[" #O3 "], %[" #I2 "], %[" #I3 "] \n\t" \ ++ "addq.ph %[" #O4 "], %[" #I4 "], %[" #I5 "] \n\t" \ ++ "subq.ph %[" #O5 "], %[" #I4 "], %[" #I5 "] \n\t" \ ++ "addq.ph %[" #O6 "], %[" #I6 "], %[" #I7 "] \n\t" \ ++ "subq.ph %[" #O7 "], %[" #I6 "], %[" #I7 "] \n\t" + + // IO - input/output + #define ABS_X8(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7) \ +- "absq_s.ph %["#IO0"], %["#IO0"] \n\t" \ +- "absq_s.ph %["#IO1"], %["#IO1"] \n\t" \ +- "absq_s.ph %["#IO2"], %["#IO2"] \n\t" \ +- "absq_s.ph %["#IO3"], %["#IO3"] \n\t" \ +- "absq_s.ph %["#IO4"], %["#IO4"] \n\t" \ +- "absq_s.ph %["#IO5"], %["#IO5"] \n\t" \ +- "absq_s.ph %["#IO6"], %["#IO6"] \n\t" \ +- "absq_s.ph %["#IO7"], %["#IO7"] \n\t" ++ "absq_s.ph %[" #IO0 "], %[" #IO0 "] \n\t" \ ++ "absq_s.ph %[" #IO1 "], %[" #IO1 "] \n\t" \ ++ "absq_s.ph %[" #IO2 "], %[" #IO2 "] \n\t" \ ++ "absq_s.ph %[" #IO3 "], %[" #IO3 "] \n\t" \ ++ "absq_s.ph %[" #IO4 "], %[" #IO4 "] \n\t" \ ++ "absq_s.ph %[" #IO5 "], %[" #IO5 "] \n\t" \ ++ "absq_s.ph %[" #IO6 "], %[" #IO6 "] \n\t" \ ++ "absq_s.ph %[" #IO7 "], %[" #IO7 "] \n\t" + + // dpa.w.ph $ac0 temp0 ,temp1 + // $ac += temp0[31..16] * temp1[31..16] + temp0[15..0] * temp1[15..0] +@@ -56,15 +56,15 @@ + #define MUL_HALF(O0, I0, I1, I2, I3, I4, I5, I6, I7, \ + I8, I9, I10, I11, I12, I13, I14, I15) \ + "mult $ac0, $zero, $zero \n\t" \ +- "dpa.w.ph $ac0, %["#I2"], %["#I0"] \n\t" \ +- "dpax.w.ph $ac0, %["#I5"], %["#I6"] \n\t" \ +- "dpa.w.ph $ac0, %["#I8"], %["#I9"] \n\t" \ +- "dpax.w.ph $ac0, %["#I11"], %["#I4"] \n\t" \ +- "dpa.w.ph $ac0, %["#I12"], %["#I7"] \n\t" \ +- "dpax.w.ph $ac0, %["#I13"], %["#I1"] \n\t" \ +- "dpa.w.ph $ac0, %["#I14"], %["#I3"] \n\t" \ +- "dpax.w.ph $ac0, %["#I15"], %["#I10"] \n\t" \ +- "mflo %["#O0"], $ac0 \n\t" ++ "dpa.w.ph $ac0, %[" #I2 "], %[" #I0 "] \n\t" \ ++ "dpax.w.ph $ac0, %[" #I5 "], %[" #I6 "] \n\t" \ ++ "dpa.w.ph $ac0, %[" #I8 "], %[" #I9 "] \n\t" \ ++ "dpax.w.ph $ac0, %[" #I11 "], %[" #I4 "] \n\t" \ ++ "dpa.w.ph $ac0, %[" #I12 "], %[" #I7 "] \n\t" \ ++ "dpax.w.ph $ac0, %[" #I13 "], %[" #I1 "] \n\t" \ ++ "dpa.w.ph $ac0, %[" #I14 "], %[" #I3 "] \n\t" \ ++ "dpax.w.ph $ac0, %[" #I15 "], %[" #I10 "] \n\t" \ ++ "mflo %[" #O0 "], $ac0 \n\t" + + #define OUTPUT_EARLY_CLOBBER_REGS_17() \ + OUTPUT_EARLY_CLOBBER_REGS_10(), \ +@@ -77,69 +77,69 @@ + // A - offset in bytes to load from src and ref buffers + // TEMP0..TEMP3 - registers for corresponding tmp elements + #define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \ +- "lw %["#TEMP0"], 0(%[args]) \n\t" \ +- "lw %["#TEMP1"], 4(%[args]) \n\t" \ +- "lw %["#TEMP2"], "XSTR(BPS)"*"#A"(%["#TEMP0"]) \n\t" \ +- "lw %["#TEMP3"], "XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \ +- "preceu.ph.qbl %["#TEMP0"], %["#TEMP2"] \n\t" \ +- "preceu.ph.qbl %["#TEMP1"], %["#TEMP3"] \n\t" \ +- "preceu.ph.qbr %["#TEMP2"], %["#TEMP2"] \n\t" \ +- "preceu.ph.qbr %["#TEMP3"], %["#TEMP3"] \n\t" \ +- "subq.ph %["#TEMP0"], %["#TEMP0"], %["#TEMP1"] \n\t" \ +- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP3"] \n\t" \ +- "rotr %["#TEMP0"], %["#TEMP0"], 16 \n\t" \ +- "addq.ph %["#TEMP1"], %["#TEMP2"], %["#TEMP0"] \n\t" \ +- "subq.ph %["#TEMP3"], %["#TEMP2"], %["#TEMP0"] \n\t" \ +- "seh %["#TEMP0"], %["#TEMP1"] \n\t" \ +- "sra %[temp16], %["#TEMP1"], 16 \n\t" \ +- "seh %[temp19], %["#TEMP3"] \n\t" \ +- "sra %["#TEMP3"], %["#TEMP3"], 16 \n\t" \ +- "subu %["#TEMP2"], %["#TEMP0"], %[temp16] \n\t" \ +- "addu %["#TEMP0"], %["#TEMP0"], %[temp16] \n\t" \ +- "mul %[temp17], %[temp19], %[c2217] \n\t" \ +- "mul %[temp18], %["#TEMP3"], %[c5352] \n\t" \ +- "mul %["#TEMP1"], %[temp19], %[c5352] \n\t" \ +- "mul %[temp16], %["#TEMP3"], %[c2217] \n\t" \ +- "sll %["#TEMP2"], %["#TEMP2"], 3 \n\t" \ +- "sll %["#TEMP0"], %["#TEMP0"], 3 \n\t" \ +- "subu %["#TEMP3"], %[temp17], %[temp18] \n\t" \ +- "addu %["#TEMP1"], %[temp16], %["#TEMP1"] \n\t" \ +- "addiu %["#TEMP3"], %["#TEMP3"], 937 \n\t" \ +- "addiu %["#TEMP1"], %["#TEMP1"], 1812 \n\t" \ +- "sra %["#TEMP3"], %["#TEMP3"], 9 \n\t" \ +- "sra %["#TEMP1"], %["#TEMP1"], 9 \n\t" ++ "lw %[" #TEMP0 "], 0(%[args]) \n\t" \ ++ "lw %[" #TEMP1 "], 4(%[args]) \n\t" \ ++ "lw %[" #TEMP2 "], "XSTR(BPS)"*" #A "(%[" #TEMP0 "]) \n\t" \ ++ "lw %[" #TEMP3 "], "XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \ ++ "preceu.ph.qbl %[" #TEMP0 "], %[" #TEMP2 "] \n\t" \ ++ "preceu.ph.qbl %[" #TEMP1 "], %[" #TEMP3 "] \n\t" \ ++ "preceu.ph.qbr %[" #TEMP2 "], %[" #TEMP2 "] \n\t" \ ++ "preceu.ph.qbr %[" #TEMP3 "], %[" #TEMP3 "] \n\t" \ ++ "subq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \ ++ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP3 "] \n\t" \ ++ "rotr %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\t" \ ++ "addq.ph %[" #TEMP1 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \ ++ "subq.ph %[" #TEMP3 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \ ++ "seh %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \ ++ "sra %[temp16], %[" #TEMP1 "], 16 \n\t" \ ++ "seh %[temp19], %[" #TEMP3 "] \n\t" \ ++ "sra %[" #TEMP3 "], %[" #TEMP3 "], 16 \n\t" \ ++ "subu %[" #TEMP2 "], %[" #TEMP0 "], %[temp16] \n\t" \ ++ "addu %[" #TEMP0 "], %[" #TEMP0 "], %[temp16] \n\t" \ ++ "mul %[temp17], %[temp19], %[c2217] \n\t" \ ++ "mul %[temp18], %[" #TEMP3 "], %[c5352] \n\t" \ ++ "mul %[" #TEMP1 "], %[temp19], %[c5352] \n\t" \ ++ "mul %[temp16], %[" #TEMP3 "], %[c2217] \n\t" \ ++ "sll %[" #TEMP2 "], %[" #TEMP2 "], 3 \n\t" \ ++ "sll %[" #TEMP0 "], %[" #TEMP0 "], 3 \n\t" \ ++ "subu %[" #TEMP3 "], %[temp17], %[temp18] \n\t" \ ++ "addu %[" #TEMP1 "], %[temp16], %[" #TEMP1 "] \n\t" \ ++ "addiu %[" #TEMP3 "], %[" #TEMP3 "], 937 \n\t" \ ++ "addiu %[" #TEMP1 "], %[" #TEMP1 "], 1812 \n\t" \ ++ "sra %[" #TEMP3 "], %[" #TEMP3 "], 9 \n\t" \ ++ "sra %[" #TEMP1 "], %[" #TEMP1 "], 9 \n\t" + + // macro for one vertical pass in FTransform + // temp0..temp15 holds tmp[0]..tmp[15] + // A..D - offsets in bytes to store to out buffer + // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements + #define VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12) \ +- "addu %[temp16], %["#TEMP0"], %["#TEMP12"] \n\t" \ +- "subu %[temp19], %["#TEMP0"], %["#TEMP12"] \n\t" \ +- "addu %[temp17], %["#TEMP4"], %["#TEMP8"] \n\t" \ +- "subu %[temp18], %["#TEMP4"], %["#TEMP8"] \n\t" \ +- "mul %["#TEMP8"], %[temp19], %[c2217] \n\t" \ +- "mul %["#TEMP12"], %[temp18], %[c2217] \n\t" \ +- "mul %["#TEMP4"], %[temp19], %[c5352] \n\t" \ +- "mul %[temp18], %[temp18], %[c5352] \n\t" \ +- "addiu %[temp16], %[temp16], 7 \n\t" \ +- "addu %["#TEMP0"], %[temp16], %[temp17] \n\t" \ +- "sra %["#TEMP0"], %["#TEMP0"], 4 \n\t" \ +- "addu %["#TEMP12"], %["#TEMP12"], %["#TEMP4"] \n\t" \ +- "subu %["#TEMP4"], %[temp16], %[temp17] \n\t" \ +- "sra %["#TEMP4"], %["#TEMP4"], 4 \n\t" \ +- "addiu %["#TEMP8"], %["#TEMP8"], 30000 \n\t" \ +- "addiu %["#TEMP12"], %["#TEMP12"], 12000 \n\t" \ +- "addiu %["#TEMP8"], %["#TEMP8"], 21000 \n\t" \ +- "subu %["#TEMP8"], %["#TEMP8"], %[temp18] \n\t" \ +- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \ +- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \ +- "addiu %[temp16], %["#TEMP12"], 1 \n\t" \ +- "movn %["#TEMP12"], %[temp16], %[temp19] \n\t" \ +- "sh %["#TEMP0"], "#A"(%[temp20]) \n\t" \ +- "sh %["#TEMP4"], "#C"(%[temp20]) \n\t" \ +- "sh %["#TEMP8"], "#D"(%[temp20]) \n\t" \ +- "sh %["#TEMP12"], "#B"(%[temp20]) \n\t" ++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \ ++ "subu %[temp19], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \ ++ "addu %[temp17], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \ ++ "subu %[temp18], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \ ++ "mul %[" #TEMP8 "], %[temp19], %[c2217] \n\t" \ ++ "mul %[" #TEMP12 "], %[temp18], %[c2217] \n\t" \ ++ "mul %[" #TEMP4 "], %[temp19], %[c5352] \n\t" \ ++ "mul %[temp18], %[temp18], %[c5352] \n\t" \ ++ "addiu %[temp16], %[temp16], 7 \n\t" \ ++ "addu %[" #TEMP0 "], %[temp16], %[temp17] \n\t" \ ++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \ ++ "addu %[" #TEMP12 "], %[" #TEMP12 "], %[" #TEMP4 "] \n\t" \ ++ "subu %[" #TEMP4 "], %[temp16], %[temp17] \n\t" \ ++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 4 \n\t" \ ++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 30000 \n\t" \ ++ "addiu %[" #TEMP12 "], %[" #TEMP12 "], 12000 \n\t" \ ++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 21000 \n\t" \ ++ "subu %[" #TEMP8 "], %[" #TEMP8 "], %[temp18] \n\t" \ ++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \ ++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \ ++ "addiu %[temp16], %[" #TEMP12 "], 1 \n\t" \ ++ "movn %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \ ++ "sh %[" #TEMP0 "], " #A "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP4 "], " #C "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \ ++ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t" + + static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { + const int c2217 = 2217; +@@ -329,11 +329,11 @@ + // Intra predictions + + #define FILL_PART(J, SIZE) \ +- "usw %[value], 0+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \ +- "usw %[value], 4+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \ +- ".if "#SIZE" == 16 \n\t" \ +- "usw %[value], 8+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \ +- "usw %[value], 12+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \ ++ "usw %[value], 0+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \ ++ "usw %[value], 4+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \ ++ ".if " #SIZE " == 16 \n\t" \ ++ "usw %[value], 8+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \ ++ "usw %[value], 12+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \ + ".endif \n\t" + + #define FILL_8_OR_16(DST, VALUE, SIZE) do { \ +@@ -348,7 +348,7 @@ + FILL_PART( 5, SIZE) \ + FILL_PART( 6, SIZE) \ + FILL_PART( 7, SIZE) \ +- ".if "#SIZE" == 16 \n\t" \ ++ ".if " #SIZE " == 16 \n\t" \ + FILL_PART( 8, 16) \ + FILL_PART( 9, 16) \ + FILL_PART(10, 16) \ +@@ -425,7 +425,7 @@ + CLIPPING() \ + "usw %[temp0], 0(%[dst]) \n\t" \ + "usw %[temp1], 4(%[dst]) \n\t" \ +- ".if "#SIZE" == 16 \n\t" \ ++ ".if " #SIZE " == 16 \n\t" \ + "ulw %[temp0], 8(%[top]) \n\t" \ + "ulw %[temp1], 12(%[top]) \n\t" \ + CLIPPING() \ +@@ -1060,8 +1060,8 @@ + #if !defined(WORK_AROUND_GCC) + + #define GET_SSE_INNER(A) \ +- "lw %[temp0], "#A"(%[a]) \n\t" \ +- "lw %[temp1], "#A"(%[b]) \n\t" \ ++ "lw %[temp0], " #A "(%[a]) \n\t" \ ++ "lw %[temp1], " #A "(%[b]) \n\t" \ + "preceu.ph.qbr %[temp2], %[temp0] \n\t" \ + "preceu.ph.qbl %[temp0], %[temp0] \n\t" \ + "preceu.ph.qbr %[temp3], %[temp1] \n\t" \ +@@ -1185,28 +1185,28 @@ + // N - offset in bytes (n * 2) + // N1 - offset in bytes ((n + 1) * 2) + #define QUANTIZE_ONE(J, K, N, N1) \ +- "ulw %[temp1], "#J"(%[ppin]) \n\t" \ +- "ulw %[temp2], "#J"(%[ppsharpen]) \n\t" \ +- "lhu %[temp3], "#K"(%[ppzthresh]) \n\t" \ +- "lhu %[temp6], "#K"+4(%[ppzthresh]) \n\t" \ ++ "ulw %[temp1], " #J "(%[ppin]) \n\t" \ ++ "ulw %[temp2], " #J "(%[ppsharpen]) \n\t" \ ++ "lhu %[temp3], " #K "(%[ppzthresh]) \n\t" \ ++ "lhu %[temp6], " #K "+4(%[ppzthresh]) \n\t" \ + "absq_s.ph %[temp4], %[temp1] \n\t" \ + "ins %[temp3], %[temp6], 16, 16 \n\t" \ + "addu.ph %[coeff], %[temp4], %[temp2] \n\t" \ + "shra.ph %[sign], %[temp1], 15 \n\t" \ + "li %[level], 0x10001 \n\t" \ + "cmp.lt.ph %[temp3], %[coeff] \n\t" \ +- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \ ++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \ + "pick.ph %[temp5], %[level], $0 \n\t" \ +- "lw %[temp2], "#K"(%[ppbias]) \n\t" \ ++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \ + "beqz %[temp5], 0f \n\t" \ +- "lhu %[temp3], "#J"(%[ppq]) \n\t" \ ++ "lhu %[temp3], " #J "(%[ppq]) \n\t" \ + "beq %[temp5], %[level], 1f \n\t" \ + "andi %[temp5], %[temp5], 0x1 \n\t" \ + "andi %[temp4], %[coeff], 0xffff \n\t" \ + "beqz %[temp5], 2f \n\t" \ + "mul %[level], %[temp4], %[temp1] \n\t" \ +- "sh $0, "#J"+2(%[ppin]) \n\t" \ +- "sh $0, "#N1"(%[pout]) \n\t" \ ++ "sh $0, " #J "+2(%[ppin]) \n\t" \ ++ "sh $0, " #N1 "(%[pout]) \n\t" \ + "addu %[level], %[level], %[temp2] \n\t" \ + "sra %[level], %[level], 17 \n\t" \ + "slt %[temp4], %[max_level], %[level] \n\t" \ +@@ -1216,15 +1216,15 @@ + "subu %[level], %[level], %[temp6] \n\t" \ + "mul %[temp5], %[level], %[temp3] \n\t" \ + "or %[ret], %[ret], %[level] \n\t" \ +- "sh %[level], "#N"(%[pout]) \n\t" \ +- "sh %[temp5], "#J"(%[ppin]) \n\t" \ ++ "sh %[level], " #N "(%[pout]) \n\t" \ ++ "sh %[temp5], " #J "(%[ppin]) \n\t" \ + "j 3f \n\t" \ + "2: \n\t" \ +- "lhu %[temp1], "#J"+2(%[ppiq]) \n\t" \ ++ "lhu %[temp1], " #J "+2(%[ppiq]) \n\t" \ + "srl %[temp5], %[coeff], 16 \n\t" \ + "mul %[level], %[temp5], %[temp1] \n\t" \ +- "lw %[temp2], "#K"+4(%[ppbias]) \n\t" \ +- "lhu %[temp3], "#J"+2(%[ppq]) \n\t" \ ++ "lw %[temp2], " #K "+4(%[ppbias]) \n\t" \ ++ "lhu %[temp3], " #J "+2(%[ppq]) \n\t" \ + "addu %[level], %[level], %[temp2] \n\t" \ + "sra %[level], %[level], 17 \n\t" \ + "srl %[temp6], %[sign], 16 \n\t" \ +@@ -1233,20 +1233,20 @@ + "xor %[level], %[level], %[temp6] \n\t" \ + "subu %[level], %[level], %[temp6] \n\t" \ + "mul %[temp5], %[level], %[temp3] \n\t" \ +- "sh $0, "#J"(%[ppin]) \n\t" \ +- "sh $0, "#N"(%[pout]) \n\t" \ ++ "sh $0, " #J "(%[ppin]) \n\t" \ ++ "sh $0, " #N "(%[pout]) \n\t" \ + "or %[ret], %[ret], %[level] \n\t" \ +- "sh %[temp5], "#J"+2(%[ppin]) \n\t" \ +- "sh %[level], "#N1"(%[pout]) \n\t" \ ++ "sh %[temp5], " #J "+2(%[ppin]) \n\t" \ ++ "sh %[level], " #N1 "(%[pout]) \n\t" \ + "j 3f \n\t" \ + "1: \n\t" \ +- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \ +- "lw %[temp2], "#K"(%[ppbias]) \n\t" \ +- "ulw %[temp3], "#J"(%[ppq]) \n\t" \ ++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \ ++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \ ++ "ulw %[temp3], " #J "(%[ppq]) \n\t" \ + "andi %[temp5], %[coeff], 0xffff \n\t" \ + "srl %[temp0], %[coeff], 16 \n\t" \ +- "lhu %[temp6], "#J"+2(%[ppiq]) \n\t" \ +- "lw %[coeff], "#K"+4(%[ppbias]) \n\t" \ ++ "lhu %[temp6], " #J "+2(%[ppiq]) \n\t" \ ++ "lw %[coeff], " #K "+4(%[ppbias]) \n\t" \ + "mul %[level], %[temp5], %[temp1] \n\t" \ + "mul %[temp4], %[temp0], %[temp6] \n\t" \ + "addu %[level], %[level], %[temp2] \n\t" \ +@@ -1259,15 +1259,15 @@ + "subu.ph %[level], %[level], %[sign] \n\t" \ + "mul.ph %[temp3], %[level], %[temp3] \n\t" \ + "or %[ret], %[ret], %[level] \n\t" \ +- "sh %[level], "#N"(%[pout]) \n\t" \ ++ "sh %[level], " #N "(%[pout]) \n\t" \ + "srl %[level], %[level], 16 \n\t" \ +- "sh %[level], "#N1"(%[pout]) \n\t" \ +- "usw %[temp3], "#J"(%[ppin]) \n\t" \ ++ "sh %[level], " #N1 "(%[pout]) \n\t" \ ++ "usw %[temp3], " #J "(%[ppin]) \n\t" \ + "j 3f \n\t" \ + "0: \n\t" \ +- "sh $0, "#N"(%[pout]) \n\t" \ +- "sh $0, "#N1"(%[pout]) \n\t" \ +- "usw $0, "#J"(%[ppin]) \n\t" \ ++ "sh $0, " #N "(%[pout]) \n\t" \ ++ "sh $0, " #N1 "(%[pout]) \n\t" \ ++ "usw $0, " #J "(%[ppin]) \n\t" \ + "3: \n\t" + + static int QuantizeBlock(int16_t in[16], int16_t out[16], +@@ -1326,37 +1326,37 @@ + // A, B, C, D - offset in bytes to load from in buffer + // TEMP0, TEMP1 - registers for corresponding tmp elements + #define HORIZONTAL_PASS_WHT(A, B, C, D, TEMP0, TEMP1) \ +- "lh %["#TEMP0"], "#A"(%[in]) \n\t" \ +- "lh %["#TEMP1"], "#B"(%[in]) \n\t" \ +- "lh %[temp8], "#C"(%[in]) \n\t" \ +- "lh %[temp9], "#D"(%[in]) \n\t" \ +- "ins %["#TEMP1"], %["#TEMP0"], 16, 16 \n\t" \ ++ "lh %[" #TEMP0 "], " #A "(%[in]) \n\t" \ ++ "lh %[" #TEMP1 "], " #B "(%[in]) \n\t" \ ++ "lh %[temp8], " #C "(%[in]) \n\t" \ ++ "lh %[temp9], " #D "(%[in]) \n\t" \ ++ "ins %[" #TEMP1 "], %[" #TEMP0 "], 16, 16 \n\t" \ + "ins %[temp9], %[temp8], 16, 16 \n\t" \ +- "subq.ph %[temp8], %["#TEMP1"], %[temp9] \n\t" \ +- "addq.ph %[temp9], %["#TEMP1"], %[temp9] \n\t" \ +- "precrq.ph.w %["#TEMP0"], %[temp8], %[temp9] \n\t" \ ++ "subq.ph %[temp8], %[" #TEMP1 "], %[temp9] \n\t" \ ++ "addq.ph %[temp9], %[" #TEMP1 "], %[temp9] \n\t" \ ++ "precrq.ph.w %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \ + "append %[temp8], %[temp9], 16 \n\t" \ +- "subq.ph %["#TEMP1"], %["#TEMP0"], %[temp8] \n\t" \ +- "addq.ph %["#TEMP0"], %["#TEMP0"], %[temp8] \n\t" \ +- "rotr %["#TEMP1"], %["#TEMP1"], 16 \n\t" ++ "subq.ph %[" #TEMP1 "], %[" #TEMP0 "], %[temp8] \n\t" \ ++ "addq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[temp8] \n\t" \ ++ "rotr %[" #TEMP1 "], %[" #TEMP1 "], 16 \n\t" + + // macro for one vertical pass in FTransformWHT + // temp0..temp7 holds tmp[0]..tmp[15] + // A, B, C, D - offsets in bytes to store to out buffer + // TEMP0, TEMP2, TEMP4 and TEMP6 - registers for corresponding tmp elements + #define VERTICAL_PASS_WHT(A, B, C, D, TEMP0, TEMP2, TEMP4, TEMP6) \ +- "addq.ph %[temp8], %["#TEMP0"], %["#TEMP4"] \n\t" \ +- "addq.ph %[temp9], %["#TEMP2"], %["#TEMP6"] \n\t" \ +- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \ +- "subq.ph %["#TEMP6"], %["#TEMP0"], %["#TEMP4"] \n\t" \ +- "addqh.ph %["#TEMP0"], %[temp8], %[temp9] \n\t" \ +- "subqh.ph %["#TEMP4"], %["#TEMP6"], %["#TEMP2"] \n\t" \ +- "addqh.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \ +- "subqh.ph %["#TEMP6"], %[temp8], %[temp9] \n\t" \ +- "usw %["#TEMP0"], "#A"(%[out]) \n\t" \ +- "usw %["#TEMP2"], "#B"(%[out]) \n\t" \ +- "usw %["#TEMP4"], "#C"(%[out]) \n\t" \ +- "usw %["#TEMP6"], "#D"(%[out]) \n\t" ++ "addq.ph %[temp8], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \ ++ "addq.ph %[temp9], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \ ++ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \ ++ "subq.ph %[" #TEMP6 "], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \ ++ "addqh.ph %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \ ++ "subqh.ph %[" #TEMP4 "], %[" #TEMP6 "], %[" #TEMP2 "] \n\t" \ ++ "addqh.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \ ++ "subqh.ph %[" #TEMP6 "], %[temp8], %[temp9] \n\t" \ ++ "usw %[" #TEMP0 "], " #A "(%[out]) \n\t" \ ++ "usw %[" #TEMP2 "], " #B "(%[out]) \n\t" \ ++ "usw %[" #TEMP4 "], " #C "(%[out]) \n\t" \ ++ "usw %[" #TEMP6 "], " #D "(%[out]) \n\t" + + static void FTransformWHT(const int16_t* in, int16_t* out) { + int temp0, temp1, temp2, temp3, temp4; +@@ -1385,10 +1385,10 @@ + // convert 8 coeffs at time + // A, B, C, D - offsets in bytes to load from out buffer + #define CONVERT_COEFFS_TO_BIN(A, B, C, D) \ +- "ulw %[temp0], "#A"(%[out]) \n\t" \ +- "ulw %[temp1], "#B"(%[out]) \n\t" \ +- "ulw %[temp2], "#C"(%[out]) \n\t" \ +- "ulw %[temp3], "#D"(%[out]) \n\t" \ ++ "ulw %[temp0], " #A "(%[out]) \n\t" \ ++ "ulw %[temp1], " #B "(%[out]) \n\t" \ ++ "ulw %[temp2], " #C "(%[out]) \n\t" \ ++ "ulw %[temp3], " #D "(%[out]) \n\t" \ + "absq_s.ph %[temp0], %[temp0] \n\t" \ + "absq_s.ph %[temp1], %[temp1] \n\t" \ + "absq_s.ph %[temp2], %[temp2] \n\t" \ +diff --git a/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +index 66f807d..8134af5 100644 +--- a/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +@@ -48,7 +48,7 @@ + "srl %[temp0], %[length], 0x2 \n\t" \ + "beqz %[temp0], 4f \n\t" \ + " andi %[temp6], %[length], 0x3 \n\t" \ +- ".if "#INVERSE" \n\t" \ ++ ".if " #INVERSE " \n\t" \ + "lbu %[temp1], -1(%[src]) \n\t" \ + "1: \n\t" \ + "lbu %[temp2], 0(%[src]) \n\t" \ +@@ -84,7 +84,7 @@ + "lbu %[temp1], -1(%[src]) \n\t" \ + "lbu %[temp2], 0(%[src]) \n\t" \ + "addiu %[src], %[src], 1 \n\t" \ +- ".if "#INVERSE" \n\t" \ ++ ".if " #INVERSE " \n\t" \ + "addu %[temp3], %[temp1], %[temp2] \n\t" \ + "sb %[temp3], -1(%[src]) \n\t" \ + ".else \n\t" \ +@@ -131,7 +131,7 @@ + "ulw %[temp3], 4(%[src]) \n\t" \ + "ulw %[temp4], 4(%[pred]) \n\t" \ + "addiu %[src], %[src], 8 \n\t" \ +- ".if "#INVERSE" \n\t" \ ++ ".if " #INVERSE " \n\t" \ + "addu.qb %[temp5], %[temp1], %[temp2] \n\t" \ + "addu.qb %[temp6], %[temp3], %[temp4] \n\t" \ + ".else \n\t" \ +@@ -152,7 +152,7 @@ + "lbu %[temp2], 0(%[pred]) \n\t" \ + "addiu %[src], %[src], 1 \n\t" \ + "addiu %[pred], %[pred], 1 \n\t" \ +- ".if "#INVERSE" \n\t" \ ++ ".if " #INVERSE " \n\t" \ + "addu %[temp3], %[temp1], %[temp2] \n\t" \ + ".else \n\t" \ + "subu %[temp3], %[temp1], %[temp2] \n\t" \ +@@ -177,7 +177,7 @@ + __asm__ volatile ( \ + "lbu %[temp1], 0(%[src]) \n\t" \ + "lbu %[temp2], 0(%[pred]) \n\t" \ +- ".if "#INVERSE" \n\t" \ ++ ".if " #INVERSE " \n\t" \ + "addu %[temp3], %[temp1], %[temp2] \n\t" \ + ".else \n\t" \ + "subu %[temp3], %[temp1], %[temp2] \n\t" \ +diff --git a/Source/LibWebP/src/dsp/dsp.lossless_mips32.c b/Source/LibWebP/src/dsp/dsp.lossless_mips32.c +index 8ae5958..cdf0e26 100644 +--- a/Source/LibWebP/src/dsp/dsp.lossless_mips32.c ++++ b/Source/LibWebP/src/dsp/dsp.lossless_mips32.c + +@@ -278,28 +278,28 @@ + // literal_ and successive histograms could be unaligned + // so we must use ulw and usw + #define ADD_TO_OUT(A, B, C, D, E, P0, P1, P2) \ +- "ulw %[temp0], "#A"(%["#P0"]) \n\t" \ +- "ulw %[temp1], "#B"(%["#P0"]) \n\t" \ +- "ulw %[temp2], "#C"(%["#P0"]) \n\t" \ +- "ulw %[temp3], "#D"(%["#P0"]) \n\t" \ +- "ulw %[temp4], "#A"(%["#P1"]) \n\t" \ +- "ulw %[temp5], "#B"(%["#P1"]) \n\t" \ +- "ulw %[temp6], "#C"(%["#P1"]) \n\t" \ +- "ulw %[temp7], "#D"(%["#P1"]) \n\t" \ ++ "ulw %[temp0], " #A "(%[" #P0 "]) \n\t" \ ++ "ulw %[temp1], " #B "(%[" #P0 "]) \n\t" \ ++ "ulw %[temp2], " #C "(%[" #P0 "]) \n\t" \ ++ "ulw %[temp3], " #D "(%[" #P0 "]) \n\t" \ ++ "ulw %[temp4], " #A "(%[" #P1 "]) \n\t" \ ++ "ulw %[temp5], " #B "(%[" #P1 "]) \n\t" \ ++ "ulw %[temp6], " #C "(%[" #P1 "]) \n\t" \ ++ "ulw %[temp7], " #D "(%[" #P1 "]) \n\t" \ + "addu %[temp4], %[temp4], %[temp0] \n\t" \ + "addu %[temp5], %[temp5], %[temp1] \n\t" \ + "addu %[temp6], %[temp6], %[temp2] \n\t" \ + "addu %[temp7], %[temp7], %[temp3] \n\t" \ +- "addiu %["#P0"], %["#P0"], 16 \n\t" \ +- ".if "#E" == 1 \n\t" \ +- "addiu %["#P1"], %["#P1"], 16 \n\t" \ ++ "addiu %[" #P0 "], %[" #P0 "], 16 \n\t" \ ++ ".if " #E " == 1 \n\t" \ ++ "addiu %[" #P1 "], %[" #P1 "], 16 \n\t" \ + ".endif \n\t" \ +- "usw %[temp4], "#A"(%["#P2"]) \n\t" \ +- "usw %[temp5], "#B"(%["#P2"]) \n\t" \ +- "usw %[temp6], "#C"(%["#P2"]) \n\t" \ +- "usw %[temp7], "#D"(%["#P2"]) \n\t" \ +- "addiu %["#P2"], %["#P2"], 16 \n\t" \ +- "bne %["#P0"], %[LoopEnd], 1b \n\t" \ ++ "usw %[temp4], " #A "(%[" #P2 "]) \n\t" \ ++ "usw %[temp5], " #B "(%[" #P2 "]) \n\t" \ ++ "usw %[temp6], " #C "(%[" #P2 "]) \n\t" \ ++ "usw %[temp7], " #D "(%[" #P2 "]) \n\t" \ ++ "addiu %[" #P2 "], %[" #P2 "], 16 \n\t" \ ++ "bne %[" #P0 "], %[LoopEnd], 1b \n\t" \ + ".set pop \n\t" \ + + #define ASM_END_COMMON_0 \ +diff --git a/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +index ad55f2c..90aed7f 100644 +--- a/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +@@ -29,14 +29,14 @@ + for (x = 0; x < (width >> 2); ++x) { \ + int tmp1, tmp2, tmp3, tmp4; \ + __asm__ volatile ( \ +- ".ifc "#TYPE", uint8_t \n\t" \ ++ ".ifc " #TYPE ", uint8_t \n\t" \ + "lbu %[tmp1], 0(%[src]) \n\t" \ + "lbu %[tmp2], 1(%[src]) \n\t" \ + "lbu %[tmp3], 2(%[src]) \n\t" \ + "lbu %[tmp4], 3(%[src]) \n\t" \ + "addiu %[src], %[src], 4 \n\t" \ + ".endif \n\t" \ +- ".ifc "#TYPE", uint32_t \n\t" \ ++ ".ifc " #TYPE ", uint32_t \n\t" \ + "lw %[tmp1], 0(%[src]) \n\t" \ + "lw %[tmp2], 4(%[src]) \n\t" \ + "lw %[tmp3], 8(%[src]) \n\t" \ +@@ -55,7 +55,7 @@ + "lwx %[tmp2], %[tmp2](%[color_map]) \n\t" \ + "lwx %[tmp3], %[tmp3](%[color_map]) \n\t" \ + "lwx %[tmp4], %[tmp4](%[color_map]) \n\t" \ +- ".ifc "#TYPE", uint8_t \n\t" \ ++ ".ifc " #TYPE ", uint8_t \n\t" \ + "ext %[tmp1], %[tmp1], 8, 8 \n\t" \ + "ext %[tmp2], %[tmp2], 8, 8 \n\t" \ + "ext %[tmp3], %[tmp3], 8, 8 \n\t" \ +@@ -66,7 +66,7 @@ + "sb %[tmp4], 3(%[dst]) \n\t" \ + "addiu %[dst], %[dst], 4 \n\t" \ + ".endif \n\t" \ +- ".ifc "#TYPE", uint32_t \n\t" \ ++ ".ifc " #TYPE ", uint32_t \n\t" \ + "sw %[tmp1], 0(%[dst]) \n\t" \ + "sw %[tmp2], 4(%[dst]) \n\t" \ + "sw %[tmp3], 8(%[dst]) \n\t" \ +diff --git a/Source/LibWebP/src/dsp/mips_macro.h b/Source/LibWebP/src/dsp/mips_macro.h +index 4cfb23c..e09d2c4 100644 +--- a/Source/LibWebP/src/dsp/mips_macro.h ++++ b/Source/LibWebP/src/dsp/mips_macro.h +@@ -25,25 +25,25 @@ + // I - input (macro doesn't change it) + #define ADD_SUB_HALVES(O0, O1, \ + I0, I1) \ +- "addq.ph %["#O0"], %["#I0"], %["#I1"] \n\t" \ +- "subq.ph %["#O1"], %["#I0"], %["#I1"] \n\t" ++ "addq.ph %[" #O0 "], %[" #I0 "], %[" #I1 "] \n\t" \ ++ "subq.ph %[" #O1 "], %[" #I0 "], %[" #I1 "] \n\t" + + // O - output + // I - input (macro doesn't change it) + // I[0/1] - offset in bytes + #define LOAD_IN_X2(O0, O1, \ + I0, I1) \ +- "lh %["#O0"], "#I0"(%[in]) \n\t" \ +- "lh %["#O1"], "#I1"(%[in]) \n\t" ++ "lh %[" #O0 "], " #I0 "(%[in]) \n\t" \ ++ "lh %[" #O1 "], " #I1 "(%[in]) \n\t" + + // I0 - location + // I1..I9 - offsets in bytes + #define LOAD_WITH_OFFSET_X4(O0, O1, O2, O3, \ + I0, I1, I2, I3, I4, I5, I6, I7, I8, I9) \ +- "ulw %["#O0"], "#I1"+"XSTR(I9)"*"#I5"(%["#I0"]) \n\t" \ +- "ulw %["#O1"], "#I2"+"XSTR(I9)"*"#I6"(%["#I0"]) \n\t" \ +- "ulw %["#O2"], "#I3"+"XSTR(I9)"*"#I7"(%["#I0"]) \n\t" \ +- "ulw %["#O3"], "#I4"+"XSTR(I9)"*"#I8"(%["#I0"]) \n\t" ++ "ulw %[" #O0 "], " #I1 "+"XSTR(I9)"*" #I5 "(%[" #I0 "]) \n\t" \ ++ "ulw %[" #O1 "], " #I2 "+"XSTR(I9)"*" #I6 "(%[" #I0 "]) \n\t" \ ++ "ulw %[" #O2 "], " #I3 "+"XSTR(I9)"*" #I7 "(%[" #I0 "]) \n\t" \ ++ "ulw %[" #O3 "], " #I4 "+"XSTR(I9)"*" #I8 "(%[" #I0 "]) \n\t" + + // O - output + // IO - input/output +@@ -51,42 +51,42 @@ + #define MUL_SHIFT_SUM(O0, O1, O2, O3, O4, O5, O6, O7, \ + IO0, IO1, IO2, IO3, \ + I0, I1, I2, I3, I4, I5, I6, I7) \ +- "mul %["#O0"], %["#I0"], %[kC2] \n\t" \ +- "mul %["#O1"], %["#I0"], %[kC1] \n\t" \ +- "mul %["#O2"], %["#I1"], %[kC2] \n\t" \ +- "mul %["#O3"], %["#I1"], %[kC1] \n\t" \ +- "mul %["#O4"], %["#I2"], %[kC2] \n\t" \ +- "mul %["#O5"], %["#I2"], %[kC1] \n\t" \ +- "mul %["#O6"], %["#I3"], %[kC2] \n\t" \ +- "mul %["#O7"], %["#I3"], %[kC1] \n\t" \ +- "sra %["#O0"], %["#O0"], 16 \n\t" \ +- "sra %["#O1"], %["#O1"], 16 \n\t" \ +- "sra %["#O2"], %["#O2"], 16 \n\t" \ +- "sra %["#O3"], %["#O3"], 16 \n\t" \ +- "sra %["#O4"], %["#O4"], 16 \n\t" \ +- "sra %["#O5"], %["#O5"], 16 \n\t" \ +- "sra %["#O6"], %["#O6"], 16 \n\t" \ +- "sra %["#O7"], %["#O7"], 16 \n\t" \ +- "addu %["#IO0"], %["#IO0"], %["#I4"] \n\t" \ +- "addu %["#IO1"], %["#IO1"], %["#I5"] \n\t" \ +- "subu %["#IO2"], %["#IO2"], %["#I6"] \n\t" \ +- "subu %["#IO3"], %["#IO3"], %["#I7"] \n\t" ++ "mul %[" #O0 "], %[" #I0 "], %[kC2] \n\t" \ ++ "mul %[" #O1 "], %[" #I0 "], %[kC1] \n\t" \ ++ "mul %[" #O2 "], %[" #I1 "], %[kC2] \n\t" \ ++ "mul %[" #O3 "], %[" #I1 "], %[kC1] \n\t" \ ++ "mul %[" #O4 "], %[" #I2 "], %[kC2] \n\t" \ ++ "mul %[" #O5 "], %[" #I2 "], %[kC1] \n\t" \ ++ "mul %[" #O6 "], %[" #I3 "], %[kC2] \n\t" \ ++ "mul %[" #O7 "], %[" #I3 "], %[kC1] \n\t" \ ++ "sra %[" #O0 "], %[" #O0 "], 16 \n\t" \ ++ "sra %[" #O1 "], %[" #O1 "], 16 \n\t" \ ++ "sra %[" #O2 "], %[" #O2 "], 16 \n\t" \ ++ "sra %[" #O3 "], %[" #O3 "], 16 \n\t" \ ++ "sra %[" #O4 "], %[" #O4 "], 16 \n\t" \ ++ "sra %[" #O5 "], %[" #O5 "], 16 \n\t" \ ++ "sra %[" #O6 "], %[" #O6 "], 16 \n\t" \ ++ "sra %[" #O7 "], %[" #O7 "], 16 \n\t" \ ++ "addu %[" #IO0 "], %[" #IO0 "], %[" #I4 "] \n\t" \ ++ "addu %[" #IO1 "], %[" #IO1 "], %[" #I5 "] \n\t" \ ++ "subu %[" #IO2 "], %[" #IO2 "], %[" #I6 "] \n\t" \ ++ "subu %[" #IO3 "], %[" #IO3 "], %[" #I7 "] \n\t" + + // O - output + // I - input (macro doesn't change it) + #define INSERT_HALF_X2(O0, O1, \ + I0, I1) \ +- "ins %["#O0"], %["#I0"], 16, 16 \n\t" \ +- "ins %["#O1"], %["#I1"], 16, 16 \n\t" ++ "ins %[" #O0 "], %[" #I0 "], 16, 16 \n\t" \ ++ "ins %[" #O1 "], %[" #I1 "], 16, 16 \n\t" + + // O - output + // I - input (macro doesn't change it) + #define SRA_16(O0, O1, O2, O3, \ + I0, I1, I2, I3) \ +- "sra %["#O0"], %["#I0"], 16 \n\t" \ +- "sra %["#O1"], %["#I1"], 16 \n\t" \ +- "sra %["#O2"], %["#I2"], 16 \n\t" \ +- "sra %["#O3"], %["#I3"], 16 \n\t" ++ "sra %[" #O0 "], %[" #I0 "], 16 \n\t" \ ++ "sra %[" #O1 "], %[" #I1 "], 16 \n\t" \ ++ "sra %[" #O2 "], %[" #I2 "], 16 \n\t" \ ++ "sra %[" #O3 "], %[" #I3 "], 16 \n\t" + + // temp0[31..16 | 15..0] = temp8[31..16 | 15..0] + temp12[31..16 | 15..0] + // temp1[31..16 | 15..0] = temp8[31..16 | 15..0] - temp12[31..16 | 15..0] +@@ -96,22 +96,22 @@ + // I - input (macro doesn't change it) + #define SHIFT_R_SUM_X2(O0, O1, O2, O3, O4, O5, O6, O7, \ + I0, I1, I2, I3, I4, I5, I6, I7) \ +- "addq.ph %["#O0"], %["#I0"], %["#I4"] \n\t" \ +- "subq.ph %["#O1"], %["#I0"], %["#I4"] \n\t" \ +- "addq.ph %["#O2"], %["#I1"], %["#I5"] \n\t" \ +- "subq.ph %["#O3"], %["#I1"], %["#I5"] \n\t" \ +- "addq.ph %["#O4"], %["#I2"], %["#I6"] \n\t" \ +- "subq.ph %["#O5"], %["#I2"], %["#I6"] \n\t" \ +- "addq.ph %["#O6"], %["#I3"], %["#I7"] \n\t" \ +- "subq.ph %["#O7"], %["#I3"], %["#I7"] \n\t" \ +- "shra.ph %["#O0"], %["#O0"], 3 \n\t" \ +- "shra.ph %["#O1"], %["#O1"], 3 \n\t" \ +- "shra.ph %["#O2"], %["#O2"], 3 \n\t" \ +- "shra.ph %["#O3"], %["#O3"], 3 \n\t" \ +- "shra.ph %["#O4"], %["#O4"], 3 \n\t" \ +- "shra.ph %["#O5"], %["#O5"], 3 \n\t" \ +- "shra.ph %["#O6"], %["#O6"], 3 \n\t" \ +- "shra.ph %["#O7"], %["#O7"], 3 \n\t" ++ "addq.ph %[" #O0 "], %[" #I0 "], %[" #I4 "] \n\t" \ ++ "subq.ph %[" #O1 "], %[" #I0 "], %[" #I4 "] \n\t" \ ++ "addq.ph %[" #O2 "], %[" #I1 "], %[" #I5 "] \n\t" \ ++ "subq.ph %[" #O3 "], %[" #I1 "], %[" #I5 "] \n\t" \ ++ "addq.ph %[" #O4 "], %[" #I2 "], %[" #I6 "] \n\t" \ ++ "subq.ph %[" #O5 "], %[" #I2 "], %[" #I6 "] \n\t" \ ++ "addq.ph %[" #O6 "], %[" #I3 "], %[" #I7 "] \n\t" \ ++ "subq.ph %[" #O7 "], %[" #I3 "], %[" #I7 "] \n\t" \ ++ "shra.ph %[" #O0 "], %[" #O0 "], 3 \n\t" \ ++ "shra.ph %[" #O1 "], %[" #O1 "], 3 \n\t" \ ++ "shra.ph %[" #O2 "], %[" #O2 "], 3 \n\t" \ ++ "shra.ph %[" #O3 "], %[" #O3 "], 3 \n\t" \ ++ "shra.ph %[" #O4 "], %[" #O4 "], 3 \n\t" \ ++ "shra.ph %[" #O5 "], %[" #O5 "], 3 \n\t" \ ++ "shra.ph %[" #O6 "], %[" #O6 "], 3 \n\t" \ ++ "shra.ph %[" #O7 "], %[" #O7 "], 3 \n\t" + + // precrq.ph.w temp0, temp8, temp2 + // temp0 = temp8[31..16] | temp2[31..16] +@@ -123,14 +123,14 @@ + #define PACK_2_HALVES_TO_WORD(O0, O1, O2, O3, \ + IO0, IO1, IO2, IO3, \ + I0, I1, I2, I3) \ +- "precrq.ph.w %["#O0"], %["#I0"], %["#IO0"] \n\t" \ +- "precrq.ph.w %["#O1"], %["#I1"], %["#IO1"] \n\t" \ +- "ins %["#IO0"], %["#I0"], 16, 16 \n\t" \ +- "ins %["#IO1"], %["#I1"], 16, 16 \n\t" \ +- "precrq.ph.w %["#O2"], %["#I2"], %["#IO2"] \n\t" \ +- "precrq.ph.w %["#O3"], %["#I3"], %["#IO3"] \n\t" \ +- "ins %["#IO2"], %["#I2"], 16, 16 \n\t" \ +- "ins %["#IO3"], %["#I3"], 16, 16 \n\t" ++ "precrq.ph.w %[" #O0 "], %[" #I0 "], %[" #IO0 "] \n\t" \ ++ "precrq.ph.w %[" #O1 "], %[" #I1 "], %[" #IO1 "] \n\t" \ ++ "ins %[" #IO0 "], %[" #I0 "], 16, 16 \n\t" \ ++ "ins %[" #IO1 "], %[" #I1 "], 16, 16 \n\t" \ ++ "precrq.ph.w %[" #O2 "], %[" #I2 "], %[" #IO2 "] \n\t" \ ++ "precrq.ph.w %[" #O3 "], %[" #I3 "], %[" #IO3 "] \n\t" \ ++ "ins %[" #IO2 "], %[" #I2 "], 16, 16 \n\t" \ ++ "ins %[" #IO3 "], %[" #I3 "], 16, 16 \n\t" + + // preceu.ph.qbr temp0, temp8 + // temp0 = 0 | 0 | temp8[23..16] | temp8[7..0] +@@ -140,14 +140,14 @@ + // I - input (macro doesn't change it) + #define CONVERT_2_BYTES_TO_HALF(O0, O1, O2, O3, O4, O5, O6, O7, \ + I0, I1, I2, I3) \ +- "preceu.ph.qbr %["#O0"], %["#I0"] \n\t" \ +- "preceu.ph.qbl %["#O1"], %["#I0"] \n\t" \ +- "preceu.ph.qbr %["#O2"], %["#I1"] \n\t" \ +- "preceu.ph.qbl %["#O3"], %["#I1"] \n\t" \ +- "preceu.ph.qbr %["#O4"], %["#I2"] \n\t" \ +- "preceu.ph.qbl %["#O5"], %["#I2"] \n\t" \ +- "preceu.ph.qbr %["#O6"], %["#I3"] \n\t" \ +- "preceu.ph.qbl %["#O7"], %["#I3"] \n\t" ++ "preceu.ph.qbr %[" #O0 "], %[" #I0 "] \n\t" \ ++ "preceu.ph.qbl %[" #O1 "], %[" #I0 "] \n\t" \ ++ "preceu.ph.qbr %[" #O2 "], %[" #I1 "] \n\t" \ ++ "preceu.ph.qbl %[" #O3 "], %[" #I1 "] \n\t" \ ++ "preceu.ph.qbr %[" #O4 "], %[" #I2 "] \n\t" \ ++ "preceu.ph.qbl %[" #O5 "], %[" #I2 "] \n\t" \ ++ "preceu.ph.qbr %[" #O6 "], %[" #I3 "] \n\t" \ ++ "preceu.ph.qbl %[" #O7 "], %[" #I3 "] \n\t" + + // temp0[31..16 | 15..0] = temp0[31..16 | 15..0] + temp8[31..16 | 15..0] + // temp0[31..16 | 15..0] = temp0[31..16 <<(s) 7 | 15..0 <<(s) 7] +@@ -160,30 +160,30 @@ + #define STORE_SAT_SUM_X2(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7, \ + I0, I1, I2, I3, I4, I5, I6, I7, \ + I8, I9, I10, I11, I12, I13) \ +- "addq.ph %["#IO0"], %["#IO0"], %["#I0"] \n\t" \ +- "addq.ph %["#IO1"], %["#IO1"], %["#I1"] \n\t" \ +- "addq.ph %["#IO2"], %["#IO2"], %["#I2"] \n\t" \ +- "addq.ph %["#IO3"], %["#IO3"], %["#I3"] \n\t" \ +- "addq.ph %["#IO4"], %["#IO4"], %["#I4"] \n\t" \ +- "addq.ph %["#IO5"], %["#IO5"], %["#I5"] \n\t" \ +- "addq.ph %["#IO6"], %["#IO6"], %["#I6"] \n\t" \ +- "addq.ph %["#IO7"], %["#IO7"], %["#I7"] \n\t" \ +- "shll_s.ph %["#IO0"], %["#IO0"], 7 \n\t" \ +- "shll_s.ph %["#IO1"], %["#IO1"], 7 \n\t" \ +- "shll_s.ph %["#IO2"], %["#IO2"], 7 \n\t" \ +- "shll_s.ph %["#IO3"], %["#IO3"], 7 \n\t" \ +- "shll_s.ph %["#IO4"], %["#IO4"], 7 \n\t" \ +- "shll_s.ph %["#IO5"], %["#IO5"], 7 \n\t" \ +- "shll_s.ph %["#IO6"], %["#IO6"], 7 \n\t" \ +- "shll_s.ph %["#IO7"], %["#IO7"], 7 \n\t" \ +- "precrqu_s.qb.ph %["#IO0"], %["#IO1"], %["#IO0"] \n\t" \ +- "precrqu_s.qb.ph %["#IO2"], %["#IO3"], %["#IO2"] \n\t" \ +- "precrqu_s.qb.ph %["#IO4"], %["#IO5"], %["#IO4"] \n\t" \ +- "precrqu_s.qb.ph %["#IO6"], %["#IO7"], %["#IO6"] \n\t" \ +- "usw %["#IO0"], "XSTR(I13)"*"#I9"(%["#I8"]) \n\t" \ +- "usw %["#IO2"], "XSTR(I13)"*"#I10"(%["#I8"]) \n\t" \ +- "usw %["#IO4"], "XSTR(I13)"*"#I11"(%["#I8"]) \n\t" \ +- "usw %["#IO6"], "XSTR(I13)"*"#I12"(%["#I8"]) \n\t" ++ "addq.ph %[" #IO0 "], %[" #IO0 "], %[" #I0 "] \n\t" \ ++ "addq.ph %[" #IO1 "], %[" #IO1 "], %[" #I1 "] \n\t" \ ++ "addq.ph %[" #IO2 "], %[" #IO2 "], %[" #I2 "] \n\t" \ ++ "addq.ph %[" #IO3 "], %[" #IO3 "], %[" #I3 "] \n\t" \ ++ "addq.ph %[" #IO4 "], %[" #IO4 "], %[" #I4 "] \n\t" \ ++ "addq.ph %[" #IO5 "], %[" #IO5 "], %[" #I5 "] \n\t" \ ++ "addq.ph %[" #IO6 "], %[" #IO6 "], %[" #I6 "] \n\t" \ ++ "addq.ph %[" #IO7 "], %[" #IO7 "], %[" #I7 "] \n\t" \ ++ "shll_s.ph %[" #IO0 "], %[" #IO0 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO1 "], %[" #IO1 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO2 "], %[" #IO2 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO3 "], %[" #IO3 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO4 "], %[" #IO4 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO5 "], %[" #IO5 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO6 "], %[" #IO6 "], 7 \n\t" \ ++ "shll_s.ph %[" #IO7 "], %[" #IO7 "], 7 \n\t" \ ++ "precrqu_s.qb.ph %[" #IO0 "], %[" #IO1 "], %[" #IO0 "] \n\t" \ ++ "precrqu_s.qb.ph %[" #IO2 "], %[" #IO3 "], %[" #IO2 "] \n\t" \ ++ "precrqu_s.qb.ph %[" #IO4 "], %[" #IO5 "], %[" #IO4 "] \n\t" \ ++ "precrqu_s.qb.ph %[" #IO6 "], %[" #IO7 "], %[" #IO6 "] \n\t" \ ++ "usw %[" #IO0 "], "XSTR(I13)"*" #I9 "(%[" #I8 "]) \n\t" \ ++ "usw %[" #IO2 "], "XSTR(I13)"*" #I10 "(%[" #I8 "]) \n\t" \ ++ "usw %[" #IO4 "], "XSTR(I13)"*" #I11 "(%[" #I8 "]) \n\t" \ ++ "usw %[" #IO6 "], "XSTR(I13)"*" #I12 "(%[" #I8 "]) \n\t" + + #define OUTPUT_EARLY_CLOBBER_REGS_10() \ + : [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), [temp3]"=&r"(temp3), \ +diff --git a/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +index 9c9665f..46f207b 100644 +--- a/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +@@ -34,15 +34,15 @@ + G = G - t2 + kGCst; \ + B = B + kBCst; \ + __asm__ volatile ( \ +- "shll_s.w %["#R"], %["#R"], 9 \n\t" \ +- "shll_s.w %["#G"], %["#G"], 9 \n\t" \ +- "shll_s.w %["#B"], %["#B"], 9 \n\t" \ +- "precrqu_s.qb.ph %["#R"], %["#R"], $zero \n\t" \ +- "precrqu_s.qb.ph %["#G"], %["#G"], $zero \n\t" \ +- "precrqu_s.qb.ph %["#B"], %["#B"], $zero \n\t" \ +- "srl %["#R"], %["#R"], 24 \n\t" \ +- "srl %["#G"], %["#G"], 24 \n\t" \ +- "srl %["#B"], %["#B"], 24 \n\t" \ ++ "shll_s.w %[" #R "], %[" #R "], 9 \n\t" \ ++ "shll_s.w %[" #G "], %[" #G "], 9 \n\t" \ ++ "shll_s.w %[" #B "], %[" #B "], 9 \n\t" \ ++ "precrqu_s.qb.ph %[" #R "], %[" #R "], $zero \n\t" \ ++ "precrqu_s.qb.ph %[" #G "], %[" #G "], $zero \n\t" \ ++ "precrqu_s.qb.ph %[" #B "], %[" #B "], $zero \n\t" \ ++ "srl %[" #R "], %[" #R "], 24 \n\t" \ ++ "srl %[" #G "], %[" #G "], 24 \n\t" \ ++ "srl %[" #B "], %[" #B "], 24 \n\t" \ + : [R]"+r"(R), [G]"+r"(G), [B]"+r"(B) \ + : \ + ); \ +diff --git a/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +index 43f02cc..45a2200 100644 +--- a/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +@@ -39,12 +39,12 @@ + "addu %[temp5], %[temp0], %[temp1] \n\t" \ + "subu %[temp6], %[temp0], %[temp2] \n\t" \ + "addu %[temp7], %[temp0], %[temp4] \n\t" \ +-".if "#K" \n\t" \ ++".if " #K " \n\t" \ + "lbu %[temp0], 1(%[y]) \n\t" \ + ".endif \n\t" \ + "shll_s.w %[temp5], %[temp5], 9 \n\t" \ + "shll_s.w %[temp6], %[temp6], 9 \n\t" \ +-".if "#K" \n\t" \ ++".if " #K " \n\t" \ + "mul %[temp0], %[t_con_5], %[temp0] \n\t" \ + ".endif \n\t" \ + "shll_s.w %[temp7], %[temp7], 9 \n\t" \ +@@ -54,9 +54,9 @@ + "srl %[temp5], %[temp5], 24 \n\t" \ + "srl %[temp6], %[temp6], 24 \n\t" \ + "srl %[temp7], %[temp7], 24 \n\t" \ +- "sb %[temp5], "#R"(%[dst]) \n\t" \ +- "sb %[temp6], "#G"(%[dst]) \n\t" \ +- "sb %[temp7], "#B"(%[dst]) \n\t" \ ++ "sb %[temp5], " #R "(%[dst]) \n\t" \ ++ "sb %[temp6], " #G "(%[dst]) \n\t" \ ++ "sb %[temp7], " #B "(%[dst]) \n\t" \ + + #define ASM_CLOBBER_LIST() \ + : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), \ -- cgit v1.2.3 From 575a6f0f8a82c9b4b60f4904dc5aefd02d490431 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 19:26:29 +0200 Subject: gnu: binutils-vc4: Build with flex-2.6.1. * gnu/packages/embedded.scm (binutils-vc4)[native-inputs]: Use flex-2.6.1 and not flex. --- gnu/packages/embedded.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 3e1f87d749..222278009d 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -763,7 +763,7 @@ simulator.") (base32 "14b3h2ji740s8zq5vwm4qdcxs4aa4wxi6wb9di3bv1h39x14nyr9")))) ("texinfo" ,texinfo) - ("flex" ,flex) + ("flex" ,flex-2.6.1) ; A bug in flex prevents building with flex-2.6.3. ("bison" ,bison) ("guile-1.8" ,guile-1.8) ("which" ,base:which))) -- cgit v1.2.3 From 44cba47e93f3885ab039e7d171bc28c041246fd0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 21:06:46 +0200 Subject: gnu: wine: Build with flex-2.6.1. * gnu/packages/wine.scm (wine)[native-inputs]: Use flex-2.6.1 and not flex. --- gnu/packages/wine.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 4f6e76d58e..9c82e01d67 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Sou Bunnbu ;;; Copyright © 2016 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,7 +65,8 @@ (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) - ("flex" ,flex) + ; A bug in flex prevents building with flex-2.6.3. + ("flex" ,flex-2.6.1) ("bison" ,bison) ("perl" ,perl))) (inputs -- cgit v1.2.3 From e20dafd0a12e2f9098479e3087fb216d510cd058 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 22 Mar 2017 17:03:24 -0400 Subject: gnu: gpsbabel: Fix a build failure with GCC 5. * gnu/packages/gps.scm (gpsbabel)[arguments]: Add -fPIC to #:configure-flags. --- gnu/packages/gps.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index bc0f3ed115..0a9038b7a4 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -50,7 +50,10 @@ (arguments `(#:configure-flags '("--with-zlib=system" - "CXXFLAGS=-std=gnu++11") + ;; XXX Use -fPIC to work around build problems with Qt, GCC 5, and + ;; recent binutils: + ;; https://codereview.qt-project.org/#/c/111787/ + "CXXFLAGS=-std=gnu++11 -fPIC") #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure -- cgit v1.2.3 From 5302eba611d8eb333bfa0d5b7b7569f5d2553175 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 23:05:11 +0200 Subject: gnu: libffcall: Remove aarch64-linux from supported systems. * gnu/packages/libffcall.scm (libffcall)[supported-systems]: New field, remove aarch64-linux. [home-page]: Use https. --- gnu/packages/libffcall.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index 74d6b6347f..5e12c6b160 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -45,5 +45,6 @@ (description "GNU Libffcall is a collection of libraries that can be used to build foreign function call interfaces in embedded interpreters.") - (home-page "http://www.gnu.org/software/libffcall/") + (home-page "https://www.gnu.org/software/libffcall/") + (supported-systems (delete "aarch64-linux" %supported-systems)) (license l:gpl2+))) -- cgit v1.2.3 From d5ceeb5a2d1a44bda98c9ff44cf8d652d938a646 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 23 Mar 2017 07:32:00 +0200 Subject: gnu: scotch: Build with flex-2.6.1. * gnu/packages/maths.scm (scotch)[native-inputs]: Use flex-2.6.1 and not flex. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 166926da15..ec8316b5f5 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1799,7 +1799,7 @@ implemented in ANSI C, and MPI for communications.") (build-system gnu-build-system) (inputs `(("zlib" ,zlib) - ("flex" ,flex) + ("flex" ,flex-2.6.1) ; A bug in flex prevents building with flex-2.6.3. ("bison" ,bison))) (arguments `(#:phases -- cgit v1.2.3 From 8be563a5a39205d55fd39399e29a9272305b34c6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 23 Mar 2017 14:40:40 +0200 Subject: gnu: dtc: Build with flex-2.6.1. * gnu/packages/bootloaders.scm (dtc)[native-inputs]: Use flex-2.6.1 and not flex. --- gnu/packages/bootloaders.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index a3f436373d..98afc6a7c1 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -240,7 +240,7 @@ menu to select one of the installed operating systems.") (build-system gnu-build-system) (native-inputs `(("bison" ,bison) - ("flex" ,flex))) + ("flex" ,flex-2.6.1))) ; A bug in flex prevents building with flex-2.6.3. (arguments `(#:make-flags (list "CC=gcc" -- cgit v1.2.3 From cb4805e34c9997edca14743516b9a0fde6303d1c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 23 Mar 2017 15:37:24 +0100 Subject: gnu: gfortran: Change default version to gfortran-5. * gnu/packages/gcc.scm (gfortran): Point to gfortran-5. --- gnu/packages/gcc.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 9376679f14..eb7a81341c 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -401,7 +401,8 @@ Go. It also includes runtime support libraries for these languages.") "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update -;; the gcc-toolchain-* definitions accordingly. +;; the gcc-toolchain-* definitions and the gfortran definition +;; accordingly. (define-public gcc gcc-5) (define-public (make-libstdc++ gcc) @@ -521,9 +522,9 @@ as the 'native-search-paths' field." (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object - ;; that is not 'eq?' with GFORTRAN-4.9, and thus 'fold-packages' would - ;; report two gfortran@4.9 that are in fact identical. - gfortran-4.9) + ;; that is not 'eq?' with GFORTRAN-5, and thus 'fold-packages' would + ;; report two gfortran@5 that are in fact identical. + gfortran-5) (define-public gfortran-5 (custom-gcc gcc-5 "gfortran" '("fortran") -- cgit v1.2.3 From ce54f5db7d072244c115b4790987b6faca0031b1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 23 Mar 2017 16:34:17 +0100 Subject: gnu: gfortran-5: Move definition before "gfortran". This is a follow-up to commit cb4805e34c9997edca14743516b9a0fde6303d1c. * gnu/packages/gcc.scm (gfortran-5): Move definition. --- gnu/packages/gcc.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index eb7a81341c..4ca46242f6 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -519,6 +519,10 @@ as the 'native-search-paths' field." (custom-gcc gcc-4.9 "gfortran" '("fortran") %generic-search-paths)) +(define-public gfortran-5 + (custom-gcc gcc-5 "gfortran" '("fortran") + %generic-search-paths)) + (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object @@ -526,10 +530,6 @@ as the 'native-search-paths' field." ;; report two gfortran@5 that are in fact identical. gfortran-5) -(define-public gfortran-5 - (custom-gcc gcc-5 "gfortran" '("fortran") - %generic-search-paths)) - (define-public gccgo-4.9 (custom-gcc gcc-4.9 "gccgo" '("go") %generic-search-paths -- cgit v1.2.3 From 096f0080147c8a1a0285416f5ff0ecfc353414b6 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 23 Mar 2017 10:23:04 +0000 Subject: gnu: rcs: Fix build against gcc-5.4.0. * gnu/local.mk (dist_patch_DATA): Add patch. * gnu/packages/patches/rcs-5.9.4-noreturn.patch: New file. * gnu/packages/version-control.scm (rcs)[source]: Applied patch. Signed-off-by: Marius Bakke --- gnu/local.mk | 1 + gnu/packages/patches/rcs-5.9.4-noreturn.patch | 94 +++++++++++++++++++++++++++ gnu/packages/version-control.scm | 3 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/rcs-5.9.4-noreturn.patch diff --git a/gnu/local.mk b/gnu/local.mk index f02967233f..1fa5a339ac 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -891,6 +891,7 @@ dist_patch_DATA = \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/ratpoison-shell.patch \ + %D%/packages/patches/rcs-5.9.4-noreturn.patch \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-7.0-mingw.patch \ diff --git a/gnu/packages/patches/rcs-5.9.4-noreturn.patch b/gnu/packages/patches/rcs-5.9.4-noreturn.patch new file mode 100644 index 0000000000..0c0c044ed5 --- /dev/null +++ b/gnu/packages/patches/rcs-5.9.4-noreturn.patch @@ -0,0 +1,94 @@ +Builds with GCC-5 failed due to misplaced `_Noreturn (__attribute__((noreturn)))` +statement. + +Patch copied from upstream source repository: + +http://git.savannah.gnu.org/cgit/rcs.git/commit/?h=p&id=260704a9164dd34cf7128d6b1e88075ffa3be054 + +Upstream bug URL: + +https://savannah.gnu.org/bugs/?49568 + +commit 260704a9164dd34cf7128d6b1e88075ffa3be054 +Author: Thien-Thi Nguyen +Date: Thu Jun 18 21:25:53 2015 +0200 + + [C slog] Move ‘exiting’ to beginning of func decl. + + Apparently, ‘gcc --std=c11’ does not abide the ‘exiting’ + attribute appearing at the end of the func decl. + Reported by Romain Francoise. + See also . + + * src/b-complain.h (generic_fatal, fatal_syntax, fatal_sys) + * src/b-fb.h (Ierror, Oerror) + * src/base.h (unexpected_EOF, thank_you_and_goodnight): + Move ‘exiting’ attribute to beginning of func decl. + +diff --git a/src/b-complain.h b/src/b-complain.h +index 0ffd157..ea0ffc5 100644 +--- a/src/b-complain.h ++++ b/src/b-complain.h +@@ -32,12 +32,14 @@ extern void generic_warn (char const *who, char const *fmt, ...) + printf_string (2, 3); + extern void generic_error (char const *who, char const *fmt, ...) + printf_string (2, 3); ++exiting + extern void generic_fatal (char const *who, char const *fmt, ...) +- printf_string (2, 3) exiting; ++ printf_string (2, 3); ++exiting + extern void fatal_syntax (size_t lno, char const *fmt, ...) +- printf_string (2, 3) exiting; +-extern void fatal_sys (char const *who) +- exiting; ++ printf_string (2, 3); ++exiting ++extern void fatal_sys (char const *who); + + /* Idioms. Here, prefix P stands for "program" (general operation); + M for "manifestation"; R for "repository". */ +diff --git a/src/b-fb.h b/src/b-fb.h +index c9850e7..bf5eaf8 100644 +--- a/src/b-fb.h ++++ b/src/b-fb.h +@@ -21,9 +21,11 @@ + */ + + extern int change_mode (int fd, mode_t mode); +-extern void Ierror (void) exiting; ++exiting ++extern void Ierror (void); + extern void testIerror (FILE *f); +-extern void Oerror (void) exiting; ++exiting ++extern void Oerror (void); + extern void testOerror (FILE *o); + extern FILE *fopen_safer (char const *filename, char const *type); + extern void Ozclose (FILE **p); +diff --git a/src/base.h b/src/base.h +index 163ee09..5e7a9f8 100644 +--- a/src/base.h ++++ b/src/base.h +@@ -755,8 +755,8 @@ int dorewrite (bool lockflag, int changed); + int donerewrite (int changed, time_t newRCStime); + void ORCSclose (void); + void ORCSerror (void); +-void unexpected_EOF (void) +- exiting; ++exiting ++void unexpected_EOF (void); + void initdiffcmd (struct diffcmd *dc); + int getdiffcmd (struct fro *finfile, bool delimiter, + FILE *foutfile, struct diffcmd *dc); +@@ -831,8 +831,8 @@ char const *date2str (char const date[datesize], + char datebuf[datesize + zonelenmax]); + + /* rcsutil */ +-void thank_you_and_goodnight (int const how) +- exiting; ++exiting ++void thank_you_and_goodnight (int const how); + /* These are for ‘thank_you_and_goodnight’. */ + #define TYAG_ORCSERROR (1 << 3) + #define TYAG_DIRTMPUNLINK (1 << 2) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 71e499085f..9136ea30a9 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -794,7 +794,8 @@ projects, from individuals to large-scale enterprise operations.") version ".tar.xz")) (sha256 (base32 - "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86")))) + "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86")) + (patches (search-patches "rcs-5.9.4-noreturn.patch")))) (build-system gnu-build-system) (native-inputs `(("ed" ,ed))) (home-page "http://www.gnu.org/software/rcs/") -- cgit v1.2.3 From 7fdca77e007f0838ecd32b044827678f2b345ff0 Mon Sep 17 00:00:00 2001 From: rennes Date: Thu, 23 Mar 2017 14:29:26 -0400 Subject: gnu: ustr: Fix build with GCC 5. * gnu/packages/patches/ustr-fix-build-with-gcc-5.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/textutils.scm (ustr)[source]: Use patch. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 + .../patches/ustr-fix-build-with-gcc-5.patch | 880 +++++++++++++++++++++ gnu/packages/textutils.scm | 4 +- 3 files changed, 884 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/ustr-fix-build-with-gcc-5.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1fa5a339ac..c9e3131c08 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -961,6 +961,7 @@ dist_patch_DATA = \ %D%/packages/patches/unzip-initialize-symlink-flag.patch \ %D%/packages/patches/unzip-overflow-long-fsize.patch \ %D%/packages/patches/unzip-remove-build-date.patch \ + %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ %D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/util-linux-CVE-2017-2616.patch \ %D%/packages/patches/upower-builddir.patch \ diff --git a/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch b/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch new file mode 100644 index 0000000000..f301d44055 --- /dev/null +++ b/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch @@ -0,0 +1,880 @@ +This patch allows to compile the 'ustr' package with gcc-5. + +Patch copied from Debian: + +https://anonscm.debian.org/cgit/users/zito-guest/pkg-ustr.git/commit/?id=fb2528fef188b4de51a27c4f688042c36d2d7a18 + +From: Václav Ovsík +Subject: [PATCH] fixes/gnu-inline + +This patch adds `__attribute__ ((gnu_inline))' into prototype macros +before `inline' to force GNU89 behaviour of inline functions +in C99 mode. +See http://www.gnu.org/software/gcc/gcc-5/porting_to.html + +Signed-off-by: Václav Ovsík + +--- + ustr-b-dbg-code.c | 8 ++++---- + ustr-b-opt-code.c | 8 ++++---- + ustr-cmp-dbg-code.c | 8 ++++---- + ustr-cmp-opt-code.c | 8 ++++---- + ustr-compiler.h | 4 ++-- + ustr-fmt-dbg-code.c | 8 ++++---- + ustr-fmt-opt-code.c | 8 ++++---- + ustr-ins-dbg-code.c | 8 ++++---- + ustr-ins-opt-code.c | 8 ++++---- + ustr-io-dbg-code.c | 8 ++++---- + ustr-io-opt-code.c | 8 ++++---- + ustr-main-dbg-code.c | 2 +- + ustr-main-opt-code.c | 2 +- + ustr-parse-dbg-code.c | 8 ++++---- + ustr-parse-opt-code.c | 8 ++++---- + ustr-pool-dbg-code.c | 8 ++++---- + ustr-pool-opt-code.c | 8 ++++---- + ustr-replace-dbg-code.c | 8 ++++---- + ustr-replace-opt-code.c | 8 ++++---- + ustr-sc-dbg-code.c | 8 ++++---- + ustr-sc-opt-code.c | 8 ++++---- + ustr-set-dbg-code.c | 8 ++++---- + ustr-set-opt-code.c | 8 ++++---- + ustr-split-dbg-code.c | 8 ++++---- + ustr-split-opt-code.c | 8 ++++---- + ustr-spn-dbg-code.c | 8 ++++---- + ustr-spn-opt-code.c | 8 ++++---- + ustr-srch-dbg-code.c | 8 ++++---- + ustr-srch-opt-code.c | 8 ++++---- + ustr-sub-dbg-code.c | 8 ++++---- + ustr-sub-opt-code.c | 8 ++++---- + ustr-utf8-dbg-code.c | 8 ++++---- + ustr-utf8-opt-code.c | 8 ++++---- + 33 files changed, 124 insertions(+), 124 deletions(-) + +diff --git a/ustr-b-dbg-code.c b/ustr-b-dbg-code.c +index 4a7fdac..60e383e 100644 +--- a/ustr-b-dbg-code.c ++++ b/ustr-b-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-b.h" +diff --git a/ustr-b-opt-code.c b/ustr-b-opt-code.c +index 45e9e87..4011898 100644 +--- a/ustr-b-opt-code.c ++++ b/ustr-b-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-b.h" +diff --git a/ustr-cmp-dbg-code.c b/ustr-cmp-dbg-code.c +index 7b8af33..4c3adc2 100644 +--- a/ustr-cmp-dbg-code.c ++++ b/ustr-cmp-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-cmp.h" +diff --git a/ustr-cmp-opt-code.c b/ustr-cmp-opt-code.c +index 2076d1c..ff5d02c 100644 +--- a/ustr-cmp-opt-code.c ++++ b/ustr-cmp-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-cmp.h" +diff --git a/ustr-compiler.h b/ustr-compiler.h +index 9e71276..38ae026 100644 +--- a/ustr-compiler.h ++++ b/ustr-compiler.h +@@ -92,7 +92,7 @@ + #endif + + #if USTR_CONF_COMPILE_USE_INLINE +-#define USTR__INLINE inline ++#define USTR__INLINE __attribute__ ((gnu_inline)) inline + #else + #define USTR__INLINE /* no inline */ + #endif +@@ -123,7 +123,7 @@ + # if USTR_CONF_INCLUDE_CODEONLY_HEADERS + # define USTR_CONF_II_PROTO static USTR__INLINE + # else +-# define USTR_CONF_II_PROTO extern inline ++# define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + # endif + #endif + +diff --git a/ustr-fmt-dbg-code.c b/ustr-fmt-dbg-code.c +index 4249bb1..1f147a0 100644 +--- a/ustr-fmt-dbg-code.c ++++ b/ustr-fmt-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-fmt.h" +diff --git a/ustr-fmt-opt-code.c b/ustr-fmt-opt-code.c +index c73e375..989b29f 100644 +--- a/ustr-fmt-opt-code.c ++++ b/ustr-fmt-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-fmt.h" +diff --git a/ustr-ins-dbg-code.c b/ustr-ins-dbg-code.c +index 39f9bba..4c6d5ea 100644 +--- a/ustr-ins-dbg-code.c ++++ b/ustr-ins-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,5 +17,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-ins.h" +diff --git a/ustr-ins-opt-code.c b/ustr-ins-opt-code.c +index 1aca827..859b44d 100644 +--- a/ustr-ins-opt-code.c ++++ b/ustr-ins-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,5 +17,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-ins.h" +diff --git a/ustr-io-dbg-code.c b/ustr-io-dbg-code.c +index c361c93..d42e43f 100644 +--- a/ustr-io-dbg-code.c ++++ b/ustr-io-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-io.h" +diff --git a/ustr-io-opt-code.c b/ustr-io-opt-code.c +index b1b4525..ae8de87 100644 +--- a/ustr-io-opt-code.c ++++ b/ustr-io-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-io.h" +diff --git a/ustr-main-dbg-code.c b/ustr-main-dbg-code.c +index 4b821ce..abaa53a 100644 +--- a/ustr-main-dbg-code.c ++++ b/ustr-main-dbg-code.c +@@ -7,5 +7,5 @@ + #define USTR_CONF_E_PROTO extern + #define USTR_CONF_I_PROTO + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" +diff --git a/ustr-main-opt-code.c b/ustr-main-opt-code.c +index 233fb60..7ef6e98 100644 +--- a/ustr-main-opt-code.c ++++ b/ustr-main-opt-code.c +@@ -7,5 +7,5 @@ + #define USTR_CONF_E_PROTO extern + #define USTR_CONF_I_PROTO + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" +diff --git a/ustr-parse-dbg-code.c b/ustr-parse-dbg-code.c +index c9653af..6e1707d 100644 +--- a/ustr-parse-dbg-code.c ++++ b/ustr-parse-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-parse.h" +diff --git a/ustr-parse-opt-code.c b/ustr-parse-opt-code.c +index 0c8df4d..fc96db2 100644 +--- a/ustr-parse-opt-code.c ++++ b/ustr-parse-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-parse.h" +diff --git a/ustr-pool-dbg-code.c b/ustr-pool-dbg-code.c +index adf7519..957f9ca 100644 +--- a/ustr-pool-dbg-code.c ++++ b/ustr-pool-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-pool.h" +diff --git a/ustr-pool-opt-code.c b/ustr-pool-opt-code.c +index 2b0367c..c1b2413 100644 +--- a/ustr-pool-opt-code.c ++++ b/ustr-pool-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-pool.h" +diff --git a/ustr-replace-dbg-code.c b/ustr-replace-dbg-code.c +index fe02187..90531ac 100644 +--- a/ustr-replace-dbg-code.c ++++ b/ustr-replace-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-set.h" + #include "ustr-srch.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-replace.h" +diff --git a/ustr-replace-opt-code.c b/ustr-replace-opt-code.c +index e76b3bb..6232753 100644 +--- a/ustr-replace-opt-code.c ++++ b/ustr-replace-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-set.h" + #include "ustr-srch.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-replace.h" +diff --git a/ustr-sc-dbg-code.c b/ustr-sc-dbg-code.c +index 0011c63..d7ce317 100644 +--- a/ustr-sc-dbg-code.c ++++ b/ustr-sc-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-spn.h" + #include "ustr-utf8.h" +@@ -18,5 +18,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-sc.h" +diff --git a/ustr-sc-opt-code.c b/ustr-sc-opt-code.c +index 7cb81ba..4a97ed9 100644 +--- a/ustr-sc-opt-code.c ++++ b/ustr-sc-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-spn.h" + #include "ustr-utf8.h" +@@ -18,5 +18,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-sc.h" +diff --git a/ustr-set-dbg-code.c b/ustr-set-dbg-code.c +index 023875a..cf77071 100644 +--- a/ustr-set-dbg-code.c ++++ b/ustr-set-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,5 +17,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-set.h" +diff --git a/ustr-set-opt-code.c b/ustr-set-opt-code.c +index e726888..34dcaf6 100644 +--- a/ustr-set-opt-code.c ++++ b/ustr-set-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,5 +17,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-set.h" +diff --git a/ustr-split-dbg-code.c b/ustr-split-dbg-code.c +index 03e5ca5..e40d2a5 100644 +--- a/ustr-split-dbg-code.c ++++ b/ustr-split-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-set.h" + #include "ustr-spn.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-split.h" +diff --git a/ustr-split-opt-code.c b/ustr-split-opt-code.c +index d64e300..74f4b1c 100644 +--- a/ustr-split-opt-code.c ++++ b/ustr-split-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-set.h" + #include "ustr-spn.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-split.h" +diff --git a/ustr-spn-dbg-code.c b/ustr-spn-dbg-code.c +index ff97432..b0b09d4 100644 +--- a/ustr-spn-dbg-code.c ++++ b/ustr-spn-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-srch.h" + #include "ustr-utf8.h" +@@ -18,5 +18,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-spn.h" +diff --git a/ustr-spn-opt-code.c b/ustr-spn-opt-code.c +index 3ff0a07..92c5ccc 100644 +--- a/ustr-spn-opt-code.c ++++ b/ustr-spn-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-srch.h" + #include "ustr-utf8.h" +@@ -18,5 +18,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-spn.h" +diff --git a/ustr-srch-dbg-code.c b/ustr-srch-dbg-code.c +index 40e4dbf..0f4da21 100644 +--- a/ustr-srch-dbg-code.c ++++ b/ustr-srch-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-cmp-internal.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,6 +17,6 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-srch.h" + +diff --git a/ustr-srch-opt-code.c b/ustr-srch-opt-code.c +index 635464d..8dde13d 100644 +--- a/ustr-srch-opt-code.c ++++ b/ustr-srch-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-cmp-internal.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS +@@ -17,6 +17,6 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-srch.h" + +diff --git a/ustr-sub-dbg-code.c b/ustr-sub-dbg-code.c +index f994716..b1712e6 100644 +--- a/ustr-sub-dbg-code.c ++++ b/ustr-sub-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #include "ustr-ins.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-sub.h" +diff --git a/ustr-sub-opt-code.c b/ustr-sub-opt-code.c +index 8cdb4eb..91780c7 100644 +--- a/ustr-sub-opt-code.c ++++ b/ustr-sub-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #include "ustr-fmt.h" + #include "ustr-ins.h" +@@ -19,5 +19,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-sub.h" +diff --git a/ustr-utf8-dbg-code.c b/ustr-utf8-dbg-code.c +index 2666fc2..30786e9 100644 +--- a/ustr-utf8-dbg-code.c ++++ b/ustr-utf8-dbg-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf-debug.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-utf8.h" +diff --git a/ustr-utf8-opt-code.c b/ustr-utf8-opt-code.c +index 91fa754..abdf4c0 100644 +--- a/ustr-utf8-opt-code.c ++++ b/ustr-utf8-opt-code.c +@@ -3,11 +3,11 @@ + #include "ustr-conf.h" + #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF + #define USTR_CONF_e_PROTO extern +-#define USTR_CONF_i_PROTO extern inline ++#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_E_PROTO extern +-#define USTR_CONF_I_PROTO extern inline ++#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline + #define USTR_CONF_EI_PROTO extern +-#define USTR_CONF_II_PROTO extern inline ++#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline + #include "ustr-main.h" + #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS + #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1 +@@ -16,5 +16,5 @@ + #undef USTR_CONF_I_PROTO + #define USTR_CONF_I_PROTO + #undef USTR_CONF_II_PROTO +-#define USTR_CONF_II_PROTO inline ++#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline + #include "ustr-utf8.h" +-- +tg: (b148fb7..) fixes/gnu-inline (depends on: upstream) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 9e6309a0ed..dbd71c2e8f 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Eric Bavier +;;; Copyright © 2017 Rene Saavedra ;;; ;;; This file is part of GNU Guix. ;;; @@ -232,7 +233,8 @@ input bits thoroughly but are not suitable for cryptography.") "/ustr-" version ".tar.bz2")) (sha256 (base32 - "1i623ygdj7rkizj7985q9d6vj5amwg686aqb5j3ixpkqkyp6xbrx")))) + "1i623ygdj7rkizj7985q9d6vj5amwg686aqb5j3ixpkqkyp6xbrx")) + (patches (search-patches "ustr-fix-build-with-gcc-5.patch")))) (build-system gnu-build-system) (arguments `(#:make-flags -- cgit v1.2.3 From 77ab6983a19ef307558ab2607920158d6bb94ba8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Mar 2017 00:12:00 +0100 Subject: gnu: devil: Update to 1.8.0. * gnu/packages/patches/devil-CVE-2009-3994.patch, gnu/packages/patches/devil-fix-libpng.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/image.scm (devil): Update to 1.8.0. [source]: Remove patches and snippet. [build-system]: Change to CMAKE-BUILD-SYSTEM. [arguments]: Disable tests. Remove #:configure-flags and add a 'change-directory' phase. Remove 'fix-tests' phase. [inputs]: Change LIBJPEG to LIBJPEG-TURBO. --- gnu/local.mk | 2 -- gnu/packages/image.scm | 34 +++++++----------------- gnu/packages/patches/devil-CVE-2009-3994.patch | 24 ----------------- gnu/packages/patches/devil-fix-libpng.patch | 36 -------------------------- 4 files changed, 9 insertions(+), 87 deletions(-) delete mode 100644 gnu/packages/patches/devil-CVE-2009-3994.patch delete mode 100644 gnu/packages/patches/devil-fix-libpng.patch diff --git a/gnu/local.mk b/gnu/local.mk index c9e3131c08..6df3e58465 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -526,8 +526,6 @@ dist_patch_DATA = \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ - %D%/packages/patches/devil-CVE-2009-3994.patch \ - %D%/packages/patches/devil-fix-libpng.patch \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ %D%/packages/patches/diffutils-gets-undeclared.patch \ %D%/packages/patches/doc++-include-directives.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 51c465a0cc..51b09680a9 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -860,44 +860,28 @@ and XMP metadata of images in various formats.") (define-public devil (package (name "devil") - (version "1.7.8") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/openil/" "DevIL-" version ".tar.gz")) (sha256 (base32 - "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8")) - ;; Backported from upstream: - ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch - (patches (search-patches "devil-fix-libpng.patch" - "devil-CVE-2009-3994.patch")) - (modules '((guix build utils))) - (snippet - ;; Fix old lcms include directives and lib flags. - '(substitute* '("configure" "src-IL/src/il_profiles.c") - (("-llcms") "-llcms2") - (("lcms/lcms\\.h") "lcms2/lcms2.h") - (("lcms\\.h") "lcms2.h"))))) - (build-system gnu-build-system) + "02dpzvi493r09c9hfjnk54nladl3qw55iqkkg18g12fxwwz9fx80")))) + (build-system cmake-build-system) (arguments - '(#:configure-flags '("--enable-ILUT=yes") ; build utility library + '(;; XXX: Not supported in the released CMakeLists.txt. + ;; Enable this for > 1.8.0. + #:tests? #f #:phases (modify-phases %standard-phases - (add-before 'check 'fix-tests - (lambda* (#:key inputs #:allow-other-keys) - ;; Fix hard-coded /bin/bash reference. - (substitute* '("test/Makefile") - (("TESTS_ENVIRONMENT = /bin/bash") - (string-append "TESTS_ENVIRONMENT = " - (assoc-ref inputs "bash") - "/bin/bash"))) - #t))))) + (add-before 'configure 'change-directory + (lambda _ (chdir "DevIL") #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("lcms" ,lcms) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libmng" ,libmng) ("libpng" ,libpng) ("libtiff" ,libtiff) diff --git a/gnu/packages/patches/devil-CVE-2009-3994.patch b/gnu/packages/patches/devil-CVE-2009-3994.patch deleted file mode 100644 index e009a95c44..0000000000 --- a/gnu/packages/patches/devil-CVE-2009-3994.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix CVE-2009-3994 (buffer overflow in GetUID() allows remote DOS or -arbitrary code execution via crafted DICOM file). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3994 - -Copied from Fedora -https://pkgs.fedoraproject.org/cgit/rpms/DevIL.git/tree/DevIL-1.7.8-CVE-2009-3994.patch?id=9c656a75393d6c455aef9f4968fbbee9c53f4fdb - -diff -up devil-1.7.8/src-IL/src/il_dicom.c~ devil-1.7.8/src-IL/src/il_dicom.c ---- devil-1.7.8/src-IL/src/il_dicom.c~ 2009-03-08 08:10:09.000000000 +0100 -+++ devil-1.7.8/src-IL/src/il_dicom.c 2009-12-03 12:07:45.000000000 +0100 -@@ -427,9 +427,11 @@ ILboolean GetUID(ILubyte *UID) - return IL_FALSE; - - ValLen = GetLittleUShort(); -+ if (ValLen > 64) -+ return IL_FALSE; - if (iread(UID, ValLen, 1) != 1) - return IL_FALSE; -- UID[64] = 0; // Just to make sure that our string is terminated. -+ UID[ValLen] = 0; // Just to make sure that our string is terminated. - - return IL_TRUE; - } diff --git a/gnu/packages/patches/devil-fix-libpng.patch b/gnu/packages/patches/devil-fix-libpng.patch deleted file mode 100644 index a8e90333a3..0000000000 --- a/gnu/packages/patches/devil-fix-libpng.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 724194d7a9a91221a564579f64bdd6f0abd64219 Mon Sep 17 00:00:00 2001 -From: Noah Mayr -Date: Sun, 1 Mar 2015 10:10:56 +0100 -Subject: [PATCH] Fixed deprecated libpng API usage. - ---- - src-IL/src/il_icon.c | 2 +- - src-IL/src/il_png.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src-IL/src/il_icon.c b/src-IL/src/il_icon.c -index 2ccb1a3..fd9475d 100644 ---- a/src-IL/src/il_icon.c -+++ b/src-IL/src/il_icon.c -@@ -525,7 +525,7 @@ ILboolean ico_readpng_get_image(ICOIMAGE *Icon, ILdouble display_exponent) - - // Expand low-bit-depth grayscale images to 8 bits - if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { -- png_set_gray_1_2_4_to_8(ico_png_ptr); -+ png_set_expand_gray_1_2_4_to_8(ico_png_ptr); - } - - // Expand RGB images with transparency to full alpha channels -diff --git a/src-IL/src/il_png.c b/src-IL/src/il_png.c -index da9517d..2866508 100644 ---- a/src-IL/src/il_png.c -+++ b/src-IL/src/il_png.c -@@ -277,7 +277,7 @@ ILboolean readpng_get_image(ILdouble display_exponent) - - // Expand low-bit-depth grayscale images to 8 bits - if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { -- png_set_gray_1_2_4_to_8(png_ptr); -+ png_set_expand_gray_1_2_4_to_8(png_ptr); - } - - // Expand RGB images with transparency to full alpha channels -- cgit v1.2.3 From 97b7201f990a5c472a57ceab238c9fc56e12067e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Mar 2017 21:22:52 +0300 Subject: gnu: tcc: Remove aarch64-linux from %supported-systems. * gnu/packages/c.scm (tcc)[supported-systems]: Remove aarch64-linux from the %supported-systems. --- gnu/packages/c.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index d5b6631506..58bdb3e672 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -28,7 +28,8 @@ #:use-module (gnu packages flex) #:use-module (gnu packages perl) #:use-module (gnu packages texinfo) - #:use-module (gnu packages guile)) + #:use-module (gnu packages guile) + #:use-module (srfi srfi-1)) (define-public tcc (package @@ -62,7 +63,8 @@ "/lib")) #:test-target "test")) ;; Fails to build on MIPS: "Unsupported CPU" - (supported-systems (delete "mips64el-linux" %supported-systems)) + (supported-systems (fold delete %supported-systems + '("mips64el-linux" "aarch64-linux"))) (synopsis "Tiny and fast C compiler") (description "TCC, also referred to as \"TinyCC\", is a small and fast C compiler -- cgit v1.2.3 From 6a052473aafcc91063609b045273fe07aad5c313 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Mar 2017 21:30:25 +0300 Subject: gnu: pcc: Remove aarch64-linux from %supported-systems. * gnu/packages/c.scm (pcc)[supported-systems]: New field. --- gnu/packages/c.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 58bdb3e672..d15d35e68d 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -159,6 +159,7 @@ standard.") "PCC is a portable C compiler. The project goal is to write a C99 compiler while still keeping it small, simple, fast and understandable.") (home-page "http://pcc.ludd.ltu.se") + (supported-systems (delete "aarch64-linux" %supported-systems)) ;; PCC incorporates code under various BSD licenses; for new code bsd-2 is ;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details. (license (list license:bsd-2 license:bsd-3)))) -- cgit v1.2.3 From ac7a8f1ff82a5d3eb0d215721f1995c192a70f02 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Mar 2017 23:19:17 +0300 Subject: gnu: xorg-server-xwayland: Add missing input. * gnu/packages/xorg.scm (xorg-server-xwayland)[inputs]: Remove libepoxy, add wayland-protocols. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index def1bbbb11..003f0f4234 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5135,8 +5135,8 @@ draggable titlebars and borders.") (inherit xorg-server) (name "xorg-server-xwayland") (inputs - `(("libepoxy" ,libepoxy) - ("wayland" ,wayland) + `(("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols) ,@(package-inputs xorg-server))) (arguments (substitute-keyword-arguments (package-arguments xorg-server) -- cgit v1.2.3 From d1e3f59c9b8d1be79eded04fe23cceb56b4372f0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Mar 2017 23:28:54 +0100 Subject: gnu: coreutils: Patch 'cut' unit test on ARM. Fixes . * gnu/packages/patches/coreutils-cut-huge-range-test.patch: New file. * gnu/packages/base.scm (coreutils)[native-inputs]: Add it as an input. [arguments] <#:phases>: On ARM, add 'patch-cut-test' phase. * gnu/local.mk (dist_patch_DATA): Add 'coreutils-cut-huge-range-test.patch'. --- gnu/local.mk | 1 + gnu/packages/base.scm | 31 +++++++++++++++++++--- .../patches/coreutils-cut-huge-range-test.patch | 22 +++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/coreutils-cut-huge-range-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6df3e58465..ba908cd4aa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -514,6 +514,7 @@ dist_patch_DATA = \ %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/coreutils-cut-huge-range-test.patch \ %D%/packages/patches/coreutils-fix-cross-compilation.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index ba9c820efa..2a6f6a43ed 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -307,9 +307,17 @@ used to apply commands with arbitrarily long arguments.") ;; copy of help2man. However, don't pass it when cross-compiling since ;; that would lead it to try to run programs to get their '--help' output ;; for help2man. - (if (%current-target-system) - '() - `(("perl" ,perl)))) + `(,@(if (%current-target-system) + '() + `(("perl" ,perl))) + + ;; Apply this patch only on ARM to avoid a full rebuild. + ;; TODO: Move to 'patches' in the next update cycle. + ,@(if (string-prefix? "arm" (or (%current-target-system) + (%current-system))) + `(("cut-test.patch" + ,(search-patch "coreutils-cut-huge-range-test.patch"))) + '()))) (outputs '("out" "debug")) (arguments `(#:parallel-build? #f ; help2man may be called too early @@ -328,7 +336,22 @@ used to apply commands with arbitrarily long arguments.") (substitute* (find-files "tests" "\\.sh$") (("#!/bin/sh") (format #f "#!~a/bin/sh" bash))))) - %standard-phases))) + + ,@(if (string-prefix? "arm" (or (%current-target-system) + (%current-system))) + '((alist-cons-before + 'build 'patch-cut-test + (lambda* (#:key inputs native-inputs + #:allow-other-keys) + (let ((patch (or (assoc-ref inputs + "cut-test.patch") + (assoc-ref native-inputs + "cut-test.patch")))) + (zero? + (system* "patch" "-p1" "--force" + "--input" patch)))) + %standard-phases)) + '(%standard-phases))))) (synopsis "Core GNU utilities (file, text, shell)") (description "GNU Coreutils includes all of the basic command-line tools that are diff --git a/gnu/packages/patches/coreutils-cut-huge-range-test.patch b/gnu/packages/patches/coreutils-cut-huge-range-test.patch new file mode 100644 index 0000000000..0be2cef2b8 --- /dev/null +++ b/gnu/packages/patches/coreutils-cut-huge-range-test.patch @@ -0,0 +1,22 @@ +This patch fixes 100% reproducible test failures on arm-linux-gnueabihf in our +the build environment chroot, as reported at . +It is a followup to this upstream patch: + + commit 28803c8a3144d5d4363cdbd148bbe067af1a67c2 + Author: Pádraig Brady + Date: Fri Mar 3 00:25:54 2017 -0800 + + tests: avoid a spurious failure on older debian + +... which appeared to be insufficient. + +--- a/tests/misc/cut-huge-range.sh ++++ b/tests/misc/cut-huge-range.sh +@@ -22,6 +22,7 @@ getlimits_ + + vm=$(get_min_ulimit_v_ cut -b1 /dev/null) \ + || skip_ "this shell lacks ulimit support" ++vm=$(($vm + $(getconf PAGESIZE))) # avoid spurious failures + + # sed script to subtract one from the input. + # Each input line should consist of a positive decimal number. -- cgit v1.2.3 From ff4dc16eac6c15dfa2bc0ef92ea3b6b9f29d0680 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 07:08:27 +0200 Subject: gnu: aseprite: Update to 1.1.13. * gnu/packages/game-development.scm (aseprite): Update to 1.1.13. [source]: Switch to release archive. --- gnu/packages/game-development.scm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 6525f94304..f39c9d444b 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -457,18 +457,16 @@ etc.") (define-public aseprite (package (name "aseprite") - (version "1.1.1") - ;; The release tarball isn't good enough because it's missing some - ;; necessary code that is only in git submodules. + (version "1.1.13") + ;; TODO: Unbundle third party software. (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aseprite/aseprite.git") - (commit "v1.1.1") - (recursive? #t))) + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/aseprite/aseprite" + "/releases/download/v" version + "/Aseprite-v" version "-Source.zip")) (sha256 (base32 - "1yr0l3bc68lyrffrzxgw98zznv8yz5ldl98lyvp6s5grny4s4jyk")))) + "0sm5vrrinpj423cpnlrczknjnykrn6q8c5qn2fmg5v22cv70dwzl")))) (build-system cmake-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 3c5698046a4b4c8934866e0195e899f73163020d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 07:49:50 +0200 Subject: gnu: libtorrent-rasterbar: Update to 1.1.2. * gnu/packages/bittorrent.scm (libtorrent-rasterbar): Update to 1.1.2. [source]: Use patch. * gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/bittorrent.scm | 10 +++++--- .../libtorrent-rasterbar-boost-compat.patch | 27 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index ba908cd4aa..782bf74791 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -712,6 +712,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-invalid-read.patch \ %D%/packages/patches/libtiff-null-dereference.patch \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \ + %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 635b94f4a0..a0474002b7 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -31,6 +31,7 @@ #:use-module (guix build-system python) #:use-module (guix build-system glib-or-gtk) #:use-module ((guix licenses) #:prefix l:) + #:use-module (gnu packages) #:use-module (gnu packages adns) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -379,16 +380,19 @@ and will take advantage of multiple processor cores where possible.") (define-public libtorrent-rasterbar (package (name "libtorrent-rasterbar") - (version "1.0.10") + (version "1.1.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/arvidn/libtorrent/releases/download/libtorrent-" - "1_0_10" "/libtorrent-rasterbar-" version ".tar.gz")) + (string-join (string-split version #\.) "_") + "/libtorrent-rasterbar-" version ".tar.gz")) + (patches + (search-patches "libtorrent-rasterbar-boost-compat.patch")) (sha256 (base32 - "0gjcr892hzmcngvpw5bycjci4dk49v763lsnpvbwsjmim2ncwrd8")))) + "16im9qsmfrmmkhfjpij9739nqpn4s6wgc9cikdxbcyshfhimzra5")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch b/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch new file mode 100644 index 0000000000..85bea76efe --- /dev/null +++ b/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch @@ -0,0 +1,27 @@ +Fix compatibility with Boost 1.63. + +Patch copied from upstream source repository: + +https://github.com/arvidn/libtorrent/commit/6d2d736cecce0af274dd651dd1f562716b625d92 + +From 6d2d736cecce0af274dd651dd1f562716b625d92 Mon Sep 17 00:00:00 2001 +From: arvidn +Date: Sun, 12 Mar 2017 13:03:26 -0400 +Subject: [PATCH] fix test_ssl.cpp build with newer versions of boost + +--- + test/test_ssl.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/test/test_ssl.cpp b/test/test_ssl.cpp +index 01c5bc7..2903332 100644 +--- a/test/test_ssl.cpp ++++ b/test/test_ssl.cpp +@@ -51,7 +51,6 @@ POSSIBILITY OF SUCH DAMAGE. + #include + + #ifdef TORRENT_USE_OPENSSL +-#include // for asio::error::get_ssl_category() + #include + + #include "libtorrent/aux_/disable_warnings_pop.hpp" -- cgit v1.2.3 From 14d0db40ff8f6afbd02a009ad05dd87ceafbb1b3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 08:29:19 +0200 Subject: gnu: vte-ng: Build with gperf@3.0. * gnu/packages/gnome.scm (vte-ng)[native-inputs]: Change GPERF to GPERF-3.0. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f8fafdbc7a..60e1c7a330 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1867,7 +1867,7 @@ editors, IDEs, etc.") (version "0.46.1.a") (native-inputs `(("gtk-doc" ,gtk-doc) - ("gperf" ,gperf) + ("gperf" ,gperf-3.0) ("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) -- cgit v1.2.3 From 82654d956fd381cb10a7878758b25074636e757d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Mar 2017 09:50:08 +0300 Subject: gnu: aseprite: Downgrade to 1.1.7. * gnu/packages/game-development.scm (aseprite): Downgrade to 1.1.7. --- gnu/packages/game-development.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index f39c9d444b..29f0555886 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016 David Thompson -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Julian Graham @@ -457,7 +457,7 @@ etc.") (define-public aseprite (package (name "aseprite") - (version "1.1.13") + (version "1.1.7") ; After 1.1.7 the source is no longer distributed under the GPL. ;; TODO: Unbundle third party software. (source (origin (method url-fetch/zipbomb) @@ -466,7 +466,7 @@ etc.") "/Aseprite-v" version "-Source.zip")) (sha256 (base32 - "0sm5vrrinpj423cpnlrczknjnykrn6q8c5qn2fmg5v22cv70dwzl")))) + "1plss4i1lfxcznv9p0pip1bkhj7ipw7jlhsh5avd6dzw079l4nvv")))) (build-system cmake-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 5ac097e28c3b654ae7ae821e757599e1738e23aa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 09:10:30 +0200 Subject: gnu: libpqxx: Fix build with newer sed. * gnu/packages/databases.scm (libpqxx)[arguments]: Add 'fix-sed-command' phase that corrects a typo in the configure script. --- gnu/packages/databases.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 8b01a2f01b..be92c416fb 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1349,7 +1349,15 @@ trees (LSM), for sustained throughput under random insert workloads.") `(("python" ,python-2))) (inputs `(("postgresql" ,postgresql))) (arguments - `(#:tests? #f)) ; # FAIL: 1 + `(#:tests? #f ; # FAIL: 1 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-sed-command + (lambda _ + ;; Newer sed versions error out if double brackets are not used. + (substitute* "configure" + (("\\[:space:\\]") "[[:space:]]")) + #t))))) (synopsis "C++ connector for PostgreSQL") (description "Libpqxx is a C++ library to enable user programs to communicate with the -- cgit v1.2.3 From b1554326bb16f0d9da99e4467cc48879c79602b7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 09:36:00 +0200 Subject: gnu: libsvgtiny: Build with gperf@3.0. * gnu/packages/web.scm (libsvgtiny)[native-inputs]: Change GPERF to GPERF-3.0. --- gnu/packages/web.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7fb94005e8..c081345e03 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3928,7 +3928,7 @@ developed as part of the NetSurf project.") (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) ("pkg-config" ,pkg-config) - ("gperf" ,gperf))) + ("gperf" ,gperf-3.0))) (inputs `(("libwapcaplet" ,libwapcaplet))) (propagated-inputs -- cgit v1.2.3 From 23bd8f556e3a7b84f35f8b58ee506241b9b95fca Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 21 Mar 2017 13:29:00 +0100 Subject: gnu: bigloo: Fix build failure in ld. * gnu/packages/scheme.scm (bigloo)[arguments]<#:configure-flags>: Add --cflags=-fPIC. --- gnu/packages/scheme.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index fec872f5f9..b689b0f421 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -248,6 +248,7 @@ features an integrated Emacs-like editor and a large runtime library.") ;; "--customgc=no" ; use our libgc (string-append"--mv=" (which "mv")) (string-append "--rm=" (which "rm")) + "--cflags=-fPIC" (string-append "--ldflags=-Wl,-rpath=" (assoc-ref outputs "out") "/lib/bigloo/" ,version)))))) -- cgit v1.2.3 From 727bec13a35049f5f819a6f22d93e38aa44220b2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 11:00:46 +0200 Subject: gnu: po4a: Make manpages writable before resetting timestamps. * gnu/packages/gettext.scm (po4a)[arguments]: Add 'make-compressed-files-writable' phase. --- gnu/packages/gettext.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 26ab6777fe..0de6be07c6 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Alex Kost +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -160,7 +161,14 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.") (wrap-program file `("PERL5LIB" ":" prefix (,path)))) (find-files bin "\\.*$")) - #t)))))) + #t))) + (add-before 'reset-gzip-timestamps 'make-compressed-files-writable + (lambda* (#:key outputs #:allow-other-keys) + (for-each make-file-writable + (find-files (string-append (assoc-ref outputs "out") + "/share/man") + ".*\\.gz$")) + #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("perl-module-build" ,perl-module-build) -- cgit v1.2.3 From 01229cbe16802616880ead1742e27cb120480e3c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 10:05:57 +0200 Subject: gnu: Add speexdsp. * gnu/packages/xiph.scm (speexdsp): New variable. Export it. --- gnu/packages/xiph.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 5ad504604a..7b02980159 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ libvorbis libtheora speex + speexdsp ao flac libkate @@ -149,6 +151,26 @@ stereo encoding, and voice activity detection.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")))) +(define speexdsp + (package + (name "speexdsp") + (version "1.2rc3") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/speex/" + "speexdsp-" version ".tar.gz")) + (sha256 + (base32 + "1wcjyrnwlkayb20zdhp48y260rfyzg925qpjpljd5x9r01h8irja")))) + (build-system gnu-build-system) + (home-page "https://speex.org/") + (synopsis "Speex processing library") + (description + "SpeexDSP is a @dfn{DSP} (Digital Signal Processing) library based on +work from the @code{speex} codec.") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) + (define ao (package (name "ao") -- cgit v1.2.3 From b5a1359d44a66000267cd648f46ad578890a89f0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Mar 2017 10:09:15 +0200 Subject: gnu: mumble: Fix build after speex update. * gnu/packages/telephony.scm (mumble)[inputs]: Add SPEEXDSP. --- gnu/packages/telephony.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 87261825c5..377ad6fed5 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -411,6 +411,7 @@ address of one of the participants.") ("boost" ,boost) ("opus" ,opus) ("speex" ,speex) + ("speexdsp" ,speexdsp) ("speech-dispatcher" ,speech-dispatcher) ("libx11" ,libx11) ("libxi" ,libxi) -- cgit v1.2.3 From 741916f11457129442c8155d8c55de22112b04c9 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:15:04 +0200 Subject: gnu: Add libzmf. * gnu/packages/libreoffice.scm (libzmf): New Variable. --- gnu/packages/libreoffice.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 52f4266920..760f654cdd 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Alex Griffin +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -629,6 +630,35 @@ spreadsheet documents.") Works word processor file format.") (license (list mpl2.0 lgpl2.1+)))) ; dual license +(define-public libzmf + (package + (name "libzmf") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://dev-www.libreoffice.org/src/libzmf/libzmf-" + version ".tar.xz")) + (sha256 (base32 + "0yp5l1b90xim506zmr3ljkn3qkvbc7qk3dnwq1snxdpr57m37xga")))) + (build-system gnu-build-system) + (inputs + `(("boost" ,boost) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("librevenge" ,librevenge) + ("zlib" ,zlib))) + (native-inputs + `(("cppunit" ,cppunit) + ("doxygen" ,doxygen) + ("pkg-config" ,pkg-config))) + (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libzmf") + (synopsis "Parses file format of Zoner Callisto/Draw documents") + (description "Libzmf is a library that parses the file format of Zoner +Callisto/Draw documents. Currently it only understands documents created by +Zoner Draw version 4 and 5.") + (license mpl2.0))) + (define-public hunspell (package (name "hunspell") -- cgit v1.2.3 From 57144094b8c6db390c2b465ae90c095cd019e6a7 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:15:36 +0200 Subject: gnu: mdds: Upgrade to 1.2.2. * gnu/packages/boost.scm (mdds): Upgrade to 1.2.2. --- gnu/packages/boost.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index b3fccdf2eb..dfaa853533 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,14 +110,14 @@ across a broad spectrum of applications.") (define-public mdds (package (name "mdds") - (version "0.12.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (string-append - "http://kohei.us/files/mdds/src/mdds_" version ".tar.bz2")) + "http://kohei.us/files/mdds/src/mdds-" version ".tar.bz2")) (sha256 (base32 - "0gg8mb9kxh3wggh7njj1gf90xy27p0yq2cw88wqar9hhg2fmwmi3")))) + "17fcjhsq3bzqm7ba9sgp6my3y4226jnwai6q5jq3810i745p67hl")))) (build-system gnu-build-system) (propagated-inputs `(("boost" ,boost))) ; inclusion of header files -- cgit v1.2.3 From cb386439245d09e52893a4b11f625cb17539e2eb Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:15:51 +0200 Subject: gnu: ixion: Update to 0.12.2. * gnu/packages/libreoffice.scm (ixion): Update to 0.12.2. [inputs]: Replace python-2 by python. --- gnu/packages/libreoffice.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 760f654cdd..a8565af587 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -71,20 +71,20 @@ (define-public ixion (package (name "ixion") - (version "0.9.1") + (version "0.12.2") (source (origin (method url-fetch) (uri (string-append "http://kohei.us/files/ixion/src/libixion-" version ".tar.xz")) (sha256 (base32 - "18g3nk29ljiqbyi0ml49j2x3f3xrqckdm9i66sw5fxnj7hb5rqvp")))) + "1bnsqbxpbijwbg42rrqq6mz06wvcxjpl0gjdzwyilkmv6s400i4b")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("mdds" ,mdds) - ("python" ,python-2))) ; looks for python.pc, not python3.pc + ("python" ,python))) (home-page "https://gitlab.com/ixion/ixion") (synopsis "General purpose formula parser and interpreter") (description "Ixion is a library for calculating the results of formula -- cgit v1.2.3 From 22e52dbd06726261e370e9b761e7f3a3f6b47630 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:16:19 +0200 Subject: gnu: Add libstaroffice. * gnu/packages/libreoffice.scm (libstaroffice): New variable. --- gnu/packages/libreoffice.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a8565af587..a558d8e19e 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -601,6 +601,29 @@ text documents (MacWrite, ClarisWorks, ... ) and for some graphics and spreadsheet documents.") (license (list mpl2.0 lgpl2.1+)))) ; dual license +(define-public libstaroffice + (package + (name "libstaroffice") + (version "0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/fosnola/libstaroffice/releases/download/" + version "/libstaroffice-" version ".tar.xz")) + (sha256 (base32 + "1ii2wi3wr5npyz9gby1bjk8r4wyflpfpc6gx7mmqkhsc9c8frpmy")))) + (build-system gnu-build-system) + (inputs + `(("librevenge" ,librevenge) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/fosnola/libstaroffice") + (synopsis "Provides LibreOffice support for old StarOffice documents") + (description "@code{libstaroffice} is an import filter for the document formats +from the old StarOffice (.sdc, .sdw, ...).") + (license (list mpl2.0 lgpl2.1+)))) ; dual license + (define-public libwps (package (name "libwps") -- cgit v1.2.3 From b85b56dd7bb0185059e81f2aeeb0749e180d2084 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:16:32 +0200 Subject: gnu: libetonyek: Update to 0.1.6. * gnu/packages/libreoffice.scm (libetonyek): Update to 0.1.6. [arguments]: Add phase 'autoreconf, because configure.ac is patched. Add configure flag "--with-mdds=1.2". [inputs]: Add liblangtag. [native-inputs]: Add autoconf and automake. * gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/libreoffice.scm | 15 ++++- .../patches/libetonyek-build-with-mdds-1.2.patch | 74 ++++++++++++++++++++++ 3 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 782bf74791..02758dd7e1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -676,6 +676,7 @@ dist_patch_DATA = \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libdrm-symbol-check.patch \ + %D%/packages/patches/libetonyek-build-with-mdds-1.2.patch \ %D%/packages/patches/libevent-dns-tests.patch \ %D%/packages/patches/libevent-2.0-CVE-2016-10195.patch \ %D%/packages/patches/libevent-2.0-CVE-2016-10196.patch \ diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a558d8e19e..3d056031ce 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -349,22 +349,31 @@ CorelDRAW documents of all versions.") (define-public libetonyek (package (name "libetonyek") - (version "0.1.3") + (version "0.1.6") (source (origin (method url-fetch) (uri (string-append "http://dev-www.libreoffice.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0mghaqzj0qqza8z1gzprw62702adlww4kgdzynj5qpxxc9m2f4py")))) + "0y60vi1plyq69fqbcjnc0v8mvcjqjsl1ry6rmb3bq3q7j8a2fm6z")) + (patches (search-patches "libetonyek-build-with-mdds-1.2.patch")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--with-mdds=1.2") + #:phases (modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ (system* "autoreconf")))))) (native-inputs `(("cppunit" ,cppunit) ("doxygen" ,doxygen) ("glm" ,glm) ("gperf" ,gperf) + ("liblangtag" ,liblangtag) ("mdds" ,mdds) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) ; due to patch + ("automake" ,automake))) (propagated-inputs ; in Requires or Requires.private field of .pkg `(("librevenge" ,librevenge) ("libxml2" ,libxml2))) diff --git a/gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch b/gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch new file mode 100644 index 0000000000..1ede82ad39 --- /dev/null +++ b/gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch @@ -0,0 +1,74 @@ +Allow building with mdds 1.2. + +Patch taken from upstream commit f6d14b3b510de5c50e45c98fe812a73ba00f3def +see https://gerrit.libreoffice.org/gitweb?p=libetonyek.git;a=commitdiff;h=f6d14b3b510de5c50e45c98fe812a73ba00f3def + +diff --git a/configure.ac b/configure.ac +index ca4bb07..bb946eb 100644 (file) +--- a/configure.ac ++++ b/configure.ac +@@ -24,7 +24,7 @@ AC_LANG([C++]) + # Configure options + # ================= + AC_ARG_WITH([mdds], +- AS_HELP_STRING([--with-mdds=1.0|0.x], [Specify which version of mdds to use (1.0 is the default)]), ++ AS_HELP_STRING([--with-mdds=1.2|1.0|0.x], [Specify which version of mdds to use (1.0 is the default)]), + [], [with_mdds="1.0"]) + + # =========================== +@@ -47,7 +47,7 @@ AC_PROG_SED + + AM_MISSING_PROG([GPERF], [gperf]) + +-AS_IF([test "$with_mdds" = "1.0"], [AX_CXX_COMPILE_STDCXX_11([noext])]) ++AS_IF([test "$with_mdds" = "1.0" -o "$with_mdds" = "1.2" ], [AX_CXX_COMPILE_STDCXX_11([noext])]) + + # =============== + # Find librevenge +@@ -138,25 +138,27 @@ AC_SUBST([GLM_CFLAGS]) + # ========= + # Find mdds + # ========= +-AS_IF([test "$with_mdds" = "1.0"], [ +- PKG_CHECK_MODULES([MDDS], [mdds-1.0]) +-], [ +- PKG_CHECK_MODULES([MDDS], [mdds]) +- AC_MSG_CHECKING([checking if mdds::flat_segment_tree can store values of any type]) +- old_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$MDDS_CFLAGS $CPPFLAGS" +- AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +- #include +- struct Value {}; +- mdds::flat_segment_tree tree(0, 4, Value()); +- ])], [ +- AC_MSG_RESULT([yes]) +- ], [ +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([please install mdds >= 0.12.1]) +- ]) +- CPPFLAGS="$old_CPPFLAGS" +-]) ++AS_CASE(["$with_mdds"], ++ ["1.2"], [PKG_CHECK_MODULES([MDDS], [mdds-1.2])], ++ ["1.0"], [PKG_CHECK_MODULES([MDDS], [mdds-1.0])], ++ [ ++ PKG_CHECK_MODULES([MDDS], [mdds]) ++ AC_MSG_CHECKING([checking if mdds::flat_segment_tree can store values of any type]) ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$MDDS_CFLAGS $CPPFLAGS" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ++ #include ++ struct Value {}; ++ mdds::flat_segment_tree tree(0, 4, Value()); ++ ])], [ ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ AC_MSG_ERROR([please install mdds >= 0.12.1]) ++ ]) ++ CPPFLAGS="$old_CPPFLAGS" ++ ] ++) + + # ================================= + # Libtool/Version Makefile settings -- cgit v1.2.3 From 90ac806d3ad859cca2c3b6e5ac219e930b848eb9 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:16:47 +0200 Subject: gnu: orcus: Update to 0.12.1. * gnu/packages/libreoffice.scm (orcus): Update to 0.12.1. [inputs]: Add python. --- gnu/packages/libreoffice.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 3d056031ce..b21e41bb20 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -96,20 +96,21 @@ their dependencies automatically upon calculation.") (define-public orcus (package (name "orcus") - (version "0.9.2") + (version "0.12.1") (source (origin (method url-fetch) (uri (string-append "http://kohei.us/files/" name "/src/lib" name "-" version ".tar.xz")) (sha256 (base32 - "170racjz7s7yxza722hxsqc12788w57qnp6x6j2692pzp3qzjjfx")))) + "171bmqa9hkk4xygz20qda5900rs4kq9fgl424ldkxlj4d733dffi")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("ixion" ,ixion) ("mdds" ,mdds) + ("python" ,python) ("zlib" ,zlib))) (home-page "https://gitlab.com/orcus/orcus") (synopsis "File import filter library for spreadsheet documents") -- cgit v1.2.3 From b1a8fd2d2cf6bf1b20ba8d26ca6f9a7caef60cbc Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Mon, 27 Mar 2017 20:17:02 +0200 Subject: gnu: libreoffice: Update to 5.3.1.2. * gnu/packages/libreoffice.scm (libreoffice): Update to 5.3.1.2. [inputs]: Add libstaroffice and libzmf. [arguments]: Remove reference to removed patch; unpack xmlsec 1.2.23 tarball. (xmlsec-src-libreoffice): Update to version 1.2.23 tarball. --- gnu/packages/libreoffice.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index b21e41bb20..42e47a5109 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -769,15 +769,15 @@ and to return information on pronunciations, meanings and synonyms.") (method url-fetch) (uri (string-append - "http://dev-www.libreoffice.org/src/" - "1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz")) + "http://dev-www.libreoffice.org/src/" + "86b1daaa438f5a7bea9a52d7b9799ac0-xmlsec1-1.2.23.tar.gz")) (sha256 (base32 - "0jnxxygg6z5zi6za94dvxmg1bfar1wh8p5xa2bzbha0qcn2m02ir")))) + "17qfw5crkqn4v6xbkjxrjvcccfc00dy053892wrwv54qdk8n7m21")))) (define-public libreoffice (package (name "libreoffice") - (version "5.1.6.2") + (version "5.3.1.2") (source (origin (method url-fetch) @@ -786,7 +786,7 @@ and to return information on pronunciations, meanings and synonyms.") "http://download.documentfoundation.org/libreoffice/src/" (version-prefix version 3) "/libreoffice-" version ".tar.xz")) (sha256 (base32 - "150xb76pc3889gfy4jrnq8sidymm1aihkm5pzy8b1fdy51zip804")))) + "1zsl0z0i8pw532x2lmwd64ms6igibkkjhwf01zmm2kpnr9ycsijp")))) (build-system gnu-build-system) (native-inputs `(;; autoreconf is run by the LibreOffice build system, since after @@ -829,6 +829,7 @@ and to return information on pronunciations, meanings and synonyms.") ("libmwaw" ,libmwaw) ("libodfgen" ,libodfgen) ("libpagemaker" ,libpagemaker) + ("libstaroffice" ,libstaroffice) ("libvisio" ,libvisio) ("libwpg" ,libwpg) ("libwps" ,libwps) @@ -836,6 +837,7 @@ and to return information on pronunciations, meanings and synonyms.") ("libxrender" ,libxrender) ("libxslt" ,libxslt) ("libxt" ,libxt) + ("libzmf" ,libzmf) ("lpsolve" ,lpsolve) ("mdds" ,mdds) ("mythes" ,mythes) @@ -868,15 +870,14 @@ and to return information on pronunciations, meanings and synonyms.") (substitute* (list "sysui/CustomTarget_share.mk" "solenv/gbuild/gbuild.mk" - "solenv/gbuild/platform/unxgcc.mk" - "external/libxmlsec/xmlsec1-oldlibtool.patch") + "solenv/gbuild/platform/unxgcc.mk") (("/bin/sh") (which "bash"))) (mkdir "external/tarballs") (symlink xmlsec (string-append "external/tarballs/" - "1f24ab1d39f4a51faf22244c94a6203f-" - "xmlsec1-1.2.14.tar.gz")) + "86b1daaa438f5a7bea9a52d7b9799ac0-" + "xmlsec1-1.2.23.tar.gz")) ;; The following is required for building xmlsec from the ;; unpatched external tarball; since "configure" starts with ;; "/bin/sh", it needs to be executed by a command invoking -- cgit v1.2.3 From 6f766069843419ce862be79e15523c43036f7bc6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 09:39:48 +0300 Subject: gnu: gsl: Disable tests on aarch64-linux. * gnu/packages/maths.scm (gsl)[arguments]: Do not run the test suite on aarch64-linux. [home-page]: Use https. --- gnu/packages/maths.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 8fad8f0aef..f2e0c663e4 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -270,8 +270,14 @@ semiconductors.") (patches (search-patches "gsl-test-i686.patch")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f)) - (home-page "http://www.gnu.org/software/gsl/") + `(#:parallel-tests? #f + ;; Currently there are numerous tests that fail on "exotic" + ;; architectures such as aarch64 and ppc64le. + ,@(if (string-prefix? "aarch64-linux" + (or (%current-target-system) (%current-system))) + '(#:tests? #f) + '()))) + (home-page "https://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description "The GNU Scientific Library is a library for numerical analysis in C -- cgit v1.2.3 From b4f67b7ebb44fa0a6c8abeb4d6fc3bb2ac2de329 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 11:52:48 +0300 Subject: gnu: mysql: Disable tests on aarch64-linux. * gnu/packages/databases.scm (mysql)[arguments]: Disable the test suite on aarch64-linux. --- gnu/packages/databases.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index be92c416fb..a47f844c75 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -344,7 +344,12 @@ mapping from string keys to string values.") (for-each delete-file (find-files (string-append out "/bin") "_embedded$")) - #t)))))) + #t)))) + ;; On aarch64 the test suite runs out of memory and fails. + ,@(if (string-prefix? "aarch64-linux" + (or (%current-target-system) (%current-system))) + '(#:tests? #f) + '()))) (native-inputs `(("bison" ,bison) ("perl" ,perl))) -- cgit v1.2.3 From 26f38d313bd4ccece05610f762612daa0746dd44 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 13:28:33 +0300 Subject: gnu: mozjs@24: Add aarch64-support. * gnu/packages/gnuzilla.scm (mozjs@24)[source]: Add patch. [arguments]: Add flag for building on aarch64-linux, delete failing test. * gnu/packages/patches/mozjs24-aarch64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/gnuzilla.scm | 12 ++++++++++-- gnu/packages/patches/mozjs24-aarch64-support.patch | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/mozjs24-aarch64-support.patch diff --git a/gnu/local.mk b/gnu/local.mk index f69946ba14..9231870a94 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -767,6 +767,7 @@ dist_patch_DATA = \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/mplayer2-theora-fix.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ + %D%/packages/patches/mozjs24-aarch64-support.patch \ %D%/packages/patches/multiqc-fix-git-subprocess-error.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 97fddc2a84..5c892f197a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -117,16 +117,20 @@ in C/C++.") (base32 "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6")) (modules '((guix build utils))) + (patches (search-patches "mozjs24-aarch64-support.patch")) (snippet ;; Fix incompatibility with Perl 5.22+. '(substitute* '("js/src/config/milestone.pl") (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) (arguments - '(;; XXX: parallel build fails, lacking: + `(;; XXX: parallel build fails, lacking: ;; mkdir -p "system_wrapper_js/" #:parallel-build? #f #:phases (modify-phases %standard-phases + (add-after 'unpack 'delete-timedout-test + ;; This test times out on slower hardware + (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js"))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) @@ -139,7 +143,11 @@ in C/C++.") (string-append "--prefix=" out) "--with-system-nspr" "--enable-system-ffi" - "--enable-threadsafe")))))))) + "--enable-threadsafe" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()))))))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/patches/mozjs24-aarch64-support.patch b/gnu/packages/patches/mozjs24-aarch64-support.patch new file mode 100644 index 0000000000..9dca8e500c --- /dev/null +++ b/gnu/packages/patches/mozjs24-aarch64-support.patch @@ -0,0 +1,21 @@ +This patch is sourced from Debian's mozjs24 patch set. + +Description: Add arm64 support +Author: Andreas Schwab +Origin: vendor, https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch +Forwarded: no +Last-Update: 2014-01-03 + +Index: b/mfbt/double-conversion/utils.h +=================================================================== +--- a/mfbt/double-conversion/utils.h ++++ b/mfbt/double-conversion/utils.h +@@ -58,7 +58,7 @@ + defined(__mips__) || defined(__powerpc__) || \ + defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ + defined(__SH4__) || defined(__alpha__) || \ +- defined(_MIPS_ARCH_MIPS32R2) ++ defined(_MIPS_ARCH_MIPS32R2) || defined(__aarch64__) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) + #if defined(_WIN32) -- cgit v1.2.3 From a64b7da5133b1b0f70ba873cab9b3bebfd84a58e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 16:19:39 +0300 Subject: gnu: mozjs@17: Add support for aarch64-linux. * gnu/packages/gnuzilla.scm (mozjs@17)[source]: Add patch. [arguments]: Add phase deleting slow test, add configure argument for building on aarch64-linux. * gnu/packages/patches/mozjs17-aarch64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/gnuzilla.scm | 12 ++++- gnu/packages/patches/mozjs17-aarch64-support.patch | 60 ++++++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/mozjs17-aarch64-support.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9231870a94..44462e4f5e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -767,6 +767,7 @@ dist_patch_DATA = \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/mplayer2-theora-fix.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ + %D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \ %D%/packages/patches/multiqc-fix-git-subprocess-error.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 5c892f197a..2586cf60f4 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -69,6 +69,7 @@ (sha256 (base32 "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij")) + (patches (search-patches "mozjs17-aarch64-support.patch")) (modules '((guix build utils))) (snippet ;; Fix incompatibility with Perl 5.22+. @@ -83,6 +84,9 @@ ;; mkdir -p "system_wrapper_js/" #:parallel-build? #f #:phases + (alist-cons-after 'unpack 'delete-timedout-test + ;; This test times out on slower hardware. + (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js")) (alist-cons-before 'configure 'chdir (lambda _ @@ -95,8 +99,12 @@ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) (zero? (system* - "./configure" (string-append "--prefix=" out))))) - %standard-phases)))) + "./configure" (string-append "--prefix=" out) + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()))))) + %standard-phases))))) (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey") (synopsis "Mozilla javascript engine") diff --git a/gnu/packages/patches/mozjs17-aarch64-support.patch b/gnu/packages/patches/mozjs17-aarch64-support.patch new file mode 100644 index 0000000000..51e2e306d5 --- /dev/null +++ b/gnu/packages/patches/mozjs17-aarch64-support.patch @@ -0,0 +1,60 @@ +https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch + +index c071c33..90764c3 100644 +--- a/js/src/assembler/jit/ExecutableAllocator.h ++++ b/js/src/assembler/jit/ExecutableAllocator.h +@@ -382,6 +382,12 @@ public: + { + reprotectRegion(start, size, Executable); + } ++#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX ++ static void cacheFlush(void* code, size_t size) ++ { ++ intptr_t end = reinterpret_cast(code) + size; ++ __builtin___clear_cache(reinterpret_cast(code), reinterpret_cast(end)); ++ } + #else + static void makeWritable(void*, size_t) {} + static void makeExecutable(void*, size_t) {} +diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h +index 0c84896..e8763a7 100644 +--- a/js/src/assembler/wtf/Platform.h ++++ b/js/src/assembler/wtf/Platform.h +@@ -325,6 +325,10 @@ + #define WTF_THUMB_ARCH_VERSION 0 + #endif + ++/* CPU(AArch64) - 64-bit ARM */ ++#if defined(__aarch64__) ++#define WTF_CPU_AARCH64 1 ++#endif + + /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */ + /* On ARMv5 and below the natural alignment is required. +diff --git a/js/src/configure.in b/js/src/configure.in +index 15605b2..19fd704 100644 +--- a/js/src/configure.in ++++ b/js/src/configure.in +@@ -1121,6 +1121,10 @@ arm*) + CPU_ARCH=arm + ;; + ++aarch64) ++ CPU_ARCH=aarch64 ++ ;; ++ + mips|mipsel) + CPU_ARCH="mips" + ;; +diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h +index 0eec2d9..fe26dab 100644 +--- a/mfbt/double-conversion/utils.h ++++ b/mfbt/double-conversion/utils.h +@@ -58,6 +58,7 @@ + defined(__mips__) || defined(__powerpc__) || \ + defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ + defined(__SH4__) || defined(__alpha__) || \ ++ defined(__aarch64__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) -- cgit v1.2.3 From f403c6761b4b70ce0d67240db2eee3d1d815c7d7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 18:57:31 +0300 Subject: gnu: mozjs@17: Add missing inputs. * gnu/packages/gnuzilla.scm (mozjs@17)[native-inputs]: Add pkg-config. [propagated-inputs]: Add nspr. [inputs]: Add zlib. --- gnu/packages/gnuzilla.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 2586cf60f4..be3e59aa88 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -77,8 +77,13 @@ (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) (build-system gnu-build-system) (native-inputs - `(("perl" ,perl) - ("python" ,python-2))) + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-2))) + (propagated-inputs + `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-17.0.pc + (inputs + `(("zlib" ,zlib))) (arguments `(;; XXX: parallel build fails, lacking: ;; mkdir -p "system_wrapper_js/" -- cgit v1.2.3 From 56486b3a40958490550e46c122c6ae2ebf608aa3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 19:04:44 +0300 Subject: gnu: mozjs@17: Use 'modify-phases' syntax. * gnu/packages/gnuzilla.scm (mozjs@17)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/gnuzilla.scm | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index be3e59aa88..3034ee98d1 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -85,31 +85,30 @@ (inputs `(("zlib" ,zlib))) (arguments - `(;; XXX: parallel build fails, lacking: - ;; mkdir -p "system_wrapper_js/" - #:parallel-build? #f - #:phases - (alist-cons-after 'unpack 'delete-timedout-test + `(;; XXX: parallel build fails, lacking: + ;; mkdir -p "system_wrapper_js/" + #:parallel-build? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-timedout-test ;; This test times out on slower hardware. - (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js")) - (alist-cons-before - 'configure 'chdir + (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js"))) + (add-before 'configure 'chdir (lambda _ - (chdir "js/src")) - (alist-replace - 'configure - ;; configure fails if it is followed by SHELL and CONFIG_SHELL - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* - "./configure" (string-append "--prefix=" out) - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '()))))) - %standard-phases))))) + (chdir "js/src") + #t)) + (replace 'configure + ;; configure fails if it is followed by SHELL and CONFIG_SHELL + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* + "./configure" (string-append "--prefix=" out) + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()))))))))) (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey") (synopsis "Mozilla javascript engine") -- cgit v1.2.3 From aaac423cc4350dd9df9755d0230e3dad454e3f72 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 19:12:10 +0300 Subject: gnu: mozjs@24: Use more inherited fields. * gnu/packages/gnuzilla.scm (mozjs@24)[arguments]: Use 'substitute-keyword-arguments', override inherited 'configure. [native-inputs]: Remove field to use inherited native-inputs. [propagated-inputs]: Same. --- gnu/packages/gnuzilla.scm | 50 ++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3034ee98d1..1c3db57797 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -28,6 +28,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages base) #:use-module (gnu packages databases) @@ -135,37 +136,24 @@ in C/C++.") '(substitute* '("js/src/config/milestone.pl") (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) (arguments - `(;; XXX: parallel build fails, lacking: - ;; mkdir -p "system_wrapper_js/" - #:parallel-build? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-timedout-test - ;; This test times out on slower hardware - (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js"))) - (replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (chdir "js/src") - ;; configure fails if it is follwed by SHELL and CONFIG_SHELL - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* "./configure" - (string-append "--prefix=" out) - "--with-system-nspr" - "--enable-system-ffi" - "--enable-threadsafe" - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '()))))))))) - (native-inputs - `(("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-2))) - (propagated-inputs - `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-24.pc + (substitute-keyword-arguments (package-arguments mozjs) + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; configure fails if it is followed by SHELL and CONFIG_SHELL + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* "./configure" + (string-append "--prefix=" out) + "--with-system-nspr" + "--enable-system-ffi" + "--enable-threadsafe" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '())))))))))) (inputs `(("libffi" ,libffi) ("zlib" ,zlib))))) -- cgit v1.2.3 From 84fb4bd90723a41d2dedb8daa5f99f47111356cb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 20:33:57 +0300 Subject: gnu: nspr: Update to 4.14. * gnu/packages/gnuzilla.scm (nspr): Update to 4.14. --- gnu/packages/gnuzilla.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 1c3db57797..4077ac7f30 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -161,7 +161,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.13.1") + (version "4.14") (source (origin (method url-fetch) (uri (string-append @@ -169,10 +169,10 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "1arkg08l6zlp8v44shqbk2c8qzwd913lgh60fb3yfxls6d8ifk2y")))) + "1m8p9l3prabhfxz6zs889fl7gmcka72a62i46a8klh2pca11iz34")))) (build-system gnu-build-system) (native-inputs - `(("perl" ,perl))) + `(("perl" ,perl))) (arguments `(#:tests? #f ; no check target #:configure-flags (list "--enable-64bit" -- cgit v1.2.3 From 04952bd7321c2607e51af2d11c1248d9462343ff Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Mar 2017 20:37:01 +0300 Subject: gnu: nspr: Use 'modify-phases' syntax. * gnu/packages/gnuzilla.scm (nspr)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/gnuzilla.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 4077ac7f30..bdb9e857a8 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -179,11 +179,9 @@ in C/C++.") (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) - #:phases (alist-cons-before - 'configure 'chdir - (lambda _ - (chdir "nspr")) - %standard-phases))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ (chdir "nspr") #t))))) (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR") (synopsis "Netscape API for system level and libc-like functions") -- cgit v1.2.3 From c7f7a5bac27d6525c4f407aa31b5e9fcc0ab07d6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 29 Mar 2017 14:23:56 +0200 Subject: gnu: kakoune: Fix build after Boost ABI change. Also remove now-obsolete snippet and inputs. * gnu/packages/text-editors.scm (kakoune)[source]: Remove gzip substitution. [arguments]: Drop CPPFLAGS from #:make-flags. [native-inputs]: Remove GCC-5. [inputs]: Remove gcc:lib. --- gnu/packages/text-editors.scm | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index a093baa3bd..f860b0e8a8 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -99,21 +99,10 @@ based command language.") (commit commit))) (sha256 (base32 - "19qs99l8r9p1vi5pxxx9an22fvi7xx40qw3jh2cnh2mbacawvdyb")) - (modules '((guix build utils))) - (snippet - ;; Kakoune uses 'gzip' to compress its manpages. Make sure - ;; timestamps are not preserved for reproducibility. - '(begin - (substitute* "src/Makefile" - (("gzip -f") "gzip -f --no-name")) - #t)))) + "19qs99l8r9p1vi5pxxx9an22fvi7xx40qw3jh2cnh2mbacawvdyb")))) (build-system gnu-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - ;; Boost is compiled with the older ABI, so we can't use - ;; the new ABI if we want to link againt it. - "CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0") + `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-source @@ -136,11 +125,9 @@ based command language.") ;; Out git downloader doesn't give us write permissions, but ;; without them the tests fail. (zero? (system* "chmod" "-R" "u+w" "../test"))))))) - (native-inputs `(("gcc" ,gcc-5) - ("asciidoc" ,asciidoc) + (native-inputs `(("asciidoc" ,asciidoc) ("ruby" ,ruby))) - (inputs `(("gcc:lib" ,gcc-5 "lib") - ("ncurses" ,ncurses) + (inputs `(("ncurses" ,ncurses) ("boost" ,boost))) (synopsis "Vim-inspired code editor") (description -- cgit v1.2.3 From be2ba697bd7b4cb81924596dcdd5f339cf750045 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Mar 2017 11:07:46 +0200 Subject: doc: Remove extraneous "See" before @xref. * doc/guix.texi (GNU Distribution): Add extraneous "See". --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2bf1e1e037..a8ae5441d2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6879,7 +6879,7 @@ and Linux-Libre kernel. @item aarch64-linux little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is -currently in an experimental stage, with limited support. See +currently in an experimental stage, with limited support. @xref{Contributing}, for how to help! @item mips64el-linux -- cgit v1.2.3 From 2fa077f31658d9b237368968dc70bc41567788cc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Mar 2017 22:29:49 +0200 Subject: gnu: guile-reader: Build with gperf 3.0. * gnu/packages/guile.scm (guile-reader)[native-inputs]: Use GPERF-3.0 instead of GPERF. --- gnu/packages/guile.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 3918e17b3d..46be14ed10 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -444,7 +444,7 @@ more.") "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config) - ("gperf" ,gperf))) + ("gperf" ,gperf-3.0))) (inputs `(("guile" ,guile-2.2))) (synopsis "Framework for building readers for GNU Guile") (description -- cgit v1.2.3 From cdb3f734cfb93a5689d9fec3558811fe652749f4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Mar 2017 22:50:42 +0200 Subject: packages: Remove "mips64el-linux" from '%hydra-supported-systems'. * guix/packages.scm (%hydra-supported-systems): Remove "mips64el-linux". --- guix/packages.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index 4bc4b017f4..61171b8342 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -230,8 +230,11 @@ name of its URI." '("i585-gnu" "i686-gnu")) (define %hydra-supported-systems - ;; This is the list of system types for which build slaves are available. - %supported-systems) + ;; This is the list of system types for which build machines are available. + ;; + ;; XXX: MIPS is temporarily unavailable on Hydra: + ;; . + (delete "mips64el-linux" %supported-systems)) ;; A package. -- cgit v1.2.3 From 755c5ba85c03aa2631a6e9f0284fe8d6652938cf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Mar 2017 22:52:02 +0200 Subject: gnu: wordnet: Build with the default GCC. * gnu/packages/wordnet.scm (wordnet)[native-inputs]: Remove. --- gnu/packages/wordnet.scm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm index 42076645c4..8d969360cd 100644 --- a/gnu/packages/wordnet.scm +++ b/gnu/packages/wordnet.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2016 Ludovic Courtès +;;; Copyright © 2013, 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -80,11 +80,6 @@ (outputs '("out" "tk")) ; for the Tcl/Tk GUI - ;; Build with a patched GCC to work around . - ;; (Specifically the 'DEFAULTPATH' string literal is what we want to - ;; prevent from being chunked so that grafting can "see" it and patch it.) - (native-inputs `(("gcc@6" ,gcc-6))) - (inputs `(("tk" ,tk) ("tcl" ,tcl))) (home-page "http://wordnet.princeton.edu/") -- cgit v1.2.3 From 06e8d0c8e5179d79bd04afed197b9365d85f1cf7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 30 Mar 2017 03:30:26 -0400 Subject: gnu: dash: Update to 0.5.9.1. * gnu/packages/shells.scm (dash): Update to 0.5.9.1. [source]: Use git-fetch. [native-inputs]: Add autoconf and automake. [arguments]: Add 'bootstrap' phase. --- gnu/packages/shells.scm | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 0cbd3a53e1..ca51b3ad5d 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Stefan Reichör ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,15 +49,20 @@ (define-public dash (package (name "dash") - (version "0.5.9") + (version "0.5.9.1") (source (origin - (method url-fetch) - (uri (string-append "http://gondor.apana.org.au/~herbert/dash/files/" - name "-" version ".tar.gz")) + ;; The canonical source is offline, so we fetch the source code + ;; from the Git repository. See: + ;; https://www.mail-archive.com/dash@vger.kernel.org/msg01323.html + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/utils/dash/dash.git/") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "17328wd9n5krr5wd37smrk0y7fdf8aa3hmhm02br5mqpq0a3nycj")) + "0p01vx7rbyf5hyyaff7h8cbhq81bm5fmq1m933484lncl9rafcai")) (modules '((guix build utils))) (snippet '(begin @@ -67,10 +73,17 @@ "a command interpreter based on the original Bourne shell")) #t)))) (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) (inputs `(("libedit" ,libedit))) (arguments - `(#:configure-flags '("--with-libedit"))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ (zero? (system* "autoreconf" "-vfi"))))) + #:configure-flags '("--with-libedit"))) (home-page "http://gondor.apana.org.au/~herbert/dash") (synopsis "POSIX-compliant shell optimised for size") (description -- cgit v1.2.3 From e32f8dad9468f07f608fc0e2f83b9533d054a186 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Mar 2017 10:02:29 +0200 Subject: gnu: hugs: Build with GCC 4.9. * gnu/packages/hugs.scm (hugs)[native-inputs]: Add "gcc-4.9". --- gnu/packages/hugs.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/hugs.scm b/gnu/packages/hugs.scm index 2dcc61f4de..2367d5bc6d 100644 --- a/gnu/packages/hugs.scm +++ b/gnu/packages/hugs.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +22,8 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (gnu packages gcc)) (define-public hugs (package @@ -68,6 +70,8 @@ (("/bin/cp") (which "cp")))) %standard-phases) #:tests? #f)) ; no test target + ;; FIXME: Fails to build with GCC 5. + (native-inputs `(("gcc" ,gcc-4.9))) (home-page "https://www.haskell.org/hugs/") (synopsis "Functional programming system based on Haskell 98") (description -- cgit v1.2.3 From c3913fac57c557ba5ebc98c646f75c7000ab8aa7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Mar 2017 10:11:56 +0200 Subject: gnu: powertabeditor: Link with pthread. * gnu/packages/music.scm (powertabeditor)[arguments]: Link with "-lpthread" to fix build with GCC 5. --- gnu/packages/music.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 198c6f1fed..3946c3a646 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -906,6 +906,7 @@ add_library( rapidjson INTERFACE IMPORTED )")) (lambda* (#:key inputs #:allow-other-keys) ;; Link with required static libraries, because we're not ;; using the bundled version of withershins. + ;; Also add pthread for fixing a linker error. (substitute* "source/build/CMakeLists.txt" (("withershins" line) (string-append line "\n" @@ -914,6 +915,7 @@ add_library( rapidjson INTERFACE IMPORTED )")) (assoc-ref inputs "libiberty") "/lib/libiberty.a\n" "dl\n" + "pthread\n" "z\n"))) #t))))) (inputs -- cgit v1.2.3 From 0d2c0562b86c70e409df53b6013d2835781a673b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Mar 2017 10:22:21 +0200 Subject: gnu: stringtie: Remove typedef conflict. * gnu/packages/bioinformatics.scm (stringtie)[arguments]: Remove conflicting typedef in a new build phase "remove-duplicate-typedef". --- gnu/packages/bioinformatics.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 232c7db838..1bba270749 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5210,6 +5210,13 @@ against local background noises.") (("#include \"(bam|sam|kstring).h\"" _ header) (string-append "#include "))) #t)) + (add-after 'unpack 'remove-duplicate-typedef + (lambda _ + ;; This typedef conflicts with the typedef in + ;; glibc-2.25/include/bits/types.h + (substitute* "gclib/GThreads.h" + (("typedef long long __intmax_t;") "")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) -- cgit v1.2.3 From fa702e1a2913c665973f9cc43e253168e6505d9e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Mar 2017 10:23:40 +0200 Subject: gnu: discrover: Add missing includes. * gnu/packages/bioinformatics.scm (discrover)[arguments]: Add build phase "add-missing-includes" to include "random" headers. --- gnu/packages/bioinformatics.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 1bba270749..34e6e5f35d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2133,7 +2133,19 @@ data and settings.") (base32 "0rah9ja4m0rl5mldd6vag9rwrivw1zrqxssfq8qx64m7961fp68k")))) (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; there are no tests + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-missing-includes + (lambda _ + (substitute* "src/executioninformation.hpp" + (("#define EXECUTIONINFORMATION_HPP" line) + (string-append line "\n#include "))) + (substitute* "src/plasma/fasta.hpp" + (("#define FASTA_HPP" line) + (string-append line "\n#include "))) + #t))))) (inputs `(("boost" ,boost) ("cairo" ,cairo))) -- cgit v1.2.3 From 67656b7a86e95dea2e0ff613dfe67ec8fb633604 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Mar 2017 17:34:34 +0200 Subject: gnu: propeller-binutils: Use flex 2.6.1. * gnu/packages/embedded.scm (propeller-binutils)[native-inputs]: Replace "flex" with "flex-2.6.1". --- gnu/packages/embedded.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 0e86478bd3..36f872cdf2 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -412,7 +412,7 @@ with a layered architecture of JTAG interface and TAP support.") ,@(package-arguments xbinutils))) (native-inputs `(("bison" ,bison) - ("flex" ,flex) + ("flex" ,flex-2.6.1) ; needed because of yywrap error ("texinfo" ,texinfo) ("dejagnu" ,dejagnu) ,@(package-native-inputs xbinutils)))))) -- cgit v1.2.3 From fa63939acba69e11df44073a7eb687bd2ba48349 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 29 Mar 2017 16:15:23 +0200 Subject: gnu: chez-scheme: Fix build failure in 'reset-gzip-timestamps' phase. * gnu/packages/chez.scm (chez-scheme)[arguments]: Add 'make-manpages-writable' phase. --- gnu/packages/chez.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 6b2b70f19e..b532057605 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -190,7 +190,15 @@ (symlink file (string-append (dirname file) "/" name ".boot"))) (find-files lib "scheme.boot")) - #t)))))) + #t))) + (add-before 'reset-gzip-timestamps 'make-manpages-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files (string-append (assoc-ref outputs "out") + "/share/man") + ".*\\.gz$")) + #t))))) ;; According to the documentation MIPS is not supported. ;; Cross-compiling for the Raspberry Pi is supported, but not native ARM. (supported-systems (fold delete %supported-systems -- cgit v1.2.3 From aef81a81b868c6018f907f5855fc0d5fc04e4949 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Mar 2017 23:04:03 +0200 Subject: gnu: guix: Include the aarch64 bootstrap Guile. * gnu/packages/package-management.scm (boot-guile-uri): Add case for aarch64. (guix-0.12.0)[arguments] : Handle aarch64. [inputs]: Add "boot-guile/aarch64". --- gnu/packages/package-management.scm | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 330623216c..2760d4d2fb 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -56,13 +56,18 @@ (define (boot-guile-uri arch) "Return the URI for the bootstrap Guile tarball for ARCH." - (if (string=? "armhf" arch) - (string-append "http://alpha.gnu.org/gnu/guix/bootstrap/" - arch "-linux" - "/20150101/guile-2.0.11.tar.xz") - (string-append "http://alpha.gnu.org/gnu/guix/bootstrap/" - arch "-linux" - "/20131110/guile-2.0.9.tar.xz"))) + (cond ((string=? "armhf" arch) + (string-append "http://alpha.gnu.org/gnu/guix/bootstrap/" + arch "-linux" + "/20150101/guile-2.0.11.tar.xz")) + ((string=? "aarch64" arch) + (let ((suffix "/bootstrap/aarch64-linux/20170217/guile-2.0.14.tar.xz")) + (list (string-append "http://alpha.gnu.org/gnu/guix" suffix) + (string-append "http://flashner.co.il/guix" suffix)))) + (else + (string-append "http://alpha.gnu.org/gnu/guix/bootstrap/" + arch "-linux" + "/20131110/guile-2.0.9.tar.xz")))) (define-public guix-0.12.0 (package @@ -92,9 +97,9 @@ 'configure 'copy-bootstrap-guile (lambda* (#:key system inputs #:allow-other-keys) (define (boot-guile-version arch) - (if (string=? "armhf" arch) - "2.0.11" - "2.0.9")) + (cond ((string=? "armhf" arch) "2.0.11") + ((string=? "aarch64" arch) "2.0.14") + (else "2.0.9"))) (define (copy arch) (let ((guile (assoc-ref inputs @@ -105,12 +110,14 @@ "/guile-" (boot-guile-version arch) ".tar.xz"))) + (mkdir-p (dirname target)) ;XXX: eventually unneeded (copy-file guile target))) (copy "i686") (copy "x86_64") (copy "mips64el") (copy "armhf") + (copy "aarch64") #t)) (add-after 'unpack 'disable-container-tests @@ -192,7 +199,11 @@ ("boot-guile/armhf" ,(boot-guile "armhf" (base32 - "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5")))))) + "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))) + ("boot-guile/aarch64" + ,(boot-guile "aarch64" + (base32 + "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) (propagated-inputs `(("gnutls" ,gnutls) ;for 'guix download' & co. ("guile-json" ,guile-json) -- cgit v1.2.3 From 402b03e620fc14eda06b4c80121ecbf627c0740d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Mar 2017 23:36:05 +0200 Subject: gnu: ruby-concurrent: Work around test failure on ARM. * gnu/packages/patches/ruby-concurrent-test-arm.patch: New file. * gnu/packages/ruby.scm (ruby-concurrent)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/ruby-concurrent-test-arm.patch | 36 ++++++++++++++++++++++ gnu/packages/ruby.scm | 5 +-- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/ruby-concurrent-test-arm.patch diff --git a/gnu/local.mk b/gnu/local.mk index 69e4b99609..be47e74677 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -913,6 +913,7 @@ dist_patch_DATA = \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ + %D%/packages/patches/ruby-concurrent-test-arm.patch \ %D%/packages/patches/ruby-puma-ignore-broken-test.patch \ %D%/packages/patches/ruby-rack-ignore-failing-test.patch \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ diff --git a/gnu/packages/patches/ruby-concurrent-test-arm.patch b/gnu/packages/patches/ruby-concurrent-test-arm.patch new file mode 100644 index 0000000000..75e6365565 --- /dev/null +++ b/gnu/packages/patches/ruby-concurrent-test-arm.patch @@ -0,0 +1,36 @@ +Work around two test suite failures on ARM: + + https://github.com/ruby-concurrency/concurrent-ruby/issues/547 + +The regexps here assume addresses like "0x1234" but on ARM (32-bit) +we get something like "0x-7db1e810" (notice the dash). + +diff --git a/spec/concurrent/edge/future_spec.rb b/spec/concurrent/edge/future_spec.rb +index a48fd29..4344d7e 100644 +--- b/spec/concurrent/edge/future_spec.rb ++++ a/spec/concurrent/edge/future_spec.rb +@@ -322,9 +322,9 @@ + four = three.delay.then(&:succ) + + # meaningful to_s and inspect defined for Future and Promise +- expect(head.to_s).to match /<#Concurrent::Edge::Future:0x[\da-f]+ pending>/ ++ expect(head.to_s).to match /<#Concurrent::Edge::Future:0x-?[\da-f]+ pending>/ + expect(head.inspect).to( +- match(/<#Concurrent::Edge::Future:0x[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x[\da-f]+ pending>\]>/)) ++ match(/<#Concurrent::Edge::Future:0x-?[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x-?[\da-f]+ pending>\]>/)) + + # evaluates only up to three, four is left unevaluated + expect(three.value!).to eq 3 +diff --git a/spec/concurrent/map_spec.rb b/spec/concurrent/map_spec.rb +index 13fd5b7..1c82ebe 100644 +--- b/spec/concurrent/map_spec.rb ++++ a/spec/concurrent/map_spec.rb +@@ -827,7 +827,7 @@ + end + + it '#inspect' do +- regexp = /\A#\Z/i ++ regexp = /\A#\Z/i + expect(Concurrent::Map.new.inspect).to match(regexp) + expect((Concurrent::Map.new {}).inspect).to match(regexp) + map = Concurrent::Map.new diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 4d839bcdf1..0a710ec5fe 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Pjotr Prins -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014, 2015 David Thompson ;;; Copyright © 2015 Ricardo Wurmus @@ -4102,7 +4102,8 @@ call.") "1x3g2admp14ykwfxidsicqbhlfsnxh9wyc806np4i15hws4if1d8")) ;; Exclude failing test reported at ;; https://github.com/ruby-concurrency/concurrent-ruby/issues/534 - (patches (search-patches "ruby-concurrent-ignore-broken-test.patch")))) + (patches (search-patches "ruby-concurrent-ignore-broken-test.patch" + "ruby-concurrent-test-arm.patch")))) (build-system ruby-build-system) (arguments `(#:test-target "spec" -- cgit v1.2.3 From dca96ad39567a0f66bdfe77ded301ec98ea9fc7e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Mar 2017 23:38:14 +0200 Subject: gnu: mlocate: Update URLs. * gnu/packages/search.scm (mlocate)[source, home-page]: Change URLs to pagure.{org,io}. --- gnu/packages/search.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index fd0f0bd389..eae9f373d6 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -194,13 +194,13 @@ interfaces, or a C API.") (version "0.26") (source (origin (method url-fetch) - (uri (string-append "https://fedorahosted.org/releases/m/l/" - "mlocate/mlocate-" version ".tar.xz")) + (uri (string-append "http://releases.pagure.org/mlocate/" + "mlocate-" version ".tar.xz")) (sha256 (base32 "0gi6y52gkakhhlnzy0p6izc36nqhyfx5830qirhvk3qrzrwxyqrh")))) (build-system gnu-build-system) - (home-page "https://fedorahosted.org/mlocate/") + (home-page "https://pagure.io/mlocate") (synopsis "Locate files on the file system") (description "mlocate is a locate/updatedb implementation. The 'm' stands for -- cgit v1.2.3 From 6f9f01fbf616c5f133d8641a9414fd53eefd4d07 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Mar 2017 23:46:07 +0200 Subject: hydra: Don't build deprecated packages. * build-aux/hydra/gnu-system.scm (hydra-jobs): When iterating over the packages, exclude those that match 'package-superseded'. --- build-aux/hydra/gnu-system.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 0976ff7304..507c6abe0e 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -305,11 +305,14 @@ valid." ;; Build everything, including replacements. (let ((all (fold-packages (lambda (package result) - (if (package-replacement package) - (cons* package - (package-replacement package) - result) - (cons package result))) + (cond ((package-replacement package) + (cons* package + (package-replacement package) + result)) + ((package-superseded package) + result) ;don't build it + (else + (cons package result)))) '())) (job (lambda (package) (package->job store package -- cgit v1.2.3 From 4fbed7494d782f1a1ee027e1a3a2d2e4b12a53ab Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 30 Mar 2017 23:20:07 +0300 Subject: gnu: rapidjson: Fix building on aarch64. * gnu/packages/web.scm (rapidjson)[arguments]: Add custom phase for aarch64 to fix -march detection. --- gnu/packages/web.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 1c974370c1..7215dcbed1 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Jelle Licht -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Clément Lassieur @@ -464,6 +464,17 @@ current version of any major web browser.") '(substitute* (find-files "." "^CMakeLists\\.txt$") (("-Werror") ""))))) (build-system cmake-build-system) + (arguments + `(,@(if (string-prefix? "aarch64" (or (%current-target-system) + (%current-system))) + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-aarch-march-detection + (lambda _ + (substitute* (find-files "." "^CMakeLists\\.txt$") + (("native") "armv8-a")) + #t)))) + '()))) (home-page "https://github.com/miloyip/rapidjson") (synopsis "JSON parser/generator for C++ with both SAX/DOM style API") (description -- cgit v1.2.3 From cf1d581464645b3f96ead827010f84ef7d714506 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Thu, 30 Mar 2017 16:02:08 +1000 Subject: gnu: khmer: Build with gcc-4. * gnu/packages/bioinformatics.scm (khmer)[inputs]: Add gcc-4.9. --- gnu/packages/bioinformatics.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 3c0366814b..7c21586fcf 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3150,7 +3150,10 @@ command, or queried for specific k-mers with @code{jellyfish query}.") `(("zlib" ,zlib) ("bzip2" ,bzip2) ("python-screed" ,python-screed) - ("python-bz2file" ,python-bz2file))) + ("python-bz2file" ,python-bz2file) + ;; Tests fail when gcc-5 is used for compilation. Use gcc-4.9 at least + ;; until the next version of khmer (likely 2.1) is released. + ("gcc" ,gcc-4.9))) (home-page "https://khmer.readthedocs.org/") (synopsis "K-mer counting, filtering and graph traversal library") (description "The khmer software is a set of command-line tools for -- cgit v1.2.3 From 60f37e3cb1cb0ff829ad9b615ff5d7a36bc7b6f3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 2 Apr 2017 23:39:01 +0200 Subject: gnu: sddm: Build without greenisland. This Wayland compositor is currently abandonware and has known problems. * gnu/packages/display-managers.scm (sddm)[inputs]: Remove GREENISLAND. --- gnu/packages/display-managers.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 307bc864ec..0a70fd737b 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -140,7 +140,6 @@ Qt-style API for Wayland clients.") ("qttools" ,qttools))) (inputs `(("glib" ,glib) - ("greenisland" ,greenisland) ("libxcb" ,libxcb) ("libxkbcommon" ,libxkbcommon) ("linux-pam" ,linux-pam) -- cgit v1.2.3 From 245575eaf33801753ac8290e077c4397b2568540 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 2 Apr 2017 23:21:11 +0200 Subject: gnu: guile-git: Install .go files to /site-ccache. * gnu/packages/guile.scm (guile-git)[arguments] : Change "/ccache" to "/site-ccache" in Makefile.am. --- gnu/packages/guile.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6070fee000..96fc84a960 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1707,6 +1707,11 @@ is not available for Guile 2.0.") '(#:phases (modify-phases %standard-phases (add-after 'unpack 'bootstrap (lambda _ + ;; Install .go files to "site-ccache", not "ccache". + (substitute* "Makefile.am" + (("/ccache") + "/site-ccache")) + (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("autoconf" ,autoconf) -- cgit v1.2.3