В опакеченном libxkbcommon не отрабатывает функция из context.c ret |= xkb_context_include_path_append(ctx, DFLT_XKB_CONFIG_ROOT); Следующая за ней ret |= xkb_context_include_path_append(ctx, user_path); отрабатывает, что видно по stat на каталог из strace. C LD_PRELOAD libxkbcommon.so из только что собранного buildroot работает. Из опакеченноого из этого же buildroot уже не пашет.
$ LD_PRELOAD=/home/zerg/RPM/TMP/libxkbcommon-buildroot/usr/lib64/libxkbcommon.so strace ./Sigram 2>&1| grep xkb [...] stat("/usr/share/X11/xkb", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/usr/share/X11/xkb", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 access("/usr/share/X11/xkb", R_OK|X_OK) = 0 write(2, "xkb_context_include_path_append "..., 57xkb_context_include_path_append DFLT_XKB_CONFIG_ROOT <1> stat("/home/zerg/.xkb", {st_mode=S_IFREG|0644, st_size=79, ...}) = 0 [...] $ strace ./Sigram 2>&1| grep xkb stat("/home/zerg/.xkb", {st_mode=S_IFREG|0644, st_size=79, ...}) = 0 write(2, "xkbcommon: ERROR: ", 18xkbcommon: ERROR: ) = 18 $
Опробовано на https://github.com/sialan-labs/sigram
Причем, c LD_PRELOAD=/usr/lib64/libxkbcommon.so тоже работает, а файлы в buildroot и системе идентичны.
Проблема в Qt5
qt5-base-5.3.1-alt3 -> sisyphus: * Thu Jul 03 2014 Sergey V Turchin <zerg@altlinux> 5.3.1-alt3 - fix xcb-xkb usage (ALT#30153) * Mon Jun 30 2014 Sergey V Turchin <zerg@altlinux> 5.3.1-alt1.M70P.1 - built for M70P