diff options
author | Marek Szuba <marecki@gentoo.org> | 2023-07-10 23:10:54 +0100 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2023-07-11 00:04:18 +0100 |
commit | 968fd2401643524b824134ffefd440ec42e24606 (patch) | |
tree | dc774914e8bd6b7b3603d02d904d0c5658bb9b3e /app-misc/gramps | |
parent | profiles/base: mask USE=doc on app-admin/ansible-molecule (diff) | |
download | gentoo-968fd2401643524b824134ffefd440ec42e24606.tar.gz gentoo-968fd2401643524b824134ffefd440ec42e24606.tar.bz2 gentoo-968fd2401643524b824134ffefd440ec42e24606.zip |
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@gentoo.org>
Diffstat (limited to 'app-misc/gramps')
-rw-r--r-- | app-misc/gramps/gramps-5.1.6-r1.ebuild (renamed from app-misc/gramps/gramps-5.1.6.ebuild) | 49 |
1 files 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 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() { |