;;; 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 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; 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>
+;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
(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
(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
(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.
(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
(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 _
(("/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
- "GNU Coreutils includes all of the basic command-line tools that are
-expected in a POSIX system. These provide the basic file, shell and text
-manipulation functions of the GNU system. Most of these tools offer extended
-functionality beyond that which is outlined in the POSIX standard.")
+ "GNU Coreutils package includes all of the basic command-line tools that
+are expected in a POSIX system, excluding shell. This package is the union of
+the GNU fileutils, sh-utils, and textutils packages. Most of these tools
+offer extended functionality beyond that which is outlined in the POSIX
+standard.")
(license gpl3+)
(home-page "https://www.gnu.org/software/coreutils/")))
(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)))
(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.33.1")
+ (version "2.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
(base32
- "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c"))
+ "1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49"))
(patches (search-patches "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
;; 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
(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)
(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
'(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)
;; version 2.28, GNU/Hurd used a different glibc branch.
(package
(name "glibc")
- (version "2.30")
+ (version "2.31")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
- "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
+ "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
(snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so
#t))
(modules '((guix build utils)))
(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-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
;; 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)
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"
"glibc-reinstate-prlimit64-fallback.patch"
- "glibc-supported-locales.patch"))))))
+ "glibc-2.29-supported-locales.patch"))))))
(define-public glibc-2.28
(package
(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")))
;;; 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