summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/base.scm95
-rw-r--r--gnu/packages/gettext.scm4
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/guile.scm6
-rw-r--r--gnu/packages/libffi.scm20
-rw-r--r--gnu/packages/make-bootstrap.scm5
-rw-r--r--gnu/packages/multiprecision.scm4
-rw-r--r--gnu/packages/patches/binutils-loongson-madd-fix.patch44
-rw-r--r--gnu/packages/patches/coreutils-dummy-man.patch17
-rw-r--r--gnu/packages/patches/glibc-make-4.0.patch12
-rw-r--r--gnu/system.scm9
11 files changed, 98 insertions, 122 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index e17933b36f..f0fe5caaa3 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 <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;;
;;; This file is part of GNU Guix.
@@ -31,6 +31,8 @@
#:use-module (gnu packages multiprecision)
#: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)
@@ -68,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
@@ -230,22 +232,26 @@ 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"))
+ (patches (list (search-patch "coreutils-dummy-man.patch")))))
(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. 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
@@ -284,6 +290,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
@@ -311,24 +318,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
@@ -340,7 +341,15 @@ 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"
+
+ ;; Make sure 'ar' and 'ranlib' produce archives in a
+ ;; deterministic fashion.
+ "--enable-deterministic-archives")))
(synopsis "Binary utilities: bfd gas gprof ld")
(description
@@ -355,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
@@ -372,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 <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -473,6 +480,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
@@ -583,6 +595,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
@@ -735,6 +748,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 +765,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 +812,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"))
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)))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 85ce0767b7..e06865d196 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -49,10 +49,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 1f423256f2..29ec1096dc 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -152,11 +152,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/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 <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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"))
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/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) ; <mpc.h> refers to both
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 <mhw@netris.org>.
-
---- 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 },
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;;
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;;
diff --git a/gnu/system.scm b/gnu/system.scm
index d28738140f..96f721330f 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -149,7 +149,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"))
@@ -187,7 +188,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
@@ -209,7 +211,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")