summaryrefslogtreecommitdiff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r--gnu/packages/base.scm322
1 files changed, 202 insertions, 120 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 38e8d363eb..5ea129a9ae 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1,16 +1,16 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.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, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; 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, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -93,14 +93,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
- (version "3.3")
+ (version "3.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
- "055mqp6vrd0brkygmygb2673qwz409a7kyp1mzbfy6cn94f58q5r"))
+ "1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) ;some of the tests require it
@@ -134,14 +134,14 @@ including, for example, recursive directory searching.")
(define-public sed
(package
(name "sed")
- (version "4.7")
+ (version "4.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/sed/sed-" version
- ".tar.xz"))
+ ".tar.gz"))
(sha256
(base32
- "0smxcx66vx29djzb542nxcynl7qnzxqa5032ibazi7x2s267d198"))))
+ "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk"))))
(build-system gnu-build-system)
(synopsis "Stream editor")
(native-inputs
@@ -171,7 +171,22 @@ implementation offers several extensions over the standard utility.")
(build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space.
(arguments
- `(#:phases (modify-phases %standard-phases
+ `(,@(if (hurd-target?)
+ '(#:make-flags
+ (list (string-append
+ "TESTSUITEFLAGS= -k '"
+ "!sparse"
+ ",!renamed dirs in incrementals"
+ ",!--exclude-tag option in incremental pass"
+ ",!incremental dumps with -C"
+ ",!incremental dumps of nested directories"
+ ",!incremental restores with -C"
+ ",!concatenated incremental archives (renames)"
+ ",!renamed directory containing subdirectories"
+ ",!renamed subdirectories"
+ "'")))
+ '())
+ #:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
@@ -254,40 +269,29 @@ interactive means to merge two files.")
(define-public findutils
(package
(name "findutils")
- (version "4.6.0")
+ (version "4.7.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/findutils/findutils-"
- version ".tar.gz"))
+ version ".tar.xz"))
(sha256
(base32
- "178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y"))
- (patches (search-patches
- "findutils-gnulib-libio.patch"
- "findutils-localstatedir.patch"
- "findutils-makedev.patch"
- "findutils-test-xargs.patch"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; The gnulib test-lock test is prone to writer starvation
- ;; with our glibc@2.25, which prefers readers, so disable it.
- ;; The gnulib commit b20e8afb0b2 should fix this once
- ;; incorporated here.
- (substitute* "tests/Makefile.in"
- (("test-lock\\$\\(EXEEXT\\) ") ""))
- #t))))
+ "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5"))
+ (patches (search-patches "findutils-localstatedir.patch"
+ "findutils-test-rwlock-threads.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list
;; Tell 'updatedb' to write to /var.
- "--localstatedir=/var"
-
- ;; Work around cross-compilation failure. See
- ;; <http://savannah.gnu.org/bugs/?27299#comment1>.
- ,@(if (%current-target-system)
- '("gl_cv_func_wcwidth_works=yes")
- '()))))
+ "--localstatedir=/var")
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'adjust-test-shebangs
+ (lambda _
+ (substitute* '("tests/xargs/verbose-quote.sh"
+ "tests/find/exec-plus-last-file.sh")
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ #t)))))
(synopsis "Operating on files matching given criteria")
(description
"Findutils supplies the basic file directory searching utilities of the
@@ -302,23 +306,26 @@ used to apply commands with arbitrarily long arguments.")
(define-public coreutils
(package
(name "coreutils")
- (version "8.31")
+ (version "8.32")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.xz"))
(sha256
(base32
- "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"))))
+ "1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24"))
+ (patches (search-patches "coreutils-ls.patch"))))
(build-system gnu-build-system)
(inputs `(("acl" ,acl) ; TODO: add SELinux
("gmp" ,gmp) ;bignums in 'expr', yay!
- ;; Drop the dependency on libcap when cross-compiling since it's
- ;; not quite cross-compilable.
- ,@(if (%current-target-system)
- '()
- `(("libcap" ,libcap))))) ;capability support is 'ls', etc.
+ ;; Do not use libcap when cross-compiling since it's not quite
+ ;; cross-compilable; and use it only for supported systems.
+ ,@(if (and (not (%current-target-system))
+ (member (%current-system)
+ (package-supported-systems libcap)))
+ `(("libcap" ,libcap)) ;capability support in 'ls', etc.
+ '())))
(native-inputs
;; Perl is needed to run tests in native builds, and to run the bundled
;; copy of help2man. However, don't pass it when cross-compiling since
@@ -330,6 +337,23 @@ used to apply commands with arbitrarily long arguments.")
(outputs '("out" "debug"))
(arguments
`(#:parallel-build? #f ; help2man may be called too early
+ ,@(if (hurd-target?)
+ '(#:make-flags ; these tests fail deterministically
+ (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
+ " tests/misc/kill.sh"
+ " tests/misc/nice.sh"
+ " tests/misc/shred-passes.sh"
+ " tests/split/fail.sh"
+ " tests/split/l-chunk.sh"
+ " tests/dd/stats.sh"
+ " test-fdutimensat"
+ " test-futimens"
+ " test-linkat"
+ " test-renameat"
+ " test-renameatu"
+ " test-tls"
+ " test-utimensat")))
+ '())
#:phases (modify-phases %standard-phases
(add-before 'build 'patch-shell-references
(lambda _
@@ -341,16 +365,6 @@ used to apply commands with arbitrarily long arguments.")
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (string-append "#!" (which "sh"))))
- #t))
- (add-before 'check 'disable-broken-test
- (lambda _
- ;; This test hits the 127 character shebang limit in the build
- ;; environment due to the way "env -S" splits arguments into
- ;; shebangs. Note that "env-S-script.sh" works around this
- ;; specific issue, but "env-S.pl" is not adjusted for build
- ;; environments with long prefixes (/tmp/guix-build-...).
- (substitute* "Makefile"
- (("^.*tests/misc/env-S.pl.*$") ""))
#t)))))
(synopsis "Core GNU utilities (file, text, shell)")
(description
@@ -373,31 +387,31 @@ standard.")
(define-public gnu-make
(package
(name "make")
- (version "4.2.1")
+ (version "4.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/make/make-" version
- ".tar.bz2"))
+ ".tar.gz"))
(sha256
(base32
- "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))
- (patches (search-patches "make-impure-dirs.patch"
- "make-glibc-compat.patch"))))
+ "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0"))
+ (patches (search-patches "make-impure-dirs.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
- (inputs `(("guile" ,guile-2.0)))
+ (inputs `(("guile" ,guile-3.0)))
(outputs '("out" "debug"))
(arguments
- '(;; Work around faulty glob detection with glibc 2.27. See
- ;; <https://lists.nongnu.org/archive/html/bug-make/2017-11/msg00027.html>.
- #:configure-flags '("make_cv_sys_gnu_glob=yes")
+ `(,@(if (hurd-target?)
+ '(#:configure-flags '("CFLAGS=-D__alloca=alloca"
+ "ac_cv_func_posix_spawn=no"))
+ '())
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
- (substitute* "job.c"
+ (substitute* "src/job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))
@@ -413,17 +427,42 @@ change. GNU make offers many powerful extensions over the standard utility.")
(license gpl3+)
(home-page "https://www.gnu.org/software/make/")))
+(define-public gnu-make-4.2
+ (package
+ (inherit gnu-make)
+ (version "4.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/make/make-" version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
+ (arguments
+ `(#:configure-flags '("CFLAGS=-D__alloca=alloca")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-default-shell
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Change the default shell from /bin/sh.
+ (let ((bash (assoc-ref inputs "bash")))
+ (substitute* "job.c"
+ (("default_shell =.*$")
+ (format #f "default_shell = \"~a/bin/sh\";\n"
+ bash)))
+ #t))))))))
+
(define-public binutils
(package
(name "binutils")
- (version "2.32")
+ (version "2.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
(base32
- "0b8767nyal1bc4cyzg5h9iis8kpkln1i3wkamig75cifj1fb2f6y"))
+ "1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49"))
(patches (search-patches "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
@@ -448,7 +487,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; Make sure 'ar' and 'ranlib' produce archives in a
;; deterministic fashion.
- "--enable-deterministic-archives")))
+ "--enable-deterministic-archives")
+
+ ;; XXX: binutils 2.34 was mistakenly released without generated manuals:
+ ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=25491>. To avoid a
+ ;; circular dependency on texinfo, prevent the build system from creating
+ ;; the manuals by calling "true" instead of "makeinfo"...
+ #:make-flags '("MAKEINFO=true")))
+
+ ;; ...and "hide" this package so that users who install binutils get the
+ ;; version with documentation defined below.
+ (properties '((hidden? . #t)))
(synopsis "Binary utilities: bfd gas gprof ld")
(description
@@ -461,6 +510,37 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
+;; Work around a problem with binutils 2.34 whereby manuals are missing from
+;; the release tarball. Remove this and the related code above when updating.
+(define-public binutils+documentation
+ (package/inherit
+ binutils
+ (native-inputs
+ `(("texinfo" ,texinfo)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:make-flags _ ''()) ''())))
+ (properties '())))
+
+;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a
+;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream).
+;; Keep this version around until the patch is updated.
+(define-public binutils-2.33
+ (package/inherit
+ binutils
+ (version "2.33.1")
+ (source (origin
+ (inherit (package-source binutils))
+ (uri (string-append "mirror://gnu/binutils/binutils-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:make-flags _ ''()) ''())))
+ (properties '())))
+
(define-public binutils-gold
(package
(inherit binutils)
@@ -491,7 +571,7 @@ included.")
(define* (make-ld-wrapper name #:key
(target (const #f))
binutils
- (guile (canonical-package guile-2.2))
+ (guile (canonical-package guile-3.0))
(bash (canonical-package bash))
(guile-for-build guile))
"Return a package called NAME that contains a wrapper for the 'ld' program
@@ -529,7 +609,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
'(string-append bin "/ld")))
(go (string-append ld ".go")))
- (setvbuf (current-output-port) _IOLBF)
+ (setvbuf (current-output-port)
+ (cond-expand (guile-2.0 _IOLBF)
+ (else 'line)))
(format #t "building ~s/bin/ld wrapper in ~s~%"
(assoc-ref %build-inputs "binutils")
out)
@@ -569,13 +651,13 @@ the store.")
;; version 2.28, GNU/Hurd used a different glibc branch.
(package
(name "glibc")
- (version "2.29")
+ (version "2.31")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
- "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
+ "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
(snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so
@@ -587,14 +669,14 @@ the store.")
#t))
(modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch"
- "glibc-CVE-2019-7309.patch"
- "glibc-CVE-2019-9169.patch"
- "glibc-2.29-git-updates.patch"
"glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"
"glibc-reinstate-prlimit64-fallback.patch"
- "glibc-supported-locales.patch"))))
+ "glibc-supported-locales.patch"
+ "glibc-hurd-clock_t_centiseconds.patch"
+ "glibc-hurd-clock_gettime_monotonic.patch"
+ "glibc-hurd-signal-sa-siginfo.patch"))))
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -821,6 +903,44 @@ with the Linux kernel.")
;; Below are old libc versions, which we use mostly to build locale data in
;; the old format (which the new libc cannot cope with.)
+(define-public glibc-2.30
+ (package
+ (inherit glibc)
+ (version "2.30")
+ (source (origin
+ (inherit (package-source glibc))
+ (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
+ (patches (search-patches "glibc-ldd-x86_64.patch"
+ "glibc-CVE-2019-19126.patch"
+ "glibc-hidden-visibility-ldconfig.patch"
+ "glibc-versioned-locpath.patch"
+ "glibc-allow-kernel-2.6.32.patch"
+ "glibc-reinstate-prlimit64-fallback.patch"
+ "glibc-2.29-supported-locales.patch"))))))
+
+(define-public glibc-2.29
+ (package
+ (inherit glibc)
+ (version "2.29")
+ (source (origin
+ (inherit (package-source glibc))
+ (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
+ (patches (search-patches "glibc-ldd-x86_64.patch"
+ "glibc-CVE-2019-7309.patch"
+ "glibc-CVE-2019-9169.patch"
+ "glibc-2.29-git-updates.patch"
+ "glibc-hidden-visibility-ldconfig.patch"
+ "glibc-versioned-locpath.patch"
+ "glibc-allow-kernel-2.6.32.patch"
+ "glibc-reinstate-prlimit64-fallback.patch"
+ "glibc-2.29-supported-locales.patch"))))))
+
(define-public glibc-2.28
(package
(inherit glibc)
@@ -980,21 +1100,8 @@ with the Linux kernel.")
(package-name libc) "-"
(package-version libc)))
(arguments
- (substitute-keyword-arguments
- (ensure-keyword-arguments (package-arguments base-gcc)
- '(#:implicit-inputs? #f))
- ((#:phases phases)
- `(modify-phases ,phases
- (add-before 'configure 'treat-glibc-as-system-header
- (lambda _
- (let ((libc (assoc-ref %build-inputs "libc")))
- ;; GCCs build processes requires that the libc
- ;; we're building against is on the system header
- ;; search path.
- (for-each (lambda (var)
- (setenv var (string-append libc "/include")))
- '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
- #t)))))))
+ (ensure-keyword-arguments (package-arguments base-gcc)
+ '(#:implicit-inputs? #f)))
(native-inputs
`(,@(package-native-inputs base-gcc)
,@(append (fold alist-delete (%final-inputs) '("libc" "libc:static")))
@@ -1134,18 +1241,12 @@ test environments.")
(make-glibc-utf8-locales glibc))
;; Packages provided to ease use of binaries linked against the previous libc.
-(define-public glibc-locales-2.28
- (package (inherit (make-glibc-locales glibc-2.28))
- (name "glibc-locales-2.28")))
-(define-public glibc-utf8-locales-2.28
- (package (inherit (make-glibc-utf8-locales glibc-2.28))
- (name "glibc-utf8-locales-2.28")))
-
-;; These should no longer be needed.
-(define-public glibc-utf8-locales-2.27
- (deprecated-package "glibc-utf8-locales-2.27" glibc-utf8-locales-2.28))
-(define-public glibc-locales-2.27
- (deprecated-package "glibc-locales-2.27" glibc-locales-2.28))
+(define-public glibc-locales-2.29
+ (package (inherit (make-glibc-locales glibc-2.29))
+ (name "glibc-locales-2.29")))
+(define-public glibc-utf8-locales-2.29
+ (package (inherit (make-glibc-utf8-locales glibc-2.29))
+ (name "glibc-utf8-locales-2.29")))
(define-public which
(package
@@ -1282,26 +1383,7 @@ and daylight-saving rules.")
;;; package.
(define-public tzdata-for-tests
(hidden-package
- (package
- (inherit tzdata)
- (version "2019b")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://data.iana.org/time-zones/releases/tzdata"
- version ".tar.gz"))
- (sha256
- (base32
- "0r0clnlslwm15m1c61dinf1fi9ffgl6aipng7i7yryfwj0n0kn85"))))
- (inputs
- `(("tzcode" ,(origin
- (method url-fetch)
- (uri (string-append
- "https://data.iana.org/time-zones/releases/tzcode"
- version ".tar.gz"))
- (sha256
- (base32
- "0vbmswvv3li25s31shyllq5v24449lxnrki9hr043nipjd09sirf")))))))))
+ (package/inherit tzdata)))
(define-public libiconv
(package