summaryrefslogtreecommitdiff
path: root/dev-python/PyQt4/files
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/PyQt4/files')
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.6.1-configure-multilib.patch13
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.7.2-configure.py.patch27
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch254
-rw-r--r--dev-python/PyQt4/files/PyQt4-4.7.7-fix-scpk-and-flag-issue.diff40
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.