pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/x11/kdebindings4-python Make build with py-sip-4.10, a...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/2c2da6423a7f
branches:  trunk
changeset: 571053:2c2da6423a7f
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Sun Feb 07 15:14:10 2010 +0000

description:
Make build with py-sip-4.10, and depend on it.

Patch from gentoo bug #301106 via drochner.

diffstat:

 x11/kdebindings4-python/Makefile         |    9 +-
 x11/kdebindings4-python/distinfo         |    3 +-
 x11/kdebindings4-python/patches/patch-ac |  387 +++++++++++++++++++++++++++++++
 3 files changed, 396 insertions(+), 3 deletions(-)

diffs (truncated from 436 to 300 lines):

diff -r ac249c10be3c -r 2c2da6423a7f x11/kdebindings4-python/Makefile
--- a/x11/kdebindings4-python/Makefile  Sun Feb 07 14:59:01 2010 +0000
+++ b/x11/kdebindings4-python/Makefile  Sun Feb 07 15:14:10 2010 +0000
@@ -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 @@
 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 @@
 .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 -r ac249c10be3c -r 2c2da6423a7f x11/kdebindings4-python/distinfo
--- a/x11/kdebindings4-python/distinfo  Sun Feb 07 14:59:01 2010 +0000
+++ b/x11/kdebindings4-python/distinfo  Sun Feb 07 15:14:10 2010 +0000
@@ -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 -r ac249c10be3c -r 2c2da6423a7f x11/kdebindings4-python/patches/patch-ac
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/kdebindings4-python/patches/patch-ac  Sun Feb 07 15:14:10 2010 +0000
@@ -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);



Home | Main Index | Thread Index | Old Index