From be8a286861b0bfb3af3c7cdb8ebbaf258a63db2e Mon Sep 17 00:00:00 2001 From: Modestas Vainius Date: Sun, 20 Sep 2020 20:01:50 +0100 Subject: [PATCH] Permit loading plugins built with future major Qt releases (4.x) Origin: vendor Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586831 This check is too paranoid for us because it prevents from using symbol files in full potential. Fine-grained package level dependencies should ensure that the required version of the Qt Library is installed which might not necessarily be the latest Qt 4.x the plugin was built against because the plugin actually did not use any of new symbols in the Qt Library. However, removal of this check might still increase likelihood of crashes when: 1) loading a new incompatible version of plugin into a running process still using an old Qt Library. This might happen right after upgrade; 2) user tries to load incompatible non-packaged plugin; but it's an acceptable compromise. Here we trade more bullet proof protection from rare user faults or weird system misconfigurations for more flexibility, installability and expand of forward binary compatibility beyond the same Qt 4.x whenever possible. Gbp-Pq: Name 23_permit_plugins_built_with_future_qt.diff --- src/corelib/plugin/qlibrary.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index da80c1355..274190502 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -834,7 +834,7 @@ bool QLibraryPrivate::isPlugin(QSettings *settings) pluginState = IsNotAPlugin; // be pessimistic - if ((qt_version & 0x00ff00) > (QT_VERSION & 0x00ff00) || (qt_version & 0xff0000) != (QT_VERSION & 0xff0000)) { + if ((qt_version & 0xff0000) != (QT_VERSION & 0xff0000)) { if (qt_debug_component()) { qWarning("In %s:\n" " Plugin uses incompatible Qt library (%d.%d.%d) [%s]", -- 2.30.2