summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/config.scm.in30
1 files changed, 26 insertions, 4 deletions
diff --git a/guix/config.scm.in b/guix/config.scm.in
index 6d42cf233c..7a420401ce 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -21,10 +21,17 @@
             %guix-version
             %guix-bug-report-address
             %guix-home-page-url
+
+            %storedir
+            %localstatedir
+            %sysconfdir
+            %sbindir
+
             %store-directory
             %state-directory
             %config-directory
             %guix-register-program
+
             %system
             %libgcrypt
             %libz
@@ -51,21 +58,36 @@
 (define %guix-home-page-url
   "@PACKAGE_URL@")
 
+(define %storedir
+  "@storedir@")
+
+(define %localstatedir
+  "@guix_localstatedir@")
+
+(define %sysconfdir
+  "@guix_sysconfdir@")
+
+(define %sbindir
+  "@guix_sbindir@")
+
 (define %store-directory
   (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path)
-      "@storedir@"))
+      %storedir))
 
 (define %state-directory
   ;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
-  (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+  (or (getenv "NIX_STATE_DIR")
+      (string-append %localstatedir "/guix")))
 
 (define %config-directory
   ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'.
-  (or (getenv "GUIX_CONFIGURATION_DIRECTORY") "@guix_sysconfdir@/guix"))
+  (or (getenv "GUIX_CONFIGURATION_DIRECTORY")
+      (string-append %sysconfdir "/guix")))
 
 (define %guix-register-program
   ;; The 'guix-register' program.
-  (or (getenv "GUIX_REGISTER") "@guix_sbindir@/guix-register"))
+  (or (getenv "GUIX_REGISTER")
+      (string-append %sbindir "/guix-register")))
 
 (define %system
   "@guix_system@")