From 9d7601b1e4f7e1916f12a3eb9a48853216570f7f Mon Sep 17 00:00:00 2001 From: Arthur Zamarin Date: Fri, 17 Dec 2021 19:54:43 +0200 Subject: dev-python/python-systemd: enable py3.10 Signed-off-by: Arthur Zamarin --- .../files/python-systemd-234-fix-py3.10.patch | 46 ++++++++++++++++++++++ .../python-systemd/python-systemd-234-r1.ebuild | 39 ++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 dev-python/python-systemd/files/python-systemd-234-fix-py3.10.patch create mode 100644 dev-python/python-systemd/python-systemd-234-r1.ebuild diff --git a/dev-python/python-systemd/files/python-systemd-234-fix-py3.10.patch b/dev-python/python-systemd/files/python-systemd-234-fix-py3.10.patch new file mode 100644 index 000000000000..52045b4475e1 --- /dev/null +++ b/dev-python/python-systemd/files/python-systemd-234-fix-py3.10.patch @@ -0,0 +1,46 @@ +From c71bbac357f0ac722e1bcb2edfa925b68cca23c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 12 Nov 2020 16:55:56 +0100 +Subject: [PATCH] reader: make PY_SSIZE_T_CLEAN + +--- + systemd/_reader.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/systemd/_reader.c b/systemd/_reader.c +index 8de7f6a..3b6a4d0 100644 +--- a/systemd/_reader.c ++++ b/systemd/_reader.c +@@ -18,7 +18,12 @@ + along with python-systemd; If not, see . + ***/ + ++#define PY_SSIZE_T_CLEAN ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wredundant-decls" + #include ++#pragma GCC diagnostic pop ++ + #include + #include + #include +@@ -710,11 +715,17 @@ PyDoc_STRVAR(Reader_add_match__doc__, + "Match is a string of the form \"FIELD=value\"."); + static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds) { + char *match; +- int match_len, r; ++ Py_ssize_t match_len; ++ int r; + if (!PyArg_ParseTuple(args, "s#:add_match", &match, &match_len)) + return NULL; + +- r = sd_journal_add_match(self->j, match, match_len); ++ if (match_len > INT_MAX) { ++ set_error(-ENOBUFS, NULL, NULL); ++ return NULL; ++ } ++ ++ r = sd_journal_add_match(self->j, match, (int) match_len); + if (set_error(r, NULL, "Invalid match") < 0) + return NULL; + diff --git a/dev-python/python-systemd/python-systemd-234-r1.ebuild b/dev-python/python-systemd/python-systemd-234-r1.ebuild new file mode 100644 index 000000000000..7c9442a28b16 --- /dev/null +++ b/dev-python/python-systemd/python-systemd-234-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 2015-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_USE_SETUPTOOLS="no" + +inherit distutils-r1 + +DESCRIPTION="Python module for native access to the systemd facilities" +HOMEPAGE="https://github.com/systemd/python-systemd" +SRC_URI="https://github.com/systemd/python-systemd/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" + +DEPEND="sys-apps/systemd:0=" +RDEPEND="${DEPEND} + !sys-apps/systemd[python(-)] +" + +PATCHES=( + "${FILESDIR}"/${P}-fix-py3.10.patch +) + +distutils_enable_tests pytest + +python_compile() { + # https://bugs.gentoo.org/690316 + distutils-r1_python_compile -j1 +} + +python_test() { + pushd "${BUILD_DIR}/lib" > /dev/null || die + epytest -o cache_dir="${T}" + popd > /dev/null || die +} -- cgit v1.2.3-65-gdbad