diff options
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r-- | gnu/packages/base.scm | 187 |
1 files changed, 93 insertions, 94 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 07ae4b70ae..f53dee73ec 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -2,16 +2,17 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. @@ -168,16 +169,16 @@ implementation offers several extensions over the standard utility.") (define-public tar (package (name "tar") - (version "1.29") + (version "1.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/tar/tar-" version ".tar.xz")) (sha256 (base32 - "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) - (patches (search-patches "tar-CVE-2016-6321.patch" - "tar-skip-unreliable-tests.patch")))) + "1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi")) + (patches (search-patches "tar-skip-unreliable-tests.patch" + "tar-remove-wholesparse-check.patch")))) (build-system gnu-build-system) ;; Note: test suite requires ~1GiB of disk space. (arguments @@ -189,7 +190,13 @@ implementation offers several extensions over the standard utility.") (substitute* "src/system.c" (("/bin/sh") (string-append bash "/bin/sh"))) - #t)))))) + #t)))) + + ;; Test #92 "link mismatch" expects "a/z: Not linked to a/y" but gets + ;; "a/y: Not linked to a/z" and fails, presumably due to differences in + ;; the order in which 'diff' traverses directories. That leads to a + ;; test failure even though conceptually the test passes. Skip it. + #:make-flags '("TESTSUITEFLAGS=-k '!link mismatch'"))) ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able ;; to refer to the target Bash. @@ -211,14 +218,14 @@ standard utility.") (define-public patch (package (name "patch") - (version "2.7.5") + (version "2.7.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/patch/patch-" version ".tar.xz")) (sha256 (base32 - "16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx")) + "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc")) (patches (search-patches "patch-hurd-path-max.patch")))) (build-system gnu-build-system) (native-inputs `(("ed" ,ed))) @@ -304,14 +311,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.28") + (version "8.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi")))) + "0plm1zs9il6bb5mk881qvbghq4glc8ybbgakk2lfzb0w64fgml4j")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! @@ -408,16 +415,15 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.28.1") + (version "2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939")) - (patches (search-patches "binutils-ld-new-dtags.patch" - "binutils-loongson-workaround.patch")))) + "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg")) + (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) ;; TODO: Add dependency on zlib + those for Gold. @@ -426,6 +432,12 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; on GCC when bootstrapping. "LDFLAGS=-static-libgcc" + ;; Turn on --enable-new-dtags by default to make the + ;; linker set RUNPATH instead of RPATH on binaries. + ;; This is important because RUNPATH can be overriden + ;; using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" + ;; Don't search under /usr/lib & co. "--with-lib-path=/no-ld-lib-path" @@ -538,7 +550,6 @@ store.") ;; Note: Always use a dot after the minor version since various places rely ;; on "version-major+minor" to determine where locales are found. (version "2.26.105-g0890d5379c") - (replacement glibc-2.26-patched) (source (origin (method url-fetch) (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" @@ -551,13 +562,15 @@ store.") ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so ;; instead of ours. - '(substitute* "sysdeps/unix/sysv/linux/configure" - (("use_ldconfig=yes") - "use_ldconfig=no"))) + '(begin + (substitute* "sysdeps/unix/sysv/linux/configure" + (("use_ldconfig=yes") + "use_ldconfig=no")) + #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch")))) + "glibc-allow-kernel-2.6.32.patch")))) (build-system gnu-build-system) ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc @@ -799,14 +812,13 @@ with the Linux kernel.") ;; Force mach/hurd/libpthread subdirs to build first in order to avoid ;; linking errors. ;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html> - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (let-syntax ((make (syntax-rules () - ((_ target) - (zero? (apply system* "make" target -j)))))) - (and (make "mach/subdir_lib") - (make "hurd/subdir_lib") - (make "libpthread/subdir_lib") - (zero? (apply system* "make" -j))))))))) + (let ((flags (list "-j" (number->string (parallel-job-count))))) + (define (make target) + (apply invoke "make" target flags)) + (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (apply invoke "make" flags)))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" @@ -841,14 +853,6 @@ GLIBC/HURD for a Hurd host" ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) -(define glibc-2.26-patched - (package - (inherit glibc) - (source (origin - (inherit (package-source glibc)) - (patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch") - (origin-patches (package-source glibc)))))))) - (define-public glibc-2.25 (package (inherit glibc) @@ -862,7 +866,6 @@ GLIBC/HURD for a Hurd host" "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" @@ -881,7 +884,6 @@ GLIBC/HURD for a Hurd host" "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2017-1000366-pt1.patch" @@ -901,7 +903,6 @@ GLIBC/HURD for a Hurd host" "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2016-3075.patch" @@ -923,6 +924,7 @@ GLIBC/HURD for a Hurd host" (base32 "0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb")) (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2015-7547.patch" @@ -965,8 +967,8 @@ the 'share/locale' sub-directory of this package.") `(modify-phases ,phases (replace 'build (lambda _ - (zero? (system* "make" "localedata/install-locales" - "-j" (number->string (parallel-job-count)))))) + (invoke "make" "localedata/install-locales" + "-j" (number->string (parallel-job-count))))) (delete 'install) (delete 'move-static-libs))) ((#:configure-flags flags) @@ -987,8 +989,7 @@ the 'share/locale' sub-directory of this package.") (arguments `(#:modules ((guix build utils)) #:builder (begin - (use-modules (srfi srfi-1) - (guix build utils)) + (use-modules (guix build utils)) (let* ((libc (assoc-ref %build-inputs "glibc")) (gzip (assoc-ref %build-inputs "gzip")) @@ -999,27 +1000,27 @@ the 'share/locale' sub-directory of this package.") (setenv "PATH" (string-append libc "/bin:" gzip "/bin")) (mkdir-p localedir) - (every (lambda (locale) - (define file - ;; Use the "normalized codeset" by - ;; default--e.g., "en_US.utf8". - (string-append localedir "/" locale ".utf8")) - - (and (zero? (system* "localedef" "--no-archive" - "--prefix" localedir - "-i" locale - "-f" "UTF-8" file)) - (begin - ;; For backward compatibility with Guix - ;; <= 0.8.3, add "xx_YY.UTF-8". - (symlink (string-append locale ".utf8") - (string-append localedir "/" - locale ".UTF-8")) - #t))) - - ;; These are the locales commonly used for - ;; tests---e.g., in Guile's i18n tests. - '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")))))) + (for-each (lambda (locale) + (define file + ;; Use the "normalized codeset" by + ;; default--e.g., "en_US.utf8". + (string-append localedir "/" locale ".utf8")) + + (invoke "localedef" "--no-archive" + "--prefix" localedir + "-i" locale + "-f" "UTF-8" file) + + ;; For backward compatibility with Guix + ;; <= 0.8.3, add "xx_YY.UTF-8". + (symlink (string-append locale ".utf8") + (string-append localedir "/" + locale ".UTF-8"))) + + ;; These are the locales commonly used for + ;; tests---e.g., in Guile's i18n tests. + '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")) + #t)))) (inputs `(("glibc" ,glibc) ("gzip" ,gzip))) (synopsis "Small sample of UTF-8 locales") @@ -1063,30 +1064,25 @@ command.") "--host=i586-pc-gnu" "--enable-obsolete-rpc")) ((#:phases _) - '(alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install-headers")) - - ;; Make an empty stubs.h to work around not being able to - ;; produce a valid stubs.h and causing the build to fail. See - ;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>. - (let ((out (assoc-ref outputs "out"))) - (close-port - (open-output-file - (string-append out "/include/gnu/stubs.h")))))) - - ;; Nothing to build. - (alist-delete - 'build - - (alist-cons-before - 'configure 'pre-configure - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - %standard-phases)))))))) + '(modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install-headers") + + ;; Make an empty stubs.h to work around not being able to + ;; produce a valid stubs.h and causing the build to fail. See + ;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>. + (let ((out (assoc-ref outputs "out"))) + (close-port + (open-output-file + (string-append out "/include/gnu/stubs.h")))))) + (delete 'build) ; nothing to build + (add-before 'configure 'patch-configure-script + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)))))))) (define-public tzdata (package @@ -1123,8 +1119,8 @@ command.") (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" (assoc-ref inputs "tzcode")))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Move data in the right place. @@ -1139,7 +1135,8 @@ command.") (copy-recursively (string-append out "/share/zoneinfo-leaps") (string-append out "/share/zoneinfo/right")) (delete-file-recursively - (string-append out "/share/zoneinfo-leaps"))))) + (string-append out "/share/zoneinfo-leaps")) + #t))) (delete 'configure)))) (inputs `(("tzcode" ,(origin (method url-fetch) @@ -1237,9 +1234,11 @@ and daylight-saving rules.") (snippet ;; Work around "declared gets" error on glibc systems (fixed by ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.) - '(substitute* "srclib/stdio.in.h" - (("^#undef gets") "") - (("^_GL_WARN_ON_USE \\(gets.*") ""))))) + '(begin + (substitute* "srclib/stdio.in.h" + (("^#undef gets") "") + (("^_GL_WARN_ON_USE \\(gets.*") "")) + #t)))) (build-system gnu-build-system) (synopsis "Character set conversion library") (description |