Ludovic Courtès <l...@gnu.org> skribis: > In the 1.3.0rc2 VM image, ‘guix describe’ prints nothing and exits with > 0 (success). This is with /run/current-system/profile/bin/guix. > ‘strace’ shows that it parses /run/current-system/profile/manifest, > which does not contain provenance information.
In RC1, ‘current-profile’ from (guix describe) returns #f. Thus, ‘current-channels’ returns channel metadata from (guix config). In RC2, ‘current-profile’ returns /run/current-system/profile. Thus, ‘current-channels’ returns metadata from profile entries, but there’s none. The different ‘current-profile’ behavior stems from this condition: --8<---------------cut here---------------start------------->8--- (define current-profile (mlambda () "Return the profile (created by 'guix pull') the calling process lives in, or #f if this is not applicable." (match initial-program-arguments ((program . _) (and (string-suffix? "/bin/guix" program) ;<------ HERE! ;; Note: We want to do _lexical dot-dot resolution_. Using ".." ;; for real would instead take us into the /gnu/store directory ;; that ~/.config/guix/current/bin points to, whereas we want to ;; obtain ~/.config/guix/current. (let ((candidate (dirname (dirname program)))) (and (file-exists? (string-append candidate "/manifest")) candidate))))))) --8<---------------cut here---------------end--------------->8--- Prior to c47f3fc13562d82edfd2d47342574154c452843a, PROGRAM was “.guix-real” (hence the #f return value), but now it’s “guix”. Ludo’.