From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id CA18415800A for ; Wed, 23 Aug 2023 22:17:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1CEDA2BC01C; Wed, 23 Aug 2023 22:17:20 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 030A72BC01C for ; Wed, 23 Aug 2023 22:17:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3508134107D for ; Wed, 23 Aug 2023 22:17:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9E45CE71 for ; Wed, 23 Aug 2023 22:17:17 +0000 (UTC) From: "Marek Szuba" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marek Szuba" Message-ID: <1692829031.48fad51b53b9aa4dacb87dabbd99c4772f680f0c.marecki@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/gramps/files/, app-misc/gramps/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-misc/gramps/files/gramps-5.1.6-pep517_setup.patch app-misc/gramps/gramps-5.1.6-r2.ebuild X-VCS-Directories: app-misc/gramps/files/ app-misc/gramps/ X-VCS-Committer: marecki X-VCS-Committer-Name: Marek Szuba X-VCS-Revision: 48fad51b53b9aa4dacb87dabbd99c4772f680f0c X-VCS-Branch: master Date: Wed, 23 Aug 2023 22:17:17 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6838669a-eeaa-49ee-95f9-efb4684bff82 X-Archives-Hash: 0319054f922464f9faf8df08c74056ff commit: 48fad51b53b9aa4dacb87dabbd99c4772f680f0c Author: Marek Szuba gentoo org> AuthorDate: Wed Aug 23 21:48:51 2023 +0000 Commit: Marek Szuba gentoo org> CommitDate: Wed Aug 23 22:17:11 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48fad51b app-misc/gramps: switch to PEP-517 build mode Uses backported upstream refactoring of setup.py from distutils to setuptools. Bug: https://bugs.gentoo.org/909880 Signed-off-by: Marek Szuba gentoo.org> .../gramps/files/gramps-5.1.6-pep517_setup.patch | 163 +++++++++++++++++++++ app-misc/gramps/gramps-5.1.6-r2.ebuild | 82 +++++++++++ 2 files changed, 245 insertions(+) diff --git a/app-misc/gramps/files/gramps-5.1.6-pep517_setup.patch b/app-misc/gramps/files/gramps-5.1.6-pep517_setup.patch new file mode 100644 index 000000000000..7853b23ba1b8 --- /dev/null +++ b/app-misc/gramps/files/gramps-5.1.6-pep517_setup.patch @@ -0,0 +1,163 @@ +--- a/setup.py ++++ b/setup.py +@@ -23,7 +23,7 @@ + # + + ''' +-Gramps distutils module. ++Gramps setuptools module. + ''' + + #check python version first +@@ -32,11 +32,11 @@ + if sys.version_info < (3, 2): + raise SystemExit("Gramps requires Python 3.2 or later.") + +-from distutils import log +-from distutils.core import setup, Command +-from distutils.util import convert_path, newer +-from distutils.command.build import build as _build +-from distutils.command.install import install as _install ++from setuptools import setup, Command ++try: ++ from setuptools.command.build import build as _build ++except ImportError: ++ from distutils.command.build import build as _build + import os + import glob + import codecs +@@ -45,6 +45,9 @@ + from gramps.version import VERSION + import unittest + import argparse ++import logging ++ ++_LOG = logging.getLogger(".setup") + + # this list MUST be a subset of _LOCALE_NAMES in gen/utils/grampslocale.py + # (that is, if you add a new language here, be sure it's in _LOCALE_NAMES too) +@@ -75,6 +78,17 @@ + packaging = True + sys.argv = [sys.argv[0]] + passthrough + ++def newer(source, target): ++ ''' ++ Determines if a target file needs to be rebuilt. ++ ++ Returns True if the target file doesn't exist or if the source file is ++ newer than the target file. ++ ''' ++ if not os.path.exists(target): ++ return True ++ return os.path.getmtime(source) > os.path.getmtime(target) ++ + def intltool_version(): + ''' + Return the version of intltool as a tuple. +@@ -140,7 +154,7 @@ + reply = input(ask) + if reply in ['n', 'N']: + raise SystemExit(msg) +- log.info('Compiling %s >> %s', po_file, mo_file) ++ _LOG.info('Compiling %s >> %s', po_file, mo_file) + + #linux specific piece: + target = 'share/locale/' + lang + '/LC_MESSAGES' +@@ -179,7 +193,7 @@ + with open(newfile, 'rb') as f_in,\ + gzip.open(man_file_gz, 'wb') as f_out: + f_out.writelines(f_in) +- log.info('Compiling %s >> %s', filename, man_file_gz) ++ _LOG.info('Compiling %s >> %s', filename, man_file_gz) + + os.remove(newfile) + filename = False +@@ -193,30 +207,26 @@ + ''' + Merge translation files into desktop and mime files + ''' +- for filename in _FILES: +- filename = convert_path(filename) +- strip_files(filename + '.in', filename, ['_tip', '_name']) +- + i_v = intltool_version() + if i_v is None or i_v < (0, 25, 0): +- log.info('No intltool or version < 0.25.0, build_intl is aborting') ++ _LOG.info('No intltool or version < 0.25.0, build_intl is aborting') + return + data_files = build_cmd.distribution.data_files + base = build_cmd.build_base + +- merge_files = (('data/gramps.desktop', 'share/applications', '-d'), +- ('data/gramps.keys', 'share/mime-info', '-k'), +- ('data/gramps.xml', 'share/mime/packages', '-x'), +- ('data/gramps.appdata.xml', 'share/metainfo', '-x')) ++ merge_files = (('gramps.desktop', 'share/applications', '-d'), ++ ('gramps.keys', 'share/mime-info', '-k'), ++ ('gramps.xml', 'share/mime/packages', '-x'), ++ ('gramps.appdata.xml', 'share/metainfo', '-x')) + + for filename, target, option in merge_files: +- filenamelocal = convert_path(filename) ++ filenamelocal = os.path.join('data', filename) + newfile = os.path.join(base, filenamelocal) + newdir = os.path.dirname(newfile) + if not(os.path.isdir(newdir) or os.path.islink(newdir)): + os.makedirs(newdir) + merge(filenamelocal + '.in', newfile, option) +- data_files.append((target, [base + '/' + filename])) ++ data_files.append((target, [base + '/data/' + filename])) + + def strip_files(in_file, out_file, mark): + ''' +@@ -232,7 +242,7 @@ + line = line.replace(marker, marker[1:]) + fb.write(line) + old.close() +- log.info('Compiling %s >> %s', in_file, out_file) ++ _LOG.info('Compiling %s >> %s', in_file, out_file) + + def merge(in_file, out_file, option, po_dir='po', cache=True): + ''' +@@ -262,7 +272,7 @@ + msg = ('ERROR: %s was not merged into the translation files!\n' % + out_file) + raise SystemExit(msg) +- log.info('Compiling %s >> %s', in_file, out_file) ++ _LOG.info('Compiling %s >> %s', in_file, out_file) + + class build(_build): + """Custom build command.""" +@@ -273,22 +283,6 @@ + build_intl(self) + _build.run(self) + +-class install(_install): +- """Custom install command.""" +- def run(self): +- resource_file = os.path.join(os.path.dirname(__file__), 'gramps', 'gen', +- 'utils', 'resource-path') +- with open(resource_file, 'w', encoding='utf-8', errors='strict') as fp: +- if packaging: +- path = resource_path +- else: +- path = os.path.abspath(os.path.join(self.install_data, 'share')) +- fp.write(path) +- +- _install.run(self) +- +- os.remove(resource_file) +- + class test(Command): + """Command to run Gramps unit tests""" + description = "run all unit tests" +@@ -503,7 +497,7 @@ + url = 'http://gramps-project.org', + license = 'GPL v2 or greater', + platforms = ['FreeBSD', 'Linux', 'MacOS', 'Windows'], +- cmdclass = {'build': build, 'install': install, 'test': test}, ++ cmdclass = {'build': build, 'test': test}, + packages = packages, + package_data = {'gramps': package_data}, + data_files = data_files, +Binary files a/.setup.py.swp and b/.setup.py.swp differ diff --git a/app-misc/gramps/gramps-5.1.6-r2.ebuild b/app-misc/gramps/gramps-5.1.6-r2.ebuild new file mode 100644 index 000000000000..21e33b40891f --- /dev/null +++ b/app-misc/gramps/gramps-5.1.6-r2.ebuild @@ -0,0 +1,82 @@ +# Copyright 2001-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_SINGLE_IMPL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 xdg-utils + +DESCRIPTION="Community genealogy program aiming to be both intuitive and feature-complete" +HOMEPAGE="https://gramps-project.org/" +SRC_URI="https://github.com/gramps-project/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="exif geo postscript +rcs +reports spell test" + +# Many tests fail unless the deprecated BerkeleyDB back-end is enabled. +RESTRICT="test" + +RDEPEND=" + $(python_gen_cond_dep ' + dev-python/pycairo[${PYTHON_USEDEP}] + >=dev-python/pygobject-3.12:3[cairo,${PYTHON_USEDEP}] + dev-python/pyicu[${PYTHON_USEDEP}] + exif? ( >=media-libs/gexiv2-0.5[${PYTHON_USEDEP},introspection] ) + ') + gnome-base/librsvg:2 + >x11-libs/gtk+-3.14.8:3[introspection] + x11-libs/pango[introspection] + x11-misc/xdg-utils + geo? ( >=sci-geosciences/osm-gps-map-1.1.0 ) + spell? ( app-text/gtkspell:3[introspection] ) + rcs? ( dev-vcs/rcs ) + reports? ( media-gfx/graphviz[postscript?] ) +" +BDEPEND="test? ( + $(python_gen_cond_dep ' + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + ') +)" + +PATCHES=( + "${FILESDIR}"/${PN}-5.1.3-test_locale.patch + "${FILESDIR}"/${PN}-5.1.6-pep517_setup.patch +) + +DISTUTILS_ARGS="--no-compress-manpages" + +distutils_enable_tests pytest + +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 -e "s:share/doc/gramps:share/doc/${PF}:g" setup.py || die + + # The final part of PEP-517 support, handled with sed in order to avoid + # making the patch file too large + sed -e "s:_name:name:g" data/holidays.xml.in > data/holidays.xml || die + sed -e "s:_tip:tip:g" data/tips.xml.in > data/tips.xml || die + + default +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +}