;;; 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.
;;;
(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.
;; 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))
- (not (member (%current-system)
- (package-supported-systems libcap))))
+ (member (%current-system)
+ (package-supported-systems libcap)))
`(("libcap" ,libcap)) ;capability support in 'ls', etc.
'())))
(native-inputs
(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/pwd-long.sh"
+ " tests/split/fail.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)))))
+ #t))
+ ,@(if (hurd-target?)
+ `((add-after 'unpack 'remove-tests
+ (lambda _
+ (substitute* "Makefile.in"
+ ;; this test hangs
+ (("^ *tests/misc/timeout-group.sh.*") ""))
+ #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/")))
(outputs '("out"))
(inputs '())))
+(define-public coreutils-8.30
+ ;; XXX: This version is kept just so we can run PRoot tests.
+ (hidden-package
+ (package
+ (inherit coreutils-minimal)
+ (version "8.30")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/coreutils/coreutils-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0mxhw43d4wpqmvg0l4znk1vm10fy92biyh90lzdnqjcic2lb6cg8"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments coreutils-minimal)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (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)))))))))
+
(define-public gnu-make
(package
(name "make")
(inputs `(("guile" ,guile-3.0)))
(outputs '("out" "debug"))
(arguments
- '(#:phases
+ `(,@(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)
(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")
;; 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
+ (package
+ (inherit binutils)
(version "2.33.1")
(source (origin
(inherit (package-source binutils))
(properties '())))
(define-public binutils-gold
- (package
- (inherit binutils)
+ (package/inherit binutils+documentation
(name "binutils-gold")
(arguments
`(#:phases
(native-inputs
`(("bc" ,bc)))
(inputs
- `(("gcc:lib" ,gcc "lib")))))
+ `(("gcc:lib" ,(canonical-package gcc) "lib")))))
(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
"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
"glibc-CVE-2018-11237.patch"))))
(properties `((lint-hidden-cve . ("CVE-2017-18269")))))) ; glibc-2.27-git-fixes
-(define-public glibc-2.26
- (package
- (inherit glibc)
- ;; This version number corresponds to the output of `git describe` and the
- ;; archive can be generated by checking out the commit ID and running:
- ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
- ;; See <https://bugs.gnu.org/29406> for why this was necessary.
- (version "2.26.105-g0890d5379c")
- (source (origin
- (inherit (package-source glibc))
- (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
- "glibc-" (version-major+minor version) "-"
- (caddr (string-split version #\.)) ".tar.xz"))
- (sha256
- (base32
- "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
- (patches (search-patches "glibc-ldd-x86_64.patch"
- "glibc-versioned-locpath.patch"
- "glibc-allow-kernel-2.6.32.patch"))))))
-
-(define-public glibc-2.25
- (package
- (inherit glibc)
- (version "2.25")
- (source (origin
- (inherit (package-source glibc))
- (uri (string-append "mirror://gnu/glibc/glibc-"
- version ".tar.xz"))
- (sha256
- (base32
- "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
- (patches (search-patches "glibc-ldd-x86_64.patch"
- "glibc-versioned-locpath.patch"
- "glibc-vectorized-strcspn-guards.patch"
- "glibc-CVE-2017-1000366-pt1.patch"
- "glibc-CVE-2017-1000366-pt2.patch"
- "glibc-CVE-2017-1000366-pt3.patch"))))))
-
-(define-public glibc-2.24
- (package
- (inherit glibc)
- (version "2.24")
- (source (origin
- (inherit (package-source glibc))
- (uri (string-append "mirror://gnu/glibc/glibc-"
- version ".tar.xz"))
- (sha256
- (base32
- "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r"))
- (patches (search-patches "glibc-ldd-x86_64.patch"
- "glibc-versioned-locpath.patch"
- "glibc-vectorized-strcspn-guards.patch"
- "glibc-CVE-2015-5180.patch"
- "glibc-CVE-2017-1000366-pt1.patch"
- "glibc-CVE-2017-1000366-pt2.patch"
- "glibc-CVE-2017-1000366-pt3.patch"))))))
-
-(define-public glibc-2.23
- (package
- (inherit glibc)
- (version "2.23")
- (source (origin
- (inherit (package-source glibc))
- (uri (string-append "mirror://gnu/glibc/glibc-"
- version ".tar.xz"))
- (sha256
- (base32
- "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl"))
- (patches (search-patches "glibc-ldd-x86_64.patch"
- "glibc-versioned-locpath.patch"
- "glibc-vectorized-strcspn-guards.patch"
- "glibc-CVE-2015-5180.patch"
- "glibc-CVE-2016-3075.patch"
- "glibc-CVE-2016-3706.patch"
- "glibc-CVE-2016-4429.patch"
- "glibc-CVE-2017-1000366-pt1.patch"
- "glibc-CVE-2017-1000366-pt2.patch"
- "glibc-CVE-2017-1000366-pt3.patch"))))))
-
-(define-public glibc-2.22
- (package
- (inherit glibc)
- (version "2.22")
- (source (origin
- (inherit (package-source glibc))
- (uri (string-append "mirror://gnu/glibc/glibc-"
- version ".tar.xz"))
- (sha256
- (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"
- "glibc-CVE-2016-3075.patch"
- "glibc-CVE-2016-3706.patch"
- "glibc-CVE-2016-4429.patch"
- "glibc-CVE-2017-1000366-pt1.patch"
- "glibc-CVE-2017-1000366-pt2.patch"
- "glibc-CVE-2017-1000366-pt3.patch"))))
- (arguments
- (substitute-keyword-arguments (package-arguments glibc)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-before 'configure 'fix-pwd
- (lambda _
- ;; Use `pwd' instead of `/bin/pwd' for glibc-2.22.
- (substitute* "configure"
- (("/bin/pwd") "pwd"))
- #t))))))))
-
(define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC."
(package (inherit base-gcc)
(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
(outputs '("out"))
(propagated-inputs `(("gnumach-headers" ,gnumach-headers)
("hurd-headers" ,hurd-headers)))
+ (native-inputs
+ `(("mig" ,(if (%current-target-system)
+ ;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG,
+ ;; hence this hack.
+ (package
+ (inherit mig)
+ (arguments `(#:system "i686-linux")))
+ mig))
+ ,@(package-native-inputs glibc)))
(arguments
(substitute-keyword-arguments (package-arguments glibc)
;; We just pass the flags really needed to build the headers.
(define-public tzdata
(package
(name "tzdata")
- (version "2019c")
+ (version "2020a")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0z7w1yv37cfk8yhix2cillam091vgp1j4g8fv84261q9mdnq1ivr"))))
+ "18lrp0zh8m931jjlrv8lvjas4ka5dfkzdbwnbw5lwd2dlbn62wal"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
version ".tar.gz"))
(sha256
(base32
- "1m3y2rnf1nggxxhxplab5zdd5whvar3ijyrv7lifvm82irkd7szn"))))))
+ "0sfnlqw1p93r7klny69rwr94fh22mz632h52phgzfgg01q9gfakx"))))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
;;; package.
(define-public tzdata-for-tests
(hidden-package
- (package/inherit tzdata)))
+ (package
+ (inherit tzdata)
+ (version "2019c")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://data.iana.org/time-zones/releases/tzdata"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0z7w1yv37cfk8yhix2cillam091vgp1j4g8fv84261q9mdnq1ivr"))))
+ (inputs
+ `(("tzcode" ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://data.iana.org/time-zones/releases/tzcode"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1m3y2rnf1nggxxhxplab5zdd5whvar3ijyrv7lifvm82irkd7szn")))))))))
(define-public libiconv
(package