Am 25.08.2017 um 18:04 schrieb 宋文武:
Here is a patch to adjust the directory layout of qtbase:
I tested this patch and building qtwayland failed:
cd
/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/tests/auto/client/client
./target_wrapper.sh ./tst_client
The error message is (which is misleading, see below)
This application failed to start because it could not
find or load the Qt platform plugin "wayland"
in "".
Available platform plugins are: eglfs, linuxfb, minimal,
minimalegl, offscreen, vnc, xcb, wayland-egl, wayland,
wayland-xcomposite-egl, wayland-xcomposite-glx.
I searched the internet for this without any useful result (I did
not search too long, though). But there was a hint pointing to some
missing library. And indeed the strace output (see below, shortened)
shows: the platform plugin is found, but it requires
libQt5WaylandClient.so.5 which is searched without success. The file
exists in
/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/lib/,
so it is part of qtwayland but not yet installed.
It is searched in several sub-directories of
/tmp/guix-build-…/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../
(which is the /tmp/guix-build-qtwayland-5.9.1.drv-0 directory), but
not in …/lib. I did not find out how to
15562
open("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/libqwayland-generic.so",
O_RDONLY|O_CLOEXEC) = 8
15562 read(8,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\24\0\0\0\0\0\0"...,
832) = 832
…
15562
open("/gnu/store/dnmbw43sl6yx82awzj8c0y4wcjz5z2kd-qtbase-5.9.1/lib/libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
15562
open("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../tls/x86_64/libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
15562
stat("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../tls/x86_64",
0x7ffc321fe710) = -1 ENOENT (No such file or directory)
15562
open("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../tls/libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
15562
stat("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../tls",
0x7ffc321fe710) = -1 ENOENT (No such file or directory)
15562
open("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../x86_64/libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
15562
stat("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../x86_64",
0x7ffc321fe710) = -1 ENOENT (No such file or directory)
15562
open("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../../libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
15562
stat("/tmp/guix-build-qtwayland-5.9.1.drv-0/qtwayland-opensource-src-5.9.1/plugins/platforms/../../..",
{st_mode=S_IFDIR|0755, st_size=100, ...}) = 0
15562
open("/gnu/store/rmjlycdgiq8pfy5hfi42qhw3k7p6kdav-glibc-2.25/lib/libQt5WaylandClient.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Thinks I tried to solve this:
- setting QT_QPA_PLATFORM_PLUGIN_PATH
- creating a file
qt.conf in the app folder
Things I did *not* try:
- reading http://www.tripleboot.org/?p=138 – to long :-)
Another insight:
- export QT_DEBUG_PLUGINS=1 makes qt report useful messages.
--
Regards
Hartmut Goebel
| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |