Ludovic Courtès (2014-07-05 17:59 +0400) wrote: > Alex Kost <[email protected]> skribis: > >> 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"
After this patch “guix-register” test failed again, but when I modified “new_store_dir” in the same way, it passed. Here is the modified patch:
diff --git a/tests/guix-register.sh b/tests/guix-register.sh index 019a451..28b799b 100644 --- a/tests/guix-register.sh +++ b/tests/guix-register.sh @@ -57,8 +57,8 @@ guile -c " # mkdir -p "$new_store/$storedir" -new_store_dir="`cd "$new_store/$storedir" ; pwd`" -new_store="`cd "$new_store" ; pwd`" +new_store_dir="`cd "$new_store/$storedir" ; pwd -P`" +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. It's harmless but “make check” fails because of this and now it's the only fail left unsolved. I don't understand why those paths become so fancy, but it happens only when I build from a symlinked directory and doesn't happen in an absolute directory. I don't insist but perhaps it would be better to make a less strict test.
