diff options
author | Evgeny Egorochkin <phreedom@yandex.ru> | 2013-05-06 22:13:25 +0300 |
---|---|---|
committer | Evgeny Egorochkin <phreedom@yandex.ru> | 2013-05-06 22:15:07 +0300 |
commit | 0256e55934c87c2fd5e61066fa096f94d88d6daa (patch) | |
tree | eee40938af8e943ca6f3fdb3724a6fc18286433e | |
parent | f8ee077afcb5a93a128cf89c464e79fe98014234 (diff) |
Fix KDE 4.8 and 4.7 build against new SIP
-rw-r--r-- | pkgs/desktops/kde-4.7/kdebindings/pykde4-new-sip.patch | 91 | ||||
-rw-r--r-- | pkgs/desktops/kde-4.7/kdebindings/pykde4.nix | 2 | ||||
-rw-r--r-- | pkgs/desktops/kde-4.8/kdebindings/pykde4-new-sip.patch | 91 | ||||
-rw-r--r-- | pkgs/desktops/kde-4.8/kdebindings/pykde4.nix | 2 |
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 "; |