diff options
Diffstat (limited to 'dev-python/PyQt4/files')
4 files changed, 334 insertions, 0 deletions
diff --git a/dev-python/PyQt4/files/PyQt4-4.6.1-configure-multilib.patch b/dev-python/PyQt4/files/PyQt4-4.6.1-configure-multilib.patch new file mode 100644 index 00000000000..c187dcd4d1d --- /dev/null +++ b/dev-python/PyQt4/files/PyQt4-4.6.1-configure-multilib.patch @@ -0,0 +1,13 @@ +--- PyQt-x11-gpl-4.6.1~orig/configure.py 2009-11-04 22:28:05.000000000 +0100 ++++ PyQt-x11-gpl-4.6.1/configure.py 2009-11-04 23:10:01.000000000 +0100 +@@ -854,8 +854,8 @@ + # version. + link = "-framework Python" + elif ("--enable-shared" in ducfg.get("CONFIG_ARGS", "") and +- glob.glob("%s/lib/libpython%d.%d*" % (ducfg["exec_prefix"], py_major, py_minor))): +- lib_dir_flag = quote("-L%s/lib" % ducfg["exec_prefix"]) ++ glob.glob("%s/libpython%d.%d*" % (ducfg["LIBDIR"], py_major, py_minor))): ++ lib_dir_flag = quote("-L%s" % ducfg["LIBDIR"]) + link = "%s -lpython%d.%d" % (lib_dir_flag, py_major, py_minor) + else: + sipconfig.inform("Qt Designer plugin disabled because Python library is static") diff --git a/dev-python/PyQt4/files/PyQt4-4.7.2-configure.py.patch b/dev-python/PyQt4/files/PyQt4-4.7.2-configure.py.patch new file mode 100644 index 00000000000..4f3b251de0a --- /dev/null +++ b/dev-python/PyQt4/files/PyQt4-4.7.2-configure.py.patch @@ -0,0 +1,27 @@ +--- PyQt-x11-gpl-4.7.2/configure.py.orig 2010-03-18 00:59:51.000000000 +0100 ++++ PyQt-x11-gpl-4.7.2/configure.py 2010-03-18 01:08:46.000000000 +0100 +@@ -478,7 +478,7 @@ + generate_code("QtXmlPatterns") + + if "phonon" in pyqt_modules: +- generate_code("phonon") ++ generate_code("phonon", extra_include_dirs=["/usr/include/phonon"]) + + if "QtAssistant" in pyqt_modules: + generate_code("QtAssistant") +@@ -797,6 +797,7 @@ + install_dir=pydbusmoddir, + qt=["QtCore"], + debug=opts.debug, ++ strip=0, + universal=sipcfg.universal, + arch=sipcfg.arch + ) +@@ -1611,6 +1612,7 @@ + warnings=1, + static=opts.static, + debug=opts.debug, ++ strip=0, + universal=sipcfg.universal, + arch=sipcfg.arch, + prot_is_public=opts.prot_is_public diff --git a/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch b/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch new file mode 100644 index 00000000000..958fe56cb09 --- /dev/null +++ b/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch @@ -0,0 +1,254 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_qreal_float_support.dpatch by Michael Casadevall <sonicmctails@gmail.com> +## +## DP: Corrects a configure test, and adds explicate double handling +## to qlist.sip on architectures where qreal != double + +@DPATCH@ +Index: python-qt4-4.7.2/configure.py +=================================================================== +--- python-qt4-4.7.2.orig/configure.py 2010-03-17 19:29:19.000000000 +0100 ++++ python-qt4-4.7.2/configure.py 2010-03-25 23:53:55.468631945 +0100 +@@ -1915,8 +1915,9 @@ + out << "PyQt_NoOpenGLES\\n"; + #endif + +- if (sizeof (qreal) != sizeof (double)) ++#if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) + out << "PyQt_qreal_double\\n"; ++#endif + + return 0; + } +Index: python-qt4-4.7.2/sip/QtCore/qlist.sip +=================================================================== +--- python-qt4-4.7.2.orig/sip/QtCore/qlist.sip 2010-03-17 19:29:26.000000000 +0100 ++++ python-qt4-4.7.2/sip/QtCore/qlist.sip 2010-03-25 23:53:55.468631945 +0100 +@@ -749,3 +749,227 @@ + return sipGetState(sipTransferObj); + %End + }; ++ ++// If we're on an architecture where qreal != double, then we need to also ++// explicately handle doubles. On architectures where qreal == double, they ++// will automaticially be cast upwards ++ ++%If (!PyQt_qreal_double) ++ ++%If (Qt_4_3_0 -) ++// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples. ++%MappedType QList<QPair<double, double> > ++{ ++%TypeHeaderCode ++#include <qlist.h> ++#include <qpair.h> ++%End ++ ++%ConvertFromTypeCode ++ // Create the list. ++ PyObject *l; ++ ++ if ((l = PyList_New(sipCpp->size())) == NULL) ++ return NULL; ++ ++ // Set the list elements. ++ for (int i = 0; i < sipCpp->size(); ++i) ++ { ++ const QPair<double, double> &p = sipCpp->at(i); ++ PyObject *pobj; ++ ++ if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL) ++ { ++ Py_DECREF(l); ++ ++ return NULL; ++ } ++ ++ PyList_SET_ITEM(l, i, pobj); ++ } ++ ++ return l; ++%End ++ ++%ConvertToTypeCode ++ SIP_SSIZE_T len; ++ ++ // Check the type if that is all that is required. ++ if (sipIsErr == NULL) ++ { ++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) ++ return 0; ++ ++ for (SIP_SSIZE_T i = 0; i < len; ++i) ++ { ++ PyObject *tup = PySequence_ITEM(sipPy, i); ++ ++ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2) ++ return 0; ++ } ++ ++ return 1; ++ } ++ ++ QList<QPair<double, double> > *ql = new QList<QPair<double, double> >; ++ len = PySequence_Size(sipPy); ++ ++ for (SIP_SSIZE_T i = 0; i < len; ++i) ++ { ++ PyObject *tup = PySequence_ITEM(sipPy, i); ++ ++ double first = PyFloat_AsDouble(PySequence_ITEM(tup, 0)); ++ double second = PyFloat_AsDouble(PySequence_ITEM(tup, 1)); ++ ++ ql->append(QPair<double, double>(first, second)); ++ } ++ ++ *sipCppPtr = ql; ++ ++ return sipGetState(sipTransferObj); ++%End ++}; ++%End ++%If (Qt_4_3_0 -) ++// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples. ++template<double, TYPE> ++%MappedType QList<QPair<double, TYPE> > ++{ ++%TypeHeaderCode ++#include <qlist.h> ++#include <qpair.h> ++%End ++ ++%ConvertFromTypeCode ++ // Create the list. ++ PyObject *l; ++ ++ if ((l = PyList_New(sipCpp->size())) == NULL) ++ return NULL; ++ ++ // Set the list elements. ++ for (int i = 0; i < sipCpp->size(); ++i) ++ { ++ const QPair<double, TYPE> &p = sipCpp->at(i); ++ TYPE *t = new TYPE(p.second); ++ PyObject *pobj; ++ ++ if ((pobj = sipBuildResult(NULL, "(dB)", p.first, t, sipClass_TYPE, sipTransferObj)) == NULL) ++ { ++ Py_DECREF(l); ++ delete t; ++ ++ return NULL; ++ } ++ ++ PyList_SET_ITEM(l, i, pobj); ++ } ++ ++ return l; ++%End ++ ++%ConvertToTypeCode ++ SIP_SSIZE_T len; ++ ++ // Check the type if that is all that is required. ++ if (sipIsErr == NULL) ++ { ++ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) ++ return 0; ++ ++ for (SIP_SSIZE_T i = 0; i < len; ++i) ++ { ++ PyObject *tup = PySequence_ITEM(sipPy, i); ++ ++ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2) ++ return 0; ++ ++ if (!sipCanConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, SIP_NOT_NONE)) ++ return 0; ++ } ++ ++ return 1; ++ } ++ ++ QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >; ++ len = PySequence_Size(sipPy); ++ ++ for (SIP_SSIZE_T i = 0; i < len; ++i) ++ { ++ PyObject *tup = PySequence_ITEM(sipPy, i); ++ double d; ++ int state; ++ ++ d = PyFloat_AsDouble(PySequence_ITEM(tup, 0)); ++ TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); ++ ++ if (*sipIsErr) ++ { ++ sipReleaseInstance(t, sipClass_TYPE, state); ++ ++ delete ql; ++ return 0; ++ } ++ ++ ql->append(QPair<double, TYPE>(d, *t)); ++ ++ sipReleaseInstance(t, sipClass_TYPE, state); ++ } ++ ++ *sipCppPtr = ql; ++ ++ return sipGetState(sipTransferObj); ++%End ++}; ++%End ++ ++// QList<double> is implemented as a Python list of doubles. ++%MappedType QList<double> ++{ ++%TypeHeaderCode ++#include <qlist.h> ++%End ++ ++%ConvertFromTypeCode ++ // Create the list. ++ PyObject *l; ++ ++ if ((l = PyList_New(sipCpp->size())) == NULL) ++ return NULL; ++ ++ // Set the list elements. ++ for (int i = 0; i < sipCpp->size(); ++i) ++ { ++ PyObject *pobj; ++ ++ if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL) ++ { ++ Py_DECREF(l); ++ ++ return NULL; ++ } ++ ++ PyList_SET_ITEM(l, i, pobj); ++ } ++ ++ return l; ++%End ++ ++%ConvertToTypeCode ++ // Check the type if that is all that is required. ++ if (sipIsErr == NULL) ++ return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0); ++ ++ QList<double> *ql = new QList<double>; ++ SIP_SSIZE_T len = PySequence_Size(sipPy); ++ ++ for (SIP_SSIZE_T i = 0; i < len; ++i) ++ ql->append(PyFloat_AsDouble(PySequence_ITEM(sipPy, i))); ++ ++ *sipCppPtr = ql; ++ ++ return sipGetState(sipTransferObj); ++%End ++}; ++ ++%End diff --git a/dev-python/PyQt4/files/PyQt4-4.7.7-fix-scpk-and-flag-issue.diff b/dev-python/PyQt4/files/PyQt4-4.7.7-fix-scpk-and-flag-issue.diff new file mode 100644 index 00000000000..38083e76e52 --- /dev/null +++ b/dev-python/PyQt4/files/PyQt4-4.7.7-fix-scpk-and-flag-issue.diff @@ -0,0 +1,40 @@ +Index: PyQt-x11-gpl-4.7.7/pyuic/uic/Loader/loader.py +=================================================================== +--- PyQt-x11-gpl-4.7.7.orig/pyuic/uic/Loader/loader.py ++++ PyQt-x11-gpl-4.7.7/pyuic/uic/Loader/loader.py +@@ -1,3 +1,5 @@ ++import os.path ++ + from PyQt4 import QtGui, QtCore + from PyQt4.uic.uiparser import UIParser + from PyQt4.uic.Loader.qobjectcreator import LoaderCreatorPolicy +@@ -19,6 +21,7 @@ class DynamicUILoader(UIParser): + def loadUi(self, filename, toplevelInst=None): + self.toplevelInst = toplevelInst + +- # By using QFileInfo.path() rather than os.path.dirname() we allow +- # QString file names. +- return self.parse(filename, QtCore.QFileInfo(filename).path()) ++ # Allow the filename to be a QString. ++ filename = str(filename) ++ ++ return self.parse(filename, os.path.dirname(filename)) +Index: PyQt-x11-gpl-4.7.7/sip/QtCore/qglobal.sip +=================================================================== +--- PyQt-x11-gpl-4.7.7.orig/sip/QtCore/qglobal.sip ++++ PyQt-x11-gpl-4.7.7/sip/QtCore/qglobal.sip +@@ -312,12 +312,12 @@ public: + // Qt.Alignment class. + QFlags operator|(int f); + %MethodCode +- sipRes = new QFlags(*a0 | (ENUM(a1))); ++ sipRes = new QFlags(*a0 | a1); + %End + + QFlags operator^(int f); + %MethodCode +- sipRes = new QFlags(*a0 ^ (ENUM(a1))); ++ sipRes = new QFlags(*a0 ^ a1); + %End + + // These are necessary to prevent Python comparing object IDs. |
