diff options
author | root <root@rshg054.dnsready.net> | 2012-07-19 00:01:52 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-07-19 00:01:52 +0000 |
commit | 6b87f8519dc037f4fd4c19d8f36b7d7565559bd3 (patch) | |
tree | 4c1b86f91ce9c742867b6eecd4857b20919cd713 /extra/pyqt | |
parent | 63d179775e063452db6358e15b9847e7fc6c84b6 (diff) |
Thu Jul 19 00:01:52 UTC 2012
Diffstat (limited to 'extra/pyqt')
-rw-r--r-- | extra/pyqt/PKGBUILD | 16 | ||||
-rw-r--r-- | extra/pyqt/fix-pyuic4.patch | 91 |
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) |