XKB_CONFIG_ROOT pointing to non-existent directory in kde-neon-6/kde-neon-qt6
Metadata
Current evaluation
No evaluation has been recorded for this issue yet.
Issue body
### Check existing issues
- [x] I've verified that this bug isn't described by any existing issues.
### Bug description
Hello,
I currently try to build my snap using `core24` and the `kde-neon-qt6` extension.
When executing the snap, I run into an issue
```
xkbcommon: ERROR: failed to add default include path /usr/share/X11/xkb
Segmentation fault (core dumped)
```
`strace` shows that `xkb` looks inside `$SNAP/qt6/usr/share/X11/xkb` (i.e. `XKB_CONFIG_ROOT`)
```
newfstatat(AT_FDCWD, "/snap/sayonara/x1/qt6/usr/share/X11/xkb", 0x7fff69791470, 0) = -1 ENOENT (No such file or directory)
```
Running `snap run –shell sayonara`, and checking the environment, I get this:
```
$ env | grep XKB
QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb
XKB_CONFIG_ROOT=/snap/sayonara/x1/qt6/usr/share/X11/xkb
```
But `XKB_CONFIG_ROOT` does not exist in `kf6-core24`/`kde-qt6-core24` [1], [2]
```
$ ls -l $SNAP/qt6/usr/share/X11
total 42
-rw-r--r-- 1 root root 42077 Apr 8 2024 XErrorDB
drwxr-xr-x 64 root root 1174 Sep 16 06:51 locale
lrwxrwxrwx 1 root root 24 Sep 15 05:00 rgb.txt -> ../../../etc/X11/rgb.txt
```
Similar with `QT_XKB_CONFIG_ROOT`
`/usr/share/X11` does not exist even
```
$ ls -l /usr/share/X11/xkb
ls: cannot access '/usr/share/X11/xkb': No such file or directory
```
My current workaround is to stage `xkb-data` and launch my app with a custom launcher prepending `XKB_CONFIG_ROOT=$SNAP/usr/share/X11/xkb`
I also created a disussion in the snapcraft forum [3].
* [1] https://github.com/canonical/snapcraft/blob/caee85ad9d7d81457a5cc9dcd0b2a141a4e0ecd9/snapcraft/extensions/kde_neon_qt6.py#L210
* [2] https://github.com/canonical/snapcraft/blob/caee85ad9d7d81457a5cc9dcd0b2a141a4e0ecd9/extensions/desktop/common/desktop-exports#L78
* [3] https://forum.snapcraft.io/t/xkbcommon-error-failed-to-add-default-include-path-usr-share-x11-xkb/50273
### Steps to reproduce
* Create a snap using `kde-qt6-core24-sdk` and the `kde-neon-qt6` extension.
* Execute it
### Environment
Building in destructive mode, Ubuntu 24.04.
### snapcraft.yaml
```yaml
name: sayonara
adopt-info: sayonara
grade: stable
confinement: strict
base: core24
compression: lzo
apps:
sayonara:
command: usr/bin/sayonara
common-id: com.sayonara-player.Sayonara
desktop: usr/share/applications/com.sayonara-player.Sayonara.desktop
extensions:
- kde-neon-qt6
plugs:
- audio-playback
- desktop
- desktop-legacy
- home
- network
- network-bind
- network-manager-observe
- opengl
- optical-drive
- removable-media
- unity7
- wayland
- x11
slots:
- mpris
# no effect, is overwritten by launch6 anyway
# environment:
# XKB_CONFIG_ROOT: $SNAP/usr/share/X11/xkb
# QT_XKB_CONFIG_ROOT: $SNAP/usr/share/X11/xkb
layout:
/usr/share/sayonara:
bind: $SNAP/usr/share/sayonara
parts:
sayonara:
source-type: local
source: .
parse-info: [ usr/share/metainfo/com.sayonara-player.Sayonara.appdata.xml ]
plugin: cmake
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- -DCMAKE_INSTALL_PREFIX=/usr
- -DDISABLE_NATIVE_DIR_DIALOGS=1
- -DGIT_REVISION=abcabc123
build-snaps:
- kde-qt6-core24-sdk
build-packages:
- ccache
- pkgconf
- cmake
- g++
- libgstreamer-plugins-bad1.0-dev
- libgstreamer-plugins-base1.0-dev
- libgstreamer-plugins-good1.0-dev
- libgstreamer1.0-dev
- libtag1-dev
stage-packages:
- libtag1v5-vanilla
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-ugly
- xkb-data
- strace
after: [ cleanup ]
cleanup:
plugin: nil
build-snaps:
- gtk-common-themes
```
### Log output
```shell
xkbcommon: ERROR: failed to add default include path /usr/share/X11/xkb
Segmentation fault (core dumped)
newfstatat(AT_FDCWD, "/home/luke/snap/sayonara/x1/.config/xkb", 0x7fff69791470, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/home/luke/snap/sayonara/x1/.xkb", 0x7fff69791470, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/etc/xkb", 0x7fff69791470, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/snap/sayonara/x1/qt6/usr/share/X11/xkb", 0x7fff69791470, 0) = -1 ENOENT (No such file or directory)
$ env | grep XKB
QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb
XKB_CONFIG_ROOT=/snap/sayonara/x1/qt6/usr/share/X11/xkb
$ snap connections sayonara
Interface Plug Slot Notes
audio-playback sayonara:audio-playback :audio-playback -
content[gpu-2404] sayonara:gpu-2404 mesa-2404:gpu-2404 -
content[gtk-2-themes] sayonara:gtk-2-themes gtk-common-themes:gtk-2-themes -
content[gtk-3-themes] sayonara:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] sayonara:icon-themes gtk-common-themes:icon-themes -
content[kde-qt6-core24-all] sayonara:kde-qt6-core24 kde-qt6-core24:kde-qt6-core24 manual
content[sound-themes] sayonara:sound-themes gtk-common-themes:sound-themes -
desktop sayonara:desktop :desktop -
desktop-legacy sayonara:desktop-legacy :desktop-legacy -
home sayonara:home :home -
mpris - sayonara:mpris -
network sayonara:network :network -
network-bind sayonara:network-bind :network-bind -
network-manager-observe sayonara:network-manager-observe - -
opengl sayonara:opengl :opengl -
optical-drive sayonara:optical-drive :optical-drive -
removable-media sayonara:removable-media - -
unity7 sayonara:unity7 :unity7 -
wayland sayonara:wayland :wayland -
x11 sayonara:x11 :x11 -
```
Evaluation history
No evaluation history available.