summaryrefslogtreecommitdiff
path: root/x11
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2010-02-07 15:14:10 +0000
committerwiz <wiz@pkgsrc.org>2010-02-07 15:14:10 +0000
commit47f45374b13368fa1f2c47edc78b001974602cbf (patch)
treebfff3c7b2013c69a97c027bf29deb23e841b5b6b /x11
parent6257dac2edf2e1fd509aba5c19c77e93848be6bc (diff)
downloadpkgsrc-47f45374b13368fa1f2c47edc78b001974602cbf.tar.gz
Make build with py-sip-4.10, and depend on it.
Patch from gentoo bug #301106 via drochner.
Diffstat (limited to 'x11')
-rw-r--r--x11/kdebindings4-python/Makefile9
-rw-r--r--x11/kdebindings4-python/distinfo3
-rw-r--r--x11/kdebindings4-python/patches/patch-ac387
3 files changed, 396 insertions, 3 deletions
diff --git a/x11/kdebindings4-python/Makefile b/x11/kdebindings4-python/Makefile
index ba21ad6117c..92a424044a4 100644
--- a/x11/kdebindings4-python/Makefile
+++ b/x11/kdebindings4-python/Makefile
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.8 2010/01/27 10:38:41 markd Exp $
+# $NetBSD: Makefile,v 1.9 2010/02/07 15:14:10 wiz Exp $
PKGNAME= kdebindings4-python-${_KDE_VERSION}
+PKGREVISION= 1
DISTNAME= kdebindings-${_KDE_VERSION}
CATEGORIES= misc
COMMENT= Python bindings for the KDE integrated X11 desktop
@@ -23,6 +24,10 @@ PLIST_SUBST+= PYVERSSUFFIX=${PYVERSSUFFIX:Q}
post-extract:
${CP} ${FILESDIR}/FindPolkitQt.cmake ${WRKSRC}/cmake/modules
+# for patch-ac:
+post-install:
+ ${RM} ${DESTDIR}${PREFIX}/share/sip2.6/PyKDE4/kdecore/typedefs.sip.orig
+
.include "../../meta-pkgs/kde4/kde4.mk"
.include "../../lang/python/application.mk"
@@ -30,7 +35,7 @@ post-extract:
.include "../../misc/kdepimlibs4/buildlink3.mk"
.include "../../security/polkit-qt/buildlink3.mk"
.include "../../x11/kdelibs4/buildlink3.mk"
-BUILDLINK_API_DEPENDS.py-sip+= ${PYPKGPREFIX}-sip>=4.7.9
+BUILDLINK_API_DEPENDS.py-sip+= ${PYPKGPREFIX}-sip>=4.10
.include "../../x11/py-sip/buildlink3.mk"
.include "../../x11/py-qt4/buildlink3.mk"
diff --git a/x11/kdebindings4-python/distinfo b/x11/kdebindings4-python/distinfo
index 2b83cc775f1..73c3df76979 100644
--- a/x11/kdebindings4-python/distinfo
+++ b/x11/kdebindings4-python/distinfo
@@ -1,7 +1,8 @@
-$NetBSD: distinfo,v 1.5 2010/01/27 10:38:41 markd Exp $
+$NetBSD: distinfo,v 1.6 2010/02/07 15:14:10 wiz Exp $
SHA1 (kdebindings-4.3.5.tar.bz2) = 0273013e4b74a7b1bc4cfc8375c80b5c19cf33e6
RMD160 (kdebindings-4.3.5.tar.bz2) = 96fd389226116717f1ab28e71c788a99a1a15981
Size (kdebindings-4.3.5.tar.bz2) = 4881006 bytes
SHA1 (patch-aa) = f01b1d350a8e79e639f46c797baf035684275158
SHA1 (patch-ab) = cae51d216ad914009b4e9c80a17a172ec5a5eaec
+SHA1 (patch-ac) = a0fa3f5251b818cd6fc75396e2b22fc7c4abe23f
diff --git a/x11/kdebindings4-python/patches/patch-ac b/x11/kdebindings4-python/patches/patch-ac
new file mode 100644
index 00000000000..fca91ab2994
--- /dev/null
+++ b/x11/kdebindings4-python/patches/patch-ac
@@ -0,0 +1,387 @@
+$NetBSD: patch-ac,v 1.1 2010/02/07 15:14:10 wiz Exp $
+
+--- python/pykde4/sip/kdecore/typedefs.sip.orig 2009-10-02 08:21:29.000000000 +0000
++++ python/pykde4/sip/kdecore/typedefs.sip
+@@ -215,6 +215,122 @@ template <TYPE1,TYPE2*>
+ %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 @@ template <TYPE>
+
+ %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 @@ template <TYPE1,TYPE2*>
+ %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 @@ template <TYPE1,TYPE2>
+ 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 @@ template <TYPE1,TYPE2>
+
+ 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 @@ template <TYPE*>
+ %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
++};