bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17935: make check failed


From: Ludovic Courtès
Subject: bug#17935: make check failed
Date: Sat, 05 Jul 2014 15:59:01 +0200
User-agent: Gnus/5.130009 (Ma Gnus v0.9) Emacs/24.3 (gnu/linux)

Alex Kost <address@hidden> skribis:

> Ludovic Courtès (2014-07-05 13:42 +0400) wrote:
>>
>> [...]
>>
>>> So I think the problem with the patch is that address@hidden@/store”
>>> directory does not exist when “`cd "@GUIX_TEST_ROOT@/store"; pwd -P`” is
>>> being invoked.
>>
>> Oops, indeed.  Could you try this version, again from a directory with
>> symlinks?
>>
>> diff --git a/test-env.in b/test-env.in
>> index a3b3536..9d0c8cc 100644
>> --- a/test-env.in
>> +++ b/test-env.in
>> @@ -27,8 +27,15 @@
>>  if [ -x "@abs_top_builddir@/guix-daemon" ]
>>  then
>>      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"
>> +
>> +    # 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_LOG_DIR="@GUIX_TEST_ROOT@/var/log/guix"
>>      NIX_DB_DIR="@GUIX_TEST_ROOT@/db"
>> @@ -71,9 +78,6 @@ then
>>          GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES                              
>> \
>>          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
>>      # unavailable, for instance if we're not running as root.
>>      "@abs_top_builddir@/pre-inst-env"                               \
>>
>> Thanks in advance,
>> Ludo’.
>
> I have tried that.  Unfortunately 2 tests failed.

OK, we’re making progress.  ;-)

> Also I think
>     NIX_STORE_DIR="`cd "@GUIX_TEST_ROOT@/store"; pwd -P`"
> may be replaced with:
>     NIX_STORE_DIR="`realpath "@GUIX_TEST_ROOT@/store"`"

This is virtually equivalent, but probably less portable.

> FAIL: tests/guix-register
> =========================

[...]

> + guix-register -p /home/alexx/src/guix/t-register-7895
> error: the path `/home/alexx/src' is a symlink; this is not allowed for the 
> Nix store and its parent directories

Can you check whether the patch below (in addition to the previous one)
solves the problem?

diff --git a/tests/guix-register.sh b/tests/guix-register.sh
index 019a451..f18de8d 100644
--- a/tests/guix-register.sh
+++ b/tests/guix-register.sh
@@ -58,7 +58,7 @@ guile -c "
 
 mkdir -p "$new_store/$storedir"
 new_store_dir="`cd "$new_store/$storedir" ; pwd`"
-new_store="`cd "$new_store" ; pwd`"
+new_store="`cd "$new_store" ; pwd -P`"
 
 to_copy="`guix build guile-bootstrap`"
 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.
 
-NIX_IGNORE_SYMLINK_STORE=1
 NIX_STORE_DIR="$new_store_dir"
 NIX_STATE_DIR="$new_store$localstatedir"
 NIX_LOG_DIR="$new_store$localstatedir/log/guix"
> Test begin:
>   test-name: "package-field-location, relative file name"
>   source-file: "/media/storage/src/guix/./tests/packages.scm"
>   source-line: 85
>   source-form: (test-equal "package-field-location, relative file name" 
> (location-file (package-location %bootstrap-guile)) (with-fluids 
> ((%file-port-name-canonicalization (quote absolute))) (location-file 
> (package-field-location %bootstrap-guile (quote version)))))
> Test end:
>   result-kind: fail
>   actual-value: "./gnu/packages/bootstrap.scm"
>   expected-value: "gnu/packages/bootstrap.scm"

I’m not sure if this one relates to the symlink story, but it’s harmless
anyway.

Thanks,
Ludo’.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]