commit:     0569b8570eb3acd5388438ca392b4b820dfd7f70
Author:     Davide Pesavento <pesa <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 10 15:05:02 2016 +0000
Commit:     Davide Pesavento <pesa <AT> gentoo <DOT> org>
CommitDate: Sun Jul 10 15:58:54 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0569b857

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

 ...pre1606101416.ebuild => PyQt4-4.11.4-r1.ebuild} | 74 ++++++++++++++++------
 ...6.ebuild => PyQt4-4.12_pre1606101416-r1.ebuild} | 54 +++++++++++++---
 dev-python/PyQt4/metadata.xml                      |  1 +
 3 files changed, 100 insertions(+), 29 deletions(-)

diff --git a/dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild 
b/dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild
similarity index 71%
copy from dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild
copy to dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild
index 929d3d1..da8bfd5 100644
--- a/dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild
+++ b/dev-python/PyQt4/PyQt4-4.11.4-r1.ebuild
@@ -2,16 +2,16 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=6
+EAPI=5
 PYTHON_COMPAT=( python2_7 python3_{3,4,5} )
 
-inherit multibuild python-r1 qmake-utils
+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=${PN}_gpl_x11-${PV/_pre/.dev}
+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
@@ -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}
@@ -35,7 +35,7 @@ QT_PV="4.8.5:4"
 
 RDEPEND="
        ${PYTHON_DEPS}
-       >=dev-python/sip-4.18:=[${PYTHON_USEDEP}]
+       >=dev-python/sip-4.16.6:=[${PYTHON_USEDEP}]
        >=dev-qt/qtcore-${QT_PV}
        X? ( >=dev-qt/qtgui-${QT_PV} )
        dbus? (
@@ -65,17 +65,17 @@ DEPEND="${RDEPEND}
 
 S=${WORKDIR}/${MY_P}
 
-DOCS=( "${S}"/{ChangeLog,NEWS,THANKS} )
-PATCHES=(
-       # Allow building against KDE's phonon (bug 525354)
-       "${FILESDIR}/${PN}-4.11.2-phonon.patch"
-)
-
 src_prepare() {
-       # Support qreal on arm architecture (bug 322349)
-       use arm && 
PATCHES+=("${FILESDIR}/${PN}-4.7.3-qreal_float_support.patch")
+       # 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"
+}
 
-       default
+pyqt_run() {
+       echo "$@"
+       "${PYTHON}" "$@"
 }
 
 pyqt_use_enable() {
@@ -87,22 +87,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 +114,37 @@ 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+=(
+                       $(usex dbus '' --no-python-dbus)
+               )
+               pyqt_run "${S}"/configure-ng.py "${myconf[@]}" || die
 
                eqmake4 -recursive ${PN}.pro
        }
@@ -146,11 +171,18 @@ 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
 
-       einstalldocs
+       dodoc ChangeLog NEWS THANKS
        use doc && dodoc -r doc/html
 
        if use examples; then

diff --git a/dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild 
b/dev-python/PyQt4/PyQt4-4.12_pre1606101416-r1.ebuild
similarity index 79%
rename from dev-python/PyQt4/PyQt4-4.12_pre1606101416.ebuild
rename to dev-python/PyQt4/PyQt4-4.12_pre1606101416-r1.ebuild
index 929d3d1..aa0be01 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 1c9b581..9fe84c5 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>

Reply via email to