diff --git a/pykde4-sip414.patch b/pykde4-sip414.patch new file mode 100644 index 0000000..ea55e2d --- /dev/null +++ b/pykde4-sip414.patch @@ -0,0 +1,82 @@ +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 + %End + }; + +-%MappedType QVector +-{ +-%TypeHeaderCode +-#include +-%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 *qv = new QVector; +- +- 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/pykde4.spec b/pykde4.spec index bcf38af..524e592 100644 --- a/pykde4.spec +++ b/pykde4.spec @@ -22,6 +22,10 @@ URL: http://developer.kde.org/language-bindings/ %endif Source0: http://download.kde.org/%{stable}/%{version}/src/%{name}-%{version}.tar.xz +## upstreamable patches +# fix build against sip-4.14 +Patch50: pykde4-sip414.patch + # debian patches Patch200: make_pykde4_respect_sip_flags.diff Patch201: fix_kpythonpluginfactory_build.diff @@ -142,6 +146,10 @@ Provides: python3-PyKDE4-devel%{?_isa} = %{version}-%{release} %prep %setup -q -n pykde4-%{version} +#if 0%{?fedora} > 18 +%patch50 -p1 -b .sip414 +#endif + %patch200 -p1 -b .respect_sip_flags %patch201 -p1 -b .kpythonpluginfactory_slots