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 |