summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Bos2018-02-17 17:15:16 +0000
committerCharles Bos2018-02-17 17:15:16 +0000
commit663c452d16f33f67e0a55dc570fcd143ebbeae88 (patch)
treeb3b2bb1f2059a0e19d531ead0121fd754e47e746
parentc9b5b25bdc280ca8e5e2738ed64c279e0dc70b8a (diff)
downloadaur-663c452d16f33f67e0a55dc570fcd143ebbeae88.tar.gz
Update to 4.14.3 and bump pkgrel so that it's one higher than the last version in the official repos. also add build fixes for sip 4.19
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD29
-rw-r--r--fix-build-with-sip-4.19.patch596
-rw-r--r--pykde4-4.14.3-checkstate-sip-4.19.5.patch24
-rw-r--r--v4.14.3...master.patch101
5 files changed, 754 insertions, 14 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9284f60921f..8f336a5a68b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,7 @@
-# Generated by mksrcinfo v8
-# Wed Aug 23 00:21:18 UTC 2017
pkgbase = kdebindings-python
- pkgver = 4.14.2
- pkgrel = 1
- url = https://projects.kde.org/projects/kde/kdebindings/python/pykde4/repository
+ pkgver = 4.14.3
+ pkgrel = 8
+ url = https://github.com/KDE/pykde4
arch = i686
arch = x86_64
license = GPL
@@ -18,12 +16,18 @@ pkgbase = kdebindings-python
makedepends = python-sip
makedepends = python2-sip
makedepends = qscintilla
- source = https://download.kde.org/Attic/stable/4.14.2/src/pykde4-4.14.2.tar.xz
+ source = https://github.com/KDE/pykde4/archive/v4.14.3.tar.gz
source = no-qtwebkit.patch
source = no-webview.patch
- md5sums = b34e92677ffc8c74220d4c32a89ec57d
+ source = v4.14.3...master.patch
+ source = fix-build-with-sip-4.19.patch
+ source = pykde4-4.14.3-checkstate-sip-4.19.5.patch
+ md5sums = c3b7624b56429988208d469f08d04250
md5sums = b20320e79db1a41d480ac47e47901586
md5sums = 8f7f6da4bf4730003319d71382460775
+ md5sums = f35500d0b5e431954093d7f40968cb57
+ md5sums = 1c06c9a4298dd109f9f1e46b94842df7
+ md5sums = f85154e3ea61c73e89c9bf57d33df56e
pkgname = kdebindings-python
pkgdesc = A set of Python 3.x bindings for KDE.
diff --git a/PKGBUILD b/PKGBUILD
index 8302d129953..d8676c5408e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,9 +6,9 @@ pkgname=('kdebindings-python'
'kdebindings-python2'
'kdebindings-python-common')
_srcname=pykde4
-pkgver=4.14.2
-pkgrel=1
-url='https://projects.kde.org/projects/kde/kdebindings/python/pykde4/repository'
+pkgver=4.14.3
+pkgrel=8
+url='https://github.com/KDE/pykde4'
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'FDL')
makedepends=('automoc4'
@@ -20,9 +20,12 @@ makedepends=('automoc4'
'python-sip'
'python2-sip'
'qscintilla')
-source=("https://download.kde.org/Attic/stable/${pkgver}/src/${_srcname}-${pkgver}.tar.xz"
+source=("https://github.com/KDE/${_srcname}/archive/v${pkgver}.tar.gz"
"no-qtwebkit.patch"
- "no-webview.patch")
+ "no-webview.patch"
+ "v4.14.3...master.patch"
+ "fix-build-with-sip-4.19.patch"
+ "pykde4-4.14.3-checkstate-sip-4.19.5.patch")
prepare() {
mkdir -p build-python{,2}
@@ -34,6 +37,15 @@ prepare() {
# The arch version of kdelibs no longer provides kdewebkit
# This patch is a crude attempt to get this to build without it
patch -p1 -i ${srcdir}/no-webview.patch
+
+ # A roundup of all the commits to master since the 4.14.3 release
+ patch -p1 -i ${srcdir}/v4.14.3...master.patch
+
+ # Build fixes for sip 4.19
+ # First patch is from upstream. Second patch was taken from Fedora Rawhide
+ # (fc28) src rpm
+ patch -p1 -i ${srcdir}/fix-build-with-sip-4.19.patch
+ patch -p1 -i ${srcdir}/pykde4-4.14.3-checkstate-sip-4.19.5.patch
}
build() {
@@ -88,6 +100,9 @@ package_kdebindings-python-common() {
rm -r "${pkgdir}/usr/lib" "${pkgdir}/usr/bin"
}
-md5sums=('b34e92677ffc8c74220d4c32a89ec57d'
+md5sums=('c3b7624b56429988208d469f08d04250'
'b20320e79db1a41d480ac47e47901586'
- '8f7f6da4bf4730003319d71382460775')
+ '8f7f6da4bf4730003319d71382460775'
+ 'f35500d0b5e431954093d7f40968cb57'
+ '1c06c9a4298dd109f9f1e46b94842df7'
+ 'f85154e3ea61c73e89c9bf57d33df56e')
diff --git a/fix-build-with-sip-4.19.patch b/fix-build-with-sip-4.19.patch
new file mode 100644
index 00000000000..84d3c073f0a
--- /dev/null
+++ b/fix-build-with-sip-4.19.patch
@@ -0,0 +1,596 @@
+From 2d1eadf5d0148c88cb4393993f0269e196cbe7b1 Mon Sep 17 00:00:00 2001
+From: Johannes Huber <johu@gentoo.org>
+Date: Mon, 9 Jan 2017 11:52:12 +0100
+Subject: [PATCH] Fix build with sip 4.19
+
+REVIEW: 129799
+---
+ sip/dnssd/remoteservice.sip | 10 +++++-----
+ sip/kdecore/kmimetype.sip | 10 +++++-----
+ sip/kdecore/ksharedconfig.sip | 4 ++--
+ sip/kdecore/ksycocaentry.sip | 10 +++++-----
+ sip/kdecore/typedefs.sip | 30 +++++++++++++++---------------
+ sip/kdeui/kcompletion.sip | 10 +++++-----
+ sip/kdeui/kxmlguibuilder.sip | 4 ++--
+ sip/kio/kservicegroup.sip | 10 +++++-----
+ sip/ktexteditor/markinterface.sip | 10 +++++-----
+ sip/phonon/objectdescription.sip | 10 +++++-----
+ sip/soprano/pluginmanager.sip | 30 +++++++++++++++---------------
+ 11 files changed, 69 insertions(+), 69 deletions(-)
+
+diff --git a/sip/dnssd/remoteservice.sip b/sip/dnssd/remoteservice.sip
+index 5c5397a1..44db8872 100644
+--- a/sip/dnssd/remoteservice.sip
++++ b/sip/dnssd/remoteservice.sip
+@@ -66,7 +66,7 @@ protected:
+ DNSSD::RemoteService::Ptr *t = new DNSSD::RemoteService::Ptr (sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_DNSSD_RemoteService, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t->data(), sipType_DNSSD_RemoteService, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -88,7 +88,7 @@ protected:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_DNSSD_RemoteService, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -99,11 +99,11 @@ protected:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- DNSSD::RemoteService *t = reinterpret_cast<DNSSD::RemoteService *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ DNSSD::RemoteService *t = reinterpret_cast<DNSSD::RemoteService *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_DNSSD_RemoteService, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
++ sipReleaseType(t, sipType_DNSSD_RemoteService, state);
+
+ delete ql;
+ return 0;
+@@ -113,7 +113,7 @@ protected:
+
+ ql->append(*tptr);
+
+- sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
++ sipReleaseType(t, sipType_DNSSD_RemoteService, state);
+ }
+
+ *sipCppPtr = ql;
+diff --git a/sip/kdecore/kmimetype.sip b/sip/kdecore/kmimetype.sip
+index b2d21f7f..29452102 100644
+--- a/sip/kdecore/kmimetype.sip
++++ b/sip/kdecore/kmimetype.sip
+@@ -100,7 +100,7 @@ public:
+ KMimeType::Ptr *t = new KMimeType::Ptr (sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_KMimeType, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t->data(), sipType_KMimeType, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -122,7 +122,7 @@ public:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KMimeType, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KMimeType, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -133,11 +133,11 @@ public:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- KMimeType *t = reinterpret_cast<KMimeType *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KMimeType, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ KMimeType *t = reinterpret_cast<KMimeType *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KMimeType, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_KMimeType, state);
++ sipReleaseType(t, sipType_KMimeType, state);
+
+ delete ql;
+ return 0;
+@@ -147,7 +147,7 @@ public:
+
+ ql->append(*tptr);
+
+- sipReleaseInstance(t, sipClass_KMimeType, state);
++ sipReleaseType(t, sipType_KMimeType, state);
+ }
+
+ *sipCppPtr = ql;
+diff --git a/sip/kdecore/ksharedconfig.sip b/sip/kdecore/ksharedconfig.sip
+index 54b15997..9442d80a 100644
+--- a/sip/kdecore/ksharedconfig.sip
++++ b/sip/kdecore/ksharedconfig.sip
+@@ -65,7 +65,7 @@ typedef KSharedConfig::Ptr KSharedConfigPtr;
+ KSharedConfigPtr kcpp = *sipCpp;
+ KSharedConfig *ksc = kcpp.data ();
+ ksc->ref.ref();
+- PyObject *pyKsc = sipConvertFromInstance(ksc, sipClass_KSharedConfig, sipTransferObj);
++ PyObject *pyKsc = sipConvertFromType(ksc, sipType_KSharedConfig, sipTransferObj);
+ return pyKsc;
+ %End
+
+@@ -74,7 +74,7 @@ typedef KSharedConfig::Ptr KSharedConfigPtr;
+ return 1;
+
+ int state;
+- KSharedConfig* ksc = (KSharedConfig *)sipConvertToInstance(sipPy, sipClass_KSharedConfig, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr);
++ KSharedConfig* ksc = (KSharedConfig *)sipConvertToType(sipPy, sipType_KSharedConfig, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr);
+ *sipCppPtr = new KSharedConfigPtr (ksc);
+ ksc->ref.deref();
+ return sipGetState(sipTransferObj);
+diff --git a/sip/kdecore/ksycocaentry.sip b/sip/kdecore/ksycocaentry.sip
+index 4632e4a8..ceb85fa4 100644
+--- a/sip/kdecore/ksycocaentry.sip
++++ b/sip/kdecore/ksycocaentry.sip
+@@ -83,7 +83,7 @@ private:
+ KSycocaEntry::Ptr *t = new KSycocaEntry::Ptr (sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_KSycocaEntry, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t->data(), sipType_KSycocaEntry, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -105,7 +105,7 @@ private:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KSycocaEntry, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KSycocaEntry, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -116,11 +116,11 @@ private:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- KSycocaEntry *t = reinterpret_cast<KSycocaEntry *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KSycocaEntry, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ KSycocaEntry *t = reinterpret_cast<KSycocaEntry *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KSycocaEntry, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_KSycocaEntry, state);
++ sipReleaseType(t, sipType_KSycocaEntry, state);
+
+ delete ql;
+ return 0;
+@@ -130,7 +130,7 @@ private:
+
+ ql->append(*tptr);
+
+- sipReleaseInstance(t, sipClass_KSycocaEntry, state);
++ sipReleaseType(t, sipType_KSycocaEntry, state);
+ }
+
+ *sipCppPtr = ql;
+diff --git a/sip/kdecore/typedefs.sip b/sip/kdecore/typedefs.sip
+index af53f855..23956b7f 100644
+--- a/sip/kdecore/typedefs.sip
++++ b/sip/kdecore/typedefs.sip
+@@ -397,8 +397,8 @@ template <TYPE1,TYPE2>
+ TYPE1 *t1 = new TYPE1(i.key());
+ TYPE2 *t2 = new TYPE2(i.value());
+
+- PyObject *t1obj = sipConvertFromNewInstance(t1, sipClass_TYPE1, sipTransferObj);
+- PyObject *t2obj = sipConvertFromNewInstance(t2, sipClass_TYPE2, sipTransferObj);
++ PyObject *t1obj = sipConvertFromNewType(t1, sipType_TYPE1, sipTransferObj);
++ PyObject *t2obj = sipConvertFromNewType(t2, sipType_TYPE2, sipTransferObj);
+
+ if (t1obj == NULL || t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0)
+ {
+@@ -438,10 +438,10 @@ template <TYPE1,TYPE2>
+
+ while (PyDict_Next(sipPy, &i, &t1obj, &t2obj))
+ {
+- if (!sipCanConvertToInstance(t1obj, sipClass_TYPE1, SIP_NOT_NONE))
++ if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE))
+ return 0;
+
+- if (!sipCanConvertToInstance(t2obj, sipClass_TYPE2, SIP_NOT_NONE))
++ if (!sipCanConvertToType(t2obj, sipType_TYPE2, SIP_NOT_NONE))
+ return 0;
+ }
+
+@@ -454,13 +454,13 @@ template <TYPE1,TYPE2>
+ {
+ int state1, state2;
+
+- TYPE1 *t1 = reinterpret_cast<TYPE1 *>(sipConvertToInstance(t1obj, sipClass_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr));
+- TYPE2 *t2 = reinterpret_cast<TYPE2 *>(sipConvertToInstance(t2obj, sipClass_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr));
++ TYPE1 *t1 = reinterpret_cast<TYPE1 *>(sipConvertToType(t1obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr));
++ TYPE2 *t2 = reinterpret_cast<TYPE2 *>(sipConvertToType(t2obj, sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t1, sipClass_TYPE1, state1);
+- sipReleaseInstance(t2, sipClass_TYPE2, state2);
++ sipReleaseType(t1, sipType_TYPE1, state1);
++ sipReleaseType(t2, sipType_TYPE2, state2);
+
+ delete qm;
+ return 0;
+@@ -468,8 +468,8 @@ template <TYPE1,TYPE2>
+
+ qm->insert(*t1, *t2);
+
+- sipReleaseInstance(t1, sipClass_TYPE1, state1);
+- sipReleaseInstance(t2, sipClass_TYPE2, state2);
++ sipReleaseType(t1, sipType_TYPE1, state1);
++ sipReleaseType(t2, sipType_TYPE2, state2);
+ }
+
+ *sipCppPtr = qm;
+@@ -669,7 +669,7 @@ template <TYPE*>
+ TYPE *t = (TYPE *)(sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t, sipClass_TYPE, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -691,7 +691,7 @@ template <TYPE*>
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -702,11 +702,11 @@ template <TYPE*>
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ TYPE *t = reinterpret_cast<TYPE *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_TYPE, state);
++ sipReleaseType(t, sipType_TYPE, state);
+
+ delete qv;
+ return 0;
+@@ -714,7 +714,7 @@ template <TYPE*>
+
+ qv->append(t);
+
+- sipReleaseInstance(t, sipClass_TYPE, state);
++ sipReleaseType(t, sipType_TYPE, state);
+ }
+
+ *sipCppPtr = qv;
+diff --git a/sip/kdeui/kcompletion.sip b/sip/kdeui/kcompletion.sip
+index f1d327f9..938506a1 100644
+--- a/sip/kdeui/kcompletion.sip
++++ b/sip/kdeui/kcompletion.sip
+@@ -176,7 +176,7 @@ public:
+ #else
+ PyObject *kobj = PyInt_FromLong((int)i.key());
+ #endif
+- PyObject *tobj = sipConvertFromNewInstance(t, sipClass_KShortcut, sipTransferObj);
++ PyObject *tobj = sipConvertFromNewType(t, sipType_KShortcut, sipTransferObj);
+
+ if (kobj == NULL || tobj == NULL || PyDict_SetItem(d, kobj, tobj) < 0)
+ {
+@@ -213,7 +213,7 @@ public:
+ return 0;
+
+ while (PyDict_Next(sipPy, &i, &kobj, &tobj))
+- if (!sipCanConvertToInstance(tobj, sipClass_KShortcut, SIP_NOT_NONE))
++ if (!sipCanConvertToType(tobj, sipType_KShortcut, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -229,11 +229,11 @@ public:
+ #else
+ int k = PyInt_AsLong(kobj);
+ #endif
+- KShortcut *t = reinterpret_cast<KShortcut *>(sipConvertToInstance(tobj, sipClass_KShortcut, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ KShortcut *t = reinterpret_cast<KShortcut *>(sipConvertToType(tobj, sipType_KShortcut, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_KShortcut, state);
++ sipReleaseType(t, sipType_KShortcut, state);
+
+ delete qm;
+ return 0;
+@@ -241,7 +241,7 @@ public:
+
+ qm->insert((KCompletionBase::KeyBindingType)k, *t);
+
+- sipReleaseInstance(t, sipClass_KShortcut, state);
++ sipReleaseType(t, sipType_KShortcut, state);
+ }
+
+ *sipCppPtr = qm;
+diff --git a/sip/kdeui/kxmlguibuilder.sip b/sip/kdeui/kxmlguibuilder.sip
+index 41ae2aa8..e4cf187c 100644
+--- a/sip/kdeui/kxmlguibuilder.sip
++++ b/sip/kdeui/kxmlguibuilder.sip
+@@ -49,10 +49,10 @@ QAction *containerAction;
+ PyObject *pyWidget;
+ PyObject *pyContainerAction;
+
+- if ((pyWidget = sipConvertFromNewInstance(res, sipClass_QWidget, NULL)) == NULL)
++ if ((pyWidget = sipConvertFromNewType(res, sipType_QWidget, NULL)) == NULL)
+ return NULL;
+
+- if ((pyContainerAction = sipConvertFromNewInstance(containerAction, sipClass_QAction, NULL)) == NULL)
++ if ((pyContainerAction = sipConvertFromNewType(containerAction, sipType_QAction, NULL)) == NULL)
+ return NULL;
+
+ sipRes = Py_BuildValue ("NN", pyWidget, pyContainerAction);
+diff --git a/sip/kio/kservicegroup.sip b/sip/kio/kservicegroup.sip
+index a1ef9814..1ddce370 100644
+--- a/sip/kio/kservicegroup.sip
++++ b/sip/kio/kservicegroup.sip
+@@ -151,7 +151,7 @@ public:
+ KServiceGroup::SPtr *t = new KServiceGroup::SPtr (sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_KServiceGroup, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t->data(), sipType_KServiceGroup, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -173,7 +173,7 @@ public:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KServiceGroup, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KServiceGroup, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -184,11 +184,11 @@ public:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- KServiceGroup *t = reinterpret_cast<KServiceGroup *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_KServiceGroup, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ KServiceGroup *t = reinterpret_cast<KServiceGroup *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_KServiceGroup, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_KServiceGroup, state);
++ sipReleaseType(t, sipType_KServiceGroup, state);
+
+ delete ql;
+ return 0;
+@@ -198,7 +198,7 @@ public:
+
+ ql->append(*tptr);
+
+- sipReleaseInstance(t, sipClass_KServiceGroup, state);
++ sipReleaseType(t, sipType_KServiceGroup, state);
+ }
+
+ *sipCppPtr = ql;
+diff --git a/sip/ktexteditor/markinterface.sip b/sip/ktexteditor/markinterface.sip
+index d9b0ec98..888c5065 100644
+--- a/sip/ktexteditor/markinterface.sip
++++ b/sip/ktexteditor/markinterface.sip
+@@ -158,7 +158,7 @@ signals:
+ #else
+ PyObject *t1obj = PyInt_FromLong ((long)t1);
+ #endif
+- PyObject *t2obj = sipConvertFromNewInstance(t2, sipClass_KTextEditor_Mark, sipTransferObj);
++ PyObject *t2obj = sipConvertFromNewType(t2, sipType_KTextEditor_Mark, sipTransferObj);
+
+ if (t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0)
+ {
+@@ -203,7 +203,7 @@ signals:
+ #endif
+ return 0;
+
+- if (!sipCanConvertToInstance(t2obj, sipClass_KTextEditor_Mark, SIP_NOT_NONE))
++ if (!sipCanConvertToType(t2obj, sipType_KTextEditor_Mark, SIP_NOT_NONE))
+ return 0;
+ }
+
+@@ -221,11 +221,11 @@ signals:
+ #else
+ int t1 = PyInt_AS_LONG (t1obj);
+ #endif
+- KTextEditor::Mark *t2 = reinterpret_cast<KTextEditor::Mark *>(sipConvertToInstance(t2obj, sipClass_KTextEditor_Mark, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr));
++ KTextEditor::Mark *t2 = reinterpret_cast<KTextEditor::Mark *>(sipConvertToType(t2obj, sipType_KTextEditor_Mark, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t2, sipClass_KTextEditor_Mark, state2);
++ sipReleaseType(t2, sipType_KTextEditor_Mark, state2);
+
+ delete qm;
+ return 0;
+@@ -233,7 +233,7 @@ signals:
+
+ qm->insert(t1, t2);
+
+- sipReleaseInstance(t2, sipClass_KTextEditor_Mark, state2);
++ sipReleaseType(t2, sipType_KTextEditor_Mark, state2);
+ }
+
+ *sipCppPtr = qm;
+diff --git a/sip/phonon/objectdescription.sip b/sip/phonon/objectdescription.sip
+index 2b86d5e7..015b2eff 100644
+--- a/sip/phonon/objectdescription.sip
++++ b/sip/phonon/objectdescription.sip
+@@ -116,7 +116,7 @@ void registerMetaTypes ();
+ DNSSD::RemoteService::Ptr *t = new Phonon::ObjectDescription (sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_DNSSD_RemoteService, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromNewType(t->data(), sipType_DNSSD_RemoteService, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+@@ -138,7 +138,7 @@ void registerMetaTypes ();
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_DNSSD_RemoteService, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -149,11 +149,11 @@ void registerMetaTypes ();
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- DNSSD::RemoteService *t = reinterpret_cast<DNSSD::RemoteService *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ DNSSD::RemoteService *t = reinterpret_cast<DNSSD::RemoteService *>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_DNSSD_RemoteService, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
++ sipReleaseType(t, sipType_DNSSD_RemoteService, state);
+
+ delete ql;
+ return 0;
+@@ -163,7 +163,7 @@ void registerMetaTypes ();
+
+ ql->append(*tptr);
+
+- sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
++ sipReleaseType(t, sipType_DNSSD_RemoteService, state);
+ }
+
+ *sipCppPtr = ql;
+diff --git a/sip/soprano/pluginmanager.sip b/sip/soprano/pluginmanager.sip
+index c2be1c3f..fe990f88 100644
+--- a/sip/soprano/pluginmanager.sip
++++ b/sip/soprano/pluginmanager.sip
+@@ -73,7 +73,7 @@ public:
+ Soprano::Backend* t = const_cast<Soprano::Backend*>(sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromInstance(t, sipClass_Soprano_Backend, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromType(t, sipType_Soprano_Backend, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ return NULL;
+@@ -93,7 +93,7 @@ public:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Backend, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Backend, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -104,18 +104,18 @@ public:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- const Soprano::Backend*t = reinterpret_cast<const Soprano::Backend*>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Backend, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ const Soprano::Backend*t = reinterpret_cast<const Soprano::Backend*>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Backend, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(const_cast<Soprano::Backend*>(t), sipClass_Soprano_Backend, state);
++ sipReleaseType(const_cast<Soprano::Backend*>(t), sipType_Soprano_Backend, state);
+
+ delete ql;
+ return 0;
+ }
+ ql->append(t);
+
+- sipReleaseInstance(const_cast<Soprano::Backend*>(t), sipClass_Soprano_Backend, state);
++ sipReleaseType(const_cast<Soprano::Backend*>(t), sipType_Soprano_Backend, state);
+ }
+
+ *sipCppPtr = ql;
+@@ -144,7 +144,7 @@ public:
+ Soprano::Parser* t = const_cast<Soprano::Parser*>(sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromInstance(t, sipClass_Soprano_Parser, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromType(t, sipType_Soprano_Parser, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ return NULL;
+@@ -164,7 +164,7 @@ public:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Parser, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Parser, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -175,18 +175,18 @@ public:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- const Soprano::Parser*t = reinterpret_cast<const Soprano::Parser*>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Parser, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ const Soprano::Parser*t = reinterpret_cast<const Soprano::Parser*>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Parser, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(const_cast<Soprano::Parser*>(t), sipClass_Soprano_Parser, state);
++ sipReleaseType(const_cast<Soprano::Parser*>(t), sipType_Soprano_Parser, state);
+
+ delete ql;
+ return 0;
+ }
+ ql->append(t);
+
+- sipReleaseInstance(const_cast<Soprano::Parser*>(t), sipClass_Soprano_Parser, state);
++ sipReleaseType(const_cast<Soprano::Parser*>(t), sipType_Soprano_Parser, state);
+ }
+
+ *sipCppPtr = ql;
+@@ -215,7 +215,7 @@ public:
+ Soprano::Serializer* t = const_cast<Soprano::Serializer*>(sipCpp->at(i));
+ PyObject *tobj;
+
+- if ((tobj = sipConvertFromInstance(t, sipClass_Soprano_Serializer, sipTransferObj)) == NULL)
++ if ((tobj = sipConvertFromType(t, sipType_Soprano_Serializer, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ return NULL;
+@@ -235,7 +235,7 @@ public:
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Serializer, SIP_NOT_NONE))
++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Serializer, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+@@ -246,18 +246,18 @@ public:
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+- const Soprano::Serializer*t = reinterpret_cast<const Soprano::Serializer*>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Soprano_Serializer, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ const Soprano::Serializer*t = reinterpret_cast<const Soprano::Serializer*>(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_Soprano_Serializer, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+- sipReleaseInstance(const_cast<Soprano::Serializer*>(t), sipClass_Soprano_Serializer, state);
++ sipReleaseType(const_cast<Soprano::Serializer*>(t), sipType_Soprano_Serializer, state);
+
+ delete ql;
+ return 0;
+ }
+ ql->append(t);
+
+- sipReleaseInstance(const_cast<Soprano::Serializer*>(t), sipClass_Soprano_Serializer, state);
++ sipReleaseType(const_cast<Soprano::Serializer*>(t), sipType_Soprano_Serializer, state);
+ }
+
+ *sipCppPtr = ql;
diff --git a/pykde4-4.14.3-checkstate-sip-4.19.5.patch b/pykde4-4.14.3-checkstate-sip-4.19.5.patch
new file mode 100644
index 00000000000..ffc5384d64d
--- /dev/null
+++ b/pykde4-4.14.3-checkstate-sip-4.19.5.patch
@@ -0,0 +1,24 @@
+diff -up pykde4-4.14.3/sip/kdeui/kfontchooser.sip.me pykde4-4.14.3/sip/kdeui/kfontchooser.sip
+--- pykde4-4.14.3/sip/kdeui/kfontchooser.sip.me 2018-01-17 13:16:50.738465947 +0100
++++ pykde4-4.14.3/sip/kdeui/kfontchooser.sip 2018-01-17 13:28:24.665226258 +0100
+@@ -59,7 +59,7 @@ public:
+
+ typedef QFlags<KFontChooser::DisplayFlag> DisplayFlags;
+
+- explicit KFontChooser (QWidget* parent /TransferThis/ = 0, const KFontChooser::DisplayFlags& flags = KFontChooser::DisplayFrame, const QStringList& fontList = QStringList(), int visibleListSize = 8, Qt::CheckState* sizeIsRelativeState = 0) [(QWidget* = 0, const KFontChooser::DisplayFlags& = KFontChooser::DisplayFrame, const QStringList& = QStringList(), int = 8, Qt::CheckState* = 0)];
++ explicit KFontChooser (QWidget* parent /TransferThis/ = 0, const KFontChooser::DisplayFlags& flags = KFontChooser::DisplayFrame, const QStringList& fontList = QStringList(), int visibleListSize = 8, Qt::CheckState sizeIsRelativeState = Qt::Unchecked) [(QWidget* = 0, const KFontChooser::DisplayFlags& = KFontChooser::DisplayFrame, const QStringList& = QStringList(), int = 8, Qt::CheckState* = 0)];
+ %MethodCode
+ Py_BEGIN_ALLOW_THREADS
+ sipCpp = new sipKFontChooser (a0, *a1, *a2, a3, &a4);
+diff -up pykde4-4.14.3/sip/kdeui/kfontdialog.sip.me pykde4-4.14.3/sip/kdeui/kfontdialog.sip
+--- pykde4-4.14.3/sip/kdeui/kfontdialog.sip.me 2018-01-17 13:18:31.112670465 +0100
++++ pykde4-4.14.3/sip/kdeui/kfontdialog.sip 2018-01-17 13:28:00.121154351 +0100
+@@ -28,7 +28,7 @@ class KFontDialog : KDialog
+
+
+ public:
+- explicit KFontDialog (QWidget* parent /TransferThis/ = 0, const KFontChooser::DisplayFlags& flags = KFontChooser::NoDisplayFlags, const QStringList& fontlist = QStringList(), Qt::CheckState* sizeIsRelativeState = 0) [(QWidget* = 0, const KFontChooser::DisplayFlags& = KFontChooser::NoDisplayFlags, const QStringList& = QStringList(), Qt::CheckState* = 0)];
++ explicit KFontDialog (QWidget* parent /TransferThis/ = 0, const KFontChooser::DisplayFlags& flags = KFontChooser::NoDisplayFlags, const QStringList& fontlist = QStringList(), Qt::CheckState sizeIsRelativeState = Qt::Unchecked) [(QWidget* = 0, const KFontChooser::DisplayFlags& = KFontChooser::NoDisplayFlags, const QStringList& = QStringList(), Qt::CheckState* = 0)];
+ %MethodCode
+ Py_BEGIN_ALLOW_THREADS
+ sipCpp= new sipKFontDialog (a0, *a1, *a2, &a3);
diff --git a/v4.14.3...master.patch b/v4.14.3...master.patch
new file mode 100644
index 00000000000..3d85c8744cc
--- /dev/null
+++ b/v4.14.3...master.patch
@@ -0,0 +1,101 @@
+From 658e5886d5ce2cb935af04783208f147af72cdb2 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date: Thu, 24 Jul 2014 14:30:05 +0300
+Subject: [PATCH 1/3] Fix .reviewboardrc's file name.
+
+---
+ .reviewboardc => .reviewboardrc | 0
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+ rename .reviewboardc => .reviewboardrc (100%)
+
+diff --git a/.reviewboardc b/.reviewboardrc
+similarity index 100%
+rename from .reviewboardc
+rename to .reviewboardrc
+
+From 34bed3ceb7cd2bb43e67acce97f4cc3e8bbc1c1d Mon Sep 17 00:00:00 2001
+From: Rex Dieter <rdieter@math.unl.edu>
+Date: Tue, 11 Mar 2014 09:51:17 -0500
+Subject: [PATCH 2/3] use LIB_PYTHON realpath
+
+Use GET_FILENAME_COMPONENT( ... REALPATH). PYTHON_LIBRARY as returned
+by cmake, whose target is often a symlink. Some distro packaging
+reserves such library symlinks for -devel and not runtime.
+
+REVIEW: 116719
+---
+ kpythonpluginfactory/CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kpythonpluginfactory/CMakeLists.txt b/kpythonpluginfactory/CMakeLists.txt
+index c24160e7..a777dac1 100644
+--- a/kpythonpluginfactory/CMakeLists.txt
++++ b/kpythonpluginfactory/CMakeLists.txt
+@@ -3,7 +3,8 @@
+ set(kpythonpluginfactory_SRCS
+ kpythonpluginfactory.cpp)
+
+-GET_FILENAME_COMPONENT(LIB_PYTHON ${PYTHON_LIBRARIES} NAME)
++GET_FILENAME_COMPONENT(PYTHON_LIBRARY_REALPATH "${PYTHON_LIBRARY}" REALPATH)
++GET_FILENAME_COMPONENT(LIB_PYTHON ${PYTHON_LIBRARY_REALPATH} NAME)
+ ADD_DEFINITIONS(-DLIB_PYTHON="${LIB_PYTHON}")
+ ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=15000)
+
+
+From b0137f694f946c7f10ac2863a71b4cdeda15eb87 Mon Sep 17 00:00:00 2001
+From: Wolfgang Bauer <wbauer@tmo.at>
+Date: Wed, 14 Sep 2016 23:54:40 +0200
+Subject: [PATCH 3/3] Add some missing(?) link libraries
+
+This fixes the following build errors in openSUSE Factory:
+
+CMakeFiles/python_module_PyKDE4_dnssd.dir/sip/dnssd/sipdnssdpart2.cpp.o:
+In function `meth_DNSSD_ServiceBrowser_resolveHostName':
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/dnssd/sipdnssdpart2.cpp:408:
+undefined reference to `QHostAddress::QHostAddress(QHostAddress
+const&)'
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/dnssd/sipdnssdpart2.cpp:408:
+undefined reference to `QHostAddress::~QHostAddress()'
+collect2: error: ld returned 1 exit status
+...
+CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart3.cpp.o: In
+function `meth_KFilePlacesModel_deviceForIndex':
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/kio/sipkiopart3.cpp:18560:
+undefined reference to `Solid::Device::Device(Solid::Device const&)'
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/kio/sipkiopart3.cpp:18560:
+undefined reference to `Solid::Device::~Device()'
+CMakeFiles/python_module_PyKDE4_kio.dir/sip/kio/sipkiopart4.cpp.o: In
+function `meth_KDeviceListModel_deviceForIndex':
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/kio/sipkiopart4.cpp:27090:
+undefined reference to `Solid::Device::Device(Solid::Device const&)'
+/home/abuild/rpmbuild/BUILD/pykde4-4.14.3/build/sip/kio/sipkiopart4.cpp:27090:
+undefined reference to `Solid::Device::~Device()'
+collect2: error: ld returned 1 exit status
+
+REVIEW: 127705
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b0768cfe..b919d1b3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -166,7 +166,7 @@ add_sip_python_module(PyKDE4.kdeui sip/kdeui/kdeuimod.sip ${KDE4_KDEUI_LIBS} ${Q
+
+ file(GLOB kio_files_sip sip/kio/*.sip)
+ set(SIP_EXTRA_FILES_DEPEND ${kio_files_sip})
+-add_sip_python_module(PyKDE4.kio sip/kio/kiomod.sip ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS})
++add_sip_python_module(PyKDE4.kio sip/kio/kiomod.sip ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_SOLID_LIBS})
+
+ file(GLOB kutils_files_sip sip/kutils/*.sip)
+ set(SIP_EXTRA_FILES_DEPEND ${kutils_files_sip})
+@@ -190,7 +190,7 @@ add_sip_python_module(PyKDE4.knewstuff sip/knewstuff/knewstuffmod.sip ${KDE4_KNE
+
+ file(GLOB dnssd_files_sip sip/dnssd/*.sip)
+ set(SIP_EXTRA_FILES_DEPEND ${dnssd_files_sip})
+-add_sip_python_module(PyKDE4.dnssd sip/dnssd/dnssdmod.sip ${KDE4_KDNSSD_LIBS} ${QT_QTCORE_LIBRARY})
++add_sip_python_module(PyKDE4.dnssd sip/dnssd/dnssdmod.sip ${KDE4_KDNSSD_LIBS} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY})
+
+ file(GLOB phonon_files_sip sip/phonon/*.sip)
+ set(SIP_EXTRA_FILES_DEPEND ${phonon_files_sip})