Geiser complains about a missing patch, has anyone else had this issue?

Hi all,

Lately (and on multiple machines) my Geiser repl has been complaining about u-boot-sifive-prevent-reloc-initrd-fdt.patch being missing. The workaround for me has been to search in /gnu/store for the patch and add the corresponding folder to geiser-guile-load-path. Has anyone else seen this?

Thanks!

-Bionicbabelfish

That patch file was deleted on November 27 it looks like: guix.git - GNU Guix and GNU Guix System

I’ve had issues with this happening while trying to upgrade my packages because one of the channels I use didn’t update a package description that still referenced a patch. But I don’t know why it would show up every time you start your Geiser repl :thinking:

2 Likes

Thanks @ryuslash! I don’t completely understand how this works… I have a fork of crafted-guix (with a guix deploy patch that I still have to submit upstream). (crafted config) references (gnu bootloader) and, indeed, when I ,use (crafted config) in geiser the missing module problem pops up. What puzzels me is that crafted-guix doesn’t reference any “particular” version of the (gnu bootloader) module as far as I can tell. I also have my ’geiser-guile-load-path set to “~/.config/guix/share/guile/site/3.0” (typing this from memory so I might have the subfolder order mixed up). In my naive reasoning that would mean that geiser should reference the version of the modules/channels that was pulled with guix pull right? What could still be referring to the older module?

Thanks again!

I haven’t looked at crafted-guix, so I’m not sure what’s in there. I’m guessing the path you meant is actually ~/.config/guix/current/share/guile/site/3.0 and yes that would be what guix pull pulled in as far as I know :slight_smile:

A package definition in either crafted-guix, one of the channels you’ve added, or in your configuration might still have (search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch"). This might be because it was copied and modified for some reason, for example. That’s the only thing I can think of right now.

To be clear, this doesn’t happen when you try to do guix pull, guix package -u, sudo guix reconfigure ..., or guix home reconfigure ...? Because the only time I ran into it it was preventing me from upgrading my packages and home configuration. So it might be something completely different for you.

1 Like

Ok, I’m a bit further down this rabbit hole now… a ripgrep in the …/guile/site/3.0 dir doesn’t show anything referencing that patch. And indeed, as you say, the issue doesn’t occur when I do guix pull, etc.

In fact, the issue doesn’t even occur if I run guix repl or even when I run guix repl --listen=tcp:12345 and then run geiser-connect from within emacs. This is a viable workaround for now, but I’d still like to know where this patch is referenced… I cleared the .cache/guile folder so that can’t be it. To me, the one remaining possibility is that it’s in one of the compiled .go files that comes with emacs-guix and emacs-geiser, but I would expect other people to be running into the same issue in that case… I’ll update this thread if I have an epiphany :wink:

EDIT: oh and thanks very much for your input @ryuslash !

1 Like

How did you install Geiser? Have you:

  • Run guix package -u recently, if you used guix package -i emacs-geiser or guix install emacs-geiser?
  • Run guix home reconfigure ... if you installed it through guix home?
  • Run sudo guix reconfigure ... if you installed it through a Guix system configuration?

These may just be blind alleys, I just wanted to make sure that your Geiser and current guix were both from the same version of Guix.

right so I tracked down the reference to the patch in /run/current-system/profile/share/guile/site/3.0/... if I adapt the GUILE_LOADPATH and the GUILE_LOAD_COMPILED_PATH to have the /run/current/system references right at the end of the path (instead of somewhere in the middle) the geiser repl behaves well again. The bizarre thing is that even after a guix system reconfigure and guix package -u the “old” gnu version (referencing the deleted path) remains in /run/current-system/profile even though the channels.scm file (and guix system describe) list the most recent commit for the guix channel. Still don’t understand… :rofl: