Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use of different platforms #88

Closed
Djolivald opened this issue Mar 19, 2021 · 9 comments · Fixed by #118 · May be fixed by #89
Closed

Use of different platforms #88

Djolivald opened this issue Mar 19, 2021 · 9 comments · Fixed by #118 · May be fixed by #89

Comments

@Djolivald
Copy link

Djolivald commented Mar 19, 2021

Hi,
In src/deployers/PlatformPluginsDeployer.cpp#L20 only platforms/libqxcb.so is copied over? Is there a way to get other platforms to ship? minimal, offscreen, vnc and alike?
Tried to add them via the EXTRA_QT_PLUGINS env variable but without success.

@TheAssassin
Copy link
Member

Which one(s) would you like to include? We could just extend it, or, if needed, add some opt-in feature.

@Djolivald
Copy link
Author

I personally would like to add offscreen, but maybe we could use EXTRA_QT_PLUGINS and matching all platforms/*.so as platforms plugins?
Not sure if there is anything more than adding the .so in the package for it to work though.

@TheAssassin
Copy link
Member

How large is that offscreen platform .so? Can you please run ldd on it and post the output, too?

@TheAssassin
Copy link
Member

It's around 170k on my system, I didn't know that platform even existed. What is it being used for?

I'd suggest to add an opt-in feature for deploying this platform. We could add an environment variable that allows people to choose platform plugins to be deployed along with the good ol' xcb.

@Djolivald
Copy link
Author

Djolivald commented Mar 19, 2021

offscreen is 241K, here is the list for all of them for reference

16K libqeglfs.so*
556K libqlinuxfb.so*
186K libqminimal.so*
232K libqminimalegl.so*
241K libqoffscreen.so*
331K libqvnc.so*
102K libqwayland-egl.so*
 16K libqwayland-generic.so*
105K libqwayland-xcomposite-egl.so*
 83K libqwayland-xcomposite-glx.so*
 33K libqxcb.so*

Output of ldd libqoffscreen.so

        linux-vdso.so.1 (0x00007ffee07b4000)
        libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f4c78aae000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f4c78985000)
        libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f4c7893e000)
        libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f4c7887f000)
        libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4c7886a000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f4c7872d000)
        libQt5Gui.so.5 => /opt/qt/5.12.0/gcc_64/plugins/platforms/./../../lib/libQt5Gui.so.5 (0x00007f4c77f06000)
        libQt5Core.so.5 => /opt/qt/5.12.0/gcc_64/plugins/platforms/./../../lib/libQt5Core.so.5 (0x00007f4c77779000)
        libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f4c776f1000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4c776ce000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4c774ed000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c7739e000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4c77381000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c7718f000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4c7711c000)
        libexpat.so.1 => /build/libexpat.so.1 (0x00007f4c76ee5000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4c76edc000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f4c76ea4000)
        libz.so.1 => /build/libz.so.1 (0x00007f4c76c85000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4c76c5b000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4c76c55000)
        libicui18n.so.56 => /opt/qt/5.12.0/gcc_64/plugins/platforms/./../../lib/libicui18n.so.56 (0x00007f4c767bc000)
        libicuuc.so.56 => /opt/qt/5.12.0/gcc_64/plugins/platforms/./../../lib/libicuuc.so.56 (0x00007f4c76404000)
        libicudata.so.56 => /opt/qt/5.12.0/gcc_64/plugins/platforms/./../../lib/libicudata.so.56 (0x00007f4c74a1f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4c78ce8000)
        libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f4c74967000)
        libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f4c74933000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4c7492d000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4c74925000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f4c74909000)

@Djolivald
Copy link
Author

It's around 170k on my system, I didn't know that platform even existed. What is it being used for?

I'd suggest to add an opt-in feature for deploying this platform. We could add an environment variable that allows people to choose platform plugins to be deployed along with the good ol' xcb.

I use it to run a qt app in docker (without x11 server). Useful for apps that can be used in cli.

@TheAssassin
Copy link
Member

So it's basically an alternative to running the application with a virtual frame buffer with xvfb?

@Djolivald
Copy link
Author

So it's basically an alternative to running the application with a virtual frame buffer with xvfb?

I can only hazard a guess, I'd say yes. I'm afraid I don't know more about how this works, and can't find lots documentation on it.

@TheAssassin
Copy link
Member

Recently some Wayland support was requested again. I remember we had some experimental support once, then had to remove it again due to stability issues. Your plugin makes us deploy one half of the stuff needed for wayland, the platform plugin. The other half is a bunch of extra plugins which can be deployed with $EXTRA_QT_PLUGINS.

asl added a commit to asl/linuxdeploy-plugin-qt that referenced this issue Jul 21, 2022
asl added a commit to asl/linuxdeploy-plugin-qt that referenced this issue Aug 26, 2022
TheAssassin pushed a commit that referenced this issue Aug 26, 2022
* Allow installation of extra platform plugins

Resolves #88

* Address review comments

* Update test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants