diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-12-05 23:02:47 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-12-06 00:07:17 +0100 |
commit | d8eea3d2bce9c9e834210237090947de4600cfe8 (patch) | |
tree | 5572df7de406f06b31f6be7d68526f69208442b1 | |
parent | 69cfce50dbb2000c5f5d98f0f364fe324004bf99 (diff) | |
download | guix-d8eea3d2bce9c9e834210237090947de4600cfe8.tar guix-d8eea3d2bce9c9e834210237090947de4600cfe8.tar.gz |
build: Capture configure-time settings in (guix config).
* configure.ac: Compute and substitute `guix_localstatedir'.
* m4/guix.m4: Substitute `guix_system'.
* guix/config.scm.in (%store-directory, %store-directory, %system): New
variables.
* guix/store.scm (%nix-state-dir): Remove.
(%default-socket-path): Use %STATE-DIRECTORY as the default.
(%store-prefix): Use %STORE-DIRECTORY as the default.
* guix/utils.scm (%current-system): Default to %SYSTEM.
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | guix/config.scm.in | 12 | ||||
-rw-r--r-- | guix/store.scm | 8 | ||||
-rw-r--r-- | guix/utils.scm | 3 | ||||
-rw-r--r-- | m4/guix.m4 | 1 |
5 files changed, 24 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac index 5509735d8e..fdc1931b3c 100644 --- a/configure.ac +++ b/configure.ac @@ -30,6 +30,11 @@ AC_ARG_WITH(store-dir, [storedir="/nix/store"]) AC_SUBST(storedir) +# Prepare a version of $localstatedir that does not contain references +# to shell variables. +guix_localstatedir="`eval echo $localstatedir | sed -e "s|NONE|/usr/local|g"`" +AC_SUBST([guix_localstatedir]) + PKG_CHECK_MODULES([GUILE], [guile-2.0]) AC_PATH_PROG([GUILE], [guile]) AC_PATH_PROG([GUILD], [guild]) diff --git a/guix/config.scm.in b/guix/config.scm.in index 462dcd0ed1..4717b1c967 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -20,6 +20,9 @@ #:export (%guix-package-name %guix-version %guix-bug-report-address + %store-directory + %state-directory + %system %libgcrypt %nixpkgs %nix-instantiate)) @@ -39,6 +42,15 @@ (define %guix-bug-report-address "@PACKAGE_BUGREPORT@") +(define %store-directory + "@storedir@") + +(define %state-directory + "@guix_localstatedir@") + +(define %system + "@guix_system@") + (define %libgcrypt "@LIBGCRYPT@") diff --git a/guix/store.scm b/guix/store.scm index 9aafb332dc..3bfb03e6b5 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -18,6 +18,7 @@ (define-module (guix store) #:use-module (guix utils) + #:use-module (guix config) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (srfi srfi-1) @@ -111,10 +112,9 @@ (sha1 2) (sha256 3)) -(define %nix-state-dir - (or (getenv "NIX_STATE_DIR") "/nix/var/nix")) (define %default-socket-path - (string-append %nix-state-dir "/daemon-socket/socket")) + (string-append (or (getenv "NIX_STATE_DIR") %state-directory) + "/daemon-socket/socket")) ;; serialize.cc @@ -439,7 +439,7 @@ file name. Return #t on success." (define %store-prefix ;; Absolute path to the Nix store. (make-parameter (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path) - "/nix/store"))) + %store-directory))) (define (store-path? path) "Return #t if PATH is a store path." diff --git a/guix/utils.scm b/guix/utils.scm index 5ec8f3736d..4089b11cb1 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -342,7 +342,8 @@ returned by `config.guess'." (define %current-system ;; System type as expected by Nix, usually ARCHITECTURE-KERNEL. - (make-parameter (gnu-triplet->nix-system %host-type))) + ;; By default, this is equal to (gnu-triplet->nix-system %host-type). + (make-parameter %system)) (define (package-name->name+version name) "Given NAME, a package name like \"foo-0.9.1b\", return two values: diff --git a/m4/guix.m4 b/m4/guix.m4 index 9b5184ff55..7d7d7381a0 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -61,4 +61,5 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [ # `darwin10.2.0', etc. guix_system="$machine_name-`echo $host_os | "$SED" -e's/@<:@0-9.@:>@*$//g'`";; esac]) + AC_SUBST([guix_system]) ]) |