packages: qt4/qt4.spec, qt4/0280-deserialization-custom-dbus-properties.dif...

arekm arekm at pld-linux.org
Sat May 16 20:30:14 CEST 2009


Author: arekm                        Date: Sat May 16 18:30:14 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new qt-copy patches

---- Files affected:
packages/qt4:
   qt4.spec (1.216 -> 1.217) , 0280-deserialization-custom-dbus-properties.diff (NONE -> 1.1)  (NEW), 0281-syncqt-create-phonon-global.diff (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/qt4/qt4.spec
diff -u packages/qt4/qt4.spec:1.216 packages/qt4/qt4.spec:1.217
--- packages/qt4/qt4.spec:1.216	Sun Apr 26 12:08:23 2009
+++ packages/qt4/qt4.spec	Sat May 16 20:30:09 2009
@@ -77,7 +77,7 @@
 Summary(pt_BR.UTF-8):	Estrutura para rodar aplicações GUI Qt
 Name:		qt4
 Version:	4.5.1
-Release:	6
+Release:	7
 License:	LGPL v2.1 or GPL v3.0
 Group:		X11/Libraries
 Source0:	http://download.qtsoftware.com/qt/source/qt-x11-opensource-src-%{version}.tar.gz
@@ -95,11 +95,13 @@
 Patch105:	0225-invalidate-tabbar-geometry-on-refresh.patch
 Patch106:	0279-svg-rendering-regression.diff
 Patch107:	0234-fix-mysql-threaded.diff
+Patch108:	0280-deserialization-custom-dbus-properties.diff
 Patch109:	0253-qmake_correct_path_separators.diff
 Patch110:	0255-qtreeview-selection-columns-hidden.diff
 Patch111:	0269-msvc-webkit-compile.diff
 Patch112:	0273-odbc-64bit-compile.diff
 Patch113:	0274-shm-native-image-fix.diff
+Patch114:	0281-syncqt-create-phonon-global.diff
 
 Patch0:		%{name}-tools.patch
 Patch1:		%{name}-qt_copy.patch
@@ -1327,11 +1329,13 @@
 %patch105 -p0
 %patch106 -p0
 %patch107 -p0
+%patch108 -p0
 %patch109 -p0
 %patch110 -p0
 %patch111 -p0
 %patch112 -p0
 %patch113 -p0
+%patch114 -p0
 
 %patch0 -p1
 %patch1 -p0
@@ -2186,6 +2190,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.217  2009/05/16 18:30:09  arekm
+- new qt-copy patches
+
 Revision 1.216  2009/04/26 10:08:23  arekm
 - rel 6; svg rendering regression fix
 

================================================================
Index: packages/qt4/0280-deserialization-custom-dbus-properties.diff
diff -u /dev/null packages/qt4/0280-deserialization-custom-dbus-properties.diff:1.1
--- /dev/null	Sat May 16 20:30:14 2009
+++ packages/qt4/0280-deserialization-custom-dbus-properties.diff	Sat May 16 20:30:09 2009
@@ -0,0 +1,47 @@
+qt-bugs@ issue : N240326
+Qt Software task ID : 240608
+bugs.kde.org number : none
+applied: no
+author: George Goldberg <grundleborg at googlemail.com>
+
+This patch fixes deserialization of values with custom types when setting
+properties on dbus adaptors. It is needed, in particular by telepathy/Qt
+programs and libraries. The bug was reported to Nokia on 2009-01-07 along
+with the patch supplied here. The summary of the issue from the Qt
+Software task tracker follows:
+
+When calling the setter for a DBus property, if that property has a custom type
+(e.g. a struct with dbus type (uss)), QtDBus fails to demarshall the
+QDBusArgument before attempting to set the property on the adaptor. The result
+is that it attempts to call adaptor->setProperty() with a QDBusArgument of type
+"uss" instead of with the type of the custom struct.
+
+Index: src/dbus/qdbusinternalfilters.cpp
+===================================================================
+--- src/dbus/qdbusinternalfilters.cpp	(revision 960506)
++++ src/dbus/qdbusinternalfilters.cpp	(working copy)
+@@ -274,9 +274,23 @@
+             QDBusAdaptorConnector::AdaptorMap::ConstIterator it;
+             it = qLowerBound(connector->adaptors.constBegin(), connector->adaptors.constEnd(),
+                              interface_name);
+-            if (it != connector->adaptors.end() && interface_name == QLatin1String(it->interface))
++            if (it != connector->adaptors.end() && interface_name == QLatin1String(it->interface)) {
++                if (value.userType() == qMetaTypeId<QDBusArgument>()) {
++                    QDBusArgument valueArg = qvariant_cast<QDBusArgument>(value);
++                    if (valueArg.currentType() != -1) {
++                        int mid = it->adaptor->metaObject()->property(it->adaptor->metaObject()->indexOfProperty(property_name)).userType();
++                        void *null = 0;
++                        QVariant valueStore(mid, null);
++                        QDBusMetaType::demarshall(valueArg, mid, valueStore.data());
++
++                        if (it->adaptor->setProperty(property_name, valueStore))
++                            return msg.createReply();
++                    }
++                }
++
+                 if (it->adaptor->setProperty(property_name, value))
+                     return msg.createReply();
++            }
+         }
+     }
+ 

================================================================
Index: packages/qt4/0281-syncqt-create-phonon-global.diff
diff -u /dev/null packages/qt4/0281-syncqt-create-phonon-global.diff:1.1
--- /dev/null	Sat May 16 20:30:15 2009
+++ packages/qt4/0281-syncqt-create-phonon-global.diff	Sat May 16 20:30:09 2009
@@ -0,0 +1,27 @@
+qt-bugs@ issue : none
+Qt Software task ID : none
+bugs.kde.org number : none
+applied: yes
+author: Thiago Macieira <thiago.macieira at nokia.com>
+
+Make sure syncqt creates the Phonon/Global file.
+
+The standard Phonon package has this file and it points to
+phononnamespace.h
+
+This patch is already in 4.5 branch.
+
+--- src/3rdparty/phonon/phonon/phononnamespace.h
++++ src/3rdparty/phonon/phonon/phononnamespace.h
+@@ -25,6 +25,11 @@
+ 
+ #include "phonon_export.h"
+ 
++#ifdef __QT_SYNCQT__
++// Tell syncqt to create a "Global" header here
++#pragma qt_class(Phonon::Global)
++#endif
++
+ /**
+  * Helper macro that can be used like
+  * \code
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/qt4/qt4.spec?r1=1.216&r2=1.217&f=u



More information about the pld-cvs-commit mailing list