Browse Source

guix package: Use relative symlinks to generations.

Reported by Roel Janssen <roel@gnu.org>
at <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>.

* guix/profiles.scm (switch-to-generation): Use (basename generation) as
the symlink target.
* guix/scripts/package.scm (build-and-use-profile): Likewise,
use (basename name) as the symlink target.
* tests/guix-package.sh: Adjust --roll-back test accordingly.  Add
explicitly test with '-p foo/prof'.
gn-latest-20200428
Ludovic Courtès 3 years ago
parent
commit
bc6e291ef0
No known key found for this signature in database GPG Key ID: 90B11993D9AEBB5
3 changed files with 13 additions and 3 deletions
  1. +1
    -1
      guix/profiles.scm
  2. +1
    -1
      guix/scripts/package.scm
  3. +11
    -1
      tests/guix-package.sh

+ 1
- 1
guix/profiles.scm View File

@ -1521,7 +1521,7 @@ the generation that was current before switching."
(profile profile)
(generation number)))))
(else
(switch-symlinks profile generation)
(switch-symlinks profile (basename generation))
current))))
(define (switch-to-previous-generation profile)


+ 1
- 1
guix/scripts/package.scm View File

@ -190,7 +190,7 @@ do not treat collisions in MANIFEST as an error."
(let* ((entries (manifest-entries manifest))
(count (length entries)))
(switch-symlinks name prof)
(switch-symlinks profile name)
(switch-symlinks profile (basename name))
(unless (string=? profile %current-profile)
(register-gc-root store name))
(format #t (N_ "~a package in profile~%"


+ 11
- 1
tests/guix-package.sh View File

@ -185,6 +185,16 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \
rm "$emacs_tarball" "$tmpfile"
rmdir "$module_dir"
# Profiles with a relative file name. Make sure we don't create dangling
# symlinks--see bug report at
# <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>.
mkdir -p "$module_dir/foo"
( cd "$module_dir" ; \
guix package --bootstrap -i guile-bootstrap -p foo/prof )
test -f "$module_dir/foo/prof/bin/guile"
rm "$module_dir/foo"/*
rmdir "$module_dir/foo"
rmdir "$module_dir"
#
# Try with the default profile.
@ -215,7 +225,7 @@ do
guix package --bootstrap --roll-back
! test -f "$HOME/.guix-profile/bin"
! test -f "$HOME/.guix-profile/lib"
test "`readlink "$default_profile"`" = "$default_profile-0-link"
test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`"
done
# Check whether '-p ~/.guix-profile' makes any difference.


Loading…
Cancel
Save