On July 25, 2025 my custom keyboard layout files located
in /usr/share/X11/xkb/symbols/ were unexpectedly overwritten
during system despite the fact that they were config-protected:
# emerge --info | grep CONFIG_PROTECT
CONFIG_PROTECT="/etc /usr/share/X11/xkb/symbols/ /usr/share/config
/usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d
/etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release
/etc/revdep-rebuild /etc/sandbox.d /etc/texmf/language.dat.d
/etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

ChatGPT says to me that it was done when
x11-misc/xkeyboard-config-2.45-r1 was updated.

I do not use etc-update or dispatch-conf, and there were no ._cfg*
files left behind — the overwrite happened silently.

After examining the ebuild, ChatGPT noticed that src_install() uses
meson_src_install,
and then moves the entire installed /usr/share/X11/xkb tree to
/usr/share/X11/xkb.workaround/
as a workaround for bug #957712. In pkg_preinst(), that tree is then
forcibly moved back to /usr/share/X11/xkb, overwriting any existing
files.

This manual move bypasses Portage’s CONFIG_PROTECT mechanism entirely,
as pkg_preinst()
runs before Portage has a chance to apply config file protection.

While I understand the intention behind the workaround, the result was
a total loss of my custom layout files,
despite explicitly protecting the directory. I’ve been using Gentoo
for 12 years, and I have never been so
disappointed by the Gentoo as I was when this happened to say the least.

Is there a Gentoo-compliant way to preserve customized layouts that
replace system-provided ones under such circumstances?

Thanks in advance for any suggestions or guidance.

Reply via email to