Hi, Mark H Weaver skribis: > I found them: > > ~/.cache/ibus/bus/registry > /var/lib/gdm/.cache/ibus/bus/registry > > On my system, those files include absolute pathnames to programs in > /gnu/store/a4r6q1fbfqapy5hrrxap1yg96rjgln6q-ibus-1.5.22, which I > compiled last December. Looks like . The problem seems to generally affect GLib/GNOME-ish caches. From a quick look at ibusregistry.c & co, I think the values that end up in the cache are taken from these XML files: --8<---------------cut here---------------start------------->8--- $ grep /gnu/store $(find $(guix build ibus) -name \*.xml) /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/share/ibus/component/gtkpanel.xml: /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/libexec/ibus-ui-gtk3 /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/share/ibus/component/dconf.xml: /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/libexec/ibus-dconf /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/share/ibus/component/simple.xml: /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/libexec/ibus-engine-simple /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/share/ibus/component/gtkextension.xml: /gnu/store/a7lxf1i35yqil6pxwxhzvr5q3xcqldyq-ibus-1.5.22/libexec/ibus-extension-gtk3 --8<---------------cut here---------------end--------------->8--- It’s the ‘components’ field of _IBusRegistryPrivate: --8<---------------cut here---------------start------------->8--- struct _IBusRegistryPrivate { /* a list of IBusObservedPath objects. */ GList *observed_paths; /* a list of IBusComponent objects that are created from component XML * files (or from the cache of them). */ GList *components; gboolean changed; /* a mapping from GFile to GFileMonitor. */ GHashTable *monitor_table; guint monitor_timeout_id; }; --8<---------------cut here---------------end--------------->8--- The attached patch does the following: 1. change the above file names in XML files to relative file names; 2. change ibuscomponent.c to automatically prepend $libexecdir to items that are relative file names. That way, XML files and thus caches should only contain relative file names for ibus’ own executables. The attached patch builds with: guix build ibus --with-patch=ibus=/tmp/ibus.patch … but I don’t know if it actually works. Testing welcome. :-) Unfortunately this strategy doesn’t help with IBus extensions: --8<---------------cut here---------------start------------->8--- $ grep exec $(find $(guix build ibus-anthy) -name \*.xml) /gnu/store/d3mfffz41as1blfb28m8n461j42i6zjr-ibus-anthy-1.5.9/share/ibus/component/anthy.xml: /gnu/store/d3mfffz41as1blfb28m8n461j42i6zjr-ibus-anthy-1.5.9/libexec/ibus-engine-anthy --ibus /gnu/store/d3mfffz41as1blfb28m8n461j42i6zjr-ibus-anthy-1.5.9/share/ibus/component/anthy.xml: --8<---------------cut here---------------end--------------->8--- Thoughts? Ludo’.