summaryrefslogtreecommitdiff
path: root/kde-base/pykde4
diff options
context:
space:
mode:
Diffstat (limited to 'kde-base/pykde4')
-rw-r--r--kde-base/pykde4/Manifest32
-rw-r--r--kde-base/pykde4/files/kpythonpluginfactorywrapper.c52
-rw-r--r--kde-base/pykde4/files/pykde4-4.6.3-python-3.2.patch17
-rw-r--r--kde-base/pykde4/pykde4-4.6.49.9999.ebuild135
-rw-r--r--kde-base/pykde4/pykde4-4.6.5-r1.ebuild172
-rw-r--r--kde-base/pykde4/pykde4-4.6.5.ebuild95
-rw-r--r--kde-base/pykde4/pykde4-4.6.90-r1.ebuild159
-rw-r--r--kde-base/pykde4/pykde4-4.6.90.ebuild86
-rw-r--r--kde-base/pykde4/pykde4-4.7.49.9999.ebuild115
-rw-r--r--kde-base/pykde4/pykde4-9999.ebuild115
10 files changed, 721 insertions, 257 deletions
diff --git a/kde-base/pykde4/Manifest b/kde-base/pykde4/Manifest
index 38e0fc097a5..cb0bbce7b90 100644
--- a/kde-base/pykde4/Manifest
+++ b/kde-base/pykde4/Manifest
@@ -1,10 +1,32 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+AUX kpythonpluginfactorywrapper.c 1167 RMD160 8c3fd6c0221f1e63bda57c2bef1f47f38b2b5d86 SHA1 7922bc998af7cb2750a5a4c3be5d81e629934273 SHA256 e8658cb7d518fa4840a0346f775a498807e00c8f3543544c080d6ed6810924e0
AUX pykde4-4.4.4-arm-sip.patch 822 RMD160 60af91680e1e8388acd7f8401a32dbf894a4351f SHA1 20d37a8b127eebffc4556352168786036969ee78 SHA256 c2defa87628148fe77eb82f43f5904ace4bb66898424218423c79c7fa40613e2
+AUX pykde4-4.6.3-python-3.2.patch 488 RMD160 50d1e692d77934c55b73b1a1f1c1745d56d6a618 SHA1 9715c41a2f98c824eea93e1817ca353bdf5d5051 SHA256 6b54c9ce2c82b4affb4d1e6f9af0f2bd1873387570043561fc989881e26e89a2
AUX pykde4-4.6.4-pyqt475.patch 859 RMD160 26310ab2ca9f7b9c3a51d39a2888c855bc578014 SHA1 f44979aa3f5bbd110cb60a9f4e3264b7177ba605 SHA256 3fdfc6d26ca8cb0108f171fa20a2568207c7c5aa7a9ca637728df610724ed8b4
DIST kdebindings-4.6.5.tar.bz2 7078088 RMD160 4a4fa7233708233a6fdbac203c55cfb6df9892af SHA1 e63a0b0eec92320df2c2c539b916c5ee9425a689 SHA256 b87cf7ccd30a75121b032311c5f625d0a4d44c8c7b1f08c45b9292451da8ff91
DIST pykde4-4.6.90.tar.bz2 2091026 RMD160 6efd1a79ed96359fa064748a03140c670f2abf0d SHA1 c90432ec2643b109427a02afbb8d3f7acc19f5e2 SHA256 5d74af4cd7130c5905d1434f472aa8c7c1ab6a56374c9121cedd0fe93a02dae2
-EBUILD pykde4-4.6.49.9999.ebuild 2175 RMD160 4db3b422e4903b32a3508f4270b6befd88f145bc SHA1 7d745f2f4f132745f8c1e3e91523b57b79772f79 SHA256 8f3eec096e53ab358b8201f056e3b153c49e733b165016608b787a65d5351120
-EBUILD pykde4-4.6.5.ebuild 2227 RMD160 b5469f205fc4eade83d7b64b5b25d7cad1fb693c SHA1 f60c2712d4cf9ffe230f17ef4794b914f45922c6 SHA256 864de630bc545e95f1bfbc6e49e70fc6e30e69221ff58fbc8d4605c41501168c
-EBUILD pykde4-4.6.90.ebuild 2016 RMD160 d0609e47c44b030f964fa46070ca4937ce815046 SHA1 2e91594b54a79c6c98b59d7c0f8ca319d29f5f7a SHA256 b67ec6c6a39f89605decd4129d15718df577d6948d304508a905c6f66e426937
-EBUILD pykde4-4.7.49.9999.ebuild 1981 RMD160 02ec9ac17bbbfb568e17f129faa8916f5fcdf947 SHA1 345bfcd7d09978d451f58b541f393d672dcf5a36 SHA256 d3c7153b0154ad80fbdbec98a253fe46e1ac15fb070e4ae7dc3b45d06ce81f58
-EBUILD pykde4-9999.ebuild 1981 RMD160 02ec9ac17bbbfb568e17f129faa8916f5fcdf947 SHA1 345bfcd7d09978d451f58b541f393d672dcf5a36 SHA256 d3c7153b0154ad80fbdbec98a253fe46e1ac15fb070e4ae7dc3b45d06ce81f58
+EBUILD pykde4-4.6.49.9999.ebuild 4464 RMD160 63fe8550557fb8dc3188eb3ece56160525795592 SHA1 f0973e398ed38e2fb8d5027486396ff13143c7bf SHA256 5f66a631946a99b9d92964b49f7cc5a5c290c3f7d776c3ac3ed464627ccf80f3
+EBUILD pykde4-4.6.5-r1.ebuild 4516 RMD160 40b78ded4c9cef55cbc9f265b179cf1b77d30f35 SHA1 cf8e502c2a4008feb52198dbb8ce328635e83009 SHA256 38f6148ad67b0478e467a05fde4de9b6c06375b9443a581a5c2d6e9c205178e0
+EBUILD pykde4-4.6.90-r1.ebuild 4166 RMD160 d461475de77bdcfc69d50d1b285c87d4ac061b06 SHA1 5cbbf863ed49b63704b0e7340c2aa41c5201d265 SHA256 5dff30223761997a408756243baac634387a7841c17fa72af6952521fc9975e4
+EBUILD pykde4-4.7.49.9999.ebuild 4131 RMD160 deb84e13691ea4a30820680b6ab344fa89403cf1 SHA1 e0fd1a8807f858964eb26c32a2c1f07053d88159 SHA256 ea3f6de66c7b2450b9afdbab7225a4feaa15785332656347d480a50b30ec2524
+EBUILD pykde4-9999.ebuild 4131 RMD160 deb84e13691ea4a30820680b6ab344fa89403cf1 SHA1 e0fd1a8807f858964eb26c32a2c1f07053d88159 SHA256 ea3f6de66c7b2450b9afdbab7225a4feaa15785332656347d480a50b30ec2524
MISC metadata.xml 260 RMD160 a5b7b39214f909c85f4f5de6be8efefb36e5283d SHA1 1e2c113943a2677634a92324ea50f44ccf71b2ec SHA256 0ca2c4d395d5a18420e2afaa9701549afc4e584b5b9be90e4b6ff5db89d66369
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iQIcBAEBCgAGBQJOFXxvAAoJELHSF2kinlg4dM4P/jsKPhKl+zZvk+yp2hCVdBAm
+ajmWnu6x3+uSOOWL67dvO9rBePoi3cdSeGNzIl1ddwcH3bMe6hosjkMAfhjjRVk1
+9rpC+5IXx+05qatkq6MFRqmUsKIGbuvsRUJms7kicRSvzZTBBFrfIQfLfNNrQNGx
+DjZLHmQtbeOkKPG+4PFrZP6gzbUxeQdr91e92sTQUK5obzWA2FmRg8J1V6tcSuqf
+3waE4gSffZSuw5ix778aZbS/m1OSaEPP67v4InIFWIa4pABxsgS3QxBQq4IzZDGd
+r2cpA8bNY0fqytbeJnI7mSKt4giiJFvhpDksOyMLh4F9G0WtHhpA+85iSr5fz7BZ
+0BqYrLHrDFsSPC9V7ZDPOi17pDHlKR4dArUhwwNgEdx/TDLyWcb6Qh5jSEAFj9SM
+VR8+ly3t0DDoq3dRpdhU1E4tPAk8l3seEXFQnxCJ9age9coAYLkrM5qlOWQE5P3x
+mg2ESn4jQOqqDbqsV3cj7yGFvtZVttAXKIQ8j7VvVPdn6klaoMbGhR9pSk+EYNyd
+u2aowtX7Kr8BBHcVeLk3Kssx02/pMrdmGn4iRqOnl8ViacwM2rmlYe7ngqhuaTCf
+krKUeEEW5EdFmLsHxcamuJe0VZa/1rdGaY02IM++wtfC27jVKZWgNxnIYwc32X0Z
+Hxk8Q1x55bRCY9+ax9l9
+=SlHV
+-----END PGP SIGNATURE-----
diff --git a/kde-base/pykde4/files/kpythonpluginfactorywrapper.c b/kde-base/pykde4/files/kpythonpluginfactorywrapper.c
new file mode 100644
index 00000000000..3915a0d122b
--- /dev/null
+++ b/kde-base/pykde4/files/kpythonpluginfactorywrapper.c
@@ -0,0 +1,52 @@
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.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);
+ } 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);
+ }
+}
+
+__attribute__((constructor))
+static void init() {
+ char buf[VERSION_LEN + 1];
+ memset(buf, 0, VERSION_LEN + 1);
+ get_python_version(buf);
+ int length = strlen(FORMAT) + strlen(buf) + 1;
+ char *name = malloc(length + 1);
+ snprintf(name, length, FORMAT, buf);
+ void *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-base/pykde4/files/pykde4-4.6.3-python-3.2.patch b/kde-base/pykde4/files/pykde4-4.6.3-python-3.2.patch
new file mode 100644
index 00000000000..62abdf0a1ba
--- /dev/null
+++ b/kde-base/pykde4/files/pykde4-4.6.3-python-3.2.patch
@@ -0,0 +1,17 @@
+--- python/pykde4/sip/kio/kfileitem.sip
++++ python/pykde4/sip/kio/kfileitem.sip
+@@ -236,7 +236,13 @@
+
+ len = sipCpp->count();
+
+- if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0)
++ if (PySlice_GetIndicesEx(
++#if PY_VERSION_HEX >= 0x03020000
++ a0,
++#else
++ (PySliceObject *)a0,
++#endif
++ len, &start, &stop, &step, &slicelength) < 0)
+ sipIsErr = 1;
+ else
+ {
diff --git a/kde-base/pykde4/pykde4-4.6.49.9999.ebuild b/kde-base/pykde4/pykde4-4.6.49.9999.ebuild
index dc5bcc82601..818e7b7857f 100644
--- a/kde-base/pykde4/pykde4-4.6.49.9999.ebuild
+++ b/kde-base/pykde4/pykde4-4.6.49.9999.ebuild
@@ -4,26 +4,30 @@
EAPI=3
-KMNAME="kdebindings"
-if [[ ${PV} != *9999 ]]; then
- KMMODULE="python/pykde4"
-else
- # HACK HACK HACK
- KMMODULE="."
-fi
-OPENGL_REQUIRED="always"
+PYTHON_DEPEND="*:2.5"
+RESTRICT_PYTHON_ABIS="*-jython 2.4"
PYTHON_USE_WITH="threads"
-RESTRICT_PYTHON_ABIS="2.4"
+SUPPORT_PYTHON_ABIS="1"
+
+OPENGL_REQUIRED="always"
KDE_SCM="git"
-EGIT_REPONAME="pykde4"
-inherit python kde4-meta
+if [[ ${PV} == *9999 ]]; then
+ KMMODULE="."
+ kde_eclass="kde4-base"
+else
+ KMNAME="kdebindings"
+ KMMODULE="python/pykde4"
+ kde_eclass="kde4-meta"
+fi
+
+inherit python portability ${kde_eclass}
DESCRIPTION="Python bindings for KDE4"
KEYWORDS=""
IUSE="debug doc examples semantic-desktop"
# blocker added due to compatibility issues and error during compile time
-DEPEND="
+RDEPEND="
!dev-python/pykde
>=dev-python/sip-4.12
$(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
@@ -31,17 +35,34 @@ DEPEND="
aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
!aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
"
-RDEPEND="${DEPEND}"
+DEPEND="${RDEPEND}
+ sys-devel/libtool
+"
-PATCHES=( "${FILESDIR}/${PN}-4.6.4-pyqt475.patch" )
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.6.4-pyqt475.patch
+ "${FILESDIR}"/${PN}-4.6.3-python-3.2.patch
+)
pkg_setup() {
python_pkg_setup
- kde4-meta_pkg_setup
+ ${kde_eclass}_pkg_setup
+
+ have_python2=false
+
+ scan_python_versions() {
+ [[ ${PYTHON_ABI} == 2.* ]] && have_python2=true
+ :
+ }
+ python_execute_function -q scan_python_versions
+ if ! ${have_python2}; then
+ ewarn "You do not have a Python 2 version selected."
+ ewarn "kpythonpluginfactory will not be built"
+ fi
}
src_prepare() {
- kde4-meta_src_prepare
+ ${kde_eclass}_src_prepare
if ! use examples; then
sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i ${KMMODULE}/CMakeLists.txt \
@@ -50,33 +71,89 @@ src_prepare() {
# See bug 322351
use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
+
+ sed -i -e 's/kpythonpluginfactory /kpython${PYTHON_SHORT_VERSION}pluginfactory /g' ${KMMODULE}/kpythonpluginfactory/CMakeLists.txt
+
+ if ${have_python2}; then
+ mkdir -p "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ cp "${FILESDIR}/kpythonpluginfactorywrapper.c" "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ fi
}
src_configure() {
# Required for KTabWidget::label
append-cxxflags -DKDE3_SUPPORT
- mycmakeargs=(
- -DWITH_PolkitQt=OFF
- -DWITH_QScintilla=OFF
- $(cmake-utils_use_with semantic-desktop Soprano)
- $(cmake-utils_use_with semantic-desktop Nepomuk)
- $(cmake-utils_use_with semantic-desktop KdepimLibs)
- )
+ configuration() {
+ local mycmakeargs=(
+ -DWITH_PolkitQt=OFF
+ -DWITH_QScintilla=OFF
+ $(cmake-utils_use_with semantic-desktop Soprano)
+ $(cmake-utils_use_with semantic-desktop Nepomuk)
+ $(cmake-utils_use_with semantic-desktop KdepimLibs)
+ -DPYTHON_EXECUTABLE=$(PYTHON -a)
+ )
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ ${kde_eclass}_src_configure
+ }
+
+ python_execute_function configuration
+}
+
+echo_and_run() {
+ echo "$@"
+ "$@"
+}
- kde4-meta_src_configure
+src_compile() {
+ compilation() {
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ ${kde_eclass}_src_compile
+ }
+ python_execute_function compilation
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --tag=CC --mode=compile $(tc-getCC) \
+ -shared \
+ ${CFLAGS} ${CPPFLAGS} \
+ -DEPREFIX="\"${EPREFIX}\"" \
+ -DPLUGIN_DIR="\"/usr/$(get_libdir)/kde4\"" -c \
+ -o kpythonpluginfactorywrapper.lo \
+ kpythonpluginfactorywrapper.c
+ echo_and_run libtool --tag=CC --mode=link $(tc-getCC) \
+ -shared -module -avoid-version \
+ ${CFLAGS} ${LDFLAGS} \
+ -o kpythonpluginfactory.la \
+ -rpath "${EPREFIX}/usr/$(get_libdir)/kde4" \
+ kpythonpluginfactorywrapper.lo \
+ $(dlopen_lib)
+ fi
}
src_install() {
- use doc && HTML_DOCS=("${S}/${KMMODULE}/docs/html/")
+ installation() {
+ cd "${S}_build-${PYTHON_ABI}"
+ emake DESTDIR="${T}/images/${PYTHON_ABI}" install || die "emake install failed for Python ${PYTHON_ABI}"
+ }
+ python_execute_function installation
- kde4-meta_src_install
+ python_merge_intermediate_installation_images "${T}/images/${PYTHON_ABI}"
- python_convert_shebangs -q -r $(python_get_version) "${ED}"
+ # As we don't call the eclass's src_install, we have to install the docs manually
+ DOCS=("${S}"/${KMMODULE}/{AUTHORS,NEWS,README})
+ use doc && HTML_DOCS=("${S}/${KMMODULE}/docs/html/")
+ base_src_install_docs
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --mode=install install kpythonpluginfactory.la "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ rm "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ fi
}
pkg_postinst() {
- kde4-meta_pkg_postinst
+ ${kde_eclass}_pkg_postinst
python_mod_optimize PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
@@ -89,7 +166,7 @@ pkg_postinst() {
}
pkg_postrm() {
- kde4-meta_pkg_postrm
+ ${kde_eclass}_pkg_postrm
python_mod_cleanup PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
}
diff --git a/kde-base/pykde4/pykde4-4.6.5-r1.ebuild b/kde-base/pykde4/pykde4-4.6.5-r1.ebuild
new file mode 100644
index 00000000000..1116d8cf4e3
--- /dev/null
+++ b/kde-base/pykde4/pykde4-4.6.5-r1.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+
+PYTHON_DEPEND="*:2.5"
+RESTRICT_PYTHON_ABIS="*-jython 2.4"
+PYTHON_USE_WITH="threads"
+SUPPORT_PYTHON_ABIS="1"
+
+OPENGL_REQUIRED="always"
+KDE_SCM="git"
+if [[ ${PV} == *9999 ]]; then
+ KMMODULE="."
+ kde_eclass="kde4-base"
+else
+ KMNAME="kdebindings"
+ KMMODULE="python/pykde4"
+ kde_eclass="kde4-meta"
+fi
+
+inherit python portability ${kde_eclass}
+
+DESCRIPTION="Python bindings for KDE4"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc examples semantic-desktop"
+
+# blocker added due to compatibility issues and error during compile time
+RDEPEND="
+ !dev-python/pykde
+ >=dev-python/sip-4.12
+ $(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
+ semantic-desktop? ( $(add_kdebase_dep kdepimlibs 'semantic-desktop') )
+ aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
+ !aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
+"
+DEPEND="${RDEPEND}
+ sys-devel/libtool
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.6.4-pyqt475.patch
+ "${FILESDIR}"/${PN}-4.6.3-python-3.2.patch
+)
+
+pkg_setup() {
+ python_pkg_setup
+ ${kde_eclass}_pkg_setup
+
+ have_python2=false
+
+ scan_python_versions() {
+ [[ ${PYTHON_ABI} == 2.* ]] && have_python2=true
+ :
+ }
+ python_execute_function -q scan_python_versions
+ if ! ${have_python2}; then
+ ewarn "You do not have a Python 2 version selected."
+ ewarn "kpythonpluginfactory will not be built"
+ fi
+}
+
+src_prepare() {
+ ${kde_eclass}_src_prepare
+
+ if ! use examples; then
+ sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i ${KMMODULE}/CMakeLists.txt \
+ || die "Failed to disable examples"
+ fi
+
+ # See bug 322351
+ use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
+
+ sed -i -e 's/kpythonpluginfactory /kpython${PYTHON_SHORT_VERSION}pluginfactory /g' ${KMMODULE}/kpythonpluginfactory/CMakeLists.txt
+
+ if ${have_python2}; then
+ mkdir -p "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ cp "${FILESDIR}/kpythonpluginfactorywrapper.c" "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ fi
+}
+
+src_configure() {
+ # Required for KTabWidget::label
+ append-cxxflags -DKDE3_SUPPORT
+
+ configuration() {
+ local mycmakeargs=(
+ -DWITH_PolkitQt=OFF
+ -DWITH_QScintilla=OFF
+ $(cmake-utils_use_with semantic-desktop Soprano)
+ $(cmake-utils_use_with semantic-desktop Nepomuk)
+ $(cmake-utils_use_with semantic-desktop KdepimLibs)
+ -DPYTHON_EXECUTABLE=$(PYTHON -a)
+ )
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ ${kde_eclass}_src_configure
+ }
+
+ python_execute_function configuration
+}
+
+echo_and_run() {
+ echo "$@"
+ "$@"
+}
+
+src_compile() {
+ compilation() {
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ ${kde_eclass}_src_compile
+ }
+ python_execute_function compilation
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --tag=CC --mode=compile $(tc-getCC) \
+ -shared \
+ ${CFLAGS} ${CPPFLAGS} \
+ -DEPREFIX="\"${EPREFIX}\"" \
+ -DPLUGIN_DIR="\"/usr/$(get_libdir)/kde4\"" -c \
+ -o kpythonpluginfactorywrapper.lo \
+ kpythonpluginfactorywrapper.c
+ echo_and_run libtool --tag=CC --mode=link $(tc-getCC) \
+ -shared -module -avoid-version \
+ ${CFLAGS} ${LDFLAGS} \
+ -o kpythonpluginfactory.la \
+ -rpath "${EPREFIX}/usr/$(get_libdir)/kde4" \
+ kpythonpluginfactorywrapper.lo \
+ $(dlopen_lib)
+ fi
+}
+
+src_install() {
+ installation() {
+ cd "${S}_build-${PYTHON_ABI}"
+ emake DESTDIR="${T}/images/${PYTHON_ABI}" install || die "emake install failed for Python ${PYTHON_ABI}"
+ }
+ python_execute_function installation
+
+ python_merge_intermediate_installation_images "${T}/images/${PYTHON_ABI}"
+
+ # As we don't call the eclass's src_install, we have to install the docs manually
+ DOCS=("${S}"/${KMMODULE}/{AUTHORS,NEWS,README})
+ use doc && HTML_DOCS=("${S}/${KMMODULE}/docs/html/")
+ base_src_install_docs
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --mode=install install kpythonpluginfactory.la "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ rm "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ fi
+}
+
+pkg_postinst() {
+ ${kde_eclass}_pkg_postinst
+
+ python_mod_optimize PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
+
+ if use examples; then
+ echo
+ elog "PyKDE4 examples have been installed to"
+ elog "${EPREFIX}/usr/share/apps/${PN}/examples"
+ echo
+ fi
+}
+
+pkg_postrm() {
+ ${kde_eclass}_pkg_postrm
+
+ python_mod_cleanup PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
+}
diff --git a/kde-base/pykde4/pykde4-4.6.5.ebuild b/kde-base/pykde4/pykde4-4.6.5.ebuild
deleted file mode 100644
index 259f04c622b..00000000000
--- a/kde-base/pykde4/pykde4-4.6.5.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=3
-
-KMNAME="kdebindings"
-if [[ ${PV} != *9999 ]]; then
- KMMODULE="python/pykde4"
-else
- # HACK HACK HACK
- KMMODULE="."
-fi
-OPENGL_REQUIRED="always"
-PYTHON_USE_WITH="threads"
-RESTRICT_PYTHON_ABIS="2.4"
-KDE_SCM="git"
-EGIT_REPONAME="pykde4"
-inherit python kde4-meta
-
-DESCRIPTION="Python bindings for KDE4"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug doc examples semantic-desktop"
-
-# blocker added due to compatibility issues and error during compile time
-DEPEND="
- !dev-python/pykde
- >=dev-python/sip-4.12
- $(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
- semantic-desktop? ( $(add_kdebase_dep kdepimlibs 'semantic-desktop') )
- aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
- !aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
-"
-RDEPEND="${DEPEND}"
-
-PATCHES=( "${FILESDIR}/${PN}-4.6.4-pyqt475.patch" )
-
-pkg_setup() {
- python_pkg_setup
- kde4-meta_pkg_setup
-}
-
-src_prepare() {
- kde4-meta_src_prepare
-
- if ! use examples; then
- sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i ${KMMODULE}/CMakeLists.txt \
- || die "Failed to disable examples"
- fi
-
- # See bug 322351
- use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
-}
-
-src_configure() {
- # Required for KTabWidget::label
- append-cxxflags -DKDE3_SUPPORT
-
- mycmakeargs=(
- -DWITH_PolkitQt=OFF
- -DWITH_QScintilla=OFF
- $(cmake-utils_use_with semantic-desktop Soprano)
- $(cmake-utils_use_with semantic-desktop Nepomuk)
- $(cmake-utils_use_with semantic-desktop KdepimLibs)
- )
-
- kde4-meta_src_configure
-}
-
-src_install() {
- use doc && HTML_DOCS=("${S}/${KMMODULE}/docs/html/")
-
- kde4-meta_src_install
-
- python_convert_shebangs -q -r $(python_get_version) "${ED}"
-}
-
-pkg_postinst() {
- kde4-meta_pkg_postinst
-
- python_mod_optimize PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
-
- if use examples; then
- echo
- elog "PyKDE4 examples have been installed to"
- elog "${EPREFIX}/usr/share/apps/${PN}/examples"
- echo
- fi
-}
-
-pkg_postrm() {
- kde4-meta_pkg_postrm
-
- python_mod_cleanup PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
-}
diff --git a/kde-base/pykde4/pykde4-4.6.90-r1.ebuild b/kde-base/pykde4/pykde4-4.6.90-r1.ebuild
new file mode 100644
index 00000000000..ac84026d0d0
--- /dev/null
+++ b/kde-base/pykde4/pykde4-4.6.90-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+
+PYTHON_DEPEND="*:2.5"
+RESTRICT_PYTHON_ABIS="*-jython 2.4"
+PYTHON_USE_WITH="threads"
+SUPPORT_PYTHON_ABIS="1"
+
+OPENGL_REQUIRED="always"
+KDE_SCM="git"
+inherit python portability kde4-base
+
+DESCRIPTION="Python bindings for KDE4"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc examples semantic-desktop"
+
+# blocker added due to compatibility issues and error during compile time
+RDEPEND="
+ !dev-python/pykde
+ >=dev-python/sip-4.12
+ $(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
+ semantic-desktop? ( $(add_kdebase_dep kdepimlibs 'semantic-desktop') )
+ aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
+ !aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
+"
+DEPEND="${RDEPEND}
+ sys-devel/libtool
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.6.3-python-3.2.patch
+)
+
+pkg_setup() {
+ python_pkg_setup
+ kde4-base_pkg_setup
+
+ have_python2=false
+
+ scan_python_versions() {
+ [[ ${PYTHON_ABI} == 2.* ]] && have_python2=true
+ :
+ }
+ python_execute_function -q scan_python_versions
+ if ! ${have_python2}; then
+ ewarn "You do not have a Python 2 version selected."
+ ewarn "kpythonpluginfactory will not be built"
+ fi
+}
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ if ! use examples; then
+ sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i CMakeLists.txt \
+ || die "Failed to disable examples"
+ fi
+
+ # See bug 322351
+ use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
+
+ sed -i -e 's/kpythonpluginfactory /kpython${PYTHON_SHORT_VERSION}pluginfactory /g' kpythonpluginfactory/CMakeLists.txt
+
+ if ${have_python2}; then
+ mkdir -p "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ cp "${FILESDIR}/kpythonpluginfactorywrapper.c" "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ fi
+}
+
+src_configure() {
+ configuration() {
+ local mycmakeargs=(
+ -DWITH_PolkitQt=OFF
+ -DWITH_QScintilla=OFF
+ $(cmake-utils_use_with semantic-desktop Soprano)
+ $(cmake-utils_use_with semantic-desktop Nepomuk)
+ $(cmake-utils_use_with semantic-desktop KdepimLibs)
+ -DPYTHON_EXECUTABLE=$(PYTHON -a)
+ )
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ kde4-base_src_configure
+ }
+
+ python_execute_function configuration
+}
+
+echo_and_run() {
+ echo "$@"
+ "$@"
+}
+
+src_compile() {
+ compilation() {
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ kde4-base_src_compile
+ }
+ python_execute_function compilation
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --tag=CC --mode=compile $(tc-getCC) \
+ -shared \
+ ${CFLAGS} ${CPPFLAGS} \
+ -DEPREFIX="\"${EPREFIX}\"" \
+ -DPLUGIN_DIR="\"/usr/$(get_libdir)/kde4\"" -c \
+ -o kpythonpluginfactorywrapper.lo \
+ kpythonpluginfactorywrapper.c
+ echo_and_run libtool --tag=CC --mode=link $(tc-getCC) \
+ -shared -module -avoid-version \
+ ${CFLAGS} ${LDFLAGS} \
+ -o kpythonpluginfactory.la \
+ -rpath "${EPREFIX}/usr/$(get_libdir)/kde4" \
+ kpythonpluginfactorywrapper.lo \
+ $(dlopen_lib)
+ fi
+}
+
+src_install() {
+ installation() {
+ cd "${S}_build-${PYTHON_ABI}"
+ emake DESTDIR="${T}/images/${PYTHON_ABI}" install || die "emake install failed for Python ${PYTHON_ABI}"
+ }
+ python_execute_function installation
+
+ python_merge_intermediate_installation_images "${T}/images/${PYTHON_ABI}"
+
+ # As we don't call the eclass's src_install, we have to install the docs manually
+ DOCS=("${S}"/{AUTHORS,NEWS,README})
+ use doc && HTML_DOCS=("${S}/docs/html/")
+ base_src_install_docs
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --mode=install install kpythonpluginfactory.la "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ rm "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ fi
+}
+
+pkg_postinst() {
+ kde4-base_pkg_postinst
+
+ python_mod_optimize PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
+
+ if use examples; then
+ echo
+ elog "PyKDE4 examples have been installed to"
+ elog "${EPREFIX}/usr/share/apps/${PN}/examples"
+ echo
+ fi
+}
+
+pkg_postrm() {
+ kde4-base_pkg_postrm
+
+ python_mod_cleanup PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
+}
diff --git a/kde-base/pykde4/pykde4-4.6.90.ebuild b/kde-base/pykde4/pykde4-4.6.90.ebuild
deleted file mode 100644
index 4988bf829f4..00000000000
--- a/kde-base/pykde4/pykde4-4.6.90.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=3
-
-OPENGL_REQUIRED="always"
-PYTHON_USE_WITH="threads"
-RESTRICT_PYTHON_ABIS="2.4"
-KDE_SCM="git"
-EGIT_REPONAME="pykde4"
-inherit python kde4-base
-
-DESCRIPTION="Python bindings for KDE4"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="debug doc examples semantic-desktop"
-
-# blocker added due to compatibility issues and error during compile time
-DEPEND="
- !dev-python/pykde
- >=dev-python/sip-4.12
- $(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
- semantic-desktop? ( $(add_kdebase_dep kdepimlibs 'semantic-desktop') )
- aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
- !aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
-"
-RDEPEND="${DEPEND}"
-
-pkg_setup() {
- python_pkg_setup
- kde4-base_pkg_setup
-}
-
-src_prepare() {
- kde4-base_src_prepare
-
- if ! use examples; then
- sed -e '/^ADD_SUBDIRECTORY(examples)/s/^/# DISABLED /' -i CMakeLists.txt \
- || die "Failed to disable examples"
- fi
-
- # See bug 322351
- use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
-}
-
-src_configure() {
- # Required for KTabWidget::label
- append-cxxflags -DKDE3_SUPPORT
-
- mycmakeargs=(
- -DWITH_PolkitQt=OFF
- -DWITH_QScintilla=OFF
- $(cmake-utils_use_with semantic-desktop Soprano)
- $(cmake-utils_use_with semantic-desktop Nepomuk)
- $(cmake-utils_use_with semantic-desktop KdepimLibs)
- )
-
- kde4-base_src_configure
-}
-
-src_install() {
- use doc && HTML_DOCS=("${S}/docs/html/")
-
- kde4-base_src_install
-
- python_convert_shebangs -q -r $(python_get_version) "${ED}"
-}
-
-pkg_postinst() {
- kde4-base_pkg_postinst
-
- python_mod_optimize PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
-
- if use examples; then
- echo
- elog "PyKDE4 examples have been installed to"
- elog "${EPREFIX}/usr/share/apps/${PN}/examples"
- echo
- fi
-}
-
-pkg_postrm() {
- kde4-base_pkg_postrm
-
- python_mod_cleanup PyKDE4 PyQt4/uic/pykdeuic4.py PyQt4/uic/widget-plugins/kde4.py
-}
diff --git a/kde-base/pykde4/pykde4-4.7.49.9999.ebuild b/kde-base/pykde4/pykde4-4.7.49.9999.ebuild
index b3ce2143ba3..edee11c3f00 100644
--- a/kde-base/pykde4/pykde4-4.7.49.9999.ebuild
+++ b/kde-base/pykde4/pykde4-4.7.49.9999.ebuild
@@ -4,19 +4,21 @@
EAPI=3
-OPENGL_REQUIRED="always"
+PYTHON_DEPEND="*:2.5"
+RESTRICT_PYTHON_ABIS="*-jython 2.4"
PYTHON_USE_WITH="threads"
-RESTRICT_PYTHON_ABIS="2.4"
+SUPPORT_PYTHON_ABIS="1"
+
+OPENGL_REQUIRED="always"
KDE_SCM="git"
-EGIT_REPONAME="pykde4"
-inherit python kde4-base
+inherit python portability kde4-base
DESCRIPTION="Python bindings for KDE4"
KEYWORDS=""
IUSE="debug doc examples semantic-desktop"
# blocker added due to compatibility issues and error during compile time
-DEPEND="
+RDEPEND="
!dev-python/pykde
>=dev-python/sip-4.12
$(add_kdebase_dep kdelibs 'opengl,semantic-desktop=')
@@ -24,11 +26,29 @@ DEPEND="
aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,aqua] )
!aqua? ( >=dev-python/PyQt4-4.8.2[dbus,declarative,sql,svg,webkit,X] )
"
-RDEPEND="${DEPEND}"
+DEPEND="${RDEPEND}
+ sys-devel/libtool
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.6.3-python-3.2.patch
+)
pkg_setup() {
python_pkg_setup
kde4-base_pkg_setup
+
+ have_python2=false
+
+ scan_python_versions() {
+ [[ ${PYTHON_ABI} == 2.* ]] && have_python2=true
+ :
+ }
+ python_execute_function -q scan_python_versions
+ if ! ${have_python2}; then
+ ewarn "You do not have a Python 2 version selected."
+ ewarn "kpythonpluginfactory will not be built"
+ fi
}
src_prepare() {
@@ -41,29 +61,82 @@ src_prepare() {
# See bug 322351
use arm && epatch "${FILESDIR}/${PN}-4.4.4-arm-sip.patch"
+
+ sed -i -e 's/kpythonpluginfactory /kpython${PYTHON_SHORT_VERSION}pluginfactory /g' kpythonpluginfactory/CMakeLists.txt
+
+ if ${have_python2}; then
+ mkdir -p "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ cp "${FILESDIR}/kpythonpluginfactorywrapper.c" "${WORKDIR}/wrapper" || die "failed to copy wrapper"
+ fi
}
src_configure() {
- # Required for KTabWidget::label
- append-cxxflags -DKDE3_SUPPORT
-
- mycmakeargs=(
- -DWITH_PolkitQt=OFF
- -DWITH_QScintilla=OFF
- $(cmake-utils_use_with semantic-desktop Soprano)
- $(cmake-utils_use_with semantic-desktop Nepomuk)
- $(cmake-utils_use_with semantic-desktop KdepimLibs)
- )
-
- kde4-base_src_configure
+ configuration() {
+ local mycmakeargs=(
+ -DWITH_PolkitQt=OFF
+ -DWITH_QScintilla=OFF
+ $(cmake-utils_use_with semantic-desktop Soprano)
+ $(cmake-utils_use_with semantic-desktop Nepomuk)
+ $(cmake-utils_use_with semantic-desktop KdepimLibs)
+ -DPYTHON_EXECUTABLE=$(PYTHON -a)
+ )
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ kde4-base_src_configure
+ }
+
+ python_execute_function configuration
+}
+
+echo_and_run() {
+ echo "$@"
+ "$@"
+}
+
+src_compile() {
+ compilation() {
+ local CMAKE_BUILD_DIR=${S}_build-${PYTHON_ABI}
+ kde4-base_src_compile
+ }
+ python_execute_function compilation
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --tag=CC --mode=compile $(tc-getCC) \
+ -shared \
+ ${CFLAGS} ${CPPFLAGS} \
+ -DEPREFIX="\"${EPREFIX}\"" \
+ -DPLUGIN_DIR="\"/usr/$(get_libdir)/kde4\"" -c \
+ -o kpythonpluginfactorywrapper.lo \
+ kpythonpluginfactorywrapper.c
+ echo_and_run libtool --tag=CC --mode=link $(tc-getCC) \
+ -shared -module -avoid-version \
+ ${CFLAGS} ${LDFLAGS} \
+ -o kpythonpluginfactory.la \
+ -rpath "${EPREFIX}/usr/$(get_libdir)/kde4" \
+ kpythonpluginfactorywrapper.lo \
+ $(dlopen_lib)
+ fi
}
src_install() {
- use doc && HTML_DOCS=("${S}/docs/html/")
+ installation() {
+ cd "${S}_build-${PYTHON_ABI}"
+ emake DESTDIR="${T}/images/${PYTHON_ABI}" install || die "emake install failed for Python ${PYTHON_ABI}"
+ }
+ python_execute_function installation
- kde4-base_src_install
+ python_merge_intermediate_installation_images "${T}/images/${PYTHON_ABI}"
- python_convert_shebangs -q -r $(python_get_version) "${ED}"
+ # As we don't call the eclass's src_install, we have to install the docs manually
+ DOCS=("${S}"/{AUTHORS,NEWS,README})
+ use doc && HTML_DOCS=("${S}/docs/html/")
+ base_src_install_docs
+
+ if ${have_python2}; then
+ cd "${WORKDIR}/wrapper"
+ echo_and_run libtool --mode=install install kpythonpluginfactory.la "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ rm "${ED}/usr/$(get_libdir)/kde4/kpythonpluginfactory.la"
+ fi
}
pkg_postinst() {
diff --git a/kde-base/pykde4/pykde4-9999.ebuild b/kde-base/pykde4/pykde4-9999.ebuild
index b3ce2143ba3..edee11c3f00 100644
--- a/kde-base/pykde4/pykde4-9999.ebuild
+++ b/kde-base/pykde4/pykde4-9999.ebuild
@@ -4,19 +4,21 @@
EAPI=3
-OPENGL_REQUIRED="always"
+PYTHON_DEPEND="*:2.5"
+RESTRICT_PYTHON_ABIS="*-jython 2.4"
PYTHON_USE_WITH="threads"
-RESTRICT_PYTHON_ABIS="2.4"
+SUPPORT_PYTHON_ABIS="1"
+
+OPENGL_REQUIRED="always"
KDE_SCM="git"
-EGIT_REPONAME="pykde4"
-inherit python kde4-base
+inherit python portability kde4-base
DESCRIPTION="Python