daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables.
Fixes <https://bugs.gnu.org/22459>. Reported by Jeff Mickey <j@codemac.net>. * guix/config.scm.in (%state-directory): Change NIX_STATE_DIR to GUIX_STATE_DIRECTORY. (%store-database-directory): Change NIX_DB_DIR to GUIX_DATABASE_DIRECTORY. * nix/libstore/globals.cc (Settings::processEnvironment): Likewise. * guix/self.scm (make-config.scm): Likewise. * build-aux/build-self.scm (make-config.scm): Likewise. * build-aux/test-env.in: Likewise. * tests/derivations.scm ("derivation #:leaked-env-vars"): Likewise. * tests/guix-build.sh (GUIX_DAEMON_SOCKET): Likewise. * tests/guix-daemon.sh (socket): Likewise.master
parent
f73ab814a5
commit
a87d66f371
|
@ -114,11 +114,11 @@
|
||||||
(define %state-directory
|
(define %state-directory
|
||||||
;; This must match `NIX_STATE_DIR' as defined in
|
;; This must match `NIX_STATE_DIR' as defined in
|
||||||
;; `nix/local.mk'.
|
;; `nix/local.mk'.
|
||||||
(or (getenv "NIX_STATE_DIR")
|
(or (getenv "GUIX_STATE_DIRECTORY")
|
||||||
(string-append %localstatedir "/guix")))
|
(string-append %localstatedir "/guix")))
|
||||||
|
|
||||||
(define %store-database-directory
|
(define %store-database-directory
|
||||||
(or (getenv "NIX_DB_DIR")
|
(or (getenv "GUIX_DATABASE_DIRECTORY")
|
||||||
(string-append %state-directory "/db")))
|
(string-append %state-directory "/db")))
|
||||||
|
|
||||||
(define %config-directory
|
(define %config-directory
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -51,19 +51,19 @@ then
|
||||||
NIX_STORE_DIR="`cd "@GUIX_TEST_ROOT@/store"; pwd -P`"
|
NIX_STORE_DIR="`cd "@GUIX_TEST_ROOT@/store"; pwd -P`"
|
||||||
|
|
||||||
NIX_LOCALSTATE_DIR="@GUIX_TEST_ROOT@/var"
|
NIX_LOCALSTATE_DIR="@GUIX_TEST_ROOT@/var"
|
||||||
NIX_LOG_DIR="@GUIX_TEST_ROOT@/var/log/guix"
|
GUIX_LOG_DIRECTORY="@GUIX_TEST_ROOT@/var/log/guix"
|
||||||
NIX_DB_DIR="@GUIX_TEST_ROOT@/db"
|
GUIX_DATABASE_DIRECTORY="@GUIX_TEST_ROOT@/db"
|
||||||
NIX_ROOT_FINDER="@abs_top_builddir@/nix/scripts/list-runtime-roots"
|
NIX_ROOT_FINDER="@abs_top_builddir@/nix/scripts/list-runtime-roots"
|
||||||
|
|
||||||
# Choose a PID-dependent name to allow for parallel builds. Note
|
# Choose a PID-dependent name to allow for parallel builds. Note
|
||||||
# that the directory name must be chosen so that the socket's file
|
# that the directory name must be chosen so that the socket's file
|
||||||
# name is less than 108-char long (the size of `sun_path' in glibc).
|
# name is less than 108-char long (the size of `sun_path' in glibc).
|
||||||
# Currently, in Nix builds, we're at ~106 chars...
|
# Currently, in Nix builds, we're at ~106 chars...
|
||||||
NIX_STATE_DIR="@GUIX_TEST_ROOT@/var/$$"
|
GUIX_STATE_DIRECTORY="@GUIX_TEST_ROOT@/var/$$"
|
||||||
|
|
||||||
# We can't exit when we reach the limit, because perhaps the test doesn't
|
# We can't exit when we reach the limit, because perhaps the test doesn't
|
||||||
# actually rely on the daemon, but at least warn.
|
# actually rely on the daemon, but at least warn.
|
||||||
if test "`echo -n "$NIX_STATE_DIR/daemon-socket/socket" | wc -c`" -ge 108
|
if test "`echo -n "$GUIX_STATE_DIRECTORY/daemon-socket/socket" | wc -c`" -ge 108
|
||||||
then
|
then
|
||||||
echo "warning: exceeding socket file name limit; test may fail!" >&2
|
echo "warning: exceeding socket file name limit; test may fail!" >&2
|
||||||
fi
|
fi
|
||||||
|
@ -82,22 +82,22 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# A place to store data of the substituter.
|
# A place to store data of the substituter.
|
||||||
GUIX_BINARY_SUBSTITUTE_URL="file://$NIX_STATE_DIR/substituter-data"
|
GUIX_BINARY_SUBSTITUTE_URL="file://$GUIX_STATE_DIRECTORY/substituter-data"
|
||||||
rm -rf "$NIX_STATE_DIR/substituter-data"
|
rm -rf "$GUIX_STATE_DIRECTORY/substituter-data"
|
||||||
mkdir -p "$NIX_STATE_DIR/substituter-data"
|
mkdir -p "$GUIX_STATE_DIRECTORY/substituter-data"
|
||||||
|
|
||||||
# For a number of tests, we want to allow unsigned narinfos, for
|
# For a number of tests, we want to allow unsigned narinfos, for
|
||||||
# simplicity.
|
# simplicity.
|
||||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES=yes
|
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES=yes
|
||||||
|
|
||||||
# Place for the substituter's cache.
|
# Place for the substituter's cache.
|
||||||
XDG_CACHE_HOME="$NIX_STATE_DIR/cache-$$"
|
XDG_CACHE_HOME="$GUIX_STATE_DIRECTORY/cache-$$"
|
||||||
|
|
||||||
# For the (guix import snix) tests.
|
# For the (guix import snix) tests.
|
||||||
NIXPKGS="@NIXPKGS@"
|
NIXPKGS="@NIXPKGS@"
|
||||||
|
|
||||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
||||||
NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \
|
NIX_LOCALSTATE_DIR GUIX_LOG_DIRECTORY GUIX_STATE_DIRECTORY GUIX_DATABASE_DIRECTORY \
|
||||||
NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL \
|
NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL \
|
||||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
||||||
GUIX_CONFIGURATION_DIRECTORY XDG_CACHE_HOME NIXPKGS
|
GUIX_CONFIGURATION_DIRECTORY XDG_CACHE_HOME NIXPKGS
|
||||||
|
@ -109,7 +109,7 @@ then
|
||||||
--substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL" &
|
--substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL" &
|
||||||
|
|
||||||
daemon_pid=$!
|
daemon_pid=$!
|
||||||
trap "kill $daemon_pid ; rm -rf $NIX_STATE_DIR" EXIT
|
trap "kill $daemon_pid ; rm -rf $GUIX_STATE_DIRECTORY" EXIT
|
||||||
|
|
||||||
# The test suite expects the 'guile-bootstrap' package to be available.
|
# The test suite expects the 'guile-bootstrap' package to be available.
|
||||||
# Normally the Guile bootstrap tarball is downloaded by a fixed-output
|
# Normally the Guile bootstrap tarball is downloaded by a fixed-output
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org>
|
;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -73,11 +73,11 @@
|
||||||
|
|
||||||
(define %state-directory
|
(define %state-directory
|
||||||
;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
|
;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
|
||||||
(or (getenv "NIX_STATE_DIR")
|
(or (getenv "GUIX_STATE_DIRECTORY")
|
||||||
(string-append %localstatedir "/guix")))
|
(string-append %localstatedir "/guix")))
|
||||||
|
|
||||||
(define %store-database-directory
|
(define %store-database-directory
|
||||||
(or (getenv "NIX_DB_DIR")
|
(or (getenv "GUIX_DATABASE_DIRECTORY")
|
||||||
(string-append %state-directory "/db")))
|
(string-append %state-directory "/db")))
|
||||||
|
|
||||||
(define %config-directory
|
(define %config-directory
|
||||||
|
|
|
@ -786,11 +786,11 @@ Info manual."
|
||||||
(define %state-directory
|
(define %state-directory
|
||||||
;; This must match `NIX_STATE_DIR' as defined in
|
;; This must match `NIX_STATE_DIR' as defined in
|
||||||
;; `nix/local.mk'.
|
;; `nix/local.mk'.
|
||||||
(or (getenv "NIX_STATE_DIR")
|
(or (getenv "GUIX_STATE_DIRECTORY")
|
||||||
(string-append %localstatedir "/guix")))
|
(string-append %localstatedir "/guix")))
|
||||||
|
|
||||||
(define %store-database-directory
|
(define %store-database-directory
|
||||||
(or (getenv "NIX_DB_DIR")
|
(or (getenv "GUIX_DATABASE_DIRECTORY")
|
||||||
(string-append %state-directory "/db")))
|
(string-append %state-directory "/db")))
|
||||||
|
|
||||||
(define %config-directory
|
(define %config-directory
|
||||||
|
|
|
@ -67,9 +67,9 @@ void Settings::processEnvironment()
|
||||||
{
|
{
|
||||||
nixStore = canonPath(getEnv("NIX_STORE_DIR", getEnv("NIX_STORE", NIX_STORE_DIR)));
|
nixStore = canonPath(getEnv("NIX_STORE_DIR", getEnv("NIX_STORE", NIX_STORE_DIR)));
|
||||||
nixDataDir = canonPath(getEnv("NIX_DATA_DIR", NIX_DATA_DIR));
|
nixDataDir = canonPath(getEnv("NIX_DATA_DIR", NIX_DATA_DIR));
|
||||||
nixLogDir = canonPath(getEnv("NIX_LOG_DIR", NIX_LOG_DIR));
|
nixLogDir = canonPath(getEnv("GUIX_LOG_DIRECTORY", NIX_LOG_DIR));
|
||||||
nixStateDir = canonPath(getEnv("NIX_STATE_DIR", NIX_STATE_DIR));
|
nixStateDir = canonPath(getEnv("GUIX_STATE_DIRECTORY", NIX_STATE_DIR));
|
||||||
nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db");
|
nixDBPath = getEnv("GUIX_DATABASE_DIRECTORY", nixStateDir + "/db");
|
||||||
nixConfDir = canonPath(getEnv("GUIX_CONFIGURATION_DIRECTORY", GUIX_CONFIGURATION_DIRECTORY));
|
nixConfDir = canonPath(getEnv("GUIX_CONFIGURATION_DIRECTORY", GUIX_CONFIGURATION_DIRECTORY));
|
||||||
nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR));
|
nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR));
|
||||||
nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR));
|
nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR));
|
||||||
|
|
|
@ -650,18 +650,19 @@
|
||||||
(build-derivations %store (list drv))
|
(build-derivations %store (list drv))
|
||||||
#f)))
|
#f)))
|
||||||
|
|
||||||
;; Here we should get the value of $NIX_STATE_DIR that the daemon sees, which
|
;; Here we should get the value of $GUIX_STATE_DIRECTORY that the daemon sees,
|
||||||
;; is a unique value for each test process; this value is the same as the one
|
;; which is a unique value for each test process; this value is the same as
|
||||||
;; we see in the process executing this file since it is set by 'test-env'.
|
;; the one we see in the process executing this file since it is set by
|
||||||
|
;; 'test-env'.
|
||||||
(test-equal "derivation #:leaked-env-vars"
|
(test-equal "derivation #:leaked-env-vars"
|
||||||
(getenv "NIX_STATE_DIR")
|
(getenv "GUIX_STATE_DIRECTORY")
|
||||||
(let* ((value (getenv "NIX_STATE_DIR"))
|
(let* ((value (getenv "GUIX_STATE_DIRECTORY"))
|
||||||
(drv (derivation %store "leaked-env-vars" %bash
|
(drv (derivation %store "leaked-env-vars" %bash
|
||||||
'("-c" "echo -n $NIX_STATE_DIR > $out")
|
'("-c" "echo -n $GUIX_STATE_DIRECTORY > $out")
|
||||||
#:hash (sha256 (string->utf8 value))
|
#:hash (sha256 (string->utf8 value))
|
||||||
#:hash-algo 'sha256
|
#:hash-algo 'sha256
|
||||||
#:inputs `((,%bash))
|
#:inputs `((,%bash))
|
||||||
#:leaked-env-vars '("NIX_STATE_DIR"))))
|
#:leaked-env-vars '("GUIX_STATE_DIRECTORY"))))
|
||||||
(and (build-derivations %store (list drv))
|
(and (build-derivations %store (list drv))
|
||||||
(call-with-input-file (derivation->output-path drv)
|
(call-with-input-file (derivation->output-path drv)
|
||||||
get-string-all))))
|
get-string-all))))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2012, 2013, 2014, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2012, 2013, 2014, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -37,7 +37,7 @@ guix build hello -d | \
|
||||||
grep -e '-hello-[0-9\.]\+\.drv$'
|
grep -e '-hello-[0-9\.]\+\.drv$'
|
||||||
|
|
||||||
# Passing a URI.
|
# Passing a URI.
|
||||||
GUIX_DAEMON_SOCKET="file://$NIX_STATE_DIR/daemon-socket/socket" \
|
GUIX_DAEMON_SOCKET="file://$GUIX_STATE_DIRECTORY/daemon-socket/socket" \
|
||||||
guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
|
guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
|
||||||
|
|
||||||
( if GUIX_DAEMON_SOCKET="weird://uri" \
|
( if GUIX_DAEMON_SOCKET="weird://uri" \
|
||||||
|
|
|
@ -63,7 +63,7 @@ guile -c "
|
||||||
(exit (has-substitutes? store \"$out\"))"
|
(exit (has-substitutes? store \"$out\"))"
|
||||||
|
|
||||||
# Now, run guix-daemon --no-substitutes.
|
# Now, run guix-daemon --no-substitutes.
|
||||||
socket="$NIX_STATE_DIR/alternate-socket"
|
socket="$GUIX_STATE_DIRECTORY/alternate-socket"
|
||||||
guix-daemon --no-substitutes --listen="$socket" --disable-chroot &
|
guix-daemon --no-substitutes --listen="$socket" --disable-chroot &
|
||||||
daemon_pid=$!
|
daemon_pid=$!
|
||||||
trap 'kill $daemon_pid' EXIT
|
trap 'kill $daemon_pid' EXIT
|
||||||
|
|
Reference in New Issue