guix-package: Fix `--roll-back' when `--profile' is not passed.
* guix-package.in (roll-back): Fix file name of PREVIOUS-PROFILE, which could end up containing the dirname twice. Reported by Nikita and Andreas. * tests/guix-package.sh: Add test.master
parent
5401dd7595
commit
67668155c5
|
@ -208,9 +208,8 @@ all of PACKAGES, a list of name/version/output/path tuples."
|
||||||
;; XXX: Get the previous generation number from the manifest?
|
;; XXX: Get the previous generation number from the manifest?
|
||||||
(let* ((number (profile-number profile))
|
(let* ((number (profile-number profile))
|
||||||
(previous-number (previous-profile-number profile number))
|
(previous-number (previous-profile-number profile number))
|
||||||
(previous-profile (format #f "~a/~a-~a-link"
|
(previous-profile (format #f "~a-~a-link"
|
||||||
(dirname profile) profile
|
profile previous-number))
|
||||||
previous-number))
|
|
||||||
(manifest (string-append previous-profile "/manifest")))
|
(manifest (string-append previous-profile "/manifest")))
|
||||||
|
|
||||||
(define (switch-link)
|
(define (switch-link)
|
||||||
|
|
|
@ -109,7 +109,9 @@ guix-package --bootstrap -i "binutils:lib" -p "$profile" -n
|
||||||
# Check whether `--list-available' returns something sensible.
|
# Check whether `--list-available' returns something sensible.
|
||||||
guix-package -A 'gui.*e' | grep guile
|
guix-package -A 'gui.*e' | grep guile
|
||||||
|
|
||||||
|
#
|
||||||
# Try with the default profile.
|
# Try with the default profile.
|
||||||
|
#
|
||||||
|
|
||||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||||
export XDG_CACHE_HOME
|
export XDG_CACHE_HOME
|
||||||
|
@ -122,6 +124,18 @@ guix-package --bootstrap -i "$boot_guile"
|
||||||
test -L "$HOME/.guix-profile"
|
test -L "$HOME/.guix-profile"
|
||||||
test -f "$HOME/.guix-profile/bin/guile"
|
test -f "$HOME/.guix-profile/bin/guile"
|
||||||
|
|
||||||
|
if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
|
||||||
|
then
|
||||||
|
guix-package --bootstrap -i "$boot_make"
|
||||||
|
test -f "$HOME/.guix-profile/bin/make"
|
||||||
|
first_environment="`cd $HOME/.guix-profile ; pwd`"
|
||||||
|
|
||||||
|
guix-package --bootstrap --roll-back
|
||||||
|
test -f "$HOME/.guix-profile/bin/guile"
|
||||||
|
! test -f "$HOME/.guix-profile/bin/make"
|
||||||
|
test "`cd $HOME/.guix-profile ; pwd`" = "$first_environment"
|
||||||
|
fi
|
||||||
|
|
||||||
# Failed attempt to roll back.
|
# Failed attempt to roll back.
|
||||||
if guix-package --bootstrap --roll-back;
|
if guix-package --bootstrap --roll-back;
|
||||||
then false; else true; fi
|
then false; else true; fi
|
||||||
|
|
Reference in New Issue