From db6190899ea15d3b66d6b2d82bdeaee442423100 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 17 Dec 2013 20:33:26 +0100 Subject: gnu: gnu-build-system: Add CC_FOR_BUILD to configure flags. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/gnu-build-system.scm: Add new configure flag: CC_FOR_BUILD=gcc * gnu/packages/gnupg.scm, gnu/packages/guile.scm, gnu/packages/make-bootstrap.scm: remove CC_FOR_BUILD from these package descriptions. Signed-off-by: Ludovic Courtès --- gnu/packages/gnupg.scm | 4 ---- gnu/packages/guile.scm | 6 +----- gnu/packages/make-bootstrap.scm | 5 +---- guix/build/gnu-build-system.scm | 5 ++++- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index fb7b4975ac..be13eb0ba0 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -44,10 +44,6 @@ (base32 "0pz58vr12qihq2f0bypjxsb6cf6ajq5258fmfm8s6lvwm3b9xz6a")))) (build-system gnu-build-system) - (arguments - (if (%current-target-system) - '(#:configure-flags '("CC_FOR_BUILD=gcc")) - '())) (home-page "http://gnupg.org") (synopsis "Libgpg-error, a small library that defines common error values for all GnuPG components") diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 40d9ae7df8..3dbb5d8429 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -150,11 +150,7 @@ without requiring the source code to be rewritten.") (substitute* "module/ice-9/popen.scm" (("/bin/sh") (string-append bash "/bin/bash"))))) - %standard-phases) - - ,@(if (%current-target-system) - '(#:configure-flags '("CC_FOR_BUILD=gcc")) - '()))) + %standard-phases))) (native-search-paths (list (search-path-specification diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index d621a634a3..97a13b4b74 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -502,10 +502,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." `(;; When `configure' checks for ltdl availability, it ;; doesn't try to link using libtool, and thus fails ;; because of a missing -ldl. Work around that. - #:configure-flags '("LDFLAGS=-ldl" - ,@(if (%current-target-system) - '("CC_FOR_BUILD=gcc") - '())) + #:configure-flags '("LDFLAGS=-ldl") #:phases (alist-cons-before 'configure 'static-guile diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 65c9fcd1bd..6d26392c8f 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -136,7 +136,10 @@ makefiles." (bash (or (and=> (assoc-ref (or native-inputs inputs) "bash") (cut string-append <> "/bin/bash")) "/bin/sh")) - (flags `(,(string-append "CONFIG_SHELL=" bash) + (flags `(,@(if target ; cross building + '("CC_FOR_BUILD=gcc") + '()) + ,(string-append "CONFIG_SHELL=" bash) ,(string-append "SHELL=" bash) ,(string-append "--prefix=" prefix) "--enable-fast-install" ; when using Libtool -- cgit v1.2.3 From 8fd6487e1c6ba4b3c8615973389f33335389af13 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 7 Jan 2014 18:08:51 +0100 Subject: gnu: glibc: Build the Info pages. * gnu/packages/base.scm (glibc): Add 'native-inputs' field. (perl-boot0): New variable. (linux-libre-headers-boot0): Use it. (texinfo-boot0): New variable. (glibc-final-with-bootstrap-bash): Add 'native-inputs' field. --- gnu/packages/base.scm | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e17933b36f..45636e3bd3 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; Copyright © 2012 Nikita Karetnikov ;;; ;;; This file is part of GNU Guix. @@ -31,6 +31,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages perl) #:use-module (gnu packages linux) + #:use-module (gnu packages texinfo) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -473,6 +474,11 @@ library for working with executable and object formats is also included.") %standard-phases)))) (inputs `(("static-bash" ,(static-package bash-light)))) + + ;; To build the manual, we need Texinfo and Perl. + (native-inputs `(("texinfo" ,texinfo) + ("perl" ,perl))) + (synopsis "The GNU C Library") (description "Any Unix-like operating system needs a C library: the library which @@ -735,6 +741,13 @@ identifier SYSTEM." (native-inputs (alist-delete "texinfo" (package-native-inputs gcc-4.8)))))) +(define perl-boot0 + (package-with-bootstrap-guile + (package-with-explicit-inputs perl + %boot0-inputs + (current-source-location) + #:guile %bootstrap-guile))) + (define (linux-libre-headers-boot0) "Return Linux-Libre header files for the bootstrap environment." ;; Note: this is wrapped in a thunk to nicely handle circular dependencies @@ -745,12 +758,20 @@ identifier SYSTEM." #:implicit-inputs? #f ,@(package-arguments linux-libre-headers))) (native-inputs - (let ((perl (package-with-explicit-inputs perl - %boot0-inputs - (current-source-location) - #:guile %bootstrap-guile))) - `(("perl" ,perl) - ,@%boot0-inputs)))))) + `(("perl" ,perl-boot0) + ,@%boot0-inputs))))) + +(define texinfo-boot0 + ;; Texinfo used to build libc's manual. + ;; We build without ncurses because it fails to build at this stage, and + ;; because we don't need the stand-alone Info reader. + ;; Also, use %BOOT0-INPUTS to avoid building Perl once more. + (let ((texinfo (package (inherit texinfo) + (inputs (alist-delete "ncurses" (package-inputs texinfo)))))) + (package-with-bootstrap-guile + (package-with-explicit-inputs texinfo %boot0-inputs + (current-source-location) + #:guile %bootstrap-guile)))) (define %boot1-inputs ;; 2nd stage inputs. @@ -784,6 +805,9 @@ identifier SYSTEM." "--enable-obsolete-rpc") ,flags))))) (propagated-inputs `(("linux-headers" ,(linux-libre-headers-boot0)))) + (native-inputs + `(("texinfo" ,texinfo-boot0) + ("perl" ,perl-boot0))) (inputs `( ;; A native GCC is needed to build `cross-rpcgen'. ("native-gcc" ,@(assoc-ref %boot0-inputs "gcc")) -- cgit v1.2.3 From aa6b0d6bf01aba60c6b5524e4422e7a4cebf01e4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 7 Jan 2014 18:10:01 +0100 Subject: gnu: make: Build with Guile support. * gnu/packages/base.scm (gnu-make, gnu-make-boot0): Add 'native-inputs' field. --- gnu/packages/base.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 45636e3bd3..606ca8325f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages linux) #:use-module (gnu packages texinfo) + #:use-module (gnu packages pkg-config) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -285,6 +286,7 @@ functionality beyond that which is outlined in the POSIX standard.") "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6")) (patches (list (search-patch "make-impure-dirs.patch"))))) (build-system gnu-build-system) + (native-inputs `(("pkg-config", pkg-config))) ; to detect Guile (inputs `(("guile" ,guile-2.0))) (outputs '("out" "debug")) (arguments @@ -589,6 +591,7 @@ and daylight-saving rules.") (copy-file "make" (string-append bin "/make")))) ,phases)))))) + (native-inputs '()) ; no need for 'pkg-config' (inputs %bootstrap-inputs)))) (define diffutils-boot0 -- cgit v1.2.3 From 6c95f363d5af8bd9e6745a58b60fac8c7696b962 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jan 2014 22:30:33 +0100 Subject: gnu: binutils: Upgrade to 2.24. * gnu/packages/patches/binutils-loongson-madd-fix.patch: Remove. * gnu-system.am (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (binutils): Upgrade to 2.24. Remove 'binutils-loongson-madd-fix.patch'. Remove 'outputs' field. Pass '--enable-install-libbfd'. --- gnu-system.am | 3 +- gnu/packages/base.scm | 18 ++++----- .../patches/binutils-loongson-madd-fix.patch | 44 ---------------------- 3 files changed, 9 insertions(+), 56 deletions(-) delete mode 100644 gnu/packages/patches/binutils-loongson-madd-fix.patch diff --git a/gnu-system.am b/gnu-system.am index fbf61d6ec1..dc840d3dbb 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013 Ludovic Courtès +# Copyright © 2012, 2013, 2014 Ludovic Courtès # Copyright © 2013 Andreas Enge # Copyright © 2013 Mark H Weaver # @@ -223,7 +223,6 @@ dist_patch_DATA = \ gnu/packages/patches/avahi-localstatedir.patch \ gnu/packages/patches/bigloo-gc-shebangs.patch \ gnu/packages/patches/binutils-ld-new-dtags.patch \ - gnu/packages/patches/binutils-loongson-madd-fix.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ gnu/packages/patches/cmake-fix-tests.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 606ca8325f..c827498273 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -314,24 +314,18 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.23.2") + (version "2.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy")) + "0ds1y7qa0xqihw4ihnsgg6bxanmb228r228ddvwzgrv4jszcbs75")) (patches (list (search-patch "binutils-ld-new-dtags.patch") - (search-patch "binutils-loongson-workaround.patch") - (search-patch "binutils-loongson-madd-fix.patch"))))) + (search-patch "binutils-loongson-workaround.patch"))))) (build-system gnu-build-system) - ;; Split Binutils in several outputs, mostly to avoid collisions in - ;; user profiles with GCC---e.g., libiberty.a. - (outputs '("out" ; ar, ld, binutils.info, etc. - "lib")) ; libbfd.a, bfd.h, etc. - ;; TODO: Add dependency on zlib + those for Gold. (arguments `(#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency @@ -343,7 +337,11 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; Glibc 2.17 has a "comparison of unsigned ;; expression >= 0 is always true" in wchar.h. - "--disable-werror"))) + "--disable-werror" + + ;; Install BFD. It ends up in a hidden directory, + ;; but it's here. + "--enable-install-libbfd"))) (synopsis "Binary utilities: bfd gas gprof ld") (description diff --git a/gnu/packages/patches/binutils-loongson-madd-fix.patch b/gnu/packages/patches/binutils-loongson-madd-fix.patch deleted file mode 100644 index 364ccd67e3..0000000000 --- a/gnu/packages/patches/binutils-loongson-madd-fix.patch +++ /dev/null @@ -1,44 +0,0 @@ -Fix the Loongson 2F specific fused multiply-add instructions on paired singles to -use the encoding recognized by the processor, as opposed to the mistaken english -Loongson 2F documentation. - -Patch by Mark H Weaver . - ---- binutils/opcodes/mips-opc.c.orig 2012-09-04 10:21:10.000000000 -0400 -+++ binutils/opcodes/mips-opc.c 2013-10-06 02:23:33.679983766 -0400 -@@ -931,7 +931,7 @@ - {"madd.s", "D,S,T", 0x72000018, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F }, - {"madd.ps", "D,R,S,T", 0x4c000026, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 }, - {"madd.ps", "D,S,T", 0x45600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E }, --{"madd.ps", "D,S,T", 0x71600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, -+{"madd.ps", "D,S,T", 0x72c00018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, - {"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 }, - {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 }, - {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, 0, G1 }, -@@ -1041,7 +1041,7 @@ - {"msub.s", "D,S,T", 0x72000019, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F }, - {"msub.ps", "D,R,S,T", 0x4c00002e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 }, - {"msub.ps", "D,S,T", 0x45600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E }, --{"msub.ps", "D,S,T", 0x71600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, -+{"msub.ps", "D,S,T", 0x72c00019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, - {"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 }, - {"msub", "s,t", 0x70000004, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 }, - {"msub", "7,s,t", 0x70000004, 0xfc00e7ff, MOD_a|RD_s|RD_t, 0, D32 }, -@@ -1157,7 +1157,7 @@ - {"nmadd.s", "D,S,T", 0x7200001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F }, - {"nmadd.ps","D,R,S,T", 0x4c000036, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 }, - {"nmadd.ps", "D,S,T", 0x4560001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E }, --{"nmadd.ps", "D,S,T", 0x7160001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, -+{"nmadd.ps", "D,S,T", 0x72c0001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, - {"nmsub.d", "D,R,S,T", 0x4c000039, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I4_33 }, - {"nmsub.d", "D,S,T", 0x4620001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E }, - {"nmsub.d", "D,S,T", 0x7220001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, -@@ -1166,7 +1166,7 @@ - {"nmsub.s", "D,S,T", 0x7200001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F }, - {"nmsub.ps","D,R,S,T", 0x4c00003e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 }, - {"nmsub.ps", "D,S,T", 0x4560001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E }, --{"nmsub.ps", "D,S,T", 0x7160001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, -+{"nmsub.ps", "D,S,T", 0x72c0001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F }, - /* nop is at the start of the table. */ - {"nor", "d,v,t", 0x00000027, 0xfc0007ff, WR_d|RD_s|RD_t, 0, I1 }, - {"nor", "t,r,I", 0, (int) M_NOR_I, INSN_MACRO, 0, I1 }, -- cgit v1.2.3 From 2a48cd9915cf904718efa196f55a64ef5750052f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jan 2014 22:30:57 +0100 Subject: gnu: gettext: Upgrade to 0.18.3.2. * gnu/packages/gettext.scm (gnu-gettext): Upgrade to 0.18.3.2. --- gnu/packages/gettext.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index a17b1ea001..e5a2c6e479 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -34,14 +34,14 @@ (define-public gnu-gettext (package (name "gettext") - (version "0.18.3.1") + (version "0.18.3.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gettext/gettext-" version ".tar.gz")) (sha256 (base32 - "0p940zmmw1lndvdhck2vrazikjhr02affwy47mmpfxqvacrrm3qd")))) + "1my5njl7mp663abpdn8qsm5i462wlhlnb5q50fmhgd0fsr9f996i")))) (build-system gnu-build-system) (inputs `(("expat" ,expat))) -- cgit v1.2.3 From 8e92b6b5b5f64596dda102380de8730416698615 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jan 2014 22:32:20 +0100 Subject: gnu: grep, coreutils: Upgrade. * gnu/packages/base.scm (grep): Upgrade to 2.16. (coreutils): Upgrade to 8.22. --- gnu/packages/base.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index c827498273..aae50d7069 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -70,14 +70,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.15") + (version "2.16") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "052kjsafg2x7n2zpy3iw4pzwf8fdfng5pcvi9v3chx3rb1786nmz")))) + "0qhiamxyzinmy2409lr8r0aa1in1y8v0kv6c80gz5jfq2d8fppqn")))) (build-system gnu-build-system) (synopsis "Print lines matching a pattern") (description @@ -232,14 +232,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.21") + (version "8.22") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd")))) + "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) -- cgit v1.2.3 From 17315967926581f13e372d2027686d87efc325de Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 11 Jan 2014 11:47:38 +0100 Subject: hydra: Add GCC, Binutils, and libc to the core package set. * build-aux/hydra/gnu-system.scm (%core-packages): Add GCC-FINAL, GLIBC-FINAL, and BINUTILS. --- build-aux/hydra/gnu-system.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 73031bf62c..4b0a922bb0 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -83,7 +83,8 @@ SYSTEM." (cut package-cross-derivation <> <> target <>)))) (define %core-packages - (list gmp mpfr mpc coreutils findutils diffutils patch sed grep + (list gcc-final glibc-final binutils + gmp mpfr mpc coreutils findutils diffutils patch sed grep gawk gnu-gettext hello guile-2.0 zlib gzip xz %bootstrap-binaries-tarball %binutils-bootstrap-tarball -- cgit v1.2.3 From fcaa7523d4f37d5b3c4bf459784e826f98252fe8 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 15 Jan 2014 16:37:54 +0100 Subject: gnu: mpc: Update to 1.0.2. * gnu/packages/multiprecision.scm (mpc): Update to 1.0.2. --- gnu/packages/multiprecision.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 6952f55b80..b77e307aea 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -77,13 +77,13 @@ floating-point computations with correct rounding.") (define-public mpc (package (name "mpc") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz")) (sha256 (base32 - "1zq0fidp1jii2j5k5n9hmx55a6wwid33gjzhimvxq9d5zrf82npd")))) + "1264h3ivldw5idph63x35dqqdzqqbxrm5vlir0xyx727i96zaqdm")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp) ; refers to both -- cgit v1.2.3 From 6ce206cb92ba803de7ff05410787f18ea7d37bae Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Jan 2014 17:22:53 +0100 Subject: Prefer local builds for "small" derivations. * gnu/system.scm (union, file-union, links): Pass #:local-build? #t to 'derivation-expression'. * guix/derivations.scm (imported-files, compiled-modules): Likewise. * guix/profiles.scm (profile-derivation): Likewise. --- gnu/system.scm | 11 +++++++---- guix/derivations.scm | 6 ++++-- guix/profiles.scm | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 6fd753f8fd..1b5ce7afc5 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -152,7 +152,8 @@ input tuples." #:system system #:inputs inputs #:modules '((guix build union)) - #:guile-for-build guile))) + #:guile-for-build guile + #:local-build? #t))) (define* (file-union files #:key (inputs '()) (name "file-union")) @@ -190,7 +191,8 @@ as an inputs; additional inputs, such as derivations, are taken from INPUTS." `(symlink ,target ,name))) files)) - #:inputs inputs)))) + #:inputs inputs + #:local-build? #t)))) (define (links inputs) "Return a directory with symbolic links to all of INPUTS. This is @@ -212,7 +214,8 @@ directories or regular files." (mlet %store-monad ((inputs (lower-inputs inputs))) (derivation-expression "links" builder - #:inputs inputs))) + #:inputs inputs + #:local-build? #t))) (define* (etc-directory #:key (locale "C") (timezone "Europe/Paris") diff --git a/guix/derivations.scm b/guix/derivations.scm index cc8e37c973..ae68bb1194 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -836,7 +836,8 @@ system, imported, and appears under FINAL-PATH in the resulting store path." (build-expression->derivation store name builder #:system system #:inputs files - #:guile-for-build guile))) + #:guile-for-build guile + #:local-build? #t))) (define* (imported-modules store modules #:key (name "module-import") @@ -902,7 +903,8 @@ they can refer to each other." (build-expression->derivation store name builder #:inputs `(("modules" ,module-drv)) #:system system - #:guile-for-build guile))) + #:guile-for-build guile + #:local-build? #t))) (define* (build-expression->derivation store name exp #:key diff --git a/guix/profiles.scm b/guix/profiles.scm index 1ff6c97f9f..c1fa8272ba 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -257,7 +257,8 @@ the given MANIFEST." ;; already valid. `((,name ,path) ,@deps))) (manifest-entries manifest)) - #:modules '((guix build union)))) + #:modules '((guix build union)) + #:local-build? #t)) (define (profile-regexp profile) "Return a regular expression that matches PROFILE's name and number." -- cgit v1.2.3 From ecb1b610d2e5ce02cab1edc3093c10ccacbc075e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Jan 2014 17:23:23 +0100 Subject: tests: Adjust to recent Binutils change. * tests/guix-package.sh: Refer to 'glibc:debug' instead of 'binutils:lib' since the latter no longer exists. --- tests/guix-package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index b79c4951d8..253a9317a6 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -159,7 +159,7 @@ fi guix package --bootstrap -i guile gcc -p "$profile" -n # Make sure the `:' syntax works. -guix package --bootstrap -i "binutils:lib" -p "$profile" -n +guix package --bootstrap -i "glibc:debug" -p "$profile" -n # Make sure nonexistent outputs are reported. guix package --bootstrap -i "guile-bootstrap:out" -p "$profile" -n -- cgit v1.2.3 From d43547f12d4eae19845f3bf13a53a050af965063 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Jan 2014 13:24:19 +0100 Subject: gnu: libffi: Leave a copy of headers where libffi.pc expects them. Suggested by Sree Harsha Totakura . * gnu/packages/libffi.scm (libffi): Symlink header files instead of moving them. --- gnu/packages/libffi.scm | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index d1a834d9c5..c5e265087e 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,18 +25,12 @@ (define-public libffi (let ((post-install-phase - ;; Install headers in the right place. + ;; Keep headers where libffi.pc expects them, but also make them + ;; available in $includedir where some users expect them. '(lambda* (#:key outputs #:allow-other-keys) (define out (assoc-ref outputs "out")) - (mkdir (string-append out "/include")) - (with-directory-excursion - (string-append out "/lib/libffi-3.0.13/include") - (for-each (lambda (h) - (format #t "moving `~a' to includedir~%" h) - (rename-file h (string-append out "/include/" h))) - (scandir "." - (lambda (x) - (not (member x '("." "..")))))))))) + (symlink (string-append out "/lib/libffi-3.0.13/include") + (string-append out "/include"))))) (package (name "libffi") (version "3.0.13") @@ -50,9 +44,7 @@ "077ibkf84bvcd6rw1m6jb107br63i2pp301rkmsbgg6300adxp8x")) (patches (list (search-patch "libffi-mips-n32-fix.patch"))))) (build-system gnu-build-system) - (arguments `(#:modules ((guix build utils) (guix build gnu-build-system) - (ice-9 ftw) (srfi srfi-26)) - #:phases (alist-cons-after 'install 'post-install + (arguments `(#:phases (alist-cons-after 'install 'post-install ,post-install-phase %standard-phases))) (outputs '("out" "debug")) -- cgit v1.2.3 From 65529e49ff5b9052544271b1b7923feed4312849 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Jan 2014 23:45:59 +0100 Subject: build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com. Suggested by John Darrington and Mark H Weaver . * guix/build/gnu-build-system.scm (configure): Pass --localstatedir=/var --sharedstatedir=/com. * gnu/packages/admin.scm (dmd): Remove 'arguments' field. * gnu/packages/avahi.scm (avahi): Remove --localstatedir flag. * gnu/packages/glib.scm (dbus): Likewise. * gnu/packages/package-management.scm (guix): Likewise. * gnu/packages/pulseaudio.scm (pulseaudio): Likewise. --- gnu/packages/admin.scm | 2 -- gnu/packages/avahi.scm | 3 +-- gnu/packages/glib.scm | 5 +---- gnu/packages/package-management.scm | 3 +-- gnu/packages/pulseaudio.scm | 2 +- guix/build/gnu-build-system.scm | 8 +++++++- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index dfbf20d56f..9520cab2d5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -51,8 +51,6 @@ "07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg")) (patches (list (search-patch "dmd-getpw.patch"))))) (build-system gnu-build-system) - (arguments - '(#:configure-flags '("--localstatedir=/var"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.0))) (synopsis "Daemon managing daemons") diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index bc70878d46..d1023cd4b6 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +44,6 @@ (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-distro=none" - "--localstatedir=/var" ; for the DBus socket "--disable-python" "--disable-mono" "--disable-doxygen-doc" diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 0560915b24..adaa8aa3aa 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -67,10 +67,7 @@ (patches (list (search-patch "dbus-localstatedir.patch"))))) (build-system gnu-build-system) (arguments - '(#:configure-flags (list ;; Install the system bus socket under /var. - "--localstatedir=/var" - - ;; XXX: Fix the following to allow system-wide + '(#:configure-flags (list ;; XXX: Fix the following to allow system-wide ;; config. ;; "--sysconfdir=/etc" diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index f94f8fc919..cee372e81c 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,7 +43,6 @@ (build-system gnu-build-system) (arguments `(#:configure-flags (list - "--localstatedir=/var" (string-append "--with-libgcrypt-prefix=" (assoc-ref %build-inputs "libgcrypt"))) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 8bf48c2a89..859e1d6bca 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -148,7 +148,7 @@ parse JSON formatted strings back into the C representation of JSON objects.") "pulseaudio-volume-test.patch"))))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--localstatedir=/var" ;"--sysconfdir=/etc" + `(#:configure-flags '(;;"--sysconfdir=/etc" "--disable-oss-output") #:phases (alist-cons-before 'check 'pre-check diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 6d26392c8f..ed870ade88 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -142,6 +142,12 @@ makefiles." ,(string-append "CONFIG_SHELL=" bash) ,(string-append "SHELL=" bash) ,(string-append "--prefix=" prefix) + + ;; Keep modifiable state directories outside of the + ;; store (Autoconf 2.70 will add '--runstatedir'.) + "--localstatedir=/var" + "--sharedstatedir=/com" + "--enable-fast-install" ; when using Libtool ;; Produce multiple outputs when specific output names -- cgit v1.2.3 From 49a8b80da63a50a1ca3a6b8c14c21b362177dc9f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Jan 2014 08:57:37 +0100 Subject: Revert "build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com." This reverts commit 65529e49ff5b9052544271b1b7923feed4312849. --- gnu/packages/admin.scm | 2 ++ gnu/packages/avahi.scm | 3 ++- gnu/packages/glib.scm | 5 ++++- gnu/packages/package-management.scm | 3 ++- gnu/packages/pulseaudio.scm | 2 +- guix/build/gnu-build-system.scm | 8 +------- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 9520cab2d5..dfbf20d56f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -51,6 +51,8 @@ "07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg")) (patches (list (search-patch "dmd-getpw.patch"))))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--localstatedir=/var"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.0))) (synopsis "Daemon managing daemons") diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index d1023cd4b6..bc70878d46 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,6 +44,7 @@ (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-distro=none" + "--localstatedir=/var" ; for the DBus socket "--disable-python" "--disable-mono" "--disable-doxygen-doc" diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index adaa8aa3aa..0560915b24 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -67,7 +67,10 @@ (patches (list (search-patch "dbus-localstatedir.patch"))))) (build-system gnu-build-system) (arguments - '(#:configure-flags (list ;; XXX: Fix the following to allow system-wide + '(#:configure-flags (list ;; Install the system bus socket under /var. + "--localstatedir=/var" + + ;; XXX: Fix the following to allow system-wide ;; config. ;; "--sysconfdir=/etc" diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index cee372e81c..f94f8fc919 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +43,7 @@ (build-system gnu-build-system) (arguments `(#:configure-flags (list + "--localstatedir=/var" (string-append "--with-libgcrypt-prefix=" (assoc-ref %build-inputs "libgcrypt"))) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 859e1d6bca..8bf48c2a89 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -148,7 +148,7 @@ parse JSON formatted strings back into the C representation of JSON objects.") "pulseaudio-volume-test.patch"))))) (build-system gnu-build-system) (arguments - `(#:configure-flags '(;;"--sysconfdir=/etc" + `(#:configure-flags '("--localstatedir=/var" ;"--sysconfdir=/etc" "--disable-oss-output") #:phases (alist-cons-before 'check 'pre-check diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index ed870ade88..6d26392c8f 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2012, 2013 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -142,12 +142,6 @@ makefiles." ,(string-append "CONFIG_SHELL=" bash) ,(string-append "SHELL=" bash) ,(string-append "--prefix=" prefix) - - ;; Keep modifiable state directories outside of the - ;; store (Autoconf 2.70 will add '--runstatedir'.) - "--localstatedir=/var" - "--sharedstatedir=/com" - "--enable-fast-install" ; when using Libtool ;; Produce multiple outputs when specific output names -- cgit v1.2.3 From 2c1dea853d98c16f9f15b731d7d5950e4d79b58b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 6 Feb 2014 12:17:16 +0100 Subject: gnu: coreutils: Move Perl to 'native-inputs'. * gnu/packages/base.scm (coreutils): Add 'native-inputs' field. This should allow cross builds to have man pages, and work around this 'dummy-man' bug: . --- gnu/packages/base.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index aae50d7069..ac90b02812 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -242,12 +242,11 @@ used to apply commands with arbitrarily long arguments.") "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux - ("gmp" ,gmp) - - ;; Perl is needed to run tests; remove it from cross builds. - ,@(if (%current-target-system) - '() - `(("perl" ,perl))))) + ("gmp" ,gmp))) + (native-inputs + ;; Perl is needed to run tests in native builds, and to run the bundled + ;; copy of help2man. + `(("perl" ,perl))) (outputs '("out" "debug")) (arguments `(#:parallel-build? #f ; help2man may be called too early -- cgit v1.2.3 From cc0a12822659d2eadaf0401d1660f558da004b4b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 6 Feb 2014 14:06:28 +0100 Subject: gnu: binutils: Build with --enable-deterministic-archives. * gnu/packages/base.scm (binutils): Add '--enable-deterministic-archives' to #:configure-flags. Suggestion from Lunar's 2014 FOSDEM talk on reproducible builds. --- gnu/packages/base.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index ac90b02812..385acdef98 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -340,7 +340,11 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; Install BFD. It ends up in a hidden directory, ;; but it's here. - "--enable-install-libbfd"))) + "--enable-install-libbfd" + + ;; Make sure 'ar' and 'ranlib' produce archives in a + ;; deterministic fashion. + "--enable-deterministic-archives"))) (synopsis "Binary utilities: bfd gas gprof ld") (description -- cgit v1.2.3 From 7f31c71cb8f37e0baadb72e3f205ce55037adfba Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 10 Feb 2014 18:27:42 +0100 Subject: gnu: coreutils: Fix cross-compilation issue with 'dummy-man'. This should work around the bug described at . * gnu/packages/base.scm (coreutils)[patches]: Add 'coreutils-dummy-man.patch'. [native-inputs]: Don't pass PERL when (%current-target-system) is true. * gnu/packages/patches/coreutils-dummy-man.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/base.scm | 11 ++++++++--- gnu/packages/patches/coreutils-dummy-man.patch | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/coreutils-dummy-man.patch diff --git a/gnu-system.am b/gnu-system.am index 1f6fcf24d6..244012037d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -234,6 +234,7 @@ dist_patch_DATA = \ gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ gnu/packages/patches/cmake-fix-tests.patch \ + gnu/packages/patches/coreutils-dummy-man.patch \ gnu/packages/patches/cpio-gets-undeclared.patch \ gnu/packages/patches/dbus-localstatedir.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 385acdef98..d6f75be238 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -239,14 +239,19 @@ used to apply commands with arbitrarily long arguments.") version ".tar.xz")) (sha256 (base32 - "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")))) + "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")) + (patches (list (search-patch "coreutils-dummy-man.patch"))))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp))) (native-inputs ;; Perl is needed to run tests in native builds, and to run the bundled - ;; copy of help2man. - `(("perl" ,perl))) + ;; copy of help2man. However, don't pass it when cross-compiling since + ;; that would lead it to try to run programs to get their '--help' output + ;; for help2man. + (if (%current-target-system) + '() + `(("perl" ,perl)))) (outputs '("out" "debug")) (arguments `(#:parallel-build? #f ; help2man may be called too early diff --git a/gnu/packages/patches/coreutils-dummy-man.patch b/gnu/packages/patches/coreutils-dummy-man.patch new file mode 100644 index 0000000000..6c43389994 --- /dev/null +++ b/gnu/packages/patches/coreutils-dummy-man.patch @@ -0,0 +1,17 @@ +Coreutils commit b3578fc9ffe70b9466687f9f6470a85f1a0ab14f. + + * man/dummy-man: Recognize the option --info-page=... as no-op. + +This fixes "dummy-man: too many non-option arguments" when +cross-compiling. + +--- a/man/dummy-man ++++ b/man/dummy-man +@@ -30,6 +30,7 @@ while test $# -gt 0; do + # in the makefile. + --include=*);; + --include) shift;; ++ --info-page=*);; + -*) fatal_ "invalid or unrecognized help2man option '$1'";; + --) shift; break;; + *) break;; -- cgit v1.2.3 From c2e65167212f15093f672ebc49f3f7d4a51fcd2b Mon Sep 17 00:00:00 2001 From: John Darrington Date: Mon, 10 Feb 2014 21:35:30 +0100 Subject: build-system/gnu: Set the docdir to "share/doc" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/build/gnu-build-system.scm (configure): Change docdir directory from "doc" to "share/doc". Signed-off-by: Ludovic Courtès --- guix/build/gnu-build-system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 6d26392c8f..4cda7fc11a 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -163,7 +163,7 @@ makefiles." '()) ,@(if docdir (list (string-append "--docdir=" docdir - "/doc/" (package-name))) + "/share/doc/" (package-name))) '()) ,@(if target ; cross building (list (string-append "--host=" target)) -- cgit v1.2.3 From 99662b8dbf420d0112f83b7daddcecfb1bcb9bad Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 10 Feb 2014 22:37:08 +0100 Subject: gnu: glibc: Upgrade to 2.19. * gnu/packages/base.scm (glibc): Upgrade to 2.19. Remove 'glibc-make-4.0.patch'. * gnu/packages/patches/glibc-make-4.0.patch: Remove. * gnu-system.am (dist_patch_DATA): Adjust accordingly. --- gnu-system.am | 1 - gnu/packages/base.scm | 8 +++----- gnu/packages/patches/glibc-make-4.0.patch | 12 ------------ 3 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 gnu/packages/patches/glibc-make-4.0.patch diff --git a/gnu-system.am b/gnu-system.am index 244012037d..d993571a1a 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -253,7 +253,6 @@ dist_patch_DATA = \ gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ - gnu/packages/patches/glibc-make-4.0.patch \ gnu/packages/patches/gobject-introspection-cc.patch \ gnu/packages/patches/grub-gets-undeclared.patch \ gnu/packages/patches/gstreamer-0.10-bison3.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index d6f75be238..f0fe5caaa3 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -364,14 +364,14 @@ library for working with executable and object formats is also included.") (define-public glibc (package (name "glibc") - (version "2.18") + (version "2.19") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "18spla703zav8dq9fw7rbzkyv9qfisxb26p7amg1x3wjh7iy3d1c")) + "18m2dssd6ja5arxmdxinc90xvpqcsnqjfwmjl2as07j0i3srff9d")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -381,9 +381,7 @@ library for working with executable and object formats is also included.") "use_ldconfig=no"))) (modules '((guix build utils))) (imported-modules modules) - (patches (map search-patch - '("glibc-ldd-x86_64.patch" - "glibc-make-4.0.patch"))))) + (patches (list (search-patch "glibc-ldd-x86_64.patch"))))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc diff --git a/gnu/packages/patches/glibc-make-4.0.patch b/gnu/packages/patches/glibc-make-4.0.patch deleted file mode 100644 index d83de1d33d..0000000000 --- a/gnu/packages/patches/glibc-make-4.0.patch +++ /dev/null @@ -1,12 +0,0 @@ -Allow libc to be compiled with GNU Make 4.0. - ---- glibc-2.18/configure 2013-08-11 00:52:55.000000000 +0200 -+++ glibc-2.18/configure 2013-10-16 16:53:09.000000000 +0200 -@@ -4772,7 +4772,7 @@ $as_echo_n "checking version of $MAKE... - ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 3.79* | 3.[89]*) -+ 3.79* | 3.[89]* | 4.*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; -- cgit v1.2.3 From 17919a58012c38052133ed029450fdb98d01fb5c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 22 Feb 2014 00:34:49 +0100 Subject: build-system/gnu: Allow the source to be a directory. * guix/build/gnu-build-system.scm (unpack): Check if SOURCE is a directory, and copy it locally if it is. * gnu/packages/libwebsockets.scm (libwebsockets)[arguments]: Remove 'unpack' phase. --- gnu/packages/libwebsockets.scm | 22 ++++++---------------- guix/build/gnu-build-system.scm | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/gnu/packages/libwebsockets.scm b/gnu/packages/libwebsockets.scm index 3f900aef72..65aa174355 100644 --- a/gnu/packages/libwebsockets.scm +++ b/gnu/packages/libwebsockets.scm @@ -50,22 +50,12 @@ (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'unpack - ;; FIXME: Remove this when gnu-build-system handles that - ;; case correctly. - (lambda* (#:key source #:allow-other-keys) - (mkdir "source") - (chdir "source") - (copy-recursively source ".") - #t) - - (alist-cons-before - 'configure 'bootstrap - (lambda _ - (chmod "libwebsockets-api-doc.html" #o666) - (zero? (system* "./autogen.sh"))) - %standard-phases)))) + '(#:phases (alist-cons-before + 'configure 'bootstrap + (lambda _ + (chmod "libwebsockets-api-doc.html" #o666) + (zero? (system* "./autogen.sh"))) + %standard-phases))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool "bin") diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 4cda7fc11a..da6b31c326 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,8 +90,17 @@ #t) (define* (unpack #:key source #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (chdir (first-subdirectory ".")))) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (if (file-is-directory? source) + (begin + (mkdir "source") + (chdir "source") + (copy-recursively source ".") + #t) + (and (zero? (system* "tar" "xvf" source)) + (chdir (first-subdirectory "."))))) (define* (patch-source-shebangs #:key source #:allow-other-keys) "Patch shebangs in all source files; this includes non-executable -- cgit v1.2.3 From b7db387be3c4f920719e717b6961158434f17624 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 22 Feb 2014 00:37:58 +0100 Subject: gnu: grep: Upgrade to 2.18. * gnu/packages/base.scm (grep): Upgrade to 2.18. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f0fe5caaa3..56e688cff8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -70,14 +70,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "2.16") + (version "2.18") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "0qhiamxyzinmy2409lr8r0aa1in1y8v0kv6c80gz5jfq2d8fppqn")))) + "08773flbnx28ksy0y4mzd4iifysh7yysmzn8rkz9f57sfx86whz6")))) (build-system gnu-build-system) (synopsis "Print lines matching a pattern") (description -- cgit v1.2.3 From 3bb33e24bb495d78e6be663b5763245a1d63bc90 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 22 Feb 2014 00:43:50 +0100 Subject: gnu: coreutils: Attempt to really fix cross-compilation. * gnu/packages/patches/coreutils-dummy-man.patch: Directly take the patch from . --- gnu/packages/patches/coreutils-dummy-man.patch | 39 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/gnu/packages/patches/coreutils-dummy-man.patch b/gnu/packages/patches/coreutils-dummy-man.patch index 6c43389994..b07a92ccf0 100644 --- a/gnu/packages/patches/coreutils-dummy-man.patch +++ b/gnu/packages/patches/coreutils-dummy-man.patch @@ -1,17 +1,28 @@ -Coreutils commit b3578fc9ffe70b9466687f9f6470a85f1a0ab14f. +Patch from . - * man/dummy-man: Recognize the option --info-page=... as no-op. +Fix for 'dummy-man' usage, when cross-compiling. -This fixes "dummy-man: too many non-option arguments" when -cross-compiling. +The options should be before the final argument, otherwise, the following error +would appear when compiling: ---- a/man/dummy-man -+++ b/man/dummy-man -@@ -30,6 +30,7 @@ while test $# -gt 0; do - # in the makefile. - --include=*);; - --include) shift;; -+ --info-page=*);; - -*) fatal_ "invalid or unrecognized help2man option '$1'";; - --) shift; break;; - *) break;; + dummy-man: too many non-option arguments + +Signed-off-by: Chen Qi +--- + man/local.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/local.mk b/man/local.mk +index 7cef5e3..dc0865f 100644 +--- a/man/local.mk ++++ b/man/local.mk +@@ -189,8 +189,8 @@ man/yes.1: src/yes + && $(run_help2man) \ + --source='$(PACKAGE_STRING)' \ + --include=$(srcdir)/man/$$name.x \ +- --output=$$t/$$name.1 $$t/$$name \ + --info-page='coreutils \(aq'$$name' invocation\(aq' \ ++ --output=$$t/$$name.1 $$t/$$name \ + && sed \ + -e 's|$*\.td/||g' \ + -e '/For complete documentation/d' \ -- cgit v1.2.3 From 284c004613e704d39e55516305b5c0307509604f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 27 Feb 2014 23:59:55 +0100 Subject: gnu: bash, readline: Upgrade. * gnu/packages/readline.scm (readline): Upgrade to 6.3. * gnu/packages/bash.scm (bash): Upgrade to 4.3. --- gnu/packages/bash.scm | 4 ++-- gnu/packages/readline.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 1cd239a50c..26dfe93099 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -51,14 +51,14 @@ (symlink "bash" "sh")))))) (package (name "bash") - (version "4.2") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/bash/bash-" version ".tar.gz")) (sha256 (base32 - "1n5kbblp5ykbz5q8aq88lsif2z0gnvddg9babk33024wxiwi2ym2")))) + "1m14s1f61mf6bijfibcjm9y6pkyvz6gibyl8p4hxq90fisi8gimg")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("ncurses" ,ncurses))) ; TODO: add texinfo diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm index 3dca1de4d4..cf1bd67ce2 100644 --- a/gnu/packages/readline.scm +++ b/gnu/packages/readline.scm @@ -38,14 +38,14 @@ (find-files lib "\\.a")))))) (package (name "readline") - (version "6.2") + (version "6.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/readline/readline-" version ".tar.gz")) (sha256 (base32 - "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr")) + "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn")) (patches (list (search-patch "readline-link-ncurses.patch"))) (patch-flags '("-p0")))) (build-system gnu-build-system) -- cgit v1.2.3 From 3ca00bb51e3ff906a700b6925e0ce81558c8c469 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 28 Feb 2014 10:42:09 +0100 Subject: packages: Support 'patches' and 'snippets' for sources that are directories. * guix/packages.scm (patch-and-repack)[numeric-extension?, tarxz-name]: New procedures. [builder]: Adjust to deal with SOURCE when it's a directory. : Use 'tarxz-name'. Always add (guix build utils) to IMPORTED-MODULES. --- guix/packages.scm | 67 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index d345900f79..f2119bebce 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -315,6 +315,20 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." (dash (string-index sans #\-))) (string-drop sans (+ 1 dash)))) + (define (numeric-extension? file-name) + ;; Return true if FILE-NAME ends with digits. + (string-every char-set:hex-digit (file-extension file-name))) + + (define (tarxz-name file-name) + ;; Return a '.tar.xz' file name based on FILE-NAME. + (let ((base (if (numeric-extension? file-name) + original-file-name + (file-sans-extension file-name)))) + (string-append base + (if (equal? (file-extension base) "tar") + ".xz" + ".tar.xz")))) + (define patch-inputs (map (lambda (number patch) (list (string-append "patch" (number->string number)) @@ -327,7 +341,8 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." (define builder `(begin (use-modules (ice-9 ftw) - (srfi srfi-1)) + (srfi srfi-1) + (guix build utils)) (let ((out (assoc-ref %outputs "out")) (xz (assoc-ref %build-inputs "xz")) @@ -342,14 +357,28 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." (format (current-error-port) "applying '~a'...~%" patch*) (zero? (system* patch "--batch" ,@flags "--input" patch*)))) + (define (first-file directory) + ;; Return the name of the first file in DIRECTORY. + (car (scandir directory + (lambda (name) + (not (member name '("." ".."))))))) + (setenv "PATH" (string-append xz "/bin" ":" decomp "/bin")) - (and (zero? (system* tar "xvf" source)) - (let ((directory (car (scandir "." - (lambda (name) - (not - (member name - '("." "..")))))))) + + ;; SOURCE may be either a directory or a tarball. + (and (if (file-is-directory? source) + (let* ((store (or (getenv "NIX_STORE") + "/nix/store")) + (len (+ 1 (string-length store))) + (base (string-drop source len)) + (dash (string-index base #\-)) + (directory (string-drop base (+ 1 dash)))) + (mkdir directory) + (copy-recursively source directory) + #t) + (zero? (system* tar "xvf" source))) + (let ((directory (first-file "."))) (format (current-error-port) "source is under '~a'~%" directory) (chdir directory) @@ -375,23 +404,23 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." (zero? (system* tar "cvfa" out directory)))))))) - (let ((name (string-append (file-sans-extension original-file-name) - ".xz")) - (inputs (filter-map (match-lambda - ((name (? package? p)) - (and (member name (cons decompression-type - '("tar" "xz" "patch"))) - (list name - (package-derivation store p - system))))) - (or inputs (%standard-patch-inputs))))) + (let ((name (tarxz-name original-file-name)) + (inputs (filter-map (match-lambda + ((name (? package? p)) + (and (member name (cons decompression-type + '("tar" "xz" "patch"))) + (list name + (package-derivation store p + system))))) + (or inputs (%standard-patch-inputs)))) + (modules (delete-duplicates (cons '(guix build utils) modules)))) - (build-expression->derivation store name builder + (build-expression->derivation store name builder #:inputs `(("source" ,source) ,@inputs ,@patch-inputs) #:system system - #:modules imported-modules + #:modules modules #:guile-for-build guile-for-build))) (define* (package-source-derivation store source -- cgit v1.2.3 From a3a1417dc715f432fadbefbe9896f56a14236741 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 28 Feb 2014 10:49:07 +0100 Subject: gnu: Remove now unneeded 'modules' fields from 'origin' specifications. The previous commit has made (guix build utils) imported by default, so no need to specify it. * gnu/packages/base.scm (glibc)[source]: Remove 'modules' and 'imported-modules' fields. * gnu/packages/lsh.scm (lsh)[source]: Likewise. --- gnu/packages/base.scm | 2 -- gnu/packages/lsh.scm | 1 - 2 files changed, 3 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 56e688cff8..831e108520 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -379,8 +379,6 @@ library for working with executable and object formats is also included.") '(substitute* "sysdeps/unix/sysv/linux/configure" (("use_ldconfig=yes") "use_ldconfig=no"))) - (modules '((guix build utils))) - (imported-modules modules) (patches (list (search-patch "glibc-ldd-x86_64.patch"))))) (build-system gnu-build-system) diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm index 1c823492c5..56eeb08446 100644 --- a/gnu/packages/lsh.scm +++ b/gnu/packages/lsh.scm @@ -68,7 +68,6 @@ basis for almost any application.") (sha256 (base32 "1qqjy9zfzgny0rkb27c8c7dfsylvb6n0ld8h3an2r83pmaqr9gwb")) - (modules '((guix build utils))) (snippet '(begin (use-modules (guix build utils)) -- cgit v1.2.3 From 664b03103143b5b746e89d8405c0e73d05ad04a7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 28 Feb 2014 10:56:45 +0100 Subject: gnu: coreutils: Patch 'Makefile.in', not 'local.mk'. * gnu/packages/patches/coreutils-dummy-man.patch: Patch 'Makefile.in', not 'local.mk'; the latter otherwise requires Automake to regenerate the build system. --- gnu/packages/patches/coreutils-dummy-man.patch | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/gnu/packages/patches/coreutils-dummy-man.patch b/gnu/packages/patches/coreutils-dummy-man.patch index b07a92ccf0..f6a6a31002 100644 --- a/gnu/packages/patches/coreutils-dummy-man.patch +++ b/gnu/packages/patches/coreutils-dummy-man.patch @@ -1,4 +1,4 @@ -Patch from . +Patch adapted from . Fix for 'dummy-man' usage, when cross-compiling. @@ -7,16 +7,9 @@ would appear when compiling: dummy-man: too many non-option arguments -Signed-off-by: Chen Qi ---- - man/local.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/local.mk b/man/local.mk -index 7cef5e3..dc0865f 100644 ---- a/man/local.mk -+++ b/man/local.mk -@@ -189,8 +189,8 @@ man/yes.1: src/yes +--- coreutils-8.22/Makefile.in 2013-12-13 16:20:00.000000000 +0100 ++++ coreutils-8.22/Makefile.in 2014-02-28 10:53:27.000000000 +0100 +@@ -9977,8 +9977,8 @@ man/yes.1: src/yes && $(run_help2man) \ --source='$(PACKAGE_STRING)' \ --include=$(srcdir)/man/$$name.x \ -- cgit v1.2.3 From 1faca892a35941b6eed2d6c04478f9f77ab81e15 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 28 Feb 2014 12:22:14 +0100 Subject: Partly revert "gnu: Remove now unneeded 'modules' fields from 'origin' specifications." This partly reverts commit a3a1417dc715f432fadbefbe9896f56a14236741. * gnu/packages/base.scm (glibc)[source]: Re-add 'modules' clause. * gnu/packages/lsh.scm (lsh)[source]: Remove 'use-modules' form from 'snippet'. Add 'modules' field. --- gnu/packages/base.scm | 1 + gnu/packages/lsh.scm | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 831e108520..f828f3531c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -379,6 +379,7 @@ library for working with executable and object formats is also included.") '(substitute* "sysdeps/unix/sysv/linux/configure" (("use_ldconfig=yes") "use_ldconfig=no"))) + (modules '((guix build utils))) (patches (list (search-patch "glibc-ldd-x86_64.patch"))))) (build-system gnu-build-system) diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm index 56eeb08446..74857226c4 100644 --- a/gnu/packages/lsh.scm +++ b/gnu/packages/lsh.scm @@ -68,10 +68,9 @@ basis for almost any application.") (sha256 (base32 "1qqjy9zfzgny0rkb27c8c7dfsylvb6n0ld8h3an2r83pmaqr9gwb")) + (modules '((guix build utils))) (snippet '(begin - (use-modules (guix build utils)) - (substitute* "src/testsuite/functions.sh" (("localhost") ;; Avoid host name lookups since they don't work in -- cgit v1.2.3 From ff3c0c1b805453990a42f690f148b41b9dff382a Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Fri, 7 Mar 2014 00:45:51 +0100 Subject: coreutils: fix test suite * gnu/packages/patches/coreutils-skip-nohup.patch: patch taken from the git repository of coreutils, that makes sure tests/misc/nohup.sh does not fail when /dev/tty does not exist. * gnu/packages/base.scm (coreutils): use it. * gnu-system.am (dist_patch_DATA): add it. --- gnu-system.am | 1 + gnu/packages/base.scm | 4 +++- gnu/packages/patches/coreutils-skip-nohup.patch | 28 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/coreutils-skip-nohup.patch diff --git a/gnu-system.am b/gnu-system.am index b5be893854..97dc92cdfc 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -252,6 +252,7 @@ dist_patch_DATA = \ gnu/packages/patches/cdparanoia-fpic.patch \ gnu/packages/patches/cmake-fix-tests.patch \ gnu/packages/patches/coreutils-dummy-man.patch \ + gnu/packages/patches/coreutils-skip-nohup.patch \ gnu/packages/patches/cpio-gets-undeclared.patch \ gnu/packages/patches/curl-fix-test172.patch \ gnu/packages/patches/dbus-localstatedir.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f828f3531c..89d90c989b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -240,7 +240,9 @@ used to apply commands with arbitrarily long arguments.") (sha256 (base32 "04hjzzv434fb8ak3hh3dyhdvg3hqjjwvjmjxqzk1gh2jh6cr8gjv")) - (patches (list (search-patch "coreutils-dummy-man.patch"))))) + (patches (list (search-patch "coreutils-dummy-man.patch") + ;; TODO: remove this patch for >= 8.23 + (search-patch "coreutils-skip-nohup.patch"))))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp))) diff --git a/gnu/packages/patches/coreutils-skip-nohup.patch b/gnu/packages/patches/coreutils-skip-nohup.patch new file mode 100644 index 0000000000..f5283a6b21 --- /dev/null +++ b/gnu/packages/patches/coreutils-skip-nohup.patch @@ -0,0 +1,28 @@ +commit 5dce6bdfafc930dfd17d5d16aea7d1add3472066 +Author: Pádraig Brady +Date: Wed Mar 5 15:14:07 2014 +0000 + + tests: fix false failure in nohup.sh in non tty builds + + * tests/misc/nohup.sh: When running tests without a controlling tty, + an exec failure is triggered in a subshell, which causes POSIX + shells to immediately exit the subshell. This was brought + to notice by the newly conforming bash 4.3. + Fixes http:/bugs.gnu.org/16940 + +diff --git a/tests/misc/nohup.sh b/tests/misc/nohup.sh +index 6d2b515..2328b43 100755 +--- a/tests/misc/nohup.sh ++++ b/tests/misc/nohup.sh +@@ -63,6 +63,11 @@ rm -f nohup.out err + # to stderr must be fatal. Requires stdout to be terminal. + if test -w /dev/full && test -c /dev/full; then + ( ++ # POSIX shells immediately exit the subshell on exec error. ++ # So check we can write to /dev/tty before the exec, which ++ # isn't possible if we've no controlling tty for example. ++ test -c /dev/tty && >/dev/tty || exit 0 ++ + exec >/dev/tty + test -t 1 || exit 0 + nohup echo hi 2> /dev/full -- cgit v1.2.3 From 8be3b8a39bae9ffaccf3c9a71104d67e73948b20 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 10 Mar 2014 23:51:31 +0100 Subject: Change default store values from /nix/store to /gnu/store. * gnu/packages/ld-wrapper.scm (%store-directory): Change the default to /gnu/store. * guix/build/utils.scm (%store-directory): New procedure. (remove-store-references): Use it for the default value of 'store'. * guix/packages.scm (patch-and-repack)[builder]: Change default store to /gnu/store. --- gnu/packages/ld-wrapper.scm | 4 ++-- guix/build/utils.scm | 15 ++++++++++----- guix/packages.scm | 3 +-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/gnu/packages/ld-wrapper.scm b/gnu/packages/ld-wrapper.scm index 41ff3df986..d3eb083f2f 100644 --- a/gnu/packages/ld-wrapper.scm +++ b/gnu/packages/ld-wrapper.scm @@ -11,7 +11,7 @@ main="(@ (gnu build-support ld-wrapper) ld-wrapper)" exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@" !# ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,7 +63,7 @@ exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" " (define %store-directory ;; File name of the store. - (or (getenv "NIX_STORE") "/nix/store")) + (or (getenv "NIX_STORE") "/gnu/store")) (define %temporary-directory ;; Temporary directory. diff --git a/guix/build/utils.scm b/guix/build/utils.scm index a37ace31af..40af785b88 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; @@ -29,7 +29,8 @@ #:use-module (rnrs io ports) #:re-export (alist-cons alist-delete) - #:export (directory-exists? + #:export (%store-directory + directory-exists? executable-file? call-with-ascii-input-file with-directory-excursion @@ -62,6 +63,11 @@ ;;; Directories. ;;; +(define (%store-directory) + "Return the directory name of the store." + (or (getenv "NIX_STORE") + "/gnu/store")) + (define (directory-exists? dir) "Return #t if DIR exists and is a directory." (let ((s (stat dir #f))) @@ -443,7 +449,7 @@ all subject to the substitutions." ;;; -;;; Patching shebangs---e.g., /bin/sh -> /nix/store/xyz...-bash/bin/sh. +;;; Patching shebangs---e.g., /bin/sh -> /gnu/store/xyz...-bash/bin/sh. ;;; (define* (dump-port in out @@ -630,8 +636,7 @@ for each unmatched character." (unmatched (car matched) result))))))) (define* (remove-store-references file - #:optional (store (or (getenv "NIX_STORE") - "/nix/store"))) + #:optional (store (%store-directory))) "Remove from FILE occurrences of file names in STORE; return #t when store paths were encountered in FILE, #f otherwise. This procedure is known as `nuke-refs' in Nixpkgs." diff --git a/guix/packages.scm b/guix/packages.scm index f2119bebce..812d6bb991 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -368,8 +368,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." ;; SOURCE may be either a directory or a tarball. (and (if (file-is-directory? source) - (let* ((store (or (getenv "NIX_STORE") - "/nix/store")) + (let* ((store (or (getenv "NIX_STORE") "/gnu/store")) (len (+ 1 (string-length store))) (base (string-drop source len)) (dash (string-index base #\-)) -- cgit v1.2.3 From bfb6b1c7b788a5fbcffb089c0df9d254faed4d5b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 4 Mar 2014 13:30:43 -0500 Subject: gnu: libgc: Upgrade to 7.2e. * gnu/packages/bdw-gc.scm (libgc): Upgrade to 7.2e. --- gnu/packages/bdw-gc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 1955cd3ee1..8142b4c4ef 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -26,14 +26,14 @@ (define-public libgc (package (name "libgc") - (version "7.2d") + (version "7.2e") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "0phwa5driahnpn79zqff14w9yc8sn3599cxz91m78hqdcpl0mznr")))) + "0jxgr71rhk58dzc1ihqs51vldh2qs1m154bn41qh6q1dm145nc89")))) (build-system gnu-build-system) (arguments ;; Make it so that we don't rely on /proc. This is especially useful in -- cgit v1.2.3 From bda1bc6c51a3a0176d19f2b7b66e192fc7e0dc78 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 18 Mar 2014 15:14:02 +0100 Subject: gnu: Make libgc 7.4 the default. * gnu/packages/bdw-gc.scm (libgc): Rename to... (libgc-7.2): ... this. (libgc-7.4): Rename to... (libgc): ... this. * gnu/packages/guile.scm (guile-2.0): Switch to LIBGC. (guile-2.0/fixed): Alias GUILE-2.0. --- gnu/packages/bdw-gc.scm | 6 +++--- gnu/packages/guile.scm | 12 ++---------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 8142b4c4ef..fb3c43da89 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -23,7 +23,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages pkg-config)) -(define-public libgc +(define-public libgc-7.2 (package (name "libgc") (version "7.2e") @@ -86,8 +86,8 @@ lock-free code, experiment with thread programming paradigms, etc.") ;; Some source files are X11-style, others are GPLv2+. (license gpl2+))) -(define-public libgc-7.4 - (package (inherit libgc) +(define-public libgc + (package (inherit libgc-7.2) (version "7.4.0") (source (origin (method url-fetch) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 29ec1096dc..838833fcf4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -136,7 +136,7 @@ without requiring the source code to be rewritten.") ;; The headers and/or `guile-2.0.pc' refer to these packages, so they ;; must be propagated. - ("bdw-gc" ,libgc-7.4) + ("bdw-gc" ,libgc) ("gmp" ,gmp))) (self-native-input? #t) @@ -175,15 +175,7 @@ without requiring the source code to be rewritten.") (define-public guile-2.0/fixed ;; A package of Guile 2.0 that's rarely changed. It is the one used ;; in the `base' module, and thus changing it entails a full rebuild. - (package (inherit guile-2.0) - (location (source-properties->location (current-source-location))) - - ;; Keep using the stable libgc. - (propagated-inputs (map (match-lambda - (("bdw-gc" _) - `("bdw-gc" ,libgc)) - (x x)) - (package-propagated-inputs guile-2.0))))) + guile-2.0) ;;; -- cgit v1.2.3 From 39b71fc89b832afa63b969dc2d86f63e1933d9c9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 18 Mar 2014 15:17:50 +0100 Subject: gnu: guile: Upgrade to 2.0.10. * gnu/packages/guile.scm (guile-2.0): Upgrade to 2.0.10. --- gnu/packages/guile.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 838833fcf4..8120d0d797 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -108,14 +108,14 @@ without requiring the source code to be rewritten.") (define-public guile-2.0 (package (name "guile") - (version "2.0.9") + (version "2.0.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "0nw9y8vjyz4r61v06p9msks5lm58pd91irmzg4k487vmv743h2pp")))) + "0vhvlbpmj560r8xl2r085ww16rlhbyq032am67dija09r63b0zm6")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("libffi" ,libffi) -- cgit v1.2.3 From b1d5f5da8417dbd2213b92c1881f9e408d02dad9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 19 Mar 2014 05:02:25 -0400 Subject: gnu: ncurses: Install man pages in share/man/man*, not man/man*. * gnu/packages/ncurses.scm (ncurses): Add --mandir configure flag. --- gnu/packages/ncurses.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 3e968a8ae9..b8f6bc834b 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -99,6 +100,11 @@ ,(string-append "--includedir=" (assoc-ref %outputs "out") "/include") + ;; By default man pages land in PREFIX/man, but we want them + ;; in PREFIX/share/man. + ,(string-append "--mandir=" (assoc-ref %outputs "out") + "/share/man") + ;; C++ bindings fail to build on ;; `i386-pc-solaris2.11' with GCC 3.4.3: ;; . -- cgit v1.2.3 From afd1cff14831ce85fde4418cc0b98287b0367a9a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 19 Mar 2014 05:00:38 -0400 Subject: gnu: bzip2: Install man pages to share/man/man1, not share/man1. * gnu/packages/compression.scm (bzip2)[fix-man-dir]: Rename "man" to "share/man", not "share". --- gnu/packages/compression.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 5275b8a8ef..72f80062c1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -100,7 +101,7 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in '(lambda* (#:key outputs #:allow-other-keys) (with-directory-excursion (assoc-ref outputs "out") (mkdir "share") - (rename-file "man" "share")))) + (rename-file "man" "share/man")))) (build-shared-lib ;; Build a shared library. '(lambda* (#:key inputs #:allow-other-keys) -- cgit v1.2.3 From f6d47eb6d5e046abc8a7a7dc0863c5661197ef0d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 19 Mar 2014 23:21:26 +0100 Subject: gnu: readline: Fix cross-compilation. * gnu/packages/readline.scm (readline)[arguments]: Add "bash_cv_wcwidth_broken=no" to #:configure-flags when (%current-target-system) is true. --- gnu/packages/readline.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm index cf1bd67ce2..f35a52f614 100644 --- a/gnu/packages/readline.scm +++ b/gnu/packages/readline.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,7 +53,13 @@ (arguments `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ncurses") - "/lib")) + "/lib") + + ;; This test does an 'AC_TRY_RUN', which aborts when + ;; cross-compiling, so provide the correct answer. + ,@(if (%current-target-system) + '("bash_cv_wcwidth_broken=no") + '())) #:phases (alist-cons-after 'install 'post-install -- cgit v1.2.3 From 12fa800d7e41e033eeffa1bb555a82b828321f03 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 20 Mar 2014 03:52:13 -0400 Subject: gnu: util-macros: Install .pc file in lib/pkgconfig; remove INSTALL file. * gnu/packages/xorg.scm (util-macros): Substitute "$(libdir)/pkgconfig" for "$(datadir)/pkgconfig" in Makefile.in. After install, remove share/util-macros/INSTALL and share/util-macros. --- gnu/packages/xorg.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index abcbfba88a..13da10d7cb 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -1742,6 +1743,22 @@ tracking.") "1vbmrcn5n3wp4pyw0n4c3pyvzlc4yf7jzgngavfdq5zwfbgfsybx")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) + (arguments + `(#:phases (alist-cons-after + 'unpack 'fix-makefile-in + (lambda _ + (substitute* "Makefile.in" + ;; Install xorg-macros.pc in PREFIX/lib/pkgconfig, + ;; not PREFIX/share/pkgconfig. + (("\\$\\(datadir\\)/pkgconfig") "$(libdir)/pkgconfig"))) + (alist-cons-after + 'install 'post-install-cleanup + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (delete-file "share/util-macros/INSTALL") + (rmdir "share/util-macros")))) + %standard-phases)))) (home-page "http://www.x.org/wiki/") (synopsis "xorg implementation of the X Window System") (description "X.org provides an implementation of the X Window System") -- cgit v1.2.3 From b1a01474ac4f5bae1f2689805105103742178c2b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 20 Mar 2014 22:27:43 -0400 Subject: gnu: guile: Upgrade to 2.0.11. * gnu/packages/guile.scm (guile): Upgrade to 2.0.11. --- gnu/packages/guile.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 8120d0d797..d1ea6e8fd0 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -108,14 +109,14 @@ without requiring the source code to be rewritten.") (define-public guile-2.0 (package (name "guile") - (version "2.0.10") + (version "2.0.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "0vhvlbpmj560r8xl2r085ww16rlhbyq032am67dija09r63b0zm6")))) + "1qh3j7308qvsjgwf7h94yqgckpbgz2k3yqdkzsyhqcafvfka9l5f")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("libffi" ,libffi) -- cgit v1.2.3 From 2ed6aa9e398b99296144dca364012f41764a8e89 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 23 Mar 2014 21:49:20 +0100 Subject: gnu: glibc: Patch mtrace.pl to avoid retaining a reference to Perl. * gnu/packages/base.scm (glibc)[argument] : Patch malloc/mtrace.pl. --- gnu/packages/base.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1f6e86341f..bf1ebfa629 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -474,7 +474,17 @@ library for working with executable and object formats is also included.") ;; Same for `popen'. (substitute* "libio/iopopen.c" (("/bin/sh") - (string-append out "/bin/bash"))))) + (string-append out "/bin/bash"))) + + ;; Make sure we don't retain a reference to the + ;; bootstrap Perl. + (substitute* "malloc/mtrace.pl" + (("^#!.*") + ;; The shebang can be omitted, because there's the + ;; "bilingual" eval/exec magic at the top of the file. + "") + (("exec @PERL@") + "exec perl")))) (alist-cons-after 'install 'install-locales (lambda _ -- cgit v1.2.3 From 707c8b2ca7a597341610b3fddb6df4a30f77b6bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 25 Mar 2014 13:40:27 +0100 Subject: hydra: Build GCC and glibc, not their '-final' variant. * build-aux/hydra/gnu-system.scm (%core-packages): Replace GCC-FINAL and GLIBC-FINAL with GCC and GLIBC. --- build-aux/hydra/gnu-system.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 4f6eaf78f2..6e61739d94 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -87,7 +87,10 @@ SYSTEM." (cut package-cross-derivation <> <> target <>)))) (define %core-packages - (list gcc-final glibc-final binutils + ;; Note: Don't put the '-final' package variants because (1) that's + ;; implicit, and (2) they cannot be cross-built (due to the explicit input + ;; chain.) + (list gcc glibc binutils gmp mpfr mpc coreutils findutils diffutils patch sed grep gawk gnu-gettext hello guile-2.0 zlib gzip xz %bootstrap-binaries-tarball -- cgit v1.2.3 From e795890212c3c1debe94f7c6921ee572089fd067 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 25 Mar 2014 13:55:56 +0100 Subject: hydra: Remove cross-builds from i686-linux to mips64el-linux-gnuabi64. * build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs]: Define 'from-32-to-64?'. Filter out %CROSS-TARGETS that match. --- build-aux/hydra/gnu-system.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 6e61739d94..4573e60d3b 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -129,12 +129,19 @@ SYSTEM." (compose string->symbol package-full-name)) (define (cross-jobs system) + (define (from-32-to-64? target) + ;; Return true if SYSTEM is 32-bit and TARGET is 64-bit. + ;; This hacks prevents known-to-fail cross-builds from i686-linux to + ;; mips64el-linux-gnuabi64. + (and (string-prefix? "i686-" system) + (string-suffix? "64" target))) + (append-map (lambda (target) (map (lambda (package) (package-cross-job store (job-name package) package target system)) %packages-to-cross-build)) - %cross-targets)) + (remove from-32-to-64? %cross-targets))) ;; Return one job for each package, except bootstrap packages. (let ((base-packages (delete-duplicates -- cgit v1.2.3 From d452b595f96fa0a50e834f42eebadcaf0f7e786d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 25 Mar 2014 13:57:51 +0100 Subject: hydra: Fix typo in core package list. * build-aux/hydra/gnu-system.scm: Use (gnu packages gcc). (%core-packages): Remove nonexistent 'gcc'; add GCC-4.8 and GCC-4.7. --- build-aux/hydra/gnu-system.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 4573e60d3b..4651935831 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -41,6 +41,7 @@ (guix derivations) ((guix utils) #:select (%current-system)) (gnu packages) + (gnu packages gcc) (gnu packages base) (gnu packages gawk) (gnu packages guile) @@ -90,7 +91,7 @@ SYSTEM." ;; Note: Don't put the '-final' package variants because (1) that's ;; implicit, and (2) they cannot be cross-built (due to the explicit input ;; chain.) - (list gcc glibc binutils + (list gcc-4.8 gcc-4.7 glibc binutils gmp mpfr mpc coreutils findutils diffutils patch sed grep gawk gnu-gettext hello guile-2.0 zlib gzip xz %bootstrap-binaries-tarball -- cgit v1.2.3 From b10ab7230f80076212ccd454f3648dd6ee7993fb Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sat, 1 Feb 2014 01:39:04 +0100 Subject: gnu: Enable the 'ctypes' module in Python. * gnu/packages/python.scm (python-2): add libffi to the inputs and use it to build the ctypes module. --- gnu/packages/python.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7997618fcf..056956e856 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -28,9 +28,11 @@ #:use-module (gnu packages compression) #:use-module (gnu packages gdbm) #:use-module (gnu packages icu4c) + #:use-module (gnu packages libffi) #:use-module (gnu packages readline) #:use-module (gnu packages openssl) #:use-module (gnu packages elf) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages sqlite) #:use-module (guix packages) #:use-module (guix download) @@ -99,10 +101,12 @@ #:configure-flags (let ((bz2 (assoc-ref %build-inputs "bzip2")) (gdbm (assoc-ref %build-inputs "gdbm")) + (libffi (assoc-ref %build-inputs "libffi")) (openssl (assoc-ref %build-inputs "openssl")) (readline (assoc-ref %build-inputs "readline")) (zlib (assoc-ref %build-inputs "zlib"))) (list "--enable-shared" ; allow embedding + "--with-system-ffi" ; build ctypes (string-append "CPPFLAGS=" "-I" bz2 "/include " "-I" gdbm "/include " @@ -112,6 +116,7 @@ (string-append "LDFLAGS=" "-L" bz2 "/lib " "-L" gdbm "/lib " + "-L" libffi "/lib " "-L" openssl "/lib " "-L" readline "/lib " "-L" zlib "/lib"))) @@ -138,10 +143,13 @@ (inputs `(("bzip2" ,bzip2) ("gdbm" ,gdbm) + ("libffi" ,libffi) ; for ctypes ("openssl" ,openssl) ("readline" ,readline) ("zlib" ,zlib) ("patchelf" ,patchelf))) ; for (guix build rpath) + (native-inputs + `(("pkg-config" ,pkg-config))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") -- cgit v1.2.3 From 70318b46722d4c11375148636d3cbae1f01114f1 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Fri, 14 Feb 2014 03:16:46 +0100 Subject: gnu: Python: use /nix/.../sh instead of /bin/sh in the subprocess module * gnu/packages/python.scm (python-2): patch Lib/subprocess.py to use /nix/.../sh. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 056956e856..2c6992692a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -139,7 +139,15 @@ (with-directory-excursion out (for-each (cut augment-rpath <> lib) (find-files "bin" ".*"))))) - %standard-phases))) + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys #:rest args) + (let ((configure (assoc-ref %standard-phases 'configure))) + (substitute* "Lib/subprocess.py" + (("args = \\[\"/bin/sh") + (string-append "args = [\"" (which "sh")))) + (apply configure args))) + %standard-phases)))) (inputs `(("bzip2" ,bzip2) ("gdbm" ,gdbm) -- cgit v1.2.3 From 9a9a3adf66285aba30effdb1565429357c7b6184 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Mon, 3 Mar 2014 01:53:11 +0100 Subject: gnu: Enable tests in Python 3. * gnu/packages/python.scm: enable tests for Python 3 * gnu/packages/python-fix-tests.patch: New file. * gnu/packages/gnu-system.am (dist_patch_DATA): add it. --- gnu-system.am | 1 + gnu/packages/patches/python-fix-tests.patch | 66 +++++++++++++++++++++++++++++ gnu/packages/python.scm | 21 ++++++++- 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-fix-tests.patch diff --git a/gnu-system.am b/gnu-system.am index b47163c1f4..2f240bf388 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -312,6 +312,7 @@ dist_patch_DATA = \ gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ gnu/packages/patches/procps-make-3.82.patch \ gnu/packages/patches/python-fix-dbm.patch \ + gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/qemu-make-4.0.patch \ gnu/packages/patches/qemu-multiple-smb-shares.patch \ gnu/packages/patches/qt4-tests.patch \ diff --git a/gnu/packages/patches/python-fix-tests.patch b/gnu/packages/patches/python-fix-tests.patch new file mode 100644 index 0000000000..fecebdacde --- /dev/null +++ b/gnu/packages/patches/python-fix-tests.patch @@ -0,0 +1,66 @@ +See the discussion about the issues fixed here at: +http://bugs.python.org/issue20868 . + +--- Lib/test/test_shutil.py 2014-03-01 03:02:36.088311000 +0100 ++++ Lib/test/test_shutil.py 2014-03-01 04:56:37.768311000 +0100 +@@ -1053,6 +1053,7 @@ + self.assertRaises(ValueError, make_archive, base_name, 'xxx') + + @requires_zlib ++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix") + def test_make_archive_owner_group(self): + # testing make_archive with owner and group, with various combinations + # this works even if there's not gid/uid support +@@ -1081,6 +1082,7 @@ + + + @requires_zlib ++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix") + @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support") + def test_tarfile_root_owner(self): + tmpdir, tmpdir2, base_name = self._create_files() + +--- Lib/test/test_posixpath.py 2014-03-01 05:46:56.984311000 +0100 ++++ Lib/test/test_posixpath.py 2014-03-07 00:59:20.888311000 +0100 +@@ -319,7 +319,11 @@ + del env['HOME'] + home = pwd.getpwuid(os.getuid()).pw_dir + # $HOME can end with a trailing /, so strip it (see #17809) +- self.assertEqual(posixpath.expanduser("~"), home.rstrip("/")) ++ # The Guix builders have '/' as a home directory, so ++ # home.rstrip("/") will be an empty string and the test will ++ # fail. Let's just disable it since it does not really make ++ # sense with such a bizarre setup. ++ # self.assertEqual(posixpath.expanduser("~"), home.rstrip("/")) + + def test_normpath(self): + self.assertEqual(posixpath.normpath(""), ".") +--- Lib/test/test_socket.py.orig 2014-03-02 22:14:12.264311000 +0100 ++++ Lib/test/test_socket.py 2014-03-21 03:50:45.660311000 +0100 +@@ -819,6 +819,8 @@ + self.assertRaises(OverflowError, socket.htonl, k) + self.assertRaises(OverflowError, socket.htons, k) + ++ @unittest.skipUnless(os.path.exists("/etc/services"), ++ "getservbyname uses /etc/services, which is not in the chroot") + def testGetServBy(self): + eq = self.assertEqual + # Find one service that exists, then check all the related interfaces. +@@ -1104,6 +1106,8 @@ + self.assertRaises(ValueError, s.ioctl, -1, None) + s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100)) + ++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"), ++ "getaddrinfo() will fail") + def testGetaddrinfo(self): + try: + socket.getaddrinfo('localhost', 80) +@@ -1174,6 +1178,8 @@ + # only IP addresses are allowed + self.assertRaises(socket.error, socket.getnameinfo, ('mail.python.org',0), 0) + ++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"), ++ "getaddrinfo() will fail") + @unittest.skipUnless(support.is_resource_enabled('network'), + 'network is not enabled') + def test_idna(self): diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2c6992692a..01de2f6a4a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -146,8 +146,17 @@ (substitute* "Lib/subprocess.py" (("args = \\[\"/bin/sh") (string-append "args = [\"" (which "sh")))) + (substitute* + '("Lib/distutils/tests/test_spawn.py" + "Lib/test/test_subprocess.py") + (("/bin/sh") (which "sh"))) (apply configure args))) - %standard-phases)))) + (alist-cons-before + 'check 'pre-check + (lambda _ + ;; 'Lib/test/test_site.py' needs a valid $HOME + (setenv "HOME" (getcwd))) + %standard-phases))))) (inputs `(("bzip2" ,bzip2) ("gdbm" ,gdbm) @@ -183,9 +192,19 @@ data types.") (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) + (patches (list (search-patch "python-fix-tests.patch"))) + (patch-flags '("-p0")) (sha256 (base32 "11f6hg9wdhm6hyzj49gxlvvp1s0l5hqgcsq1i4ayygqs1arpb4ik")))) + (arguments + (let ((args `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + ,@(package-arguments python-2)))) + (substitute-keyword-arguments args + ((#:tests? _) #t)))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") -- cgit v1.2.3 From 9214f9bc0a573b475ccc846434a5954ea7838072 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Fri, 21 Mar 2014 05:01:18 +0100 Subject: gnu: remove python-fix-dbm.patch * gnu/packages/patches/python-fix-dbm.patch: remove file. It is not needed anymore, and is probably a left-over of a failed merge. * gnu-system.am: remove gnu/packages/patches/python-fix-dbm.patch --- gnu-system.am | 1 - gnu/packages/patches/python-fix-dbm.patch | 20 -------------------- 2 files changed, 21 deletions(-) delete mode 100644 gnu/packages/patches/python-fix-dbm.patch diff --git a/gnu-system.am b/gnu-system.am index 2f240bf388..9eda697f64 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -311,7 +311,6 @@ dist_patch_DATA = \ gnu/packages/patches/perl-no-sys-dirs.patch \ gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ gnu/packages/patches/procps-make-3.82.patch \ - gnu/packages/patches/python-fix-dbm.patch \ gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/qemu-make-4.0.patch \ gnu/packages/patches/qemu-multiple-smb-shares.patch \ diff --git a/gnu/packages/patches/python-fix-dbm.patch b/gnu/packages/patches/python-fix-dbm.patch deleted file mode 100644 index 29e4521f3f..0000000000 --- a/gnu/packages/patches/python-fix-dbm.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch allows the dbm module to be built using the compatibility mode of -gdbm. It will not be needed any more with Python 2.7.4. ---- setup.py 2013-04-06 00:53:37.000000000 +0200 -+++ setup.py.new 2013-04-06 19:55:05.000000000 +0200 -@@ -1158,10 +1158,14 @@ - for cand in dbm_order: - if cand == "ndbm": - if find_file("ndbm.h", inc_dirs, []) is not None: -- # Some systems have -lndbm, others don't -+ # Some systems have -lndbm, some have -lgdbm_compat, -+ # others have no particular linker flags. - if self.compiler.find_library_file(lib_dirs, - 'ndbm'): - ndbm_libs = ['ndbm'] -+ elif self.compiler.find_library_file(lib_dirs, -+ 'gdbm_compat'): -+ ndbm_libs = ['gdbm_compat'] - else: - ndbm_libs = [] - print "building dbm using ndbm" -- cgit v1.2.3 From 1971737f2bf8980f5eb72b61f9bfeb788574eec9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 25 Mar 2014 18:57:07 +0100 Subject: hydra: Hard-code target systems. * build-aux/hydra/gnu-system.scm (hydra-jobs)[systems]: Define locally, independently of ARGUMENTS. This matches the new Hydra convention, where using a 'system' input is deprecated. --- build-aux/hydra/gnu-system.scm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 4651935831..083ff2a7cd 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -111,15 +111,8 @@ SYSTEM." (define (hydra-jobs store arguments) "Return Hydra jobs." (define systems - (match (filter-map (match-lambda - (('system . value) - value) - (_ #f)) - arguments) - ((lst ..1) - lst) - (_ - (list (%current-system))))) + ;; Systems we want to build for. + '("x86_64-linux" "i686-linux")) (define subset (match (assoc-ref arguments 'subset) -- cgit v1.2.3 From eafee15b3ce3638058c43974244964dbd48ec15d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 25 Mar 2014 20:45:13 +0100 Subject: check-available-binaries: Make sure substitutes are enabled. * build-aux/check-available-binaries.scm: Add call to 'set-build-options'. --- build-aux/check-available-binaries.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/check-available-binaries.scm b/build-aux/check-available-binaries.scm index 92810795e1..d5163a9503 100644 --- a/build-aux/check-available-binaries.scm +++ b/build-aux/check-available-binaries.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +48,7 @@ drv) #f)))) + (set-build-options store #:use-substitutes? #t) (let ((result (every (compose (warn (cut has-substitutes? store <>)) derivation->output-path) total))) -- cgit v1.2.3