On Tue, 2021-03-23 at 15:22 +0100, Andreas Enge wrote: > I wrote in my bug report https://issues.guix.gnu.org/47315; grafts > with > different version numbers lead to a command line behaviour that is > not > understandable: > > $ guix package -A imagemagick > imagemagick 6.9.12-2g out,doc gnu/packages/imagemagick.scm:132:2 > imagemagick 6.9.11-48 out,doc gnu/packages/imagemagick.scm:48:2 > > $ guix build imagemagick@6.9.11 > guix build: error: imagemagick: package not found for version 6.9.11 > > $ guix build imagemagick@6.9.11-48 > /gnu/store/c30y49vg735g6b4hh590zrc9fmvcsy0w-imagemagick-6.9.12-2g-doc > /gnu/store/l3hr0fimip6v7vmkgxbqygsglxaxasy0-imagemagick-6.9.12-2g > > From a user's perspective, inkscape@6.9.11 is at the time there and > not > there; it is shown by "guix package", but then not accessible for > install- > ation, but silently "glossed over" in favour of a different version. > > I just noticed that I can do this: > $ guix build imagemagick@6.9.11-48 --no-grafts > /gnu/store/wlnciwhn6llwqwywf4hq739v5bbcrq3h-imagemagick-6.9.11-48-doc > /gnu/store/vlix7fclb7ifjgmxgpwr1pvraff89w7b-imagemagick-6.9.11-48 > But I can also do this: > $ guix build imagemagick@6.9.12-2g --no-grafts > /gnu/store/4s20df0zjmmys8zvlvynksrwz5xqk9ls-imagemagick-6.9.12-2g-doc > /gnu/store/7iwx7rj1ipsbgb9wgimrrflniyxpilw3-imagemagick-6.9.12-2g > where I do not know what I would have expected - the ungrafted > version > of 6.9.12 is 6.9.11, no? At the same time, for once it respects my > wish for a specific version. > > Otherwise said, grafting to different versions breaks our semantic > for > designating packages, in which version numbers play an important > role, > and replaces it by a mess which even with the examples above I have a > hard time understanding. For this, the problem is not grafting but that the replacement package definition has been made public, this is an "issue" (?) that is known and I try to not make replacement package definitions public now. > > Caeterum censeo: > The real fix is probably to do less grafts and more rebuilds... Agreed, I would really like a security-updates branch for that, with which we can buffer changes waiting for substitutes and then merge with master, but I am afraid this enters in conflict with people not having lots of bandwidth to download a new world again through substitutes or very powerful machines for those who don't use substitutes. Léo