39 lines
1.7 KiB
Diff
39 lines
1.7 KiB
Diff
From: Modestas Vainius <modax@debian.org>
|
|
Subject: 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.
|
|
|
|
---
|
|
src/corelib/plugin/qlibrary.cpp | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/src/corelib/plugin/qlibrary.cpp
|
|
+++ b/src/corelib/plugin/qlibrary.cpp
|
|
@@ -834,7 +834,7 @@ bool QLibraryPrivate::isPlugin(QSettings
|
|
|
|
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]",
|