changeset 370:f4ed803dfb89

add a stable PyQt ebuild that is aware of python 3.4
author Dirk Olmes <dirk@xanthippe.ping.de>
date Mon, 24 Nov 2014 10:57:24 +0100
parents 9f4198a86b7d
children 08cf4b4c2316
files dev-python/PyQt4/Manifest dev-python/PyQt4/PyQt4-4.10.3-r3.ebuild
diffstat 2 files changed, 209 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev-python/PyQt4/Manifest	Mon Nov 24 10:57:24 2014 +0100
@@ -0,0 +1,2 @@
+DIST PyQt-x11-gpl-4.10.3.tar.gz 11187362 SHA256 a713bebef394213b2c9e1fe0cad5699b869dc356bba50766e069013eba8bf630 SHA512 4edd3539e1855bc3358dcba866433e53d4b9444b867c14cc27115cf5a6c123b0af3bb0bae3085f6d71a31f0b6716da40809ac4ffcaaff415673ed7462f1a0420 WHIRLPOOL 675e324993e8f9a3b2a0a8975c9f1e2af9cd315073a68e6649a8de04e8e8a905d756be2c138a8c19b4ec16a75c7b118b32a3ffc27f8399953599a1b88ac76fad
+EBUILD PyQt4-4.10.3-r3.ebuild 5665 SHA256 fa81b8b8025688893e4a96f376a908138e941c3d835794e5b198e30fb844dffe SHA512 1b79f3953169d87a43c553c0b5548b19ea7cf08e73b201604df4873bab270fe1dd6c5a5036149333e72846eb5bb40af9df44327f3b7a66b5b22fde9de25b5ebe WHIRLPOOL 30a2ebcfd27d620425ffb7ed3a9069a9071727d8a278e05ca55112b4eaef19880326f472f58e726eb2a8fe5e2a5735f2c67574092d7490146547743788bcf0fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev-python/PyQt4/PyQt4-4.10.3-r3.ebuild	Mon Nov 24 10:57:24 2014 +0100
@@ -0,0 +1,207 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/PyQt4/PyQt4-4.10.3-r2.ebuild,v 1.11 2014/05/30 20:55:20 pesa Exp $
+
+EAPI=5
+PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3,3_4} )
+
+inherit eutils python-r1 qmake-utils toolchain-funcs
+
+DESCRIPTION="Python bindings for the Qt toolkit"
+HOMEPAGE="http://www.riverbankcomputing.co.uk/software/pyqt/intro/ https://pypi.python.org/pypi/PyQt4"
+
+if [[ ${PV} == *_pre* ]]; then
+	MY_P="PyQt-x11-gpl-snapshot-${PV%_pre*}-${REVISION}"
+	SRC_URI="http://dev.gentoo.org/~hwoarang/distfiles/${MY_P}.tar.gz"
+else
+	MY_P="PyQt-x11-gpl-${PV}"
+	SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+
+IUSE="X dbus debug declarative designer doc examples help kde multimedia opengl phonon script scripttools sql svg webkit xmlpatterns"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	declarative? ( X )
+	designer? ( X )
+	help? ( X )
+	multimedia? ( X )
+	opengl? ( X )
+	phonon? ( X )
+	scripttools? ( X script )
+	sql? ( X )
+	svg? ( X )
+	webkit? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.0:4"
+
+RDEPEND="
+	${PYTHON_DEPS}
+	dev-lang/python-exec:2[${PYTHON_USEDEP}]
+	=dev-python/sip-4.15*:=[${PYTHON_USEDEP}]
+	>=dev-qt/qtcore-${QT_PV}
+	X? (
+		>=dev-qt/qtgui-${QT_PV}
+		>=dev-qt/qttest-${QT_PV}
+	)
+	dbus? (
+		>=dev-python/dbus-python-0.80[${PYTHON_USEDEP}]
+		>=dev-qt/qtdbus-${QT_PV}
+	)
+	declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+	designer? ( || ( dev-qt/designer:4 <dev-qt/qtgui-4.8.5:4 ) )
+	help? ( >=dev-qt/qthelp-${QT_PV} )
+	multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+	opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+	phonon? (
+		kde? ( media-libs/phonon )
+		!kde? ( || ( >=dev-qt/qtphonon-${QT_PV} media-libs/phonon ) )
+	)
+	script? ( >=dev-qt/qtscript-${QT_PV} )
+	sql? ( >=dev-qt/qtsql-${QT_PV} )
+	svg? ( >=dev-qt/qtsvg-${QT_PV} )
+	webkit? ( >=dev-qt/qtwebkit-${QT_PV} )
+	xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+	dbus? ( virtual/pkgconfig )
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+	# Support qreal on arm architecture (bug 322349).
+	use arm && epatch "${FILESDIR}/${PN}-4.7.3-qreal_float_support.patch"
+
+	# Allow building against KDE's phonon (bug 433944 and others).
+	sed -i \
+		-e "s:VideoWidget()\":&, extra_include_dirs=[\"${EPREFIX}/usr/include/qt4/QtGui\"]:" \
+		-e "s:^\s\+generate_code(\"phonon\":&, extra_include_dirs=[\"${EPREFIX}/usr/include/phonon\"]:" \
+		configure.py || die
+
+	if ! use dbus; then
+		sed -i -e 's/^\(\s\+\)check_dbus()/\1pass/' configure.py || die
+	fi
+
+	python_copy_sources
+
+	preparation() {
+		if [[ ${EPYTHON} == python3.* ]]; then
+			rm -fr pyuic/uic/port_v2
+		else
+			rm -fr pyuic/uic/port_v3
+		fi
+	}
+	python_foreach_impl run_in_build_dir preparation
+}
+
+pyqt4_use_enable() {
+	use $1 && echo --enable=${2:-Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}}
+}
+
+src_configure() {
+	configuration() {
+		local myconf=(
+			"${PYTHON}" configure.py
+			--confirm-license
+			--bindir="${EPREFIX}/usr/bin"
+			--destdir="$(python_get_sitedir)"
+			--sipdir="${EPREFIX}/usr/share/sip"
+			--assume-shared
+			--no-timestamp
+			--qsci-api
+			$(use debug && echo --debug)
+			--enable=QtCore
+			--enable=QtNetwork
+			--enable=QtXml
+			$(pyqt4_use_enable X QtGui)
+			$(pyqt4_use_enable X QtTest)
+			$(pyqt4_use_enable dbus QtDBus)
+			$(pyqt4_use_enable declarative)
+			$(pyqt4_use_enable designer) $(use designer || echo --no-designer-plugin)
+			$(pyqt4_use_enable help)
+			$(pyqt4_use_enable multimedia)
+			$(pyqt4_use_enable opengl QtOpenGL)
+			$(pyqt4_use_enable phonon phonon)
+			$(pyqt4_use_enable script)
+			$(pyqt4_use_enable scripttools QtScriptTools)
+			$(pyqt4_use_enable sql)
+			$(pyqt4_use_enable svg)
+			$(pyqt4_use_enable webkit QtWebKit)
+			$(pyqt4_use_enable xmlpatterns QtXmlPatterns)
+			AR="$(tc-getAR) cqs"
+			CC="$(tc-getCC)"
+			CFLAGS="${CFLAGS}"
+			CFLAGS_RELEASE=
+			CXX="$(tc-getCXX)"
+			CXXFLAGS="${CXXFLAGS}"
+			CXXFLAGS_RELEASE=
+			LINK="$(tc-getCXX)"
+			LINK_SHLIB="$(tc-getCXX)"
+			LFLAGS="${LDFLAGS}"
+			LFLAGS_RELEASE=
+			RANLIB=
+			STRIP=
+		)
+		echo "${myconf[@]}"
+		"${myconf[@]}" || die
+
+		local mod
+		for mod in QtCore \
+				$(use X && echo QtGui) \
+				$(use dbus && echo QtDBus) \
+				$(use declarative && echo QtDeclarative) \
+				$(use designer && echo QtDesigner) \
+				$(use opengl && echo QtOpenGL); do
+			# Run eqmake4 inside the qpy subdirectories to respect
+			# CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS and avoid stripping.
+			pushd qpy/${mod} > /dev/null || return
+			eqmake4 $(ls w_qpy*.pro)
+			popd > /dev/null || return
+
+			# Fix insecure runpaths.
+			sed -i -e "/^LFLAGS\s*=/ s:-Wl,-rpath,${BUILD_DIR}/qpy/${mod}::" \
+				${mod}/Makefile || die "failed to fix rpath for ${mod}"
+		done
+
+		# Avoid stripping of libpythonplugin.so.
+		if use designer; then
+			pushd designer > /dev/null || return
+			eqmake4 python.pro
+			popd > /dev/null || return
+		fi
+	}
+	python_parallel_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+	python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+	installation() {
+		# INSTALL_ROOT is used by designer/Makefile, other Makefiles use DESTDIR.
+		emake DESTDIR="${D}" INSTALL_ROOT="${D}" install
+		mkdir -p "${ED}"/usr/lib/python-exec/${EPYTHON} || die
+		mv "${ED}"/usr/bin/pyuic4 "${ED}"/usr/lib/python-exec/${EPYTHON}/ || die
+		python_optimize
+	}
+	python_foreach_impl run_in_build_dir installation
+
+	dosym ../lib/python-exec/python-exec2 /usr/bin/pyuic4
+	dodoc NEWS THANKS
+
+	if use doc; then
+		dohtml -r doc/html/*
+	fi
+
+	if use examples; then
+		insinto /usr/share/doc/${PF}
+		doins -r examples
+	fi
+}