Merge branch 'disable_plugins_at_build_time' into 'experimental'

Avoid requesting plugins at build time.

See merge request qt-kde-team/qt6/qt6-base!18
ci/unstable
Lisandro Damián Nicanor Pérez Meyer 1 year ago
commit 37daccf389

12
debian/changelog vendored

@ -1,3 +1,15 @@
qt6-base (6.6.0+dfsg-5.1) UNRELEASED; urgency=medium
[ Lisandro Damián Nicanor Pérez Meyer ]
* Add two patches:
- be_verbose_on_plugin_inclusion.patch currently on upstream's Gerrit.
- enable_skip_plugins.patch
These set QT_SKIP_AUTO_PLUGIN_INCLUSION and
QT_SKIP_AUTO_QML_PLUGIN_INCLUSION to ON by default, thus avoiding
unnecesary build dependencies on plugins.
-- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org> Wed, 01 Nov 2023 18:16:57 -0300
qt6-base (6.6.0+dfsg-4) experimental; urgency=medium
[ Patrick Franz ]

@ -0,0 +1,82 @@
From c8e2cdda704dbe2c381091fe687653cdf2b191ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?=
<perezmeyer@gmail.com>
Date: Wed, 1 Nov 2023 21:41:59 -0300
Subject: [PATCH] Be verbose on plugin inclusion, easy patch point for distros
TL;DR: This creates two changes:
1. Makes the plugin inclusion status more visible for builders for both Qt
itself and applications.
2. Allows a simple patch-point for distros to change the default
(perhaps not ideal, but good enough).
3. Does not changes the current behavior.
As discussed both in the mailing list and privately with
Alexandru Croitor and Joerg Bornemann this makes a lot os sense for Qt
on static builds and when trying to find where the plugins are so they
can be easily packaged up in order to distribute a build with all the
dependencies on it.
But at the same time it makes no sense for distributions building the
libraries in dynamic mode as it forces unnecesary build time
dependencies for for both Qt and applications like QML modules or even
PostgreSQL! [0].
[0] <https://sources.debian.org/src/martchus-qtutilities/6.10.0-1/cmake/modules/QtConfig.cmake/?hl=35#L35>
Other approaches have been considered like not shipping specific CMake
files, but this depends on the packager finding the right ones at the
right time, and does not allows end users to change the behavior if they
happen to need it.
Change-Id: Id32fbc0cf0f289edd4426fb703cf1195288aacb4
Gerrit: https://codereview.qt-project.org/c/qt/qtbase/+/515440
---
cmake/QtPlugins.cmake.in | 9 +++++++++
cmake/QtPostProcessHelpers.cmake | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/cmake/QtPlugins.cmake.in b/cmake/QtPlugins.cmake.in
index 405d5f37b9..c951eaae42 100644
--- a/cmake/QtPlugins.cmake.in
+++ b/cmake/QtPlugins.cmake.in
@@ -1,6 +1,15 @@
include_guard(DIRECTORY)
@QT_MODULE_PLUGIN_INCLUDES@
+# Distributions should probably change this default.
+if(NOT DEFINED QT_SKIP_AUTO_PLUGIN_INCLUSION)
+ set(QT_SKIP_AUTO_PLUGIN_INCLUSION OFF)
+endif()
+
+if(QT_REPO_MODULE_VERSION)
+ message(STATUS "Skip auto plugin inclusion is set to ${QT_SKIP_AUTO_PLUGIN_INCLUSION}")
+endif()
+
if(NOT QT_NO_CREATE_TARGETS AND NOT QT_SKIP_AUTO_PLUGIN_INCLUSION)
__qt_internal_include_plugin_packages(@QT_MODULE@)
endif()
diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake
index 83bcabe49b..82a88565a6 100644
--- a/cmake/QtPostProcessHelpers.cmake
+++ b/cmake/QtPostProcessHelpers.cmake
@@ -446,6 +446,15 @@ function(qt_internal_create_plugins_auto_inclusion_files)
# TODO: Find a better way to deal with this, perhaps by using find_package() instead of include
# for the Qml PluginConfig.cmake files.
+# Distributions should probably change this default.
+if(NOT DEFINED QT_SKIP_AUTO_QML_PLUGIN_INCLUSION)
+ set(QT_SKIP_AUTO_QML_PLUGIN_INCLUSION OFF)
+endif()
+
+if(QT_REPO_MODULE_VERSION)
+ message(STATUS \"Skip auto QML plugin inclusion is set to \${QT_SKIP_AUTO_QML_PLUGIN_INCLUSION}\")
+endif()
+
file(GLOB __qt_qml_plugins_config_file_list \"\${CMAKE_CURRENT_LIST_DIR}/QmlPlugins/${INSTALL_CMAKE_NAMESPACE}*Config.cmake\")
if (__qt_qml_plugins_config_file_list AND NOT QT_SKIP_AUTO_QML_PLUGIN_INCLUSION)
# First round of inclusions ensure all qml plugin targets are brought into scope.
--
2.42.0

@ -0,0 +1,39 @@
Description: Enable skipping plugins search at build time.
This patch sets
QT_SKIP_AUTO_PLUGIN_INCLUSION and QT_SKIP_AUTO_QML_PLUGIN_INCLUSION to ON
by default, thus avoiding unnecesary build dependencies on plugins.
.
The variables can still be set to OFF by the user at build time, allowing
them to find the packages if necessary. But if you need so for a Debian
package please reach the Qt maintainers first. We want to know why you
need to do so. Thanks in advance!
Author: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Forwarded: not-needed
---
cmake/QtPlugins.cmake.in | 2 +-
cmake/QtPostProcessHelpers.cmake | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- a/cmake/QtPlugins.cmake.in
+++ b/cmake/QtPlugins.cmake.in
@@ -3,7 +3,7 @@ include_guard(DIRECTORY)
# Distributions should probably change this default.
if(NOT DEFINED QT_SKIP_AUTO_PLUGIN_INCLUSION)
- set(QT_SKIP_AUTO_PLUGIN_INCLUSION OFF)
+ set(QT_SKIP_AUTO_PLUGIN_INCLUSION ON)
endif()
message(STATUS "Skip auto plugin inclusion is set to ${QT_SKIP_AUTO_PLUGIN_INCLUSION}")
--- a/cmake/QtPostProcessHelpers.cmake
+++ b/cmake/QtPostProcessHelpers.cmake
@@ -448,7 +448,7 @@ function(qt_internal_create_plugins_auto
# Distributions should probably change this default.
if(NOT DEFINED QT_SKIP_AUTO_QML_PLUGIN_INCLUSION)
- set(QT_SKIP_AUTO_QML_PLUGIN_INCLUSION OFF)
+ set(QT_SKIP_AUTO_QML_PLUGIN_INCLUSION ON)
endif()
message(STATUS \"Skip auto QML plugin inclusion is set to \${QT_SKIP_AUTO_QML_PLUGIN_INCLUSION}\")

@ -4,12 +4,16 @@ libxkbcommon_1.6.0.diff
# Needs to be fixed upstream.
Add-SH-detection.patch
# Pushed to gerrit
be_verbose_on_plugin_inclusion.patch
# Debian specific
remove_privacy_breaches.diff
build_path_embedded_qtbuildinternalsextra_cmake.patch
cross.patch
remove_rpath_from_examples.patch
forkfd_grow_stack_upwards_on_hppa.patch
enable_skip_plugins.patch
# Don't use yield on CPUs that might not support it
armel-noyield.patch

Loading…
Cancel
Save