summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Huber <johu@gentoo.org>2016-12-23 21:07:48 +0100
committerJohannes Huber <johu@gentoo.org>2016-12-23 21:07:48 +0100
commit32ee0df9fead1404087d69a411b4c97261b1bbaa (patch)
tree662fce23f9f78f6081db6580f85f8f583443af3f /kde-apps/pykde4/files
parentkde-base/katepart -> kde-apps/katepart (diff)
downloadgentoo-32ee0df9fead1404087d69a411b4c97261b1bbaa.tar.gz
gentoo-32ee0df9fead1404087d69a411b4c97261b1bbaa.tar.bz2
gentoo-32ee0df9fead1404087d69a411b4c97261b1bbaa.zip
kde-base/pykde4 -> kde-apps/pykde4
Diffstat (limited to 'kde-apps/pykde4/files')
-rw-r--r--kde-apps/pykde4/files/kpythonpluginfactorywrapper.c-r271
-rw-r--r--kde-apps/pykde4/files/pykde4-4.14.0-arm-sip.patch23
-rw-r--r--kde-apps/pykde4/files/pykde4-4.14.3-gcc-5.patch25
3 files changed, 119 insertions, 0 deletions
diff --git a/kde-apps/pykde4/files/kpythonpluginfactorywrapper.c-r2 b/kde-apps/pykde4/files/kpythonpluginfactorywrapper.c-r2
new file mode 100644
index 000000000000..f516f1b72281
--- /dev/null
+++ b/kde-apps/pykde4/files/kpythonpluginfactorywrapper.c-r2
@@ -0,0 +1,71 @@
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+#define VERSION_LEN 10
+
+#define FORMAT EPREFIX PLUGIN_DIR "/kpython%spluginfactory.so"
+
+static void *handle;
+static void *(*wrapped_qt_plugin_instance)();
+
+static void get_python_version(char* out) {
+ int pipefd[2];
+ pipe(pipefd);
+ pid_t cpid = fork();
+ if (cpid > 0) {
+ close(pipefd[1]);
+ read(pipefd[0], out, VERSION_LEN);
+ close(pipefd[0]);
+ waitpid(cpid, NULL, 0);
+ } else if (cpid < 0) {
+ /* fork failed, guess 2.7 */
+ strcpy(out, "2.7\n");
+ close(pipefd[0]);
+ close(pipefd[1]);
+ } else {
+ close(pipefd[0]);
+ close(1);
+ dup2(pipefd[1], 1);
+ close(pipefd[1]);
+ close(0);
+ char *args[] = { "eselect", "python", "show", "--ABI", "--python2", 0 };
+ execv(EPREFIX "/usr/bin/eselect", args);
+ /* exec failed, guess 2.7 */
+ write(1, "2.7\n", 4);
+ exit(0);
+ }
+}
+
+__attribute__((constructor))
+static void init() {
+ char buf[VERSION_LEN + 1];
+ memset(buf, 0, VERSION_LEN + 1);
+ get_python_version(buf);
+ char *s = buf;
+ while(*s != '\0') {
+ if(*s == '\n') {
+ *s = '\0';
+ break;
+ }
+ ++s;
+ }
+ int length = strlen(FORMAT) + strlen(buf) + 1;
+ char *name = malloc(length + 1);
+ snprintf(name, length, FORMAT, buf);
+ handle = dlopen(name, RTLD_NOW);
+ free(name);
+ wrapped_qt_plugin_instance = dlsym(handle, "qt_plugin_instance");
+}
+
+__attribute__((destructor))
+static void fini() {
+ dlclose(handle);
+}
+
+void *qt_plugin_instance() {
+ return wrapped_qt_plugin_instance();
+}
diff --git a/kde-apps/pykde4/files/pykde4-4.14.0-arm-sip.patch b/kde-apps/pykde4/files/pykde4-4.14.0-arm-sip.patch
new file mode 100644
index 000000000000..f6391a8ec714
--- /dev/null
+++ b/kde-apps/pykde4/files/pykde4-4.14.0-arm-sip.patch
@@ -0,0 +1,23 @@
+See Gentoo bug #322351.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -99,6 +99,9 @@ include_directories(
+ ${KDEPIMLIBS_INCLUDE_DIRS}
+ )
+
++# Pull in ARM configuration options if needed
++STRING(REGEX MATCH "PyQt_qreal_double" SIP_ARM_HACK ${PYQT4_SIP_FLAGS} "")
++
+ set(SIP_INCLUDES ${CMAKE_BINARY_DIR} ${PYQT4_SIP_DIR} sip)
+ set(SIP_CONCAT_PARTS 8)
+ if (WIN32)
+@@ -106,7 +109,7 @@ if (WIN32)
+ else ()
+ set(SIP_TAGS ALL WS_X11 ${PYQT4_VERSION_TAG})
+ endif ()
+-set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug)
++set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug ${SIP_ARM_HACK})
+
+ set(SIP_FILES_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/sip)
+
diff --git a/kde-apps/pykde4/files/pykde4-4.14.3-gcc-5.patch b/kde-apps/pykde4/files/pykde4-4.14.3-gcc-5.patch
new file mode 100644
index 000000000000..9c29ffa503fa
--- /dev/null
+++ b/kde-apps/pykde4/files/pykde4-4.14.3-gcc-5.patch
@@ -0,0 +1,25 @@
+Patch created by: Erik Zeek
+
+See also: https://bugs.gentoo.org/show_bug.cgi?id=567022
+
+--- a/CMakeLists.txt
++++ a/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_SOLID_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KFILE_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})
+