summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Zamarin <arthurzam@gentoo.org>2021-12-17 19:54:43 +0200
committerArthur Zamarin <arthurzam@gentoo.org>2021-12-17 19:58:32 +0200
commit9d7601b1e4f7e1916f12a3eb9a48853216570f7f (patch)
tree5d1dc5b89cb3e9f6f6158568a9aaf6d6a675045e
parentwww-client/epiphany: security cleanup (diff)
downloadgentoo-9d7601b1e4f7e1916f12a3eb9a48853216570f7f.tar.gz
gentoo-9d7601b1e4f7e1916f12a3eb9a48853216570f7f.tar.bz2
gentoo-9d7601b1e4f7e1916f12a3eb9a48853216570f7f.zip
dev-python/python-systemd: enable py3.10
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
-rw-r--r--dev-python/python-systemd/files/python-systemd-234-fix-py3.10.patch46
-rw-r--r--dev-python/python-systemd/python-systemd-234-r1.ebuild39
2 files changed, 85 insertions, 0 deletions
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?= <zbyszek@in.waw.pl>
+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 <http://www.gnu.org/licenses/>.
+ ***/
+
++#define PY_SSIZE_T_CLEAN
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wredundant-decls"
+ #include <Python.h>
++#pragma GCC diagnostic pop
++
+ #include <structmember.h>
+ #include <datetime.h>
+ #include <time.h>
+@@ -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
+}