mirror of
https://github.com/gentoo-mirror/guru.git
synced 2025-04-19 07:49:00 -04:00
Python 3.10 target is scheduled for removal in Gentoo: https://public-inbox.gentoo.org/gentoo-dev/e6ca9f1f4ababb79ab2a3d005c39b483c3ecef6e.camel@gentoo.org/ Sphinx 8.2.0 already dropped support for CPython 3.10 and PyPy 3.10, leading to multiple CI failures in ::guru. We can safely remove this target, because GURU is "experimental" and does not have stable keywords. Let's not remove "pypy3" right now because a) There are not many packages using it. b) So we can see which packages supported PyPy 3.10, and test them with PyPy 3.11. Closes: https://github.com/gentoo/guru/pull/291 Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
113 lines
2.4 KiB
Bash
113 lines
2.4 KiB
Bash
# Copyright 2021-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{11..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
|
|
}
|