summaryrefslogtreecommitdiff
path: root/extra/pyqt
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-07-19 00:01:52 +0000
committerroot <root@rshg054.dnsready.net>2012-07-19 00:01:52 +0000
commit6b87f8519dc037f4fd4c19d8f36b7d7565559bd3 (patch)
tree4c1b86f91ce9c742867b6eecd4857b20919cd713 /extra/pyqt
parent63d179775e063452db6358e15b9847e7fc6c84b6 (diff)
Thu Jul 19 00:01:52 UTC 2012
Diffstat (limited to 'extra/pyqt')
-rw-r--r--extra/pyqt/PKGBUILD16
-rw-r--r--extra/pyqt/fix-pyuic4.patch91
2 files changed, 102 insertions, 5 deletions
diff --git a/extra/pyqt/PKGBUILD b/extra/pyqt/PKGBUILD
index 58e9b5659..0d3e23df5 100644
--- a/extra/pyqt/PKGBUILD
+++ b/extra/pyqt/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 162740 2012-06-29 11:34:16Z andrea $
+# $Id: PKGBUILD 163679 2012-07-17 18:11:04Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
@@ -6,17 +6,23 @@
pkgbase=pyqt
pkgname=('pyqt-common' 'pyqt' 'python2-pyqt')
pkgver=4.9.4
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://riverbankcomputing.co.uk/software/pyqt/intro"
license=('GPL')
makedepends=('qt' 'python-sip' 'python-dbus' 'python2-sip' 'phonon'
'python-opengl' 'qt-assistant-compat' 'qtwebkit' 'python2-dbus')
- source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
-md5sums=('a0b6a820633366365af5124ddbd059c7')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz"
+ 'fix-pyuic4.patch')
+md5sums=('a0b6a820633366365af5124ddbd059c7'
+ '097651aea0bafded5abdfd6d62afd2ad')
build() {
- cd "${srcdir}"
+ # FS#30728
+ cd "${srcdir}"/PyQt-x11-gpl-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-pyuic4.patch
+ cd ..
+
cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}
cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
diff --git a/extra/pyqt/fix-pyuic4.patch b/extra/pyqt/fix-pyuic4.patch
new file mode 100644
index 000000000..2173443d8
--- /dev/null
+++ b/extra/pyqt/fix-pyuic4.patch
@@ -0,0 +1,91 @@
+# HG changeset patch
+# User Phil Thompson <phil at riverbankcomputing.com>
+# Date 2012-07-13 13:39:28 +0100
+# Node ID 29b668ada14c1428a3bbfe8f0324c6626bd5ac9a
+# Parent fd0f3da9d79ca9858d10a20c15fb85456cb832d7
+Fixed a regression in pyuic's handling of custom widgets.
+
+diff --git a/pyuic/uic/Compiler/qobjectcreator.py b/pyuic/uic/Compiler/qobjectcreator.py
+--- a/pyuic/uic/Compiler/qobjectcreator.py
++++ b/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 @@
+ 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 @@
+ 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:
+diff --git a/pyuic/uic/objcreator.py b/pyuic/uic/objcreator.py
+--- a/pyuic/uic/objcreator.py
++++ b/pyuic/uic/objcreator.py
+@@ -102,19 +102,26 @@
+ 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])
++ # Handle regular and custom widgets.
++ factory = self.findQObjectType(classname)
+
+- 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)
++ if factory is None:
++ # Handle scoped names, typically static factory methods.
++ parts = classname.split('.')
+
+- raise NoSuchWidgetError(classname)
++ 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)