diff options
-rw-r--r-- | build-aux/build-self.scm | 30 | ||||
-rw-r--r-- | guix/self.scm | 28 |
2 files changed, 50 insertions, 8 deletions
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 22c4031c2e..bd285bcedd 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -70,11 +70,7 @@ ((_ variable rest ...) (cons `(variable . ,variable) (variables rest ...)))))) - (variables %config-directory %localstatedir %state-directory - ;; Note: No '%store-database-directory', which is too recent - ;; and unnecessary anyway. - %store-directory - %storedir %sysconfdir %system))) + (variables %localstatedir %storedir %sysconfdir %system))) (define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 (package-name "GNU Guix") @@ -92,6 +88,10 @@ %guix-version %guix-bug-report-address %guix-home-page-url + %store-directory + %state-directory + %store-database-directory + %config-directory %libgcrypt %libz %gzip @@ -105,6 +105,26 @@ #~(define-public #$name #$value))) %config-variables) + (define %store-directory + (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path) + %storedir)) + + (define %state-directory + ;; This must match `NIX_STATE_DIR' as defined in + ;; `nix/local.mk'. + (or (getenv "NIX_STATE_DIR") + (string-append %localstatedir "/guix"))) + + (define %store-database-directory + (or (getenv "NIX_DB_DIR") + (string-append %state-directory "/db"))) + + (define %config-directory + ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as + ;; defined in `nix/local.mk'. + (or (getenv "GUIX_CONFIGURATION_DIRECTORY") + (string-append %sysconfdir "/guix"))) + (define %guix-package-name #$package-name) (define %guix-version #$package-version) (define %guix-bug-report-address #$bug-report-address) diff --git a/guix/self.scm b/guix/self.scm index 8a474ffb54..0ad8c34e2a 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -672,9 +672,7 @@ assumed to be part of MODULES." ((_ variable rest ...) (cons `(variable . ,variable) (variables rest ...)))))) - (variables %config-directory %localstatedir %state-directory - %store-database-directory %store-directory - %storedir %sysconfdir %system))) + (variables %localstatedir %storedir %sysconfdir %system))) (define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 (package-name "GNU Guix") @@ -692,6 +690,10 @@ assumed to be part of MODULES." %guix-version %guix-bug-report-address %guix-home-page-url + %store-directory + %state-directory + %store-database-directory + %config-directory %libgcrypt %libz %gzip @@ -703,6 +705,26 @@ assumed to be part of MODULES." #~(define-public #$name #$value))) %config-variables) + (define %store-directory + (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path) + %storedir)) + + (define %state-directory + ;; This must match `NIX_STATE_DIR' as defined in + ;; `nix/local.mk'. + (or (getenv "NIX_STATE_DIR") + (string-append %localstatedir "/guix"))) + + (define %store-database-directory + (or (getenv "NIX_DB_DIR") + (string-append %state-directory "/db"))) + + (define %config-directory + ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as + ;; defined in `nix/local.mk'. + (or (getenv "GUIX_CONFIGURATION_DIRECTORY") + (string-append %sysconfdir "/guix"))) + (define %guix-package-name #$package-name) (define %guix-version #$package-version) (define %guix-bug-report-address #$bug-report-address) |