[pykde4] sip414 patch
Rex Dieter
rdieter at fedoraproject.org
Wed Oct 3 19:43:43 UTC 2012
commit ef32fb5b4c94a3b7be934dd0f6712f5f73c62988
Author: Rex Dieter <rdieter at fedoraproject.org>
Date: Wed Oct 3 14:43:00 2012 -0500
sip414 patch
pykde4-sip414.patch | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
pykde4.spec | 8 +++++
2 files changed, 90 insertions(+), 0 deletions(-)
---
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 <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/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
More information about the scm-commits
mailing list