aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>2023-02-27 05:40:05 +0500
committerAnna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>2023-02-27 06:35:50 +0500
commitf7dfbeb064b132fbdb4798b786110664bc782929 (patch)
tree8ab46ab2985e4f1b1804ca9f83fdfb2f4882bcfa /app-office
parentdev-python/uharfbuzz: cleanups (diff)
downloadguru-f7dfbeb064b132fbdb4798b786110664bc782929.tar.gz
guru-f7dfbeb064b132fbdb4798b786110664bc782929.tar.bz2
guru-f7dfbeb064b132fbdb4798b786110664bc782929.zip
app-office/beancount: enable py3.11
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
Diffstat (limited to 'app-office')
-rw-r--r--app-office/beancount/beancount-2.3.5-r2.ebuild (renamed from app-office/beancount/beancount-2.3.5-r1.ebuild)57
1 files changed, 51 insertions, 6 deletions
diff --git a/app-office/beancount/beancount-2.3.5-r1.ebuild b/app-office/beancount/beancount-2.3.5-r2.ebuild
index 296a34055..4612d6706 100644
--- a/app-office/beancount/beancount-2.3.5-r1.ebuild
+++ b/app-office/beancount/beancount-2.3.5-r2.ebuild
@@ -3,11 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_10 )
+PYTHON_COMPAT=( python3_{10..11} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_SINGLE_IMPL=1
-inherit distutils-r1
+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"
@@ -25,32 +25,73 @@ RDEPEND="
dev-python/google-api-python-client[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/ply[${PYTHON_USEDEP}]
- dev-python/pytest[${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
- distutils-r1_src_prepare
+}
+
+src_configure() {
+ tc-export CC
}
python_compile() {
distutils-r1_python_compile
# keep in sync with hashsrc.py, otherwise expect test failures
- cp beancount/parser/{lexer.l,grammar.y,decimal.h,decimal.c,macros.h,parser.h,parser.c,tokens.h} "${BUILD_DIR}"/install$(python_get_sitedir)/${PN}/parser || die
+ 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(){
@@ -59,6 +100,10 @@ python_test(){
}
src_test() {
- emake ctest
+ local mymakeflags=(
+ PYCONFIG="$(python_get_PYTHON_CONFIG)"
+ )
+
+ emake "${mymakeflags[@]}" ctest
distutils-r1_src_test
}