commit:     968fd2401643524b824134ffefd440ec42e24606
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 10 22:10:54 2023 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Mon Jul 10 23:04:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=968fd240

app-misc/gramps: switch from distutils-r1 to python-single-r1

Gramps uses a heavily customised distutils-based setup.py which was
already somewhat fragile while using the legacy distutils-r1 mode
and which simply does not work correctly in PEP-517 mode. Just let
python-single-r1 handle the plumbing and call setup.py directly
as needed. Not only does this mean one package less in the tree to
depend on the legacy distutils-r1 but in the end, not having to
make the custom setup.py play nicely with that eclass actually makes
the ebuilds a bit simpler.

Closes: https://bugs.gentoo.org/909880
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 ...{gramps-5.1.6.ebuild => gramps-5.1.6-r1.ebuild} | 49 +++++++---------------
 1 file changed, 16 insertions(+), 33 deletions(-)

diff --git a/app-misc/gramps/gramps-5.1.6.ebuild 
b/app-misc/gramps/gramps-5.1.6-r1.ebuild
similarity index 62%
rename from app-misc/gramps/gramps-5.1.6.ebuild
rename to app-misc/gramps/gramps-5.1.6-r1.ebuild
index 35795730b469..01e06e6e7b85 100644
--- a/app-misc/gramps/gramps-5.1.6.ebuild
+++ b/app-misc/gramps/gramps-5.1.6-r1.ebuild
@@ -3,13 +3,10 @@
 
 EAPI=8
 
-DISTUTILS_SINGLE_IMPL=1
-# Sadly, PEP-517 mode breaks both the test suite and the installation of some 
of the data files
-DISTUTILS_USE_SETUPTOOLS=no
 PYTHON_COMPAT=( python3_{10..11} )
 PYTHON_REQ_USE="sqlite"
 
-inherit distutils-r1 xdg-utils
+inherit python-single-r1 xdg-utils
 
 DESCRIPTION="Community genealogy program aiming to be both intuitive and 
feature-complete"
 HOMEPAGE="https://gramps-project.org/";
@@ -21,10 +18,12 @@ SLOT="0"
 KEYWORDS="~amd64 ~x86"
 IUSE="exif geo postscript +rcs +reports spell test"
 
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
 # Some of the tests fail unless the deprecated BerkeleyDB back-end is enabled.
 RESTRICT="test"
 
-RDEPEND="
+RDEPEND="${PYTHON_DEPS}
        $(python_gen_cond_dep '
                dev-python/pycairo[${PYTHON_USEDEP}]
                >=dev-python/pygobject-3.12:3[cairo,${PYTHON_USEDEP}]
@@ -41,6 +40,7 @@ RDEPEND="
        reports? ( media-gfx/graphviz[postscript?] )
 "
 BDEPEND="test? (
+       ${RDEPEND}
        $(python_gen_cond_dep '
                dev-python/jsonschema[${PYTHON_USEDEP}]
                dev-python/lxml[${PYTHON_USEDEP}]
@@ -51,44 +51,27 @@ PATCHES=(
        "${FILESDIR}"/${PN}-5.1.3-test_locale.patch
 )
 
-distutils_enable_tests setup.py
-
-python_prepare_all() {
+src_prepare() {
        # Install documentation to the proper location. This can't be done
        # easily with a patch because we substitute in the ${PF} variable,
        # and that changes with every revision.
        sed -i "s:share/doc/gramps:share/doc/${PF}:g" setup.py || die
-       distutils-r1_python_prepare_all
-}
 
-python_configure_all() {
-       DISTUTILS_ARGS=(
-               --resourcepath=/usr/share
-               --no-compress-manpages
-       )
+       default
 }
 
-python_test() {
-       # Gramps builds just fine out of tree but it confuses its test suite.
-       # The following at least lets the tests run properly in legacy mode.
-       rm -rf "${S}/build" && ln -s "${BUILD_DIR}" "${S}"/build || \
-               die "Failed to symlink build directory to source directory"
-
-       # Set a sane default locale for the tests which do not explicitly set 
one.
-       local -x LC_ALL=C.UTF-8
+src_compile() {
+       ${PYTHON} setup.py --verbose build || die
+}
 
-       esetup.py test || die
+src_test() {
+       LC_ALL=C.UTF-8 ${PYTHON} setup.py --verbose test || die
 }
 
-# Ugly hack to work around Bug #717922
-python_install() {
-       local DISTUTILS_ARGS=(
-               --resourcepath=/usr/share
-               --no-compress-manpages
-               build
-       )
-       distutils-r1_python_install
-       echo -n "${EPREFIX}/usr/share" > 
"${D}$(python_get_sitedir)/gramps/gen/utils/resource-path" || die
+src_install() {
+       ${PYTHON} setup.py --verbose install --root="${ED}" 
--resourcepath=/usr/share --no-compress-manpages || die
+       einstalldocs
+       python_optimize
 }
 
 pkg_postinst() {

Reply via email to