app-office/beancount: add 2.3.6, enable py3.12

Closes: https://bugs.gentoo.org/931358
Closes: https://bugs.gentoo.org/850412
Signed-off-by: Julien Roy <julien@jroy.ca>
This commit is contained in:
Julien Roy
2024-05-15 12:52:10 -04:00
parent d8ecc27f7d
commit f334193b0b
2 changed files with 113 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST beancount-2.3.5.gh.tar.gz 1718715 BLAKE2B 2bcbf250e6947c6ea93f7c4308fac2ea03c0b5b722dc4a6eb396133880ca201235ceb8cbb2e3a6e63afe573e1b3ab8bb945444a1edc73791b73200fb4d45bd18 SHA512 a3f1343ddf54cf13ef60802de210dc89e9ae202bca802b1b4eb532588f71d51fa4b71672b4e6a1e9676135d406fd55c421b80c439fa2f5f4279e61211f558a2a
DIST beancount-2.3.6.gh.tar.gz 1720239 BLAKE2B 769aa27a9edc201e33a85f92780b4140b1758a35ca865255183bdcaf4c515ba3bf4c6711aa2842c9219027a44a7cc334c39b48eb36f5145caa689ba90cda64d5 SHA512 52b65f99753e9473aae7736419d104e46b422b33f854170cc0242a95c1d12483aae95264138f81d28c9a7b50ca961e75163cce83868db5bcc9afe7d2337f3036

View File

@@ -0,0 +1,112 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_SINGLE_IMPL=1
inherit distutils-r1 toolchain-funcs
DESCRIPTION="A double-entry accounting system that uses text files as input"
HOMEPAGE="
https://beancount.github.io
https://github.com/beancount/beancount
"
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
$(python_gen_cond_dep '
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/bottle[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]
dev-python/google-api-python-client[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/ply[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/python-magic[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
')
"
BDEPEND="
sys-devel/bison
sys-devel/flex
"
EPYTEST_DESELECT=( scripts/setup_test.py )
distutils_enable_tests pytest
src_prepare() {
distutils-r1_src_prepare
# remove test deps from 'install_requires'
sed "/pytest/d" -i setup.py || die
# we'll regenerate C sources
rm ${PN}/parser/grammar.{c,h} || die
rm ${PN}/parser/lexer.{c,h} || die
# repair tests
sed "/def find_repository_root/a\ return '${S}'" \
-i ${PN}/utils/test_utils.py || die
sed "s/\[PROGRAM\]/['${EPYTHON}', PROGRAM]/" \
-i ${PN}/tools/treeify_test.py || die
sed "/DATA_DIR =/c\ DATA_DIR = '${S}/${PN}/utils/file_type_testdata'" \
-i ${PN}/utils/file_type_test.py || die
}
src_configure() {
tc-export CC
}
python_compile() {
distutils-r1_python_compile
# keep in sync with hashsrc.py, otherwise expect test failures
local csources=(
decimal.{c,h}
grammar.y
lexer.l
macros.h
parser.{c,h}
tokens.h
)
for file in "${csources[@]}"; do
cp ${PN}/parser/${file} "${BUILD_DIR}"/install$(python_get_sitedir)/${PN}/parser || die
done
}
src_compile() {
local mymakeflags=(
PYCONFIG="$(python_get_PYTHON_CONFIG)"
)
emake "${mymakeflags[@]}" ${PN}/parser/grammar.c
emake "${mymakeflags[@]}" ${PN}/parser/lexer.c
distutils-r1_src_compile
use test && \
emake "${mymakeflags[@]}" ${PN}/parser/tokens_test
}
python_test(){
cd "${T}" || die
epytest --pyargs ${PN}
}
src_test() {
local mymakeflags=(
PYCONFIG="$(python_get_PYTHON_CONFIG)"
)
emake "${mymakeflags[@]}" ctest
distutils-r1_src_test
}