On Tue, Oct 13, 2015 at 2:08 PM, Taylan Ulrich Bayırlı/Kammer <[email protected]> wrote: > From what I can tell this situation I landed in doesn't involve any bugs > and won't happen to a normal user, but for the sake of documenting it > for developers, here goes: > > I have $XDG_CONFIG_HOME/guix/latest point to a git repository so I can > update it swiftly. > > In the repo, a ./guix/config.scm is generated from ./guix/config.scm.in > sometimes, I guess on ./configure; I haven't tried to figure out exactly > when but certainly not every time I run 'make'. > > That config.scm will contain absolute paths to gzip, bzip2, and some > other things. If you used a Guix environment to build, those will be > /gnu/store/... paths. > > When you update things and garbage-collect, those store items might get > removed, since $XDG_CONFIG_HOME/guix/latest/guix/config.scm is not a GC > root (rightly so, as far as I understand). And thus, guix commands will > start failing, saying they can't find /gnu/store/.../bin/bzip2 or > whatever. > > That sums up the problem description. > > Fixing it might be tricky if you need to use 'guix environment' to run > ./configure or whatever to fix the config.scm, since you possibly first > need to fix the issue to be able to use 'guix environment' (it will work > only if no calls are made to the missing /gnu/store/... executables). > > Manually fixing the config.scm is easy, fortunately. Just change the > absolute /gnu/store/... paths which point at non-existing store items to > point to existing store items.
Some day 'guix environment' will allow one to create a profile and register it as a GC root and avoid this issue. - Dave
