[Python-modules-commits] r22435 - in packages/python-qt4/trunk/debian (3 files)

kitterman at users.alioth.debian.org kitterman at users.alioth.debian.org
Sat Jul 14 05:56:02 UTC 2012


    Date: Saturday, July 14, 2012 @ 05:56:00
  Author: kitterman
Revision: 22435

Add debian/patches/pyuic_custom_widget.diff from upstream to fix custom
widget detection and prevent other packages from FTBFS (Closes: #680837)

Added:
  packages/python-qt4/trunk/debian/patches/pyuic_custom_widget.diff
Modified:
  packages/python-qt4/trunk/debian/changelog
  packages/python-qt4/trunk/debian/patches/series

Modified: packages/python-qt4/trunk/debian/changelog
===================================================================
--- packages/python-qt4/trunk/debian/changelog	2012-07-14 00:18:14 UTC (rev 22434)
+++ packages/python-qt4/trunk/debian/changelog	2012-07-14 05:56:00 UTC (rev 22435)
@@ -1,3 +1,10 @@
+python-qt4 (4.9.3-3) unstable; urgency=low
+
+  * Add debian/patches/pyuic_custom_widget.diff from upstream to fix custom
+    widget detection and prevent other packages from FTBFS (Closes: #680837)
+
+ -- Scott Kitterman <scott at kitterman.com>  Sat, 14 Jul 2012 00:51:49 -0400
+
 python-qt4 (4.9.3-2) unstable; urgency=low
 
   * Revert dropping of python:Provides for python-qt4 (Closes: #679819)

Added: packages/python-qt4/trunk/debian/patches/pyuic_custom_widget.diff
===================================================================
--- packages/python-qt4/trunk/debian/patches/pyuic_custom_widget.diff	                        (rev 0)
+++ packages/python-qt4/trunk/debian/patches/pyuic_custom_widget.diff	2012-07-14 05:56:00 UTC (rev 22435)
@@ -0,0 +1,94 @@
+Description: Fixes a regression in pyuic's handling of custom widgets.
+Regression between PyQt4 4.9.1 and 4.9.3 which caused widgets not to be found
+and caused other packages to FTBFS.  Patch author is the upstream developer
+and the fix will be part of the next upstream release (4.9.5).
+Author: Phil Thompson <phil at riverbankcomputing.com> 
+Bug-Debian: http://bugs.debian.org/680837
+Origin: <upstream>
+Forwarded: <not-needed>
+Reviewed-By: Scott Kitterman <scott at kitterman.com>
+Last-Update: <2012-07-15>
+
+--- python-qt4-4.9.3.orig/pyuic/uic/objcreator.py
++++ python-qt4-4.9.3/pyuic/uic/objcreator.py
+@@ -102,19 +102,26 @@ class QObjectCreator(object):
+         self._modules.append(self._customWidgets)
+ 
+     def createQObject(self, classname, *args, **kwargs):
+-        # Handle scoped names, typically static factory methods.
+-        parts = classname.split('.')
+-        factory = self.findQObjectType(parts[0])
+-
+-        if factory is not None:
+-            for part in parts[1:]:
+-                factory = getattr(factory, part, None)
+-                if factory is None:
+-                    break
+-            else:
+-                return self._cpolicy.instantiate(factory, *args, **kwargs)
++        # Handle regular and custom widgets.
++        factory = self.findQObjectType(classname)
+ 
+-        raise NoSuchWidgetError(classname)
++        if factory is None:
++            # Handle scoped names, typically static factory methods.
++            parts = classname.split('.')
++
++            if len(parts) > 1:
++                factory = self.findQObjectType(parts[0])
++
++                if factory is not None:
++                    for part in parts[1:]:
++                        factory = getattr(factory, part, None)
++                        if factory is None:
++                            break
++
++            if factory is None:
++                raise NoSuchWidgetError(classname)
++
++        return self._cpolicy.instantiate(factory, *args, **kwargs)
+ 
+     def invoke(self, rname, method, args=()):
+         return self._cpolicy.invoke(rname, method, args)
+--- python-qt4-4.9.3.orig/pyuic/uic/Compiler/qobjectcreator.py
++++ python-qt4-4.9.3/pyuic/uic/Compiler/qobjectcreator.py
+@@ -1,6 +1,6 @@
+ #############################################################################
+ ##
+-## Copyright (C) 2011 Riverbank Computing Limited.
++## Copyright (C) 2012 Riverbank Computing Limited.
+ ## Copyright (C) 2006 Thorsten Marek.
+ ## All right reserved.
+ ##
+@@ -100,7 +100,6 @@ class _CustomWidgetLoader(object):
+         assert widgetClass not in self._widgets 
+         self._widgets[widgetClass] = (baseClass, module)
+ 
+-
+     def _resolveBaseclass(self, baseClass):
+         try:
+             for x in range(0, 10):
+@@ -114,19 +113,17 @@ class _CustomWidgetLoader(object):
+         except KeyError:
+             raise ValueError("unknown baseclass %s" % baseClass)
+         
+-
+     def search(self, cls):
+         try:
+-            self._usedWidgets.add(cls)
+             baseClass = self._resolveBaseclass(self._widgets[cls][0])
+             DEBUG("resolved baseclass of %s: %s" % (cls, baseClass))
+-            
+-            return type(cls, (baseClass,),
+-                        {"module" : ""})
+-        
+         except KeyError:
+             return None
+ 
++        self._usedWidgets.add(cls)
++
++        return type(cls, (baseClass, ), {"module" : ""})
++
+     def _writeImportCode(self):
+         imports = {}
+         for widget in self._usedWidgets:

Modified: packages/python-qt4/trunk/debian/patches/series
===================================================================
--- packages/python-qt4/trunk/debian/patches/series	2012-07-14 00:18:14 UTC (rev 22434)
+++ packages/python-qt4/trunk/debian/patches/series	2012-07-14 05:56:00 UTC (rev 22435)
@@ -1,2 +1,3 @@
 qreal_float_support.diff
 debian_configure_changes.diff
+pyuic_custom_widget.diff




More information about the Python-modules-commits mailing list