diff options
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r-- | gnu/packages/base.scm | 243 |
1 files changed, 107 insertions, 136 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a476837102..7b33a1d517 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -44,9 +44,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial) - #:use-module (ice-9 match) - #:export (glibc)) + #:use-module (guix build-system trivial)) ;;; Commentary: ;;; @@ -77,14 +75,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.25") + (version "2.22") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "0c38b67cnwchwzv4wq2gpz6smkhdxrac2hhssv8f0l04qnx867p2")) + "1srn321x7whlhs5ks36zlcrrmj4iahll8fxwsh1vbz3v04px54fa")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it @@ -139,34 +137,17 @@ implementation offers several extensions over the standard utility.") (define-public tar (package (name "tar") - (version "1.29") + (version "1.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/tar/tar-" version ".tar.xz")) (sha256 (base32 - "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) - (patches (search-patches "tar-skip-unreliable-tests.patch")))) + "1wi2zwm4c9r3h3b8y4w0nm0qq897kn8kyj9k22ba0iqvxj48vvk4")) + (patches (search-patches "tar-d_ino_in_dirent-fix.patch" + "tar-skip-unreliable-tests.patch")))) (build-system gnu-build-system) - ;; Note: test suite requires ~1GiB of disk space. - (arguments - '(#: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. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "src/system.c" - (("/bin/sh") - (string-append bash "/bin/sh"))) - #t)))))) - - ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able - ;; to refer to the target Bash. - (inputs (if (%current-target-system) - `(("bash" ,bash)) - '())) - (synopsis "Managing tar archives") (description "Tar provides the ability to create tar archives, as well as the @@ -262,14 +243,23 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.25") + (version "8.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "11yfrnb94xzmvi4lhclkcmkqsbhww64wf234ya1aacjvg82prrii")))) + "0w11jw3fb5sslf0f72kxy7llxgk1ia3a6bcw0c9kmvxrlj355mx2")) + (patches + (list (origin + (method url-fetch) + (uri "http://git.savannah.gnu.org/cgit/coreutils.git/\ +patch/?id=3ba68f9e64fa2eb8af22d510437a0c6441feb5e0") + (sha256 + (base32 + "1dnlszhc8lihhg801i9sz896mlrgfsjfcz62636prb27k5hmixqz")) + (file-name "coreutils-tail-inotify-race.patch")))))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! @@ -325,14 +315,14 @@ functionality beyond that which is outlined in the POSIX standard.") (define-public gnu-make (package (name "make") - (version "4.2") + (version "4.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/make/make-" version ".tar.bz2")) (sha256 (base32 - "0pv5rvz5pp4njxiz3syf786d2xp4j7gzddwjvgw5zmz55yvf6p2f")) + "19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb")) (patches (search-patches "make-impure-dirs.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile @@ -473,17 +463,17 @@ store.") (export make-ld-wrapper) -(define-public glibc/linux +(define-public glibc (package (name "glibc") - (version "2.23") + (version "2.22") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")) + "0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -492,14 +482,17 @@ store.") (("use_ldconfig=yes") "use_ldconfig=no"))) (modules '((guix build utils))) - (patches (search-patches "glibc-ldd-x86_64.patch" - "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch")))) + (patches + (search-patches "glibc-ldd-x86_64.patch" + "glibc-locale-incompatibility.patch" + "glibc-versioned-locpath.patch" + "glibc-o-largefile.patch" + "glibc-CVE-2015-7547.patch")))) (build-system gnu-build-system) ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc ;; users should automatically pull Linux headers as well. - (propagated-inputs `(("kernel-headers" ,linux-libre-headers))) + (propagated-inputs `(("linux-headers" ,linux-libre-headers))) (outputs '("out" "debug")) @@ -511,7 +504,7 @@ store.") #:parallel-build? #f ;; The libraries have an empty RUNPATH, but some, such as the versioned - ;; libraries (libdl-2.23.so, etc.) have ld.so marked as NEEDED. Since + ;; libraries (libdl-2.22.so, etc.) have ld.so marked as NEEDED. Since ;; these libraries are always going to be found anyway, just skip ;; RUNPATH checks. #:validate-runpath? #f @@ -543,7 +536,7 @@ store.") (assoc-ref ,(if (%current-target-system) '%build-target-inputs '%build-inputs) - "kernel-headers") + "linux-headers") "/include") ;; This is the default for most architectures as of GNU libc 2.21, @@ -557,7 +550,7 @@ store.") "/bin/bash") ;; XXX: Work around "undefined reference to `__stack_chk_guard'". - "libc_cv_ssp=no" "libc_cv_ssp_strong=no") + "libc_cv_ssp=no") #:tests? #f ; XXX #:phases (modify-phases %standard-phases @@ -571,6 +564,10 @@ store.") ;; but cross-base uses it as a native input. (bash (or (assoc-ref inputs "static-bash") (assoc-ref native-inputs "static-bash")))) + ;; Use `pwd', not `/bin/pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + ;; Install the rpc data base file under `$out/etc/rpc'. ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; (substitute* "sunrpc/Makefile" @@ -651,104 +648,11 @@ with the Linux kernel.") (license lgpl2.0+) (home-page "http://www.gnu.org/software/libc/"))) -(define-public glibc/hurd - ;; The Hurd's libc variant. - (package (inherit glibc/linux) - (name "glibc-hurd") - (version "2.19") - (source (origin - (method url-fetch) - (uri (string-append "http://alpha.gnu.org/gnu/hurd/glibc-" - version "-hurd+libpthread-20160518" ".tar.gz")) - (sha256 - (base32 - "12zmdjviybpsdb2kq4cg98rds7909f0cc96fzdahdfrzlxx1q0px")))) - - ;; Libc provides <hurd.h>, which includes a bunch of Hurd and Mach headers, - ;; so both should be propagated. - (propagated-inputs `(("hurd-core-headers" ,hurd-core-headers))) - (native-inputs - `(,@(package-native-inputs glibc/linux) - ("mig" ,mig) - ("perl" ,perl))) - - (arguments - (substitute-keyword-arguments (package-arguments glibc/linux) - ((#:phases original-phases) - ;; Add libmachuser.so and libhurduser.so to libc.so's search path. - ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-07/msg00051.html>. - `(alist-cons-after - 'install 'augment-libc.so - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/lib/libc.so") - (("/[^ ]+/lib/libc.so.0.3") - (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) - #t) - (alist-cons-after - 'pre-configure 'pre-configure-set-pwd - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - ,original-phases))) - ((#:configure-flags original-configure-flags) - `(append (list "--host=i586-pc-gnu" - - ;; We need this to get a working openpty() function. - "--enable-pt_chown" - - ;; nscd fails to build for GNU/Hurd: - ;; <https://lists.gnu.org/archive/html/bug-hurd/2014-07/msg00006.html>. - ;; Disable it. - "--disable-nscd") - (filter (lambda (flag) - (not (string-prefix? "--enable-kernel=" flag))) - ,original-configure-flags))))) - (synopsis "The GNU C Library (GNU Hurd variant)") - (supported-systems %hurd-systems))) - -(define* (glibc-for-target #:optional - (target (or (%current-target-system) - (%current-system)))) - "Return the glibc for TARGET, GLIBC/LINUX for a Linux host or -GLIBC/HURD for a Hurd host" - (match target - ((or "i586-pc-gnu" "i586-gnu") glibc/hurd) - (_ glibc/linux))) - -(define-syntax glibc - (identifier-syntax (glibc-for-target))) - -(define-public glibc-2.22 - ;; The old libc, which we use mostly to build locale data in the old format - ;; (which the new libc can cope with.) - (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")))) - (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.21 - (substitute* "configure" - (("/bin/pwd") "pwd")))))))))) - (define-public glibc-2.21 ;; The old libc, which we use mostly to build locale data in the old format ;; (which the new libc can cope with.) (package - (inherit glibc-2.22) + (inherit glibc) (version "2.21") (source (origin (inherit (package-source glibc)) @@ -787,7 +691,7 @@ the 'share/locale' sub-directory of this package.") ((#:configure-flags flags) `(append ,flags ;; Use $(libdir)/locale/X.Y as is the case by default. - (list (string-append "libc_cv_complocaledir=" + (list (string-append "libc_cv_localedir=" (assoc-ref %outputs "out") "/lib/locale/" ,(package-version glibc)))))))))) @@ -863,6 +767,73 @@ variety of options. It is an alternative to the shell \"type\" built-in command.") (license gpl3+))) ; some files are under GPLv2+ +(define-public glibc/hurd + ;; The Hurd's libc variant. + (package (inherit glibc) + (name "glibc-hurd") + (version "2.18") + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.sv.gnu.org/hurd/glibc") + (commit "cc94b3cfe65523f980359e5f0e93a26196bda1d3"))) + (sha256 + (base32 + "17gsh0kaz0zyvghjmx861mi2p65m9901lngi179x61zm6v2v3xc4")) + (file-name (string-append name "-" version)) + (patches (search-patches "glibc-hurd-extern-inline.patch")))) + + ;; Libc provides <hurd.h>, which includes a bunch of Hurd and Mach headers, + ;; so both should be propagated. + (propagated-inputs `(("gnumach-headers" ,gnumach-headers) + ("hurd-headers" ,hurd-headers) + ("hurd-minimal" ,hurd-minimal))) + (native-inputs + `(,@(package-native-inputs glibc) + ("patch/libpthread-patch" ,(search-patch "libpthread-glibc-preparation.patch")) + ("mig" ,mig) + ("perl" ,perl) + ("libpthread" ,(origin + (method git-fetch) + (uri (git-reference + (url "git://git.sv.gnu.org/hurd/libpthread") + (commit "0ef7b75c4ba91b6660f0d3d8b51d14d25e3d5bfb"))) + (sha256 + (base32 + "031py18fls15z0wprni33mf762kg6fx8xqijppimhp83yp6ky3l3")) + (file-name "libpthread"))))) + + (arguments + (substitute-keyword-arguments (package-arguments glibc) + ((#:configure-flags original-configure-flags) + `(append (list "--host=i686-pc-gnu" + + ;; nscd fails to build for GNU/Hurd: + ;; <https://lists.gnu.org/archive/html/bug-hurd/2014-07/msg00006.html>. + ;; Disable it. + "--disable-nscd") + (filter (lambda (flag) + (not (or (string-prefix? "--with-headers=" flag) + (string-prefix? "--enable-kernel=" flag)))) + ;; Evaluate 'original-configure-flags' in a + ;; lexical environment that has a dummy + ;; "linux-headers" input, to prevent errors. + (let ((%build-inputs `(("linux-headers" . "@DUMMY@") + ,@%build-inputs))) + ,original-configure-flags)))) + ((#:phases phases) + `(alist-cons-after + 'unpack 'prepare-libpthread + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "libpthread") "libpthread") + + (system* "patch" "--force" "-p1" "-i" + (assoc-ref inputs "patch/libpthread-patch")) + #t) + ,phases)))) + (synopsis "The GNU C Library (GNU Hurd variant)") + (supported-systems %hurd-systems))) + (define-public glibc/hurd-headers (package (inherit glibc/hurd) (name "glibc-hurd-headers") @@ -874,7 +845,7 @@ command.") ;; We just pass the flags really needed to build the headers. ((#:configure-flags _) `(list "--enable-add-ons" - "--host=i586-pc-gnu" + "--host=i686-pc-gnu" "--enable-obsolete-rpc")) ((#:phases _) '(alist-replace |