summaryrefslogtreecommitdiff
path: root/app-misc/gramps
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/gramps')
-rw-r--r--app-misc/gramps/Manifest2
-rw-r--r--app-misc/gramps/files/gramps-5.1.6-pep517_setup.patch163
-rw-r--r--app-misc/gramps/gramps-5.1.6-r2.ebuild82
3 files changed, 247 insertions, 0 deletions
diff --git a/app-misc/gramps/Manifest b/app-misc/gramps/Manifest
index 9899f88ddd91..e6b3ba1cefc4 100644
--- a/app-misc/gramps/Manifest
+++ b/app-misc/gramps/Manifest
@@ -1,4 +1,6 @@
AUX gramps-5.1.3-test_locale.patch 1195 BLAKE2B 1b1aeb08b90bff9db9d028499428efa60a16b48597bcf466c07a77e3f658c8550eca84b899047d1bc6e20eb26e8dfab9637ae7aced1b99167466ea6c51707132 SHA512 70daee9afdce0f939ad3cec094fb4004f5c162e6b49849f83486db5baec074a8673d7a6096a367279019712a11f0b40e827f6cb3019e7dc3cc6bad327fee35ec
+AUX gramps-5.1.6-pep517_setup.patch 5873 BLAKE2B 62b8ca02f318c318e019366f35e39bda53fd000c8389cf1c4edfc673df008029d475c8667e69e25e3f27edbcce2f64e71d21fad43657bcfeb449b00ac7d9f2c0 SHA512 98a3807916f624b81f92cdbac1296fa9e91dd796b73d206da8561c61d45ead48bb178894cf0793471bb798f82d114a9fb3de1f0f0252cff7356402d0ba6111cb
DIST gramps-5.1.6.tar.gz 17429153 BLAKE2B fe94d80ff209e1f27ec1cfa533e916514336c1d367435e0a9da4b8309efbc9c047302a67ec24e28237eaead67ff63e76bd1384ac1e3df10e08ae98aca126566b SHA512 419bbfa54ca3bf33e71fd579c84a56eebe4afc78ccd50c23b2d62869684709ccbf373e8da0e65835d9fc21a29d2d144597d6cf8c425e14c91574535d4b1ab64d
EBUILD gramps-5.1.6-r1.ebuild 2155 BLAKE2B 61271d0bacbcb5d8b496d9ea1600a4bf39644fd090943256c9d54eb417cc0e5268b090cfb05c5d3098e9ed9cb3cd637d4af0197d821e91e54bc29195cb79c020 SHA512 d1f857f5a3d68cef31229c830a1352705cfaf7e31c4a2511c711bf814818d1e6cc597812ea8e0cc9fc55a0dd51194bb0b69833daf71770c6337072879c56eb28
+EBUILD gramps-5.1.6-r2.ebuild 2208 BLAKE2B befbd27d525bd4814d2199c42eb21d0517d377fda848a9a19d863fc5233419359b08c36fc77bf6f21037b01f481f56a94c7357220408b70d96d324d5f47cf035 SHA512 571432deebd1d74903e4ac443473d4447724e4303a8bd044fa27ed82bd3f9b96168ffbfe2424392434e7850c5e34940f861e5eb5666371980b88b5c41f8451dd
MISC metadata.xml 5599 BLAKE2B a7156f87c83c95d4205c25274e04ca063a8f2246301e62c6f7854a6bb585fc895481d9accb9c6c48e30c09ccc472c81193b2d1b514fe0b53a3681f182c9922ba SHA512 41089a951759e1a3aa67009681b9f1da3ecfb92d71afe003a6560ebe268b670b9ca58b5adb397830b6538d722a31771d5b2ad1ec015f154c7739870821257cc7
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
+}