aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am23
-rw-r--r--gnu/packages/attr.scm67
-rw-r--r--gnu/packages/autotools.scm6
-rw-r--r--gnu/packages/backup.scm3
-rw-r--r--gnu/packages/base.scm34
-rw-r--r--gnu/packages/bash.scm33
-rw-r--r--gnu/packages/bdw-gc.scm15
-rw-r--r--gnu/packages/cmake.scm2
-rw-r--r--gnu/packages/commencement.scm155
-rw-r--r--gnu/packages/compression.scm10
-rw-r--r--gnu/packages/cross-base.scm15
-rw-r--r--gnu/packages/databases.scm17
-rw-r--r--gnu/packages/emacs.scm3
-rw-r--r--gnu/packages/file.scm4
-rw-r--r--gnu/packages/flex.scm6
-rw-r--r--gnu/packages/gawk.scm6
-rw-r--r--gnu/packages/gcc.scm63
-rw-r--r--gnu/packages/gettext.scm66
-rw-r--r--gnu/packages/glib.scm4
-rw-r--r--gnu/packages/gnome.scm8
-rw-r--r--gnu/packages/gnupg.scm8
-rw-r--r--gnu/packages/guile.scm3
-rw-r--r--gnu/packages/haskell.scm6
-rw-r--r--gnu/packages/ld-wrapper.in66
-rw-r--r--gnu/packages/libffi.scm7
-rw-r--r--gnu/packages/linux.scm73
-rw-r--r--gnu/packages/multiprecision.scm28
-rw-r--r--gnu/packages/ncurses.scm38
-rw-r--r--gnu/packages/package-management.scm2
-rw-r--r--gnu/packages/patches/automake-regexp-syntax.patch34
-rw-r--r--gnu/packages/patches/emacs-source-date-epoch.patch20
-rw-r--r--gnu/packages/patches/findutils-absolute-paths.patch29
-rw-r--r--gnu/packages/patches/findutils-test-xargs.patch22
-rw-r--r--gnu/packages/patches/flex-bison-tests.patch24
-rw-r--r--gnu/packages/patches/gawk-fts-test.patch51
-rw-r--r--gnu/packages/patches/gnutls-doc-fix.patch546
-rw-r--r--gnu/packages/patches/grep-CVE-2015-1345.patch17
-rw-r--r--gnu/packages/patches/grep-timing-sensitive-test.patch15
-rw-r--r--gnu/packages/patches/libarchive-bsdtar-test.patch74
-rw-r--r--gnu/packages/patches/librsvg-tests.patch27
-rw-r--r--gnu/packages/patches/perl-CVE-2015-8607.patch68
-rw-r--r--gnu/packages/patches/perl-deterministic-ordering.patch29
-rw-r--r--gnu/packages/patches/perl-module-pluggable-search.patch25
-rw-r--r--gnu/packages/patches/perl-no-build-time.patch26
-rw-r--r--gnu/packages/patches/perl-no-sys-dirs.patch152
-rw-r--r--gnu/packages/patches/perl-source-date-epoch.patch19
-rw-r--r--gnu/packages/patches/procps-make-3.82.patch14
-rw-r--r--gnu/packages/patches/python-2.7-search-paths.patch6
-rw-r--r--gnu/packages/patches/python-3-search-paths.patch6
-rw-r--r--gnu/packages/pcre.scm2
-rw-r--r--gnu/packages/perl.scm34
-rw-r--r--gnu/packages/pkg-config.scm6
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/pulseaudio.scm11
-rw-r--r--gnu/packages/python.scm4
-rw-r--r--gnu/packages/ruby.scm176
-rw-r--r--gnu/packages/texinfo.scm1
-rw-r--r--gnu/packages/tls.scm24
-rw-r--r--gnu/packages/video.scm8
-rw-r--r--gnu/packages/web.scm5
-rw-r--r--gnu/packages/webkit.scm2
-rw-r--r--guix/build-system/gnu.scm8
-rw-r--r--guix/build/gnu-build-system.scm16
-rw-r--r--guix/build/haskell-build-system.scm98
-rw-r--r--guix/build/python-build-system.scm9
-rw-r--r--guix/build/ruby-build-system.scm13
-rw-r--r--guix/build/utils.scm9
-rw-r--r--guix/search-paths.scm6
-rw-r--r--tests/graph.scm2
69 files changed, 1238 insertions, 1175 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 543a825923..9c87ac89da 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -1,7 +1,7 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
-# Copyright © 2013, 2014, 2015 Mark H Weaver <mhw@netris.org>
+# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
#
# This file is part of GNU Guix.
#
@@ -414,6 +414,7 @@ dist_patch_DATA = \
gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \
gnu/packages/patches/audacity-fix-ffmpeg-binding.patch \
gnu/packages/patches/automake-skip-amhello-tests.patch \
+ gnu/packages/patches/automake-regexp-syntax.patch \
gnu/packages/patches/avahi-localstatedir.patch \
gnu/packages/patches/avidemux-install-to-lib.patch \
gnu/packages/patches/avrdude-fix-libusb.patch \
@@ -451,6 +452,7 @@ dist_patch_DATA = \
gnu/packages/patches/duplicity-test_selection-tmp.patch \
gnu/packages/patches/elfutils-tests-ptrace.patch \
gnu/packages/patches/emacs-exec-path.patch \
+ gnu/packages/patches/emacs-source-date-epoch.patch \
gnu/packages/patches/eudev-rules-directory.patch \
gnu/packages/patches/evilwm-lost-focus-bug.patch \
gnu/packages/patches/expat-CVE-2015-1283.patch \
@@ -461,13 +463,13 @@ dist_patch_DATA = \
gnu/packages/patches/fasthenry-spUtils.patch \
gnu/packages/patches/fasthenry-spSolve.patch \
gnu/packages/patches/fasthenry-spFactor.patch \
- gnu/packages/patches/findutils-absolute-paths.patch \
gnu/packages/patches/findutils-localstatedir.patch \
+ gnu/packages/patches/findutils-test-xargs.patch \
gnu/packages/patches/flashrom-use-libftdi1.patch \
- gnu/packages/patches/flex-bison-tests.patch \
gnu/packages/patches/flint-ldconfig.patch \
gnu/packages/patches/fltk-shared-lib-defines.patch \
gnu/packages/patches/freeimage-CVE-2015-0852.patch \
+ gnu/packages/patches/gawk-fts-test.patch \
gnu/packages/patches/gawk-shell.patch \
gnu/packages/patches/gcc-arm-link-spec-fix.patch \
gnu/packages/patches/gcc-cross-environment-variables.patch \
@@ -484,6 +486,7 @@ dist_patch_DATA = \
gnu/packages/patches/glib-tests-timer.patch \
gnu/packages/patches/glib-tests-gapplication.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
+ gnu/packages/patches/glibc-hurd-extern-inline.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
gnu/packages/patches/glibc-locales.patch \
gnu/packages/patches/glibc-locale-incompatibility.patch \
@@ -492,11 +495,10 @@ dist_patch_DATA = \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
gnu/packages/patches/gmp-faulty-test.patch \
gnu/packages/patches/gnucash-price-quotes-perl.patch \
- gnu/packages/patches/gnutls-doc-fix.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
gnu/packages/patches/gobject-introspection-girepository.patch \
- gnu/packages/patches/grep-CVE-2015-1345.patch \
+ gnu/packages/patches/grep-timing-sensitive-test.patch \
gnu/packages/patches/grub-CVE-2015-8370.patch \
gnu/packages/patches/grub-gets-undeclared.patch \
gnu/packages/patches/grub-freetype.patch \
@@ -529,6 +531,7 @@ dist_patch_DATA = \
gnu/packages/patches/liba52-link-with-libm.patch \
gnu/packages/patches/liba52-set-soname.patch \
gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \
+ gnu/packages/patches/libarchive-bsdtar-test.patch \
gnu/packages/patches/libarchive-CVE-2013-0211.patch \
gnu/packages/patches/libarchive-fix-lzo-test-case.patch \
gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \
@@ -544,7 +547,6 @@ dist_patch_DATA = \
gnu/packages/patches/libmad-armv7-thumb-pt2.patch \
gnu/packages/patches/libmad-frame-length.patch \
gnu/packages/patches/libmad-mips-newgcc.patch \
- gnu/packages/patches/librsvg-tests.patch \
gnu/packages/patches/libtheora-config-guess.patch \
gnu/packages/patches/libtool-skip-tests2.patch \
gnu/packages/patches/libsndfile-CVE-2014-9496.patch \
@@ -617,20 +619,23 @@ dist_patch_DATA = \
gnu/packages/patches/patchelf-rework-for-arm.patch \
gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
gnu/packages/patches/patch-hurd-path-max.patch \
+ gnu/packages/patches/perl-CVE-2015-8607.patch \
gnu/packages/patches/perl-autosplit-default-time.patch \
+ gnu/packages/patches/perl-deterministic-ordering.patch \
gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
- gnu/packages/patches/perl-module-pluggable-search.patch \
gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \
gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \
+ gnu/packages/patches/perl-no-build-time.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
+ gnu/packages/patches/perl-source-date-epoch.patch \
gnu/packages/patches/perl-tk-x11-discover.patch \
gnu/packages/patches/pidgin-add-search-path.patch \
gnu/packages/patches/pingus-sdl-libs-config.patch \
+ gnu/packages/patches/plink-1.07-unclobber-i.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \
- gnu/packages/patches/procps-make-3.82.patch \
gnu/packages/patches/pt-scotch-build-parallelism.patch \
gnu/packages/patches/pulseaudio-fix-mult-test.patch \
gnu/packages/patches/pulseaudio-longer-test-timeout.patch \
diff --git a/gnu/packages/attr.scm b/gnu/packages/attr.scm
index f4f6c46642..53766af06f 100644
--- a/gnu/packages/attr.scm
+++ b/gnu/packages/attr.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,46 +28,41 @@
(define-public attr
(package
(name "attr")
- (version "2.4.46")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/attr/attr-"
- version ".src.tar.gz"))
- (sha256
- (base32
- "07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw"))))
+ (version "2.4.47")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/attr/attr-"
+ version ".src.tar.gz"))
+ (sha256
+ (base32
+ "0nd8y0m6awc9ahv0ciiwf8gy54c8d3j51pw9xg7f7cn579jjyxr5"))))
(build-system gnu-build-system)
(arguments
`(#:phases
- (alist-cons-after
- 'configure 'patch-makefile-SHELL
- (lambda _
- (patch-makefile-SHELL "include/buildmacros"))
- (alist-replace
- 'install
- (lambda _
- (zero? (system* "make"
- "install"
- "install-lib"
- "install-dev")))
+ (modify-phases %standard-phases
+ (add-after 'configure 'patch-makefile-SHELL
+ (lambda _
+ (patch-makefile-SHELL "include/buildmacros")))
+ (replace 'install
+ (lambda _
+ (zero? (system* "make"
+ "install"
+ "install-lib"
+ "install-dev"))))
+ (replace 'check
+ (lambda* (#:key target #:allow-other-keys)
+ ;; Use the right shell.
+ (substitute* "test/run"
+ (("/bin/sh")
+ (which "bash")))
- ;; When building natively, adjust the test cases.
- ,(if (%current-target-system)
- '%standard-phases
- '(alist-replace 'check
- (lambda _
- ;; Use the right shell.
- (substitute* "test/run"
- (("/bin/sh")
- (which "bash")))
+ ;; When building natively, run the tests.
+ (unless target
+ (system* "make" "tests" "-C" "test"))
- (system* "make" "tests" "-C" "test")
-
- ;; XXX: Ignore the test result since this is
- ;; dependent on the underlying file system.
- #t)
- %standard-phases))))))
+ ;; 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.
(if (%current-target-system)
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 0d9a5b5873..598624ccdc 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -195,7 +195,9 @@ output is indexed in many ways to simplify browsing.")
(base32
"0dl6vfi2lzz8alnklwxzfz624b95hb1ipjvd3mk177flmddcf24r"))
(patches
- (list (search-patch "automake-skip-amhello-tests.patch")))))
+ (map search-patch
+ '("automake-regexp-syntax.patch"
+ "automake-skip-amhello-tests.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,(autoconf-wrapper))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 40cfc4ee14..aa8ccbce69 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -148,7 +148,8 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(patches
(list (search-patch "libarchive-mtree-filename-length-fix.patch")
(search-patch "libarchive-fix-lzo-test-case.patch")
- (search-patch "libarchive-CVE-2013-0211.patch")))))
+ (search-patch "libarchive-CVE-2013-0211.patch")
+ (search-patch "libarchive-bsdtar-test.patch")))))
(build-system gnu-build-system)
;; TODO: Add -L/path/to/nettle in libarchive.pc.
(inputs
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 61eeba3cee..f8ea80b5e7 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1,10 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -73,16 +74,18 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
- (version "2.21")
+ (version "2.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
- "1pp5n15qwxrw1pibwjhhgsibyv5cafhamf8lwzjygs6y00fa2i2j"))
- (patches (list (search-patch "grep-CVE-2015-1345.patch")))))
+ "1srn321x7whlhs5ks36zlcrrmj4iahll8fxwsh1vbz3v04px54fa"))
+ (patches
+ (list (search-patch "grep-timing-sensitive-test.patch")))))
(build-system gnu-build-system)
+ (native-inputs `(("perl" ,perl))) ;some of the tests require it
(synopsis "Print lines matching a pattern")
(description
"grep is a tool for finding text inside files. Text is found by
@@ -206,17 +209,17 @@ interactive means to merge two files.")
(define-public findutils
(package
(name "findutils")
- (version "4.4.2")
+ (version "4.6.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/findutils/findutils-"
version ".tar.gz"))
(sha256
(base32
- "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3"))
+ "178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y"))
(patches (map search-patch
- '("findutils-absolute-paths.patch"
- "findutils-localstatedir.patch")))))
+ '("findutils-localstatedir.patch"
+ "findutils-test-xargs.patch")))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list
@@ -595,6 +598,15 @@ store.")
(string-append "#define _PATH_BSHELL \""
bash "/bin/bash\"\n")))
+ ;; Nscd uses __DATE__ and __TIME__ to create a string to
+ ;; make sure the client and server come from the same
+ ;; libc. Use something deterministic instead.
+ (substitute* "nscd/nscd_stat.c"
+ (("static const char compilation\\[21\\] =.*$")
+ (string-append
+ "static const char compilation[21] = \""
+ (string-take (basename out) 20) "\";\n")))
+
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
@@ -862,7 +874,7 @@ command.")
(define-public tzdata
(package
(name "tzdata")
- (version "2015c")
+ (version "2015g")
(source (origin
(method url-fetch)
(uri (string-append
@@ -870,7 +882,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "0nin48g5dmkfgckp25bngxchn3sw3yyjss5sq7gs5xspbxgsq3w6"))))
+ "0qb1awqrn3215zd2jikpqnmkzrxwfjf0d3dw2xmnk4c40yzws8xr"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -917,7 +929,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "0bplibiy70dvlrhwqzkzxgmg81j6d2kklvjgi2f1g2zz1nkb3vkz"))))))
+ "1i3y1kzjiz2j62c7vd4wf85983sqk9x9lg3473njvbdz4kph5r0q"))))))
(home-page "http://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index bdb5a760f7..15909c7e88 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -92,7 +93,11 @@
(36 "0z6jbyy70lfdm6d3x0sbazbqdxb3xnpn9bmz7madpvrnbd284pxc")
(37 "04sqr8zkl6s5fccfvb775ppn3ldij5imria9swc39aq0fkfp1w9k")
(38 "0rv3g14mpgv8br267bf7rmgqlgwnc4v6g3g8y0sjba571i8amgmd")
- (39 "1v3l3vkc3g2b6fjycqwlakr8xhiw6bmw6q0zd6bi0m0m4bnxr55b")))
+ (39 "1v3l3vkc3g2b6fjycqwlakr8xhiw6bmw6q0zd6bi0m0m4bnxr55b")
+ (40 "0sypv66vsldmc95gwvf7ylz1k7y37vnvdsjg8ajjr6b2j9mkkfw4")
+ (41 "06ic2gdpbi1afik3wqf9d4vh95if4bz8bmhcgr555621dsb35i2f")
+ (42 "06a90k0p6bqc4wk2dsmapna69124an76xvlnlj3xm497vci968dc")))
+
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
number/base32-hash tuples, directly usable in the 'patch-series' form."
@@ -143,17 +148,18 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
;; guile-bash expect.
(let ((include (string-append (assoc-ref outputs "include")
"/include/bash"))
+ (includes "^\\./include/[^/]+\\.h$")
(headers "^\\./(builtins/|lib/glob/|lib/tilde/|)[^/]+\\.h$"))
(mkdir-p include)
(for-each (lambda (file)
- (when ((@ (ice-9 regex) string-match) headers file)
- (let ((directory (string-append include "/"
- (dirname file))))
- (mkdir-p directory)
- (copy-file file
- (string-append directory "/"
- (basename file))))))
+ (when (string-match includes file)
+ (install-file file include))
+ (when (string-match headers file)
+ (install-file file
+ (string-append include "/"
+ (dirname file)))))
(find-files "." "\\.h$"))
+ (delete-file (string-append include "/" "y.tab.h"))
#t)))
(version "4.3"))
(package
@@ -177,8 +183,9 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
(build-system gnu-build-system)
(outputs '("out"
- "include")) ;headers used by extensions
- (native-inputs `(("bison" ,bison))) ;to rebuild the parser
+ "doc" ;1.7 MiB of HTML and extra files
+ "include")) ;headers used by extensions
+ (native-inputs `(("bison" ,bison))) ;to rebuild the parser
(inputs `(("readline" ,readline)
("ncurses" ,ncurses))) ;TODO: add texinfo
(arguments
@@ -199,10 +206,14 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
;; for now.
#:tests? #f
+ #:modules ((ice-9 regex)
+ (guix build utils)
+ (guix build gnu-build-system))
+
#:phases (modify-phases %standard-phases
(add-after 'install 'post-install ,post-install-phase)
(add-after 'install 'install-headers
- ,install-headers-phase))))
+ ,install-headers-phase))))
(synopsis "The GNU Bourne-Again SHell")
(description
"Bash is the shell, or command-line interpreter, of the GNU system. It
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index f4bbc64569..992a11bac0 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -39,7 +39,9 @@
(arguments
;; Make it so that we don't rely on /proc. This is especially useful in
;; an initrd run before /proc is mounted.
- '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES")))
+ '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES"
+ ;; Install gc_cpp.h et al.
+ "--enable-cplusplus")))
(outputs '("out" "debug"))
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
for C and C++")
@@ -103,11 +105,4 @@ lock-free code, experiment with thread programming paradigms, etc.")
(inputs `(("libatomic-ops" ,libatomic-ops)))
;; 'USE_LIBC_PRIVATES' is now the default.
- (arguments '())))
-
-;;; TODO: Remove this package once libgc is updated from core-updates.
-(define-public libgc-for-c++
- (package (inherit libgc)
- (name "libgc-cxx")
- (arguments
- '(#:configure-flags '("--enable-cplusplus"))))) ;install gc_cpp.h et al.
+ (arguments '(#:configure-flags '("--enable-cplusplus")))))
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 2efce6fd87..d75b9f62ef 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -77,7 +77,7 @@ archive_write_set_format_shar.c"
;; Help cmake's bootstrap process to find system libraries
(begin
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
- (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))
+ (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
;; Get verbose output from failed tests
(setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE")))
(alist-replace
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 73b27a290a..1928360e2e 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -92,12 +92,15 @@
,@%bootstrap-inputs)
#:guile %bootstrap-guile)))
(package (inherit p)
+ (name "diffutils-boot0")
(arguments `(#:tests? #f ; the test suite needs diffutils
,@(package-arguments p)))))))
(define findutils-boot0
(package-with-bootstrap-guile
- (package-with-explicit-inputs findutils
+ (package-with-explicit-inputs (package
+ (inherit findutils)
+ (name "findutils-boot0"))
`(("make" ,gnu-make-boot0)
("diffutils" ,diffutils-boot0) ; for tests
,@%bootstrap-inputs)
@@ -106,7 +109,9 @@
(define file-boot0
(package-with-bootstrap-guile
- (package-with-explicit-inputs file
+ (package-with-explicit-inputs (package
+ (inherit file)
+ (name "file-boot0"))
`(("make" ,gnu-make-boot0)
,@%bootstrap-inputs)
(current-source-location)
@@ -204,7 +209,8 @@
"--disable-libssp"
"--disable-libquadmath"
"--disable-decimal-float")
- (remove (cut string-match "--enable-languages.*" <>)
+ (remove (cut string-match
+ "--(with-system-zlib|enable-languages.*)" <>)
,flags)))
((#:phases phases)
`(alist-cons-after
@@ -230,7 +236,7 @@
(package-full-name lib)
char-set:letter)
,(package-name lib)))
- (list gmp mpfr mpc))))
+ (list gmp-6.0 mpfr mpc))))
(alist-cons-after
'install 'symlink-libgcc_eh
(lambda* (#:key outputs #:allow-other-keys)
@@ -244,7 +250,7 @@
(symlink "libgcc.a" "libgcc_eh.a"))))
,phases))))))
- (inputs `(("gmp-source" ,(package-source gmp))
+ (inputs `(("gmp-source" ,(package-source gmp-6.0))
("mpfr-source" ,(package-source mpfr))
("mpc-source" ,(package-source mpc))
("binutils-cross" ,binutils-boot0)
@@ -259,11 +265,25 @@
(package-native-inputs gcc))))))
(define perl-boot0
- (package-with-bootstrap-guile
- (package-with-explicit-inputs perl
- %boot0-inputs
- (current-source-location)
- #:guile %bootstrap-guile)))
+ (let ((perl (package
+ (inherit perl)
+ (name "perl-boot0")
+ (arguments
+ (substitute-keyword-arguments (package-arguments perl)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; Pthread support is missing in the bootstrap compiler
+ ;; (broken spec file), so disable it.
+ (add-before 'configure 'disable-pthreads
+ (lambda _
+ (substitute* "Configure"
+ (("^libswanted=(.*)pthread" _ before)
+ (string-append "libswanted=" before))))))))))))
+ (package-with-bootstrap-guile
+ (package-with-explicit-inputs perl
+ %boot0-inputs
+ (current-source-location)
+ #:guile %bootstrap-guile))))
(define (linux-libre-headers-boot0)
"Return Linux-Libre header files for the bootstrap environment."
@@ -285,7 +305,7 @@
;; Also, use %BOOT0-INPUTS to avoid building Perl once more.
(let ((texinfo (package (inherit texinfo)
(native-inputs '())
- (inputs (alist-delete "ncurses" (package-inputs texinfo))))))
+ (inputs `(("perl" ,perl-boot0))))))
(package-with-bootstrap-guile
(package-with-explicit-inputs texinfo %boot0-inputs
(current-source-location)
@@ -409,14 +429,22 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(current-source-location)
#:guile %bootstrap-guile)))
(bison (package (inherit bison)
- (native-inputs `(("perl" ,perl-boot0)))
(propagated-inputs `(("m4" ,m4)))
(inputs '()) ;remove Flex...
- (arguments '(#:tests? #f))))) ;... and thus disable tests
- (package-with-bootstrap-guile
- (package-with-explicit-inputs bison %boot0-inputs
- (current-source-location)
- #:guile %bootstrap-guile))))
+ (arguments
+ '(#:tests? #f ;... and thus disable tests
+
+ ;; Zero timestamps in liby.a; this must be done
+ ;; explicitly here because the bootstrap Binutils don't
+ ;; do that (default is "cru".)
+ #:make-flags '("ARFLAGS=crD" "RANLIB=ranlib -D"
+ "V=1"))))))
+ (package
+ (inherit (package-with-bootstrap-guile
+ (package-with-explicit-inputs bison %boot0-inputs
+ (current-source-location)
+ #:guile %bootstrap-guile)))
+ (native-inputs `(("perl" ,perl-boot0))))))
(define static-bash-for-glibc
;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co.
@@ -424,18 +452,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
glibc-final-with-bootstrap-bash
(car (assoc-ref %boot1-inputs "bash"))))
(bash (package (inherit static-bash)
- (native-inputs `(("bison" ,bison-boot1)))
(arguments
`(#:guile ,%bootstrap-guile
- ,@(package-arguments static-bash))))))
- (package-with-bootstrap-guile
- (package-with-explicit-inputs bash
- `(("gcc" ,gcc)
- ("libc" ,glibc-final-with-bootstrap-bash)
- ,@(fold alist-delete %boot1-inputs
- '("gcc" "libc")))
- (current-source-location)
- #:guile %bootstrap-guile))))
+ ,@(package-arguments static-bash)))))
+ (inputs `(("gcc" ,gcc)
+ ("libc" ,glibc-final-with-bootstrap-bash)
+ ,@(fold alist-delete %boot1-inputs
+ '("gcc" "libc")))))
+ (package
+ (inherit (package-with-bootstrap-guile
+ (package-with-explicit-inputs bash inputs
+ (current-source-location)
+ #:guile %bootstrap-guile)))
+ (native-inputs `(("bison" ,bison-boot1))))))
(define gettext-boot0
;; A minimal gettext used during bootstrap.
@@ -527,7 +556,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(arguments
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
-
+ #:allowed-references ("out")
#:out-of-source? #t
#:phases (alist-cons-before
'configure 'chdir
@@ -549,6 +578,25 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(propagated-inputs '())
(synopsis "GNU C++ standard library (intermediate)"))))
+(define zlib-final
+ ;; Zlib used by GCC-FINAL.
+ (package-with-bootstrap-guile
+ (package
+ (inherit zlib)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:implicit-inputs? #f
+ #:allowed-references ("out" ,glibc-final)
+ ,@(package-arguments zlib)))
+ (inputs %boot2-inputs))))
+
+(define ld-wrapper-boot3
+ ;; A linker wrapper that uses the bootstrap Guile.
+ (make-ld-wrapper "ld-wrapper-boot3"
+ #:binutils binutils-final
+ #:guile %bootstrap-guile
+ #:bash (car (assoc-ref %boot2-inputs "bash"))))
+
(define gcc-final
;; The final GCC.
(package (inherit gcc-boot0)
@@ -563,7 +611,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
- #:allowed-references ("out" "lib"
+ #:allowed-references ("out" "lib" ,zlib-final
,glibc-final ,static-bash-for-glibc)
;; Things like libasan.so and libstdc++.so NEED ld.so for some
@@ -583,18 +631,16 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
((_ rest ...)
(loop rest)))))
((#:make-flags flags)
- ;; Since $LIBRARY_PATH and $CPATH are not honored, add the
- ;; relevant flags.
- `(cons (string-append "CPPFLAGS=-I"
- (assoc-ref %build-inputs "libstdc++")
- "/include")
- (map (lambda (flag)
- (if (string-prefix? "LDFLAGS=" flag)
- (string-append flag " -L"
- (assoc-ref %build-inputs "libstdc++")
- "/lib")
- flag))
- ,flags)))
+ ;; Since $LIBRARY_PATH is not honored, add the relevant flags.
+ `(let ((zlib (assoc-ref %build-inputs "zlib")))
+ (map (lambda (flag)
+ (if (string-prefix? "LDFLAGS=" flag)
+ (string-append flag " -L"
+ (assoc-ref %build-inputs "libstdc++")
+ "/lib -L" zlib "/lib -Wl,-rpath="
+ zlib "/lib")
+ flag))
+ ,flags)))
((#:phases phases)
`(alist-delete 'symlink-libgcc_eh ,phases)))))
@@ -606,20 +652,15 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("static-bash" ,static-bash-for-glibc)
,@(package-native-inputs gcc-boot0)))
- (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp)))
+ (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
("mpfr-source" ,(package-source mpfr))
("mpc-source" ,(package-source mpc))
+ ("ld-wrapper" ,ld-wrapper-boot3)
("binutils" ,binutils-final)
("libstdc++" ,libstdc++)
+ ("zlib" ,zlib-final)
,@%boot2-inputs))))
-(define ld-wrapper-boot3
- ;; A linker wrapper that uses the bootstrap Guile.
- (make-ld-wrapper "ld-wrapper-boot3"
- #:binutils binutils-final
- #:guile %bootstrap-guile
- #:bash (car (assoc-ref %boot2-inputs "bash"))))
-
(define %boot3-inputs
;; 4th stage inputs.
`(("gcc" ,gcc-final)
@@ -629,11 +670,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define bash-final
;; Link with `-static-libgcc' to make sure we don't retain a reference
;; to the bootstrap GCC.
- (package-with-bootstrap-guile
- (package-with-explicit-inputs (static-libgcc-package bash)
- %boot3-inputs
- (current-source-location)
- #:guile %bootstrap-guile)))
+ (package
+ (inherit (package-with-bootstrap-guile
+ (package-with-explicit-inputs (static-libgcc-package bash)
+ %boot3-inputs
+ (current-source-location)
+ #:guile %bootstrap-guile)))
+ (native-inputs `(("bison" ,bison-boot1)))))
(define %boot4-inputs
;; Now use the final Bash.
@@ -703,7 +746,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; The final grep. Gzip holds a reference to it (via zgrep), so it must be
;; built before gzip.
(package-with-bootstrap-guile
- (package-with-explicit-inputs grep
+ (package-with-explicit-inputs (package
+ (inherit grep)
+ (native-inputs `(("perl" ,perl-boot0))))
%boot5-inputs
(current-source-location)
#:guile guile-final)))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index fd3a9ce98e..7d22095df1 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
-;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,7 +40,7 @@
(define-public zlib
(package
(name "zlib")
- (version "1.2.7")
+ (version "1.2.8")
(source
(origin
(method url-fetch)
@@ -50,7 +50,7 @@
version ".tar.gz")))
(sha256
(base32
- "1i96gsdvxqb6skp9a58bacf1wxamwi9m9pg4yn7cpf7g7239r77s"))))
+ "039agw5rqvqny92cpkrfn243x2gd4xn13hs3xi6isk55d2vqqr9n"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
@@ -260,7 +260,7 @@ compressed with pbzip2 can be decompressed with bzip2).")
(define-public xz
(package
(name "xz")
- (version "5.0.4")
+ (version "5.2.2")
(source (origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -269,7 +269,7 @@ compressed with pbzip2 can be decompressed with bzip2).")
version ".tar.gz")))
(sha256
(base32
- "1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n"))))
+ "18h2k4jndhzjs8ln3a54qdnfv59y6spxiwh9gpaqniph6iflvpvk"))))
(build-system gnu-build-system)
(synopsis "General-purpose data compression")
(description
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index d64cdd1272..8bd599c25a 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.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, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -105,11 +105,12 @@ may be either a libc package or #f.)"
"--disable-libcilkrts")
`( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static"
+ "--enable-languages=c,c++"
- ;; Disable C++ because libstdc++'s configure
- ;; script otherwise fails with "Link tests are not
- ;; allowed after GCC_NO_EXECUTABLES."
- "--enable-languages=c"
+ ;; libstdc++ cannot be built at this stage
+ ;; ("Link tests are not allowed after
+ ;; GCC_NO_EXECUTABLES.").
+ "--disable-libstdc++-v3"
"--disable-threads" ;libgcc, would need libc
"--disable-libatomic"
@@ -181,12 +182,14 @@ may be either a libc package or #f.)"
(string-append libc "/lib"))
(let ((cpath (search-path-as-string->list
- (getenv "CPATH")))
+ (getenv "C_INCLUDE_PATH")))
(libpath (search-path-as-string->list
(getenv "LIBRARY_PATH"))))
(setenv "CPATH"
(list->search-path-as-string
(remove cross? cpath) ":"))
+ (for-each unsetenv
+ '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
(setenv "LIBRARY_PATH"
(list->search-path-as-string
(remove cross? libpath) ":"))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 9945273830..b36f5d8c16 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -6,6 +6,8 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +26,7 @@
(define-module (gnu packages databases)
#:use-module (gnu packages)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages perl)
#:use-module (gnu packages language)
#:use-module (gnu packages linux)
@@ -308,16 +311,18 @@ pictures, sounds, or video.")
;; Running tests in parallel leads to test failures and crashes in
;; torture/utils.
- (arguments '(#:parallel-tests? #f))
+ (arguments '(#:parallel-tests? #f
+ #:configure-flags
+ (list (string-append "--with-bash-headers="
+ (assoc-ref %build-inputs "bash:include")
+ "/include/bash"))))
(native-inputs `(("emacs" ,emacs-no-x)
("bc" ,bc)
+ ("bash:include" ,bash "include")
("libuuid", util-linux)))
;; TODO: Add more optional inputs.
- ;; FIXME: Our Bash doesn't have development headers (need for the 'readrec'
- ;; built-in command), but it's not clear how to get them installed.
- ;; See <https://lists.gnu.org/archive/html/bug-bash/2014-03/msg00125.html>.
(inputs `(("curl" ,curl)
("libgcrypt" ,libgcrypt)
("check" ,check)))
@@ -334,7 +339,7 @@ types are supported, as is encryption.")
(define-public sqlite
(package
(name "sqlite")
- (version "3.8.11.1")
+ (version "3.10.0")
(source (origin
(method url-fetch)
;; TODO: Download from sqlite.org once this bug :
@@ -365,7 +370,7 @@ types are supported, as is encryption.")
))
(sha256
(base32
- "1dnkl4qr1dgaprbyf3jddfiynkhxnin86qabni47wjlc0fnb16gv"))))
+ "0hhhv6si0pyf5i8bv7a71953m0b4gk6s3j2h09caf7vif0njkk23"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(arguments
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ce599bca66..2b1152a54d 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -70,7 +70,8 @@
(sha256
(base32
"0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
- (patches (list (search-patch "emacs-exec-path.patch")))))
+ (patches (list (search-patch "emacs-exec-path.patch")
+ (search-patch "emacs-source-date-epoch.patch")))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index 161df544de..90e9a70626 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -27,14 +27,14 @@
(define-public file
(package
(name "file")
- (version "5.22")
+ (version "5.25")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.astron.com/pub/file/file-"
version ".tar.gz"))
(sha256
(base32
- "02zw14hw3gqlw91w2f2snbirvyrp7r83irvnnkjcb25q9kjaiqy4"))))
+ "1jhfi5mivdnqvry5la5q919l503ahwdwbf3hjhiv97znccakhd9p"))))
(build-system gnu-build-system)
;; When cross-compiling, this package depends upon a native install of
diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm
index 7988e930e7..f8d5ccd032 100644
--- a/gnu/packages/flex.scm
+++ b/gnu/packages/flex.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,15 +32,14 @@
(define flex
(package
(name "flex")
- (version "2.5.37")
+ (version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/flex/flex-"
version ".tar.bz2"))
(sha256
(base32
- "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp"))
- (patches (list (search-patch "flex-bison-tests.patch")))))
+ "1sdqx63yadindzafrq1w31ajblf9gl1c301g068s20s7bbpi3ri4"))))
(build-system gnu-build-system)
(inputs
(let ((bison-for-tests
diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 6bfea34667..8f2805cd4b 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -19,6 +19,7 @@
(define-module (gnu packages gawk)
#:use-module (guix licenses)
+ #:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages libsigsegv)
#:use-module (guix packages)
@@ -34,7 +35,8 @@
(uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz"))
(sha256
- (base32 "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3"))))
+ (base32 "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3"))
+ (patches (list (search-patch "gawk-fts-test.patch")))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; test suite fails in parallel
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 2848e4343a..832e57bc77 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -99,6 +99,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
'("--enable-plugin"
"--enable-languages=c,c++"
"--disable-multilib"
+ "--with-system-zlib"
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
@@ -293,8 +294,16 @@ where the OS part is overloaded to denote a specific ABI---into GCC
%standard-phases))))
(native-search-paths
+ ;; Use the language-specific variables rather than 'CPATH' because they
+ ;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'.
+ ;; The intent is to allow headers that are in the search path to be
+ ;; treated as "system headers" (headers exempt from warnings) just like
+ ;; the typical /usr/include headers on an FHS system.
(list (search-path-specification
- (variable "CPATH")
+ (variable "C_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "CPLUS_INCLUDE_PATH")
(files '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
@@ -408,13 +417,18 @@ using compilers other than GCC."
(define-public libiberty
(make-libiberty gcc))
-(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
- "Return a custom version of GCC that supports LANGUAGES."
+(define* (custom-gcc gcc name languages
+ #:optional
+ (search-paths (package-native-search-paths gcc))
+ #:key (separate-lib-output? #t))
+ "Return a custom version of GCC that supports LANGUAGES. Use SEARCH-PATHS
+as the 'native-search-paths' field."
(package (inherit gcc)
(name name)
(outputs (if separate-lib-output?
(package-outputs gcc)
(delete "lib" (package-outputs gcc))))
+ (native-search-paths search-paths)
(arguments
(substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
(guix build utils)
@@ -428,20 +442,37 @@ using compilers other than GCC."
(remove (cut string-match "--enable-languages.*" <>)
,flags)))))))
+(define %generic-search-paths
+ ;; This is the language-neutral search path for GCC. Entries in $CPATH are
+ ;; not considered "system headers", which means GCC can raise warnings for
+ ;; issues in those headers. 'CPATH' is the only one that works for
+ ;; front-ends not in the C family.
+ (list (search-path-specification
+ (variable "CPATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64")))))
+
(define-public gfortran-4.8
- (custom-gcc gcc-4.8 "gfortran" '("fortran")))
+ (custom-gcc gcc-4.8 "gfortran" '("fortran")
+ %generic-search-paths))
(define-public gfortran-4.9
- (custom-gcc gcc-4.9 "gfortran" '("fortran")))
+ (custom-gcc gcc-4.9 "gfortran" '("fortran")
+ %generic-search-paths))
(define-public gfortran
- (custom-gcc gcc "gfortran" '("fortran")))
+ (custom-gcc gcc "gfortran" '("fortran")
+ %generic-search-paths))
(define-public gfortran-5
- (custom-gcc gcc-5 "gfortran" '("fortran")))
+ (custom-gcc gcc-5 "gfortran" '("fortran")
+ %generic-search-paths))
(define-public gccgo-4.8
(custom-gcc gcc-4.8 "gccgo" '("go")
+ %generic-search-paths
;; Suppress the separate "lib" output, because otherwise the
;; "lib" and "out" outputs would refer to each other, creating
;; a cyclic dependency. <http://debbugs.gnu.org/18101>
@@ -468,6 +499,8 @@ using compilers other than GCC."
(native-inputs
`(("dejagnu" ,dejagnu)
,@(package-native-inputs gcc)))
+ (native-search-paths %generic-search-paths)
+
;; Suppress the separate "lib" output, because otherwise the
;; "lib" and "out" outputs would refer to each other, creating
;; a cyclic dependency. <http://debbugs.gnu.org/18101>
@@ -551,10 +584,22 @@ using compilers other than GCC."
"1k9lgm3qamf6zy534pa2zwskr8mpiqrngbv1vw9j4y1ghrdyf1lm"))))
(define-public gcc-objc-4.8
- (custom-gcc gcc-4.8 "gcc-objc" '("objc")))
+ (custom-gcc gcc-4.8 "gcc-objc" '("objc")
+ (list (search-path-specification
+ (variable "OBJC_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64"))))))
(define-public gcc-objc++-4.8
- (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")))
+ (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
+ (list (search-path-specification
+ (variable "OBJCPLUS_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64"))))))
(define (make-libstdc++-doc gcc)
"Return a package with the libstdc++ documentation for GCC."
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 14dedc51b5..7cd1ab73e7 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,50 +41,51 @@
(define-public gnu-gettext
(package
(name "gettext")
- (version "0.19.6")
+ (version "0.19.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
- "0pb9vp4ifymvdmc31ks3xxcnfqgzj8shll39czmk8c1splclqjzd"))))
+ "0gy2b2aydj8r0sapadnjw8cmb8j2rynj28d5qs1mfa800njd51jk"))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "doc")) ;8 MiB of HTML
(inputs
`(("expat" ,expat)))
(arguments
- `(#:phases (alist-cons-before
- 'check 'patch-tests
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((bash (which "sh")))
- ;; Some of the files we're patching are
- ;; ISO-8859-1-encoded, so choose it as the default
- ;; encoding so the byte encoding is preserved.
- (with-fluids ((%default-port-encoding #f))
- (substitute*
- (find-files "gettext-tools/tests"
- "^(lang-sh|msg(exec|filter)-[0-9])")
- (("#![[:blank:]]/bin/sh")
- (format #f "#!~a" bash)))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'patch-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((bash (which "sh")))
+ ;; Some of the files we're patching are
+ ;; ISO-8859-1-encoded, so choose it as the default
+ ;; encoding so the byte encoding is preserved.
+ (with-fluids ((%default-port-encoding #f))
+ (substitute*
+ (find-files "gettext-tools/tests"
+ "^(lang-sh|msg(exec|filter)-[0-9])")
+ (("#![[:blank:]]/bin/sh")
+ (format #f "#!~a" bash)))
- (substitute* (cons "gettext-tools/src/msginit.c"
- (find-files "gettext-tools/gnulib-tests"
- "posix_spawn"))
- (("/bin/sh")
- bash))
+ (substitute* (cons "gettext-tools/src/msginit.c"
+ (find-files "gettext-tools/gnulib-tests"
+ "posix_spawn"))
+ (("/bin/sh")
+ bash))
- (substitute* "gettext-tools/src/project-id"
- (("/bin/pwd")
- "pwd")))))
- (alist-cons-before
- 'configure 'link-expat
- (lambda _
- ;; Gettext defaults to opening expat via dlopen on
- ;; "Linux". Change to link directly.
- (substitute* "gettext-tools/configure"
- (("LIBEXPAT=\"-ldl\"") "LIBEXPAT=\"-ldl -lexpat\"")
- (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\"")))
- %standard-phases))
+ (substitute* "gettext-tools/src/project-id"
+ (("/bin/pwd")
+ "pwd"))))))
+ (add-before 'configure 'link-expat
+ (lambda _
+ ;; Gettext defaults to opening expat via dlopen on
+ ;; "Linux". Change to link directly.
+ (substitute* "gettext-tools/configure"
+ (("LIBEXPAT=\"-ldl\"") "LIBEXPAT=\"-ldl -lexpat\"")
+ (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\"")))))
;; When tests fail, we want to know the details.
#:make-flags '("VERBOSE=yes")))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 146d3f563b..c5eea22845 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -251,10 +251,10 @@ dynamic loading, and an object system.")
("cairo" ,cairo)
("flex" ,flex)
("glib" ,glib)
- ("pkg-config" ,pkg-config)
("python-2" ,python-2)))
(native-inputs
- `(("glib" ,glib "bin")))
+ `(("glib" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
(propagated-inputs
`(;; In practice, GIR users will need libffi when using
;; gobject-introspection.
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9ce750ddef..05efe0ba97 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;;
@@ -858,7 +858,7 @@ dealing with different structured file formats.")
(define-public librsvg
(package
(name "librsvg")
- (version "2.40.11")
+ (version "2.40.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -866,9 +866,7 @@ dealing with different structured file formats.")
name "-" version ".tar.xz"))
(sha256
(base32
- "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1"))
- (patches
- (list (search-patch "librsvg-tests.patch")))))
+ "014q7gz6mgfa7pfn0lr13qqv568ad8j1sw9d4vksnpazq0zajvjd"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index c17e64d474..c1a6d75569 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -46,7 +46,7 @@
(define-public libgpg-error
(package
(name "libgpg-error")
- (version "1.19")
+ (version "1.21")
(source
(origin
(method url-fetch)
@@ -54,7 +54,7 @@
version ".tar.bz2"))
(sha256
(base32
- "12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk"))))
+ "0kdq2cbnk84fr4jqcv689rlxpbyl6bda2cn6y3ll19v3mlydpnxp"))))
(build-system gnu-build-system)
(home-page "http://gnupg.org")
(synopsis "Library of error values for GnuPG components")
@@ -68,14 +68,14 @@ Daemon and possibly more in the future.")
(define-public libgcrypt
(package
(name "libgcrypt")
- (version "1.6.3")
+ (version "1.6.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
version ".tar.bz2"))
(sha256
(base32
- "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21"))))
+ "09k06gs27gxfha07sa9rpf4xh6mvphj9sky7n09ymx75w9zjrg69"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error-host" ,libgpg-error)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4be237cd65..861a18fce8 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -174,7 +174,8 @@ without requiring the source code to be rewritten.")
(files '("share/guile/site/2.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
- (files '("share/guile/site/2.0")))))
+ (files '("lib/guile/2.0/ccache"
+ "share/guile/site/2.0")))))
(synopsis "Scheme implementation intended especially for extensions")
(description
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 843a428dc6..c3e0a6100b 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -243,6 +243,12 @@
(string-append ghc-bootstrap-path "/ghc-7.8.4")
(zero? (system* "make" "install"))))
%standard-phases)))))))
+ (native-search-paths (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list
+ (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory))))
(home-page "https://www.haskell.org/ghc")
(synopsis "The Glasgow Haskell Compiler")
(description
diff --git a/gnu/packages/ld-wrapper.in b/gnu/packages/ld-wrapper.in
index c3d6fa1005..c92ed1dcc7 100644
--- a/gnu/packages/ld-wrapper.in
+++ b/gnu/packages/ld-wrapper.in
@@ -137,52 +137,61 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line))
(string-every (char-set-union (char-set #\.) char-set:digit)
(string-drop file (+ index 3)))))))
-(define (library-files-linked args)
- ;; Return the file names of shared libraries explicitly linked against via
- ;; `-l' or with an absolute file name in ARGS.
- (define path+files+args
+(define (library-search-path args)
+ ;; Return the library search path as a list of directory names. The GNU ld
+ ;; manual notes that "[a]ll `-L' options apply to all `-l' options,
+ ;; regardless of the order in which the options appear", so we must compute
+ ;; the search path independently of the -l options.
+ (let loop ((args args)
+ (path '()))
+ (match args
+ (()
+ (reverse path))
+ (("-L" directory . rest)
+ (loop rest (cons directory path)))
+ ((argument . rest)
+ (if (string-prefix? "-L" argument) ;augment the search path
+ (loop rest
+ (cons (string-drop argument 2) path))
+ (loop rest path))))))
+
+(define (library-files-linked args library-path)
+ ;; Return the absolute file names of shared libraries explicitly linked
+ ;; against via `-l' or with an absolute file name in ARGS, looking them up
+ ;; in LIBRARY-PATH.
+ (define files+args
(fold (lambda (argument result)
(match result
- ((library-path library-files
- ((and flag
- (or "-dynamic-linker" "-plugin"))
- . rest))
+ ((library-files ((and flag
+ (or "-dynamic-linker" "-plugin"))
+ . rest))
;; When passed '-dynamic-linker ld.so', ignore 'ld.so'; when
;; passed '-plugin liblto_plugin.so', ignore
;; 'liblto_plugin.so'. See <http://bugs.gnu.org/20102>.
- (list library-path
- library-files
+ (list library-files
(cons* argument flag rest)))
- ((library-path library-files previous-args)
- (cond ((string-prefix? "-L" argument) ;augment the search path
- (list (append library-path
- (list (string-drop argument 2)))
- library-files
- (cons argument previous-args)))
- ((string-prefix? "-l" argument) ;add library
+ ((library-files previous-args)
+ (cond ((string-prefix? "-l" argument) ;add library
(let* ((lib (string-append "lib"
(string-drop argument 2)
".so"))
(full (search-path library-path lib)))
- (list library-path
- (if full
+ (list (if full
(cons full library-files)
library-files)
(cons argument previous-args))))
((and (string-prefix? %store-directory argument)
(shared-library? argument)) ;add library
- (list library-path
- (cons argument library-files)
+ (list (cons argument library-files)
(cons argument previous-args)))
(else
- (list library-path
- library-files
+ (list library-files
(cons argument previous-args)))))))
- (list '() '() '())
+ (list '() '())
args))
- (match path+files+args
- ((path files arguments)
+ (match files+args
+ ((files arguments)
(reverse files))))
(define (rpath-arguments library-files)
@@ -211,10 +220,13 @@ impure library ~s~%"
(define (ld-wrapper . args)
;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches.
- (let* ((libs (library-files-linked args))
+ (let* ((path (library-search-path args))
+ (libs (library-files-linked args path))
(args (append args (rpath-arguments libs))))
(when %debug?
(format (current-error-port)
+ "ld-wrapper: library search path: ~s~%" path)
+ (format (current-error-port)
"ld-wrapper: libraries linked: ~s~%" libs)
(format (current-error-port)
"ld-wrapper: invoking `~a' with ~s~%"
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 33e10d6fc2..83af7fde68 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,11 +30,11 @@
;; 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.1/include")
+ (symlink (string-append out "/lib/libffi-3.2.1/include")
(string-append out "/include")))))
(package
(name "libffi")
- (version "3.1")
+ (version "3.2.1")
(source (origin
(method url-fetch)
(uri
@@ -41,7 +42,7 @@
name "-" version ".tar.gz"))
(sha256
(base32
- "1sznmrhcswwbyqla9y2ximlkzbxks59wjfs3lh7qf8ayranyxzlp"))))
+ "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh"))))
(build-system gnu-build-system)
(arguments `(#:phases (alist-cons-after 'install 'post-install
,post-install-phase
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 09014d6076..3ca4ef1868 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -434,6 +434,9 @@ providing the system administrator with some help in common tasks.")
(arguments
`(#:configure-flags (list "--disable-use-tty-group"
+ ;; Do not build .a files to save 2 MiB.
+ "--disable-static"
+
;; Install completions where our
;; bash-completion package expects them.
(string-append "--with-bashcompletiondir="
@@ -479,62 +482,34 @@ block devices, UUIDs, TTYs, and many other tools.")
(define-public procps
(package
(name "procps")
- (version "3.2.8")
+ (version "3.3.11")
(source (origin
- (method url-fetch)
- ;; A mirror://sourceforge URI doesn't work, presumably becuase
- ;; the SourceForge project is misconfigured.
- (uri (string-append "http://procps.sourceforge.net/procps-"
- version ".tar.gz"))
- (sha256
- (base32
- "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))
- (patches (list (search-patch "procps-make-3.82.patch")))))
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/procps-ng/Production/"
+ "procps-ng-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))))
(build-system gnu-build-system)
- (inputs `(("ncurses" ,ncurses)))
(arguments
'(#:modules ((guix build utils)
(guix build gnu-build-system)
(srfi srfi-1)
(srfi srfi-26))
- #:phases (alist-replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- ;; No `configure', just a single Makefile.
- (let ((out (assoc-ref outputs "out")))
- (substitute* "Makefile"
- (("/usr/") "/")
- (("--(owner|group) 0") "")
- (("ldconfig") "true")
- (("^LDFLAGS[[:blank:]]*:=(.*)$" _ value)
- ;; Add libproc to the RPATH.
- (string-append "LDFLAGS := -Wl,-rpath="
- out "/lib" value))))
- (setenv "CC" "gcc"))
- (alist-replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (and (zero?
- (system* "make" "install"
- (string-append "DESTDIR=" out)))
-
- ;; Remove commands and man pages redundant with
- ;; Coreutils.
- (let ((dup (append-map (cut find-files out <>)
- '("^kill" "^uptime"))))
- (for-each delete-file dup)
- #t)
-
- ;; Sanity check.
- (zero?
- (system* (string-append out "/bin/ps")
- "--version")))))
- %standard-phases))
-
- ;; What did you expect? Tests?
- #:tests? #f))
- (home-page "http://procps.sourceforge.net/")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after
+ 'install 'post-install
+ ;; Remove commands and man pages redudant with
+ ;; Coreutils.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (dup (append-map (cut find-files out <>)
+ '("^kill" "^uptime"))))
+ (for-each delete-file dup)
+ #t))))))
+ (inputs `(("ncurses" ,ncurses)))
+ (home-page "https://gitlab.com/procps-ng/procps/")
(synopsis "Utilities that give information about processes")
(description
"Procps is the package that has a bunch of small useful utilities
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index ee74c03700..ad507706db 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -30,7 +30,7 @@
(define-public gmp
(package
(name "gmp")
- (version "6.0.0a")
+ (version "6.1.0")
(source (origin
(method url-fetch)
(uri
@@ -38,14 +38,14 @@
version ".tar.xz"))
(sha256
(base32
- "0r5pp27cy7ch3dg5v0rsny8bib1zfvrza6027g2mp5f6v8pd6mli"))
+ "12b9s4jn48gbar6dbs5qrlmljdmnq43xy3ji9yjzic0mwp6dmnk8"))
(patches (map search-patch
- '("gmp-arm-asm-nothumb.patch"
- "gmp-faulty-test.patch")))))
+ '("gmp-faulty-test.patch")))))
(build-system gnu-build-system)
(native-inputs `(("m4" ,m4)))
(outputs '("out" "debug"))
- (arguments `(#:configure-flags
+ (arguments `(#:parallel-tests? #f ; mpz/reuse fails otherwise
+ #:configure-flags
'(;; Build a "fat binary", with routines for several
;; sub-architectures.
"--enable-fat"
@@ -60,6 +60,24 @@ cryptography and computational algebra.")
(license lgpl3+)
(home-page "http://gmplib.org/")))
+(define-public gmp-6.0
+ ;; We keep this one around to bootstrap GCC, to work around a compilation
+ ;; issue on ARM. See
+ ;; <https://gmplib.org/list-archives/gmp-bugs/2015-December/003848.html>.
+ (package
+ (inherit gmp)
+ (version "6.0.0a")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gmp/gmp-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0r5pp27cy7ch3dg5v0rsny8bib1zfvrza6027g2mp5f6v8pd6mli"))
+ (patches (map search-patch
+ '("gmp-arm-asm-nothumb.patch"
+ "gmp-faulty-test.patch")))))))
+
(define-public mpfr
(package
(name "mpfr")
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index b7fbfc982d..147033a7e5 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -29,16 +29,35 @@
'(lambda _
(for-each patch-makefile-SHELL
(find-files "." "Makefile.in"))))
+ (configure-phase
+ ;; The 'configure' script does not understand '--docdir', so we must
+ ;; override that and use '--mandir' instead.
+ '(lambda* (#:key build target outputs configure-flags
+ #: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))))))
(remove-shebang-phase
'(lambda _
;; To avoid retaining a reference to the bootstrap Bash via the
- ;; shebang of the 'ncursesw5-config' script, simply remove that
- ;; shebang: it'll work just as well without it.
+ ;; shebang of the 'ncursesw6-config' script, simply remove that
+ ;; shebang: it'll work just as well without it. Likewise, do not
+ ;; retain a reference to the "doc" output.
(substitute* "misc/ncurses-config.in"
(("#!@SHELL@")
"# No shebang here, use /bin/sh!\n")
(("@SHELL@ \\$0")
- "$0"))
+ "$0")
+ (("mandir=.*$")
+ "mandir=share/man"))
#t))
(post-install-phase
'(lambda* (#:key outputs #:allow-other-keys)
@@ -79,6 +98,8 @@
(base32
"0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "doc")) ;1 MiB of man pages
(arguments
`(#:configure-flags
`("--with-shared" "--without-debug" "--enable-widec"
@@ -95,13 +116,18 @@
"/lib"))
#:tests? #f ; no "check" target
#:phases (modify-phases %standard-phases
+ (replace 'configure ,configure-phase)
(add-after 'install 'post-install
- ,post-install-phase)
+ ,post-install-phase)
(add-before 'configure 'patch-makefile-SHELL
- ,patch-makefile-phase)
+ ,patch-makefile-phase)
(add-after 'unpack 'remove-unneeded-shebang
- ,remove-shebang-phase))))
+ ,remove-shebang-phase))))
(self-native-input? #t) ; for `tic'
+ (native-search-paths
+ (list (search-path-specification
+ (variable "TERMINFO_DIRS")
+ (files '("share/terminfo")))))
(synopsis "Terminal emulation (termcap, terminfo) library")
(description
"GNU Ncurses is a library which provides capabilities to write text to
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index f157d1513b..b85ebece3c 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -340,7 +340,7 @@ symlinks to the files in a common directory such as /usr/local.")
(let ((nspr (assoc-ref inputs "nspr"))
(nss (assoc-ref inputs "nss")))
(setenv "CPATH"
- (string-append (getenv "CPATH") ":"
+ (string-append (getenv "C_INCLUDE_PATH") ":"
nspr "/include/nspr:"
nss "/include/nss"))
(setenv "LIBRARY_PATH"
diff --git a/gnu/packages/patches/automake-regexp-syntax.patch b/gnu/packages/patches/automake-regexp-syntax.patch
new file mode 100644
index 0000000000..2e965c8c50
--- /dev/null
+++ b/gnu/packages/patches/automake-regexp-syntax.patch
@@ -0,0 +1,34 @@
+From <https://lists.gnu.org/archive/html/automake-patches/2015-07/msg00000.html>.
+See also <http://bugs.gnu.org/22372>.
+
+From 34163794a58b5bd91c5d6bd9adf5437571c7a479 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Tue, 7 Jul 2015 10:54:24 +0200
+Subject: [PATCH] bin/automake: escape '{' in regexp pattern
+
+Based on perlre(1) documentation:
+.. in Perl v5.26, literal uses of a curly bracket will be required
+to be escaped, say by preceding them with a backslash ("\{" ) or
+enclosing them within square brackets ("[{]") ..
+
+References:
+https://bugzilla.redhat.com/1239379
+
+* bin/automake.in (substitute_ac_subst_variables): Escape the
+occurrence of '{' character.
+---
+ bin/automake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/automake.in b/bin/automake.in
+index 0c29184..c294ced 100644
+--- a/bin/automake.in
++++ b/bin/automake.in
+@@ -3898,7 +3898,7 @@ sub substitute_ac_subst_variables_worker
+ sub substitute_ac_subst_variables
+ {
+ my ($text) = @_;
+- $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
++ $text =~ s/\$\{([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
+ return $text;
+ }
diff --git a/gnu/packages/patches/emacs-source-date-epoch.patch b/gnu/packages/patches/emacs-source-date-epoch.patch
new file mode 100644
index 0000000000..41c03ef514
--- /dev/null
+++ b/gnu/packages/patches/emacs-source-date-epoch.patch
@@ -0,0 +1,20 @@
+Honor SOURCE_DATE_EPOCH variable to avoid non-determinism in generated
+"autoloads" files.
+
+--- a/lisp/emacs-lisp/autoload.el
++++ b/lisp/emacs-lisp/autoload.el
+@@ -378,8 +378,12 @@
+ "Insert the section-header line,
+ which lists the file name and which functions are in it, etc."
+ (insert generate-autoload-section-header)
+- (prin1 `(autoloads ,autoloads ,load-name ,file ,time)
+- outbuf)
++ (let* ((env (getenv "SOURCE_DATE_EPOCH"))
++ (time (if env
++ (seconds-to-time (string-to-number env))
++ time)))
++ (prin1 `(autoloads ,autoloads ,load-name ,file ,time)
++ outbuf))
+ (terpri outbuf)
+ ;; Break that line at spaces, to avoid very long lines.
+ ;; Make each sub-line into a comment.
diff --git a/gnu/packages/patches/findutils-absolute-paths.patch b/gnu/packages/patches/findutils-absolute-paths.patch
deleted file mode 100644
index 96341e281f..0000000000
--- a/gnu/packages/patches/findutils-absolute-paths.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Fix use of LFS-style absolute paths.
-
-Patches from Nixpkgs by Armijn Hemel <armijn@gpl-violations.org>
-and Wouter den Breejen <uu@denbreejen.net>.
-
-diff -ruN findutils-4.2.20/locate/updatedb.sh findutils-4.2.20.new/locate/updatedb.sh
---- findutils-4.2.20/locate/updatedb.sh 2005-01-24 17:12:35.000000000 +0100
-+++ findutils-4.2.20.new/locate/updatedb.sh 2005-08-23 14:37:10.000000000 +0200
-@@ -141,7 +141,7 @@
- : ${code:=${LIBEXECDIR}/@code@}
-
-
--PATH=/bin:/usr/bin:${BINDIR}; export PATH
-+PATH=/bin:/usr/bin:${BINDIR}:${PATH}; export PATH
-
- : ${PRUNEFS="nfs NFS proc afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs"}
-
-diff -Naur findutils-4.2.30/xargs/xargs.c findutils-4.2.30_new/xargs/xargs.c
---- findutils-4.2.30/xargs/xargs.c 2007-02-27 11:21:08.000000000 +0100
-+++ findutils-4.2.30_new/xargs/xargs.c 2007-07-17 19:02:05.000000000 +0200
-@@ -402,7 +402,7 @@
- int show_limits = 0; /* --show-limits */
- int always_run_command = 1;
- char *input_file = "-"; /* "-" is stdin */
-- char *default_cmd = "/bin/echo";
-+ char *default_cmd = "echo";
- int (*read_args) PARAMS ((void)) = read_line;
- void (*act_on_init_result)(void) = noop;
- int env_too_big = 0;
diff --git a/gnu/packages/patches/findutils-test-xargs.patch b/gnu/packages/patches/findutils-test-xargs.patch
new file mode 100644
index 0000000000..10c7bed28d
--- /dev/null
+++ b/gnu/packages/patches/findutils-test-xargs.patch
@@ -0,0 +1,22 @@
+This test relies on 'xargs' being available in $PATH, which is not
+the case when we build the initial Findutils doing bootstrapping.
+Reported at <https://savannah.gnu.org/bugs/index.php?46786>.
+
+--- findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:37:59.401526288 +0100
++++ findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:38:36.061770693 +0100
+@@ -50,13 +50,14 @@ die() {
+ # Create test files, each 98 in the directories ".", "one" and "two".
+ make_test_data() {
+ d="$1"
++ xargs="`cd ../../xargs; pwd -P`/xargs"
+ (
+ cd "$1" || exit 1
+ mkdir one two || exit 1
+ for i in ${three_to_hundred} ; do
+ printf "./%03d one/%03d two/%03d " $i $i $i
+ done \
+- | xargs touch || exit 1
++ | "$xargs" touch || exit 1
+ ) \
+ || die "failed to set up the test in ${outdir}"
+ }
diff --git a/gnu/packages/patches/flex-bison-tests.patch b/gnu/packages/patches/flex-bison-tests.patch
deleted file mode 100644
index 0f372f83bf..0000000000
--- a/gnu/packages/patches/flex-bison-tests.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The `test-bison-yyl{loc,val}' tests fail with "conflicting types for
-'testparse'" because `YYPARSE_PARAM' is undefined; work around that.
-
---- flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:01.000000000 +0100
-+++ flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:07.000000000 +0100
-@@ -21,6 +21,7 @@
- * PURPOSE.
- */
-
-+#define YYPARSE_PARAM scanner
- #include "parser.h"
- #include "scanner.h"
-
-
---- flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:42.000000000 +0100
-+++ flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:49.000000000 +0100
-@@ -21,6 +21,7 @@
- * PURPOSE.
- */
-
-+#define YYPARSE_PARAM scanner
- #include "parser.h"
- #include "scanner.h"
-
diff --git a/gnu/packages/patches/gawk-fts-test.patch b/gnu/packages/patches/gawk-fts-test.patch
new file mode 100644
index 0000000000..de1f5c431c
--- /dev/null
+++ b/gnu/packages/patches/gawk-fts-test.patch
@@ -0,0 +1,51 @@
+This is upstream commit c9a018c. We have observed random failures of
+this test on i686 that seem related to load.
+
+2015-05-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * fts.awk: Really remove atime from the output.
+ This avoids spurious failures on heavily loaded systems.
+
+diff --git a/test/fts.awk b/test/fts.awk
+index b1df060..dea5b68 100644
+--- a/test/fts.awk
++++ b/test/fts.awk
+@@ -50,6 +50,11 @@ function sort_traverse(data, sorted, i)
+ {
+ asorti(data, sorted)
+ for (i = 1; i in sorted; i++) {
++ # 5/2015: skip for atime, since there can
++ # occasionally be small differences.
++ if (sorted[i] == "atime")
++ continue
++
+ indent()
+ printf("%s --> %s\n", sorted[i], data[sorted[i]]) > output
+ }
+@@ -63,17 +68,20 @@ function traverse(data, i)
+ printf("%s:\n", i) > output
+
+ Level++
+- if (("mtime" in data[i]) && ! isarray(data[i][mtime])) {
++ if (("mtime" in data[i]) && ! isarray(data[i]["mtime"])) {
+ sort_traverse(data[i])
+ } else {
+ traverse(data[i])
+ }
+ Level--
+- } else if (data[i] != "atime") {
+- # 4/2015: skip for atime, since there can
+- # occasionally be small differences.
+- indent()
+- printf("%s --> %s\n", i, data[i]) > output
++# } else {
++# JUNK = 1
++# if (i != "atime") {
++# # 4/2015: skip for atime, since there can
++# # occasionally be small differences.
++# indent()
++# printf("%s --> %s\n", i, data[i]) > output
++# }
+ }
+ }
+ }
diff --git a/gnu/packages/patches/gnutls-doc-fix.patch b/gnu/packages/patches/gnutls-doc-fix.patch
deleted file mode 100644
index 170d2468bc..0000000000
--- a/gnu/packages/patches/gnutls-doc-fix.patch
+++ /dev/null
@@ -1,546 +0,0 @@
-diff -ru gnutls-3.4.4/doc/invoke-certtool.texi gnutls-3.4.4.1/doc/invoke-certtool.texi
---- gnutls-3.4.4.1/doc/invoke-certtool.texi 2015-08-10 13:43:52.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-certtool.texi 2015-07-31 15:44:21.000000000 -0400
-@@ -41,7 +41,97 @@
-
- @exampleindent 0
- @example
--certtool is unavailable - no --help
-+certtool - GnuTLS certificate tool
-+Usage: certtool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -V, --verbose More verbose output
-+ - may appear multiple times
-+ --infile=file Input file
-+ - file must pre-exist
-+ --outfile=str Output file
-+ -s, --generate-self-signed Generate a self-signed certificate
-+ -c, --generate-certificate Generate a signed certificate
-+ --generate-proxy Generates a proxy certificate
-+ --generate-crl Generate a CRL
-+ -u, --update-certificate Update a signed certificate
-+ -p, --generate-privkey Generate a private key
-+ -q, --generate-request Generate a PKCS #10 certificate request
-+ - prohibits the option 'infile'
-+ -e, --verify-chain Verify a PEM encoded certificate chain
-+ --verify Verify a PEM encoded certificate chain using a trusted list
-+ --verify-crl Verify a CRL using a trusted list
-+ - requires the option 'load-ca-certificate'
-+ --generate-dh-params Generate PKCS #3 encoded Diffie-Hellman parameters
-+ --get-dh-params Get the included PKCS #3 encoded Diffie-Hellman parameters
-+ --dh-info Print information PKCS #3 encoded Diffie-Hellman parameters
-+ --load-privkey=str Loads a private key file
-+ --load-pubkey=str Loads a public key file
-+ --load-request=str Loads a certificate request file
-+ --load-certificate=str Loads a certificate file
-+ --load-ca-privkey=str Loads the certificate authority's private key file
-+ --load-ca-certificate=str Loads the certificate authority's certificate file
-+ --password=str Password to use
-+ --null-password Enforce a NULL password
-+ --empty-password Enforce an empty password
-+ --hex-numbers Print big number in an easier format to parse
-+ --cprint In certain operations it prints the information in C-friendly format
-+ -i, --certificate-info Print information on the given certificate
-+ --certificate-pubkey Print certificate's public key
-+ --pgp-certificate-info Print information on the given OpenPGP certificate
-+ --pgp-ring-info Print information on the given OpenPGP keyring structure
-+ -l, --crl-info Print information on the given CRL structure
-+ --crq-info Print information on the given certificate request
-+ --no-crq-extensions Do not use extensions in certificate requests
-+ --p12-info Print information on a PKCS #12 structure
-+ --p12-name=str The PKCS #12 friendly name to use
-+ --p7-info Print information on a PKCS #7 structure
-+ --smime-to-p7 Convert S/MIME to PKCS #7 structure
-+ -k, --key-info Print information on a private key
-+ --pgp-key-info Print information on an OpenPGP private key
-+ --pubkey-info Print information on a public key
-+ --v1 Generate an X.509 version 1 certificate (with no extensions)
-+ -!, --to-p12 Generate a PKCS #12 structure
-+ - requires the option 'load-certificate'
-+ -", --to-p8 Generate a PKCS #8 structure
-+ -8, --pkcs8 Use PKCS #8 format for private keys
-+ -#, --rsa Generate RSA key
-+ -$, --dsa Generate DSA key
-+ -%, --ecc Generate ECC (ECDSA) key
-+ -&, --ecdsa an alias for the 'ecc' option
-+ -', --hash=str Hash algorithm to use for signing
-+ -(, --inder Use DER format for input certificates, private keys, and DH parameters
-+ - disabled as '--no-inder'
-+ -), --inraw an alias for the 'inder' option
-+ -*, --outder Use DER format for output certificates, private keys, and DH parameters
-+ - disabled as '--no-outder'
-+ -+, --outraw an alias for the 'outder' option
-+ -,, --bits=num Specify the number of bits for key generate
-+ --, --curve=str Specify the curve used for EC key generation
-+ -., --sec-param=str Specify the security level [low, legacy, medium, high, ultra]
-+ -/, --disable-quick-random No effect
-+ -0, --template=str Template file to use for non-interactive operation
-+ -1, --stdout-info Print information to stdout instead of stderr
-+ -2, --ask-pass Enable interaction for entering password when in batch mode.
-+ -3, --pkcs-cipher=str Cipher to use for PKCS #8 and #12 operations
-+ -4, --provider=str Specify the PKCS #11 provider library
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+
-+Tool to parse and generate X.509 certificates, requests and private keys.
-+It can be used interactively or non interactively by specifying the
-+template command line option.
-+
-+The tool accepts files or URLs supported by GnuTLS. In case PIN is
-+required for the URL access you can provide it using the environment
-+variables GNUTLS_PIN and GNUTLS_SO_PIN.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-gnutls-cli-debug.texi gnutls-3.4.4.1/doc/invoke-gnutls-cli-debug.texi
---- gnutls-3.4.4.1/doc/invoke-gnutls-cli-debug.texi 2015-08-10 13:43:50.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-gnutls-cli-debug.texi 2015-07-31 15:44:18.000000000 -0400
-@@ -40,7 +40,34 @@
-
- @exampleindent 0
- @example
--gnutls-cli-debug is unavailable - no --help
-+gnutls-cli-debug - GnuTLS debug client
-+Usage: gnutls-cli-debug [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -V, --verbose More verbose output
-+ - may appear multiple times
-+ -p, --port=num The port to connect to
-+ - it must be in the range:
-+ 0 to 65536
-+ --app-proto=str The application protocol to be used to obtain the server's certificate
-+(https, ftp, smtp, imap)
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+Operands and options may be intermixed. They will be reordered.
-+
-+TLS debug client. It sets up multiple TLS connections to a server and
-+queries its capabilities. It was created to assist in debugging GnuTLS,
-+but it might be useful to extract a TLS server's capabilities. It connects
-+to a TLS server, performs tests and print the server's capabilities. If
-+called with the `-v' parameter more checks will be performed. Can be used
-+to check for servers with special needs or bugs.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-gnutls-cli.texi gnutls-3.4.4.1/doc/invoke-gnutls-cli.texi
---- gnutls-3.4.4.1/doc/invoke-gnutls-cli.texi 2015-08-10 13:43:49.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-gnutls-cli.texi 2015-07-31 15:44:17.000000000 -0400
-@@ -36,7 +36,95 @@
-
- @exampleindent 0
- @example
--gnutls-cli is unavailable - no --help
-+gnutls-cli - GnuTLS client
-+Usage: gnutls-cli [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostname]
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -V, --verbose More verbose output
-+ - may appear multiple times
-+ --tofu Enable trust on first use authentication
-+ - disabled as '--no-tofu'
-+ --strict-tofu Fail to connect if a known certificate has changed
-+ - disabled as '--no-strict-tofu'
-+ --dane Enable DANE certificate verification (DNSSEC)
-+ - disabled as '--no-dane'
-+ --local-dns Use the local DNS server for DNSSEC resolving
-+ - disabled as '--no-local-dns'
-+ --ca-verification Disable CA certificate verification
-+ - disabled as '--no-ca-verification'
-+ - enabled by default
-+ --ocsp Enable OCSP certificate verification
-+ - disabled as '--no-ocsp'
-+ -r, --resume Establish a session and resume
-+ -e, --rehandshake Establish a session and rehandshake
-+ -s, --starttls Connect, establish a plain session and start TLS
-+ --app-proto=str an alias for the 'starttls-proto' option
-+ --starttls-proto=str The application protocol to be used to obtain the server's certificate
-+(https, ftp, smtp, imap)
-+ - prohibits the option 'starttls'
-+ -u, --udp Use DTLS (datagram TLS) over UDP
-+ --mtu=num Set MTU for datagram TLS
-+ - it must be in the range:
-+ 0 to 17000
-+ --crlf Send CR LF instead of LF
-+ --x509fmtder Use DER format for certificates to read from
-+ -f, --fingerprint Send the openpgp fingerprint, instead of the key
-+ --print-cert Print peer's certificate in PEM format
-+ --dh-bits=num The minimum number of bits allowed for DH
-+ --priority=str Priorities string
-+ --x509cafile=str Certificate file or PKCS #11 URL to use
-+ --x509crlfile=file CRL file to use
-+ - file must pre-exist
-+ --pgpkeyfile=file PGP Key file to use
-+ - file must pre-exist
-+ --pgpkeyring=file PGP Key ring file to use
-+ - file must pre-exist
-+ --pgpcertfile=file PGP Public Key (certificate) file to use
-+ - file must pre-exist
-+ --x509keyfile=str X.509 key file or PKCS #11 URL to use
-+ --x509certfile=str X.509 Certificate file or PKCS #11 URL to use
-+ --pgpsubkey=str PGP subkey to use (hex or auto)
-+ --srpusername=str SRP username to use
-+ --srppasswd=str SRP password to use
-+ --pskusername=str PSK username to use
-+ --pskkey=str PSK key (in hex) to use
-+ -p, --port=str The port or service to connect to
-+ --insecure Don't abort program if server certificate can't be validated
-+ --ranges Use length-hiding padding to prevent traffic analysis
-+ --benchmark-ciphers Benchmark individual ciphers
-+ --benchmark-tls-kx Benchmark TLS key exchange methods
-+ --benchmark-tls-ciphers Benchmark TLS ciphers
-+ -l, --list Print a list of the supported algorithms and modes
-+ - prohibits the option 'port'
-+ --noticket Don't allow session tickets
-+ -!, --srtp-profiles=str Offer SRTP profiles
-+ -", --alpn=str Application layer protocol
-+ - may appear multiple times
-+ -b, --heartbeat Activate heartbeat support
-+ -#, --recordsize=num The maximum record size to advertize
-+ - it must be in the range:
-+ 0 to 4096
-+ -$, --disable-sni Do not send a Server Name Indication (SNI)
-+ -%, --disable-extensions Disable all the TLS extensions
-+ -&, --inline-commands Inline commands of the form ^<cmd>^
-+ -', --inline-commands-prefix=str Change the default delimiter for inline commands.
-+ -(, --provider=file Specify the PKCS #11 provider library
-+ - file must pre-exist
-+ -), --fips140-mode Reports the status of the FIPS140-2 mode in gnutls library
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+Operands and options may be intermixed. They will be reordered.
-+
-+Simple client program to set up a TLS connection to some other computer. It
-+sets up a TLS connection and forwards data from the standard input to the
-+secured socket and vice versa.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-gnutls-serv.texi gnutls-3.4.4.1/doc/invoke-gnutls-serv.texi
---- gnutls-3.4.4.1/doc/invoke-gnutls-serv.texi 2015-08-10 13:43:51.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-gnutls-serv.texi 2015-07-31 15:44:20.000000000 -0400
-@@ -35,7 +35,69 @@
-
- @exampleindent 0
- @example
--gnutls-serv is unavailable - no --help
-+gnutls-serv - GnuTLS server
-+Usage: gnutls-serv [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ --noticket Don't accept session tickets
-+ -g, --generate Generate Diffie-Hellman and RSA-export parameters
-+ -q, --quiet Suppress some messages
-+ --nodb Do not use a resumption database
-+ --http Act as an HTTP server
-+ --echo Act as an Echo server
-+ -u, --udp Use DTLS (datagram TLS) over UDP
-+ --mtu=num Set MTU for datagram TLS
-+ - it must be in the range:
-+ 0 to 17000
-+ --srtp-profiles=str Offer SRTP profiles
-+ -a, --disable-client-cert Do not request a client certificate
-+ -r, --require-client-cert Require a client certificate
-+ --verify-client-cert If a client certificate is sent then verify it.
-+ -b, --heartbeat Activate heartbeat support
-+ --x509fmtder Use DER format for certificates to read from
-+ --priority=str Priorities string
-+ --dhparams=file DH params file to use
-+ - file must pre-exist
-+ --x509cafile=str Certificate file or PKCS #11 URL to use
-+ --x509crlfile=file CRL file to use
-+ - file must pre-exist
-+ --pgpkeyfile=file PGP Key file to use
-+ - file must pre-exist
-+ --pgpkeyring=file PGP Key ring file to use
-+ - file must pre-exist
-+ --pgpcertfile=file PGP Public Key (certificate) file to use
-+ - file must pre-exist
-+ --x509keyfile=str X.509 key file or PKCS #11 URL to use
-+ --x509certfile=str X.509 Certificate file or PKCS #11 URL to use
-+ --x509dsakeyfile=str Alternative X.509 key file or PKCS #11 URL to use
-+ --x509dsacertfile=str Alternative X.509 Certificate file or PKCS #11 URL to use
-+ --x509ecckeyfile=str Alternative X.509 key file or PKCS #11 URL to use
-+ --x509ecccertfile=str Alternative X.509 Certificate file or PKCS #11 URL to use
-+ --pgpsubkey=str PGP subkey to use (hex or auto)
-+ --srppasswd=file SRP password file to use
-+ - file must pre-exist
-+ --srppasswdconf=file SRP password configuration file to use
-+ - file must pre-exist
-+ --pskpasswd=file PSK password file to use
-+ - file must pre-exist
-+ --pskhint=str PSK identity hint to use
-+ --ocsp-response=file The OCSP response to send to client
-+ - file must pre-exist
-+ -p, --port=num The port to connect to
-+ -l, --list Print a list of the supported algorithms and modes
-+ --provider=file Specify the PKCS #11 provider library
-+ - file must pre-exist
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+
-+Server program that listens to incoming TLS connections.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-ocsptool.texi gnutls-3.4.4.1/doc/invoke-ocsptool.texi
---- gnutls-3.4.4.1/doc/invoke-ocsptool.texi 2015-08-10 13:43:53.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-ocsptool.texi 2015-07-31 15:44:22.000000000 -0400
-@@ -37,7 +37,53 @@
-
- @exampleindent 0
- @example
--ocsptool is unavailable - no --help
-+ocsptool - GnuTLS OCSP tool
-+Usage: ocsptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -V, --verbose More verbose output
-+ - may appear multiple times
-+ --infile=file Input file
-+ - file must pre-exist
-+ --outfile=str Output file
-+ --ask[=arg] Ask an OCSP/HTTP server on a certificate validity
-+ - requires these options:
-+ load-cert
-+ load-issuer
-+ -e, --verify-response Verify response
-+ -i, --request-info Print information on a OCSP request
-+ -j, --response-info Print information on a OCSP response
-+ -q, --generate-request Generate an OCSP request
-+ --nonce Use (or not) a nonce to OCSP request
-+ - disabled as '--no-nonce'
-+ --load-issuer=file Read issuer certificate from file
-+ - file must pre-exist
-+ --load-cert=file Read certificate to check from file
-+ - file must pre-exist
-+ --load-trust=file Read OCSP trust anchors from file
-+ - prohibits the option 'load-signer'
-+ - file must pre-exist
-+ --load-signer=file Read OCSP response signer from file
-+ - prohibits the option 'load-trust'
-+ - file must pre-exist
-+ --inder Use DER format for input certificates and private keys
-+ - disabled as '--no-inder'
-+ -Q, --load-request=file Read DER encoded OCSP request from file
-+ - file must pre-exist
-+ -S, --load-response=file Read DER encoded OCSP response from file
-+ - file must pre-exist
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+
-+Ocsptool is a program that can parse and print information about OCSP
-+requests/responses, generate requests and verify responses.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-p11tool.texi gnutls-3.4.4.1/doc/invoke-p11tool.texi
---- gnutls-3.4.4.1/doc/invoke-p11tool.texi 2015-08-10 13:43:58.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-p11tool.texi 2015-07-31 15:44:26.000000000 -0400
-@@ -45,7 +45,97 @@
-
- @exampleindent 0
- @example
--p11tool is unavailable - no --help
-+p11tool - GnuTLS PKCS #11 tool
-+Usage: p11tool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [url]
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ --outfile=str Output file
-+ --list-tokens List all available tokens
-+ --export Export the object specified by the URL
-+ --export-chain Export the certificate specified by the URL and its chain of trust
-+ --list-mechanisms List all available mechanisms in a token
-+ --info List information on an available object in a token
-+ --list-all List all available objects in a token
-+ --list-all-certs List all available certificates in a token
-+ --list-certs List all certificates that have an associated private key
-+ --list-all-privkeys List all available private keys in a token
-+ --list-privkeys an alias for the 'list-all-privkeys' option
-+ --list-keys an alias for the 'list-all-privkeys' option
-+ --list-all-trusted List all available certificates marked as trusted
-+ --write Writes the loaded objects to a PKCS #11 token
-+ --delete Deletes the objects matching the PKCS #11 URL
-+ --generate-random=num Generate random data
-+ --generate-rsa Generate an RSA private-public key pair
-+ --generate-dsa Generate an RSA private-public key pair
-+ --generate-ecc Generate an RSA private-public key pair
-+ --export-pubkey Export the public key for a private key
-+ --label=str Sets a label for the write operation
-+ --mark-wrap Marks the generated key to be a wrapping key
-+ - disabled as '--no-mark-wrap'
-+ --mark-trusted Marks the object to be written as trusted
-+ - disabled as '--no-mark-trusted'
-+ --mark-ca Marks the object to be written as a CA
-+ - disabled as '--no-mark-ca'
-+ --mark-private Marks the object to be written as private
-+ - disabled as '--no-mark-private'
-+ - enabled by default
-+ --trusted an alias for the 'mark-trusted' option
-+ --ca an alias for the 'mark-ca' option
-+ --private an alias for the 'mark-private' option
-+ - enabled by default
-+ --login Force (user) login to token
-+ - disabled as '--no-login'
-+ --so-login Force security officer login to token
-+ - disabled as '--no-so-login'
-+ --admin-login an alias for the 'so-login' option
-+ --detailed-url Print detailed URLs
-+ - disabled as '--no-detailed-url'
-+ -!, --secret-key=str Provide a hex encoded secret key
-+ -", --load-privkey=file Private key file to use
-+ - file must pre-exist
-+ -#, --load-pubkey=file Public key file to use
-+ - file must pre-exist
-+ -$, --load-certificate=file Certificate file to use
-+ - file must pre-exist
-+ -8, --pkcs8 Use PKCS #8 format for private keys
-+ -%, --bits=num Specify the number of bits for key generate
-+ -&, --curve=str Specify the curve used for EC key generation
-+ -', --sec-param=str Specify the security level
-+ -(, --inder Use DER/RAW format for input
-+ - disabled as '--no-inder'
-+ -), --inraw an alias for the 'inder' option
-+ -*, --outder Use DER format for output certificates, private keys, and DH parameters
-+ - disabled as '--no-outder'
-+ -+, --outraw an alias for the 'outder' option
-+ -,, --initialize Initializes a PKCS #11 token
-+ --, --set-pin=str Specify the PIN to use on token initialization
-+ -., --set-so-pin=str Specify the Security Officer's PIN to use on token initialization
-+ -/, --provider=file Specify the PKCS #11 provider library
-+ - file must pre-exist
-+ -0, --batch Disable all interaction with the tool. All parameters need to be
-+specified on command line.
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+Operands and options may be intermixed. They will be reordered.
-+
-+Program that allows operations on PKCS #11 smart cards and security
-+modules.
-+
-+To use PKCS #11 tokens with GnuTLS the p11-kit configuration files need to
-+be setup. That is create a .module file in /etc/pkcs11/modules with the
-+contents 'module: /path/to/pkcs11.so'. Alternatively the configuration
-+file /etc/gnutls/pkcs11.conf has to exist and contain a number of lines of
-+the form 'load=/usr/lib/opensc-pkcs11.so'.
-+
-+You can provide the PIN to be used for the PKCS #11 operations with the
-+environment variables GNUTLS_PIN and GNUTLS_SO_PIN.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-psktool.texi gnutls-3.4.4.1/doc/invoke-psktool.texi
---- gnutls-3.4.4.1/doc/invoke-psktool.texi 2015-08-10 13:43:57.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-psktool.texi 2015-07-31 15:44:25.000000000 -0400
-@@ -36,7 +36,27 @@
-
- @exampleindent 0
- @example
--psktool is unavailable - no --help
-+psktool - GnuTLS PSK tool
-+Usage: psktool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -s, --keysize=num specify the key size in bytes
-+ - it must be in the range:
-+ 0 to 512
-+ -u, --username=str specify a username
-+ -p, --passwd=str specify a password file
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+
-+Program that generates random keys for use with TLS-PSK. The keys are
-+stored in hexadecimal format in a key file.
-+
- @end example
- @exampleindent 4
-
-diff -ru gnutls-3.4.4/doc/invoke-srptool.texi gnutls-3.4.4.1/doc/invoke-srptool.texi
---- gnutls-3.4.4.1/doc/invoke-srptool.texi 2015-08-10 13:43:56.000000000 -0400
-+++ gnutls-3.4.4/doc/invoke-srptool.texi 2015-07-31 15:44:24.000000000 -0400
-@@ -41,7 +41,34 @@
-
- @exampleindent 0
- @example
--srptool is unavailable - no --help
-+srptool - GnuTLS SRP tool
-+Usage: srptool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-+
-+ -d, --debug=num Enable debugging
-+ - it must be in the range:
-+ 0 to 9999
-+ -i, --index=num specify the index of the group parameters in tpasswd.conf to use
-+ -u, --username=str specify a username
-+ -p, --passwd=str specify a password file
-+ -s, --salt=num specify salt size
-+ --verify just verify the password.
-+ -v, --passwd-conf=str specify a password conf file.
-+ --create-conf=str Generate a password configuration file.
-+ -v, --version[=arg] output version information and exit
-+ -h, --help display extended usage information and exit
-+ -!, --more-help extended usage information passed thru pager
-+
-+Options are specified by doubled hyphens and their name or by a single
-+hyphen and the flag character.
-+
-+Simple program that emulates the programs in the Stanford SRP (Secure
-+Remote Password) libraries using GnuTLS. It is intended for use in places
-+where you don't expect SRP authentication to be the used for system users.
-+
-+In brief, to use SRP you need to create two files. These are the password
-+file that holds the users and the verifiers associated with them and the
-+configuration file to hold the group parameters (called tpasswd.conf).
-+
- @end example
- @exampleindent 4
-
diff --git a/gnu/packages/patches/grep-CVE-2015-1345.patch b/gnu/packages/patches/grep-CVE-2015-1345.patch
deleted file mode 100644
index b0d0c8e5dc..0000000000
--- a/gnu/packages/patches/grep-CVE-2015-1345.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix CVE-2015-1345. From upstream commit
-83a95bd8c8561875b948cadd417c653dbe7ef2e2
-by Yuliy Pisetsky <ypisetsky@fb.com>.
-
-diff --git a/src/kwset.c b/src/kwset.c
-index 4003c8d..376f7c3 100644
---- a/src/kwset.c
-+++ b/src/kwset.c
-@@ -643,6 +643,8 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size)
- if (! tp)
- return -1;
- tp++;
-+ if (ep <= tp)
-+ break;
- }
- }
- }
diff --git a/gnu/packages/patches/grep-timing-sensitive-test.patch b/gnu/packages/patches/grep-timing-sensitive-test.patch
new file mode 100644
index 0000000000..8cfcc848bc
--- /dev/null
+++ b/gnu/packages/patches/grep-timing-sensitive-test.patch
@@ -0,0 +1,15 @@
+Skip this performance regression test.
+
+The test measures things on the order of 20ms. On a loaded machine, we
+have seen enough variation that the test would fail.
+
+--- grep-2.22/tests/long-pattern-perf 2016-01-03 12:52:38.491575007 +0100
++++ grep-2.22/tests/long-pattern-perf 2016-01-03 12:53:39.768464687 +0100
+@@ -16,6 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
++exit 77
+ . "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+ fail=0
diff --git a/gnu/packages/patches/libarchive-bsdtar-test.patch b/gnu/packages/patches/libarchive-bsdtar-test.patch
new file mode 100644
index 0000000000..6a533a9a07
--- /dev/null
+++ b/gnu/packages/patches/libarchive-bsdtar-test.patch
@@ -0,0 +1,74 @@
+commit b539b2e597b566fe3c4b49cb61c9eef83e5e052d
+Author: Pavel Raiskup <praiskup@redhat.com>
+Date: Thu Jun 27 16:01:30 2013 +0200
+
+ Use ustar format in the test_option_b test
+
+ .. because the ustar archive does not store SELinux context. As the default
+ format for bsdtar is "restricted pax" (trying to store xattrs and other
+ things by default), the test failed on Fedora because our files have by
+ default SELinux context set. This results in additional data in tested
+ archive ~> and the test failed because the archive was unexpectedly big:
+
+ tar/test/test_option_b.c:41: File archive1.tar has size 3072, expected 2048
+
+ Reviewed by Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
+
+diff --git a/tar/test/test_option_b.c b/tar/test/test_option_b.c
+index be2ae65..6fea474 100644
+--- a/tar/test/test_option_b.c
++++ b/tar/test/test_option_b.c
+@@ -25,8 +25,14 @@
+ #include "test.h"
+ __FBSDID("$FreeBSD$");
+
++#define USTAR_OPT " --format=ustar"
++
+ DEFINE_TEST(test_option_b)
+ {
++ char *testprog_ustar = malloc(strlen(testprog) + sizeof(USTAR_OPT) + 1);
++ strcpy(testprog_ustar, testprog);
++ strcat(testprog_ustar, USTAR_OPT);
++
+ assertMakeFile("file1", 0644, "file1");
+ if (systemf("cat file1 > test_cat.out 2> test_cat.err") != 0) {
+ skipping("Platform doesn't have cat");
+@@ -36,7 +42,7 @@ DEFINE_TEST(test_option_b)
+ /*
+ * Bsdtar does not pad if the output is going directly to a disk file.
+ */
+- assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 2>test1.err", testprog));
++ assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 2>test1.err", testprog_ustar));
+ failure("bsdtar does not pad archives written directly to regular files");
+ assertFileSize("archive1.tar", 2048);
+ assertEmptyFile("test1.out");
+@@ -46,24 +52,24 @@ DEFINE_TEST(test_option_b)
+ * Bsdtar does pad to the block size if the output is going to a socket.
+ */
+ /* Default is -b 20 */
+- assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat >archive2.tar ", testprog));
++ assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat >archive2.tar ", testprog_ustar));
+ failure("bsdtar does pad archives written to pipes");
+ assertFileSize("archive2.tar", 10240);
+ assertEmptyFile("test2.err");
+
+- assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat >archive3.tar ", testprog));
++ assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat >archive3.tar ", testprog_ustar));
+ assertFileSize("archive3.tar", 10240);
+ assertEmptyFile("test3.err");
+
+- assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat >archive4.tar ", testprog));
++ assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat >archive4.tar ", testprog_ustar));
+ assertFileSize("archive4.tar", 5120);
+ assertEmptyFile("test4.err");
+
+- assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat >archive5.tar ", testprog));
++ assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat >archive5.tar ", testprog_ustar));
+ assertFileSize("archive5.tar", 2048);
+ assertEmptyFile("test5.err");
+
+- assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat >archive6.tar ", testprog));
++ assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat >archive6.tar ", testprog_ustar));
+ assertFileSize("archive6.tar", 4194304);
+ assertEmptyFile("test6.err");
+
diff --git a/gnu/packages/patches/librsvg-tests.patch b/gnu/packages/patches/librsvg-tests.patch
deleted file mode 100644
index dc5b94e185..0000000000
--- a/gnu/packages/patches/librsvg-tests.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e06fc71a57156123e4e50a39957100a651ab632b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
-Date: Sat, 17 Oct 2015 10:20:33 +0800
-Subject: [PATCH] tests/styles: Don't duplicate test names.
-
----
- tests/styles.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/styles.c b/tests/styles.c
-index d09b1f2..a938835 100644
---- a/tests/styles.c
-+++ b/tests/styles.c
-@@ -97,8 +97,8 @@ static const FixtureData fixtures[] =
- {"/styles/selectors/2 or more selectors (stroke)", "592207", "styles/bug592207.svg", "#target", "stroke", .expected.color = 0xff0000ff},
- {"/styles/svg-element-style", "615701", "styles/svg-class.svg", "#svg", "fill", .expected.color = 0xff0000ff},
- {"/styles/presentation attribute in svg element", "620693", "styles/bug620693.svg", "#svg", "stroke", .expected.color = 0xffff0000},
-- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
-- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
-+ {"/styles/!important/1", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
-+ {"/styles/!important/2", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
- {"/styles/!important/class", "614606", "styles/bug614606.svg", "#path6306", "fill", .expected.color = 0xffff0000 /* red */ },
- {"/styles/!important/element", "614606", "styles/bug614606.svg", "#path6308", "fill", .expected.color = 0xff000000},
- {"/styles/!important/#id prior than class", NULL, "styles/important.svg", "#red", "fill", .expected.color = 0xffff0000 },
---
-2.5.0
-
diff --git a/gnu/packages/patches/perl-CVE-2015-8607.patch b/gnu/packages/patches/perl-CVE-2015-8607.patch
new file mode 100644
index 0000000000..4c25d41740
--- /dev/null
+++ b/gnu/packages/patches/perl-CVE-2015-8607.patch
@@ -0,0 +1,68 @@
+From 3a629609084d147838368262171b923f0770e564 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 15 Dec 2015 10:56:54 +1100
+Subject: ensure File::Spec::canonpath() preserves taint
+
+Previously the unix specific XS implementation of canonpath() would
+return an untainted path when supplied a tainted path.
+
+For the empty string case, newSVpvs() already sets taint as needed on
+its result.
+
+This issue was assigned CVE-2015-8607.
+
+Bug: https://rt.perl.org/Ticket/Display.html?id=126862
+Bug-Debian: https://bugs.debian.org/810719
+Origin: upstream
+Patch-Name: fixes/CVE-2015-8607_file_spec_taint_fix.diff
+---
+ dist/PathTools/Cwd.xs | 1 +
+ dist/PathTools/t/taint.t | 19 ++++++++++++++++++-
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/dist/PathTools/Cwd.xs b/dist/PathTools/Cwd.xs
+index 9d4dcf0..3d018dc 100644
+--- a/dist/PathTools/Cwd.xs
++++ b/dist/PathTools/Cwd.xs
+@@ -535,6 +535,7 @@ THX_unix_canonpath(pTHX_ SV *path)
+ *o = 0;
+ SvPOK_on(retval);
+ SvCUR_set(retval, o - SvPVX(retval));
++ SvTAINT(retval);
+ return retval;
+ }
+
+diff --git a/dist/PathTools/t/taint.t b/dist/PathTools/t/taint.t
+index 309b3e5..48f8c5b 100644
+--- a/dist/PathTools/t/taint.t
++++ b/dist/PathTools/t/taint.t
+@@ -12,7 +12,7 @@ use Test::More;
+ BEGIN {
+ plan(
+ ${^TAINT}
+- ? (tests => 17)
++ ? (tests => 21)
+ : (skip_all => "A perl without taint support")
+ );
+ }
+@@ -34,3 +34,20 @@ foreach my $func (@Functions) {
+
+ # Previous versions of Cwd tainted $^O
+ is !tainted($^O), 1, "\$^O should not be tainted";
++
++{
++ # [perl #126862] canonpath() loses taint
++ my $tainted = substr($ENV{PATH}, 0, 0);
++ # yes, getcwd()'s result should be tainted, and is tested above
++ # but be sure
++ ok tainted(File::Spec->canonpath($tainted . Cwd::getcwd)),
++ "canonpath() keeps taint on non-empty string";
++ ok tainted(File::Spec->canonpath($tainted)),
++ "canonpath() keeps taint on empty string";
++
++ (Cwd::getcwd() =~ /^(.*)/);
++ my $untainted = $1;
++ ok !tainted($untainted), "make sure our untainted value is untainted";
++ ok !tainted(File::Spec->canonpath($untainted)),
++ "canonpath() doesn't add taint to untainted string";
++}
diff --git a/gnu/packages/patches/perl-deterministic-ordering.patch b/gnu/packages/patches/perl-deterministic-ordering.patch
new file mode 100644
index 0000000000..92e33ef135
--- /dev/null
+++ b/gnu/packages/patches/perl-deterministic-ordering.patch
@@ -0,0 +1,29 @@
+From <https://bugs.debian.org/801523>.
+
+From c01f602d1926b0671fd2c8d91f7e52c4e4c9fb24 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Sun, 11 Oct 2015 19:27:56 +0300
+Subject: [PATCH] Sort the list of XS code files when generating RealPPPort.xs
+
+all_files_in_dir() uses readdir() ordering to make the list of
+input files. This can vary between build systems, breaking build
+reproducibility.
+---
+ cpan/Devel-PPPort/PPPort_xs.PL | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpan/Devel-PPPort/PPPort_xs.PL b/cpan/Devel-PPPort/PPPort_xs.PL
+index 5f18940..149f2fe 100644
+--- a/cpan/Devel-PPPort/PPPort_xs.PL
++++ b/cpan/Devel-PPPort/PPPort_xs.PL
+@@ -38,7 +38,7 @@ END
+ my $file;
+ my $sec;
+
+-for $file (all_files_in_dir('parts/inc')) {
++for $file (sort(all_files_in_dir('parts/inc'))) {
+ my $spec = parse_partspec($file);
+
+ my $msg = 0;
+--
+2.5.1
diff --git a/gnu/packages/patches/perl-module-pluggable-search.patch b/gnu/packages/patches/perl-module-pluggable-search.patch
deleted file mode 100644
index bb2a57f7e5..0000000000
--- a/gnu/packages/patches/perl-module-pluggable-search.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Fix core Perl module Module::Pluggable such that it can find plugins that live
-in symlinked directories.
-
-Patch borrowed/adapted from Nixpkgs.
-
---- perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm 2015-04-08 23:28:48.120164135 -0500
-+++ perl-5.16.1/cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm 2015-04-08 23:30:27.032166704 -0500
-@@ -164,7 +164,7 @@
- my $sp = catdir($dir, (split /::/, $searchpath));
-
- # if it doesn't exist or it's not a dir then skip it
-- next unless ( -e $sp && -d _ ); # Use the cached stat the second time
-+ next unless ( -e $sp );
-
- my @files = $self->find_files($sp);
-
-@@ -279,7 +279,7 @@
- (my $path = $File::Find::name) =~ s#^\\./##;
- push @files, $path;
- }
-- }, $search_path );
-+ }, "$search_path/." );
- }
- #chdir $cwd;
- return @files;
diff --git a/gnu/packages/patches/perl-no-build-time.patch b/gnu/packages/patches/perl-no-build-time.patch
new file mode 100644
index 0000000000..5d78e8f462
--- /dev/null
+++ b/gnu/packages/patches/perl-no-build-time.patch
@@ -0,0 +1,26 @@
+Do not record the configuration and build time so that builds can be
+reproduced bit-for-bit.
+
+--- perl-5.22.0/Configure 1970-01-01 01:00:00.000000000 +0100
++++ perl-5.22.0/Configure 2015-12-13 00:14:43.148165080 +0100
+@@ -3834,6 +3817,7 @@ esac
+
+ : who configured the system
+ cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
++cf_time='Thu Jan 1 00:00:01 UTC 1970'
+ case "$cf_by" in
+ "")
+ cf_by=`(logname) 2>/dev/null`
+
+--- perl-5.22.0/perl.c 2015-12-13 00:25:30.269156627 +0100
++++ perl-5.22.0/perl.c 2015-12-13 00:25:38.265218175 +0100
+@@ -1795,7 +1795,7 @@ S_Internals_V(pTHX_ CV *cv)
+ PUSHs(Perl_newSVpvn_flags(aTHX_ non_bincompat_options,
+ sizeof(non_bincompat_options) - 1, SVs_TEMP));
+
+-#ifdef __DATE__
++#if 0
+ # ifdef __TIME__
+ PUSHs(Perl_newSVpvn_flags(aTHX_
+ STR_WITH_LEN("Compiled at " __DATE__ " " __TIME__),
+
diff --git a/gnu/packages/patches/perl-no-sys-dirs.patch b/gnu/packages/patches/perl-no-sys-dirs.patch
index 3aba4d7529..da91fef3b4 100644
--- a/gnu/packages/patches/perl-no-sys-dirs.patch
+++ b/gnu/packages/patches/perl-no-sys-dirs.patch
@@ -1,10 +1,10 @@
-Don't long for headers and libraries in "traditional" locations.
+Don't look for headers and libraries in "traditional" locations.
Patch from Nixpkgs by Eelco Dolstra <eelco.dolstra@logicblox.com>.
-diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
---- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200
-+++ perl-5.14.2/Configure 2012-01-20 17:05:23.089223129 +0100
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/Configure perl-5.20.0/Configure
+--- perl-5.20.0-orig/Configure 2014-05-26 15:34:18.000000000 +0200
++++ perl-5.20.0/Configure 2014-06-25 10:43:35.368285986 +0200
@@ -106,15 +106,7 @@
fi
@@ -22,7 +22,7 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
for p in $paths
do
-@@ -1311,8 +1303,7 @@
+@@ -1337,8 +1329,7 @@
archname=''
: Possible local include directories to search.
: Set locincpth to "" in a hint file to defeat local include searches.
@@ -32,8 +32,8 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
:
: no include file wanted by default
inclwanted=''
-@@ -1328,17 +1319,12 @@
- archobjs=''
+@@ -1349,17 +1340,12 @@
+
libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
@@ -53,7 +53,7 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
: Private path used by Configure to find libraries. Its value
: is prepended to libpth. This variable takes care of special
-@@ -1371,8 +1357,6 @@
+@@ -1391,8 +1377,6 @@
libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
: We probably want to search /usr/shlib before most other libraries.
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
@@ -62,27 +62,27 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
: Do not use vfork unless overridden by a hint file.
usevfork=false
-@@ -2380,7 +2364,6 @@
+@@ -2446,7 +2430,6 @@
zip
"
pth=`echo $PATH | sed -e "s/$p_/ /g"`
--pth="$pth /lib /usr/lib"
+-pth="$pth $sysroot/lib $sysroot/usr/lib"
for file in $loclist; do
eval xxx=\$$file
case "$xxx" in
-@@ -4785,7 +4768,7 @@
+@@ -4936,7 +4919,7 @@
: Set private lib path
case "$plibpth" in
'') if ./mips; then
-- plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib"
-+ plibpth="$incpath/usr/lib"
- fi;;
+- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
++ plibpth="$incpath/usr/lib"
+ fi;;
esac
case "$libpth" in
-@@ -8390,13 +8373,8 @@
+@@ -8600,13 +8583,8 @@
echo " "
case "$sysman" in
- '')
+ '')
- syspath='/usr/share/man/man1 /usr/man/man1'
- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
- syspath="$syspath /usr/man/u_man/man1"
@@ -95,7 +95,7 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
;;
esac
if $test -d "$sysman"; then
-@@ -19721,9 +19699,10 @@
+@@ -19900,9 +19878,10 @@
case "$full_ar" in
'') full_ar=$ar ;;
esac
@@ -107,10 +107,11 @@ diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
: see what type gids are declared as in the kernel
echo " "
-diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Errno_pm.PL
---- perl-5.14.2-orig/ext/Errno/Errno_pm.PL 2011-09-26 11:44:34.000000000 +0200
-+++ perl-5.14.2/ext/Errno/Errno_pm.PL 2012-01-20 17:02:07.938138311 +0100
-@@ -137,11 +137,7 @@
+Only in perl-5.20.0/: Configure.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/ext/Errno/Errno_pm.PL perl-5.20.0/ext/Errno/Errno_pm.PL
+--- perl-5.20.0-orig/ext/Errno/Errno_pm.PL 2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/ext/Errno/Errno_pm.PL 2014-06-25 10:31:24.317970047 +0200
+@@ -126,11 +126,7 @@
if ($dep =~ /(\S+errno\.h)/) {
$file{$1} = 1;
}
@@ -120,13 +121,14 @@ diff -ru -x '*~' perl-5.14.2-orig/ext/Errno/Errno_pm.PL perl-5.14.2/ext/Errno/Er
- # might be using, say, Intel's icc
- ) {
+ } elsif (0) {
+ # When cross-compiling we may store a path for gcc's "sysroot" option:
+ my $sysroot = $Config{sysroot} || '';
# Some Linuxes have weird errno.hs which generate
- # no #file or #line directives
- my $linux_errno_h = -e '/usr/include/errno.h' ?
-diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh
---- perl-5.14.2-orig/hints/freebsd.sh 2011-09-19 15:18:22.000000000 +0200
-+++ perl-5.14.2/hints/freebsd.sh 2012-01-20 17:10:37.267924044 +0100
-@@ -118,21 +118,21 @@
+Only in perl-5.20.0/ext/Errno: Errno_pm.PL.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/freebsd.sh perl-5.20.0/hints/freebsd.sh
+--- perl-5.20.0-orig/hints/freebsd.sh 2014-01-31 22:55:51.000000000 +0100
++++ perl-5.20.0/hints/freebsd.sh 2014-06-25 10:25:53.263964680 +0200
+@@ -119,21 +119,21 @@
objformat=`/usr/bin/objformat`
if [ x$objformat = xaout ]; then
if [ -e /usr/lib/aout ]; then
@@ -154,3 +156,99 @@ diff -ru -x '*~' perl-5.14.2-orig/hints/freebsd.sh perl-5.14.2/hints/freebsd.sh
ldflags="-Wl,-E "
lddlflags="-shared "
cccdlflags='-DPIC -fPIC'
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/linux.sh perl-5.20.0/hints/linux.sh
+--- perl-5.20.0-orig/hints/linux.sh 2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/hints/linux.sh 2014-06-25 10:33:47.354883843 +0200
+@@ -150,25 +150,6 @@
+ ;;
+ esac
+
+-# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
+-# (such as -lm) in /lib or /usr/lib. So we have to ask gcc to tell us
+-# where to look. We don't want gcc's own libraries, however, so we
+-# filter those out.
+-# This could be conditional on Unbuntu, but other distributions may
+-# follow suit, and this scheme seems to work even on rather old gcc's.
+-# This unconditionally uses gcc because even if the user is using another
+-# compiler, we still need to find the math library and friends, and I don't
+-# know how other compilers will cope with that situation.
+-# Morever, if the user has their own gcc earlier in $PATH than the system gcc,
+-# we don't want its libraries. So we try to prefer the system gcc
+-# Still, as an escape hatch, allow Configure command line overrides to
+-# plibpth to bypass this check.
+-if [ -x /usr/bin/gcc ] ; then
+- gcc=/usr/bin/gcc
+-else
+- gcc=gcc
+-fi
+-
+ case "$plibpth" in
+ '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries |
+ cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
+@@ -178,32 +159,6 @@
+ ;;
+ esac
+
+-case "$libc" in
+-'')
+-# If you have glibc, then report the version for ./myconfig bug reporting.
+-# (Configure doesn't need to know the specific version since it just uses
+-# gcc to load the library for all tests.)
+-# We don't use __GLIBC__ and __GLIBC_MINOR__ because they
+-# are insufficiently precise to distinguish things like
+-# libc-2.0.6 and libc-2.0.7.
+- for p in $plibpth
+- do
+- for trylib in libc.so.6 libc.so
+- do
+- if $test -e $p/$trylib; then
+- libc=`ls -l $p/$trylib | awk '{print $NF}'`
+- if $test "X$libc" != X; then
+- break
+- fi
+- fi
+- done
+- if $test "X$libc" != X; then
+- break
+- fi
+- done
+- ;;
+-esac
+-
+ # Are we using ELF? Thanks to Kenneth Albanowski <kjahds@kjahds.com>
+ # for this test.
+ cat >try.c <<'EOM'
+@@ -367,33 +322,6 @@
+ ;;
+ esac
+
+-# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
+-# true libraries. The scripts cause binding against static
+-# version of -lgdbm which is a bad idea. So if we have 'nm'
+-# make sure it can read the file
+-# NI-S 2003/08/07
+-case "$nm" in
+- '') ;;
+- *)
+- for p in $plibpth
+- do
+- if $test -r $p/libndbm.so; then
+- if $nm $p/libndbm.so >/dev/null 2>&1 ; then
+- echo 'Your shared -lndbm seems to be a real library.'
+- _libndbm_real=1
+- break
+- fi
+- fi
+- done
+- if $test "X$_libndbm_real" = X; then
+- echo 'Your shared -lndbm is not a real library.'
+- set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
+- shift
+- libswanted="$*"
+- fi
+- ;;
+-esac
+-
+ # Linux on Synology.
+ if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
+ # Tested on Synology DS213 and DS413
diff --git a/gnu/packages/patches/perl-source-date-epoch.patch b/gnu/packages/patches/perl-source-date-epoch.patch
new file mode 100644
index 0000000000..37330c9537
--- /dev/null
+++ b/gnu/packages/patches/perl-source-date-epoch.patch
@@ -0,0 +1,19 @@
+Adapted from <https://bugs.debian.org/801621>.
+Make Pod::Man honor the SOURCE_DATE_EPOCH environment variable.
+
+--- perl-5.22.0/cpan/podlators/lib/Pod/Man.pm 2015-12-12 22:33:03.321787590 +0100
++++ perl-5.22.0/cpan/podlators/lib/Pod/Man.pm 2015-12-12 22:36:33.367361338 +0100
+@@ -884,7 +884,12 @@ sub devise_date {
+ my ($self) = @_;
+ my $input = $self->source_filename;
+ my $time;
+- if ($input) {
++
++ if (defined($ENV{SOURCE_DATE_EPOCH}) &&
++ $ENV{SOURCE_DATE_EPOCH} !~ /\D/) {
++ $time = $ENV{SOURCE_DATE_EPOCH};
++ }
++ elsif ($input) {
+ $time = (stat $input)[9] || time;
+ } else {
+ $time = time;
diff --git a/gnu/packages/patches/procps-make-3.82.patch b/gnu/packages/patches/procps-make-3.82.patch
deleted file mode 100644
index 7bf53e2ccc..0000000000
--- a/gnu/packages/patches/procps-make-3.82.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix compilation with GNU Make 3.82 (patch from Nixpkgs).
-
-diff --git a/Makefile b/Makefile
-index 09fb3ed..59eba16 100644
---- a/Makefile
-+++ b/Makefile
-@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES)
- # want this rule first, use := on ALL, and ALL not filled in yet
- all: do_all
-
---include */module.mk
-+-include proc/module.mk ps/module.mk
-
- do_all: $(ALL)
diff --git a/gnu/packages/patches/python-2.7-search-paths.patch b/gnu/packages/patches/python-2.7-search-paths.patch
index 6e5339f3a6..ba7235df27 100644
--- a/gnu/packages/patches/python-2.7-search-paths.patch
+++ b/gnu/packages/patches/python-2.7-search-paths.patch
@@ -1,5 +1,5 @@
-Make sure the build system honors CPATH and LIBRARY_PATH when looking for
-headers and libraries.
+Make sure the build system honors C_INCLUDE_PATH and LIBRARY_PATH when
+looking for headers and libraries.
--- Python-2.7.10/setup.py 2015-10-07 18:33:18.125153186 +0200
+++ Python-2.7.10/setup.py 2015-10-07 18:33:47.497347552 +0200
@@ -9,7 +9,7 @@ headers and libraries.
+ # Always honor these variables.
+ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep)
-+ inc_dirs += os.getenv('CPATH', '').split(os.pathsep)
++ inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep)
+
# OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb)
if host_platform in ['osf1', 'unixware7', 'openunix8']:
diff --git a/gnu/packages/patches/python-3-search-paths.patch b/gnu/packages/patches/python-3-search-paths.patch
index 547feae1b9..7feddb8e30 100644
--- a/gnu/packages/patches/python-3-search-paths.patch
+++ b/gnu/packages/patches/python-3-search-paths.patch
@@ -1,5 +1,5 @@
-Make sure the build system honors CPATH and LIBRARY_PATH when looking for
-headers and libraries.
+Make sure the build system honors C_INCLUDE_PATH and LIBRARY_PATH when
+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
@@ -13,7 +13,7 @@ headers and libraries.
- ]
- inc_dirs = self.compiler.include_dirs + ['/usr/include']
+ lib_dirs = os.getenv('LIBRARY_PATH', '').split(os.pathsep)
-+ inc_dirs = os.getenv('CPATH', '').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[:]
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 5d6618a9ec..d2933bbe38 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -42,6 +42,8 @@
(base32
"1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r"))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "doc")) ;1.8 MiB of HTML
(inputs `(("bzip2" ,bzip2)
("readline" ,readline)
("zlib" ,zlib)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6c0b4d2f6c..51fb96516a 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1,9 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
+;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,18 +38,21 @@
;; Yeah, Perl... It is required early in the bootstrap process by Linux.
(package
(name "perl")
- (version "5.16.1")
+ (version "5.22.1")
(source (origin
(method url-fetch)
(uri (string-append "http://www.cpan.org/src/5.0/perl-"
version ".tar.gz"))
(sha256
(base32
- "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))
+ "09wg24w5syyafyv87l6z8pxwz4bjgcdj996bx5844k6m9445sirb"))
(patches (map search-patch
'("perl-no-sys-dirs.patch"
"perl-autosplit-default-time.patch"
- "perl-module-pluggable-search.patch")))))
+ "perl-source-date-epoch.patch"
+ "perl-deterministic-ordering.patch"
+ "perl-no-build-time.patch"
+ "perl-CVE-2015-8607.patch")))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -60,10 +64,16 @@
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
- (substitute* "dist/Cwd/Cwd.pm"
+ (substitute* "dist/PathTools/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
+ ;; Build in GNU89 mode to tolerate C++-style comment in libc's
+ ;; <bits/string3.h>.
+ (substitute* "cflags.SH"
+ (("-std=c89")
+ "-std=gnu89"))
+
(zero?
(system* "./Configure"
(string-append "-Dprefix=" out)
@@ -653,6 +663,7 @@ type for perl.")
(base32
"09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Class-Factory-Util")
(synopsis "Utility methods for factory classes")
(description "This module exports methods useful for factory classes.")
@@ -1346,6 +1357,7 @@ Date::Calc.")
(base32
"0zd0wbf91i49753rnf7m1lw197hdl5r97mxy0n43zdmcmhvkb3qq"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(arguments
;; Tests would require tzdata for timezone information, but tzdata is in
;; (gnu packages base) which would create a circular dependency. TODO:
@@ -1707,6 +1719,7 @@ edges (mainly concerning timezone detection and selection).")
(base32
"0g71sma9jy0fjm619hcrcsb9spg2y03vjxx36y8k1xpa2553sr7m"))))
(build-system perl-build-system)
+ (native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "http://search.cpan.org/dist/Devel-CheckBin")
(synopsis "Check that a command is available")
(description "Devel::CheckBin is a perl module that checks whether a
@@ -6149,12 +6162,13 @@ MYMETA.yml.")
`(("perl-cpan-meta" ,perl-cpan-meta)))
(home-page "http://search.cpan.org/dist/Module-Build")
(synopsis "Build and install Perl modules")
- (description "\"Module::Build\" is a system for building, testing, and
-installing Perl modules. It is meant to be an alternative to
-\"ExtUtils::MakeMaker\". Developers may alter the behavior of the module
+ (description "@code{Module::Build} is a system for building, testing, and
+installing Perl modules; it used to be part of Perl itself until version 5.22,
+which dropped it. It is meant to be an alternative to
+@code{ExtUtils::MakeMaker}. Developers may alter the behavior of the module
through subclassing in a much more straightforward way than with
-\"MakeMaker\". It also does not require a \"make\" on your system - most of
-the \"Module::Build\" code is pure-perl and written in a cross-platform way.")
+@code{MakeMaker}. It also does not require a @command{make} on your
+system---most of the @code{Module::Build} code is pure-Perl.")
(license (package-license perl))))
(define-public perl-parse-cpan-meta
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index dd5120c474..5923395dec 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,7 +30,7 @@
(define-public %pkg-config
(package
(name "pkg-config")
- (version "0.28")
+ (version "0.29")
(source (origin
(method url-fetch)
(uri (string-append
@@ -38,7 +38,7 @@
version ".tar.gz"))
(sha256
(base32
- "0igqq5m204w71m11y0nipbdf5apx87hwfll6axs12hn4dqfb6vkb"))))
+ "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68"))))
(build-system gnu-build-system)
(arguments `(#:configure-flags '("--with-internal-glib")))
(native-search-paths
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 09a2d4f91d..e9a247142d 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.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, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
@@ -193,7 +193,7 @@ colors, styles, options and details.")
`(("fftw" ,fftw)
("freeglut" ,freeglut)
("gsl" ,gsl)
- ("libgc" ,libgc-for-c++)
+ ("libgc" ,libgc)
("python" ,python-2)
("readline" ,readline)
("zlib" ,zlib)))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index d5e8aba272..fe976a92f4 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -58,8 +58,9 @@
(inputs
`(("libvorbis" ,libvorbis)
("libogg" ,libogg)
- ("flac" ,flac)
- ("pkg-config" ,pkg-config)))
+ ("flac" ,flac)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(home-page "http://www.mega-nerd.com/libsndfile/")
(synopsis "Reading and writing files containing sampled sound")
(description
@@ -87,7 +88,8 @@ for reading and writing new sound file formats.")
(base32
"01hw5xjbjavh412y63brcslj5hi9wdgkjd3h9csx5rnm8vglpdck"))))
(build-system gnu-build-system)
- (inputs `(("pkg-config" ,pkg-config)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(propagated-inputs
`(("libsndfile" ,libsndfile)
("fftw" ,fftw)))
@@ -162,13 +164,14 @@ rates.")
("dbus" ,dbus)
("glib" ,glib)
("intltool" ,intltool)
- ("pkg-config" ,pkg-config)
("m4" ,m4)
("libltdl" ,libltdl)
("fftwf" ,fftwf)
("avahi" ,avahi)
("eudev" ,eudev) ;for the detection of hardware audio devices
("check" ,check)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(propagated-inputs
;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them.
`(("libcap" ,libcap)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 813711a9b6..82a9cfc75e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -308,7 +308,9 @@ data types.")
(inputs `(("openssl" ,openssl)
("zlib" ,zlib)))))
-(define* (wrap-python3 python #:optional (name "python-wrapper"))
+(define* (wrap-python3 python
+ #:optional
+ (name (string-append (package-name python) "-wrapper")))
(package (inherit python)
(name name)
(source #f)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f7a20b864c..6e5553bd30 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,7 +46,7 @@
(define-public ruby
(package
(name "ruby")
- (version "2.2.4")
+ (version "2.3.0")
(source
(origin
(method url-fetch)
@@ -55,28 +55,33 @@
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+ "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh"))
+ (modules '((guix build utils)))
+ (snippet `(begin
+ ;; Remove bundled libffi
+ (delete-file-recursively
+ (string-append "ext/fiddle/libffi-3.2.1"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
- #:parallel-tests? #f
#:phases
- (alist-cons-before
- 'configure 'replace-bin-sh
- (lambda _
- (substitute* '("Makefile.in"
- "ext/pty/pty.c"
- "io.c"
- "lib/mkmf.rb"
- "process.c"
- "test/rubygems/test_gem_ext_configure_builder.rb"
- "test/rdoc/test_rdoc_parser.rb"
- "test/ruby/test_rubyoptions.rb"
- "test/ruby/test_process.rb"
- "test/ruby/test_system.rb"
- "tool/rbinstall.rb")
- (("/bin/sh") (which "sh"))))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-before 'configure 'replace-bin-sh-and-remove-libffi
+ (lambda _
+ (substitute* '("Makefile.in"
+ "ext/pty/pty.c"
+ "io.c"
+ "lib/mkmf.rb"
+ "process.c"
+ "test/rubygems/test_gem_ext_configure_builder.rb"
+ "test/rdoc/test_rdoc_parser.rb"
+ "test/ruby/test_rubyoptions.rb"
+ "test/ruby/test_process.rb"
+ "test/ruby/test_system.rb"
+ "tool/rbinstall.rb")
+ (("/bin/sh") (which "sh")))
+ #t)))))
(inputs
`(("readline" ,readline)
("openssl" ,openssl)
@@ -95,6 +100,25 @@ a focus on simplicity and productivity.")
(home-page "https://ruby-lang.org")
(license license:ruby)))
+(define-public ruby-2.2
+ (package (inherit ruby)
+ (version "2.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+ (version-major+minor version)
+ "/ruby-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))
+ (modules '((guix build utils)))
+ (snippet `(begin
+ ;; Remove bundled libffi
+ (delete-file-recursively
+ (string-append "ext/fiddle/libffi-3.2.1"))
+ #t))))))
+
(define-public ruby-2.1
(package (inherit ruby)
(version "2.1.8")
@@ -1059,13 +1083,13 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
(define-public ruby-power-assert
(package
(name "ruby-power-assert")
- (version "0.2.6")
+ (version "0.2.7")
(source (origin
(method url-fetch)
(uri (rubygems-uri "power_assert" version))
(sha256
(base32
- "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3"))))
+ "0ka6w71lcan4wgf111xi3pcn9ma9lhakv31jg8w007nwzi0xfjbi"))))
(build-system ruby-build-system)
(native-inputs
`(("bundler" ,bundler)))
@@ -1212,15 +1236,18 @@ It allows writing tests, checking results and automated testing in Ruby.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("t\\.libs << \"test\"" line)
- (string-append line "; t.libs << \""
- (assoc-ref inputs "ruby-test-unit")
- "/lib/ruby/gems/2.2.0/gems/test-unit-"
- ,(package-version ruby-test-unit)
- "/lib\"")))
- #t)))))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+ (test-unit-home (gem-home test-unit
+ ,(package-version ruby))))
+ (substitute* "Rakefile"
+ (("t\\.libs << \"test\"" line)
+ (string-append line "; t.libs << \""
+ test-unit-home
+ "/gems/test-unit-"
+ ,(package-version ruby-test-unit)
+ "/lib\""))))
+ #t)))))
(native-inputs
`(("bundler" ,bundler)
("ruby-test-unit" ,ruby-test-unit)))
@@ -1274,15 +1301,18 @@ as a base class when writing classes that depend upon
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("t\\.libs << \"test\"" line)
- (string-append line "; t.libs << \""
- (assoc-ref inputs "ruby-test-unit")
- "/lib/ruby/gems/2.2.0/gems/test-unit-"
- ,(package-version ruby-test-unit)
- "/lib\"")))
- #t)))))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+ (test-unit-home (gem-home test-unit ,(package-version
+ ruby))))
+ (substitute* "Rakefile"
+ (("t\\.libs << \"test\"" line)
+ (string-append line "; t.libs << \""
+ test-unit-home
+ "/gems/test-unit-"
+ ,(package-version ruby-test-unit)
+ "/lib\""))))
+ #t)))))
(propagated-inputs
`(("ruby-blankslate" ,ruby-blankslate)))
(native-inputs
@@ -1311,13 +1341,16 @@ knowing anything about the constructor.")
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("t\\.libs << \"test\"" line)
- (string-append line "; t.libs << \""
- (assoc-ref inputs "ruby-test-unit")
- "/lib/ruby/gems/2.2.0/gems/test-unit-"
- ,(package-version ruby-test-unit)
- "/lib\"")))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+ (test-unit-home (gem-home test-unit ,(package-version
+ ruby))))
+ (substitute* "Rakefile"
+ (("t\\.libs << \"test\"" line)
+ (string-append line "; t.libs << \""
+ test-unit-home
+ "/gems/test-unit-"
+ ,(package-version ruby-test-unit)
+ "/lib\""))))
#t)))))
(propagated-inputs
`(("ruby-instantiator" ,ruby-instantiator)
@@ -1381,13 +1414,16 @@ conversion to (X)HTML.")
(modify-phases %standard-phases
(add-after 'unpack 'add-test-unit-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("t\\.libs << 'test'" line)
- (string-append line "; t.libs << \""
- (assoc-ref inputs "ruby-test-unit")
- "/lib/ruby/gems/2.2.0/gems/test-unit-"
- ,(package-version ruby-test-unit)
- "/lib\"")))
+ (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+ (test-unit-home (gem-home test-unit
+ ,(package-version ruby))))
+ (substitute* "Rakefile"
+ (("t\\.libs << 'test'" line)
+ (string-append line "; t.libs << \""
+ test-unit-home
+ "/gems/test-unit-"
+ ,(package-version ruby-test-unit)
+ "/lib\""))))
#t))
(add-before 'check 'use-latest-redcarpet
(lambda _
@@ -2047,13 +2083,17 @@ development of Ruby gems.")
(modify-phases %standard-phases
(add-after 'unpack 'fix-test-include-path
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("Hoe\\.add_include_dirs .*")
- (string-append "Hoe.add_include_dirs \""
- (assoc-ref inputs "ruby-minitest-4")
- "/lib/ruby/gems/2.2.0/gems/minitest-"
- ,(package-version ruby-minitest-4)
- "/lib" "\"")))))
+ (let* ((minitest (assoc-ref inputs "ruby-minitest-4"))
+ (minitest-home (gem-home minitest
+ ,(package-version ruby))))
+ (substitute* "Rakefile"
+ (("Hoe\\.add_include_dirs .*")
+ (string-append "Hoe.add_include_dirs \""
+ minitest-home
+ "/gems/minitest-"
+ ,(package-version ruby-minitest-4)
+ "/lib" "\""))))
+ #t))
(add-before 'check 'fix-test-assumptions
(lambda _
;; The test output includes the file name, so a couple of tests
@@ -2776,9 +2816,17 @@ features such as filtering and fine grained logging.")
`(#:test-target "specs"
#:phases
(modify-phases %standard-phases
- (add-before 'check 'set-HOME
- ;; $HOME needs to be set to somewhere writeable for tests to run
- (lambda _ (setenv "HOME" "/tmp") #t)))))
+ (add-before 'check 'set-HOME-and-disable-failing-test
+ (lambda _
+ ;; $HOME needs to be set to somewhere writeable for tests to run
+ (setenv "HOME" "/tmp")
+ ;; Disable tests which fails on Ruby 2.3. See
+ ;; https://github.com/lsegal/yard/issues/927
+ (substitute* "spec/parser/ruby/ruby_parser_spec.rb"
+ (("comment.type.should == :comment") "")
+ (("comment.docstring_hash_flag.should be_true") "")
+ (("comment.docstring.strip.should == .*") ""))
+ #t)))))
(native-inputs
`(("ruby-rspec" ,ruby-rspec-2)
("ruby-rack" ,ruby-rack)))
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 591fb1f298..cc53293221 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -43,7 +43,6 @@
(build-system gnu-build-system)
(native-inputs `(("procps" ,procps))) ;one of the tests needs pgrep
(inputs `(("ncurses" ,ncurses)
- ("xz" ,xz)
("perl" ,perl)))
(native-search-paths
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 578953403e..c10d1cbfc7 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,7 +46,7 @@
(define-public libtasn1
(package
(name "libtasn1")
- (version "4.5")
+ (version "4.7")
(source
(origin
(method url-fetch)
@@ -53,13 +54,9 @@
version ".tar.gz"))
(sha256
(base32
- "1nhvnznhg2aqfrfjxc8v008hjlzkh5831jsfahqk89qrw7fbbcw9"))))
+ "1j8iixynchziw1y39lnibyl5h81m4p78w3i4f28q2vgwjgf801x4"))))
(build-system gnu-build-system)
- (native-inputs `(("perl" ,perl)
-
- ;; XXX: For some reason, libtasn1.info wants to be
- ;; rebuilt, so we must provide 'makeinfo'.
- ("texinfo" ,texinfo)))
+ (native-inputs `(("perl" ,perl)))
(home-page "http://www.gnu.org/software/libtasn1/")
(synopsis "ASN.1 library")
(description
@@ -110,7 +107,7 @@ living in the same process.")
(define-public gnutls
(package
(name "gnutls")
- (version "3.4.5")
+ (version "3.4.7")
(source (origin
(method url-fetch)
(uri
@@ -121,8 +118,7 @@ living in the same process.")
"/gnutls-" version ".tar.xz"))
(sha256
(base32
- "1bks1zpmhmnkz2v32dd9b44pz6x0a5w4yi9zzwsd0a078vhbi25g"))
- (patches (list (search-patch "gnutls-doc-fix.patch")))))
+ "0nifi3mr5jhz608pidkp8cjs4vwfj1m2qczsjrgpnp99615rxgn1"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@@ -146,13 +142,6 @@ living in the same process.")
#:phases (modify-phases %standard-phases
(add-after
- 'unpack 'delete-prebuilt-unfixed-info-file
- (lambda _
- ;; XXX Delete the prebuilt info file, so that it will be
- ;; rebuilt with the fixes in gnutls-doc-fix.patch.
- (delete-file "doc/gnutls.info")
- #t))
- (add-after
'install 'move-doc
(lambda* (#:key outputs #:allow-other-keys)
;; Copy the 4.1 MiB of section 3 man pages to "doc".
@@ -169,7 +158,6 @@ living in the same process.")
"doc")) ;4.1 MiB of man pages
(native-inputs
`(("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo) ; XXX needed only to replace prebuilt, unfixed docs.
("which" ,which)))
(inputs
`(("guile" ,guile-2.0)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9e41835720..12f10b9915 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
@@ -374,14 +374,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "2.8.4")
+ (version "2.8.5")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "07wmvp05zanmg3rm539dd0j7h1fi2fk0mcvmv01hjbpy92kq0qwb"))))
+ "1iqa5w96l8ic3axm2pqnb1wsyn4bmlldznj24wrwplfjcyi87yvn"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
@@ -1057,7 +1057,7 @@ for use with HTML5 video.")
(lambda _
;; Copy-paste settings from the cmake build system.
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
- (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH")))
+ (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")))
(alist-replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(let*
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 52c5740388..7f95d82844 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
@@ -1558,7 +1558,8 @@ development server with Starman.")
"1nkyb1m1g5r47xykflf68dplanih5p15njv82frbgbsms34kp1sg"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-io-stringy" ,perl-io-stringy))) ;for IO::Scalar
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-io-stringy" ,perl-io-stringy))) ;for IO::Scalar
(home-page "http://search.cpan.org/dist/CGI-Simple")
(synopsis "CGI interface that is CGI.pm compliant")
(description "CGI::Simple provides a relatively lightweight drop in
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 0706d92c36..dd05446603 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -81,7 +81,7 @@
;; that it will be in the same directory as gstreamer's header
;; files.
(setenv "CPATH"
- (string-append (getenv "CPATH")
+ (string-append (getenv "C_INCLUDE_PATH")
":"
(assoc-ref inputs "gst-plugins-base")
"/include/gstreamer-1.0")))))))
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 67ae46faed..afd57668e2 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -284,7 +284,8 @@ standard packages used as implicit inputs of the GNU build system."
(parallel-tests? #t)
(patch-shebangs? #t)
(strip-binaries? #t)
- (strip-flags ''("--strip-debug"))
+ (strip-flags ''("--strip-debug"
+ "--enable-deterministic-archives"))
(strip-directories ''("lib" "lib64" "libexec"
"bin" "sbin"))
(validate-runpath? #t)
@@ -419,7 +420,8 @@ is one of `host' or `target'."
(parallel-build? #t) (parallel-tests? #t)
(patch-shebangs? #t)
(strip-binaries? #t)
- (strip-flags ''("--strip-debug"))
+ (strip-flags ''("--strip-debug"
+ "--enable-deterministic-archives"))
(strip-directories ''("lib" "lib64" "libexec"
"bin" "sbin"))
(validate-runpath? #t)
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index ff7646b22c..2abaa6efdc 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,6 +39,13 @@
;;
;; Code:
+(define* (set-SOURCE-DATE-EPOCH #:rest _)
+ "Set the 'SOURCE_DATE_EPOCH' environment variable. This is used by tools
+that incorporate timestamps as a way to tell them to use a fixed timestamp.
+See https://reproducible-builds.org/specs/source-date-epoch/."
+ (setenv "SOURCE_DATE_EPOCH" "1")
+ #t)
+
(define (first-subdirectory dir)
"Return the path of the first sub-directory of DIR."
(file-system-fold (lambda (path stat result)
@@ -329,7 +336,8 @@ makefiles."
(objcopy-command (if target
(string-append target "-objcopy")
"objcopy"))
- (strip-flags '("--strip-debug"))
+ (strip-flags '("--strip-debug"
+ "--enable-deterministic-archives"))
(strip-directories '("lib" "lib64" "libexec"
"bin" "sbin"))
#:allow-other-keys)
@@ -367,7 +375,7 @@ 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
+ (zero? (system* objcopy-command "--enable-deterministic-archives"
(string-append "--add-gnu-debuglink="
(debug-file file))
file)))
@@ -548,7 +556,7 @@ DOCUMENTATION-COMPRESSOR-FLAGS."
;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
- (phases set-paths install-locale unpack
+ (phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
build check install
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 4506e96af9..8e2aee381d 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;;
;;; This file is part of GNU Guix.
@@ -25,6 +26,7 @@
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (ice-9 match)
+ #:use-module (ice-9 vlist)
#:export (%standard-phases
haskell-build))
@@ -78,6 +80,7 @@ and parameters ~s~%"
(((_ . dir) ...)
dir)
(_ '())))
+ (ghc-path (getenv "GHC_PACKAGE_PATH"))
(params (append `(,(string-append "--prefix=" out))
`(,(string-append "--libdir=" (or lib out) "/lib"))
`(,(string-append "--bindir=" (or bin out) "/bin"))
@@ -97,6 +100,10 @@ and parameters ~s~%"
'("--enable-tests")
'())
configure-flags)))
+ ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
+ ;; and restore it.
+ (unsetenv "GHC_PACKAGE_PATH")
+
;; For packages where the Cabal build-type is set to "Configure",
;; ./configure will be executed. In these cases, the following
;; environment variable is needed to be able to find the shell executable.
@@ -105,7 +112,9 @@ and parameters ~s~%"
;; <https://www.haskell.org/cabal/users-guide/developing-packages.html>.
(when (file-exists? "configure")
(setenv "CONFIG_SHELL" "sh"))
- (run-setuphs "configure" params)))
+ (run-setuphs "configure" params)
+
+ (setenv "GHC_PACKAGE_PATH" ghc-path)))
(define* (build #:rest empty)
"Build a given Haskell package."
@@ -143,6 +152,12 @@ first match and return the content of the group."
(format #t
"Compiler ~a not supported~%" name-version)))))
+;;; TODO: Move this to (guix build utils)?
+(define-syntax-rule (with-null-error-port exp)
+ "Evaluate EXP with the error port pointing to the bit bucket."
+ (with-error-to-port (%make-void-port "w")
+ (lambda () exp)))
+
(define (make-ghc-package-database system inputs outputs)
"Generate the GHC package database."
(let* ((haskell (assoc-ref inputs "haskell"))
@@ -150,44 +165,89 @@ first match and return the content of the group."
(((_ . dir) ...)
dir)
(_ '())))
- (conf-dirs (search-path-as-list
- `(,(string-append "lib/"
- (package-name-version haskell)
- "/package.conf.d"))
- input-dirs))
+ ;; Silence 'find-files' (see 'evaluate-search-paths')
+ (conf-dirs (with-null-error-port
+ (search-path-as-list
+ `(,(string-append "lib/" (package-name-version haskell)))
+ input-dirs #:pattern ".*\\.conf.d$")))
(conf-files (append-map (cut find-files <> "\\.conf$") conf-dirs)))
(mkdir-p %tmp-db-dir)
(for-each (lambda (file)
- (copy-file file
- (string-append %tmp-db-dir "/" (basename file))))
+ (let ((dest (string-append %tmp-db-dir "/" (basename file))))
+ (unless (file-exists? dest)
+ (copy-file file dest))))
conf-files)
(zero? (system* "ghc-pkg"
(string-append "--package-db=" %tmp-db-dir)
"recache"))))
(define* (register #:key name system inputs outputs #:allow-other-keys)
- "Generate the compiler registration file for a given Haskell package. Don't
-generate the cache as it would clash in user profiles."
+ "Generate the compiler registration and binary package database files for a
+given Haskell package."
+
+ (define (conf-depends conf-file)
+ ;; Return a list of pkg-ids from the "depends" field in CONF-FILE
+ (let ((port (open-input-file conf-file))
+ (field-rx (make-regexp "^(.*):")))
+ (let loop ((collecting #f)
+ (deps '()))
+ (let* ((line (read-line port))
+ (field (and=> (regexp-exec field-rx line)
+ (cut match:substring <> 1))))
+ (cond
+ ((and=> field (cut string=? <> "depends"))
+ ;; The first dependency is listed on the same line as "depends:",
+ ;; so drop those characters. A line may list more than one .conf.
+ (let ((d (string-tokenize (string-drop line 8))))
+ (loop #t (append d deps))))
+ ((and collecting field)
+ (begin
+ (close-port port)
+ (reverse! deps)))
+ (collecting
+ (loop #t (append (string-tokenize line) deps)))
+ (else (loop #f deps)))))))
+
+ (define (install-transitive-deps conf-file src dest)
+ ;; Copy .conf files from SRC to DEST for dependencies in CONF-FILE, and
+ ;; their dependencies, etc.
+ (let loop ((seen vlist-null)
+ (lst (conf-depends conf-file)))
+ (match lst
+ (() #t) ;done
+ ((id . tail)
+ (if (not (vhash-assoc id seen))
+ (let ((dep-conf (string-append src "/" id ".conf"))
+ (dep-conf* (string-append dest "/" id ".conf")))
+ (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
+ (loop (vhash-cons id #t seen)
+ (append lst (conf-depends dep-conf))))
+ (loop seen tail))))))
+
(let* ((out (assoc-ref outputs "out"))
(haskell (assoc-ref inputs "haskell"))
(lib (string-append out "/lib"))
(config-dir (string-append lib "/"
(package-name-version haskell)
- "/package.conf.d"))
+ "/" name ".conf.d"))
(id-rx (make-regexp "^id: *(.*)$"))
(config-file (string-append out "/" name ".conf"))
(params
(list (string-append "--gen-pkg-config=" config-file))))
(run-setuphs "register" params)
;; The conf file is created only when there is a library to register.
- (when (file-exists? config-file)
- (mkdir-p config-dir)
- (let ((config-file-name+id
- (call-with-ascii-input-file config-file (cut grep id-rx <>))))
- (rename-file config-file
- (string-append config-dir "/" config-file-name+id
- ".conf"))))
- #t))
+ (or (not (file-exists? config-file))
+ (begin
+ (mkdir-p config-dir)
+ (let* ((config-file-name+id
+ (call-with-ascii-input-file config-file (cut grep id-rx <>))))
+ (install-transitive-deps config-file %tmp-db-dir config-dir)
+ (rename-file config-file
+ (string-append config-dir "/"
+ config-file-name+id ".conf"))
+ (zero? (system* "ghc-pkg"
+ (string-append "--package-db=" config-dir)
+ "recache")))))))
(define* (check #:key tests? test-target #:allow-other-keys)
"Run the test suite of a given Haskell package."
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index 8025b7fec6..9109fb4ac7 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2016 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>
@@ -136,18 +136,11 @@ installed with setuptools."
#t))
#t))
-(define* (set-SOURCE-DATE-EPOCH #:rest _)
- "Set the 'SOURCE_DATE_EPOCH' environment variable."
- ;; Use zero as the timestamp in .pyc files so that builds are deterministic.
- ;; TODO: Remove it when this variable is set in GNU:%STANDARD-PHASES.
- (setenv "SOURCE_DATE_EPOCH" "1"))
-
(define %standard-phases
;; 'configure' and 'build' phases are not needed. Everything is done during
;; 'install'.
(modify-phases gnu:%standard-phases
(add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980)
- (add-after 'unpack 'set-SOURCE-DATE-EPOCH set-SOURCE-DATE-EPOCH)
(delete 'configure)
(replace 'install install)
(replace 'check check)
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index 6439bf69eb..a4ac3b307c 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -27,7 +27,8 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%standard-phases
- ruby-build))
+ ruby-build
+ gem-home))
;; Commentary:
;;
@@ -141,3 +142,13 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
(define* (ruby-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+(define (gem-home store-path ruby-version)
+ "Return a string to the gem home directory in the store given a STORE-PATH
+and the RUBY-VERSION used to build that ruby package"
+ (string-append
+ store-path
+ "/lib/ruby/gems/"
+ (regexp-substitute #f
+ (string-match "^[0-9]+\\.[0-9]+" ruby-version)
+ 0 ".0")))
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index e3f9edc5b5..2988193fce 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -385,10 +385,13 @@ for under the directories designated by FILES. For example:
(append-map (lambda (input)
(append-map (lambda (file)
(let ((file (string-append input "/" file)))
- ;; XXX: By using 'find-files', we implicitly
- ;; assume #:type 'regular.
(if pattern
- (find-files file pattern)
+ (find-files file (lambda (file stat)
+ (and stat
+ (eq? type (stat:type stat))
+ ((file-name-predicate pattern) file stat)))
+ #:stat stat
+ #:directories? #t)
(let ((stat (stat file #f)))
(if (and stat (eq? type (stat:type stat)))
(list file)
diff --git a/guix/search-paths.scm b/guix/search-paths.scm
index 7fd15d440c..7a6fe67959 100644
--- a/guix/search-paths.scm
+++ b/guix/search-paths.scm
@@ -139,12 +139,6 @@ report only settings not already effective."
(let* ((values (or (and=> (getenv variable)
(cut string-tokenize* <> separator))
'()))
- ;; Add a trailing slash to force symlinks to be treated as
- ;; directories when 'find-files' traverses them.
- (files (if pattern
- (map (cut string-append <> "/") files)
- files))
-
;; XXX: Silence 'find-files' when it stumbles upon non-existent
;; directories (see
;; <http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00269.html>.)
diff --git a/tests/graph.scm b/tests/graph.scm
index 4f85432d2f..43f7b733f9 100644
--- a/tests/graph.scm
+++ b/tests/graph.scm
@@ -232,7 +232,7 @@ edges."
(run-with-store %store
(let ((packages (fold-packages cons '())))
(mlet %store-monad ((edges (node-edges %package-node-type packages)))
- (return (and (null? (edges grep))
+ (return (and (null? (edges sed))
(lset= eq?
(edges guile-2.0)
(match (package-direct-inputs guile-2.0)