summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Pesavento <pesa@gentoo.org>2016-07-10 17:05:02 +0200
committerDavide Pesavento <pesa@gentoo.org>2016-07-10 17:58:54 +0200
commit0569b8570eb3acd5388438ca392b4b820dfd7f70 (patch)
tree2c5bba45a8d3bd42de14b289988ee8a583031d11 /dev-python
parentapp-arch/xar: marked ~x{86,64}-macos (diff)
downloadgentoo-0569b8570eb3acd5388438ca392b4b820dfd7f70.tar.gz
gentoo-0569b8570eb3acd5388438ca392b4b820dfd7f70.tar.bz2
gentoo-0569b8570eb3acd5388438ca392b4b820dfd7f70.zip
dev-python/PyQt4: introduce USE=compat to install deprecated pyqtconfig
A few PyQt4 revdeps still require the deprecated pyqtconfig module at build time. USE=compat re-enables the installation of pyqtconfig, so that those packages continue to build against newer versions of PyQt4. Gentoo-Bug: 526524 Gentoo-Bug: 527572 Gentoo-Bug: 536948 Package-Manager: portage-2.3.0
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild192
-rw-r--r--dev-python/PyQt4/PyQt4-4.12_pre1606101416-r1.ebuild (renamed from dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild)54
-rw-r--r--dev-python/PyQt4/metadata.xml1
3 files changed, 239 insertions, 8 deletions
diff --git a/dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild b/dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild
new file mode 100644
index 000000000000..da8bfd59df93
--- /dev/null
+++ b/dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 python3_{3,4,5} )
+
+inherit eutils multibuild python-r1 qmake-utils toolchain-funcs
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
+ https://pypi.python.org/pypi/PyQt4"
+
+MY_P=PyQt-x11-gpl-${PV/_pre/.dev}
+if [[ ${PV} == *_pre* ]]; then
+ SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz"
+else
+ SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="X compat dbus debug declarative designer doc examples help kde multimedia
+ opengl phonon script scripttools sql svg testlib webkit xmlpatterns"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ sql? ( X )
+ testlib? ( X )
+"
+
+# Minimal supported version of Qt.
+QT_PV="4.8.5:4"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=dev-python/sip-4.16.6:=[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-${QT_PV}
+ X? ( >=dev-qt/qtgui-${QT_PV} )
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ >=dev-qt/qtdbus-${QT_PV}
+ )
+ declarative? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ designer? ( >=dev-qt/designer-${QT_PV} )
+ help? ( >=dev-qt/qthelp-${QT_PV} )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ opengl? ( >=dev-qt/qtopengl-${QT_PV} )
+ phonon? (
+ kde? ( >=media-libs/phonon-4.7[qt4] )
+ !kde? ( || ( >=dev-qt/qtphonon-${QT_PV} >=media-libs/phonon-4.7[qt4] ) )
+ )
+ script? ( >=dev-qt/qtscript-${QT_PV} )
+ scripttools? ( >=dev-qt/qtgui-${QT_PV} )
+ sql? ( >=dev-qt/qtsql-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ testlib? ( >=dev-qt/qttest-${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 525354).
+ epatch "${FILESDIR}/${PN}-4.11.2-phonon.patch"
+}
+
+pyqt_run() {
+ echo "$@"
+ "${PYTHON}" "$@"
+}
+
+pyqt_use_enable() {
+ use "$1" || return
+
+ echo --enable=${2:-Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}}
+}
+
+src_configure() {
+ configuration() {
+ local myconf=(
+ $(usex debug '--debug --trace' '')
+ --verbose
+ --confirm-license
+ --qmake="$(qt4_get_bindir)"/qmake
+ --bindir="${EPREFIX}/usr/bin"
+ --destdir="$(python_get_sitedir)"
+ --qsci-api
+ --enable=QtCore
+ --enable=QtNetwork
+ --enable=QtXml
+ $(pyqt_use_enable X QtGui)
+ $(pyqt_use_enable dbus QtDBus)
+ $(pyqt_use_enable declarative)
+ $(pyqt_use_enable designer)
+ $(usex designer '' --no-designer-plugin)
+ $(pyqt_use_enable help)
+ $(pyqt_use_enable multimedia)
+ $(pyqt_use_enable opengl QtOpenGL)
+ $(pyqt_use_enable phonon phonon)
+ $(pyqt_use_enable script)
+ $(pyqt_use_enable scripttools QtScriptTools)
+ $(pyqt_use_enable sql)
+ $(pyqt_use_enable svg)
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable webkit QtWebKit)
+ $(pyqt_use_enable xmlpatterns QtXmlPatterns)
+ )
+
+ if use compat; then
+ local compat_build_dir=${BUILD_DIR%/}-compat
+ cp -Rp "${S}" "${compat_build_dir}" || die
+ pushd "${compat_build_dir}" >/dev/null || die
+
+ local mycompatconf=(
+ "${myconf[@]}"
+ 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=
+ )
+ pyqt_run configure.py "${mycompatconf[@]}" || die
+
+ popd >/dev/null || die
+ fi
+
+ myconf+=(
+ $(usex dbus '' --no-python-dbus)
+ )
+ pyqt_run "${S}"/configure-ng.py "${myconf[@]}" || die
+
+ eqmake4 -recursive ${PN}.pro
+ }
+ python_foreach_impl run_in_build_dir configuration
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir default
+}
+
+src_install() {
+ installation() {
+ local tmp_root=${D%/}/tmp
+ emake INSTALL_ROOT="${tmp_root}" install
+
+ local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic
+ if python_is_python3; then
+ rm -r "${uic_dir}"/port_v2 || die
+ else
+ rm -r "${uic_dir}"/port_v3 || die
+ fi
+
+ python_doexe "${tmp_root}${EPREFIX}"/usr/bin/pyuic4
+ rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic4 || die
+
+ multibuild_merge_root "${tmp_root}" "${D}"
+
+ if use compat; then
+ local compat_build_dir=${BUILD_DIR%/}-compat
+ python_moduleinto ${PN}
+ python_domodule "${compat_build_dir}"/pyqtconfig.py
+ fi
+
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir installation
+
+ dodoc ChangeLog NEWS THANKS
+ use doc && dodoc -r doc/html
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
diff --git a/dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild b/dev-python/PyQt4/PyQt4-4.12_pre1606101416-r1.ebuild
index 929d3d100337..aa0be0134c6a 100644
--- a/dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild
+++ b/dev-python/PyQt4/PyQt4-4.12_pre1606101416-r1.ebuild
@@ -5,7 +5,7 @@
EAPI=6
PYTHON_COMPAT=( python2_7 python3_{3,4,5} )
-inherit multibuild python-r1 qmake-utils
+inherit multibuild python-r1 qmake-utils toolchain-funcs
DESCRIPTION="Python bindings for the Qt framework"
HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/intro
@@ -22,7 +22,7 @@ LICENSE="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
+IUSE="X compat dbus debug declarative designer doc examples help kde multimedia
opengl phonon script scripttools sql svg testlib webkit xmlpatterns"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
@@ -78,6 +78,11 @@ src_prepare() {
default
}
+pyqt_run() {
+ echo "$@"
+ "${PYTHON}" "$@"
+}
+
pyqt_use_enable() {
use "$1" || return
@@ -87,22 +92,18 @@ pyqt_use_enable() {
src_configure() {
configuration() {
local myconf=(
- "${PYTHON}"
- "${S}"/configure-ng.py
$(usex debug '--debug --trace' '')
--verbose
--confirm-license
--qmake="$(qt4_get_bindir)"/qmake
--bindir="${EPREFIX}/usr/bin"
--destdir="$(python_get_sitedir)"
- --sip-incdir="$(python_get_includedir)"
--qsci-api
--enable=QtCore
--enable=QtNetwork
--enable=QtXml
$(pyqt_use_enable X QtGui)
$(pyqt_use_enable dbus QtDBus)
- $(usex dbus '' --no-python-dbus)
$(pyqt_use_enable declarative)
$(pyqt_use_enable designer)
$(usex designer '' --no-designer-plugin)
@@ -118,8 +119,38 @@ src_configure() {
$(pyqt_use_enable webkit QtWebKit)
$(pyqt_use_enable xmlpatterns QtXmlPatterns)
)
- echo "${myconf[@]}"
- "${myconf[@]}" || die
+
+ if use compat; then
+ local compat_build_dir=${BUILD_DIR%/}-compat
+ cp -Rp "${S}" "${compat_build_dir}" || die
+ pushd "${compat_build_dir}" >/dev/null || die
+
+ local mycompatconf=(
+ "${myconf[@]}"
+ 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=
+ )
+ pyqt_run configure.py "${mycompatconf[@]}" || die
+
+ popd >/dev/null || die
+ fi
+
+ myconf+=(
+ --sip-incdir="$(python_get_includedir)"
+ $(usex dbus '' --no-python-dbus)
+ )
+ pyqt_run "${S}"/configure-ng.py "${myconf[@]}" || die
eqmake4 -recursive ${PN}.pro
}
@@ -146,6 +177,13 @@ src_install() {
rm "${tmp_root}${EPREFIX}"/usr/bin/pyuic4 || die
multibuild_merge_root "${tmp_root}" "${D}"
+
+ if use compat; then
+ local compat_build_dir=${BUILD_DIR%/}-compat
+ python_moduleinto ${PN}
+ python_domodule "${compat_build_dir}"/pyqtconfig.py
+ fi
+
python_optimize
}
python_foreach_impl run_in_build_dir installation
diff --git a/dev-python/PyQt4/metadata.xml b/dev-python/PyQt4/metadata.xml
index 1c9b581c55e8..9fe84c585da5 100644
--- a/dev-python/PyQt4/metadata.xml
+++ b/dev-python/PyQt4/metadata.xml
@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="X">Build bindings for the QtGui module</flag>
+ <flag name="compat">Install the deprecated pyqtconfig module for backward compatibility</flag>
<flag name="dbus">Build bindings for the QtDBus module</flag>
<flag name="declarative">Build bindings for the QtDeclarative module</flag>
<flag name="designer">Build bindings for the QtDesigner module and enable the designer plugin</flag>