about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEvgeny Egorochkin <phreedom@yandex.ru>2013-05-06 22:13:25 +0300
committerEvgeny Egorochkin <phreedom@yandex.ru>2013-05-06 22:15:07 +0300
commit0256e55934c87c2fd5e61066fa096f94d88d6daa (patch)
treeeee40938af8e943ca6f3fdb3724a6fc18286433e
parentf8ee077afcb5a93a128cf89c464e79fe98014234 (diff)
Fix KDE 4.8 and 4.7 build against new SIP
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/pykde4-new-sip.patch91
-rw-r--r--pkgs/desktops/kde-4.7/kdebindings/pykde4.nix2
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde4-new-sip.patch91
-rw-r--r--pkgs/desktops/kde-4.8/kdebindings/pykde4.nix2
4 files changed, 184 insertions, 2 deletions
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde4-new-sip.patch b/pkgs/desktops/kde-4.7/kdebindings/pykde4-new-sip.patch
new file mode 100644
index 0000000000000..96b3b887a8d16
--- /dev/null
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde4-new-sip.patch
@@ -0,0 +1,91 @@
+commit 017822bd0dfc83fe9a7a483ecc33f4aab839a3c6
+Author: Luca Beltrame <lbeltrame@kde.org>
+Date:   Mon Oct 1 20:47:56 2012 +0200
+
+    Remove duplicated QVector<int> definition, since it's in PyQt now.
+    Simon, if you have time, please review if everything is OK.
+    
+    CCMAIL: simon@simonzone.com
+
+diff --git a/sip/kdecore/typedefs.sip b/sip/kdecore/typedefs.sip
+index 5a0a080..73dad01 100644
+--- a/sip/kdecore/typedefs.sip
++++ b/sip/kdecore/typedefs.sip
+@@ -951,77 +951,3 @@ template <TYPE1>
+ %End
+ };
+ 
+-%MappedType QVector<int>
+-{
+-%TypeHeaderCode
+-#include <qvector.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)
+-    {
+-        int t = (sipCpp->at(i));
+-
+-#if PY_MAJOR_VERSION >= 3        
+-        PyObject *tobj = PyLong_FromLong(t);
+-#else
+-        PyObject *tobj = PyInt_FromLong(t);
+-#endif
+-
+-        PyList_SET_ITEM(l, i, tobj);
+-    }
+-
+-    return l;
+-%End
+-
+-%ConvertToTypeCode
+-    // 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) {
+-            PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+-#if PY_MAJOR_VERSION >= 3
+-            if (!PyNumber_Check(tobj))
+-#else
+-            if (!PyInt_Check(tobj))
+-#endif
+-                return 0;
+-        }
+-        return 1;
+-    }
+-
+-    QVector<int> *qv = new QVector<int>;
+- 
+-    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+-    {
+-        PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+- #if PY_MAJOR_VERSION >= 3
+-        int t = PyLong_AsLong (tobj);
+-#else
+-        int t = PyInt_AS_LONG (tobj);
+-#endif
+-
+-        if (*sipIsErr)
+-        {
+-            delete qv;
+-            return 0;
+-        }
+-
+-        qv->append(t);
+-    }
+- 
+-    *sipCppPtr = qv;
+- 
+-    return sipGetState(sipTransferObj);
+-%End
+-};
diff --git a/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
index 1ca6efe3b9202..030f2fb430acd 100644
--- a/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
+++ b/pkgs/desktops/kde-4.7/kdebindings/pykde4.nix
@@ -10,7 +10,7 @@ kde {
 
 #NIX_CFLAGS_COMPILE = "-I${phonon}/include/phonon";
 
-  patches = [ ./pykde-purity.patch ];
+  patches = [ ./pykde-purity.patch ./pykde4-new-sip.patch ];
 
   cmakeFlags = "-DHARDCODE_LIB_PYTHON_PATH=ON";
 
diff --git a/pkgs/desktops/kde-4.8/kdebindings/pykde4-new-sip.patch b/pkgs/desktops/kde-4.8/kdebindings/pykde4-new-sip.patch
new file mode 100644
index 0000000000000..96b3b887a8d16
--- /dev/null
+++ b/pkgs/desktops/kde-4.8/kdebindings/pykde4-new-sip.patch
@@ -0,0 +1,91 @@
+commit 017822bd0dfc83fe9a7a483ecc33f4aab839a3c6
+Author: Luca Beltrame <lbeltrame@kde.org>
+Date:   Mon Oct 1 20:47:56 2012 +0200
+
+    Remove duplicated QVector<int> definition, since it's in PyQt now.
+    Simon, if you have time, please review if everything is OK.
+    
+    CCMAIL: simon@simonzone.com
+
+diff --git a/sip/kdecore/typedefs.sip b/sip/kdecore/typedefs.sip
+index 5a0a080..73dad01 100644
+--- a/sip/kdecore/typedefs.sip
++++ b/sip/kdecore/typedefs.sip
+@@ -951,77 +951,3 @@ template <TYPE1>
+ %End
+ };
+ 
+-%MappedType QVector<int>
+-{
+-%TypeHeaderCode
+-#include <qvector.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)
+-    {
+-        int t = (sipCpp->at(i));
+-
+-#if PY_MAJOR_VERSION >= 3        
+-        PyObject *tobj = PyLong_FromLong(t);
+-#else
+-        PyObject *tobj = PyInt_FromLong(t);
+-#endif
+-
+-        PyList_SET_ITEM(l, i, tobj);
+-    }
+-
+-    return l;
+-%End
+-
+-%ConvertToTypeCode
+-    // 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) {
+-            PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+-#if PY_MAJOR_VERSION >= 3
+-            if (!PyNumber_Check(tobj))
+-#else
+-            if (!PyInt_Check(tobj))
+-#endif
+-                return 0;
+-        }
+-        return 1;
+-    }
+-
+-    QVector<int> *qv = new QVector<int>;
+- 
+-    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+-    {
+-        PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+- #if PY_MAJOR_VERSION >= 3
+-        int t = PyLong_AsLong (tobj);
+-#else
+-        int t = PyInt_AS_LONG (tobj);
+-#endif
+-
+-        if (*sipIsErr)
+-        {
+-            delete qv;
+-            return 0;
+-        }
+-
+-        qv->append(t);
+-    }
+- 
+-    *sipCppPtr = qv;
+- 
+-    return sipGetState(sipTransferObj);
+-%End
+-};
diff --git a/pkgs/desktops/kde-4.8/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.8/kdebindings/pykde4.nix
index e32b7447aea27..eb4d49616c4ef 100644
--- a/pkgs/desktops/kde-4.8/kdebindings/pykde4.nix
+++ b/pkgs/desktops/kde-4.8/kdebindings/pykde4.nix
@@ -8,7 +8,7 @@ kde {
 
   propagatedBuildInputs = [ pyqt4 sip ];
 
-  patches = [ ./pykde4-hardcode-lib-python.patch ];
+  patches = [ ./pykde4-hardcode-lib-python.patch ./pykde4-new-sip.patch ];
 
   cmakeFlags = "-DHARDCODE_LIB_PYTHON_PATH=ON ";