diff options
author | Johannes Huber <johu@gentoo.org> | 2016-12-23 21:07:48 +0100 |
---|---|---|
committer | Johannes Huber <johu@gentoo.org> | 2016-12-23 21:07:48 +0100 |
commit | 32ee0df9fead1404087d69a411b4c97261b1bbaa (patch) | |
tree | 662fce23f9f78f6081db6580f85f8f583443af3f /kde-apps/pykde4/files | |
parent | kde-base/katepart -> kde-apps/katepart (diff) | |
download | gentoo-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-r2 | 71 | ||||
-rw-r--r-- | kde-apps/pykde4/files/pykde4-4.14.0-arm-sip.patch | 23 | ||||
-rw-r--r-- | kde-apps/pykde4/files/pykde4-4.14.3-gcc-5.patch | 25 |
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}) + |