>>> $ guix-package -p foo --roll-back >> Should I add any profile-related sanity checks to 'roll-back'? > What kind of sanity check? The one that should check that 'foo' is actually a profile. >> Should 'roll-back' only work for 'guix-profile-*-link' and >> 'default-*-link'? If not, then we have a problem because 'profile-rx' >> can't handle something like '42-custom-profile'. Is it possible to >> create such a profile? > Yes, but I think the regexp handles it just fine, no? It depends on how profiles are stored. It turned out that there are several issues. By the way, what should I do to create a custom profile? Both 'profile-rx' and 'profile-number' work fine when '%current-profile' is used. scheme@(guile-user)> (define %current-profile "/nix/var/nix/profiles/per-user/root/guix-profile") scheme@(guile-user)> (profile-number %current-profile) $2 = "1" scheme@(guile-user)> (readlink %current-profile) $3 = "/nix/var/nix/profiles/per-user/root/guix-profile-1-link" But fail for other inputs. scheme@(guile-user)> (define profile-1 "/nix/var/nix/profiles/per-user/root/guix-profile-1-link") scheme@(guile-user)> (profile-number profile-1) $4 = #f This implementation of 'profile-number' works for 'profile-1', but it doesn't work for '%current-profile'. (define (profile-number-1 profile) (and=> (regexp-exec (profile-rx %current-profile) (basename profile)) ; 'readlink' was removed (cut match:substring <> 1))) scheme@(guile-user)> (profile-number-1 profile-1) $5 = "1" scheme@(guile-user)> (profile-number-1 %current-profile) $6 = #f Also, both 'profile-rx' and 'profile-number' can't handle custom profiles. Here is what I used to create a bogus custom profile. # cd /home # mkdir testdir # cd testdir # touch env-42 # ln -s env-42 42-custom-profile # ln -s 42-custom-profile guix-profile [...] scheme@(guile-user)> (define custom-profile "/home/testdir/guix-profile") scheme@(guile-user)> (profile-number custom-profile) $7 = #f So, what kinds of profiles should be supported? Maybe it's not possible to create something like 'custom-profile' and there is no need to bother. Nikita