From 09b683fbf30e019702387ceea87f5dd09ec853f2 Mon Sep 17 00:00:00 2001 From: Patrick Franz Date: Fri, 29 Jul 2022 19:31:50 +0200 Subject: [PATCH] Move lots of QPA plugins into library packages. --- debian/changelog | 6 ++++-- debian/control | 14 ++++++++----- debian/libqt6gui6.install | 17 ++++++++++++++++ debian/libqt6gui6.lintian-overrides | 11 ++++++++++ debian/libqt6opengl6.install | 10 +++++++++ debian/libqt6opengl6.lintian-overrides | 13 ++++++++++++ debian/qt6-qpa-plugins.install | 26 ------------------------ debian/qt6-qpa-plugins.lintian-overrides | 14 ------------- 8 files changed, 64 insertions(+), 47 deletions(-) mode change 100644 => 100755 debian/libqt6gui6.install mode change 100644 => 100755 debian/libqt6opengl6.install mode change 100755 => 100644 debian/qt6-qpa-plugins.install delete mode 100644 debian/qt6-qpa-plugins.lintian-overrides diff --git a/debian/changelog b/debian/changelog index 8ec7b83..c73c198 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,10 @@ qt6-base (6.3.1+dfsg-6) UNRELEASED; urgency=medium [ Dmitry Shachnev ] - * Make libqt6gui6 recommend qt6-qpa-plugins. That package contains - libqxcb.so, without which Qt will not work on X11 platform. + * Make libqt6gui6 recommend qt6-qpa-plugins. + + [ Patrick Franz ] + * Move lots of QPA plugins into library packages. -- Debian Qt/KDE Maintainers Sun, 24 Jul 2022 19:36:07 +0300 diff --git a/debian/control b/debian/control index 72080c7..bc1f3ea 100644 --- a/debian/control +++ b/debian/control @@ -126,8 +126,8 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: fontconfig, ${misc:Depends}, ${shlibs:Depends} -Breaks: qt6-qpa-plugins (<< 6.2.4+dfsg-5~) -Replaces: qt6-qpa-plugins (<< 6.2.4+dfsg-5~) +Breaks: qt6-qpa-plugins (<< 6.3.1+dfsg-6~) +Replaces: qt6-qpa-plugins (<< 6.3.1+dfsg-6~) Recommends: qt6-gtk-platformtheme, qt6-qpa-plugins Description: Qt 6 GUI module Qt is a cross-platform C++ application framework. Qt's primary feature @@ -140,12 +140,14 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: fontconfig, ${misc:Depends}, ${shlibs:Depends} -Breaks: libqt6gui6 (<< 6.2.4+dfsg-5~), libqt6network6 (<< 6.2.4+dfsg-5~) -Description: Qt 6 EGL plugins +Breaks: libqt6gui6 (<< 6.3.1+dfsg-6~), libqt6network6 (<< 6.3.1+dfsg-6~) +Description: Qt 6 QPA plugins Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI functionality. . - This package contains QPA-related plugins. + This package contains the following plugins: + * uioTouch Plugin + * VNC Plugin Package: qt6-gtk-platformtheme Architecture: any @@ -176,6 +178,8 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} +Breaks: qt6-qpa-plugins (<< 6.3.1+dfsg-6~) +Replaces: qt6-qpa-plugins (<< 6.3.1+dfsg-6~) Description: Qt 6 OpenGL module Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI functionality. diff --git a/debian/libqt6gui6.install b/debian/libqt6gui6.install old mode 100644 new mode 100755 index ad55b8f..d82783d --- a/debian/libqt6gui6.install +++ b/debian/libqt6gui6.install @@ -1,4 +1,21 @@ +#!/usr/bin/dh-exec usr/lib/${DEB_HOST_MULTIARCH}/libQt6Gui.so.* +usr/lib/${DEB_HOST_MULTIARCH}/libQt6XcbQpa.so.* usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/imageformats/libqgif.so usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/imageformats/libqico.so usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/imageformats/libqjpeg.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevkeyboardplugin.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevmouseplugin.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevtabletplugin.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevtouchplugin.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqlibinputplugin.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqtslibplugin.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqlinuxfb.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqminimal.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqoffscreen.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqxcb.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/xcbglintegrations/libqxcb-glx-integration.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqvkkhrdisplay.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/xcbglintegrations/libqxcb-egl-integration.so diff --git a/debian/libqt6gui6.lintian-overrides b/debian/libqt6gui6.lintian-overrides index c6b304f..e885c7c 100644 --- a/debian/libqt6gui6.lintian-overrides +++ b/debian/libqt6gui6.lintian-overrides @@ -1,3 +1,14 @@ # This dependency has been added to track external packages building against # our private headers. It is ok if internal packages depend on the ABI one. libqt6gui6: symbols-declares-dependency-on-other-package qt6-base-abi * + +# libQt6XcbQpa is actually a private library *only* used by its +# platforms plugins. +# Sadly instead of being installed into a proper place like +# /usr/lib//qt6/ it is are being installed into /usr/lib/. +# We are still shipping the headers but they only contain the version and +# the only binaries that depend on them are shipped within this very same +# binary package, so it's safe to override these Lintian warnings. +libqt6gui6: package-name-doesnt-match-sonames libQt6XcbQpa6 +libqt6gui6: lacks-ldconfig-trigger usr/lib/*/libQt6XcbQpa.so.6.* +ships-undeclared-shared-library libQt6XcbQpa 6 for usr/lib/x86_64-linux-gnu/libQt6XcbQpa.so.6.* diff --git a/debian/libqt6opengl6.install b/debian/libqt6opengl6.install old mode 100644 new mode 100755 index 52f80f7..902bc56 --- a/debian/libqt6opengl6.install +++ b/debian/libqt6opengl6.install @@ -1 +1,11 @@ +#!/usr/bin/dh-exec usr/lib/${DEB_HOST_MULTIARCH}/libQt6OpenGL.so.* +usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFSDeviceIntegration.so.* +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFsKmsGbmSupport.so.* +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFsKmsSupport.so.* +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-emu-integration.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so +[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-kms-integration.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-x11-integration.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqeglfs.so +usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqminimalegl.so diff --git a/debian/libqt6opengl6.lintian-overrides b/debian/libqt6opengl6.lintian-overrides index 8627d80..413d4b3 100644 --- a/debian/libqt6opengl6.lintian-overrides +++ b/debian/libqt6opengl6.lintian-overrides @@ -1,3 +1,16 @@ # This dependency has been added to track external packages building against # our private headers. It is ok if internal packages depend on the ABI one. libqt6opengl6: symbols-declares-dependency-on-other-package qt6-base-abi * + +# libQt6EglFSDeviceIntegration, libQt6EglFsKmsGbmSupport and libQt6EglFsKmsSupport +# are actually private libraries *only* used by their +# respective platforms plugins. +# Sadly instead of being installed into a proper place like +# /usr/lib//qt6/ they are being installed into /usr/lib/. +# We are still shipping the headers but they only contain the version and +# the only binaries that depend on them are shipped within this very same +# binary package, so it's safe to override these Lintian warnings. +libqt6opengl6: package-name-doesnt-match-sonames libQt6EglFSDeviceIntegration6 libQt6EglFsKmsGbmSupport6 libQt6EglFsKmsSupport6 +libqt6opengl6: ships-undeclared-shared-library libQt6EglFSDeviceIntegration 6 for usr/lib/x86_64-linux-gnu/libQt6EglFSDeviceIntegration.so.6.* +libqt6opengl6: ships-undeclared-shared-library libQt6EglFsKmsGbmSupport 6 for usr/lib/x86_64-linux-gnu/libQt6EglFsKmsGbmSupport.so.6.* +libqt6opengl6: ships-undeclared-shared-library libQt6EglFsKmsSupport 6 for usr/lib/x86_64-linux-gnu/libQt6EglFsKmsSupport.so.6.* diff --git a/debian/qt6-qpa-plugins.install b/debian/qt6-qpa-plugins.install old mode 100755 new mode 100644 index c89233f..a887dbb --- a/debian/qt6-qpa-plugins.install +++ b/debian/qt6-qpa-plugins.install @@ -1,28 +1,2 @@ -#!/usr/bin/dh-exec -usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFSDeviceIntegration.so.* -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFsKmsGbmSupport.so.* -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/libQt6EglFsKmsSupport.so.* -usr/lib/${DEB_HOST_MULTIARCH}/libQt6XcbQpa.so.* -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-emu-integration.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-kms-integration.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/egldeviceintegrations/libqeglfs-x11-integration.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevkeyboardplugin.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevmouseplugin.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevtabletplugin.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqevdevtouchplugin.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqlibinputplugin.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqtslibplugin.so usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/generic/libqtuiotouchplugin.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqeglfs.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqlinuxfb.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqminimal.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqminimalegl.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqoffscreen.so usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqvnc.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqxcb.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/xcbglintegrations/libqxcb-glx-integration.so -[linux-any] usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/platforms/libqvkkhrdisplay.so -usr/lib/${DEB_HOST_MULTIARCH}/qt6/plugins/xcbglintegrations/libqxcb-egl-integration.so diff --git a/debian/qt6-qpa-plugins.lintian-overrides b/debian/qt6-qpa-plugins.lintian-overrides deleted file mode 100644 index b133f9f..0000000 --- a/debian/qt6-qpa-plugins.lintian-overrides +++ /dev/null @@ -1,14 +0,0 @@ -# libQt6EglFSDeviceIntegration, libQt6EglFsKmsGbmSupport, libQt6EglFsKmsSupport -# and libQt6XcbQpa are actually private libraries *only* used by their -# respective platforms plugins. -# Sadly instead of being installed into a proper place like -# /usr/lib//qt6/ they are being installed into /usr/lib/. -# We are still shipping the headers but they only contain the version and -# the only binaries that depend on them are shipped within this very same -# binary package, so it's safe to override these Lintian warnings. -qt6-qpa-plugins: lacks-ldconfig-trigger usr/lib/*/libQt6XcbQpa.so.6.* -qt6-qpa-plugins: package-name-doesnt-match-sonames libQt6EglFSDeviceIntegration6 libQt6EglFsKmsGbmSupport6 libQt6EglFsKmsSupport6 libQt6XcbQpa6 -qt6-qpa-plugins: no-shlibs usr/lib/*/libQt6EglFSDeviceIntegration.so.6.* -qt6-qpa-plugins: no-shlibs usr/lib/*/libQt6EglFsKmsGbmSupport.so.6.* -qt6-qpa-plugins: no-shlibs usr/lib/*/libQt6EglFsKmsSupport.so.6.* -qt6-qpa-plugins: no-shlibs usr/lib/*/libQt6XcbQpa.so.6.*