diff options
179 files changed, 2359 insertions, 2913 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 788b260e5e..b979d90fa7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -573,7 +573,6 @@ dist_patch_DATA = \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bcftools-regidx-unsigned-char.patch \ - %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/byobu-writable-status.patch \ @@ -705,7 +704,6 @@ dist_patch_DATA = \ %D%/packages/patches/gimp-CVE-2017-17787.patch \ %D%/packages/patches/gimp-CVE-2017-17789.patch \ %D%/packages/patches/glib-networking-ssl-cert-file.patch \ - %D%/packages/patches/glib-respect-datadir.patch \ %D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ @@ -737,7 +735,6 @@ dist_patch_DATA = \ %D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpsbabel-minizip.patch \ %D%/packages/patches/gpsbabel-qstring.patch \ - %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groff-source-date-epoch.patch \ %D%/packages/patches/gsl-test-i686.patch \ @@ -809,7 +806,6 @@ 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-CVE-2016-10165.patch \ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \ %D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \ %D%/packages/patches/ledger-fix-uninitialized.patch \ @@ -860,8 +856,6 @@ dist_patch_DATA = \ %D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ - %D%/packages/patches/libtasn1-CVE-2017-10790.patch \ - %D%/packages/patches/libtasn1-CVE-2018-6003.patch \ %D%/packages/patches/libtheora-config-guess.patch \ %D%/packages/patches/libtirpc-missing-headers.patch \ %D%/packages/patches/libtiff-CVE-2017-9935.patch \ @@ -873,7 +867,6 @@ dist_patch_DATA = \ %D%/packages/patches/libvorbis-CVE-2017-14632.patch \ %D%/packages/patches/libvorbis-CVE-2017-14633.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ - %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ @@ -970,8 +963,6 @@ dist_patch_DATA = \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/pcmanfm-CVE-2017-8934.patch \ - %D%/packages/patches/pcre2-CVE-2017-7186.patch \ - %D%/packages/patches/pcre2-CVE-2017-8786.patch \ %D%/packages/patches/perl-file-path-CVE-2017-6512.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \ @@ -1100,7 +1091,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+.patch \ - %D%/packages/patches/tar-CVE-2016-6321.patch \ + %D%/packages/patches/tar-remove-wholesparse-check.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ @@ -1170,8 +1161,6 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/xboing-CVE-2004-0149.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-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm index 7880e533da..8d5f0117f5 100644 --- a/gnu/packages/acl.scm +++ b/gnu/packages/acl.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,8 +48,20 @@ (build-system gnu-build-system) (arguments `(#:test-target "tests" + #:modules ((ice-9 ftw) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases + ;; XXX After repacking the sources the timestamps are reset to the + ;; epoch, which leads to a failure in gzipping the CHANGES file. + (add-after 'unpack 'ensure-no-mtimes-pre-1980 + (lambda _ + (let ((early-1980 315619200)) ; 1980-01-02 UTC + (ftw "." (lambda (file stat flag) + (unless (<= early-1980 (stat:mtime stat)) + (utime file early-1980 early-1980)) + #t)) + #t))) (add-after 'build 'patch-exec-bin-sh (lambda _ (substitute* "test/run" @@ -64,10 +77,11 @@ ;; this user does not exist within Guix's build environment. (for-each (lambda (file) (delete-file (string-append "test/" file))) - '("setfacl-X.test" "cp.test" "misc.test")))) + '("setfacl-X.test" "cp.test" "misc.test")) + #t)) (replace 'install (lambda _ - (zero? (system* "make" "install" "install-lib" "install-dev"))))))) + (invoke "make" "install" "install-lib" "install-dev")))))) (inputs `(("attr" ,attr))) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8f48e42fec..4755b3d7b7 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -894,13 +894,15 @@ at once based on a Perl regular expression.") "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}") - ;; Don't try to chown root. - "") - (("mkdir -p \\$\\(ROTT_STATDIR\\)") - ;; Don't attempt to create /var/lib/rottlog. - "true"))))) + '(begin + (substitute* "Makefile.in" + (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}") + ;; Don't try to chown root. + "") + (("mkdir -p \\$\\(ROTT_STATDIR\\)") + ;; Don't attempt to create /var/lib/rottlog. + "true")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location @@ -964,7 +966,9 @@ system administrator.") "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "lib/zlib")))) + '(begin + (delete-file-recursively "lib/zlib") + #t)))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1358,9 +1362,11 @@ environment variable is set and output is to tty.") (base32 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4")) (modules '((guix build utils))) - (snippet '(substitute* "tests/testsuite" - (("#![[:blank:]]?/bin/sh") - "#!$SHELL"))))) + (snippet '(begin + (substitute* "tests/testsuite" + (("#![[:blank:]]?/bin/sh") + "#!$SHELL")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1748,14 +1754,16 @@ done with the @code{auditctl} utility.") "08bga42ipymmbxd7wy4x5sl26c0ir1fm3n9rc6nqmhx69z66wyd8")) (modules '((guix build utils))) (snippet - '(map delete-file-recursively - ;; Remove bundled lua, pcap, and pcre libraries. - ;; FIXME: Remove bundled liblinear once packaged. - '("liblua" - "libpcap" - "libpcre" - ;; Remove pre-compiled binares. - "mswin32"))))) + '(begin + (for-each delete-file-recursively + ;; Remove bundled lua, pcap, and pcre libraries. + ;; FIXME: Remove bundled liblinear once packaged. + '("liblua" + "libpcap" + "libpcre" + ;; Remove pre-compiled binares. + "mswin32")) + #t)))) (build-system gnu-build-system) (inputs `(("openssl" ,openssl) @@ -2056,7 +2064,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.") (snippet ;; Remove binaries contained in the tarball which are only for the ;; target and can be regenerated anyway. - '(delete-file-recursively "bin")) + '(begin + (delete-file-recursively "bin") + #t)) (file-name (string-append name "-" version ".tar.gz")))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2aa1777db3..0f3e4229d8 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; @@ -519,31 +519,31 @@ a C program.") (license license:bsd-3))) (define-public fftw - ;; TODO: Make this 3.3.7 (see below) on the next upgrade cycle. (package (name "fftw") - (version "3.3.5") + (version "3.3.7") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-" version".tar.gz")) (sha256 (base32 - "1kwbx92ps0r7s2mqy7lxbxanslxdzj7dp7r7gmdkzv1j8yqf3kwf")))) + "0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-shared" "--enable-openmp" "--enable-threads") - #:phases (alist-cons-before - 'build 'no-native + #:phases + (modify-phases %standard-phases + (add-before 'build 'no-native (lambda _ ;; By default '-mtune=native' is used. However, that may ;; cause the use of ISA extensions (SSE2, etc.) that are ;; not necessarily available on the user's machine when ;; that package is built on a different machine. (substitute* (find-files "." "Makefile$") - (("-mtune=native") ""))) - %standard-phases))) + (("-mtune=native") "")) + #t))))) (native-inputs `(("perl" ,perl))) (home-page "http://fftw.org") (synopsis "Computing the discrete Fourier transform") @@ -579,25 +579,12 @@ cosine/ sine transforms or DCT/DST).") (string-append (package-description fftw) " With OpenMPI parallelism support.")))) -(define-public fftw-3.3.7 - ;; TODO: Make this the default 'fftw' on the next upgrade cycle. - (package - (inherit fftw) - (version "3.3.7") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-" - version".tar.gz")) - (sha256 - (base32 - "0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v")))))) - (define-public fftw-avx (package - (inherit fftw-3.3.7) + (inherit fftw) (name "fftw-avx") (arguments - (substitute-keyword-arguments (package-arguments fftw-3.3.7) + (substitute-keyword-arguments (package-arguments fftw) ((#:configure-flags flags ''()) ;; Enable AVX & co. See details at: ;; <http://fftw.org/fftw3_doc/Installation-on-Unix.html>. @@ -743,7 +730,8 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") ;; See ;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d ((".*svd_preallocate[^\n]*" &) - (string-append "//" & " // Not supported by BDCSVD"))))))) + (string-append "//" & " // Not supported by BDCSVD"))) + #t)))) (build-system cmake-build-system) (arguments '(;; Turn off debugging symbols to save space. diff --git a/gnu/packages/attr.scm b/gnu/packages/attr.scm index fe102d211c..ff0a07aa67 100644 --- a/gnu/packages/attr.scm +++ b/gnu/packages/attr.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,13 +43,14 @@ (modify-phases %standard-phases (add-after 'configure 'patch-makefile-SHELL (lambda _ - (patch-makefile-SHELL "include/buildmacros"))) + (patch-makefile-SHELL "include/buildmacros") + #t)) (replace 'install (lambda _ - (zero? (system* "make" - "install" - "install-lib" - "install-dev")))) + (invoke "make" + "install" + "install-lib" + "install-dev"))) (replace 'check (lambda* (#:key target #:allow-other-keys) ;; Use the right shell. @@ -57,11 +59,14 @@ (which "sh"))) ;; When building natively, run the tests. + ;; + ;; Note that we use system* and unconditionally return #t here + ;; to ignore the test result, because the tests will fail when + ;; the build is performed on a file system without support for + ;; extended attributes, and we wish to allow Guix to be built + ;; on such systems. (unless target (system* "make" "tests" "-C" "test")) - - ;; XXX: Ignore the test result since this is - ;; dependent on the underlying file system. #t))))) (inputs ;; Perl is needed to run tests; remove it from cross builds. diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index d8569096ab..82fadfe175 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -209,7 +209,8 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port ,(string-append "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) +namespace ARDOUR { const char* revision = \"" version "\" ; }")) + #t))) (sha256 (base32 "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) @@ -510,7 +511,9 @@ tools (analyzer, mono/stereo tools, crossovers).") (modules '((guix build utils))) (snippet ;; remove prebuilt binaries - '(delete-file-recursively "linux_32bit")))) + '(begin + (delete-file-recursively "linux_32bit") + #t)))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) @@ -1091,7 +1094,7 @@ also play midifiles using a Soundfont.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (substitute* "bootstrap" (("\r\n") "\n")) (zero? (system* "sh" "bootstrap"))))))) @@ -2483,12 +2486,6 @@ Tracker 3 S3M and Impulse Tracker IT files.") ("automake" ,automake) ("libtool" ,libtool) ("file" ,file))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "bootstrap"))))))) (home-page "http://www.surina.net/soundtouch/") (synopsis "Audio processing library for changing tempo, pitch and playback rate") @@ -2751,8 +2748,10 @@ result.") version ".tar.bz2")) (snippet ;; Don't optimize for a specific processor architecture. - '(substitute* "libs/Makefile" - (("^CXXFLAGS \\+= -march=native") ""))) + '(begin + (substitute* "libs/Makefile" + (("^CXXFLAGS \\+= -march=native") "")) + #t)) (modules '((guix build utils))) (sha256 (base32 @@ -2796,8 +2795,10 @@ engine.") version ".tar.bz2")) (snippet ;; Don't optimize for a specific processor architecture. - '(substitute* '("apps/Makefile" "libs/Makefile") - (("^CXXFLAGS \\+= -march=native") ""))) + '(begin + (substitute* '("apps/Makefile" "libs/Makefile") + (("^CXXFLAGS \\+= -march=native") "")) + #t)) (modules '((guix build utils))) (sha256 (base32 @@ -2891,12 +2892,6 @@ point audio data.") "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4")))) (build-system gnu-build-system) ;; The source tarball is not bootstrapped. - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) - ;; Bootstrapping tools (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3109,12 +3104,6 @@ mixers.") (base32 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3334,7 +3323,7 @@ representations.") (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda* (#:key outputs #:allow-other-keys) (setenv "HOME" (getcwd)) (invoke "sh" "autogen.sh"))) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 0f4ecc4ab6..b86c1c835a 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -3,11 +3,12 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> -;;; Copyright © 2015, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -192,7 +193,8 @@ exec ~a --no-auto-compile \"$0\" \"$@\" (patch-shebang "configure")) (exit (status:exit-val result)))) port))) - (chmod (string-append bin "/autoconf") #o555))))) + (chmod (string-append bin "/autoconf") #o555) + #t)))) ;; Do not show it in the UI since it's meant for internal use. (properties '((hidden? . #t))))) @@ -248,14 +250,14 @@ output is indexed in many ways to simplify browsing.") (define-public automake (package (name "automake") - (version "1.15.1") + (version "1.16.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/automake/automake-" version ".tar.xz")) (sha256 (base32 - "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg")) + "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax")) (patches (search-patches "automake-skip-amhello-tests.patch")))) (build-system gnu-build-system) @@ -287,32 +289,33 @@ output is indexed in many ways to simplify browsing.") (setenv "CONFIG_SHELL" sh) #t))) - ;; Files like `install-sh', `mdate.sh', etc. must use - ;; #!/bin/sh, otherwise users could leak erroneous shebangs - ;; in the wild. See <http://bugs.gnu.org/14201> for an - ;; example. - (add-after 'install 'unpatch-shebangs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/share"))) - (define (starts-with-shebang? file) - (equal? (call-with-input-file file - (lambda (p) - (list (get-u8 p) (get-u8 p)))) - (map char->integer '(#\# #\!)))) + ;; Files like `install-sh', `mdate.sh', etc. must use + ;; #!/bin/sh, otherwise users could leak erroneous shebangs + ;; in the wild. See <http://bugs.gnu.org/14201> for an + ;; example. + (add-after 'install 'unpatch-shebangs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share"))) + (define (starts-with-shebang? file) + (equal? (call-with-input-file file + (lambda (p) + (list (get-u8 p) (get-u8 p)))) + (map char->integer '(#\# #\!)))) - (for-each (lambda (file) - (when (and (starts-with-shebang? file) - (executable-file? file)) - (format #t "restoring shebang on `~a'~%" - file) - (substitute* file - (("^#!.*/bin/sh") - "#!/bin/sh") - (("^#!.*/bin/env(.*)$" _ args) - (string-append "#!/usr/bin/env" - args))))) - (find-files dir ".*")))))))) + (for-each (lambda (file) + (when (and (starts-with-shebang? file) + (executable-file? file)) + (format #t "restoring shebang on `~a'~%" + file) + (substitute* file + (("^#!.*/bin/sh") + "#!/bin/sh") + (("^#!.*/bin/env(.*)$" _ args) + (string-append "#!/usr/bin/env" + args))))) + (find-files dir ".*")) + #t)))))) (home-page "https://www.gnu.org/software/automake/") (synopsis "Making GNU standards-compliant Makefiles") (description @@ -322,21 +325,6 @@ intuitive format and then Automake works with Autoconf to produce a robust Makefile, simplifying the entire process for the developer.") (license gpl2+))) ; some files are under GPLv3+ -(define-public automake-1.16 - ;; Make this the default on the next rebuild cycle. - (package - (inherit automake) - (version "1.16.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/automake/automake-" - version ".tar.xz")) - (sha256 - (base32 - "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax")) - (patches - (search-patches "automake-skip-amhello-tests.patch")))))) - (define-public libtool (package (name "libtool") @@ -353,6 +341,9 @@ Makefile, simplifying the entire process for the developer.") (propagated-inputs `(("m4" ,m4))) (native-inputs `(("m4" ,m4) ("perl" ,perl) + ;; XXX: this shouldn't be necessary, but without it test + ;; 102 fails because it cannot find ltdl/libltdl.la. + ("libltdl" ,libltdl) ("help2man" ,help2man) ;because we modify ltmain.sh ("automake" ,automake) ;some tests rely on 'aclocal' ("autoconf" ,autoconf-wrapper))) ;others on 'autom4te' diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 2fafa2c4a6..628c39a6eb 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -278,9 +278,6 @@ random access nor for in-place modification.") `(#:parallel-build? #f ;race conditions #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf"))) (add-before 'build 'qualify-inputs (lambda* (#:key inputs #:allow-other-keys) ;; This script is full of pitfalls. Fix some that particularly @@ -468,7 +465,8 @@ detection, and lossless compression.") ;; Remove bundled shared libraries. (with-directory-excursion "src/borg/algorithms" (for-each delete-file-recursively - (list "blake2" "lz4" "zstd"))))))) + (list "blake2" "lz4" "zstd"))) + #t)))) (build-system python-build-system) (arguments `(#:modules ((srfi srfi-26) ; for cut diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e91f7d43ef..c6b21e725d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -2,16 +2,17 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. @@ -168,16 +169,16 @@ implementation offers several extensions over the standard utility.") (define-public tar (package (name "tar") - (version "1.29") + (version "1.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/tar/tar-" version ".tar.xz")) (sha256 (base32 - "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) - (patches (search-patches "tar-CVE-2016-6321.patch" - "tar-skip-unreliable-tests.patch")))) + "1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi")) + (patches (search-patches "tar-skip-unreliable-tests.patch" + "tar-remove-wholesparse-check.patch")))) (build-system gnu-build-system) ;; Note: test suite requires ~1GiB of disk space. (arguments @@ -189,7 +190,13 @@ implementation offers several extensions over the standard utility.") (substitute* "src/system.c" (("/bin/sh") (string-append bash "/bin/sh"))) - #t)))))) + #t)))) + + ;; Test #92 "link mismatch" expects "a/z: Not linked to a/y" but gets + ;; "a/y: Not linked to a/z" and fails, presumably due to differences in + ;; the order in which 'diff' traverses directories. That leads to a + ;; test failure even though conceptually the test passes. Skip it. + #:make-flags '("TESTSUITEFLAGS=-k '!link mismatch'"))) ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able ;; to refer to the target Bash. @@ -211,14 +218,14 @@ standard utility.") (define-public patch (package (name "patch") - (version "2.7.5") + (version "2.7.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/patch/patch-" version ".tar.xz")) (sha256 (base32 - "16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx")) + "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc")) (patches (search-patches "patch-hurd-path-max.patch")))) (build-system gnu-build-system) (native-inputs `(("ed" ,ed))) @@ -304,14 +311,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.28") + (version "8.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi")))) + "0plm1zs9il6bb5mk881qvbghq4glc8ybbgakk2lfzb0w64fgml4j")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! @@ -408,16 +415,15 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.28.1") + (version "2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939")) - (patches (search-patches "binutils-ld-new-dtags.patch" - "binutils-loongson-workaround.patch")))) + "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg")) + (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) ;; TODO: Add dependency on zlib + those for Gold. @@ -426,6 +432,12 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; on GCC when bootstrapping. "LDFLAGS=-static-libgcc" + ;; Turn on --enable-new-dtags by default to make the + ;; linker set RUNPATH instead of RPATH on binaries. + ;; This is important because RUNPATH can be overriden + ;; using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" + ;; Don't search under /usr/lib & co. "--with-lib-path=/no-ld-lib-path" @@ -538,7 +550,6 @@ store.") ;; Note: Always use a dot after the minor version since various places rely ;; on "version-major+minor" to determine where locales are found. (version "2.26.105-g0890d5379c") - (replacement glibc-2.26-patched) (source (origin (method url-fetch) (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" @@ -551,13 +562,15 @@ store.") ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so ;; instead of ours. - '(substitute* "sysdeps/unix/sysv/linux/configure" - (("use_ldconfig=yes") - "use_ldconfig=no"))) + '(begin + (substitute* "sysdeps/unix/sysv/linux/configure" + (("use_ldconfig=yes") + "use_ldconfig=no")) + #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch")))) + "glibc-allow-kernel-2.6.32.patch")))) (build-system gnu-build-system) ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc @@ -799,14 +812,13 @@ with the Linux kernel.") ;; Force mach/hurd/libpthread subdirs to build first in order to avoid ;; linking errors. ;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html> - (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))))))))) + (let ((flags (list "-j" (number->string (parallel-job-count))))) + (define (make target) + (apply invoke "make" target flags)) + (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (apply invoke "make" flags)))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" @@ -841,14 +853,6 @@ 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 glibc-2.26-patched - (package - (inherit glibc) - (source (origin - (inherit (package-source glibc)) - (patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch") - (origin-patches (package-source glibc)))))))) - (define-public glibc-2.25 (package (inherit glibc) @@ -862,7 +866,6 @@ GLIBC/HURD for a Hurd host" "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" @@ -881,7 +884,6 @@ GLIBC/HURD for a Hurd host" "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2017-1000366-pt1.patch" @@ -901,7 +903,6 @@ GLIBC/HURD for a Hurd host" "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2016-3075.patch" @@ -923,6 +924,7 @@ GLIBC/HURD for a Hurd host" (base32 "0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb")) (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2015-7547.patch" @@ -965,8 +967,8 @@ the 'share/locale' sub-directory of this package.") `(modify-phases ,phases (replace 'build (lambda _ - (zero? (system* "make" "localedata/install-locales" - "-j" (number->string (parallel-job-count)))))) + (invoke "make" "localedata/install-locales" + "-j" (number->string (parallel-job-count))))) (delete 'install) (delete 'move-static-libs))) ((#:configure-flags flags) @@ -987,8 +989,7 @@ the 'share/locale' sub-directory of this package.") (arguments `(#:modules ((guix build utils)) #:builder (begin - (use-modules (srfi srfi-1) - (guix build utils)) + (use-modules (guix build utils)) (let* ((libc (assoc-ref %build-inputs "glibc")) (gzip (assoc-ref %build-inputs "gzip")) @@ -999,27 +1000,27 @@ the 'share/locale' sub-directory of this package.") (setenv "PATH" (string-append libc "/bin:" gzip "/bin")) (mkdir-p localedir) - (every (lambda (locale) - (define file - ;; Use the "normalized codeset" by - ;; default--e.g., "en_US.utf8". - (string-append localedir "/" locale ".utf8")) - - (and (zero? (system* "localedef" "--no-archive" - "--prefix" localedir - "-i" locale - "-f" "UTF-8" file)) - (begin - ;; For backward compatibility with Guix - ;; <= 0.8.3, add "xx_YY.UTF-8". - (symlink (string-append locale ".utf8") - (string-append localedir "/" - locale ".UTF-8")) - #t))) - - ;; These are the locales commonly used for - ;; tests---e.g., in Guile's i18n tests. - '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")))))) + (for-each (lambda (locale) + (define file + ;; Use the "normalized codeset" by + ;; default--e.g., "en_US.utf8". + (string-append localedir "/" locale ".utf8")) + + (invoke "localedef" "--no-archive" + "--prefix" localedir + "-i" locale + "-f" "UTF-8" file) + + ;; For backward compatibility with Guix + ;; <= 0.8.3, add "xx_YY.UTF-8". + (symlink (string-append locale ".utf8") + (string-append localedir "/" + locale ".UTF-8"))) + + ;; These are the locales commonly used for + ;; tests---e.g., in Guile's i18n tests. + '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")) + #t)))) (inputs `(("glibc" ,glibc) ("gzip" ,gzip))) (synopsis "Small sample of UTF-8 locales") @@ -1063,30 +1064,25 @@ command.") "--host=i586-pc-gnu" "--enable-obsolete-rpc")) ((#:phases _) - '(alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install-headers")) - - ;; Make an empty stubs.h to work around not being able to - ;; produce a valid stubs.h and causing the build to fail. See - ;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>. - (let ((out (assoc-ref outputs "out"))) - (close-port - (open-output-file - (string-append out "/include/gnu/stubs.h")))))) - - ;; Nothing to build. - (alist-delete - 'build - - (alist-cons-before - 'configure 'pre-configure - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - %standard-phases)))))))) + '(modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install-headers") + + ;; Make an empty stubs.h to work around not being able to + ;; produce a valid stubs.h and causing the build to fail. See + ;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>. + (let ((out (assoc-ref outputs "out"))) + (close-port + (open-output-file + (string-append out "/include/gnu/stubs.h")))))) + (delete 'build) ; nothing to build + (add-before 'configure 'patch-configure-script + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)))))))) (define-public tzdata (package @@ -1125,8 +1121,8 @@ command.") (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" (assoc-ref inputs "tzcode")))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Move data in the right place. @@ -1138,7 +1134,8 @@ command.") (copy-recursively (string-append out "/share/zoneinfo-leaps") (string-append out "/share/zoneinfo/right")) (delete-file-recursively - (string-append out "/share/zoneinfo-leaps"))))) + (string-append out "/share/zoneinfo-leaps")) + #t))) (delete 'configure)))) (inputs `(("tzcode" ,(origin (method url-fetch) @@ -1198,9 +1195,11 @@ and daylight-saving rules.") (snippet ;; Work around "declared gets" error on glibc systems (fixed by ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.) - '(substitute* "srclib/stdio.in.h" - (("^#undef gets") "") - (("^_GL_WARN_ON_USE \\(gets.*") ""))))) + '(begin + (substitute* "srclib/stdio.in.h" + (("^#undef gets") "") + (("^_GL_WARN_ON_USE \\(gets.*") "")) + #t)))) (build-system gnu-build-system) (synopsis "Character set conversion library") (description diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index b8b0ae58f6..52d93e8e7e 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; @@ -71,7 +71,14 @@ (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx") - (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps"))) + (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps") + (13 "1djkx0w9v62q78gz3jsvamj1jq53i6hbfrfhhsw86ihwpjnfy98v") + (14 "0z5ikcq9zyxw79d0z36r5p0mspnb5piavbv03jmlan1wnknmrxx7") + (15 "09n307fi1j257abhm295k6ksmnzw47ka2zhnr0i5lbdnpvn04xnk") + (16 "1cgi1y6mifm8hsgv4avj5ih76535js3qba1sqwbfvp7si76927sh") + (17 "0w6jpj2giakji1ir83rpkx1y7n7xqppah3j748m6dm38hywr0gvp") + (18 "1k58h4wxbsg7r4rwhrvzx5hfbapba2nxjysbhh6qp6ki5ys99i2v") + (19 "07n1i5610lbs672x1s8g82qn3qfj06s0ip3z80sri0g8vxp0s5r7"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of @@ -92,9 +99,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." 1)) (define-public bash - (let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" - "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'" - "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" + (let* ((cppflags (string-join '("-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" "-DNON_INTERACTIVE_LOGIN_SHELLS" "-DSSH_SOURCE_BASHRC") @@ -159,7 +164,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." ;; Add a `sh' -> `bash' link. (let ((out (assoc-ref outputs "out"))) (with-directory-excursion (string-append out "/bin") - (symlink "bash" "sh"))))) + (symlink "bash" "sh") + #t)))) (add-after 'install 'move-development-files (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index f9fda96bb2..10e8fe848f 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; ;;; This file is part of GNU Guix. @@ -30,14 +30,14 @@ (define-public libgc (package (name "libgc") - (version "7.6.0") + (version "7.6.4") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) + "076dzsqqyxd3nlzs0z277vvhqjp8nv5dqi763s0m90zr6ljiyk5r")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -91,7 +91,7 @@ C or C++ programs, though that is not its primary goal.") (define-public libatomic-ops (package (name "libatomic-ops") - (version "7.4.8") + (version "7.6.2") (source (origin (method url-fetch) (uri (string-append @@ -99,13 +99,13 @@ C or C++ programs, though that is not its primary goal.") version "/libatomic_ops-" version ".tar.gz")) (sha256 (base32 - "0sj3plzpbqgxrqpjq3w2zi3zxxqqps71ncdwk5s1k30i9d9da1f4")))) + "1rif2hjscq5mh639nsnjhb90c01gnmy1sbmj6x6hsn1xmpnj95r1")))) (build-system gnu-build-system) (outputs '("out" "debug")) (synopsis "Accessing hardware atomic memory update operations") (description "This C library provides semi-portable access to hardware-provided atomic -memory update operations on a number architectures. These might allow you to +memory update operations on a number of architectures. These might allow you to write code that does more interesting things in signal handlers, write lock-free code, experiment with thread programming paradigms, etc.") (home-page "https://github.com/ivmai/libatomic_ops/") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 78754793a5..426618147f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -296,9 +296,10 @@ BAM files.") "0093hkkvxmbwfaa7905s6185jymynvg42kq6sxv7fili11l5mxwz")) (patches (search-patches "bcftools-regidx-unsigned-char.patch")) (modules '((guix build utils))) - (snippet - ;; Delete bundled htslib. - '(delete-file-recursively "htslib-1.5")))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.5") + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1195,10 +1196,12 @@ errors at the end of reads.") "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - ;; replace BUILD_HOST and BUILD_TIME for deterministic build - (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") - (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))) + '(begin + (substitute* "Makefile" + ;; replace BUILD_HOST and BUILD_TIME for deterministic build + (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") + (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")) + #t)))) (build-system gnu-build-system) (inputs `(("perl" ,perl) @@ -1392,10 +1395,12 @@ well as many of the command line options.") "15z2w3bvnc0n4qmb9bd6d8ylc2h2nj883x2w9iixf4x3vki9b22i")) (modules '((guix build utils))) (snippet - '(substitute* "setup.py" - ;; remove dependency on outdated "distribute" module - (("^from distribute_setup import use_setuptools") "") - (("^use_setuptools\\(\\)") ""))))) + '(begin + (substitute* "setup.py" + ;; remove dependency on outdated "distribute" module + (("^from distribute_setup import use_setuptools") "") + (("^use_setuptools\\(\\)") "")) + #t)))) (build-system python-build-system) (arguments `(#:tests? #f ;tests fail because test data are not included @@ -1427,9 +1432,11 @@ multiple sequence alignments.") (base32 "0dzap2axin9cbbl0d825w294bpn00zagfm1sigamm4v2pm5bj9lp")) (modules '((guix build utils))) - (snippet - ;; Drop bundled htslib. TODO: Also remove samtools and bcftools. - '(delete-file-recursively "htslib")))) + (snippet '(begin + ;; Drop bundled htslib. TODO: Also remove samtools + ;; and bcftools. + (delete-file-recursively "htslib") + #t)))) (build-system python-build-system) (arguments `(#:modules ((ice-9 ftw) @@ -1801,9 +1808,10 @@ time.") ;; for download from Sourceforge, but it has not been merged. (patches (search-patches "crossmap-allow-system-pysam.patch")) (modules '((guix build utils))) - ;; remove bundled copy of pysam - (snippet - '(delete-file-recursively "lib/pysam")))) + (snippet '(begin + ;; remove bundled copy of pysam + (delete-file-recursively "lib/pysam") + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -1912,7 +1920,8 @@ files.") (snippet '(begin ;; Delete bundled libBigWig sources - (delete-file-recursively "libBigWig"))))) + (delete-file-recursively "libBigWig") + #t)))) (build-system python-build-system) (arguments `(#:phases @@ -3786,9 +3795,11 @@ sequences).") "08znbvqq5xknfhmpp3wcj574zvi4p7i8zifi67c9qw9a6ikp42fj")) (modules '((guix build utils))) (snippet - ;; Delete bundled kseq. - ;; TODO: Also delete bundled murmurhash and open bloom filter. - '(delete-file "src/mash/kseq.h")))) + '(begin + ;; Delete bundled kseq. + ;; TODO: Also delete bundled murmurhash and open bloom filter. + (delete-file "src/mash/kseq.h") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests. @@ -3966,18 +3977,19 @@ assembled metagenomic sequence.") (base32 "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip")) (modules '((guix build utils))) - (snippet - '(substitute* "setup.py" - ;; Use setuptools, or else the executables are not - ;; installed. - (("distutils.core") "setuptools") - ;; use "gcc" instead of "cc" for compilation - (("^defines") - "cc.set_executables( + (snippet '(begin + (substitute* "setup.py" + ;; Use setuptools, or else the executables are not + ;; installed. + (("distutils.core") "setuptools") + ;; use "gcc" instead of "cc" for compilation + (("^defines") + "cc.set_executables( compiler='gcc', compiler_so='gcc', linker_exe='gcc', -linker_so='gcc -shared'); defines"))))) +linker_so='gcc -shared'); defines")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 ; only Python 2 is supported @@ -4778,7 +4790,8 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.") (("^from distribute_setup import use_setuptools") "") (("^use_setuptools\\(\\)") "") ;; do not use bundled copy of pysam - (("^have_pysam = False") "have_pysam = True")))))) + (("^have_pysam = False") "have_pysam = True")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2)) (inputs @@ -4829,9 +4842,9 @@ distribution, coverage uniformity, strand specificity, etc.") "Data2DB" "PCL2Bin"))) (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (replace 'bootstrap (lambda _ - (zero? (system* "bash" "gen_auto")))) + (invoke "bash" "gen_auto"))) (add-after 'build 'build-additional-tools (lambda* (#:key make-flags #:allow-other-keys) (every (lambda (dir) @@ -5334,9 +5347,10 @@ structures, classes for genomic regions, mapped sequencing reads, etc.") (sha256 (base32 "08r684l50pnxjpvmhzjgqq56yv9rfw90k8vx0nsrnrzk8mf9hsdq")) (modules '((guix build utils))) - (snippet - ;; Remove bundled samtools. - '(delete-file-recursively "samtools")))) + (snippet '(begin + ;; Remove bundled samtools. + (delete-file-recursively "samtools") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target @@ -10938,13 +10952,6 @@ droplet sequencing. It has been particularly tailored for Drop-seq.") (sha256 (base32 "0g38g8s3npr0gjm9fahlbhiskyfws9l5i0x1ml3rakzj7az5l9c9")))) - (arguments - (substitute-keyword-arguments (package-arguments htslib) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif")))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -11815,7 +11822,8 @@ bytes of memory space, where n is the length of the string.") (snippet '(begin (delete-file-recursively "include/spdlog") (for-each delete-file '("include/xxhash.h" - "src/xxhash.c")))))) + "src/xxhash.c")) + #t)))) ("libdivsufsort" ,libdivsufsort) ("libgff" ,libgff) ("tbb" ,tbb) @@ -12540,7 +12548,8 @@ contains (snippet '(begin (for-each delete-file (find-files "jar/lib" "\\.jar$")) - (delete-file-recursively "3rdParty"))))) + (delete-file-recursively "3rdParty") + #t)))) (build-system ant-build-system) (arguments `(#:tests? #f ; test data are not included diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index f4ba82810a..ebfe2a82bf 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +39,7 @@ (define-public boost (package (name "boost") - (version "1.64.0") + (version "1.66.0") (source (origin (method url-fetch) (uri (string-append @@ -46,7 +48,7 @@ ".tar.bz2")) (sha256 (base32 - "0cikd35xfkpg9nnl76yqqnqxnf3hyfjjww8xjd4akflprsm5rk3v")))) + "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")))) (build-system gnu-build-system) (inputs `(("icu4c" ,icu4c) ("zlib" ,zlib))) @@ -73,8 +75,8 @@ '())) #:phases (modify-phases %standard-phases - (replace - 'configure + (delete 'bootstrap) + (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* '("libs/config/configure" @@ -88,21 +90,22 @@ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* "./bootstrap.sh" - (string-append "--prefix=" out) - "--with-toolset=gcc"))))) - (replace - 'build + (invoke "./bootstrap.sh" + (string-append "--prefix=" out) + "--with-toolset=gcc") + #t))) + (replace 'build (lambda* (#:key outputs make-flags #:allow-other-keys) - (zero? (apply system* "./b2" - (format #f "-j~a" (parallel-job-count)) - make-flags)))) - (replace - 'install + (apply invoke "./b2" + (format #f "-j~a" (parallel-job-count)) + make-flags) + #t)) + (replace 'install (lambda* (#:key outputs make-flags #:allow-other-keys) - (zero? (apply system* "./b2" "install" make-flags))))))) + (apply invoke "./b2" "install" make-flags) + #t))))) - (home-page "http://boost.org") + (home-page "http://www.boost.org") (synopsis "Peer-reviewed portable C++ source libraries") (description "A collection of libraries intended to be widely useful, and usable @@ -110,20 +113,6 @@ across a broad spectrum of applications.") (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt" "Some components have other similar licences.")))) -(define-public boost-1.66 - (package - (inherit boost) - (version "1.66.0") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/boost/boost/" version "/boost_" - (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) - ".tar.bz2")) - (sha256 - (base32 - "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")))))) - (define-public mdds (package (name "mdds") diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 27f2053c43..f332018f19 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. @@ -98,10 +98,10 @@ (define* (package-from-tarball name source program-to-test description #:key snippet) "Return a package that correspond to the extraction of SOURCE. -PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to -check whether everything is alright. If SNIPPET is provided, it is -evaluated after extracting SOURCE. SNIPPET should return true if -successful, or false to signal an error." +PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to check +whether everything is alright. If SNIPPET is provided, it is evaluated after +extracting SOURCE. SNIPPET should raise an exception to signal an error; its +return value is ignored." (package (name name) (version "0") @@ -118,14 +118,14 @@ successful, or false to signal an error." (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd))) (with-directory-excursion out - (and (zero? (system* tar "xvf" - (string-append builddir "/binaries.tar"))) - ,@(if snippet (list snippet) '()) - (zero? (system* (string-append "bin/" ,program-to-test) - "--version")))))))) + (invoke tar "xvf" + (string-append builddir "/binaries.tar")) + ,@(if snippet (list snippet) '()) + (invoke (string-append "bin/" ,program-to-test) + "--version")))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) @@ -390,8 +390,7 @@ $out/bin/guile --version~%" (if (not (elf-file? "bin/egrep")) (substitute* '("bin/egrep" "bin/fgrep") (("^exec grep") (string-append (getcwd) "/bin/grep")))) - (chmod "bin" #o555) - #t))) + (chmod "bin" #o555)))) (define %bootstrap-binutils (package-from-tarball "binutils-bootstrap" @@ -446,18 +445,20 @@ $out/bin/guile --version~%" (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd))) (with-directory-excursion out - (system* tar "xvf" - (string-append builddir - "/binaries.tar")) + (invoke tar "xvf" + (string-append builddir + "/binaries.tar")) (chmod "lib" #o755) ;; Patch libc.so so it refers to the right path. (substitute* "lib/libc.so" (("/[^ ]+/lib/(libc|ld)" _ prefix) - (string-append out "/lib/" prefix)))))))) + (string-append out "/lib/" prefix))) + + #t))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) @@ -518,12 +519,12 @@ $out/bin/guile --version~%" (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd)) (bindir (string-append out "/bin"))) (with-directory-excursion out - (system* tar "xvf" - (string-append builddir "/binaries.tar"))) + (invoke tar "xvf" + (string-append builddir "/binaries.tar"))) (with-directory-excursion bindir (chmod "." #o755) @@ -538,7 +539,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ out libc libc libc ,(glibc-dynamic-linker)))) - (chmod "gcc" #o555)))))) + (chmod "gcc" #o555) + #t))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 2e51544b05..6d33b917e1 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -188,9 +188,11 @@ files.") (patches (search-patches "cdparanoia-fpic.patch")) (modules '((guix build utils))) (snippet - ;; Make libraries respect LDFLAGS. - '(substitute* '("paranoia/Makefile.in" "interface/Makefile.in") - (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))))) + '(begin + ;; Make libraries respect LDFLAGS. + (substitute* '("paranoia/Makefile.in" "interface/Makefile.in") + (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there is no check target @@ -449,9 +451,11 @@ the data.") "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install") - "install"))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install") + "install")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -479,11 +483,13 @@ from an audio CD.") "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install") - "install") - (("^etcdir = .*$") - (string-append "etcdir = $(prefix)/etc\n")))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install") + "install") + (("^etcdir = .*$") + (string-append "etcdir = $(prefix)/etc\n"))) + #t)))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 73d3efd9e1..baebcb9b77 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> -;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> @@ -104,9 +104,11 @@ source code editors and IDEs.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + ;; XXX: The "bootstrap" phase detects the "bootstrap" + ;; script, but fails to execute it, so we bootstrap + ;; manually. + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vfi")))))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index bb7767670d..c8e76b8ab4 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -74,8 +74,10 @@ (modules '((guix build utils))) (snippet ;; Fix compilation with glibc >= 2.26, which removed xlocale.h. - '(substitute* "c/expeditor.c" - (("xlocale\\.h") "locale.h"))))) + '(begin + (substitute* "c/expeditor.c" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index a559a4011d..9e5d42952f 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -147,9 +147,6 @@ (string-append "--docdir=" %output "/doc/hydra-" ,version))) #:phases (modify-phases %standard-phases - (add-after - 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi")))) (add-before 'check 'check-setup (lambda _ (setenv "LOGNAME" "test.log"))) @@ -221,8 +218,6 @@ their dependencies.") (substitute* "build-aux/git-version-gen" (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)) - (add-after 'patch-/bin/sh 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap")))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) ;; Wrap the 'cuirass' command to refer to the right modules. diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 979c7a72b8..d454056668 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -414,7 +414,8 @@ functionality such as HTML output.") (let ((files (find-files "." ".*\\.cpp|.*\\.h"))) (substitute* files (("#include ?\"rct/(.*.h)\"" all header) - (string-append "#include <rct/" header ">")))))) + (string-append "#include <rct/" header ">"))) + #t))) (sha256 (base32 "0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2")))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index fe9fbebcc2..92766de6e7 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,12 +91,14 @@ `(modify-phases ,phases (replace 'build (lambda _ - (zero? (system* "./build.sh")))) + (invoke "./build.sh") + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) - (install-file "make" bin))))))))) + (install-file "make" bin) + #t)))))))) (native-inputs '()) ; no need for 'pkg-config' (inputs %bootstrap-inputs)))) @@ -183,28 +186,12 @@ ,cf))))) (inputs %boot0-inputs)))) -;; gcc-4.9 was fixed late in the core-update cycle and so this GCC is only -;; needed to prevent a full world rebuild, and can be replaced with gcc-4.9. -(define gcc-for-libstdc++ - (package (inherit gcc-4.9) - (version "4.9.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gcc/gcc-" - version "/gcc-" version ".tar.bz2")) - (sha256 - (base32 - "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) - (patches (search-patches "gcc-arm-bug-71399.patch" - "gcc-libvtv-runpath.patch" - "gcc-fix-texi2pod.patch")))))) - (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 some of our bootstrap compilers. - (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++)))) + (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) (package (inherit lib) (name "libstdc++-boot0") @@ -262,42 +249,40 @@ "--(with-system-zlib|enable-languages.*)" <>) ,flags))) ((#:phases phases) - `(alist-cons-after - 'unpack 'unpack-gmp&co - (lambda* (#:key inputs #:allow-other-keys) - (let ((gmp (assoc-ref %build-inputs "gmp-source")) - (mpfr (assoc-ref %build-inputs "mpfr-source")) - (mpc (assoc-ref %build-inputs "mpc-source"))) - - ;; To reduce the set of pre-built bootstrap inputs, build - ;; GMP & co. from GCC. - (for-each (lambda (source) - (or (zero? (system* "tar" "xvf" source)) - (error "failed to unpack tarball" - source))) - (list gmp mpfr mpc)) - - ;; Create symlinks like `gmp' -> `gmp-x.y.z'. - ,@(map (lambda (lib) - ;; Drop trailing letters, as gmp-6.0.0a unpacks - ;; into gmp-6.0.0. - `(symlink ,(string-trim-right - (package-full-name lib) - char-set:letter) - ,(package-name lib))) - (list gmp-6.0 mpfr mpc)))) - (alist-cons-after - 'install 'symlink-libgcc_eh - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "lib"))) - ;; Glibc wants to link against libgcc_eh, so provide - ;; it. - (with-directory-excursion - (string-append out "/lib/gcc/" - ,(boot-triplet) - "/" ,(package-version gcc)) - (symlink "libgcc.a" "libgcc_eh.a")))) - ,phases)))))) + `(modify-phases ,phases + (add-after 'unpack 'unpack-gmp&co + (lambda* (#:key inputs #:allow-other-keys) + (let ((gmp (assoc-ref %build-inputs "gmp-source")) + (mpfr (assoc-ref %build-inputs "mpfr-source")) + (mpc (assoc-ref %build-inputs "mpc-source"))) + + ;; To reduce the set of pre-built bootstrap inputs, build + ;; GMP & co. from GCC. + (for-each (lambda (source) + (invoke "tar" "xvf" source)) + (list gmp mpfr mpc)) + + ;; Create symlinks like `gmp' -> `gmp-x.y.z'. + ,@(map (lambda (lib) + ;; Drop trailing letters, as gmp-6.0.0a unpacks + ;; into gmp-6.0.0. + `(symlink ,(string-trim-right + (package-full-name lib) + char-set:letter) + ,(package-name lib))) + (list gmp-6.0 mpfr mpc)) + #t))) + (add-after 'install 'symlink-libgcc_eh + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "lib"))) + ;; Glibc wants to link against libgcc_eh, so provide + ;; it. + (with-directory-excursion + (string-append out "/lib/gcc/" + ,(boot-triplet) + "/" ,(package-version gcc)) + (symlink "libgcc.a" "libgcc_eh.a")) + #t)))))))) (inputs `(("gmp-source" ,(package-source gmp-6.0)) ("mpfr-source" ,(package-source mpfr)) @@ -512,29 +497,29 @@ the bootstrap environment." "--enable-obsolete-rpc") ,flags)) ((#:phases phases) - `(alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Don't clobber CPATH with the bootstrap libc. - (setenv "NATIVE_CPATH" (getenv "CPATH")) - (unsetenv "CPATH") - - ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. - ,@(if (hurd-triplet? (%current-system)) - `((substitute* "libpthread/Makefile" - (("LDLIBS-pthread.so =.*") - (string-append "LDLIBS-pthread.so = " - (assoc-ref %build-inputs "kernel-headers") - "/lib/libihash.a\n")))) - '()) - - ;; 'rpcgen' needs native libc headers to be built. - (substitute* "sunrpc/Makefile" - (("sunrpc-CPPFLAGS =.*" all) - (string-append "CPATH = $(NATIVE_CPATH)\n" - "export CPATH\n" - all "\n")))) - ,phases))))) + `(modify-phases ,phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Don't clobber CPATH with the bootstrap libc. + (setenv "NATIVE_CPATH" (getenv "CPATH")) + (unsetenv "CPATH") + + ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. + ,@(if (hurd-triplet? (%current-system)) + `((substitute* "libpthread/Makefile" + (("LDLIBS-pthread.so =.*") + (string-append "LDLIBS-pthread.so = " + (assoc-ref %build-inputs "kernel-headers") + "/lib/libihash.a\n")))) + '()) + + ;; 'rpcgen' needs native libc headers to be built. + (substitute* "sunrpc/Makefile" + (("sunrpc-CPPFLAGS =.*" all) + (string-append "CPATH = $(NATIVE_CPATH)\n" + "export CPATH\n" + all "\n"))) + #t))))))) (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) (native-inputs `(("texinfo" ,texinfo-boot0) @@ -652,7 +637,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; Build only the tools. (add-after 'unpack 'chdir (lambda _ - (chdir "gettext-tools"))) + (chdir "gettext-tools") + #t)) ;; Some test programs require pthreads, which we don't have. (add-before 'configure 'no-test-programs diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 05442024f6..3f486d38c1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> @@ -97,9 +97,8 @@ ,@(if (%current-target-system) `((setenv "CHOST" ,(%current-target-system))) '()) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))))))) + (invoke "./configure" + (string-append "--prefix=" out)))))))) (home-page "https://zlib.net/") (synopsis "Compression library") (description @@ -201,14 +200,14 @@ adding and extracting files to/from a tar archive.") (define-public gzip (package (name "gzip") - (version "1.8") + (version "1.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gzip/gzip-" version ".tar.xz")) (sha256 (base32 - "1lxv3p4iyx7833mlihkn5wfwmz4cys5nybwpz3dfawag8kn6f5zz")))) + "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f")))) (build-system gnu-build-system) (synopsis "General file (de)compression (using lzw)") (arguments @@ -251,33 +250,31 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in (modify-phases %standard-phases (replace 'configure (lambda* (#:key target #:allow-other-keys) - (if ,(%current-target-system) - ;; Cross-compilation: use the cross tools. - (substitute* (find-files "." "Makefile") - (("CC=.*$") - (string-append "CC = " target "-gcc\n")) - (("AR=.*$") - (string-append "AR = " target "-ar\n")) - (("RANLIB=.*$") - (string-append "RANLIB = " target "-ranlib\n")) - (("^all:(.*)test" _ prerequisites) - ;; Remove 'all' -> 'test' dependency. - (string-append "all:" prerequisites "\n"))) - #t))) + (when ,(%current-target-system) + ;; Cross-compilation: use the cross tools. + (substitute* (find-files "." "Makefile") + (("CC=.*$") + (string-append "CC = " target "-gcc\n")) + (("AR=.*$") + (string-append "AR = " target "-ar\n")) + (("RANLIB=.*$") + (string-append "RANLIB = " target "-ranlib\n")) + (("^all:(.*)test" _ prerequisites) + ;; Remove 'all' -> 'test' dependency. + (string-append "all:" prerequisites "\n")))) + #t)) (add-before 'build 'build-shared-lib (lambda* (#:key inputs #:allow-other-keys) (patch-makefile-SHELL "Makefile-libbz2_so") - (zero? (system* "make" "-f" "Makefile-libbz2_so")))) + (invoke "make" "-f" "Makefile-libbz2_so"))) (add-after 'install 'install-shared-lib (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (libdir (string-append out "/lib"))) (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base libdir) - (copy-file file - (string-append libdir "/" base)))) + (format #t "installing `~a' to `~a'~%" + (basename file) libdir) + (install-file file libdir)) (find-files "." "^libbz2\\.so"))) #t)) (add-after 'install-shared-lib 'patch-scripts @@ -476,14 +473,14 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.19") + (version "1.20") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz")))) + "0319q59kb8g324wnj7xzbr7vvlx5bcs13lr34j0zb3kqlyjq2fy9")))) (build-system gnu-build-system) (home-page "https://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") @@ -924,10 +921,11 @@ tarballs.") (base32 "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n")) (modules '((guix build utils))) - (snippet - ;; This is a recursive submodule that is unnecessary for this - ;; package, so delete it. - '(delete-file-recursively "brotli/terryfy")))) + (snippet '(begin + ;; This is a recursive submodule that is + ;; unnecessary for this package, so delete it. + (delete-file-recursively "brotli/terryfy") + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -986,7 +984,9 @@ respectively, based on the reference implementation from Google.") (file-name (string-append name "-" version ".tar.gz")) (snippet ;; This file isn't freely distributable and has no effect on building. - '(delete-file "xdelta3/draft-korn-vcdiff.txt")))) + '(begin + (delete-file "xdelta3/draft-korn-vcdiff.txt") + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1454,7 +1454,9 @@ handles the 7z format which features very high compression ratios.") (modules '((guix build utils))) (snippet ;; Remove pre-compiled object. - '(delete-file "gzstream.o")))) + '(begin + (delete-file "gzstream.o") + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1491,7 +1493,9 @@ functionality in a C++ iostream.") (modules '((guix build utils))) (snippet ;; Delete irrelevant pre-compiled binaries. - '(for-each delete-file (find-files "." "\\.exe$"))))) + '(begin + (for-each delete-file (find-files "." "\\.exe$")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -1710,14 +1714,11 @@ the actual decompression, the other input and output.") (list "-f" "unix/Makefile" (string-append "prefix=" out) (string-append "MANDIR=" out "/share/man/man1"))) - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) #:phases (modify-phases %standard-phases (replace 'build (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "generic_gcc" make-flags)))) + (apply invoke "make" "generic_gcc" make-flags))) (delete 'configure)))) (home-page "http://www.info-zip.org/Zip.html") (synopsis "Compression and file packing utility") @@ -1769,11 +1770,11 @@ Compression ratios of 2:1 to 3:1 are common for text files.") (delete 'configure) (replace 'build (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" - `("-j" ,(number->string - (parallel-job-count)) - ,@make-flags - "generic_gcc")))))) + (apply invoke "make" + `("-j" ,(number->string + (parallel-job-count)) + ,@make-flags + "generic_gcc"))))) #:make-flags (list "-f" "unix/Makefile" (string-append "prefix=" %output) (string-append "MANDIR=" %output "/share/man/man1")))) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 0f5997951c..bbd779ae4e 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -181,8 +182,10 @@ base compiler and using LIBC (which may be either a libc package or #f.)" (define (cross-gcc-snippet target) "Return GCC snippet needed for TARGET." (cond ((target-mingw? target) - '(copy-recursively "libstdc++-v3/config/os/mingw32-w64" - "libstdc++-v3/config/os/newlib")) + '(begin + (copy-recursively "libstdc++-v3/config/os/mingw32-w64" + "libstdc++-v3/config/os/newlib") + #t)) (else #f))) (define* (cross-gcc target @@ -291,8 +294,8 @@ target that libc." (setenv "ARCH" ,(system->linux-architecture target)) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) - (and (zero? (system* "make" ,(system->defconfig target))) - (zero? (system* "make" "mrproper" "headers_check")))) + (invoke "make" ,(system->defconfig target)) + (invoke "make" "mrproper" "headers_check")) ,phases)))) (native-inputs `(("cross-gcc" ,xgcc) ("cross-binutils" ,xbinutils) @@ -314,14 +317,14 @@ target that libc." `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-26)) - #:phases (alist-cons-before - 'configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((mach (assoc-ref inputs "cross-gnumach-headers")) - (cpath (string-append mach "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - %standard-phases) + #:phases (modify-phases %standard-phases + (add-before 'configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((mach (assoc-ref inputs "cross-gnumach-headers")) + (cpath (string-append mach "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t)))) #:configure-flags (list ,(string-append "--target=" target)) ,@(package-arguments mig))) @@ -352,16 +355,16 @@ target that libc." (srfi srfi-26)) ,@(package-arguments glibc/hurd-headers)) ((#:phases phases) - `(alist-cons-before - 'pre-configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((mach (assoc-ref inputs "gnumach-headers")) - (hurd (assoc-ref inputs "hurd-headers")) - (cpath (string-append mach "/include:" - hurd "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - ,phases)))) + `(modify-phases ,phases + (add-before 'pre-configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((mach (assoc-ref inputs "gnumach-headers")) + (hurd (assoc-ref inputs "hurd-headers")) + (cpath (string-append mach "/include:" + hurd "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t))))))) (propagated-inputs `(("gnumach-headers" ,xgnumach-headers) ("hurd-headers" ,xhurd-headers))) @@ -382,14 +385,14 @@ target that libc." (srfi srfi-26)) ,@(package-arguments hurd-minimal)) ((#:phases phases) - `(alist-cons-before - 'configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers")) - (cpath (string-append glibc-headers "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - ,phases)))) + `(modify-phases ,phases + (add-before 'configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers")) + (cpath (string-append glibc-headers "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t))))))) (inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers))) @@ -456,17 +459,16 @@ XBINUTILS and the cross tool chain." `(cons ,(string-append "--host=" target) ,flags)) ((#:phases phases) - `(alist-cons-before - 'configure 'set-cross-kernel-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((kernel (assoc-ref inputs "kernel-headers")) - (cpath (string-append kernel "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths) - (setenv "CROSS_LIBRARY_PATH" - (string-append kernel "/lib")) ;for Hurd's libihash - #t)) - ,phases)))) + `(modify-phases ,phases + (add-before 'configure 'set-cross-kernel-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((kernel (assoc-ref inputs "kernel-headers")) + (cpath (string-append kernel "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + (setenv "CROSS_LIBRARY_PATH" + (string-append kernel "/lib")) ; for Hurd's libihash + #t))))))) ;; Shadow the native "kernel-headers" because glibc's recipe expects the ;; "kernel-headers" input to point to the right thing. diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 7716205947..df0141b353 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -181,7 +181,8 @@ OpenBSD tool of the same name.") (substitute* "src/crypto.cpp" (("argon2/argon2.h") "argon2.h")) (substitute* "configure.ac" - (("src/argon2/Makefile") "")))) + (("src/argon2/Makefile") "")) + #t)) (sha256 (base32 "09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x")))) @@ -226,9 +227,11 @@ communication.") "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837")) (modules '((guix build utils))) ;; Remove bundled dependencies in favour of proper inputs. - (snippet '(for-each delete-file-recursively - (find-files "internal" "^tinyxml2-[0-9]" - #:directories? #t))))) + (snippet '(begin + (for-each delete-file-recursively + (find-files "internal" "^tinyxml2-[0-9]" + #:directories? #t)) + #t)))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -270,8 +273,10 @@ the wrong hands.") "1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i")) (modules '((guix build utils))) ;; Create relative symbolic links instead of absolute ones to /lib/* - (snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/") - "$(LNS) "))))) + (snippet '(begin + (substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/") + "$(LNS) ")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -646,12 +651,7 @@ data on your platform, so the seed itself will be as random as possible. ;; fat only checks for Intel optimisations '("--enable-fat") '()) - "--disable-native") ; don't optimise at build time. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "autogen.sh")))))) + "--disable-native"))) ;don't optimise at build time (home-page "https://blake2.net/") (synopsis "Library implementing the BLAKE2 family of hash functions") (description diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 89c58f864b..209f8da3d2 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -50,7 +50,7 @@ (define-public cups-filters (package (name "cups-filters") - (version "1.17.9") + (version "1.20.1") (source(origin (method url-fetch) (uri @@ -58,7 +58,7 @@ "cups-filters-" version ".tar.xz")) (sha256 (base32 - "0i7mvvnq7ayhxn1ajci8h7l3cijzwr9d50p58h0rbsh9hf63zblq")) + "0qix1whz5n4ijnl6d44f1v8nzkpv99wqjyrby8vx6xnpskw5hsxk")) (modules '((guix build utils))) (snippet ;; install backends, banners and filters to cups-filters output @@ -79,7 +79,8 @@ ;; output directory, not CUPS's prefix. (substitute* "configure" (("\\{CUPS_DATADIR\\}/data") - "{prefix}/share/cups/data")))))) + "{prefix}/share/cups/data")) + #t)))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" %output)) @@ -381,8 +382,10 @@ device-specific programs to convert and print many types of files.") (modules '((guix build utils))) (snippet ;; Fix type mismatch. - '(substitute* "prnt/hpcups/genPCLm.cpp" - (("boolean") "bool"))))) + '(begin + (substitute* "prnt/hpcups/genPCLm.cpp" + (("boolean") "bool")) + #t)))) (build-system gnu-build-system) (home-page "http://hplipopensource.com/") (synopsis "HP Printer Drivers") diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index fbf177d9da..698ae5d301 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,7 +42,8 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ssh) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages web)) (define-public curl (package @@ -64,6 +65,7 @@ ("libidn" ,libidn) ("libssh2" ,libssh2) ("openldap" ,openldap) + ("nghttp2" ,nghttp2) ("zlib" ,zlib))) (native-inputs `(("perl" ,perl) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index ab8729bde0..a54013b818 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> @@ -162,14 +162,14 @@ either single machines or networked clusters.") (define-public gdbm (package (name "gdbm") - (version "1.13") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdbm/gdbm-" version ".tar.gz")) (sha256 (base32 - "0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx")))) + "0pxwz3jlwvglq2mrbxvrjgr8pa0aj73p3v9sxmdlj570zw0gzknd")))) (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) (build-system gnu-build-system) (home-page "http://www.gnu.org.ua/software/gdbm") @@ -438,7 +438,8 @@ applications.") (string-append "src/third_party/" dir))) '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3" "valgrind-3.11.0" "wiredtiger" - "yaml-cpp-0.5.3" "zlib-1.2.8")))) + "yaml-cpp-0.5.3" "zlib-1.2.8")) + #t)) (patches (list (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) @@ -1006,7 +1007,7 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.21.0") + (version "3.22.0") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -1018,11 +1019,11 @@ for example from a shell script.") (map (cut string-pad <> 2 #\0) other-digits)) 6 #\0)))))) - (string-append "https://sqlite.org/2017/sqlite-autoconf-" + (string-append "https://sqlite.org/2018/sqlite-autoconf-" numeric-version ".tar.gz"))) (sha256 (base32 - "1qxvzdjwzw6k0kqjfabj86rnq87xdbwbca7laxxdhnh0fmkm3pfp")))) + "04n6hnw2g818d7r92cp2608kd5mhzyysy83k29kbq1mp709an918")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments @@ -1627,12 +1628,7 @@ trees (LSM), for sustained throughput under random insert workloads.") #:configure-flags (list (string-append "--with-libwiredtiger-prefix=" (assoc-ref %build-inputs "wiredtiger"))) - #:make-flags '("GUILE_AUTO_COMPILE=0") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "bootstrap")))))) + #:make-flags '("GUILE_AUTO_COMPILE=0"))) ;; TODO: Remove microkanren.scm when we have a separate package ;; for it. (native-inputs @@ -1940,10 +1936,12 @@ etc., and an SQL engine for performing simple SQL queries.") (modules '((guix build utils))) (snippet ;; Delete bundled lmdb source files. - '(for-each delete-file (list "lib/lmdb.h" - "lib/mdb.c" - "lib/midl.c" - "lib/midl.h"))))) + '(begin + (for-each delete-file (list "lib/lmdb.h" + "lib/mdb.c" + "lib/midl.c" + "lib/midl.h")) + #t)))) (build-system python-build-system) (inputs `(("lmdb" ,lmdb))) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 112c656ff8..1f238637a4 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -299,10 +299,7 @@ down the road.") (which "sh")))))) (add-before 'configure 'repack-make (lambda _ - (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))) - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi")))))))) + (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))))))) (home-page "https://github.com/losalamos/stress-make") (synopsis "Expose race conditions in Makefiles") (description diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index d093b0d9b5..735b2af9b4 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -177,7 +177,9 @@ high-volume and high-reliability applications. The name BIND stands for (snippet ;; Delete bundled libltdl. XXX: This package also bundles ;; a modified libevent that cannot currently be removed. - '(delete-file-recursively "libltdl")))) + '(begin + (delete-file-recursively "libltdl") + #t)))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index d56dc49198..3034bc5493 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -236,19 +236,19 @@ by no means limited to these applications.) This package provides XML DTDs.") #:use-setuptools? #f #:tests? #f ;no 'test' command #:phases - (alist-cons-after - 'wrap 'set-path - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; dblatex executes helper programs at runtime. - (wrap-program (string-append out "/bin/dblatex") - `("PATH" ":" prefix - ,(map (lambda (input) - (string-append (assoc-ref inputs input) - "/bin")) - '("libxslt" "texlive" - "imagemagick" "inkscape")))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'wrap 'set-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; dblatex executes helper programs at runtime. + (wrap-program (string-append out "/bin/dblatex") + `("PATH" ":" prefix + ,(map (lambda (input) + (string-append (assoc-ref inputs input) + "/bin")) + '("libxslt" "texlive" + "imagemagick" "inkscape")))) + #t)))))) (home-page "http://dblatex.sourceforge.net") (synopsis "DocBook to LaTeX Publishing") (description diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index eebd38243b..cde689c63d 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> @@ -59,9 +59,6 @@ `(#:tests? #f ; no 'check' target #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoconf"))) ;; Some XML-related binaries are required for asciidoc's proper usage. ;; Without these, asciidoc fails when parsing XML documents, either ;; reporting a missing "xmllint" binary or, when passed the diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 8fb568b841..7ec189820d 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -127,14 +127,14 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, '())) (arguments (if (string-prefix? "arm" (or (%current-target-system) (%current-system))) - `(#:phases (alist-cons-after - 'unpack 'patch/rework-for-arm - (lambda* (#:key inputs #:allow-other-keys) - (let ((patch-file - (assoc-ref inputs "patch/rework-for-arm"))) - (zero? (system* "patch" "--force" "-p1" - "--input" patch-file)))) - %standard-phases)) + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch/rework-for-arm + (lambda* (#:key inputs #:allow-other-keys) + (let ((patch-file + (assoc-ref inputs "patch/rework-for-arm"))) + (invoke "patch" "--force" "-p1" + "--input" patch-file) + #t))))) '())) (home-page "https://nixos.org/patchelf.html") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index a6c674dfb2..b6fa661f0e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -148,7 +148,8 @@ (list line "\"~/.guix-profile/include\"" "\"/var/guix/profiles/system/profile/include\"") - " "))))))) + " "))) + #t)))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -837,21 +838,23 @@ provides an optional IDE-like error list.") "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install-info") - ;; No need to use 'install-info' since it would create a - ;; useless 'dir' file. - "true") - (("^INFODIR=.*") - ;; Install Info files to $out/share/info, not $out/info. - "INFODIR := $(PREFIX)/share/info\n") - (("/site-lisp/emms") - ;; Install directly in share/emacs/site-lisp, not in a - ;; sub-directory. - "/site-lisp") - (("^all: (.*)\n" _ rest) - ;; Build 'emms-print-metadata'. - (string-append "all: " rest " emms-print-metadata\n")))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install-info") + ;; No need to use 'install-info' since it would create a + ;; useless 'dir' file. + "true") + (("^INFODIR=.*") + ;; Install Info files to $out/share/info, not $out/info. + "INFODIR := $(PREFIX)/share/info\n") + (("/site-lisp/emms") + ;; Install directly in share/emacs/site-lisp, not in a + ;; sub-directory. + "/site-lisp") + (("^all: (.*)\n" _ rest) + ;; Build 'emms-print-metadata'. + (string-append "all: " rest " emms-print-metadata\n"))) + #t)))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -1011,9 +1014,11 @@ within a specified width. It is useful for displaying long track titles.") (modules '((guix build utils))) (snippet ;; We don't want to build and install the PDF. - '(substitute* "doc/Makefile.in" - (("^doc_DATA = .*$") - "doc_DATA =\n"))))) + '(begin + (substitute* "doc/Makefile.in" + (("^doc_DATA = .*$") + "doc_DATA =\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -2614,7 +2619,8 @@ to a key in your preferred mode.") '(begin (for-each delete-file '("dot-emacs.el" "Makefile")) (install-file "6.945-config/mit-scheme-doc.el" ".") - (delete-file-recursively "6.945-config"))) + (delete-file-recursively "6.945-config") + #t)) (file-name (string-append name "-" version ".tar.bz2")) (method url-fetch) (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/" @@ -3739,7 +3745,8 @@ programming language.") (substitute* "lisp/Makefile" (("^\tjulia-mode.elc\\\\\n") "") (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el") - "all: $(ELC) ess-custom.el")))))) + "all: $(ELC) ess-custom.el")) + #t)))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp/guix.d/ess")) @@ -4985,7 +4992,8 @@ mode-line.") ;; warnings about a missing directory. (substitute* "yasnippet.el" (("^ +'yas-installed-snippets-dir\\)\\)\n") - "))\n")))))) + "))\n")) + #t)))) (build-system emacs-build-system) (home-page "https://github.com/joaotavora/yasnippet") (synopsis "Yet another snippet extension for Emacs") diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 142603b082..b4b585d51d 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -410,11 +410,13 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(for-each - (lambda (subdir) - (let ((lib-subdir (string-append "src/third-party/" subdir))) - (delete-file-recursively lib-subdir))) - '("libpng" "lzma" "sqlite3" "zlib"))))) + '(begin + (for-each + (lambda (subdir) + (let ((lib-subdir (string-append "src/third-party/" subdir))) + (delete-file-recursively lib-subdir))) + '("libpng" "lzma" "sqlite3" "zlib")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no "test" target @@ -1010,7 +1012,8 @@ towards a working Mupen64Plus for casual users.") ;; Use system zlib. (delete-file-recursively "source/zlib") (substitute* "source/core/NstZlib.cpp" - (("#include \"../zlib/zlib.h\"") "#include <zlib.h>")))))) + (("#include \"../zlib/zlib.h\"") "#include <zlib.h>")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 449584f57e..aee60bd697 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -329,7 +329,9 @@ featuring various improvements and bug fixes."))) "0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k")) (snippet ;; Remove a non-free file. - '(delete-file "doc/psfig.sty")) + '(begin + (delete-file "doc/psfig.sty") + #t)) (patches (search-patches "fastcap-mulSetup.patch" "fastcap-mulGlobal.patch")))) (build-system gnu-build-system) @@ -592,7 +594,8 @@ as well as pick-place files.") ;; Use #include <catch.hpp>. (substitute* (find-files "." "\\.[ch]pp$") (("catch/catch\\.hpp") - "catch.hpp")))))) + "catch.hpp")) + #t)))) (build-system cmake-build-system) (arguments `(;; Have the RUNPATH of libao.so point to $libdir, where libefsw.so @@ -1152,7 +1155,8 @@ bindings for Python, Java, OCaml and more.") (substitute* "libr/parse/p/Makefile" (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")) (substitute* "libr/bin/p/Makefile" - (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")))))) + (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f; tests require git and network access @@ -1257,7 +1261,8 @@ high-performance parallel differential evolution (DE) optimization algorithm.") (("src/ciderlib/input/Makefile") "") (("src/ciderlib/support/Makefile") "") (("src/ciderlib/oned/Makefile") "") - (("src/ciderlib/twod/Makefile") "")))))) + (("src/ciderlib/twod/Makefile") "")) + #t)))) (build-system gnu-build-system) (arguments `(;; No tests for libngspice exist. diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index a0bf841415..b6b0c9a145 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -202,7 +202,8 @@ removable devices or support for multimedia.") "data/themes/Makefile.am" "data/themes/nyanology/Makefile.in" "data/themes/nyanology/Makefile.am") - (("-fd \\$\\(top_srcdir\\)/data/fonts") "")))))) + (("-fd \\$\\(top_srcdir\\)/data/fonts") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index a5e8c79371..22382f745a 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -378,16 +378,15 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.10") + (version "1.3.11") (source (origin (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 - "1bm1rl2ww0m8rvmknh8fpajyz9xqv43qs9qrzf7xd5gaz6rf7zch")))) + "0z5dcgh8r3678awq6fb8igik7xmar5m6z9xxwpkkhradhk8jxfds")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests @@ -495,11 +494,6 @@ smooth contours with constant curvature at the spline joins.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vi"))))))) (synopsis "Unicode names and annotation list") (description "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 60c5f96a87..0a5568a016 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -131,8 +131,10 @@ For synthesis, the compiler generates netlists in the desired format.") (file-name (string-append name "-" version "-checkout.tar.gz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("ABCREV = .*") "ABCREV = default\n"))))) + '(begin + (substitute* "Makefile" + (("ABCREV = .*") "ABCREV = default\n")) + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 366fcecea2..d2b456153e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -233,7 +233,8 @@ the freedesktop.org XDG Base Directory specification.") (substitute* "Makefile.am" ;; Avoid validation against DTD because the DTDs for ;; both doctype 4.2 and 4.5 are needed. - (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")))))) + (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 4ad6bcbf1b..22e5c918ee 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> @@ -112,7 +112,8 @@ reliability in mind.") ;; This is free software, avoid any confusion. (substitute* (find-files "." "\\.c$") (("a freeware program") - "free software")))))) + "free software")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -156,11 +157,6 @@ FTP browser, as well as non-interactive commands such as 'ncftpput' and `(("automake" ,automake) ("autoconf" ,autoconf) ("gettext" ,gettext-minimal))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://weex.sourceforge.net/") (synopsis "Non-interactive client for FTP synchronization") (description diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 03a70bea49..db13ac0eff 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Tomáš Čech <sleep_walker@suse.cz> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> @@ -958,11 +958,6 @@ painted with a mouse.") (base32 "0w0pamjc3vj0jr718hysrw8x076fq6n9rd6wcb36sn2jd0lqvi98")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a33da03ad5..543edbe94c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> -;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr> @@ -188,11 +188,13 @@ settings to tweak as well.") (modules '((guix build utils))) (snippet ;; Import cmath header for the std::pow function. - '(for-each (lambda (file) - (substitute* file - (("#include <math.h>") - "#include <cmath>"))) - (find-files "src"))))) + '(begin + (for-each (lambda (file) + (substitute* file + (("#include <math.h>") + "#include <cmath>"))) + (find-files "src")) + #t)))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) @@ -682,9 +684,11 @@ watch your CPU playing while enjoying a cup of tea!") "151v6nign86m1a2vqz27krsccpc9m4d1jax4y43v2fa82wfj9qp0")) (modules '((guix build utils))) (snippet - '(substitute* "src/version.c" - (("__DATE__") "") - (("__TIME__") ""))))) + '(begin + (substitute* "src/version.c" + (("__DATE__") "") + (("__TIME__") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-cpu-opt") @@ -896,7 +900,9 @@ can be explored and changed freely.") (modules '((guix build utils))) (snippet ;; Unbundle fonts. - '(delete-file-recursively "fonts")))) + '(begin + (delete-file-recursively "fonts") + #t)))) (build-system gnu-build-system) (arguments '(#:make-flags '("CC=gcc") @@ -952,15 +958,15 @@ that beneath its ruins lay buried an ancient evil.") ;; In the future, if someone tries to make a graphical variant of ;; this package, they can deal with that mess themselves. :) '(begin - (for-each - (lambda (subdir) - (let ((lib-subdir (string-append "lib/" subdir))) - (delete-file-recursively lib-subdir))) - '("fonts" "icons" "sounds" "tiles")) + (for-each (lambda (subdir) + (let ((lib-subdir (string-append "lib/" subdir))) + (delete-file-recursively lib-subdir))) + '("fonts" "icons" "sounds" "tiles")) (substitute* "lib/Makefile" ;; And don't try to invoke makefiles in the directories we removed (("gamedata customize help screens fonts tiles sounds icons user") - "gamedata customize help screens user")))))) + "gamedata customize help screens user")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no check target @@ -1281,11 +1287,13 @@ destroy, the better your score. The person with the highest score wins.") ;; We do not provide `ncurses.h' within an `ncursesw' ;; sub-directory, so patch the source accordingly. See ;; <http://bugs.gnu.org/19018>. - '(for-each (lambda (file) - (substitute* file - (("ncursesw/ncurses.h") - "ncurses.h"))) - (find-files "." "configure$|\\.c$"))))) + '(begin + (for-each (lambda (file) + (substitute* file + (("ncursesw/ncurses.h") + "ncurses.h"))) + (find-files "." "configure$|\\.c$")) + #t)))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("perl" ,perl))) @@ -1989,7 +1997,9 @@ world}, @uref{http://evolonline.org, Evol Online} and (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. - '(delete-file-recursively "os/dos")))) + '(begin + (delete-file-recursively "os/dos") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -2839,7 +2849,8 @@ safety of the Chromium vessel.") (substitute* "Makefile" ;; Do not rely on $(GPERF) being an absolute file name (("\\[ -x \\$\\(GPERF\\) \\]") - "$(GPERF) --version >/dev/null 2>&1")))) + "$(GPERF) --version >/dev/null 2>&1")) + #t)) (patches (search-patches "tuxpaint-stamps-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -4050,14 +4061,13 @@ fight against their plot and save his fellow rabbits from slavery.") (modules '((guix build utils))) (snippet #~(begin - (for-each - (lambda (name) - (let* ((dir (string-append "binaries/data/mods/" name)) - (file (string-append dir "/" name ".zip")) - (unzip #$(file-append unzip "/bin/unzip"))) - (system* unzip "-d" dir file) - (delete-file file))) - '("mod" "public")) + (for-each (lambda (name) + (let* ((dir (string-append "binaries/data/mods/" name)) + (file (string-append dir "/" name ".zip")) + (unzip #$(file-append unzip "/bin/unzip"))) + (system* unzip "-d" dir file) + (delete-file file))) + '("mod" "public")) #t)))) (build-system trivial-build-system) (native-inputs `(("tar" ,tar) @@ -4292,10 +4302,12 @@ Crowther & Woods, its original authors, in 1995. It has been known as "0v2qgdfpvdzd1bcbp9v8pfahj1bgczsq2d4xfhh5wg11jgjcwz03")) (modules '((guix build utils))) (snippet - '(substitute* '("src/music.h" "src/tSDL.h") - (("#elif defined(__FreeBSD__)" line) - (string-append - line " || defined(__GNUC__)")))))) + '(begin + (substitute* '("src/music.h" "src/tSDL.h") + (("#elif defined(__FreeBSD__)" line) + (string-append + line " || defined(__GNUC__)"))) + #t)))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) @@ -4634,8 +4646,6 @@ elements to achieve a simple goal in the most complex way possible.") (string-append "PIONEER_DATA_DIR=" %output "/share/games/pioneer")) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap")))) (add-before 'bootstrap 'fix-lua-check (lambda _ (substitute* "configure.ac" @@ -4779,7 +4789,8 @@ You can save humanity and get programming skills!") (delete-file-recursively "bzip2") (delete-file-recursively "game-music-emu") (delete-file-recursively "jpeg-6b") - (delete-file-recursively "zlib"))))) + (delete-file-recursively "zlib") + #t)))) (arguments '(#:tests? #f #:configure-flags diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm index e318993ace..6b1d1af10b 100644 --- a/gnu/packages/gawk.scm +++ b/gnu/packages/gawk.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,18 +30,16 @@ (define-public gawk (package (name "gawk") - (version "4.1.4") + (version "4.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gawk/gawk-" version ".tar.xz")) (sha256 - (base32 "0rn2mmjxm767zliqzd67j7h2ncjn4j0321c60y9fy3grs3i89qak")))) + (base32 "0lam2zf3n7ak4pig8w46lhx9hzx50kj2v2yj1616mm26wy2rf4fi")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f ; test suite fails in parallel - - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-before 'configure 'set-shell-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Refer to the right shell. diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 62b8968823..27f4b04d9a 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -200,131 +201,131 @@ where the OS part is overloaded to denote a specific ABI---into GCC #:tests? #f #:phases - (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((libdir ,(libdir)) - (libc (assoc-ref inputs "libc"))) - (when libc - ;; The following is not performed for `--without-headers' - ;; cross-compiler builds. - - ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a - ;; single line, to allow the next step to work properly. - (for-each - (lambda (x) - (substitute* (find-files "gcc/config" - "^(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|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" - _ 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 - ;; `crt{begin,end}.o', which come with GCC. - (substitute* (find-files "gcc/config" - "^gnu-user.*\\.h$") - (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) - ;; Help libgcc_s.so be found (see also below.) Always use - ;; '-lgcc_s' so that libgcc_s.so is always found by those - ;; programs that use 'pthread_cancel' (glibc dlopens - ;; libgcc_s.so when pthread_cancel support is needed, but - ;; having it in the application's RUNPATH isn't enough; see - ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) - ;; - ;; NOTE: The '-lgcc_s' added below needs to be removed in a - ;; later phase of %gcc-static. If you change the string - ;; below, make sure to update the relevant code in - ;; %gcc-static package as needed. - (format #f "#define GNU_USER_TARGET_LIB_SPEC \ + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((libdir ,(libdir)) + (libc (assoc-ref inputs "libc"))) + (when libc + ;; The following is not performed for `--without-headers' + ;; cross-compiler builds. + + ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a + ;; single line, to allow the next step to work properly. + (for-each + (lambda (x) + (substitute* (find-files "gcc/config" + "^(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|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" + _ 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 + ;; `crt{begin,end}.o', which come with GCC. + (substitute* (find-files "gcc/config" + "^gnu-user.*\\.h$") + (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) + ;; Help libgcc_s.so be found (see also below.) Always use + ;; '-lgcc_s' so that libgcc_s.so is always found by those + ;; programs that use 'pthread_cancel' (glibc dlopens + ;; libgcc_s.so when pthread_cancel support is needed, but + ;; having it in the application's RUNPATH isn't enough; see + ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) + ;; + ;; NOTE: The '-lgcc_s' added below needs to be removed in a + ;; later phase of %gcc-static. If you change the string + ;; below, make sure to update the relevant code in + ;; %gcc-static package as needed. + (format #f "#define GNU_USER_TARGET_LIB_SPEC \ \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" - libc libc libdir suffix)) - (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) - (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" + libc libc libdir suffix)) + (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) + (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" #define STANDARD_STARTFILE_PREFIX_2 \"\" ~a" - 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 \ + 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\" + 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" - (("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 - ;; 2.21's stdlib-bsearch.h. Remove -Werror. - (substitute* "libbacktrace/configure" - (("WARN_FLAGS=(.*)-Werror" _ flags) - (string-append "WARN_FLAGS=" flags))) - - (when (file-exists? "libsanitizer/libbacktrace") - ;; Same in libsanitizer's bundled copy (!) found in 4.9+. - (substitute* "libsanitizer/libbacktrace/Makefile.in" - (("-Werror") - "")))) - - ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. - ;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354> - ;; and <http://bugs.gnu.org/20358>. - (substitute* "libstdc++-v3/src/Makefile.in" - (("^OPT_LDFLAGS = ") - "OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) - - ;; Move libstdc++*-gdb.py to the "lib" output to avoid a - ;; circularity between "out" and "lib". (Note: - ;; --with-python-dir is useless because it imposes $(prefix) as - ;; the parent directory.) - (substitute* "libstdc++-v3/python/Makefile.in" - (("pythondir = .*$") - (string-append "pythondir = " libdir "/share" - "/gcc-$(gcc_version)/python\n"))) - - ;; Avoid another circularity between the outputs: this #define - ;; ends up in auto-host.h in the "lib" output, referring to - ;; "out". (This variable is used to augment cpp's search path, - ;; but there's nothing useful to look for here.) - (substitute* "gcc/config.in" - (("PREFIX_INCLUDE_DIR") - "PREFIX_INCLUDE_DIR_isnt_necessary_here")))) - - (alist-cons-after - 'configure 'post-configure - (lambda _ - ;; Don't store configure flags, to avoid retaining references to - ;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. - (substitute* "Makefile" - (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) - "TOPLEVEL_CONFIGURE_ARGUMENTS=\n"))) - %standard-phases)))) + libc line)))) + + ;; Don't retain a dependency on the build-time sed. + (substitute* "fixincludes/fixincl.x" + (("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 + ;; 2.21's stdlib-bsearch.h. Remove -Werror. + (substitute* "libbacktrace/configure" + (("WARN_FLAGS=(.*)-Werror" _ flags) + (string-append "WARN_FLAGS=" flags))) + + (when (file-exists? "libsanitizer/libbacktrace") + ;; Same in libsanitizer's bundled copy (!) found in 4.9+. + (substitute* "libsanitizer/libbacktrace/Makefile.in" + (("-Werror") + "")))) + + ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. + ;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354> + ;; and <http://bugs.gnu.org/20358>. + (substitute* "libstdc++-v3/src/Makefile.in" + (("^OPT_LDFLAGS = ") + "OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) + + ;; Move libstdc++*-gdb.py to the "lib" output to avoid a + ;; circularity between "out" and "lib". (Note: + ;; --with-python-dir is useless because it imposes $(prefix) as + ;; the parent directory.) + (substitute* "libstdc++-v3/python/Makefile.in" + (("pythondir = .*$") + (string-append "pythondir = " libdir "/share" + "/gcc-$(gcc_version)/python\n"))) + + ;; Avoid another circularity between the outputs: this #define + ;; ends up in auto-host.h in the "lib" output, referring to + ;; "out". (This variable is used to augment cpp's search path, + ;; but there's nothing useful to look for here.) + (substitute* "gcc/config.in" + (("PREFIX_INCLUDE_DIR") + "PREFIX_INCLUDE_DIR_isnt_necessary_here")) + #t))) + + (add-after 'configure 'post-configure + (lambda _ + ;; Don't store configure flags, to avoid retaining references to + ;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. + (substitute* "Makefile" + (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) + "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")) + #t))))) (native-search-paths ;; Use the language-specific variables rather than 'CPATH' because they @@ -369,13 +370,15 @@ Go. It also includes runtime support libraries for these languages.") ;; This is required for building with glibc-2.26. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" + "pa" "sh" "tilepro" "xtensa")) + #t)))) (supported-systems %supported-systems) (inputs `(("isl" ,isl-0.11) @@ -401,13 +404,15 @@ Go. It also includes runtime support libraries for these languages.") ;; This is required for building with glibc-2.26. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" + "pa" "sh" "tilepro" "xtensa")) + #t)))) ;; Override inherited texinfo-5 with latest version. (native-inputs `(("perl" ,perl) ;for manpages ("texinfo" ,texinfo))))) @@ -439,9 +444,11 @@ Go. It also includes runtime support libraries for these languages.") ;; ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67590 ;; http://cgit.openembedded.org/openembedded-core/commit/?id=f6e47aa9b12f9ab61530c40e0343f451699d9077 - '(substitute* "libcc1/configure" - (("\\$gcc_cv_objdump -T") - "$OBJDUMP_FOR_TARGET -T"))))) + '(begin + (substitute* "libcc1/configure" + (("\\$gcc_cv_objdump -T") + "$OBJDUMP_FOR_TARGET -T")) + #t)))) (inputs `(("isl" ,isl) ,@(package-inputs gcc-4.7))))) @@ -467,13 +474,15 @@ Go. It also includes runtime support libraries for these languages.") ;; This can be removed when gcc-6.5.0 is released. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" + "pa" "sh" "tilepro" "xtensa")) + #t)))) (inputs `(("isl" ,isl) ,@(package-inputs gcc-4.7))))) @@ -512,7 +521,8 @@ using compilers other than GCC." #:phases (alist-cons-before 'configure 'chdir (lambda _ - (chdir "libstdc++-v3")) + (chdir "libstdc++-v3") + #t) %standard-phases) #:configure-flags `("--disable-libstdcxx-pch" ,(string-append "--with-gxx-include-dir=" diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 9c7c071db0..9f31d90619 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -212,7 +212,8 @@ and driving.") (("^all-am: .*$") "all-am: Makefile $(LTLIBRARIES) $(HEADERS) geo_config.h\n") (("^install-data-am: .*$") - "install-data-am: install-includeHEADERS")))))) + "install-data-am: install-includeHEADERS")) + #t)))) (build-system gnu-build-system) (inputs `(("libjpeg-turbo" ,libjpeg-turbo) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 6d2dd4c008..e37ceb9e16 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,14 +44,13 @@ (define-public lcms (package (name "lcms") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lcms/lcms/" version "/lcms2-" version ".tar.gz")) - (patches (search-patches "lcms-CVE-2016-10165.patch")) (sha256 (base32 - "08pvl289g0mbznzx5l6ibhaldsgx41kwvdn2c974ga9fkli2pl36")))) + "083xisy6z01zhm7p7rgk4bx9d6zlr8l20qkfv1g29ylnhgwzvij8")))) (build-system gnu-build-system) (inputs `(("libjpeg-8" ,libjpeg-8) ("libtiff" ,libtiff) @@ -155,7 +155,8 @@ printing, and psresize, for adjusting page sizes.") '(begin (for-each delete-file-recursively '("freetype" "jbig2dec" "jpeg" "lcms2" "libpng" - "tiff" "zlib")))))) + "tiff" "zlib")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ;19 MiB of HTML/PS doc + examples (arguments diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 0e416a9efd..b1b60d0040 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -478,9 +478,11 @@ glxgears, glxheads, and glxinfo.") "0r37fg2s1f0jrvwh6c8cz5x6v4wqmhq42qm15cs9qs349q5c6wn5")) (modules '((guix build utils))) (snippet - '(substitute* "config/Makefile.linux" - (("= cc") "= gcc") - (("/lib64") "/lib"))))) + '(begin + (substitute* "config/Makefile.linux" + (("= cc") "= gcc") + (("/lib64") "/lib")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 30a22d7d59..1581858320 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> -;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> @@ -78,7 +78,7 @@ (define dbus (package (name "dbus") - (version "1.12.2") + (version "1.12.6") (source (origin (method url-fetch) (uri (string-append @@ -86,7 +86,7 @@ version ".tar.gz")) (sha256 (base32 - "121xm3cy48vbv6nv522lfkk4zyiqc1g6v4lb3344gc3h2w4vaar7")) + "05picaq8j60wlwyi84qvw5liw3nd0cws9va3krnc3pms0wm906v2")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -148,7 +148,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.54.2") + (version "2.56.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -156,9 +156,8 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "0v4ffl172kbqgxrhgxyafhpw36bq3iklb2zjqyl6jcfkmb2yb2dv")) - (patches (search-patches "glib-respect-datadir.patch" - "glib-tests-timer.patch")))) + "1iqgi90fmpl3l23jm2iv44qp7hqsxvnv7978s18933bvx4bnxvzc")) + (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python @@ -184,6 +183,9 @@ shared NFS home directories.") (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For building deterministic pyc files + (setenv "DETERMINISTIC_BUILD" "1") + ;; For tests/gdatetime.c. (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") @@ -235,6 +237,7 @@ shared NFS home directories.") ("gio/tests/contenttype.c" (;; XXX: requires shared-mime-info. "/contenttype/guess" + "/contenttype/guess_svg_from_data" "/contenttype/subtype" "/contenttype/list" "/contenttype/icon" @@ -296,18 +299,20 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.54.1") + (version "1.56.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq")) + (base32 "1y50pbn5qqbcv2h9rkz96wvv5jls2gma9bkqjq6wapmaszx5jw0d")) (modules '((guix build utils))) (snippet - '(substitute* "tools/g-ir-tool-template.in" - (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))) + '(begin + (substitute* "tools/g-ir-tool-template.in" + (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")) + #t)) (patches (search-patches "gobject-introspection-cc.patch" "gobject-introspection-girepository.patch" @@ -369,13 +374,14 @@ bindings to call into the C library.") ("perl-xml-parser" ,perl-xml-parser) ("perl" ,perl))) (arguments - `(#:phases (alist-cons-after - 'unpack 'patch-file-references - (lambda* (#:key inputs #:allow-other-keys) - (let ((file (assoc-ref inputs "file"))) - (substitute* "intltool-update.in" - (("`file") (string-append "`" file "/bin/file"))))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-file-references + (lambda* (#:key inputs #:allow-other-keys) + (let ((file (assoc-ref inputs "file"))) + (substitute* "intltool-update.in" + (("`file") (string-append "`" file "/bin/file"))) + #t)))))) (home-page "https://launchpad.net/intltool/+download") (synopsis "Tools to centralise translations of different file formats") (description diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 56ee1aa885..16dc49bc66 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2111,7 +2111,7 @@ editors, IDEs, etc.") (arguments `(#:configure-flags '("CXXFLAGS=-Wformat=0") #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (setenv "NOCONFIGURE" "true") (zero? (system* "sh" "autogen.sh"))))))) @@ -5021,7 +5021,8 @@ users.") (substitute* "src/nm-session-monitor.c" (("systemd") "elogind")) (substitute* "./src/nm-logging.c" - (("systemd") "elogind")))))) + (("systemd") "elogind")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 8 MiB of gtk-doc HTML @@ -6019,7 +6020,7 @@ documents and diagrams, playing media, scanning, and much more.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; The build system cleverly detects that we're not building from ;; a release tarball and turns on -Werror for GCC. @@ -6352,12 +6353,6 @@ functionality and behavior.") (base32 "0igxpngnkf1wpsg872a9jg3c9f5z8afm312yfbillz16mk8w39cw")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -6394,10 +6389,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (substitute* '("Makefile.am") (("\\$\\(DESTDIR\\)/usr/share") "$(datadir)")) - #t)) - (add-after 'patch-makefile.am 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -6446,12 +6438,6 @@ simple and consistent.") (base32 "1ya1cqvv8q847c0rpcg6apzky87q3h04y8jz5nmi52qk6kg8si0b")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index f4eacd3023..ac7f8ab85f 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -321,11 +321,6 @@ kinds of basic applications for the foundation of a GNU internet.") (base32 "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi")))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf-wrapper) ("automake" ,automake))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 2696e332de..cb0651d626 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -92,14 +92,14 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package (name "libgcrypt") - (version "1.8.1") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s")))) + "01sca9m8hm6b5v8hmqsfdjhyz013869p1f0fxw9ln52qfnp4q1n8")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index f7bdd17309..cac6f42918 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -77,8 +77,10 @@ (modules '((guix build utils))) (snippet ;; Fix incompatibility with Perl 5.22+. - '(substitute* '("js/src/config/milestone.pl") - (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) + '(begin + (substitute* '("js/src/config/milestone.pl") + (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")) + #t)))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) @@ -136,8 +138,10 @@ in C/C++.") (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"))))) + '(begin + (substitute* '("js/src/config/milestone.pl") + (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments mozjs) ((#:phases phases) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 8504b2f11e..61cd4ef5b4 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -339,7 +339,8 @@ graphics.") ;; and <https://github.com/openexr/openexr/pull/184>. (substitute* "IlmImf/Makefile.in" (("ImfIO\\.h") - "ImfIO.h ImfStdIO.h")))) + "ImfIO.h ImfStdIO.h")) + #t)) (patches (search-patches "openexr-missing-samples.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 2fefb41c0a..5f236498b8 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -148,11 +148,12 @@ visualization tool suite.") "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'check 'pre-check - (lambda _ - (chmod "test/boolean/test.sh" #o777)) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (chmod "test/boolean/test.sh" #o777) + #t))) ;; Some data files used by the test suite are missing. ;; See <http://sourceforge.net/p/gts/bugs/41/>. diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f0f49bbce5..501ab1b860 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> @@ -55,6 +55,7 @@ #:use-module (gnu packages enchant) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fribidi) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -175,7 +176,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.7.3") + (version "1.7.6") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -183,7 +184,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1zh5n3q3mb6y6kr5m7zz1ags9z1vjwai57d6warx8qhzfrwn8lyd")))) + "16rf7qwgy1gza74v2ws79zdwwb1lpvgz2abwwm8ws9j82cwysyys")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -197,7 +198,8 @@ affine transformation (scale, rotation, shear, etc.).") (native-inputs `(("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) - ("python" ,python-2))) ; incompatible with Python 3 (print syntax) + ("python" ,python-wrapper) + ("which" ,which))) (arguments `(#:configure-flags `("--with-graphite2" "--with-gobject" @@ -213,7 +215,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.40.14") + (version "1.42.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -221,13 +223,18 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "1qqpd8x1pl483ynj3mc5q4n8y2pxqhg2bv19vd94r7mzlzm1pbwh")))) + "0illn78nfwpa8y5knh9ir74wa1skc2hi8f3ny19zgpyf7n5dh94r")))) (build-system gnu-build-system) (propagated-inputs + ;; These are all in Requires or Requires.private of the '.pc' files. `(("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) ("harfbuzz" ,harfbuzz))) (inputs - `(("zlib" ,zlib) + `(("fribidi" ,fribidi) + ("zlib" ,zlib) ;; Some packages, such as Openbox, expect Pango to be built with the ;; optional libxft support. @@ -839,16 +846,13 @@ exceptions, macros, and a dynamic programming environment.") (patches (search-patches "guile-rsvg-pkgconfig.patch")) (modules '((guix build utils))) (snippet - '(substitute* (find-files "." "Makefile\\.am") - (("/share/guile/site") - "/share/guile/site/@GUILE_EFFECTIVE_VERSION@"))) + '(begin + (substitute* (find-files "." "Makefile\\.am") + (("/share/guile/site") + "/share/guile/site/@GUILE_EFFECTIVE_VERSION@")) + #t)) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) @@ -879,9 +883,11 @@ images onto Cairo surfaces.") (patches (search-patches "guile-present-coding.patch")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("godir = .*$") - "godir = $(moddir)\n"))))) + '(begin + (substitute* "Makefile.in" + (("godir = .*$") + "godir = $(moddir)\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 1e8aca1acf..2df815bc79 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> @@ -15,7 +15,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -183,23 +183,24 @@ without requiring the source code to be rewritten.") (outputs '("out" "debug")) (arguments - `(#:configure-flags '("--disable-static") ;saves 3MiB - #:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Tell (ice-9 popen) the file name of Bash. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "module/ice-9/popen.scm" - ;; If bash is #f allow fallback for user to provide - ;; "bash" in PATH. This happens when cross-building to - ;; MinGW for which we do not have Bash yet. - (("/bin/sh") - ,@(if (target-mingw?) - '((if bash - (string-append bash "/bin/bash") - "bash")) - '((string-append bash "/bin/bash"))))))) - %standard-phases))) + `(#:configure-flags '("--disable-static") ; saves 3 MiB + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Tell (ice-9 popen) the file name of Bash. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "module/ice-9/popen.scm" + ;; If bash is #f allow fallback for user to provide + ;; "bash" in PATH. This happens when cross-building to + ;; MinGW for which we do not have Bash yet. + (("/bin/sh") + ,@(if (target-mingw?) + '((if bash + (string-append bash "/bin/bash") + "bash")) + '((string-append bash "/bin/bash"))))) + #t)))))) (native-search-paths (list (search-path-specification @@ -239,8 +240,10 @@ without requiring the source code to be rewritten.") ;; Remove the pre-built object files. Instead, build everything ;; from source, at the expense of significantly longer build ;; times (almost 3 hours on a 4-core Intel i5). - (snippet '(for-each delete-file - (find-files "prebuilt" "\\.go$"))))) + (snippet '(begin + (for-each delete-file + (find-files "prebuilt" "\\.go$")) + #t)))) (properties '((timeout . 72000) ;20 hours (max-silent-time . 36000))) ;10 hours (needed on ARM ; when heavily loaded) @@ -524,7 +527,8 @@ program can be installed in one go.") post))) (substitute* "artanis/artanis.scm" (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+") - "")))))) + "")) + #t)))) (build-system gnu-build-system) ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (inputs `(("guile" ,guile-2.2) @@ -725,9 +729,6 @@ format is also supported.") (("guile/site/2.0") "guile/site/2.2")) #t)) - (add-after 'use-guile-2.2 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi"))) (add-after 'install 'wrap-mcron (lambda* (#:key outputs #:allow-other-keys) ;; Wrap the 'mcron' command to refer to the right @@ -854,7 +855,8 @@ for Guile\".") "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) (substitute* '("Makefile.in" "json/Makefile.in") (("moddir =.*/share/guile/site" all) - (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) + (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) + #t)))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.2))) (home-page "https://savannah.nongnu.org/projects/guile-json/") @@ -1227,9 +1229,11 @@ Guile's foreign function interface.") (modules '((guix build utils))) (snippet ;; Upgrade 'Makefile.am' to the current way of doing things. - '(substitute* "Makefile.am" - (("TESTS_ENVIRONMENT") - "TEST_LOG_COMPILER"))))) + '(begin + (substitute* "Makefile.am" + (("TESTS_ENVIRONMENT") + "TEST_LOG_COMPILER")) + #t)))) (build-system gnu-build-system) (native-inputs @@ -1364,7 +1368,8 @@ above command-line parameters.") "redis/Makefile.in" "redis/commands/Makefile.in") (("moddir =.*/share/guile/site" all) - (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) + (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) + #t)))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.0))) @@ -1477,7 +1482,8 @@ users and in some situations.") (("godir = .*$") (string-append "godir = " - "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))))))) + "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1731,7 +1737,8 @@ you send to a FIFO file.") "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) (substitute* "Makefile.in" (("/site/2.0") - "/site/@GUILE_EFFECTIVE_VERSION@")))))) + "/site/@GUILE_EFFECTIVE_VERSION@")) + #t)))) (build-system gnu-build-system) (inputs `(("guile" ,guile-2.2))) @@ -1841,12 +1848,7 @@ dictionary and suggesting spelling corrections.") (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "bootstrap"))))) - - #:configure-flags + '(#:configure-flags ;; Add -I to match 'bash.pc' of Bash 4.4. (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "bash:include") @@ -1976,10 +1978,6 @@ is not available for Guile 2.0.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi")))) - ;; FIXME: On i686, bytestructures miscalculates the offset ;; of the 'old-file' and 'new-file' fields within the ;; '%diff-delta' structure. @@ -2028,8 +2026,8 @@ manipulate repositories of the Git version control system.") `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) - (synopsis "General-purpose syntax highlighter for GNU Guile") - (description "Guile-syntax-highlight is a general-purpose syntax + (synopsis "General-purpose syntax highlighter for GNU Guile") + (description "Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various programming languages into a simple s-expression that can be converted to HTML (via SXML) or any other format for rendering.") @@ -2048,11 +2046,6 @@ HTML (via SXML) or any other format for rendering.") (base32 "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap.sh"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c5408f8627..4b1e3f23b8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -282,9 +282,11 @@ top of CLISP.") (mkdir-p libtinfo-dir) (symlink (string-append ncurses-lib "/libncursesw.so." - ;; Extract "6.0" from "6.0-20170930". + ;; Extract "6.0" from "6.0-20170930" if a + ;; dash-separated version tag exists. ,(let* ((v (package-version ncurses)) - (d (string-index v #\-))) + (d (or (string-index v #\-) + (string-length v)))) (version-major+minor (string-take v d)))) (string-append libtinfo-dir "/libtinfo.so.5")) diff --git a/gnu/packages/indent.scm b/gnu/packages/indent.scm index 4950a26121..3465d63c01 100644 --- a/gnu/packages/indent.scm +++ b/gnu/packages/indent.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,15 +37,16 @@ "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-after - 'unpack 'fix-docdir - (lambda _ - ;; Although indent uses a modern autoconf in which docdir - ;; defaults to PREFIX/share/doc, the doc/Makefile.am - ;; overrides this to be in PREFIX/doc. Fix this. - (substitute* "doc/Makefile.in" - (("^docdir = .*$") "docdir = @docdir@\n"))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-docdir + (lambda _ + ;; Although indent uses a modern autoconf in which docdir + ;; defaults to PREFIX/share/doc, the doc/Makefile.am + ;; overrides this to be in PREFIX/doc. Fix this. + (substitute* "doc/Makefile.in" + (("^docdir = .*$") "docdir = @docdir@\n")) + #t))))) (synopsis "Code reformatter") (description "Indent is a program that makes source code easier to read by diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index e59b34417b..e349b1cb6b 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -81,7 +81,8 @@ '(begin (delete-file-recursively "data/scripts") (substitute* "data/CMakeLists.txt" - (("NOT WIN32") "WIN32")))))) + (("NOT WIN32") "WIN32")) + #t)))) (build-system cmake-build-system) (arguments ;; The three binaries are not mutually exlusive, and are all built diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 5771366f66..f94c384d7d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -694,9 +694,10 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) "--disable-gjdoc") #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif")))) + ;; XXX The bootstrap phase executes autogen.sh, which fails after + ;; complaining about the lack of gettext. + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vif"))) (add-after 'unpack 'remove-unsupported-annotations (lambda _ (substitute* (find-files "java" "\\.java$") @@ -751,10 +752,12 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + '(begin + (substitute* "Makefile.in" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\"")) + #t)))) (build-system gnu-build-system) (outputs '("out" ; Java Runtime Environment "jdk" ; Java Development Kit @@ -1095,10 +1098,12 @@ bootstrapping purposes.") "1w331rdqx1dcx2xb0fmjmrkdc71xqn20fxsgw8by4xhiblh88khh")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + '(begin + (substitute* "Makefile.in" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\"")) + #t)))) (build-system gnu-build-system) (outputs '("out" ; Java Runtime Environment "jdk" ; Java Development Kit diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 4ef604d02a..6877f5b873 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -147,9 +147,11 @@ secure manner through client-server mutual authentication via tickets.") "heimdal-CVE-2017-11103.patch")) (modules '((guix build utils))) (snippet - '(substitute* "configure" - (("User=.*$") "User=Guix\n") - (("Date=.*$") "Date=2017\n"))))) + '(begin + (substitute* "configure" + (("User=.*$") "User=Guix\n") + (("Date=.*$") "Date=2017\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags (list diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index ad66a846d4..6f8571d22a 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -146,8 +146,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install @@ -183,8 +181,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install @@ -220,8 +216,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm index 0aa4665840..2827951280 100644 --- a/gnu/packages/less.scm +++ b/gnu/packages/less.scm @@ -26,7 +26,7 @@ (define-public less (package (name "less") - (version "487") + (version "530") (source (origin (method url-fetch) @@ -34,7 +34,7 @@ version ".tar.gz")) (sha256 (base32 - "01i7n6jaxwmww3pasy3hg38zc6x7jw0w05mqqvh6caqbrdaq9p7k")))) + "1qpj2z38c53qmvqn8jaa0kq26q989cfbfjj4y0s6z17l1amr2gsh")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (home-page "https://www.gnu.org/software/less/") diff --git a/gnu/packages/libbsd.scm b/gnu/packages/libbsd.scm index 3bfa2a3fec..58b0be872c 100644 --- a/gnu/packages/libbsd.scm +++ b/gnu/packages/libbsd.scm @@ -25,14 +25,14 @@ (define-public libbsd (package (name "libbsd") - (version "0.8.3") + (version "0.8.7") (source (origin (method url-fetch) (uri (string-append "https://libbsd.freedesktop.org/releases/" "libbsd-" version ".tar.xz")) (sha256 (base32 - "1a1l7afchlvvj2zfi7ajcg26bbkh5i98y2v5h9j5p1px9m7n6jwk")))) + "0c9bl49zs0xdddcwj5dh0lay9sxi2m1yi74848g8p87mb87g2j7m")))) (build-system gnu-build-system) (synopsis "Utility functions from BSD systems") (description "This library provides useful functions commonly found on BSD diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index d6b70a4f17..983c8625e4 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -121,14 +121,14 @@ limited support for fork events.") (define-public libuv (package (name "libuv") - (version "1.18.0") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://dist.libuv.org/dist/v" version "/libuv-v" version ".tar.gz")) (sha256 (base32 - "125bzmzc32m52hd9iv8jvjlc7r3gadxgvp31a2fz2wlil16p7r2l")))) + "1msk9ac1z69whww88ibrwjqkd1apdla6l77cm2fwy5kigq0z5g3w")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -136,7 +136,7 @@ limited support for fork events.") (lambda _ ;; Fashionable people don't run 'make dist' these days, so ;; we need to do that ourselves. - (zero? (system* "sh" "autogen.sh"))))) + (invoke "sh" "autogen.sh")))) ;; XXX: Some tests want /dev/tty, attempt to make connections, etc. #:tests? #f)) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index dd6b2237f9..8515edf925 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -36,29 +36,28 @@ #:use-module (guix build-system ruby)) (define-public libffi - (let ((post-install-phase - ;; Keep headers where libffi.pc expects them, but also make them - ;; available in $includedir where some users expect them. - '(lambda* (#:key outputs #:allow-other-keys) - (define out (assoc-ref outputs "out")) - (symlink (string-append out "/lib/libffi-3.2.1/include") - (string-append out "/include"))))) - (package + (package (name "libffi") (version "3.2.1") (source (origin - (method url-fetch) - (uri - (string-append "ftp://sourceware.org/pub/libffi/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) - (patches (search-patches "libffi-3.2.1-complex-alpha.patch")))) + (method url-fetch) + (uri + (string-append "ftp://sourceware.org/pub/libffi/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) + (patches (search-patches "libffi-3.2.1-complex-alpha.patch")))) (build-system gnu-build-system) - (arguments `(#:phases (alist-cons-after 'install 'post-install - ,post-install-phase - %standard-phases))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (define out (assoc-ref outputs "out")) + (symlink (string-append out "/lib/libffi-3.2.1/include") + (string-append out "/include")) + #t))))) (outputs '("out" "debug")) (synopsis "Foreign function call interface library") (description @@ -75,7 +74,7 @@ conversions for values passed between the two languages.") (home-page "http://sources.redhat.com/libffi/") ;; See <https://github.com/atgreen/libffi/blob/master/LICENSE>. - (license expat)))) + (license expat))) (define-public python-cffi (package diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 316602adbc..7a1a1433fd 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> -;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; @@ -705,12 +705,6 @@ Zoner Draw version 4 and 5.") ("libtool" ,libtool))) (inputs `(("perl" ,perl))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (native-search-paths (list (search-path-specification (variable "DICPATH") (files '("share/hunspell"))))) diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm index 2a44819820..7f63bb26c4 100644 --- a/gnu/packages/libsigsegv.scm +++ b/gnu/packages/libsigsegv.scm @@ -26,14 +26,14 @@ (define-public libsigsegv (package (name "libsigsegv") - (version "2.11") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libsigsegv/libsigsegv-" version ".tar.gz")) (sha256 - (base32 "063swdvq7mbmc1clv0rnh20grwln1zfc2qnm0sa1hivcxyr2wz6x")))) + (base32 "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/libsigsegv/") (synopsis "Library for handling page faults") diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm index 1d421fb17d..6a3afd4f05 100644 --- a/gnu/packages/libunistring.scm +++ b/gnu/packages/libunistring.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> @@ -32,7 +32,7 @@ (define-public libunistring (package (name "libunistring") - (version "0.9.8") + (version "0.9.9") (source (origin (method url-fetch) (uri (string-append @@ -40,7 +40,7 @@ version ".tar.xz")) (sha256 (base32 - "101gjj9q39pjlcaixylya6is5i7vlbnxr1w5w6raqvvhab7ki4vv")) + "0cx8v6862w7vvacbkcvg49kfx731ckdgaybmzw1zav71zkn97nd4")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index e5a63803d8..7981a4f5cc 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -331,12 +331,6 @@ devices.") (base32 "0qdgyj9rgb7n0nk3ghfswrhzzknxqn4ibn3wj8g4r828pw07451w")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (inputs `(("libusb" ,libusb) ("udev" ,eudev))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index df6d7468ac..d2fc387080 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> @@ -158,13 +158,13 @@ defconfig. Return the appropriate make target if applicable, otherwise return (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.9.59") + (version "4.14.26") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0z8hq8a6ic38xh33idzl0k0yi4isgd7ncl2g1d6mzf9ixw5krhvc")))) + "1m2zr17wpasg5riysbaa4g5i492jzr93py2jm088ki818s4a9cm3")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments @@ -184,29 +184,29 @@ defconfig. Return the appropriate make target if applicable, otherwise return (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - (and (zero? (system* "make" defconfig)) - (zero? (system* "make" "mrproper" "headers_check")))))) + (invoke "make" defconfig) + (invoke "make" "mrproper" "headers_check")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" - (string-append "INSTALL_HDR_PATH=" out) - "headers_install")) - (begin - (mkdir (string-append out "/include/config")) - (call-with-output-file - (string-append out - "/include/config/kernel.release") - (lambda (p) - (format p "~a-default~%" ,version))) - - ;; Remove the '.install' and '..install.cmd' files; the - ;; latter contains store paths, which pulls in bootstrap - ;; binaries in the build environment, and prevents bit - ;; reproducibility for the bootstrap binaries. - (for-each delete-file (find-files out "\\.install")) - - #t)))))) + (invoke "make" + (string-append "INSTALL_HDR_PATH=" out) + "headers_install") + + (mkdir (string-append out "/include/config")) + (call-with-output-file + (string-append out + "/include/config/kernel.release") + (lambda (p) + (format p "~a-default~%" ,version))) + + ;; Remove the '.install' and '..install.cmd' files; the + ;; latter contains store paths, which pulls in bootstrap + ;; binaries in the build environment, and prevents bit + ;; reproducibility for the bootstrap binaries. + (for-each delete-file (find-files out "\\.install")) + + #t)))) #:allowed-references () #:tests? #f)) (home-page "https://www.gnu.org/software/linux-libre/") @@ -547,8 +547,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (replacement util-linux/fixed) - (version "2.31") + (version "2.31.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -556,8 +555,9 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "12nw108xjhm63sh2n5a0qs33vpvbvb6rln96l9j50p7wykf7rgpr")) - (patches (search-patches "util-linux-tests.patch")) + "04fzrnrr3pvqskvjn9f81y0knh0jvvqx4lmbz5pd4lfdm5pv2l8s")) + (patches (search-patches "util-linux-tests.patch" + "util-linux-CVE-2018-7738.patch")) (modules '((guix build utils))) (snippet ;; We take the 'logger' program from GNU Inetutils and 'kill' @@ -635,15 +635,6 @@ block devices, UUIDs, TTYs, and many other tools.") (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+ license:bsd-4 license:public-domain)))) -(define util-linux/fixed - (package - (inherit util-linux) - (source - (origin - (inherit (package-source util-linux)) - (patches (append (origin-patches (package-source util-linux)) - (search-patches "util-linux-CVE-2018-7738.patch"))))))) - (define-public ddate (package (name "ddate") @@ -1339,7 +1330,8 @@ configuration (iptunnel, ipmaddr).") (substitute* "Make.Rules" (("LDFLAGS := #-g") (string-append "LDFLAGS := -Wl,-rpath=" - %output "/lib")))))) + %output "/lib"))) + #t))) #:tests? #f ; no 'check' target #:make-flags (list "lib=lib" (string-append "prefix=" @@ -1375,7 +1367,7 @@ Linux-based operating systems.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'bootstrap 'patch-stuff (lambda _ ;; Fix "field ‘ip6’ has incomplete type" errors. (substitute* "libbridge/libbridge.h" @@ -1388,7 +1380,7 @@ Linux-based operating systems.") (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) - (zero? (system* "autoreconf" "-vf"))))) + #t))) #:tests? #f)) ; no 'check' target (home-page @@ -1696,16 +1688,19 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source fuse)) (modules '((guix build utils))) (snippet - ;; Normally libfuse invokes mount(8) so that /etc/mtab is - ;; updated. Change calls to 'mtab_needs_update' to 0 so that - ;; it doesn't do that, allowing us to remove the dependency on - ;; util-linux (something that is useful in initrds.) - '(substitute* '("lib/mount_util.c" - "util/mount_util.c") - (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") - "0") - (("/bin/") - ""))))))) + '(begin + ;; Normally libfuse invokes mount(8) so that /etc/mtab is + ;; updated. Change calls to 'mtab_needs_update' to 0 so + ;; that it doesn't do that, allowing us to remove the + ;; dependency on util-linux (something that is useful in + ;; initrds.) + (substitute* '("lib/mount_util.c" + "util/mount_util.c") + (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") + "0") + (("/bin/") + "")) + #t)))))) (define-public unionfs-fuse/static (package (inherit unionfs-fuse) @@ -1714,11 +1709,13 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source unionfs-fuse)) (modules '((guix build utils))) (snippet - ;; Add -ldl to the libraries, because libfuse.a needs that. - '(substitute* "src/CMakeLists.txt" - (("target_link_libraries(.*)\\)" _ libs) - (string-append "target_link_libraries" - libs " dl)")))))) + '(begin + ;; Add -ldl to the libraries, because libfuse.a needs that. + (substitute* "src/CMakeLists.txt" + (("target_link_libraries(.*)\\)" _ libs) + (string-append "target_link_libraries" + libs " dl)"))) + #t)))) (arguments '(#:tests? #f #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static") @@ -1880,7 +1877,8 @@ system.") (substitute* '("src/unicode_start" "src/unicode_stop") ;; Assume the Coreutils are in $PATH. (("/usr/bin/tty") - "tty")))))) + "tty")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1946,7 +1944,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (define-public kmod (package (name "kmod") - (version "24") + (version "25") (source (origin (method url-fetch) (uri @@ -1954,7 +1952,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") "kmod-" version ".tar.xz")) (sha256 (base32 - "15xkkkzvca9flvkm48gkh8y8f13vlm3sl7nz9ydc7b3jy4fqs2v1")) + "1kgixs4m3jvwk7fb3d18n6j77qhgi9qfv4csj35rs5ancr4ycrbi")) (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs @@ -1963,19 +1961,20 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") `(("xz" ,xz) ("zlib" ,zlib))) (arguments - `(#:tests? #f ; FIXME: Investigate test failures + `(#:tests? #f ; FIXME: Investigate test failures #:configure-flags '("--with-xz" "--with-zlib") - #:phases (alist-cons-after - 'install 'install-modprobe&co - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (for-each (lambda (tool) - (symlink "kmod" - (string-append bin "/" tool))) - '("insmod" "rmmod" "lsmod" "modprobe" - "modinfo" "depmod")))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-modprobe&co + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (tool) + (symlink "kmod" + (string-append bin "/" tool))) + '("insmod" "rmmod" "lsmod" "modprobe" + "modinfo" "depmod")) + #t)))))) (home-page "https://www.kernel.org/") (synopsis "Kernel module tools") (description "Kmod is a set of tools to handle common tasks with Linux @@ -1991,7 +1990,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.4") + (version "3.2.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/gentoo/eudev/archive/v" @@ -1999,27 +1998,26 @@ from the module-init-tools project.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "1r1ag0snarygrj5qqxi2xdq9w6g3sfjd5jx1b0fl7zmqlsz3vvxx")) + "0c9l3m3mr1nvrvlcnzh5gjdg9p9k7hh0jk04wh596cbmbass2nhd")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-before 'bootstrap 'patch-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "man/make.sh" (("/usr/bin/xsltproc") (string-append (assoc-ref inputs "xsltproc") "/bin/xsltproc"))) - ;; Manual pages are regenerated here. - (zero? (system* "./autogen.sh")))) + #t)) (add-after 'install 'build-hwdb (lambda* (#:key outputs #:allow-other-keys) ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and ;; similar tools to display product names. (let ((out (assoc-ref outputs "out"))) - (zero? (system* (string-append out "/bin/udevadm") - "hwdb" "--update")))))) + (invoke (string-append out "/bin/udevadm") + "hwdb" "--update"))))) #:configure-flags (list "--enable-manpages"))) (native-inputs `(("autoconf" ,autoconf) @@ -2072,7 +2070,8 @@ time.") (("confdir = .*$") "confdir = @sysconfdir@\n") (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@") - "DEFAULT_SYS_DIR = @sysconfdir@")))) + "DEFAULT_SYS_DIR = @sysconfdir@")) + #t)) (patches (search-patches "lvm2-static-link.patch")))) (build-system gnu-build-system) (native-inputs @@ -2256,7 +2255,9 @@ compliance.") "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip")) ;; We're building 'regulatory.bin' by ourselves. - (snippet '(delete-file "regulatory.bin")))) + (snippet '(begin + (delete-file "regulatory.bin") + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -2689,7 +2690,8 @@ also contains the libsysfs library.") "includedir = @includedir@")) (substitute* "configure" (("includedir='(\\$\\{prefix\\}/include)'" all orig) - (string-append "includedir='" orig "/sysfs'"))))))) + (string-append "includedir='" orig "/sysfs'"))) + #t)))) (synopsis "System utilities based on Linux sysfs (version 1.x)"))) (define-public cpufrequtils @@ -3106,7 +3108,7 @@ write access to exFAT devices.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; The tarball was not generated with 'make dist' so we ;; need to bootstrap things ourselves. @@ -3241,12 +3243,6 @@ from the btrfs-progs package. It is meant to be used in initrds.") (base32 "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3310,9 +3306,10 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (modules '((guix build utils))) ;; Fix erroneous man page location in Makefile leading to ;; a compilation failure. - (snippet - '(substitute* "CMakeLists.txt" - (("thinkfan\\.1") "src/thinkfan.1"))))) + (snippet '(begin + (substitute* "CMakeLists.txt" + (("thinkfan\\.1") "src/thinkfan.1")) + #t)))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -3363,11 +3360,12 @@ from userspace.") (base32 "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy")) (modules '((guix build utils))) - (snippet - ;; Install under $prefix. - '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") - (("/sbin") - "@sbindir@"))))) + (snippet '(begin + ;; Install under $prefix. + (substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") + (("/sbin") + "@sbindir@")) + #t)))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux) ("fuse" ,fuse))) ;libuuid @@ -3466,12 +3464,7 @@ The following service daemons are also provided: (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. - #:configure-flags '("--without-nistbeacon") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) + #:configure-flags '("--without-nistbeacon"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3668,9 +3661,12 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet - ;; The snapshots lack a .git directory, breaking ‘git describe’. - `(substitute* "Makefile" - (("\"unknown\"") (string-append "\"v" ,version "\"")))))) + `(begin + ;; The snapshots lack a .git directory, + ;; breaking ‘git describe’. + (substitute* "Makefile" + (("\"unknown\"") (string-append "\"v" ,version "\""))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 1cda606c20..f7b74b030f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -189,8 +189,10 @@ interface to the Tk widget system.") (modules '((guix build utils))) (snippet ;; Add ecl-bundle-systems to 'default-system-source-registry'. - `(substitute* "contrib/asdf/asdf.lisp" - ,@(asdf-substitutions name))))) + `(begin + (substitute* "contrib/asdf/asdf.lisp" + ,@(asdf-substitutions name)) + #t)))) (build-system gnu-build-system) ;; src/configure uses 'which' to confirm the existence of 'gzip'. (native-inputs `(("which" ,which))) @@ -324,8 +326,10 @@ an interpreter, a compiler, a debugger, and much more.") (modules '((guix build utils))) (snippet ;; Add sbcl-bundle-systems to 'default-system-source-registry'. - `(substitute* "contrib/asdf/asdf.lisp" - ,@(asdf-substitutions name))))) + `(begin + (substitute* "contrib/asdf/asdf.lisp" + ,@(asdf-substitutions name)) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ;; Bootstrap with CLISP. @@ -618,10 +622,11 @@ The core is 12 builtin special forms and 33 builtin functions.") (snippet '(begin (substitute* "src/unix.c" - (("\\{ \"LUSH_DATE\", __DATE__ \\},") "") - (("\\{ \"LUSH_TIME\", __TIME__ \\},") "")) - (substitute* "src/main.c" - (("\" \\(built \" __DATE__ \"\\)\"") "")))) + (("\\{ \"LUSH_DATE\", __DATE__ \\},") "") + (("\\{ \"LUSH_TIME\", __TIME__ \\},") "")) + (substitute* "src/main.c" + (("\" \\(built \" __DATE__ \"\\)\"") "")) + #t)) (sha256 (base32 "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k")))) @@ -920,7 +925,8 @@ ANSI-compliant Common Lisp implementations.") (delete-file-recursively "demo") (delete-file "test/trapezoid.lisp") (substitute* "clx.asd" - (("\\(:file \"trapezoid\"\\)") "")))))) + (("\\(:file \"trapezoid\"\\)") "")) + #t)))) (build-system asdf-build-system/sbcl) (home-page "http://www.cliki.net/portable-clx") (synopsis "X11 client library for Common Lisp") @@ -1048,12 +1054,12 @@ productive, customizable lisp based systems.") (rename-file "contrib" "slynk/contrib") ;; Move slynk's contents into the base directory for easier ;; access - (for-each - (lambda (file) - (unless (string-prefix? "." file) - (rename-file (string-append "slynk/" file) - (string-append "./" (basename file))))) - (scandir "slynk")))))) + (for-each (lambda (file) + (unless (string-prefix? "." file) + (rename-file (string-append "slynk/" file) + (string-append "./" (basename file))))) + (scandir "slynk")) + #t)))) (build-system asdf-build-system/sbcl) (arguments `(#:tests? #f ; No test suite diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 02dacd3e87..f493720973 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -364,7 +364,8 @@ in LXDE.") (and (string-suffix? ".c" file) (file-exists? (c->vala file)))))) (for-each delete-file - (find-files "." generated-c-file?)))))) + (find-files "." generated-c-file?)) + #t)))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm index 32e7c2ae42..b223ce91d1 100644 --- a/gnu/packages/m4.scm +++ b/gnu/packages/m4.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,18 +41,19 @@ ;; proceeds and fails, unsurprisingly. #:tests? ,(not (%current-target-system)) - #:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - ;; Fix references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (for-each patch-shebang - (find-files "tests" "\\.sh$")) - (substitute* (find-files "tests" - "posix_spawn") - (("/bin/sh") - (format #f "~a/bin/sh" bash))))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix references to /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (for-each patch-shebang + (find-files "tests" "\\.sh$")) + (substitute* (find-files "tests" + "posix_spawn") + (("/bin/sh") + (format #f "~a/bin/sh" bash))) + #t)))))) (synopsis "Macro processor") (description "GNU M4 is an implementation of the M4 macro language, which features diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 12384a1031..d9b54d692f 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -408,7 +408,8 @@ sample proximities between pairs of cases.") (display line out)) (loop (read-line in 'concat) skip-next?))))))) (for-each delete-ifdefs (find-files "src/shogun/kernel/" - "^Kernel\\.(cpp|h)")))))) + "^Kernel\\.(cpp|h)")) + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f ;no check target diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7986671e97..b579914e73 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -137,9 +137,11 @@ (snippet ;; For a rebuild of the Flex/Bison byproducts touched by the ;; patch above. - '(for-each delete-file - '("mh/mh_alias_lex.c" - "libmailutils/cfg/parser.c"))))) + '(begin + (for-each delete-file + '("mh/mh_alias_lex.c" + "libmailutils/cfg/parser.c")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 779b7ef5aa..543aa919c3 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,24 +145,24 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (arguments (substitute-keyword-arguments (package-arguments bzip2) ((#:phases phases) - `(alist-cons-before - 'build 'dash-static - (lambda _ - (substitute* "Makefile" - (("^LDFLAGS[[:blank:]]*=.*$") - "LDFLAGS = -static"))) - ,phases)))))) + `(modify-phases ,phases + (add-before 'build 'dash-static + (lambda _ + (substitute* "Makefile" + (("^LDFLAGS[[:blank:]]*=.*$") + "LDFLAGS = -static")) + #t)))))))) (xz (package (inherit xz) (arguments `(#:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'static-executable - (lambda _ - ;; Ask Libtool for a static executable. - (substitute* "src/xz/Makefile.in" - (("^xz_LDADD =") - "xz_LDADD = -all-static"))) - %standard-phases))))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'static-executable + (lambda _ + ;; Ask Libtool for a static executable. + (substitute* "src/xz/Makefile.in" + (("^xz_LDADD =") + "xz_LDADD = -all-static")) + #t))))))) (gawk (package (inherit gawk) (source (origin (inherit (package-source gawk)) (patches (cons (search-patch "gawk-shell.patch") @@ -175,14 +177,14 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ,@(substitute-keyword-arguments (package-arguments gawk) ((#:phases phases) - `(alist-cons-before - 'configure 'no-export-dynamic - (lambda _ - ;; Since we use `-static', remove - ;; `-export-dynamic'. - (substitute* "configure" - (("-Wl,-export-dynamic") ""))) - ,phases))))) + `(modify-phases ,phases + (add-before 'configure 'no-export-dynamic + (lambda _ + ;; Since we use `-static', remove + ;; `-export-dynamic'. + (substitute* "configure" + (("-Wl,-export-dynamic") "")) + #t))))))) (inputs (if (%current-target-system) `(("bash" ,static-bash)) '())))) @@ -306,19 +308,19 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ((#:configure-flags flags _ ...) flags))) #:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'all-static - (lambda _ - ;; The `-all-static' libtool flag can only be passed - ;; after `configure', since configure tests don't use - ;; libtool, and only for executables built with libtool. - (substitute* '("binutils/Makefile.in" - "gas/Makefile.in" - "ld/Makefile.in") - (("^LDFLAGS =(.*)$" line) - (string-append line - "\nAM_LDFLAGS = -static -all-static\n")))) - %standard-phases))))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'all-static + (lambda _ + ;; The `-all-static' libtool flag can only be passed + ;; after `configure', since configure tests don't use + ;; libtool, and only for executables built with libtool. + (substitute* '("binutils/Makefile.in" + "gas/Makefile.in" + "ld/Makefile.in") + (("^LDFLAGS =(.*)$" line) + (string-append line + "\nAM_LDFLAGS = -static -all-static\n"))) + #t))))))) (define %binutils-static-stripped ;; The subset of Binutils that we need. @@ -424,18 +426,18 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (remove (cut string-match "--(.*plugin|enable-languages)" <>) ,flags))) ((#:phases phases) - `(alist-cons-after - 'pre-configure 'remove-lgcc_s - (lambda _ - ;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in - ;; the 'pre-configure phase of our main gcc package, because - ;; that shared library is not present in this static gcc. See - ;; <https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00008.html>. - (substitute* (cons "gcc/config/rs6000/sysv4.h" - (find-files "gcc/config" - "^gnu-user.*\\.h$")) - ((" -lgcc_s}}") "}}"))) - ,phases))))) + `(modify-phases ,phases + (add-after 'pre-configure 'remove-lgcc_s + (lambda _ + ;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in + ;; the 'pre-configure phase of our main gcc package, because + ;; that shared library is not present in this static gcc. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00008.html>. + (substitute* (cons "gcc/config/rs6000/sysv4.h" + (find-files "gcc/config" + "^gnu-user.*\\.h$")) + ((" -lgcc_s}}") "}}")) + #t))))))) (native-inputs (if (%current-target-system) `(;; When doing a Canadian cross, we need GMP/MPFR/MPC both @@ -493,12 +495,14 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (string-append includedir "/c++")) ;; For native builds, check whether the binaries actually work. - ,(if (%current-target-system) - '#t - '(every (lambda (prog) - (zero? (system* (string-append gcc "/bin/" prog) - "--version"))) - '("gcc" "g++" "cpp"))))))) + ,@(if (%current-target-system) + '() + '((for-each (lambda (prog) + (invoke (string-append gcc "/bin/" prog) + "--version")) + '("gcc" "g++" "cpp")))) + + #t)))) (inputs `(("gcc" ,%gcc-static))))) (define %guile-static @@ -586,21 +590,22 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (mkdir (string-append out "/bin")) (copy-file guile1 guile2) - ;; Does the relocated Guile work? - (and ,(if (%current-target-system) - #t - '(zero? (system* guile2 "--version"))) - (begin - ;; Strip store references. - (remove-store-references guile2) - - ;; Does the stripped Guile work? If it aborts, it could be - ;; that it tries to open iconv descriptors and fails because - ;; libc's iconv data isn't available (see - ;; `guile-default-utf8.patch'.) - ,(if (%current-target-system) - #t - '(zero? (system* guile2 "--version"))))))))) + ;; Verify that the relocated Guile works. + ,@(if (%current-target-system) + '() + '((invoke guile2 "--version"))) + + ;; Strip store references. + (remove-store-references guile2) + + ;; Verify that the stripped Guile works. If it aborts, it could be + ;; that it tries to open iconv descriptors and fails because libc's + ;; iconv data isn't available (see `guile-default-utf8.patch'.) + ,@(if (%current-target-system) + '() + '((invoke guile2 "--version"))) + + #t)))) (inputs `(("guile" ,%guile-static))) (outputs '("out")) (synopsis "Minimal statically-linked and relocatable Guile"))) @@ -627,17 +632,17 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (mkdir out) (set-path-environment-variable "PATH" '("bin") (list tar xz)) (with-directory-excursion input - (zero? (system* "tar" "cJvf" - (string-append out "/" - ,name "-" ,version - "-" - ,(or (%current-target-system) - (%current-system)) - ".tar.xz") - "." - ;; avoid non-determinism in the archive - "--sort=name" "--mtime=@0" - "--owner=root:0" "--group=root:0")))))))))) + (invoke "tar" "cJvf" + (string-append out "/" + ,name "-" ,version + "-" + ,(or (%current-target-system) + (%current-system)) + ".tar.xz") + "." + ;; avoid non-determinism in the archive + "--sort=name" "--mtime=@0" + "--owner=root:0" "--group=root:0"))))))))) (define %bootstrap-binaries-tarball ;; A tarball with the statically-linked bootstrap binaries. diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 257cabbbb6..644738f717 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -189,7 +189,7 @@ Linux kernel and C library interfaces employed by user-space programs.") (define-public help2man (package (name "help2man") - (version "1.47.5") + (version "1.47.6") (source (origin (method url-fetch) @@ -197,7 +197,7 @@ Linux kernel and C library interfaces employed by user-space programs.") version ".tar.xz")) (sha256 (base32 - "1cb14kp380jzk1yi4i7x9d8qplc8c5mgcbgycgs9ggpx34jhp9kw")))) + "0vz4dlrvy4vc6l7w0a7n668pfa0rdm73wr2gar58wqranyah46yr")))) (build-system gnu-build-system) (arguments `(;; There's no `check' target. #:tests? #f)) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 64fe13b9bc..5e7d7b2bd3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -170,9 +170,11 @@ interactive dialogs to guide them.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(for-each (lambda (d) - (delete-file-recursively (string-append "libcoda/" d))) - '("zlib" "pcre" "expat"))))) + '(begin + (for-each (lambda (d) + (delete-file-recursively (string-append "libcoda/" d))) + '("zlib" "pcre" "expat")) + #t)))) (native-inputs `(("fortran" ,gfortran) ("python" ,python) @@ -820,7 +822,8 @@ extremely large and complex data collections.") (for-each delete-file (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz" "HDF4.tar.gz" "HDF5.tar.gz")) - (delete-file-recursively ,(string-append "hdfjava-" version "/lib")))))) + (delete-file-recursively ,(string-append "hdfjava-" version "/lib")) + #t)))) (build-system gnu-build-system) (native-inputs `(("jdk" ,icedtea "jdk") @@ -1223,7 +1226,9 @@ online as well as original implementations of various other algorithms.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(delete-file-recursively "ThirdParty")))) + '(begin + (delete-file-recursively "ThirdParty") + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1447,7 +1452,9 @@ Open CASCADE library.") (modules '((guix build utils))) (snippet ;; Remove non-free METIS code - '(delete-file-recursively "contrib/Metis")))) + '(begin + (delete-file-recursively "contrib/Metis") + #t)))) (build-system cmake-build-system) (propagated-inputs `(("fltk" ,fltk) @@ -1981,7 +1988,8 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, (let ((line (read-line in 'concat))) (unless (regexp-exec rx line) (display line out) - (loop))))))))))) + (loop)))) + #t))))))) (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) @@ -2039,7 +2047,8 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, (delete-file "SRC/mc64ad.f.bak") (substitute* "SRC/util.c" ;adjust default algorithm (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag") - "RowPerm = NOROWPERM")))) + "RowPerm = NOROWPERM")) + #t)) (patches (search-patches "superlu-dist-scotchmetis.patch")))) (build-system gnu-build-system) (native-inputs @@ -2888,7 +2897,9 @@ Fresnel integrals, and similar related functions as well.") (modules '((guix build utils))) (snippet ;; Remove bundled metis source - '(delete-file-recursively "metis-5.1.0")))) + '(begin + (delete-file-recursively "metis-5.1.0") + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ;no "check" target @@ -3084,19 +3095,21 @@ specifications.") "12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0")) (modules '((guix build utils))) (snippet - '(substitute* (list "lp_solve/ccc" "lpsolve55/ccc") - (("^c=cc") "c=gcc") - ;; Pretend to be on a 64 bit platform to obtain a common directory - ;; name for the build results on all architectures; nothing else - ;; seems to depend on it. - (("^PLATFORM=.*$") "PLATFORM=ux64\n") - - ;; The check for 'isnan' as it is written fails with - ;; "non-floating-point argument in call to function - ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro - ;; definition, which in turn leads to bad things. Fix the feature - ;; test. - (("isnan\\(0\\)") "isnan(0.)"))))) + '(begin + (substitute* (list "lp_solve/ccc" "lpsolve55/ccc") + (("^c=cc") "c=gcc") + ;; Pretend to be on a 64 bit platform to obtain a common directory + ;; name for the build results on all architectures; nothing else + ;; seems to depend on it. + (("^PLATFORM=.*$") "PLATFORM=ux64\n") + + ;; The check for 'isnan' as it is written fails with + ;; "non-floating-point argument in call to function + ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro + ;; definition, which in turn leads to bad things. Fix the feature + ;; test. + (("isnan\\(0\\)") "isnan(0.)")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -3154,7 +3167,9 @@ revised simplex and the branch-and-bound methods.") (modules '((guix build utils))) (snippet ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost - '(delete-file-recursively "bundled")))) + '(begin + (delete-file-recursively "bundled") + #t)))) (build-system cmake-build-system) (inputs `(("tbb" ,tbb) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index ae489e1586..6df889e315 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -217,7 +217,8 @@ identi.ca and status.net).") '("intltool.m4" "libtool.m4" "lt~obsolete.m4" "ltoptions.m4" "ltsugar.m4" "ltversion.m4"))) (delete-file-recursively "build-aux") - (delete-file "po/Makefile.in.in"))))) + (delete-file "po/Makefile.in.in") + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("autoconf-archive" ,autoconf-archive) @@ -243,13 +244,13 @@ identi.ca and status.net).") #:phases (modify-phases %standard-phases ;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be! - (add-after 'unpack 'bootstrap + (add-before 'boostrap 'copy-intltool-makefile (lambda* (#:key inputs #:allow-other-keys) ;; This file is still required for autoreconf. (copy-file (string-append (assoc-ref inputs "intltool") "/share/intltool/Makefile.in.in") "po/Makefile.in.in") - (zero? (system* "autoreconf" "-fiv"))))))) + #t))))) (synopsis "Graphical IRC Client") (description "HexChat lets you connect to multiple IRC networks at once. The main @@ -1068,7 +1069,9 @@ into existing applications.") "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42")) ;; psycmp3 currently depends on MP3::List and rxaudio (shareware), ;; we can add it back when this is no longer the case. - (snippet '(delete-file "contrib/psycmp3")))) + (snippet '(begin + (delete-file "contrib/psycmp3") + #t)))) (build-system perl-build-system) (inputs `(("perl-curses" ,perl-curses) @@ -1373,12 +1376,6 @@ is also scriptable and extensible via Guile.") (base32 "0iaj56fkd5bjvqpvq3324ni895rmbj1akbfqipjydnghfwaym4z6")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'bootstrap - (lambda _ - (zero? (system* "./bootstrap.sh"))))))) (inputs `(("expat" ,expat) ("openssl" ,openssl))) @@ -1408,12 +1405,6 @@ manual SSL certificate verification.") (base32 "1hzwdax4nsz0fncf5bjfza0cn0lc6xsf38y569ql1gg5hvwr6169")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'bootstrap - (lambda _ - (zero? (system* "./bootstrap.sh"))))))) (inputs `(("expat" ,expat) ("openssl" ,openssl))) diff --git a/gnu/packages/microcom.scm b/gnu/packages/microcom.scm index dcb864808f..67fd5fe355 100644 --- a/gnu/packages/microcom.scm +++ b/gnu/packages/microcom.scm @@ -39,12 +39,6 @@ (base32 "080ci5589bpyy5kcl51csmvpw9zysify189hw6awx69pi3cjnxly")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-i"))))))) (inputs `(("readline" ,readline))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index c5a86d02c6..fee9575bb9 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -54,9 +54,11 @@ (modules '((guix build utils))) (snippet ;; Ensure reproducibility. - '(substitute* (find-files "cgi" "\\.c$") - (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\""))))) + '(begin + (substitute* (find-files "cgi" "\\.c$") + (("__DATE__") "\"1970-01-01\"") + (("__TIME__") "\"00:00:00\"")) + #t)))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 6dc58e2cc8..5904fef8d3 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -120,7 +120,7 @@ versions of ID3v2.") "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97")) (modules '((guix build utils))) ;; Don't use bundled zlib - (snippet '(delete-file-recursively "zlib")) + (snippet '(begin (delete-file-recursively "zlib") #t)) (patches (search-patches "id3lib-CVE-2007-4460.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) @@ -192,10 +192,12 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/bin/rm") "rm") - (("/usr/bin/install") "install") - (("man/man1") "share/man/man1"))))) + '(begin + (substitute* "Makefile" + (("/bin/rm") "rm") + (("/usr/bin/install") "install") + (("man/man1") "share/man/man1")) + #t)))) (build-system gnu-build-system) (outputs '("out" "gui")) ;GTK+ interface in "gui" (arguments diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 4bfe0ac563..ee427f84eb 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -91,13 +92,13 @@ algebra.") (define-public mpfr (package (name "mpfr") - (version "3.1.6") + (version "4.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.xz")) (sha256 (base32 - "0l598h9klpgkz2bp0rxiqb90mkqh9f2f81n5rpy191j00hdaqqks")))) + "0vp1lrc08gcmwdaqck6bpzllkrykvp06vz5gnqpyw0v3h9h4m1v7")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h> @@ -112,14 +113,14 @@ correct rounding.") (define-public mpc (package (name "mpc") - (version "1.0.3") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz")) (sha256 (base32 - "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))) + "0biwnhjm3rx3hc0rfpvyniky4lpzsvdcwhmcn7f0h4iw2hwcb1b9")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp) ; <mpc.h> refers to both diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 4bd58d9733..7eb2896963 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -203,29 +203,31 @@ score, keyboard, guitar, drum and controller views.") "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi")) (modules '((guix build utils))) (snippet - '(for-each + '(begin + (for-each (lambda (dir) (delete-file-recursively - (string-append "3rdparty/" dir))) + (string-append "3rdparty/" dir))) (list - ;; TODO: The following dependencies are still bundled: - ;; - "qxt": Appears to be unmaintained upstream. - ;; - "qsqlite" - ;; - "qtsingleapplication" - ;; - "qocoa" - ;; - "qtiocompressor" - ;; - "gmock": The tests crash when using our googletest - ;; package instead of the bundled gmock. - "SPMediaKeyTap" - "fancytabwidget" - "google-breakpad" - "libmygpo-qt" - "libmygpo-qt5" - "libprojectm" - "qtwin" - "sha2" ;; Replaced by openssl. - "taglib" - "tinysvcmdns"))) + ;; TODO: The following dependencies are still bundled: + ;; - "qxt": Appears to be unmaintained upstream. + ;; - "qsqlite" + ;; - "qtsingleapplication" + ;; - "qocoa" + ;; - "qtiocompressor" + ;; - "gmock": The tests crash when using our googletest + ;; package instead of the bundled gmock. + "SPMediaKeyTap" + "fancytabwidget" + "google-breakpad" + "libmygpo-qt" + "libmygpo-qt5" + "libprojectm" + "qtwin" + "sha2" ;; Replaced by openssl. + "taglib" + "tinysvcmdns")) + #t)) (patches (search-patches "clementine-use-openssl.patch" "clementine-remove-crypto++-dependency.patch")))) (build-system cmake-build-system) @@ -2607,7 +2609,8 @@ of tools for manipulating and accessing your music.") '(begin (delete-file-recursively "resources/music") (substitute* "CMakeLists.txt" - (("add_subdirectory\\(resources/music\\)") "")))))) + (("add_subdirectory\\(resources/music\\)") "")) + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target @@ -2645,9 +2648,11 @@ for improved Amiga ProTracker 2/3 compatibility.") (modules '((guix build utils))) (snippet ;; Remove use of __DATE__ and __TIME__ for reproducibility. - `(substitute* "schism/version.c" - (("Schism Tracker built %s %s.*$") - (string-append "Schism Tracker version " ,version "\");")))))) + `(begin + (substitute* "schism/version.c" + (("Schism Tracker built %s %s.*$") + (string-append "Schism Tracker version " ,version "\");"))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -2762,9 +2767,11 @@ available memory.") (modules '((guix build utils))) (snippet ;; Remove use of __DATE__ and __TIME__ for reproducibility. - '(substitute* "main.c" - (("printf \\(\" Built : %s\", __DATE__\\);") "") - (("printf \\(\" %s\", __TIME__\\);") ""))))) + '(begin + (substitute* "main.c" + (("printf \\(\" Built : %s\", __DATE__\\);") "") + (("printf \\(\" %s\", __TIME__\\);") "")) + #t)))) (build-system gnu-build-system) (inputs `(("alsa-lib" ,alsa-lib) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 548261289e..6bc98b15d8 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -40,7 +40,7 @@ (define-public ncurses (package (name "ncurses") - (version "6.0-20170930") + (version "6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ncurses/ncurses-" @@ -48,7 +48,7 @@ ".tar.gz")) (sha256 (base32 - "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm")))) + "05qdmbmrrn88ii9f66rkcmcyzp1kb1ymkx7g040lfkd1nkp7w1da")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1 MiB of man pages @@ -56,7 +56,8 @@ (let ((patch-makefile-phase '(lambda _ (for-each patch-makefile-SHELL - (find-files "." "Makefile.in")))) + (find-files "." "Makefile.in")) + #t)) (configure-phase ;; The 'configure' script does not understand '--docdir', so we must ;; override that and use '--mandir' instead. @@ -64,21 +65,27 @@ #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (doc (assoc-ref outputs "doc"))) - (zero? (apply system* "./configure" - (string-append "SHELL=" (which "sh")) - (string-append "--build=" build) - (string-append "--prefix=" out) - (string-append "--mandir=" doc "/share/man") - (if target - (cons (string-append "--host=" target) - configure-flags) - configure-flags)))))) + (apply invoke "./configure" + (string-append "SHELL=" (which "sh")) + (string-append "--build=" build) + (string-append "--prefix=" out) + (string-append "--mandir=" doc "/share/man") + (if target + (cons (string-append "--host=" target) + configure-flags) + configure-flags)) + #t))) (apply-rollup-patch-phase + ;; Ncurses distributes "stable" patchsets to be applied on top + ;; of the release tarball. These are only available as shell + ;; scripts(!) so we decompress and apply them in a phase. + ;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>. '(lambda* (#:key inputs native-inputs #:allow-other-keys) (copy-file (assoc-ref (or native-inputs inputs) "rollup-patch") (string-append (getcwd) "/rollup-patch.sh.bz2")) - (and (zero? (system* "bzip2" "-d" "rollup-patch.sh.bz2")) - (zero? (system* "sh" "rollup-patch.sh"))))) + (invoke "bzip2" "-d" "rollup-patch.sh.bz2") + (invoke "sh" "rollup-patch.sh") + #t)) (remove-shebang-phase '(lambda _ ;; To avoid retaining a reference to the bootstrap Bash via the @@ -149,7 +156,8 @@ (when (file-exists? packagew.pc) (symlink packagew.pc package.pc)))) '()))) - '("curses" "ncurses" "form" "panel" "menu"))))))) + '("curses" "ncurses" "form" "panel" "menu"))) + #t)))) `(#:configure-flags ,(cons* 'quasiquote @@ -174,8 +182,6 @@ ,@(if (target-mingw?) '("--enable-term-driver") '())))) #:tests? #f ; no "check" target #:phases (modify-phases %standard-phases - (add-after 'unpack 'apply-rollup-patch - ,apply-rollup-patch-phase) (replace 'configure ,configure-phase) (add-after 'install 'post-install ,post-install-phase) @@ -185,22 +191,7 @@ ,remove-shebang-phase))))) (self-native-input? #t) ; for `tic' (native-inputs - `(("pkg-config" ,pkg-config) - - ;; Ncurses distributes "stable" patchsets to be applied on top - ;; of the release tarball. These are only available as shell - ;; scripts(!) so we decompress and apply them in a phase. - ;; See <https://invisible-mirror.net/archives/ncurses/6.0/README>. - ("rollup-patch" - ,(origin - (method url-fetch) - (uri (string-append - "https://invisible-mirror.net/archives/ncurses/" - (car (string-split version #\-)) - "/ncurses-" version "-patch.sh.bz2")) - (sha256 - (base32 - "08a1pp8wnj1fwpa1pz3fgrmd6xwp21idniswqz8lx3w3z2nb4ydi")))))) + `(("pkg-config" ,pkg-config))) (native-search-paths (list (search-path-specification (variable "TERMINFO_DIRS") diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm index 2d76d7e067..e5246660a2 100644 --- a/gnu/packages/netpbm.scm +++ b/gnu/packages/netpbm.scm @@ -94,7 +94,8 @@ (("^DATE=.*") "DATE=\"Thu Jan 01 00:00:00+0000 1970\"\n") (("^USER=.*") - "USER=Guix\n")))))) + "USER=Guix\n")) + #t)))) (build-system gnu-build-system) (inputs `(("ghostscript" ,ghostscript) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 395e75afa6..c962a8d821 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -399,9 +399,11 @@ Ethernet devices.") "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c")) (modules '((guix build utils))) (snippet - '(substitute* "Main.h" - (("#include <stdio.h>") - "#include <stdio.h>\n#include <stdlib.h>"))))) + '(begin + (substitute* "Main.h" + (("#include <stdio.h>") + "#include <stdio.h>\n#include <stdlib.h>")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no "check" target @@ -1570,8 +1572,6 @@ interface and a programmable text output for scripting.") (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir "libnet") #t)) - (add-after 'chdir 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (add-before 'build 'build-doc (lambda* (#:key make-flags #:allow-other-keys) (zero? (apply system* "make" "-C" "doc" "doc" diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 976d0c048a..8daaf6de89 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -68,7 +68,8 @@ (("deps/http_parser/http_parser.gyp") "") (("deps/uv/include/\\*.h") "") (("deps/uv/uv.gyp") "") - (("deps/zlib/zlib.gyp") "")))))) + (("deps/zlib/zlib.gyp") "")) + #t)))) (build-system gnu-build-system) (arguments ;; TODO: Purge the bundled copies from the source. diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm index 5f829aa6ee..ea02762a9b 100644 --- a/gnu/packages/nvi.scm +++ b/gnu/packages/nvi.scm @@ -50,7 +50,8 @@ conf-wrap) (newline conf-wrap) (close-output-port conf-wrap) - (chmod "configure" #o0755))))) + (chmod "configure" #o0755) + #t)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 24f402128c..25ef8ccad0 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -100,7 +100,8 @@ ;; in OCaml's directory in the store, which is read-only. (substitute* "Makefile" (("--prefix") - "--libdir $(LIBDIR) --prefix"))))))) + "--libdir $(LIBDIR) --prefix")) + #t))))) ;; They also require almost the same set of arguments (define janestreet-arguments @@ -781,7 +782,8 @@ libpanel, librsvg and quartz.") ;; Without the '-fix' argument, the html file produced does not ;; have functioning internal hyperlinks. (substitute* "doc/Makefile" - (("hevea unison") "hevea -fix unison")))))) + (("hevea unison") "hevea -fix unison")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.9 MiB of documentation @@ -2196,17 +2198,19 @@ file (POSIX like) and filename.") "1ln7vc7ip6s5xbi20mhnn087xi4a2m5vqawx0703qqnfkzhmslqy")) (modules '((guix build utils))) (snippet - '(substitute* "test/test-main/Test.ml" - ;; most of these tests fail because ld cannot find crti.o, but according - ;; to the log file, the environment variables {LD_,}LIBRARY_PATH - ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand. - (("TestBaseCompat.tests;") "") - (("TestExamples.tests;") "") - (("TestFull.tests;") "") - (("TestPluginDevFiles.tests;") "") - (("TestPluginInternal.tests;") "") - (("TestPluginOCamlbuild.tests;") "") - (("TestPluginOMake.tests;") ""))))) + '(begin + (substitute* "test/test-main/Test.ml" + ;; most of these tests fail because ld cannot find crti.o, but according + ;; to the log file, the environment variables {LD_,}LIBRARY_PATH + ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand. + (("TestBaseCompat.tests;") "") + (("TestExamples.tests;") "") + (("TestFull.tests;") "") + (("TestPluginDevFiles.tests;") "") + (("TestPluginInternal.tests;") "") + (("TestPluginOCamlbuild.tests;") "") + (("TestPluginOMake.tests;") "")) + #t)))) (build-system ocaml-build-system) (native-inputs `(("ocamlify" ,ocamlify) diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 03d51d9517..72f2dd6409 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> @@ -113,12 +113,6 @@ universal addresses.") (base32 "1y6kmxmv1difzvdhx7grqzw0j2v2b74mg4kjb803m8jcgkqqx8m5")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "autogen.sh")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 709cdfd0f7..376c7d4fdb 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -142,7 +142,7 @@ (ice-9 rdelim)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure 'msgmerge' can modify the PO files. (for-each (lambda (po) diff --git a/gnu/packages/patches/binutils-ld-new-dtags.patch b/gnu/packages/patches/binutils-ld-new-dtags.patch deleted file mode 100644 index 5f7a03fc38..0000000000 --- a/gnu/packages/patches/binutils-ld-new-dtags.patch +++ /dev/null @@ -1,16 +0,0 @@ -Turn on --enable-new-dtags by default to make the linker set RUNPATH -instead of RPATH on binaries. This is important because RUNPATH can -be overriden using LD_LIBRARY_PATH at runtime. - -Patch from Nixpkgs by Eelco Dolstra <eelco.dolstra@logicblox.com>. - ---- binutils/ld/ldmain.c -+++ binutils/ld/ldmain.c -@@ -296,6 +296,7 @@ main (int argc, char **argv) - - link_info.allow_undefined_version = TRUE; - link_info.keep_memory = TRUE; -+ link_info.new_dtags = TRUE; - link_info.combreloc = TRUE; - link_info.strip_discarded = TRUE; - link_info.callbacks = &link_callbacks; diff --git a/gnu/packages/patches/glib-respect-datadir.patch b/gnu/packages/patches/glib-respect-datadir.patch deleted file mode 100644 index 309ce9fc0b..0000000000 --- a/gnu/packages/patches/glib-respect-datadir.patch +++ /dev/null @@ -1,21 +0,0 @@ -On Guix, Python modules are in a different output from the executables, -so searching "../share/glib-2.0" will not work. - -This patch restores behaviour prior to this commit: -<https://git.gnome.org/browse/glib/commit/?id=fe2a9887a8ccb14f2386e01b14834e97a33bc2d7> - ---- a/gio/gdbus-2.0/codegen/gdbus-codegen.in -+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in -@@ -25,9 +25,12 @@ - - srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None) - filedir = os.path.dirname(__file__) -+datadir = os.path.join('@datadir@', 'glib-2.0') - - if srcdir is not None: - path = os.path.join(srcdir, 'gio', 'gdbus-2.0') -+elif os.path.exists(os.path.join(datadir, 'codegen')): -+ path = datadir - elif os.path.basename(filedir) == 'bin': - # Make the prefix containing gdbus-codegen 'relocatable' at runtime by - # adding /some/prefix/bin/../share/glib-2.0 to the python path diff --git a/gnu/packages/patches/graphite2-ffloat-store.patch b/gnu/packages/patches/graphite2-ffloat-store.patch deleted file mode 100644 index f6ee56973e..0000000000 --- a/gnu/packages/patches/graphite2-ffloat-store.patch +++ /dev/null @@ -1,34 +0,0 @@ -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 <martin_hosken@sil.org> -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) diff --git a/gnu/packages/patches/lcms-CVE-2016-10165.patch b/gnu/packages/patches/lcms-CVE-2016-10165.patch deleted file mode 100644 index fa4d75c9ee..0000000000 --- a/gnu/packages/patches/lcms-CVE-2016-10165.patch +++ /dev/null @@ -1,36 +0,0 @@ -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 <marti.maria@tktbrainpower.com> -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/libtasn1-CVE-2017-10790.patch b/gnu/packages/patches/libtasn1-CVE-2017-10790.patch deleted file mode 100644 index 6cec0c8030..0000000000 --- a/gnu/packages/patches/libtasn1-CVE-2017-10790.patch +++ /dev/null @@ -1,63 +0,0 @@ -Fix CVE-2017-10790: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10790 - -Patch copied from upstream source repository: - -https://git.savannah.nongnu.org/cgit/libtasn1.git/commit/?id=d8d805e1f2e6799bb2dff4871a8598dc83088a39 - -From d8d805e1f2e6799bb2dff4871a8598dc83088a39 Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos <nmav@redhat.com> -Date: Thu, 22 Jun 2017 16:31:37 +0200 -Subject: [PATCH] _asn1_check_identifier: safer access to values read - -Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com> ---- - lib/parser_aux.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/lib/parser_aux.c b/lib/parser_aux.c -index 976ab38..786ea64 100644 ---- a/lib/parser_aux.c -+++ b/lib/parser_aux.c -@@ -955,7 +955,7 @@ _asn1_check_identifier (asn1_node node) - if (p2 == NULL) - { - if (p->value) -- _asn1_strcpy (_asn1_identifierMissing, p->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p->value); - else - _asn1_strcpy (_asn1_identifierMissing, "(null)"); - return ASN1_IDENTIFIER_NOT_FOUND; -@@ -968,9 +968,15 @@ _asn1_check_identifier (asn1_node node) - if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT)) - { - _asn1_str_cpy (name2, sizeof (name2), node->name); -- _asn1_str_cat (name2, sizeof (name2), "."); -- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ if (p2->value) -+ { -+ _asn1_str_cat (name2, sizeof (name2), "."); -+ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ } -+ else -+ _asn1_strcpy (_asn1_identifierMissing, "(null)"); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) || - !(p2->type & CONST_ASSIGN)) -@@ -990,7 +996,8 @@ _asn1_check_identifier (asn1_node node) - _asn1_str_cpy (name2, sizeof (name2), node->name); - _asn1_str_cat (name2, sizeof (name2), "."); - _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) - || !(p2->type & CONST_ASSIGN)) --- -2.13.3 - diff --git a/gnu/packages/patches/libtasn1-CVE-2018-6003.patch b/gnu/packages/patches/libtasn1-CVE-2018-6003.patch deleted file mode 100644 index 3e6140518d..0000000000 --- a/gnu/packages/patches/libtasn1-CVE-2018-6003.patch +++ /dev/null @@ -1,73 +0,0 @@ -Fix CVE-2018-6003: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6003 -https://lists.gnu.org/archive/html/help-libtasn1/2018-01/msg00000.html - -Patch copied from upstream source repository: - -https://gitlab.com/gnutls/libtasn1/commit/c593ae84cfcde8fea45787e53950e0ac71e9ca97 - -From c593ae84cfcde8fea45787e53950e0ac71e9ca97 Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos <nmav@redhat.com> -Date: Thu, 4 Jan 2018 10:52:05 +0100 -Subject: [PATCH] _asn1_decode_simple_ber: restrict the levels of recursion to 3 - -On indefinite string decoding, setting a maximum level of recursions -protects the BER decoder from a stack exhaustion due to large amounts -of recursion. - -Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com> ---- - lib/decoding.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/lib/decoding.c b/lib/decoding.c -index 2240b09..0ee35d3 100644 ---- a/lib/decoding.c -+++ b/lib/decoding.c -@@ -45,6 +45,13 @@ - - #define DECODE_FLAG_HAVE_TAG 1 - #define DECODE_FLAG_INDEFINITE (1<<1) -+/* On indefinite string decoding, allow this maximum levels -+ * of recursion. Allowing infinite recursion, makes the BER -+ * decoder susceptible to stack exhaustion due to that recursion. -+ */ -+#define DECODE_FLAG_LEVEL1 (1<<2) -+#define DECODE_FLAG_LEVEL2 (1<<3) -+#define DECODE_FLAG_LEVEL3 (1<<4) - - #define DECR_LEN(l, s) do { \ - l -= s; \ -@@ -2216,7 +2223,8 @@ _asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, - } - - /* indefinite constructed */ -- if (((dflags & DECODE_FLAG_INDEFINITE) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) -+ if ((((dflags & DECODE_FLAG_INDEFINITE) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) && -+ !(dflags & DECODE_FLAG_LEVEL3)) - { - len_len = 1; - -@@ -2236,8 +2244,17 @@ _asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, - do - { - unsigned tmp_len; -+ unsigned flags = DECODE_FLAG_HAVE_TAG; -+ -+ if (dflags & DECODE_FLAG_LEVEL1) -+ flags |= DECODE_FLAG_LEVEL2; -+ else if (dflags & DECODE_FLAG_LEVEL2) -+ flags |= DECODE_FLAG_LEVEL3; -+ else -+ flags |= DECODE_FLAG_LEVEL1; - -- result = asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len); -+ result = _asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len, -+ flags); - if (result != ASN1_SUCCESS) - { - warn(); --- -libgit2 0.26.0 - diff --git a/gnu/packages/patches/libxcb-python-3.5-compat.patch b/gnu/packages/patches/libxcb-python-3.5-compat.patch deleted file mode 100644 index f652498aad..0000000000 --- a/gnu/packages/patches/libxcb-python-3.5-compat.patch +++ /dev/null @@ -1,64 +0,0 @@ -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 <wiz@NetBSD.org> -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 <wiz@NetBSD.org> -Signed-off-by: Uli Schlachter <psychon@znc.in> ---- - 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/patches/patch-hurd-path-max.patch b/gnu/packages/patches/patch-hurd-path-max.patch index 81e37930c2..1845a5803b 100644 --- a/gnu/packages/patches/patch-hurd-path-max.patch +++ b/gnu/packages/patches/patch-hurd-path-max.patch @@ -13,7 +13,7 @@ Subject: [PATCH] Do not rely on PATH_MAX when reading a symlink target. 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/util.c b/src/util.c -index 82a7e37..c4c0f9d 100644 +index 1cc08ba..67dbd3a 100644 --- a/src/util.c +++ b/src/util.c @@ -460,12 +460,12 @@ move_file (char const *from, bool *from_needs_removal, @@ -31,18 +31,19 @@ index 82a7e37..c4c0f9d 100644 size += i; if (i != 0 || close (fd) != 0) read_fatal (); -@@ -610,9 +610,9 @@ copy_file (char const *from, char const *to, struct stat *tost, +@@ -610,10 +610,10 @@ copy_file (char const *from, char const *to, struct stat *tost, if (S_ISLNK (mode)) { -- char *buffer = xmalloc (PATH_MAX); +- char *buffer = xmalloc (PATH_MAX + 1); + char *buffer = xmalloc (tost->st_size + 1); + ssize_t r; -- if (safe_readlink (from, buffer, PATH_MAX) < 0) -+ if (safe_readlink (from, buffer, tost->st_size) < 0) +- if ((r = safe_readlink (from, buffer, PATH_MAX)) < 0) ++ if ((r = safe_readlink (from, buffer, tost->st_size)) < 0) pfatal ("Can't read %s %s", "symbolic link", from); + buffer[r] = '\0'; if (safe_symlink (buffer, to) != 0) - pfatal ("Can't create %s %s", "symbolic link", to); -- -2.4.2 +2.16.2 diff --git a/gnu/packages/patches/pcre2-CVE-2017-7186.patch b/gnu/packages/patches/pcre2-CVE-2017-7186.patch deleted file mode 100644 index 5c16955aaa..0000000000 --- a/gnu/packages/patches/pcre2-CVE-2017-7186.patch +++ /dev/null @@ -1,68 +0,0 @@ -Patch for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2017-7186> -taken from <https://vcs.pcre.org/pcre2?view=revision&revision=670>. - ---- trunk/src/pcre2_internal.h 2016/11/19 12:46:24 600 -+++ trunk/src/pcre2_internal.h 2017/02/24 18:25:32 670 -@@ -1774,10 +1774,17 @@ - /* UCD access macros */ - - #define UCD_BLOCK_SIZE 128 --#define GET_UCD(ch) (PRIV(ucd_records) + \ -+#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \ - PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \ - UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE]) - -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+#define GET_UCD(ch) ((ch > MAX_UTF_CODE_POINT)? \ -+ PRIV(dummy_ucd_record) : REAL_GET_UCD(ch)) -+#else -+#define GET_UCD(ch) REAL_GET_UCD(ch) -+#endif -+ - #define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype - #define UCD_SCRIPT(ch) GET_UCD(ch)->script - #define UCD_CATEGORY(ch) PRIV(ucp_gentype)[UCD_CHARTYPE(ch)] -@@ -1834,6 +1841,9 @@ - #define _pcre2_default_compile_context PCRE2_SUFFIX(_pcre2_default_compile_context_) - #define _pcre2_default_match_context PCRE2_SUFFIX(_pcre2_default_match_context_) - #define _pcre2_default_tables PCRE2_SUFFIX(_pcre2_default_tables_) -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+#define _pcre2_dummy_ucd_record PCRE2_SUFFIX(_pcre2_dummy_ucd_record_) -+#endif - #define _pcre2_hspace_list PCRE2_SUFFIX(_pcre2_hspace_list_) - #define _pcre2_vspace_list PCRE2_SUFFIX(_pcre2_vspace_list_) - #define _pcre2_ucd_caseless_sets PCRE2_SUFFIX(_pcre2_ucd_caseless_sets_) -@@ -1858,6 +1868,9 @@ - extern const uint32_t PRIV(vspace_list)[]; - extern const uint32_t PRIV(ucd_caseless_sets)[]; - extern const ucd_record PRIV(ucd_records)[]; -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+extern const ucd_record PRIV(dummy_ucd_record)[]; -+#endif - extern const uint8_t PRIV(ucd_stage1)[]; - extern const uint16_t PRIV(ucd_stage2)[]; - extern const uint32_t PRIV(ucp_gbtable)[]; - ---- trunk/src/pcre2_ucd.c 2015/07/17 15:44:51 316 -+++ trunk/src/pcre2_ucd.c 2017/02/24 18:25:32 670 -@@ -41,6 +41,20 @@ - - const char *PRIV(unicode_version) = "8.0.0"; - -+/* If the 32-bit library is run in non-32-bit mode, character values -+greater than 0x10ffff may be encountered. For these we set up a -+special record. */ -+ -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+const ucd_record PRIV(dummy_ucd_record)[] = {{ -+ ucp_Common, /* script */ -+ ucp_Cn, /* type unassigned */ -+ ucp_gbOther, /* grapheme break property */ -+ 0, /* case set */ -+ 0, /* other case */ -+ }}; -+#endif -+ - /* When recompiling tables with a new Unicode version, please check the - types in this structure definition from pcre2_internal.h (the actual - field names will be different): diff --git a/gnu/packages/patches/pcre2-CVE-2017-8786.patch b/gnu/packages/patches/pcre2-CVE-2017-8786.patch deleted file mode 100644 index 6071d58f07..0000000000 --- a/gnu/packages/patches/pcre2-CVE-2017-8786.patch +++ /dev/null @@ -1,155 +0,0 @@ -Fix CVE-2017-8786: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8786 -https://bugs.exim.org/show_bug.cgi?id=2079 -https://blogs.gentoo.org/ago/2017/04/29/libpcre-heap-based-buffer-overflow-write-in-pcre2test-c/ - -Patch copied from upstream source repository: - -https://vcs.pcre.org/pcre2?view=revision&revision=696 -https://vcs.pcre.org/pcre2?view=revision&revision=697 - ---- trunk/doc/pcre2api.3 2017/03/21 16:48:40 695 -+++ trunk/doc/pcre2api.3 2017/03/21 17:46:21 696 -@@ -1,4 +1,4 @@ --.TH PCRE2API 3 "24 December 2016" "PCRE2 10.23" -+.TH PCRE2API 3 "21 March 2017" "PCRE2 10.30" - .SH NAME - PCRE2 - Perl-compatible regular expressions (revised API) - .sp -@@ -2633,8 +2633,8 @@ - A text message for an error code from any PCRE2 function (compile, match, or - auxiliary) can be obtained by calling \fBpcre2_get_error_message()\fP. The code - is passed as the first argument, with the remaining two arguments specifying a --code unit buffer and its length, into which the text message is placed. Note --that the message is returned in code units of the appropriate width for the -+code unit buffer and its length in code units, into which the text message is -+placed. The message is returned in code units of the appropriate width for the - library that is being used. - .P - The returned message is terminated with a trailing zero, and the function -@@ -3321,6 +3321,6 @@ - .rs - .sp - .nf --Last updated: 23 December 2016 --Copyright (c) 1997-2016 University of Cambridge. -+Last updated: 21 March 2017 -+Copyright (c) 1997-2017 University of Cambridge. - .fi ---- trunk/src/pcre2_error.c 2017/03/21 16:48:40 695 -+++ trunk/src/pcre2_error.c 2017/03/21 17:46:21 696 -@@ -271,7 +271,7 @@ - Arguments: - enumber error number - buffer where to put the message (zero terminated) -- size size of the buffer -+ size size of the buffer in code units - - Returns: length of message if all is well - negative on error ---- trunk/src/pcre2test.c 2017/03/21 17:46:21 696 -+++ trunk/src/pcre2test.c 2017/03/21 18:36:13 697 -@@ -1017,9 +1017,9 @@ - if (test_mode == PCRE8_MODE) \ - r = pcre2_get_error_message_8(a,G(b,8),G(G(b,8),_size)); \ - else if (test_mode == PCRE16_MODE) \ -- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)); \ -+ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)); \ - else \ -- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) -+ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) - - #define PCRE2_GET_OVECTOR_COUNT(a,b) \ - if (test_mode == PCRE8_MODE) \ -@@ -1399,6 +1399,9 @@ - - /* ----- Common macros for two-mode cases ----- */ - -+#define BYTEONE (BITONE/8) -+#define BYTETWO (BITTWO/8) -+ - #define CASTFLD(t,a,b) \ - ((test_mode == G(G(PCRE,BITONE),_MODE))? (t)(G(a,BITONE)->b) : \ - (t)(G(a,BITTWO)->b)) -@@ -1481,9 +1484,9 @@ - - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ - if (test_mode == G(G(PCRE,BITONE),_MODE)) \ -- r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size)); \ -+ r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size/BYTEONE)); \ - else \ -- r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size)) -+ r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size/BYTETWO)) - - #define PCRE2_GET_OVECTOR_COUNT(a,b) \ - if (test_mode == G(G(PCRE,BITONE),_MODE)) \ -@@ -1904,7 +1907,7 @@ - #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ - a = pcre2_dfa_match_16(G(b,16),(PCRE2_SPTR16)c,d,e,f,G(g,16),h,i,j) - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ -- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)) -+ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)) - #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_16(G(b,16)) - #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_16(G(b,16)) - #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_16(G(a,16),b) -@@ -2000,7 +2003,7 @@ - #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ - a = pcre2_dfa_match_32(G(b,32),(PCRE2_SPTR32)c,d,e,f,G(g,32),h,i,j) - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ -- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) -+ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) - #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_32(G(b,32)) - #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_32(G(b,32)) - #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_32(G(a,32),b) ---- trunk/src/pcre2test.c 2017/03/21 16:48:40 695 -+++ trunk/src/pcre2test.c 2017/03/21 17:46:21 696 -@@ -2889,7 +2889,7 @@ - { - if (pbuffer32 != NULL) free(pbuffer32); - pbuffer32_size = 4*len + 4; -- if (pbuffer32_size < 256) pbuffer32_size = 256; -+ if (pbuffer32_size < 512) pbuffer32_size = 512; - pbuffer32 = (uint32_t *)malloc(pbuffer32_size); - if (pbuffer32 == NULL) - { -@@ -7600,7 +7600,8 @@ - int errcode; - char *endptr; - --/* Ensure the relevant non-8-bit buffer is available. */ -+/* Ensure the relevant non-8-bit buffer is available. Ensure that it is at -+least 128 code units, because it is used for retrieving error messages. */ - - #ifdef SUPPORT_PCRE2_16 - if (test_mode == PCRE16_MODE) -@@ -7620,7 +7621,7 @@ - #ifdef SUPPORT_PCRE2_32 - if (test_mode == PCRE32_MODE) - { -- pbuffer32_size = 256; -+ pbuffer32_size = 512; - pbuffer32 = (uint32_t *)malloc(pbuffer32_size); - if (pbuffer32 == NULL) - { ---- trunk/testdata/testinput2 2017/03/21 16:48:40 695 -+++ trunk/testdata/testinput2 2017/03/21 17:46:21 696 -@@ -5017,4 +5017,6 @@ - - /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended - -+/\g{3/ -+ - # End of testinput2 ---- trunk/testdata/testoutput2 2017/03/21 16:48:40 695 -+++ trunk/testdata/testoutput2 2017/03/21 17:46:21 696 -@@ -15570,6 +15570,9 @@ - - /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended - -+/\g{3/ -+Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number -+ - # End of testinput2 - Error -63: PCRE2_ERROR_BADDATA (unknown error number) - Error -62: bad serialized data diff --git a/gnu/packages/patches/python-3-search-paths.patch b/gnu/packages/patches/python-3-search-paths.patch index 7feddb8e30..73e3f4ccf5 100644 --- a/gnu/packages/patches/python-3-search-paths.patch +++ b/gnu/packages/patches/python-3-search-paths.patch @@ -3,17 +3,14 @@ looking for headers and libraries. --- setup.py 2015-10-07 23:32:58.891329173 +0200 +++ setup.py 2015-10-07 23:46:29.653349924 +0200 -@@ -507,11 +507,8 @@ class PyBuildExt(build_ext): +@@ -575,8 +575,8 @@ # if a file is found in one of those directories, it can # be assumed that no additional -I,-L directives are needed. if not cross_compiling: -- lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -- ] -- inc_dirs = self.compiler.include_dirs + ['/usr/include'] +- lib_dirs = self.compiler.library_dirs + system_lib_dirs +- inc_dirs = self.compiler.include_dirs + system_include_dirs + lib_dirs = os.getenv('LIBRARY_PATH', '').split(os.pathsep) + inc_dirs = os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) else: - lib_dirs = self.compiler.library_dirs[:] - inc_dirs = self.compiler.include_dirs[:] + # Add the sysroot paths. 'sysroot' is a compiler option used to + # set the logical path of the standard system headers and diff --git a/gnu/packages/patches/tar-CVE-2016-6321.patch b/gnu/packages/patches/tar-CVE-2016-6321.patch deleted file mode 100644 index b79be9bc94..0000000000 --- a/gnu/packages/patches/tar-CVE-2016-6321.patch +++ /dev/null @@ -1,51 +0,0 @@ -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 <eggert@Penguin.CS.UCLA.EDU> -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 - diff --git a/gnu/packages/patches/tar-remove-wholesparse-check.patch b/gnu/packages/patches/tar-remove-wholesparse-check.patch new file mode 100644 index 0000000000..41f53e86aa --- /dev/null +++ b/gnu/packages/patches/tar-remove-wholesparse-check.patch @@ -0,0 +1,68 @@ +This patch is needed in order to build Guix on a Btrfs file system. + + +From da922703282b0d3b8837a99a9c7fdd32f1d20d49 Mon Sep 17 00:00:00 2001 +From: Mark H Weaver <mhw@netris.org> +Date: Tue, 9 Jan 2018 20:16:14 -0500 +Subject: [PATCH] Remove nonportable check for files containing only zeroes. + +This check benefitted only one unlikely case (large files containing +only zeroes, on systems that do not support SEEK_HOLE) and was based +on an assumption about file system behavior that is not mandated by +POSIX and no longer holds in practice, namely that for sufficiently +large files, (st_blocks == 0) implies that the file contains only +zeroes. Examples of file systems that violate this assumption include +Linux's /proc file system and Btrfs. + +* src/sparse.c (sparse_scan_file_wholesparse): Remove this function. +(sparse_scan_file_seek): Remove the initial check for files containing +only zeroes. +--- + src/sparse.c | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/src/sparse.c b/src/sparse.c +index d41c0ea..3de6560 100644 +--- a/src/sparse.c ++++ b/src/sparse.c +@@ -261,26 +261,6 @@ sparse_scan_file_raw (struct tar_sparse_file *file) + return tar_sparse_scan (file, scan_end, NULL); + } + +-static bool +-sparse_scan_file_wholesparse (struct tar_sparse_file *file) +-{ +- struct tar_stat_info *st = file->stat_info; +- struct sp_array sp = {0, 0}; +- +- /* Note that this function is called only for truly sparse files of size >= 1 +- block size (checked via ST_IS_SPARSE before). See the thread +- http://www.mail-archive.com/bug-tar@gnu.org/msg04209.html for more info */ +- if (ST_NBLOCKS (st->stat) == 0) +- { +- st->archive_file_size = 0; +- sp.offset = st->stat.st_size; +- sparse_add_map (st, &sp); +- return true; +- } +- +- return false; +-} +- + #ifdef SEEK_HOLE + /* Try to engage SEEK_HOLE/SEEK_DATA feature. */ + static bool +@@ -343,10 +323,6 @@ sparse_scan_file_seek (struct tar_sparse_file *file) + static bool + sparse_scan_file (struct tar_sparse_file *file) + { +- /* always check for completely sparse files */ +- if (sparse_scan_file_wholesparse (file)) +- return true; +- + switch (hole_detection) + { + case HOLE_DETECTION_DEFAULT: +-- +2.15.1 + diff --git a/gnu/packages/patches/xcb-proto-python3-print.patch b/gnu/packages/patches/xcb-proto-python3-print.patch deleted file mode 100644 index 7d5dc9bc27..0000000000 --- a/gnu/packages/patches/xcb-proto-python3-print.patch +++ /dev/null @@ -1,75 +0,0 @@ -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 <wiz@NetBSD.org> -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 <wiz@NetBSD.org> -Signed-off-by: Uli Schlachter <psychon@znc.in> ---- - 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 deleted file mode 100644 index f0509138b2..0000000000 --- a/gnu/packages/patches/xcb-proto-python3-whitespace.patch +++ /dev/null @@ -1,217 +0,0 @@ -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 <wiz@NetBSD.org> -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 <wiz@NetBSD.org> -Signed-off-by: Uli Schlachter <psychon@znc.in> ---- - 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/pcre.scm b/gnu/packages/pcre.scm index ee853d5015..5719b7bb45 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,7 +76,7 @@ POSIX regular expression API.") (define-public pcre2 (package (name "pcre2") - (version "10.23") + (version "10.31") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcre/pcre2/" @@ -83,9 +84,7 @@ POSIX regular expression API.") (sha256 (base32 - "0vn5g0mkkp99mmzpissa06hpyj6pk9s4mlwbjqrjvw3ihy8rpiyz")) - (patches (search-patches "pcre2-CVE-2017-7186.patch" - "pcre2-CVE-2017-8786.patch")))) + "1b389pzw91k1hzydsh4smdsxyppwz4pv74m3nrvy8rda0j3m6zg0")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 95f42c6751..f1aa958931 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -579,7 +579,7 @@ extracting content or merging files.") (base32 "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "thirdparty")))) + (snippet '(begin (delete-file-recursively "thirdparty") #t)))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -631,12 +631,14 @@ line tools for batch rendering @command{pdfdraw}, rewriting files (snippet ;; Replace shebang with the bi-lingual shell/Perl trick to remove ;; dependency on Perl. - '(substitute* "qpdf/fix-qdf" - (("#!/usr/bin/env perl") - "\ + '(begin + (substitute* "qpdf/fix-qdf" + (("#!/usr/bin/env perl") + "\ eval '(exit $?0)' && eval 'exec perl -wS \"$0\" ${1+\"$@\"}' & eval 'exec perl -wS \"$0\" $argv:q' - if 0;\n"))))) + if 0;\n")) + #t)))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,perl) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index cf9f21dbc9..4b0454d4e2 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> -;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2016, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 ng0 <ng0@infotropique.org> @@ -107,7 +107,7 @@ (replace 'configure (lambda* (#:key configure-flags #:allow-other-keys) (format #t "Perl configure flags: ~s~%" configure-flags) - (zero? (apply system* "./Configure" configure-flags)))) + (apply invoke "./Configure" configure-flags))) (add-before 'strip 'make-shared-objects-writable (lambda* (#:key outputs #:allow-other-keys) @@ -117,7 +117,8 @@ (lib (string-append out "/lib"))) (for-each (lambda (dso) (chmod dso #o755)) - (find-files lib "\\.so$"))))) + (find-files lib "\\.so$")) + #t))) (add-after 'install 'remove-extra-references (lambda* (#:key inputs outputs #:allow-other-keys) @@ -7488,7 +7489,8 @@ TODO: { local $TODO = \"/proc/cpuinfo doesn't always report 'model name' or 'machine' ...\"; $type = &Sys::CPU::cpu_type(); ok( defined($type), \"CPU Type: $type\" ); -}~%"))))))) +}~%"))) + #t)))) (build-system perl-build-system) (synopsis "Perl extension for getting CPU information") (description diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index f3f279a533..58ace823ee 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -86,7 +86,8 @@ "pcre/pcrelib" "sqlite3/libsqlite" "xmlrpc/libxmlrpc" - "zip/lib")))))) + "zip/lib")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 482ae1b862..82b55fbf2f 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -60,9 +60,11 @@ ;; that, libplot.la ends up containing just "-lXaw" (without ;; "-L/path/to/Xaw"), due to the fact that there is no ;; libXaw.la, which forces us to propagate libXaw. - '(substitute* "configure" - (("-lXaw") - "-lXaw7"))))) + '(begin + (substitute* "configure" + (("-lXaw") + "-lXaw7")) + #t)))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) ("libx11" ,libx11) @@ -97,7 +99,8 @@ scientific data.") ;; Use the standard location for modules. (substitute* "Makefile.in" (("godir = .*$") - "godir = $(moddir)\n")))))) + "godir = $(moddir)\n")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) @@ -123,9 +126,11 @@ using the Cairo drawing library.") (modules '((guix build utils))) (snippet ;; Install binaries in the right place. - '(substitute* "src/Makefile" - (("INSTALLBIN =.*$") - (string-append "INSTALLBIN = $(out)/bin")))))) + '(begin + (substitute* "src/Makefile" + (("INSTALLBIN =.*$") + (string-append "INSTALLBIN = $(out)/bin"))) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 6edfba95cc..d1485082e3 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -56,9 +56,11 @@ (modules '((guix build utils))) (snippet ;; Remove timestamp from the installed 'README' file. - '(substitute* "etc/README.in" - (("@date@") - "1st of some month, sometime after 1970"))) + '(begin + (substitute* "etc/README.in" + (("@date@") + "1st of some month, sometime after 1970")) + #t)) (patches (search-patches "a2ps-CVE-2001-1593.patch" "a2ps-CVE-2014-0466.patch")))) diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm index d6f3aede28..b2def45ccf 100644 --- a/gnu/packages/profiling.scm +++ b/gnu/packages/profiling.scm @@ -350,8 +350,10 @@ different kinds of performance behavior.") (modules '((guix build utils))) (snippet ;; Remove bundled software. - '(for-each delete-file-recursively - '("vendor/opari2" "vendor/cube"))))) + '(begin + (for-each delete-file-recursively + '("vendor/opari2" "vendor/cube")) + #t)))) (build-system gnu-build-system) (inputs `(("mpi" ,mpi) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 8a45137a7f..f23ef9eca1 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -144,9 +144,11 @@ rates.") (snippet ;; Disable console-kit support by default since it's deprecated ;; anyway. - '(substitute* "src/daemon/default.pa.in" - (("load-module module-console-kit" all) - (string-append "#" all "\n")))) + '(begin + (substitute* "src/daemon/default.pa.in" + (("load-module module-console-kit" all) + (string-append "#" all "\n"))) + #t)) (patches (search-patches "pulseaudio-fix-mult-test.patch" "pulseaudio-longer-test-timeout.patch")))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 3734b6ba10..f35c8c5042 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -563,7 +563,8 @@ PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.") (uri (pypi-uri "PyNaCl" version)) (modules '((guix build utils))) ;; Remove bundled libsodium - (snippet '(delete-file-recursively "src/libsodium")) + (snippet '(begin (delete-file-recursively "src/libsodium") + #t)) (sha256 (base32 "135gz0020fqx8fbr9izpwyq49aww202nkqacq0cw61xz99sjpx9j")))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 135ea29706..b57a861988 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -138,7 +138,7 @@ (define-public python-2.7 (package - (name "python") + (name "python2") (version "2.7.14") (source (origin @@ -338,7 +338,7 @@ data types.") (define-public python-3.6 (package (inherit python-2) - (version "3.6.3") + (version "3.6.4") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" @@ -351,7 +351,7 @@ data types.") (patch-flags '("-p0")) (sha256 (base32 - "1nl1raaagr4car787a2hmjv2dw6gqny53xfd6wisbgx4r5kxk9yd")) + "1fna7g8jxzl4kd2pqmmqhva5724c5m920x3fsrpsgskaylmr76qm")) (snippet '(begin (for-each delete-file @@ -359,8 +359,74 @@ data types.") "Lib/ctypes/test/test_win32.py" ; fails on aarch64 "Lib/test/test_fcntl.py")) ; fails on aarch64 #t)))) - (arguments (substitute-keyword-arguments (package-arguments python-2) - ((#:tests? _) #t))) + (arguments + (substitute-keyword-arguments (package-arguments python-2) + ((#:tests? _) #t) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-timestamp-for-pyc-files + (lambda _ + ;; We set DETERMINISTIC_BUILD to only override the mtime when + ;; building with Guix, lest we break auto-compilation in + ;; environments. + (setenv "DETERMINISTIC_BUILD" "1") + (substitute* "Lib/py_compile.py" + (("source_stats\\['mtime'\\]") + "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])")) + + ;; Use deterministic hashes for strings, bytes, and datetime + ;; objects. + (setenv "PYTHONHASHSEED" "0") + + ;; Reset mtime when validating bytecode header. + (substitute* "Lib/importlib/_bootstrap_external.py" + (("source_mtime = int\\(source_stats\\['mtime'\\]\\)") + "source_mtime = 1")) + #t)) + ;; These tests fail because of our change to the bytecode + ;; validation. They fail because expected exceptions do not get + ;; thrown. This seems to be no problem. + (add-after 'unpack 'disable-broken-bytecode-tests + (lambda _ + (substitute* "Lib/test/test_importlib/source/test_file_loader.py" + (("test_bad_marshal") + "disable_test_bad_marshal") + (("test_no_marshal") + "disable_test_no_marshal") + (("test_non_code_marshal") + "disable_test_non_code_marshal")) + #t)) + ;; Unset DETERMINISTIC_BUILD to allow for tests that check that + ;; stale pyc files are rebuilt. + (add-before 'check 'allow-non-deterministic-compilation + (lambda _ (unsetenv "DETERMINISTIC_BUILD") #t)) + ;; We need to rebuild all pyc files for three different + ;; optimization levels to replace all files that were not built + ;; deterministically. + + ;; FIXME: Without this phase we have close to 2000 files that + ;; differ across different builds of this package. With this phase + ;; there are about 500 files left that differ. + (add-after 'install 'rebuild-bytecode + (lambda* (#:key outputs #:allow-other-keys) + (setenv "DETERMINISTIC_BUILD" "1") + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (opt) + (format #t "Compiling with optimization level: ~a\n" + (if (null? opt) "none" (car opt))) + (for-each (lambda (file) + (apply invoke + `(,(string-append out "/bin/python3") + ,@opt + "-m" "compileall" + "-f" ; force rebuild + ;; Don't build lib2to3, because it's Python 2 code. + ;; Also don't build obviously broken test code. + "-x" "(lib2to3|test/bad.*)" + ,file))) + (find-files out "\\.py$"))) + (list '() '("-O") '("-OO")))))))))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") @@ -379,7 +445,7 @@ data types.") (define-public python2-minimal (package (inherit python-2) - (name "python-minimal") + (name "python2-minimal") (outputs '("out")) ;; Keep zlib, which is used by 'pip' (via the 'zipimport' module), which @@ -1026,7 +1092,7 @@ from the Python interpreter, or as a small part of a larger application.") (modify-phases %standard-phases (replace 'check (lambda _ - (zero? (system* "py.test" "-v"))))))) + (invoke "py.test" "-v")))))) (native-inputs `(("python-py" ,python-py) ("python-pytest" ,python-pytest-bootstrap))) @@ -3187,7 +3253,8 @@ that client code uses to construct the grammar directly in Python code.") ;; input since it would create a circular dependency: Extend the ;; test for Python 3, where it is already dropped, to Python 2. (substitute* "numpydoc/tests/test_plot_directive.py" - (("3") "2")))))) + (("3") "2")) + #t)))) (build-system python-build-system) (propagated-inputs `(("python-sphinx" ,python-sphinx))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a8c2729ee8..ec8995a92b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> -;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Quiliro <quiliro@fsfla.org> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -145,7 +145,8 @@ system, and the core design of Django is reused in Grantlee.") "qtcanvas3d/examples/canvas3d/3rdparty")) ;; Tests depend on this example, which depends on the 3rd party code. (substitute* "qtmultimedia/examples/multimedia/multimedia.pro" - (("spectrum") "#")))))) + (("spectrum") "#")) + #t)))) (build-system gnu-build-system) (propagated-inputs `(("mesa" ,mesa))) @@ -185,7 +186,7 @@ system, and the core design of Django is reused in Grantlee.") ("libxslt" ,libxslt) ("libxtst" ,libxtst) ("mtdev" ,mtdev) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("nss" ,nss) ("openssl" ,openssl) ("postgresql" ,postgresql) @@ -287,7 +288,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") (modules '((guix build utils))) (snippet ;; Remove webkit module, which is not built. - '(delete-file-recursively "src/3rdparty/webkit")))) + '(begin (delete-file-recursively "src/3rdparty/webkit") + #t)))) (inputs `(,@(alist-delete "harfbuzz" (alist-delete "libjpeg" (package-inputs qt))) ("libjepg" ,libjpeg-8) @@ -426,7 +428,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("libxslt" ,libxslt) ("libxtst" ,libxtst) ("mtdev" ,mtdev) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("nss" ,nss) ("openssl" ,openssl) ("pcre2" ,pcre2) @@ -686,8 +688,8 @@ HostData=lib/qt5 (base32 "1nfxvf96wh1smdmcsk4m9f7zg69fgp844f8772qpv6v4m20p1qb9")) (modules '((guix build utils))) - (snippet - '(delete-file-recursively "src/3rdparty")))) + (snippet '(begin (delete-file-recursively "src/3rdparty") + #t)))) (native-inputs `()) (inputs `(("jasper" ,jasper) @@ -901,7 +903,8 @@ recognition API for devices."))) "examples/multimedia/spectrum/3rdparty") ;; We also prevent the spectrum example from being built. (substitute* "examples/multimedia/multimedia.pro" - (("spectrum") "#")))))) + (("spectrum") "#")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -947,7 +950,8 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail - '(delete-file-recursively "examples")))) + '(begin (delete-file-recursively "examples") + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1233,7 +1237,8 @@ coloring, and many more."))) "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "tools/opengldummy/3rdparty")))) + '(begin (delete-file-recursively "tools/opengldummy/3rdparty") + #t)))) (native-inputs `()) (inputs `(("qtbase" ,qtbase) @@ -1292,7 +1297,8 @@ and mobile applications targeting TV-like form factors."))) (delete-file-recursively "tests/3rdparty") ;; the scion test refers to the bundled 3rd party test code. (substitute* "tests/auto/auto.pro" - (("scion") "#")))))) + (("scion") "#")) + #t)))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1338,7 +1344,8 @@ purchasing goods and services."))) "0agdxgk7knf6zkjdi6316y2k9zq72wcg5zn3cbhw4hzjw81qadgg")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "examples/canvas3d/3rdparty")))) + '(begin (delete-file-recursively "examples/canvas3d/3rdparty") + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ;; Building the tests depends on the bundled 3rd party javascript files, diff --git a/gnu/packages/robotics.scm b/gnu/packages/robotics.scm index 9b30b90da2..389bb5a028 100644 --- a/gnu/packages/robotics.scm +++ b/gnu/packages/robotics.scm @@ -91,10 +91,12 @@ hundred times faster than real-time.") (modules '((guix build utils))) (snippet ;; Add missing Qt5::Network. - '(substitute* "targets/playground/CMakeLists.txt" - (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle) - (string-append "target_link_libraries" middle - " Qt5::Network ${EXTRA_LIBS}")))))) + '(begin + (substitute* "targets/playground/CMakeLists.txt" + (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle) + (string-append "target_link_libraries" middle + " Qt5::Network ${EXTRA_LIBS}"))) + #t)))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index ede725877d..8795d8d9fb 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -47,13 +47,6 @@ (base32 "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8")))) (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) @@ -94,10 +87,12 @@ implementing both small and large scale systems.") "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("installdir=\\$\\(repexecdir\\)") - ;; Install libraries for librep to $out/lib/rep. - "installdir=$(libdir)/rep"))))) + '(begin + (substitute* "Makefile.in" + (("installdir=\\$\\(repexecdir\\)") + ;; Install libraries for librep to $out/lib/rep. + "installdir=$(libdir)/rep")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no tests (native-inputs @@ -134,7 +129,8 @@ backend of Sawfish.") "REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):")) (substitute* "src/Makefile.in" ;; Install libraries for librep to $out/lib/rep. - (("\\$\\(repexecdir\\)") "$(libdir)/rep")))))) + (("\\$\\(repexecdir\\)") "$(libdir)/rep")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index f44f037efb..d1dfdd4e27 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -45,9 +45,11 @@ (snippet ;; Generated HTML files and udev rules normally embed a ;; timestamp. Work around that to build things reproducibly. - '(substitute* "tools/sane-desc.c" - (("asctime \\(localtime \\(¤t_time\\)\\)") - "\"1970-01-01\""))))) + '(begin + (substitute* "tools/sane-desc.c" + (("asctime \\(localtime \\(¤t_time\\)\\)") + "\"1970-01-01\"")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 657ca875d5..39240dfca7 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -212,8 +212,10 @@ features an integrated Emacs-like editor and a large runtime library.") ;; Remove bundled libraries. (modules '((guix build utils))) (snippet - '(for-each delete-file-recursively - '("gc" "gmp" "libuv"))))) + '(begin + (for-each delete-file-recursively + '("gc" "gmp" "libuv")) + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -609,9 +611,10 @@ threads.") (origin (method url-fetch/tarbomb) (modules '((guix build utils))) - (snippet - ;; Remove binary code - '(delete-file-recursively "scmutils/mit-scheme")) + (snippet '(begin + ;; Remove binary code + (delete-file-recursively "scmutils/mit-scheme") + #t)) (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/6946" "/scmutils-tarballs/" name "-" version "-x86-64-gnu-linux.tar.gz")) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 860d346778..6cf382e0bb 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -75,8 +75,10 @@ (snippet ;; Fix typo. Equivalent to patch at ;; https://bugs.scribus.net/view.php?id=14850 - '(substitute* "cmake/modules/FindLIBPODOFO.cmake" - (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)"))))) + '(begin + (substitute* "cmake/modules/FindLIBPODOFO.cmake" + (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 222fd5b6f1..1bc2778da1 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -369,9 +369,10 @@ directory.") (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; Remove bundled libraries. - '(delete-file-recursively "external")) + (snippet '(begin + ;; Remove bundled libraries. + (delete-file-recursively "external") + #t)) (sha256 (base32 "1fw3kkqi5346ai5if4pxrcbhs5c4vv3a4smgz6fl6kyaxwkmwqaf")))) @@ -388,9 +389,10 @@ directory.") (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; Remove bundled libraries. - '(delete-file-recursively "external")) + (snippet (begin + ;; Remove bundled libraries. + '(delete-file-recursively "external") + #t)) (sha256 (base32 "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl")))) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 3dd3a070e4..8e6f5d94d9 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -113,10 +113,10 @@ such as compact binary encodings, XML, or JSON.") "cpp-" version "/msgpack-" version ".tar.gz")) (snippet '(let ((p (open-file "msgpack.pc.in" "a"))) - (begin - (display - (string-append "Requires: " "zlib" "\n") p) - (close-output-port p)))) + (display + (string-append "Requires: " "zlib" "\n") p) + (close-output-port p) + #t)) (sha256 (base32 "18hzmyfg3mvnp7ab03nqdzzvqagkl42gygjpi4zv4i7aca2dmwf0")))) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 685f6d2df4..0bd4cd2fb2 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -103,9 +103,10 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4")) (modules '((guix build utils))) ;; Don't try to install /etc/fish/config.fish. - (snippet - '(substitute* "Makefile.in" - ((".*INSTALL.*sysconfdir.*fish.*") ""))))) + (snippet '(begin + (substitute* "Makefile.in" + ((".*INSTALL.*sysconfdir.*fish.*") "")) + #t)))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen))) @@ -264,7 +265,7 @@ written by Paul Haahr and Byron Rakitzis.") (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") + (invoke "make" "tests/testsuite") ;; This file is ISO-8859-1 encoded. (with-fluids ((%default-port-encoding #f)) diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index abc00c1a89..f9956d0113 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -51,7 +51,8 @@ (substitute* "src/Makefile.in" (("/bin/ln") "ln")) (substitute* "configure" - (("-ltermcap") "")))))) + (("-ltermcap") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index a0d6c86dff..c0c53a5291 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -100,7 +100,8 @@ such as ones for networking and GUI programming.") "ux_version = \"GNU\";\n")) (substitute* "unix/vm/config.cmake" (("\\(VM_BUILD_STRING.*") - "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")")))))) + "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")")) + #t)))) (inputs `(("alsa-lib" ,alsa-lib) ("dbus" ,dbus) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index d7b1897051..9e157f29f4 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -479,7 +479,8 @@ basis for almost any application.") (("localhost") "127.0.0.1")) (substitute* "src/testsuite/login-auth-test" - (("/bin/cat") "cat")))))) + (("/bin/cat") "cat")) + #t)))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 54d91c1f3c..93db2189e3 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -317,7 +317,7 @@ ("python2-testtools" ,python2-testtools) ("python2-tox" ,python2-tox))) (inputs - `(("boost" ,boost-1.66) + `(("boost" ,boost) ("curl" ,curl) ("cryptsetup" ,cryptsetup) ("expat" ,expat) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 3656f5855e..df1b963878 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -58,7 +58,8 @@ ;; qtsingleapplication have not yet been packaged, but all are ;; explicitly used from the 3rdparty folder during build. ;; We can also remove the macgoodies folder - (delete-file-recursively "src/3rdparty/qtmacgoodies"))))) + (delete-file-recursively "src/3rdparty/qtmacgoodies") + #t)))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 6c3792b92f..ed59a5b922 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -39,8 +39,9 @@ "0nv5g9ymykl4316l2g3mnac77y2rx9ps4j2kg3pymxlq6qms2dij")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. - (snippet - '(delete-file-recursively "vendor")))) + (snippet '(begin + (delete-file-recursively "vendor") + #t)))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index 6a668801ff..e4399678dc 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -40,9 +40,11 @@ "1i3zy87gyzw22fvajm039w6g822qzqn7jbmznc8y8c57qpqnf330")) (modules '((guix build utils))) (snippet - '(substitute* "build/common.inc" - (("export tbb_build_prefix.+$") - "export tbb_build_prefix?=guix\n"))))) + '(begin + (substitute* "build/common.inc" + (("export tbb_build_prefix.+$") + "export tbb_build_prefix?=guix\n")) + #t)))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index eeae8bea41..efc57d36ed 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -239,7 +239,8 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.") "") ;; Replace the call to 'sd_booted' by the truth value. (("sd_booted\\(\\)") - "1")))))) + "1")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -462,26 +463,28 @@ embedded kernel situations.") "cool-retro-term-memory-leak-1.patch")) (modules '((guix build utils))) (snippet - '(for-each (lambda (font) - (delete-file-recursively - (string-append "app/qml/fonts/" font)) - (substitute* '("app/qml/resources.qrc") - (((string-append "<file>fonts/" font ".*")) - ""))) - '(;"1971-ibm-3278" ; BSD 3-clause - "1977-apple2" ; Non-Free - "1977-commodore-pet" ; Non-Free - "1979-atari-400-800" ; Non-Free - "1982-commodore64" ; Non-Free - "1985-atari-st" ; ? - "1985-ibm-pc-vga" ; Unclear - ;"modern-fixedsys-excelsior" ; Redistributable - ;"modern-hermit" ; SIL - ;"modern-inconsolata"; SIL - ;"modern-pro-font-win-tweaked" ; X11 - ;"modern-proggy-tiny"; X11 - ;"modern-terminus" ; SIL - "modern-monaco"))))) ; Apple non-free + '(begin + (for-each (lambda (font) + (delete-file-recursively + (string-append "app/qml/fonts/" font)) + (substitute* '("app/qml/resources.qrc") + (((string-append "<file>fonts/" font ".*")) + ""))) + '(;;"1971-ibm-3278" ; BSD 3-clause + "1977-apple2" ; Non-Free + "1977-commodore-pet" ; Non-Free + "1979-atari-400-800" ; Non-Free + "1982-commodore64" ; Non-Free + "1985-atari-st" ; ? + "1985-ibm-pc-vga" ; Unclear + ;;"modern-fixedsys-excelsior" ; Redistributable + ;;"modern-hermit" ; SIL + ;;"modern-inconsolata" ; SIL + ;;"modern-pro-font-win-tweaked" ; X11 + ;;"modern-proggy-tiny" ; X11 + ;;"modern-terminus" ; SIL + "modern-monaco")) ; Apple non-free + #t)))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 30f593d0ad..bcaf35bf2d 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -143,7 +143,9 @@ is on expressing the content semantically, avoiding physical markup commands.") ;; timestamp so we don't trigger the rule to update PO files, ;; which would require Gettext. ;; See <http://bugs.gnu.org/18247>. - '(utime "texi2html.pl" 0 0 0 0)))) + '(begin + (utime "texi2html.pl" 0 0 0 0) + #t)))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (arguments diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index f1ccab9af9..caec009f1a 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -214,7 +214,9 @@ compiled, requires few libraries, and starts up quickly. ") (modules '((guix build utils))) ;; Remove pre-built binaries. - (snippet '(delete-file-recursively "bin")))) + (snippet '(begin + (delete-file-recursively "bin") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -248,10 +250,10 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on (base32 "0hakfikzsml7z0hja8m8mcahrmfy2piy81bq9nccsjplyfc9clai")) (modules '((guix build utils))) - (snippet - '(begin - (substitute* "GNUmakefile" - (("/usr/bin/") "")))))) + (snippet '(begin + (substitute* "GNUmakefile" + (("/usr/bin/") "")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 2d8a104d54..11deff4f6d 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -93,10 +93,9 @@ to DOS format and vice versa.") (base32 "0r4yhf7i7zp2nl2apyzz7r3i2in12n385hmr8zcfr18ly0ly530q")) (modules '((guix build utils))) - (snippet - `(begin - (delete-file "tests/Recode.c") - #t)))) + (snippet '(begin + (delete-file "tests/Recode.c") + #t)))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index bd86b2e0d9..6b1005c2f8 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -1,10 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> +;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> @@ -65,8 +65,7 @@ (define-public libtasn1 (package (name "libtasn1") - (version "4.12") - (replacement libtasn1/fixed) + (version "4.13") (source (origin (method url-fetch) @@ -74,8 +73,7 @@ version ".tar.gz")) (sha256 (base32 - "0ls7jdq3y5fnrwg0pzhq11m21r8pshac2705bczz6mqjc8pdllv7")) - (patches (search-patches "libtasn1-CVE-2017-10790.patch")))) + "1jlc1iahj8k3haz28j55nzg7sgni5h41vqy461i1bpbx6668wlky")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (home-page "https://www.gnu.org/software/libtasn1/") @@ -87,14 +85,6 @@ networking, allowing for formal validation of data according to some specifications.") (license license:lgpl2.0+))) -(define libtasn1/fixed - (package - (inherit libtasn1) - (source (origin - (inherit (package-source libtasn1)) - (patches (search-patches "libtasn1-CVE-2017-10790.patch" - "libtasn1-CVE-2018-6003.patch")))))) - (define-public asn1c (package (name "asn1c") @@ -155,7 +145,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.13") + (version "3.5.18") (source (origin (method url-fetch) (uri @@ -169,7 +159,7 @@ living in the same process.") "gnutls-skip-pkgconfig-test.patch")) (sha256 (base32 - "15ihq6p0hnnhs8cnjrkj40dmlcaa1jjg8xg0g2ydbnlqs454ixbr")))) + "0d02x28fwkkx7xzn7807nww6idchizzq3plx8sfcyiw7wzclh8mf")))) (build-system gnu-build-system) (arguments `(; Ensure we don't keep a reference to this buggy software. @@ -307,26 +297,25 @@ required structures.") 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./config" - "shared" ;build shared libraries - "--libdir=lib" - - ;; The default for this catch-all directory is - ;; PREFIX/ssl. Change that to something more - ;; conventional. - (string-append "--openssldir=" out - "/share/openssl-" ,version) - - (string-append "--prefix=" out) - - ;; XXX FIXME: Work around a code generation bug in GCC - ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: - ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917> - ,@(if (and (not (%current-target-system)) - (string-prefix? "armhf" (%current-system))) - '("-mfpu=vfpv3") - '())))))) + (apply invoke "./config" + "shared" ;build shared libraries + "--libdir=lib" + + ;; The default for this catch-all directory is + ;; PREFIX/ssl. Change that to something more + ;; conventional. + (string-append "--openssldir=" out + "/share/openssl-" ,version) + + (string-append "--prefix=" out) + + ;; XXX FIXME: Work around a code generation bug in GCC + ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: + ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917> + ,@(if (and (not (%current-target-system)) + (string-prefix? "armhf" (%current-system))) + '("-mfpu=vfpv3") + '()))))) (add-after 'install 'make-libraries-writable (lambda* (#:key outputs #:allow-other-keys) @@ -432,27 +421,26 @@ required structures.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (lib (string-append out "/lib"))) - (zero? - (system* "./config" - "shared" ;build shared libraries - "--libdir=lib" - - ;; The default for this catch-all directory is - ;; PREFIX/ssl. Change that to something more - ;; conventional. - (string-append "--openssldir=" out - "/share/openssl-" ,version) - - (string-append "--prefix=" out) - (string-append "-Wl,-rpath," lib) - - ;; XXX FIXME: Work around a code generation bug in GCC - ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: - ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917> - ,@(if (and (not (%current-target-system)) - (string-prefix? "armhf" (%current-system))) - '("-mfpu=vfpv3") - '())))))) + (apply invoke "./config" + "shared" ;build shared libraries + "--libdir=lib" + + ;; The default for this catch-all directory is + ;; PREFIX/ssl. Change that to something more + ;; conventional. + (string-append "--openssldir=" out + "/share/openssl-" ,version) + + (string-append "--prefix=" out) + (string-append "-Wl,-rpath," lib) + + ;; XXX FIXME: Work around a code generation bug in GCC + ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: + ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917> + ,@(if (and (not (%current-target-system)) + (string-prefix? "armhf" (%current-system))) + '("-mfpu=vfpv3") + '()))))) ;; XXX: Duplicate this phase to make sure 'version' evaluates ;; in the current scope and not the inherited one. @@ -805,7 +793,8 @@ then ported to the GNU / Linux environment.") '(begin (substitute* "include/mbedtls/dhm.h" (("#define MBEDTLS_DHM_RFC5114_MODP_P") - "#define MBEDTLS_DHM_RFC5114_MODP_2048_P")))))) + "#define MBEDTLS_DHM_RFC5114_MODP_2048_P")) + #t)))) (build-system cmake-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/unrtf.scm b/gnu/packages/unrtf.scm index 3a15171a57..1d21a81a0e 100644 --- a/gnu/packages/unrtf.scm +++ b/gnu/packages/unrtf.scm @@ -61,7 +61,7 @@ #$grep "/bin:" #$sed "/bin:" #$coreutils "/bin:" (getenv "PATH"))) - (zero? (system* "autoreconf" "-vfi")))))) + (invoke "autoreconf" "-vfi"))))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/unrtf/") (synopsis "Convert Rich Text Format documents to other formats") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index a3f4a4dd4b..70197744e7 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 <nikita@karetnikov.org> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> @@ -391,7 +391,9 @@ everything from small to very large projects with speed and efficiency.") (patches (search-patches "libgit2-0.25.1-mtime-0.patch")) ;; Remove bundled software. - (snippet '(delete-file-recursively "deps")) + (snippet '(begin + (delete-file-recursively "deps") + #t)) (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) @@ -1539,11 +1541,6 @@ output of the 'git' command.") (base32 "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://github.com/0-wiz-0/findnewest/releases") @@ -1615,7 +1612,7 @@ repository\" with git-annex.") (define-public fossil (package (name "fossil") - (version "2.4") + (version "2.5") (source (origin (method url-fetch) @@ -1629,7 +1626,7 @@ repository\" with git-annex.") "fossil-src-" version ".tar.gz"))) (sha256 (base32 - "0add35lk2ac4qg29d7ygj7pskv8lfln33f3kgf6x3548msv9hd6j")))) + "1lxawkhr1ki9fqw8076fxib2b1w673449yzb6vxjshqzh5h77c7r")))) (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) ;for configuration only @@ -1721,7 +1718,8 @@ be served with a HTTP file server of your choice.") (("__TIME__") "\"00:00:00\"")) (substitute* "src/impossible.h" (("__DATE__") "\"\"") - (("__TIME__") "\"\"")))))) + (("__TIME__") "\"\"")) + #t)))) (build-system haskell-build-system) (arguments `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded" diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0979b4f4e7..ffc5f33e7b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -206,8 +206,7 @@ old-fashioned output methods with powerful ascii-art renderer.") (modify-phases %standard-phases ;; XXX We need to run ./bootstrap because of the build ;; system fixes above. - (add-after - 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (zero? (system* "sh" "bootstrap"))))))) (home-page "http://liba52.sourceforge.net/") (synopsis "ATSC A/52 stream decoder") @@ -304,15 +303,15 @@ H.264 (MPEG-4 AVC) video streams.") (base32 "0hknnnnx9661igm1r73dc7aqxnnrl5a8yvyvr1nhd9ymn2klwpl5")) (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled libraries. - (for-each delete-file-recursively - '("lib/libebml" - "lib/libmatroska" - "lib/nlohmann-json" - "lib/pugixml" - "lib/utf8-cpp")))))) + (snippet '(begin + ;; Delete bundled libraries. + (for-each delete-file-recursively + '("lib/libebml" + "lib/libmatroska" + "lib/nlohmann-json" + "lib/pugixml" + "lib/utf8-cpp")) + #t)))) (build-system gnu-build-system) (inputs `(("boost" ,boost) @@ -388,8 +387,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (base32 "1gyd94jkwdii9308m07nymsbxrmrcl81c0j8i10zhslr2mj07w0v")) (modules '((guix build utils))) - (snippet - '(delete-file-recursively "source/compat/getopt")))) + (snippet '(begin + (delete-file-recursively "source/compat/getopt") + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built @@ -1795,10 +1795,11 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (base32 "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47")) (modules '((guix build utils))) - (snippet - ;; As of glibc 2.26, <xlocale.h> no longer is. - '(substitute* "src/framework/mlt_property.h" - (("xlocale\\.h") "locale.h"))))) + (snippet '(begin + ;; As of glibc 2.26, <xlocale.h> no longer is. + (substitute* "src/framework/mlt_property.h" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1984,7 +1985,8 @@ implementation.") "1x2ag1f2fwa4yh1g5spv99w9x1m33hbxlqwyhm205ssq0ra234bx")) (patches (search-patches "libvdpau-va-gl-unbundle.patch")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "3rdparty")))) + (snippet '(begin (delete-file-recursively "3rdparty") + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; Tests require a running X11 server, with VA-API support. @@ -2251,7 +2253,7 @@ supported players in addition to this package.") `(#:tests? #f ;tests require Ruby and claim to be unsupported #:phases (modify-phases %standard-phases - (add-before 'patch-source-shebangs 'bootstrap-gtk + (replace 'bootstrap ;; Run bootstrap ahead of time so that shebangs get patched. (lambda _ (setenv "CONFIG_SHELL" (which "sh")) @@ -2496,10 +2498,11 @@ many codecs and formats supported by libmediainfo.") (base32 "0f5kxpayqn3yhabqrd2cqlc74i6x2xr01jfkank1lcilxnfyrsnq")) (modules '((guix build utils))) - (snippet - ;; As of glibc 2.26, <xlocale.h> no longer is. - '(substitute* "liveMedia/include/Locale.hh" - (("xlocale\\.h") "locale.h"))))) + (snippet '(begin + ;; As of glibc 2.26, <xlocale.h> no longer is. + (substitute* "liveMedia/include/Locale.hh" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -2770,7 +2773,7 @@ It counts more than 100 plugins.") ("sqlite" ,sqlite))) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (patch-shebang "version.sh") (invoke "autoreconf" "-vfi")))) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 0fc3197077..442335cb94 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -62,7 +62,8 @@ (substitute* "lib/Makefile.in" (("getopt1?\\.(c|h|\\$\\(OBJEXT\\))") "")) (for-each delete-file - '("lib/getopt.h" "lib/getopt.c")))))) + '("lib/getopt.h" "lib/getopt.c")) + #t)))) (build-system gnu-build-system) (home-page "http://software.schmorp.de/pkg/gvpe.html") (inputs `(("openssl" ,openssl) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ceb7d9b7c7..fd631d4fd8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de> -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com> @@ -414,12 +414,7 @@ APIs.") (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests included - #:make-flags (list "CC=gcc") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + #:make-flags (list "CC=gcc"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -544,7 +539,8 @@ data.") ;; Don't try to build with -Werror. (substitute* (find-files "." "Makefile\\.in") - (("-Werror") "")))))) + (("-Werror") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:parallel-build? #f #:parallel-tests? #f)) @@ -580,7 +576,8 @@ It aims to conform to RFC 7159.") ;; Don't try to build with -Werror. (substitute* (find-files "." "Makefile\\.in") - (("-Werror") "")))))))) + (("-Werror") "")) + #t)))))) (define-public qjson (package @@ -854,7 +851,7 @@ UTS#46.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda* (#:key inputs #:allow-other-keys) ;; configure.in and Makefile.am aren't in the root of the ;; source tree. @@ -4033,11 +4030,7 @@ and vice-versa.") "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; tests require bundling googletest sources - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "autogen.sh"))))))) + `(#:tests? #f)) ;tests require bundling googletest sources ;; The release tarball lacks the generated files. (native-inputs `(("autoconf" ,autoconf) @@ -4845,10 +4838,11 @@ config files---you only have to specify the www root.") (base32 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q")) (modules '((guix build utils))) - (snippet - '(substitute* "src/error.h" - (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\""))))) + (snippet '(begin + (substitute* "src/error.h" + (("__DATE__") "\"1970-01-01\"") + (("__TIME__") "\"00:00:00\"")) + #t)))) (build-system gnu-build-system) (inputs ;; TODO: Add dependency on geoip-tools. @@ -4878,9 +4872,10 @@ on the fly.") (base32 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql")) (modules '((guix build utils))) - (snippet - ;; Remove non-free IETF RFC documentation. - '(delete-file-recursively "doc")))) + (snippet '(begin + ;; Remove non-free IETF RFC documentation. + (delete-file-recursively "doc") + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -5014,9 +5009,10 @@ functions of Tidy.") (uri (string-append "https://www.hiawatha-webserver.org/files/" "hiawatha-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; We use our packaged mbedtls, so delete the included copy. - '(delete-file-recursively "mbedtls")) + (snippet '(begin + ;; We use our packaged mbedtls, so delete the included copy. + (delete-file-recursively "mbedtls") + #t)) (sha256 (base32 "0x2zfc8kc6c7rl4gwymwmg13w1c60biv6c6c9fvzpnl59bc9jgin")))) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index c6a319965a..06668d287b 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; @@ -140,7 +140,7 @@ online pastebin services.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure all the files are writable so that ./bootstrap ;; can proceed. diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index b38b3caa25..b16ef29ea5 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au> -;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018 ng0 <ng0@crash.cx> ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net> @@ -355,12 +355,7 @@ prompt.") "119xvdm4r6irqk0mar80hx6s8ydw26y35h7712rd7nbg7pb7i053")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;No tests included. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + `(#:tests? #f)) ;no tests included (inputs `(("xcb-util-image" ,xcb-util-image) ("xcb-util" ,xcb-util) @@ -678,16 +673,17 @@ experience.") "0kwpbls9h1alxcmvxh5g9qb995fds5b2ngcr44w0ibazkyls2pdc")) (modules '((guix build utils) (srfi srfi-19))) - (snippet - ;; Remove non-reproducible timestamp and use the date of the - ;; source file instead. - '(substitute* "common/version.c" - (("__DATE__ \" \" __TIME__") - (date->string - (time-utc->date - (make-time time-utc 0 - (stat:mtime (stat "awesome.c")))) - "\"~c\"")))) + (snippet '(begin + ;; Remove non-reproducible timestamp and use the date + ;; of the source file instead. + (substitute* "common/version.c" + (("__DATE__ \" \" __TIME__") + (date->string + (time-utc->date + (make-time time-utc 0 + (stat:mtime (stat "awesome.c")))) + "\"~c\""))) + #t)) (patches (search-patches "awesome-reproducible-png.patch")))) (build-system cmake-build-system) (native-inputs `(("asciidoc" ,asciidoc) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index ad264a24e8..f1a61329e8 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -184,7 +184,8 @@ and many other languages.") ;; setup.py tries to keep its own license the same as wxwidget's ;; license (which it expects under $WXWIN/docs). (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'") - "")))))) + "")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 07a9b390fa..9ae0096e6a 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com> -;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> @@ -90,11 +90,13 @@ "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv")) (modules '((guix build utils))) (snippet - ;; Do not record a timestamp and file name in gzipped man - ;; pages (this is equivalent to 'gzip --no-name'.) - '(substitute* "setup.py" - (("gzip\\.open\\(gzfile, 'w', 9\\)") - "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))))) + '(begin + ;; Do not record a timestamp and file name in gzipped man + ;; pages (this is equivalent to 'gzip --no-name'.) + (substitute* "setup.py" + (("gzip\\.open\\(gzfile, 'w', 9\\)") + "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 ;incompatible with python 3 @@ -136,12 +138,7 @@ program.") "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; There is no test suite - #:phases - (modify-phases %standard-phases - ;; Since version 0.13, bootstrapped releases are no longer available. - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-v"))))))) + '(#:tests? #f)) ;there is no test suite (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -1279,7 +1276,9 @@ program for X11. It was designed to be fast, tiny and scriptable in any languag (modules '((guix build utils))) (snippet ;; Drop bundled m4. - '(delete-file-recursively "m4")))) + '(begin + (delete-file-recursively "m4") + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 729fa56a30..293b47a653 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -105,14 +105,14 @@ hierarchical form with variable field lengths.") (define-public libxml2 (package (name "libxml2") - (version "2.9.7") + (version "2.9.8") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" version ".tar.gz")) (sha256 (base32 - "034hylzspvkm0p4bczqbf8q05a7r2disr8dz725x4bin61ymwg7n")))) + "0ci7is75bwqqw2p32vxvrk6ds51ik7qgx73m920rakv5jlayax0b")))) (build-system gnu-build-system) (home-page "http://www.xmlsoft.org/") (synopsis "C parser for XML") @@ -1233,7 +1233,7 @@ files. It is designed to be fast and to handle large input files.") `(#:phases (modify-phases %standard-phases ;; Bootstrapping is required in order to fix the test driver script. - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (zero? (system* "bash" "bootstrap"))))))) (native-inputs diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 46a9a3b85f..b27382a82c 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com> @@ -425,10 +425,12 @@ Resources file.") (modules '((guix build utils))) (snippet ;; Do not include timestamps in '.pcf.gz' files. - '(substitute* "Makefile.in" - (("^COMPRESS = (.*)$" _ rest) - (string-append "COMPRESS = " (string-trim-right rest) - " --no-name\n")))))) + '(begin + (substitute* "Makefile.in" + (("^COMPRESS = (.*)$" _ rest) + (string-append "COMPRESS = " (string-trim-right rest) + " --no-name\n"))) + #t)))) (define-syntax-rule (xorg-font-origin font version hash) "Expand to the 'origin' form for the given Xorg font package." @@ -1849,7 +1851,7 @@ management to participate in an X11R6 session.") (define-public util-macros (package (name "util-macros") - (version "1.19.1") + (version "1.19.2") (source (origin (method url-fetch) @@ -1859,25 +1861,26 @@ management to participate in an X11R6 session.") ".tar.bz2")) (sha256 (base32 - "19h6wflpmh7xxqr6lk5z8pds6r9r0dn7ijbvaacymx2q0m05km0q")))) + "04p7ydqxgq37jklnfj18b70zsifiz4h50wvrk94i2112mmv37r6p")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - `(#:phases (alist-cons-after - 'unpack 'fix-makefile-in - (lambda _ - (substitute* "Makefile.in" - ;; Install xorg-macros.pc in PREFIX/lib/pkgconfig, - ;; not PREFIX/share/pkgconfig. - (("\\$\\(datadir\\)/pkgconfig") "$(libdir)/pkgconfig"))) - (alist-cons-after - 'install 'post-install-cleanup - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion out - (delete-file "share/util-macros/INSTALL") - (rmdir "share/util-macros")))) - %standard-phases)))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-makefile-in + (lambda _ + (substitute* "Makefile.in" + ;; Install xorg-macros.pc in PREFIX/lib/pkgconfig, + ;; not PREFIX/share/pkgconfig. + (("\\$\\(datadir\\)/pkgconfig") "$(libdir)/pkgconfig")) + #t)) + (add-after 'install 'post-install-cleanup + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (delete-file "share/util-macros/INSTALL") + (rmdir "share/util-macros")) + #t)))))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg autoconf macros") (description @@ -2089,7 +2092,7 @@ emulate a TI-30 or an HP-10C.") (define-public xcb-proto (package (name "xcb-proto") - (version "1.12") + (version "1.13") (source (origin (method url-fetch) @@ -2099,10 +2102,7 @@ emulate a TI-30 or an HP-10C.") ".tar.bz2")) (sha256 (base32 - "01j91946q8f34l1mbvmmgvyc393sm28ym4lxlacpiav4qsjan8jr")) - (patches - (search-patches "xcb-proto-python3-whitespace.patch" - "xcb-proto-python3-print.patch")))) + "1qdxw9syhbvswiqj5dvj278lrmfhs81apzmvx6205s4vcqg7563v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) @@ -2767,11 +2767,7 @@ framebuffer device.") `(#:configure-flags (list (string-append "--with-xorg-conf-dir=" (assoc-ref %outputs "out") - "/share/X11/xorg.conf.d")) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + "/share/X11/xorg.conf.d")))) (home-page "https://www.x.org/wiki/") (synopsis "Adreno video driver for X server") (description @@ -2926,11 +2922,7 @@ X server.") (string-prefix? "x86_64-" system))) %supported-systems)) (arguments - '(#:configure-flags '("--with-default-accel=uxa") - #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + '(#:configure-flags '("--with-default-accel=uxa"))) (home-page "https://www.x.org/wiki/") (synopsis "Intel video driver for X server") (description @@ -5044,7 +5036,7 @@ protocol.") (define-public libxcb (package (name "libxcb") - (version "1.12") + (version "1.13") (source (origin (method url-fetch) @@ -5052,9 +5044,7 @@ protocol.") name "-" version ".tar.bz2")) (sha256 (base32 - "0nvv0la91cf8p5qqlb3r5xnmg1jn2wphn4fb5jfbr6byqsvv3psa")) - (patches - (search-patches "libxcb-python-3.5-compat.patch")))) + "1ahxhmdqp4bhb90zmc275rmf5wixqra4bnw9pqnzyl1w3598g30q")))) (build-system gnu-build-system) (propagated-inputs `(("libpthread-stubs" ,libpthread-stubs) diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm index fd3d168b3d..858117de28 100644 --- a/gnu/packages/zile.scm +++ b/gnu/packages/zile.scm @@ -114,7 +114,7 @@ default Emacs configuration, but it carries a much lighter feature set.") (substitute-keyword-arguments (package-arguments zile) ((#:phases phases) `(modify-phases ,phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure all the files are writable so that ./bootstrap ;; can proceed. diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 6ce813a001..a6da530dab 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -228,6 +228,7 @@ repack them. This is necessary to ensure that archives are reproducible." (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index c5e820a00a..dd6373b33a 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -220,6 +220,7 @@ valid." (define %standard-phases/source (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'check) (delete 'build) @@ -227,6 +228,7 @@ valid." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'install) (replace 'build build) diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 139b40321f..f52444f61c 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -172,6 +172,7 @@ SRC-NAME as if it was part of the directory DIR-NAME with name (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/cmake-build-system.scm b/guix/build/cmake-build-system.scm index c82d9fef87..9b1112f2d6 100644 --- a/guix/build/cmake-build-system.scm +++ b/guix/build/cmake-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> @@ -73,7 +73,7 @@ '()) ,@configure-flags))) (format #t "running 'cmake' with arguments ~s~%" args) - (zero? (apply system* "cmake" args))))) + (apply invoke "cmake" args)))) (define* (check #:key (tests? #t) (parallel-tests? #t) (test-target "test") #:allow-other-keys) @@ -86,6 +86,7 @@ ;; Everything is as with the GNU Build System except for the `configure' ;; and 'check' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'check check) (replace 'configure configure))) diff --git a/guix/build/cvs.scm b/guix/build/cvs.scm index 9976e624b3..7111043747 100644 --- a/guix/build/cvs.scm +++ b/guix/build/cvs.scm @@ -55,19 +55,20 @@ Return #t on success, #f otherwise." ;; Use "-z0" because enabling compression leads to hangs during checkout on ;; certain repositories, such as ;; ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards". - (and (zero? (system* cvs-command "-z0" - "-d" cvs-root-directory - "checkout" - (if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision) - "-D" "-r") - revision - module)) - ;; Copy rather than rename in case MODULE and DIRECTORY are on - ;; different devices. - (copy-recursively module directory) + (invoke cvs-command "-z0" + "-d" cvs-root-directory + "checkout" + (if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision) + "-D" "-r") + revision + module) - (with-directory-excursion directory - (for-each delete-file-recursively (find-cvs-directories))) - #t)) + ;; Copy rather than rename in case MODULE and DIRECTORY are on + ;; different devices. + (copy-recursively module directory) + + (with-directory-excursion directory + (for-each delete-file-recursively (find-cvs-directories))) + #t) ;;; cvs.scm ends here diff --git a/guix/build/dub-build-system.scm b/guix/build/dub-build-system.scm index ed86635708..9a72e3d544 100644 --- a/guix/build/dub-build-system.scm +++ b/guix/build/dub-build-system.scm @@ -121,6 +121,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index b779847424..7c3b635139 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -262,6 +262,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages." (modify-phases gnu:%standard-phases (add-after 'set-paths 'set-emacs-load-path set-emacs-load-path) (replace 'unpack unpack) + (delete 'bootstrap) (delete 'configure) ;; Move the build phase after install: the .el files are byte compiled ;; directly in the store. diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 8389ca582f..30aec5b9c6 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -18,6 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build emacs-utils) + #:use-module (guix build utils) #:export (%emacs emacs-batch-eval emacs-batch-edit-file @@ -39,16 +40,14 @@ (define (emacs-batch-eval expr) "Run Emacs in batch mode, and execute the elisp code EXPR." - (unless (zero? (system* (%emacs) "--quick" "--batch" - (format #f "--eval=~S" expr))) - (error "emacs-batch-eval failed!" expr))) + (invoke (%emacs) "--quick" "--batch" + (format #f "--eval=~S" expr))) (define (emacs-batch-edit-file file expr) "Load FILE in Emacs using batch mode, and execute the elisp code EXPR." - (unless (zero? (system* (%emacs) "--quick" "--batch" - (string-append "--visit=" file) - (format #f "--eval=~S" expr))) - (error "emacs-batch-edit-file failed!" file expr))) + (invoke (%emacs) "--quick" "--batch" + (string-append "--visit=" file) + (format #f "--eval=~S" expr))) (define (emacs-generate-autoloads name directory) "Generate autoloads for Emacs package NAME placed in DIRECTORY." diff --git a/guix/build/font-build-system.scm b/guix/build/font-build-system.scm index f2a646f6f4..6726595fe1 100644 --- a/guix/build/font-build-system.scm +++ b/guix/build/font-build-system.scm @@ -59,6 +59,7 @@ archive, or a font file." (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (delete 'bootstrap) (delete 'configure) (delete 'check) (delete 'build) diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm index b6291e735b..ba680fd1a9 100644 --- a/guix/build/glib-or-gtk-build-system.scm +++ b/guix/build/glib-or-gtk-build-system.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -202,16 +203,16 @@ add a dependency of that output on GLib and GTK+." (define* (compile-glib-schemas #:key outputs #:allow-other-keys) "Implement phase \"glib-or-gtk-compile-schemas\": compile \"glib\" schemas if needed." - (every (match-lambda - ((output . directory) - (let ((schemasdir (string-append directory - "/share/glib-2.0/schemas"))) - (if (and (directory-exists? schemasdir) - (not (file-exists? - (string-append schemasdir "/gschemas.compiled")))) - (zero? (system* "glib-compile-schemas" schemasdir)) - #t)))) - outputs)) + (for-each (match-lambda + ((output . directory) + (let ((schemasdir (string-append directory + "/share/glib-2.0/schemas"))) + (when (and (directory-exists? schemasdir) + (not (file-exists? + (string-append schemasdir "/gschemas.compiled")))) + (invoke "glib-compile-schemas" schemasdir))))) + outputs) + #t) (define %standard-phases (modify-phases gnu:%standard-phases diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 7b43361f99..8fe6fa8d60 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,8 @@ #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-26) #:use-module (rnrs io ports) #:export (%standard-phases @@ -152,12 +155,50 @@ working directory." ;; Preserve timestamps (set to the Epoch) on the copied tree so that ;; things work deterministically. (copy-recursively source "." - #:keep-mtime? #t) - #t) - (and (if (string-suffix? ".zip" source) - (zero? (system* "unzip" source)) - (zero? (system* "tar" "xvf" source))) - (chdir (first-subdirectory "."))))) + #:keep-mtime? #t)) + (begin + (if (string-suffix? ".zip" source) + (invoke "unzip" source) + (invoke "tar" "xvf" source)) + (chdir (first-subdirectory ".")))) + #t) + +(define %bootstrap-scripts + ;; Typical names of Autotools "bootstrap" scripts. + '("bootstrap" "bootstrap.sh" "autogen.sh")) + +(define* (bootstrap #:key (bootstrap-scripts %bootstrap-scripts) + #:allow-other-keys) + "If the code uses Autotools and \"configure\" is missing, run +\"autoreconf\". Otherwise do nothing." + ;; Note: Run that right after 'unpack' so that the generated files are + ;; visible when the 'patch-source-shebangs' phase runs. + (if (not (file-exists? "configure")) + + ;; First try one of the BOOTSTRAP-SCRIPTS. If none exists, and it's + ;; clearly an Autoconf-based project, run 'autoreconf'. Otherwise, do + ;; nothing (perhaps the user removed or overrode the 'configure' phase.) + (let ((script (find file-exists? bootstrap-scripts))) + ;; GNU packages often invoke the 'git-version-gen' script from + ;; 'configure.ac' so make sure it has a valid shebang. + (false-if-file-not-found + (patch-shebang "build-aux/git-version-gen")) + + (if script + (let ((script (string-append "./" script))) + (format #t "running '~a'~%" script) + (if (executable-file? script) + (begin + (patch-shebang script) + (invoke script)) + (invoke "sh" script))) + (if (or (file-exists? "configure.ac") + (file-exists? "configure.in")) + (invoke "autoreconf" "-vif") + (format #t "no 'configure.ac' or anything like that, \ +doing nothing~%")))) + (format #t "GNU build system bootstrapping not needed~%")) + #t) ;; See <http://bugs.gnu.org/17840>. (define* (patch-usr-bin-file #:key native-inputs inputs @@ -184,7 +225,8 @@ $CONFIG_SHELL, but some don't, such as `mkinstalldirs' or Automake's (lambda (file stat) ;; Filter out symlinks. (eq? 'regular (stat:type stat))) - #:stat lstat))) + #:stat lstat)) + #t) (define (patch-generated-file-shebangs . rest) "Patch shebangs in generated files, including `SHELL' variables in @@ -199,7 +241,9 @@ makefiles." #:stat lstat)) ;; Patch `SHELL' in generated makefiles. - (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$"))) + (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$")) + + #t) (define* (configure #:key build target native-inputs inputs outputs (configure-flags '()) out-of-source? @@ -279,33 +323,32 @@ makefiles." ;; Call `configure' with a relative path. Otherwise, GCC's build system ;; (for instance) records absolute source file names, which typically ;; contain the hash part of the `.drv' file, leading to a reference leak. - (zero? (apply system* bash - (string-append srcdir "/configure") - flags)))) + (apply invoke bash + (string-append srcdir "/configure") + flags))) (define* (build #:key (make-flags '()) (parallel-build? #t) #:allow-other-keys) - (zero? (apply system* "make" - `(,@(if parallel-build? - `("-j" ,(number->string (parallel-job-count))) - '()) - ,@make-flags)))) + (apply invoke "make" + `(,@(if parallel-build? + `("-j" ,(number->string (parallel-job-count))) + '()) + ,@make-flags))) (define* (check #:key target (make-flags '()) (tests? (not target)) (test-target "check") (parallel-tests? #t) #:allow-other-keys) (if tests? - (zero? (apply system* "make" test-target - `(,@(if parallel-tests? - `("-j" ,(number->string (parallel-job-count))) - '()) - ,@make-flags))) - (begin - (format #t "test suite not run~%") - #t))) + (apply invoke "make" test-target + `(,@(if parallel-tests? + `("-j" ,(number->string (parallel-job-count))) + '()) + ,@make-flags)) + (format #t "test suite not run~%")) + #t) (define* (install #:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install" make-flags))) + (apply invoke "make" "install" make-flags)) (define* (patch-shebangs #:key inputs outputs (patch-shebangs? #t) #:allow-other-keys) @@ -371,10 +414,8 @@ makefiles." (let ((debug (debug-file file))) (mkdir-p (dirname debug)) (copy-file file debug) - (and (zero? (system* strip-command "--only-keep-debug" debug)) - (begin - (chmod debug #o400) - #t)))) + (invoke strip-command "--only-keep-debug" debug) + (chmod debug #o400))) (define (add-debug-link file) ;; Add a debug link in FILE (info "(binutils) strip"). @@ -384,10 +425,10 @@ makefiles." ;; `bfd_fill_in_gnu_debuglink_section' function.) No reference to ;; DEBUG-OUTPUT is kept because bfd keeps only the basename of the debug ;; file. - (zero? (system* objcopy-command "--enable-deterministic-archives" - (string-append "--add-gnu-debuglink=" - (debug-file file)) - file))) + (invoke objcopy-command "--enable-deterministic-archives" + (string-append "--add-gnu-debuglink=" + (debug-file file)) + file)) (define (strip-dir dir) (format #t "stripping binaries in ~s with ~s and flags ~s~%" @@ -397,17 +438,29 @@ makefiles." debug-output objcopy-command)) (for-each (lambda (file) - (and (or (elf-file? file) (ar-file? file)) - (or (not debug-output) - (make-debug-file file)) - - ;; 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) - (add-debug-link file)))) + (when (or (elf-file? file) (ar-file? file)) + ;; If an error occurs while processing a file, issue a + ;; warning and continue to the next file. + (guard (c ((invoke-error? c) + (format (current-error-port) + "warning: ~a: program ~s exited\ +~@[ with non-zero exit status ~a~]\ +~@[ terminated by signal ~a~]~%" + file + (invoke-error-program c) + (invoke-error-exit-status c) + (invoke-error-term-signal c)))) + (when debug-output + (make-debug-file file)) + + ;; Ensure the file is writable. + (make-file-writable file) + + (apply invoke strip-command + (append strip-flags (list file))) + + (when debug-output + (add-debug-link file))))) (find-files dir (lambda (file stat) ;; Ignore symlinks such as: @@ -415,15 +468,17 @@ makefiles." (eq? 'regular (stat:type stat))) #:stat lstat))) - (or (not strip-binaries?) - (every strip-dir - (append-map (match-lambda - ((_ . dir) - (filter-map (lambda (d) - (let ((sub (string-append dir "/" d))) - (and (directory-exists? sub) sub))) - strip-directories))) - outputs)))) + (when strip-binaries? + (for-each + strip-dir + (append-map (match-lambda + ((_ . dir) + (filter-map (lambda (d) + (let ((sub (string-append dir "/" d))) + (and (directory-exists? sub) sub))) + strip-directories))) + outputs))) + #t) (define* (validate-runpath #:key (validate-runpath? #t) @@ -466,10 +521,11 @@ phase after stripping." (filter-map (sub-directory output) elf-directories))) outputs))) - (every* validate dirs)) - (begin - (format (current-error-port) "skipping RUNPATH validation~%") - #t))) + (unless (every* validate dirs) + (error "RUNPATH validation failed"))) + (format (current-error-port) "skipping RUNPATH validation~%")) + + #t) (define* (validate-documentation-location #:key outputs #:allow-other-keys) @@ -549,47 +605,45 @@ DOCUMENTATION-COMPRESSOR-FLAGS." (apply throw args)))))) (define (maybe-compress-directory directory regexp) - (or (not (directory-exists? directory)) - (match (find-files directory regexp) - (() ;nothing to compress - #t) - ((files ...) ;one or more files - (format #t - "compressing documentation in '~a' with ~s and flags ~s~%" - directory documentation-compressor - documentation-compressor-flags) - (call-with-values - (lambda () - (partition symbolic-link? files)) - (lambda (symlinks regular-files) - ;; Compress the non-symlink files, and adjust symlinks to refer - ;; to the compressed files. Leave files that have hard links - ;; unchanged ('gzip' would refuse to compress them anyway.) - ;; Also, do not retarget symbolic links pointing to other - ;; symbolic links, since these are not compressed. - (and (every retarget-symlink - (filter (lambda (symlink) - (and (not (points-to-symlink? symlink)) - (string-match regexp symlink))) - symlinks)) - (zero? - (apply system* documentation-compressor - (append documentation-compressor-flags - (remove has-links? regular-files))))))))))) + (when (directory-exists? directory) + (match (find-files directory regexp) + (() ;nothing to compress + #t) + ((files ...) ;one or more files + (format #t + "compressing documentation in '~a' with ~s and flags ~s~%" + directory documentation-compressor + documentation-compressor-flags) + (call-with-values + (lambda () + (partition symbolic-link? files)) + (lambda (symlinks regular-files) + ;; Compress the non-symlink files, and adjust symlinks to refer + ;; to the compressed files. Leave files that have hard links + ;; unchanged ('gzip' would refuse to compress them anyway.) + ;; Also, do not retarget symbolic links pointing to other + ;; symbolic links, since these are not compressed. + (for-each retarget-symlink + (filter (lambda (symlink) + (and (not (points-to-symlink? symlink)) + (string-match regexp symlink))) + symlinks)) + (apply invoke documentation-compressor + (append documentation-compressor-flags + (remove has-links? regular-files))))))))) (define (maybe-compress output) - (and (maybe-compress-directory (string-append output "/share/man") - "\\.[0-9]+$") - (maybe-compress-directory (string-append output "/share/info") - "\\.info(-[0-9]+)?$"))) + (maybe-compress-directory (string-append output "/share/man") + "\\.[0-9]+$") + (maybe-compress-directory (string-append output "/share/info") + "\\.info(-[0-9]+)?$")) (if compress-documentation? (match outputs (((names . directories) ...) - (every maybe-compress directories))) - (begin - (format #t "not compressing documentation~%") - #t))) + (for-each maybe-compress directories))) + (format #t "not compressing documentation~%")) + #t) (define* (delete-info-dir-file #:key outputs #:allow-other-keys) "Delete any 'share/info/dir' file from OUTPUTS." @@ -672,6 +726,7 @@ which cannot be found~%" (let-syntax ((phases (syntax-rules () ((_ p ...) `((p . ,p) ...))))) (phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack + bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install @@ -704,17 +759,26 @@ in order. Return #t if all the PHASES succeeded, #f otherwise." ;; The trick is to #:allow-other-keys everywhere, so that each procedure in ;; PHASES can pick the keyword arguments it's interested in. - (every (match-lambda - ((name . proc) - (let ((start (current-time time-monotonic))) - (format #t "starting phase `~a'~%" name) - (let ((result (apply proc args)) - (end (current-time time-monotonic))) - (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" - name result - (elapsed-time end start)) - - ;; Dump the environment variables as a shell script, for handy debugging. - (system "export > $NIX_BUILD_TOP/environment-variables") - result)))) - phases)) + (for-each (match-lambda + ((name . proc) + (let ((start (current-time time-monotonic))) + (format #t "starting phase `~a'~%" name) + (let ((result (apply proc args)) + (end (current-time time-monotonic))) + (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" + name result + (elapsed-time end start)) + + ;; Issue a warning unless the result is #t. + (unless (eqv? result #t) + (format (current-error-port) "\ +## WARNING: phase `~a' returned `~s'. Return values other than #t +## are deprecated. Please migrate this package so that its phase +## procedures report errors by raising an exception, and otherwise +## always return #t.~%" + name result)) + + ;; Dump the environment variables as a shell script, for handy debugging. + (system "export > $NIX_BUILD_TOP/environment-variables") + result)))) + phases)) diff --git a/guix/build/gnu-dist.scm b/guix/build/gnu-dist.scm index ad69c6cf16..bf1c63cb85 100644 --- a/guix/build/gnu-dist.scm +++ b/guix/build/gnu-dist.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,24 +42,22 @@ (begin (format #t "bootstrapping with `~a'...~%" file) - (zero? - (system* (string-append "./" file)))) + (invoke (string-append "./" file))) (try-files files ... (else fallback ...))))))) (try-files "bootstrap" "bootstrap.sh" "autogen" "autogen.sh" (else (format #t "bootstrapping with `autoreconf'...~%") - (zero? (system* "autoreconf" "-vfi")))))) + (invoke "autoreconf" "-vfi"))))) (define* (build #:key build-before-dist? make-flags (dist-target "distcheck") #:allow-other-keys #:rest args) - (and (or (not build-before-dist?) - (let ((build (assq-ref %standard-phases 'build))) - (apply build args))) - (begin - (format #t "building target `~a'~%" dist-target) - (zero? (apply system* "make" dist-target make-flags))))) + (when build-before-dist? + (let ((build (assq-ref %standard-phases 'build))) + (apply build args))) + (format #t "building target `~a'~%" dist-target) + (apply invoke "make" dist-target make-flags)) (define* (install-dist #:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 3114067aa9..7c833a616f 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -261,6 +261,7 @@ files in OUTPUTS." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'patch-generated-file-shebangs) (replace 'unpack unpack) diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index 3afc37e16d..268d59c1be 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -266,6 +266,7 @@ given Haskell package." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (add-before 'configure 'setup-compiler setup-compiler) (add-before 'install 'haddock haddock) (add-after 'install 'register register) diff --git a/guix/build/hg.scm b/guix/build/hg.scm index ae4574de57..ea51eb670b 100644 --- a/guix/build/hg.scm +++ b/guix/build/hg.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,19 +34,20 @@ "Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid Mercurial changeset identifier. Return #t on success, #f otherwise." - (and (zero? (system* hg-command - "clone" url - "--rev" changeset - ;; Disable TLS certificate verification. The hash of - ;; the checkout is known in advance anyway. - "--insecure" - directory)) - (with-directory-excursion directory - (begin - ;; The contents of '.hg' vary as a function of the current - ;; status of the Mercurial repo. Since we want a fixed - ;; output, this directory needs to be taken out. - (delete-file-recursively ".hg") - #t)))) + (invoke hg-command + "clone" url + "--rev" changeset + ;; Disable TLS certificate verification. The hash of + ;; the checkout is known in advance anyway. + "--insecure" + directory) + + ;; The contents of '.hg' vary as a function of the current + ;; status of the Mercurial repo. Since we want a fixed + ;; output, this directory needs to be taken out. + (with-directory-excursion directory + (delete-file-recursively ".hg")) + + #t) ;;; hg.scm ends here diff --git a/guix/build/minify-build-system.scm b/guix/build/minify-build-system.scm index 3580deda07..563def88e9 100644 --- a/guix/build/minify-build-system.scm +++ b/guix/build/minify-build-system.scm @@ -60,6 +60,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'build build) (delete 'check) diff --git a/guix/build/ocaml-build-system.scm b/guix/build/ocaml-build-system.scm index f77251ca09..d10431d8ef 100644 --- a/guix/build/ocaml-build-system.scm +++ b/guix/build/ocaml-build-system.scm @@ -103,6 +103,7 @@ ;; Everything is as with the GNU Build System except for the `configure' ;; , `build', `check' and `install' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (add-before 'configure 'ocaml-findlib-environment ocaml-findlib-environment) (add-before 'install 'prepare-install prepare-install) diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm index b2024e4406..c5f5baa3a9 100644 --- a/guix/build/perl-build-system.scm +++ b/guix/build/perl-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +50,7 @@ "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)))) + (apply invoke "perl" args))) (define-syntax-rule (define-w/gnu-fallback* (name args ...) body ...) (define* (name args ... #:rest rest) @@ -58,24 +59,24 @@ (apply (assoc-ref gnu:%standard-phases 'name) rest)))) (define-w/gnu-fallback* (build) - (zero? (system* "./Build"))) + (invoke "./Build")) (define-w/gnu-fallback* (check #:key target (tests? (not target)) (test-flags '()) #:allow-other-keys) (if tests? - (zero? (apply system* "./Build" "test" test-flags)) - (begin - (format #t "test suite not run~%") - #t))) + (apply invoke "./Build" "test" test-flags) + (format #t "test suite not run~%")) + #t) (define-w/gnu-fallback* (install) - (zero? (system* "./Build" "install"))) + (invoke "./Build" "install")) (define %standard-phases ;; Everything is as with the GNU Build System except for the `configure', ;; `build', `check', and `install' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'install install) (replace 'check check) (replace 'build build) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index dd07986b94..c0a432038e 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -1,9 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,9 +121,9 @@ (format #t "running \"python setup.py\" with command ~s and parameters ~s~%" command params) (if use-setuptools? - (zero? (apply system* "python" "-c" setuptools-shim - command params)) - (zero? (apply system* "python" "./setup.py" command params)))) + (apply invoke "python" "-c" setuptools-shim + command params) + (apply invoke "python" "./setup.py" command params))) (error "no setup.py found"))) (define* (build #:key use-setuptools? #:allow-other-keys) @@ -243,10 +244,21 @@ installed with setuptools." #t)) #t)) +(define* (enable-bytecode-determinism #:rest _) + "Improve determinism of pyc files." + ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc files. + (setenv "DETERMINISTIC_BUILD" "1") + ;; Use deterministic hashes for strings, bytes, and datetime objects. + (setenv "PYTHONHASHSEED" "0") + #t) + (define %standard-phases ;; 'configure' phase is not needed. (modify-phases gnu:%standard-phases (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980) + (add-after 'ensure-no-mtimes-pre-1980 'enable-bytecode-determinism + enable-bytecode-determinism) + (delete 'bootstrap) (delete 'configure) (replace 'install install) (replace 'check check) diff --git a/guix/build/r-build-system.scm b/guix/build/r-build-system.scm index 24aa73d4f2..5e18939d22 100644 --- a/guix/build/r-build-system.scm +++ b/guix/build/r-build-system.scm @@ -99,6 +99,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'build) (delete 'check) ; tests must be run after installation diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index 09ae2390a5..abef6937bc 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -308,6 +308,7 @@ extended with definitions for VARS." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'unpack unpack) (add-before 'build 'extract-gemspec extract-gemspec) diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm index a8760968d8..eb013f03b6 100644 --- a/guix/build/scons-build-system.scm +++ b/guix/build/scons-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,27 +32,27 @@ (define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p out) - (zero? (apply system* "scons" - (append (if parallel-build? - (list "-j" (number->string - (parallel-job-count))) - (list)) - scons-flags))))) + (apply invoke "scons" + (append (if parallel-build? + (list "-j" (number->string + (parallel-job-count))) + (list)) + scons-flags)))) (define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys) "Run the test suite of a given SCons application." - (cond (tests? - (zero? (apply system* "scons" test-target scons-flags))) - (else - (format #t "test suite not run~%") - #t))) + (if tests? + (apply invoke "scons" test-target scons-flags) + (format #t "test suite not run~%")) + #t) (define* (install #:key outputs (scons-flags '()) #:allow-other-keys) "Install a given SCons application." - (zero? (apply system* "scons" "install" scons-flags))) + (apply invoke "scons" "install" scons-flags)) (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/svn.scm b/guix/build/svn.scm index 31c30edaf5..252d1d4ee5 100644 --- a/guix/build/svn.scm +++ b/guix/build/svn.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> +;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,23 +35,24 @@ (password #f)) "Fetch REVISION from URL into DIRECTORY. REVISION must be an integer, and a valid Subversion revision. Return #t on success, #f otherwise." - (and (zero? (apply system* svn-command - "checkout" "--non-interactive" - ;; Trust the server certificate. This is OK as we - ;; verify the checksum later. This can be removed when - ;; ca-certificates package is added. - "--trust-server-cert" "-r" (number->string revision) - `(,@(if (and user-name password) - (list (string-append "--username=" user-name) - (string-append "--password=" password)) - '()) - ,url ,directory))) - (with-directory-excursion directory - (begin - ;; The contents of '.svn' vary as a function of the current status - ;; of the repo. Since we want a fixed output, this directory needs - ;; to be taken out. - (delete-file-recursively ".svn") - #t)))) + (apply invoke svn-command + "checkout" "--non-interactive" + ;; Trust the server certificate. This is OK as we + ;; verify the checksum later. This can be removed when + ;; ca-certificates package is added. + "--trust-server-cert" "-r" (number->string revision) + `(,@(if (and user-name password) + (list (string-append "--username=" user-name) + (string-append "--password=" password)) + '()) + ,url ,directory)) + + ;; The contents of '.svn' vary as a function of the current status + ;; of the repo. Since we want a fixed output, this directory needs + ;; to be taken out. + (with-directory-excursion directory + (delete-file-recursively ".svn")) + + #t) ;;; svn.scm ends here diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm index f6b9b96b87..1c393ecd9d 100644 --- a/guix/build/texlive-build-system.scm +++ b/guix/build/texlive-build-system.scm @@ -34,11 +34,11 @@ ;; Code: (define (compile-with-latex format file) - (zero? (system* format - "-interaction=batchmode" - "-output-directory=build" - (string-append "&" format) - file))) + (invoke format + "-interaction=batchmode" + "-output-directory=build" + (string-append "&" format) + file)) (define* (configure #:key inputs #:allow-other-keys) (let* ((out (string-append (getcwd) "/.texlive-union")) @@ -81,6 +81,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (delete 'check) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index d7ed3d5177..c58a1afd1c 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +23,8 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-60) #:use-module (ice-9 ftw) #:use-module (ice-9 match) @@ -61,6 +63,7 @@ delete-file-recursively file-name-predicate find-files + false-if-file-not-found search-path-as-list set-path-environment-variable @@ -85,7 +88,14 @@ fold-port-matches remove-store-references wrap-program + invoke + invoke-error? + invoke-error-program + invoke-error-arguments + invoke-error-exit-status + invoke-error-term-signal + invoke-error-stop-signal locale-category->string)) @@ -396,6 +406,15 @@ also be included. If FAIL-ON-ERROR? is true, raise an exception upon error." stat) string<?))) +(define-syntax-rule (false-if-file-not-found exp) + "Evaluate EXP but return #f if it raises to 'system-error with ENOENT." + (catch 'system-error + (lambda () exp) + (lambda args + (if (= ENOENT (system-error-errno args)) + #f + (apply throw args))))) + ;;; ;;; Search paths. @@ -581,13 +600,25 @@ Where every <*-phase-name> is an expression evaluating to a symbol, and ((_ phases (add-after old-phase-name new-phase-name new-phase)) (alist-cons-after old-phase-name new-phase-name new-phase phases)))) +(define-condition-type &invoke-error &error + invoke-error? + (program invoke-error-program) + (arguments invoke-error-arguments) + (exit-status invoke-error-exit-status) + (term-signal invoke-error-term-signal) + (stop-signal invoke-error-stop-signal)) + (define (invoke program . args) - "Invoke PROGRAM with the given ARGS. Raise an error if the exit -code is non-zero; otherwise return #t." - (let ((status (apply system* program args))) - (unless (zero? status) - (error (format #f "program ~s exited with non-zero code" program) - status)) + "Invoke PROGRAM with the given ARGS. Raise an exception +if the exit code is non-zero; otherwise return #t." + (let ((code (apply system* program args))) + (unless (zero? code) + (raise (condition (&invoke-error + (program program) + (arguments args) + (exit-status (status:exit-val code)) + (term-signal (status:term-sig code)) + (stop-signal (status:stop-sig code)))))) #t)) diff --git a/guix/build/waf-build-system.scm b/guix/build/waf-build-system.scm index 85f0abcfd6..f0364e867d 100644 --- a/guix/build/waf-build-system.scm +++ b/guix/build/waf-build-system.scm @@ -70,6 +70,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/download.scm b/guix/download.scm index 55da2c1d37..50aa78fe0d 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -517,8 +517,8 @@ own. This helper makes it easier to deal with \"tar bombs\"." (mkdir #$output) (setenv "PATH" (string-append #$gzip "/bin")) (chdir #$output) - (zero? (system* (string-append #$tar "/bin/tar") - "xf" #$drv))) + (invoke (string-append #$tar "/bin/tar") + "xf" #$drv)) #:local-build? #t))) (define* (url-fetch/zipbomb url hash-algo hash @@ -546,8 +546,8 @@ own. This helper makes it easier to deal with \"zip bombs\"." #~(begin (mkdir #$output) (chdir #$output) - (zero? (system* (string-append #$unzip "/bin/unzip") - #$drv))) + (invoke (string-append #$unzip "/bin/unzip") + #$drv)) #:local-build? #t))) (define* (download-to-store store url #:optional (name (basename url)) diff --git a/guix/packages.scm b/guix/packages.scm index b5c0b60440..ab4b6278d6 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> @@ -519,9 +519,9 @@ specifies modules in scope when evaluating SNIPPET." ;; Use '--force' so that patches that do not apply perfectly are ;; rejected. Use '--no-backup-if-mismatch' to prevent making ;; "*.orig" file if a patch is applied with offset. - (zero? (system* (string-append #+patch "/bin/patch") - "--force" "--no-backup-if-mismatch" - #+@flags "--input" patch))) + (invoke (string-append #+patch "/bin/patch") + "--force" "--no-backup-if-mismatch" + #+@flags "--input" patch)) (define (first-file directory) ;; Return the name of the first file in DIRECTORY. @@ -546,64 +546,74 @@ specifies modules in scope when evaluating SNIPPET." #+decomp "/bin")) ;; SOURCE may be either a directory or a tarball. - (and (if (file-is-directory? #+source) - (let* ((store (%store-directory)) - (len (+ 1 (string-length store))) - (base (string-drop #+source len)) - (dash (string-index base #\-)) - (directory (string-drop base (+ 1 dash)))) - (mkdir directory) - (copy-recursively #+source directory) - #t) - #+(if (string=? decompression-type "unzip") - #~(zero? (system* "unzip" #+source)) - #~(zero? (system* (string-append #+tar "/bin/tar") - "xvf" #+source)))) - (let ((directory (first-file "."))) - (format (current-error-port) - "source is under '~a'~%" directory) - (chdir directory) - - (and (every apply-patch '#+patches) - #+@(if snippet - #~((let ((module (make-fresh-user-module))) - (module-use-interfaces! - module - (map resolve-interface '#+modules)) - ((@ (system base compile) compile) - '#+snippet - #:to 'value - #:opts %auto-compilation-options - #:env module))) - #~()) - - (begin (chdir "..") #t) - - (unless tar-supports-sort? - (call-with-output-file ".file_list" - (lambda (port) - (for-each (lambda (name) - (format port "~a~%" name)) - (find-files directory - #:directories? #t - #:fail-on-error? #t))))) - (zero? (apply system* - (string-append #+tar "/bin/tar") - "cvf" #$output - ;; The bootstrap xz does not support - ;; threaded compression (introduced in - ;; 5.2.0), but it ignores the extra flag. - (string-append "--use-compress-program=" - #+xz "/bin/xz --threads=0") - ;; avoid non-determinism in the archive - "--mtime=@0" - "--owner=root:0" - "--group=root:0" - (if tar-supports-sort? - `("--sort=name" - ,directory) - '("--no-recursion" - "--files-from=.file_list")))))))))) + (if (file-is-directory? #+source) + (let* ((store (%store-directory)) + (len (+ 1 (string-length store))) + (base (string-drop #+source len)) + (dash (string-index base #\-)) + (directory (string-drop base (+ 1 dash)))) + (mkdir directory) + (copy-recursively #+source directory)) + #+(if (string=? decompression-type "unzip") + #~(invoke "unzip" #+source) + #~(invoke (string-append #+tar "/bin/tar") + "xvf" #+source))) + + (let ((directory (first-file "."))) + (format (current-error-port) + "source is under '~a'~%" directory) + (chdir directory) + + (for-each apply-patch '#+patches) + + (let ((result #+(if snippet + #~(let ((module (make-fresh-user-module))) + (module-use-interfaces! + module + (map resolve-interface '#+modules)) + ((@ (system base compile) compile) + '#+snippet + #:to 'value + #:opts %auto-compilation-options + #:env module)) + #~#t))) + ;; Issue a warning unless the result is #t. + (unless (eqv? result #t) + (format (current-error-port) "\ +## WARNING: the snippet returned `~s'. Return values other than #t +## are deprecated. Please migrate this package so that its snippet +## reports errors by raising an exception, and otherwise returns #t.~%" + result)) + (unless result + (error "snippet returned false"))) + + (chdir "..") + + (unless tar-supports-sort? + (call-with-output-file ".file_list" + (lambda (port) + (for-each (lambda (name) + (format port "~a~%" name)) + (find-files directory + #:directories? #t + #:fail-on-error? #t))))) + (apply invoke + (string-append #+tar "/bin/tar") + "cvf" #$output + ;; The bootstrap xz does not support + ;; threaded compression (introduced in + ;; 5.2.0), but it ignores the extra flag. + (string-append "--use-compress-program=" + #+xz "/bin/xz --threads=0") + ;; avoid non-determinism in the archive + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + (if tar-supports-sort? + `("--sort=name" + ,directory) + '("--no-recursion" + "--files-from=.file_list"))))))) (let ((name (tarxz-name original-file-name))) (gexp->derivation name build diff --git a/guix/ui.scm b/guix/ui.scm index cb49a15c4d..c6d0704cfa 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2013, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> @@ -41,6 +41,12 @@ #:use-module ((guix licenses) #:select (license? license-name)) #:use-module ((guix build syscalls) #:select (free-disk-space terminal-columns)) + #:use-module ((guix build utils) + #:select (invoke-error? invoke-error-program + invoke-error-arguments + invoke-error-exit-status + invoke-error-term-signal + invoke-error-stop-signal)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) @@ -636,6 +642,16 @@ or remove one of them from the profile.") directories:~{ ~a~}~%") (file-search-error-file-name c) (file-search-error-search-path c))) + ((invoke-error? c) + (leave (G_ "program exited\ +~@[ with non-zero exit status ~a~]\ +~@[ terminated by signal ~a~]\ +~@[ stopped by signal ~a~]: ~s~%") + (invoke-error-exit-status c) + (invoke-error-term-signal c) + (invoke-error-stop-signal c) + (cons (invoke-error-program c) + (invoke-error-arguments c)))) ((and (error-location? c) (message-condition? c)) (format (current-error-port) (G_ "~a: error: ~a~%") |