diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-06-18 23:56:16 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-18 23:56:16 +0200 |
commit | 7af5c2a248b6c229187fc850517c84b0917c452b (patch) | |
tree | 5b6540c0abb003d00354ab436ff281ea489f6cd4 | |
parent | d6b5aa0b031f0e7091f7424ac616d1c4d10fed5b (diff) |
self: Define derived '-directory' variables in config.scm.
This is a followup to d6b5aa0b031f0e7091f7424ac616d1c4d10fed5b.
* guix/self.scm (%config-variables): Remove %CONFIG-DIRECTORY,
%STATE-DIRECTORY, %STORE-DATABASE-DIRECTORY, and %STORE-DIRECTORY.
(make-config.scm): Define them here.
* build-aux/build-self.scm (%config-variables, make-config.scm):
Likewise.
-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) |