summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2023-07-10 23:10:54 +0100
committerMarek Szuba <marecki@gentoo.org>2023-07-11 00:04:18 +0100
commit968fd2401643524b824134ffefd440ec42e24606 (patch)
treedc774914e8bd6b7b3603d02d904d0c5658bb9b3e
parentprofiles/base: mask USE=doc on app-admin/ansible-molecule (diff)
downloadgentoo-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>
-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() {