summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkos Chandras <hwoarang@gentoo.org>2010-01-16 11:28:43 +0000
committerMarkos Chandras <hwoarang@gentoo.org>2010-01-16 11:28:43 +0000
commit51f253aca800277f3ecb0ee497dbe84267ad313e (patch)
treee4db3993a9bbcde46957777cc9404d119a82b1cf /kde-base
parentversion bump, bug 301169 by Tim O'Kelly <bugs_gentoo_org DOT Tim_OKelly AT ne... (diff)
downloadgentoo-2-51f253aca800277f3ecb0ee497dbe84267ad313e.tar.gz
gentoo-2-51f253aca800277f3ecb0ee497dbe84267ad313e.tar.bz2
gentoo-2-51f253aca800277f3ecb0ee497dbe84267ad313e.zip
Add patch to build against latest sip and PyQt4 releases. Bug #301106
(Portage version: 2.2_rc61/cvs/Linux x86_64)
Diffstat (limited to 'kde-base')
-rw-r--r--kde-base/pykde4/ChangeLog8
-rw-r--r--kde-base/pykde4/files/pykde4-4.3.4-typedefs.sip.patch385
-rw-r--r--kde-base/pykde4/pykde4-4.3.4.ebuild5
3 files changed, 394 insertions, 4 deletions
diff --git a/kde-base/pykde4/ChangeLog b/kde-base/pykde4/ChangeLog
index 16c4cf38a866..23a824fe1695 100644
--- a/kde-base/pykde4/ChangeLog
+++ b/kde-base/pykde4/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for kde-base/pykde4
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/pykde4/ChangeLog,v 1.45 2009/12/27 15:27:05 armin76 Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/kde-base/pykde4/ChangeLog,v 1.46 2010/01/16 11:28:43 hwoarang Exp $
+
+ 16 Jan 2010; <hwoarang@gentoo.org> pykde4-4.3.4.ebuild,
+ +files/pykde4-4.3.4-typedefs.sip.patch:
+ Add patch to build against latest sip and PyQt4 releases. Bug #301106
23 Dec 2009; Jonathan Callen <abcd@gentoo.org> pykde4-4.3.4.ebuild:
Pull in changes from overlay and prefix support
diff --git a/kde-base/pykde4/files/pykde4-4.3.4-typedefs.sip.patch b/kde-base/pykde4/files/pykde4-4.3.4-typedefs.sip.patch
new file mode 100644
index 000000000000..1245cadfb28f
--- /dev/null
+++ b/kde-base/pykde4/files/pykde4-4.3.4-typedefs.sip.patch
@@ -0,0 +1,385 @@
+--- trunk/KDE/kdebindings/python/pykde4/sip/kdecore/typedefs.sip 2009/10/11 11:55:17 1033861
++++ trunk/KDE/kdebindings/python/pykde4/sip/kdecore/typedefs.sip 2010/01/16 10:06:39 1075490
+@@ -215,6 +215,122 @@
+ %End
+ };
+
++template <TYPE1,int>
++%MappedType QMap<TYPE1,int>
++{
++%TypeHeaderCode
++#include <qmap.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the dictionary.
++ PyObject *d = PyDict_New();
++
++ if (!d)
++ return NULL;
++
++ // Set the dictionary elements.
++ QMap<TYPE1, int>::const_iterator i = sipCpp->constBegin();
++
++ while (i != sipCpp->constEnd())
++ {
++ TYPE1 *t1 = new TYPE1(i.key());
++ int t2 = i.value();
++
++ PyObject *t1obj = sipConvertFromNewType(t1, sipType_TYPE1, sipTransferObj);
++#if PY_MAJOR_VERSION >= 3
++ PyObject *t2obj = PyLong_FromLong(t2);
++#else
++ PyObject *t2obj = PyInt_FromLong(t2);
++#endif
++
++ if (t1obj == NULL || t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0)
++ {
++ Py_DECREF(d);
++
++ if (t1obj) {
++ Py_DECREF(t1obj);
++ } else {
++ delete t1;
++ }
++
++ if (t2obj) {
++ Py_DECREF(t2obj);
++ }
++ return NULL;
++ }
++
++ Py_DECREF(t1obj);
++ Py_DECREF(t2obj);
++
++ ++i;
++ }
++
++ return d;
++%End
++
++%ConvertToTypeCode
++ PyObject *t1obj;
++ PyObject *t2obj;
++ SIP_SSIZE_T i = 0;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PyDict_Check(sipPy))
++ return 0;
++
++ while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
++ {
++ if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE))
++ return 0;
++
++#if PY_MAJOR_VERSION >= 3
++ if (!PyNumber_Check(t2obj))
++#else
++ if (!PyInt_Check(t2obj))
++#endif
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QMap<TYPE1, int> *qm = new QMap<TYPE1, int>;
++
++ i = 0;
++ while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
++ {
++ int state1;
++
++ TYPE1 *t1 = reinterpret_cast<TYPE1 *>(sipConvertToType(t1obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr));
++
++#if PY_MAJOR_VERSION >= 3
++ int t2 = PyLong_AsLong (t2obj);
++#else
++ int t2 = PyInt_AS_LONG (t2obj);
++#endif
++
++ if (*sipIsErr)
++ {
++ sipReleaseType(t1, sipType_TYPE1, state1);
++
++ delete qm;
++ return 0;
++ }
++
++ qm->insert(*t1, t2);
++
++ sipReleaseType(t1, sipType_TYPE1, state1);
++ }
++
++ *sipCppPtr = qm;
++
++ return sipGetState(sipTransferObj);
++%End
++};
++
++
+ class KShared;
+
+ template <TYPE>
+@@ -239,10 +355,10 @@
+
+ %ConvertToTypeCode
+ // Convert a Python instance to a Ptr on the heap.
+-
+- if (sipIsErr == NULL)
+- return PyInstance_Check(sipPy);
+-
++ if (sipIsErr == NULL) {
++ return 1;
++ }
++
+ int iserr = 0;
+ TYPE *cpp = (TYPE *)sipForceConvertToType(sipPy, sipType_TYPE, NULL, 0, NULL, &iserr);
+
+@@ -466,91 +582,6 @@
+ %End
+ };
+
+-
+-template <TYPE*>
+-%MappedType QSet<TYPE*>
+-{
+-%TypeHeaderCode
+-#include <qset.h>
+-%End
+-
+-%ConvertFromTypeCode
+- // Create the list.
+- PyObject *l;
+-
+- if ((l = PyList_New(sipCpp->size())) == NULL)
+- return NULL;
+-
+- // Set the list elements.
+- QSet<TYPE*> set = *sipCpp;
+- int i = 0;
+- foreach ((TYPE *)value, set)
+- {
+- PyObject *obj = sipConvertFromNewType(value, sipType_TYPE, sipTransferObj);
+- if (obj == NULL || PyList_SET_ITEM (l, i, obj) < 0)
+- {
+- Py_DECREF(l);
+-
+- if (obj)
+- Py_DECREF(obj);
+-
+- return NULL;
+- }
+-
+- Py_DECREF(obj);
+- i++;
+- }
+-
+- return l;
+-%End
+-
+-%ConvertToTypeCode
+- // Check the type if that is all that is required.
+- if (sipIsErr == NULL)
+- {
+- if (!PyList_Check(sipPy))
+- return 0;
+- }
+-
+- // Check the type if that is all that is required.
+- if (sipIsErr == NULL)
+- {
+- if (!PyList_Check(sipPy))
+- return 0;
+-
+- for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToType(PyList_GET_ITEM (sipPy, i), sipType_TYPE, SIP_NOT_NONE))
+- return 0;
+- }
+-
+- QSet<TYPE*> *qs = new QSet<TYPE*>;
+-
+- for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- {
+- int state;
+-
+- TYPE *t = reinterpret_cast<TYPE *>(sipConvertToType(PyList_GET_ITEM (l, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+-
+- if (*sipIsErr)
+- {
+- sipReleaseType(t, sipType_TYPE, state);
+-
+- delete qs;
+- return 0;
+- }
+-
+- *qs << t;
+-
+- sipReleaseType(t, sipType_TYPE, state);
+- }
+-
+- *sipCppPtr = qs;
+-
+- return sipGetState(sipTransferObj);
+-%End
+-};
+-
+-
+ template <TYPE>
+ %MappedType QSet<TYPE>
+ {
+@@ -716,12 +747,14 @@
+ return NULL;
+
+ // Set the list elements.
+- for (int i = 0; i < sipCpp->size(); ++i)
+- {
++ for (int i = 0; i < sipCpp->size(); ++i) {
+ PyObject *pobj;
+
+- if ((pobj = PyInt_FromLong(sipCpp->value(i))) == NULL)
+- {
++#if PY_MAJOR_VERSION >= 3
++ if ((pobj = PyLong_FromLong(sipCpp->value(i))) == NULL) {
++#else
++ if ((pobj = PyInt_FromLong(sipCpp->value(i))) == NULL) {
++#endif
+ Py_DECREF(l);
+
+ return NULL;
+@@ -740,9 +773,14 @@
+
+ QList<uint> *ql = new QList<uint>;
+
+- for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
++ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) {
++#if PY_MAJOR_VERSION >= 3
++ ql->append(PyLong_AsLong(PyList_GET_ITEM(sipPy, i)));
++#else
+ ql->append(PyInt_AsLong(PyList_GET_ITEM(sipPy, i)));
+-
++#endif
++ }
++
+ *sipCppPtr = ql;
+
+ return sipGetState(sipTransferObj);
+@@ -824,3 +862,116 @@
+ %End
+ };
+
++%MappedType QHash<int,int>
++{
++%TypeHeaderCode
++#include <qhash.h>
++%End
++
++%ConvertFromTypeCode
++ // Create the dictionary.
++ PyObject *d = PyDict_New();
++
++ if (!d)
++ return NULL;
++
++ // Set the dictionary elements.
++ QHash<int, int>::const_iterator i = sipCpp->constBegin();
++
++ while (i != sipCpp->constEnd())
++ {
++ int t1 = i.key();
++ int t2 = i.value();
++
++#if PY_MAJOR_VERSION >= 3
++ PyObject *t1obj = PyLong_FromLong ((long)t1);
++ PyObject *t2obj = PyLong_FromLong ((long)t2);
++#else
++ PyObject *t1obj = PyInt_FromLong ((long)t1);
++ PyObject *t2obj = PyInt_FromLong ((long)t2);
++#endif
++
++ if (PyDict_SetItem(d, t1obj, t2obj) < 0)
++ {
++ Py_DECREF(d);
++
++ if (t1obj)
++ Py_DECREF(t1obj);
++
++ if (t2obj)
++ Py_DECREF(t2obj);
++
++ return NULL;
++ }
++
++ Py_DECREF(t1obj);
++ Py_DECREF(t2obj);
++
++ ++i;
++ }
++
++ return d;
++%End
++
++%ConvertToTypeCode
++ PyObject *t1obj, *t2obj;
++ SIP_SSIZE_T i = 0;
++
++ // Check the type if that is all that is required.
++ if (sipIsErr == NULL)
++ {
++ if (!PyDict_Check(sipPy))
++ return 0;
++
++ while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
++ {
++#if PY_MAJOR_VERSION >= 3
++ if (!PyNumber_Check (t1obj))
++#else
++ if (!PyInt_Check (t1obj))
++#endif
++ return 0;
++
++#if PY_MAJOR_VERSION >= 3
++ if (!PyNumber_Check (t2obj))
++#else
++ if (!PyInt_Check (t2obj))
++#endif
++ return 0;
++ }
++
++ return 1;
++ }
++
++ QHash<int, int> *qm = new QHash<int, int>;
++
++ while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
++ {
++ int state2;
++
++#if PY_MAJOR_VERSION >= 3
++ int t1 = PyLong_AsLong (t1obj);
++#else
++ int t1 = PyInt_AS_LONG (t1obj);
++#endif
++
++#if PY_MAJOR_VERSION >= 3
++ int t2 = PyLong_AsLong (t2obj);
++#else
++ int t2 = PyInt_AS_LONG (t2obj);
++#endif
++
++ if (*sipIsErr)
++ {
++ delete qm;
++ return 0;
++ }
++
++ qm->insert(t1, t2);
++ }
++
++ *sipCppPtr = qm;
++
++ return sipGetState(sipTransferObj);
++%End
++};
diff --git a/kde-base/pykde4/pykde4-4.3.4.ebuild b/kde-base/pykde4/pykde4-4.3.4.ebuild
index 1c0a38f72881..a6c2458414a2 100644
--- a/kde-base/pykde4/pykde4-4.3.4.ebuild
+++ b/kde-base/pykde4/pykde4-4.3.4.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/pykde4/pykde4-4.3.4.ebuild,v 1.4 2009/12/27 15:27:05 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/pykde4/pykde4-4.3.4.ebuild,v 1.5 2010/01/16 11:28:43 hwoarang Exp $
EAPI="2"
@@ -38,6 +38,7 @@ src_prepare() {
sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i python/${PN}/CMakeLists.txt \
|| die "Failed to disable examples"
fi
+ epatch "${FILESDIR}"/${P}-typedefs.sip.patch
}
src_configure() {