Hi! Ludovic Courtès skribis: > (+Cc: Efraim following our discussion on IRC.) > > Ludovic Courtès skribis: > >> This is a bug where the presence of propagated inputs leads ‘guix >> upgrade’ to assume something would be upgraded, even when that’s not the >> case. This can be reproduced with: >> >> guix install -p foo guile >> guix upgrade -p foo > > I came up with an actual fix for that (attached), nice and clean, which > would allow ‘guix upgrade’ to correctly determine whether something is > going to be upgraded. > > But then I realized that this cannot work in the presence of grafts: > first because ‘-n’ currently implies ‘--no-grafts’, so this is an apple > to orange comparison, and then because computing the output file name of > a grafted package can require building the package (grafts are “dynamic > dependencies”.) I saw the light :-) and came up with a simple solution to this in commit a357849f5b1314c2a35efeee237645b9b08c39f5. Basically, we do the complete manifest entry comparison as in the patch I posted earlier, but we punt if doing so would require building things (for grafts). Anecdotal data: on my 288-item profile, “guix upgrade -n” would previously report that 124 things need to be upgraded, and now it reports 97 instead. Ludo’.