build: Support running the test suite from a directory with symlinks.
Fixes <http://bugs.gnu.org/17935>. Reported by Alex Kost <alezost@gmail.com>. * test-env.in: Canonicalize $NIX_STORE_DIR, and remove $NIX_IGNORE_SYMLINK_STORE setting. * tests/guix-register.sh: Likewise, canonicalize $new_store_dir and $new_store and leave $NIX_IGNORE_SYMLINK_STORE unchanged.
This commit is contained in:
parent
8731e52749
commit
8ad49499b9
12
test-env.in
12
test-env.in
@ -27,8 +27,15 @@
|
|||||||
if [ -x "@abs_top_builddir@/guix-daemon" ]
|
if [ -x "@abs_top_builddir@/guix-daemon" ]
|
||||||
then
|
then
|
||||||
NIX_SETUID_HELPER="@abs_top_builddir@/nix-setuid-helper" # normally unused
|
NIX_SETUID_HELPER="@abs_top_builddir@/nix-setuid-helper" # normally unused
|
||||||
NIX_IGNORE_SYMLINK_STORE=1 # in case the store is a symlink
|
|
||||||
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
|
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
|
||||||
|
|
||||||
|
# Do that because store.scm calls `canonicalize-path' on it.
|
||||||
|
mkdir -p "$NIX_STORE_DIR"
|
||||||
|
|
||||||
|
# Canonicalize the store directory name in an attempt to avoid symlinks in
|
||||||
|
# it or its parent directories. See <http://bugs.gnu.org/17935>.
|
||||||
|
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"
|
NIX_LOG_DIR="@GUIX_TEST_ROOT@/var/log/guix"
|
||||||
NIX_DB_DIR="@GUIX_TEST_ROOT@/db"
|
NIX_DB_DIR="@GUIX_TEST_ROOT@/db"
|
||||||
@ -71,9 +78,6 @@ then
|
|||||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
||||||
NIX_CONF_DIR XDG_CACHE_HOME
|
NIX_CONF_DIR XDG_CACHE_HOME
|
||||||
|
|
||||||
# Do that because store.scm calls `canonicalize-path' on it.
|
|
||||||
mkdir -p "$NIX_STORE_DIR"
|
|
||||||
|
|
||||||
# Launch the daemon without chroot support because is may be
|
# Launch the daemon without chroot support because is may be
|
||||||
# unavailable, for instance if we're not running as root.
|
# unavailable, for instance if we're not running as root.
|
||||||
"@abs_top_builddir@/pre-inst-env" \
|
"@abs_top_builddir@/pre-inst-env" \
|
||||||
|
@ -57,8 +57,8 @@ guile -c "
|
|||||||
#
|
#
|
||||||
|
|
||||||
mkdir -p "$new_store/$storedir"
|
mkdir -p "$new_store/$storedir"
|
||||||
new_store_dir="`cd "$new_store/$storedir" ; pwd`"
|
new_store_dir="`cd "$new_store/$storedir" ; pwd -P`"
|
||||||
new_store="`cd "$new_store" ; pwd`"
|
new_store="`cd "$new_store" ; pwd -P`"
|
||||||
|
|
||||||
to_copy="`guix build guile-bootstrap`"
|
to_copy="`guix build guile-bootstrap`"
|
||||||
cp -r "$to_copy" "$new_store_dir"
|
cp -r "$to_copy" "$new_store_dir"
|
||||||
@ -81,7 +81,6 @@ guix-register --prefix "$new_store" "$closure"
|
|||||||
|
|
||||||
# Now make sure this is recognized as valid.
|
# Now make sure this is recognized as valid.
|
||||||
|
|
||||||
NIX_IGNORE_SYMLINK_STORE=1
|
|
||||||
NIX_STORE_DIR="$new_store_dir"
|
NIX_STORE_DIR="$new_store_dir"
|
||||||
NIX_STATE_DIR="$new_store$localstatedir"
|
NIX_STATE_DIR="$new_store$localstatedir"
|
||||||
NIX_LOG_DIR="$new_store$localstatedir/log/guix"
|
NIX_LOG_DIR="$new_store$localstatedir/log/guix"
|
||||||
|
Loading…
Reference in New Issue
Block a user