summary refs log tree commit diff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r--gnu/packages/base.scm187
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