вс, 27 июл. 2025 г. в 16:03, Michael <[email protected]>: > > On Sunday, 27 July 2025 13:18:34 British Summer Time gevisz wrote: > > 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. > > The offending lines in /var/db/repos/gentoo/x11-misc/xkeyboard-config/ > xkeyboard-config-2.45-r1.ebuild are: > ==================================== > ... > 68 src_install() { > 69 meson_src_install > 70 > 71 # Workaround for portage's collision checks, see pkg_preinst (bug > #957712) > 72 mv "${ED}"/usr/share/X11/xkb{,.workaround} || die > 73 } > 74 > 75 pkg_preinst() { 76 # Avoid touching EROOT if not needed, and use > -f just-in-case anyway > 77 if [[ -d ${EROOT}/usr/share/X11/xkb && ! -L ${EROOT}/usr/share/ > X11/xkb ]]; then > 78 rm -rf "${EROOT}"/usr/share/X11/xkb || die > 79 fi > 80 mv "${ED}"/usr/share/X11/xkb{.workaround,} || die > 81 } > ============== > > I suggest you re-open this bug[1], because its workaround may have been > somewhat inconsiderate as to potential impacts.
Yes, I have opened the bug https://bugs.gentoo.org/960773 > However, unlike files in /etc/ subdirectories, files under /usr/share/ are > generally expected to be overwritten by package updates. I see the wiki[2] > suggests to create/edit files in place for custom keyboard layouts, but I > wonder if it would have been safer for a symlink pointing to /etc where custom > xkb config files could be stored more safely. Yes, to symlink the custom keyboard configuration files somewhere seems to be the best idea so far. Thank you. > [1] https://bugs.gentoo.org/957712 > [2] https://wiki.gentoo.org/wiki/Keyboard_layout_switching

