From ef7d9650ac3274555fc5e3d2c0766042587bfce0 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 10 Aug 2022 14:05:32 +0100 Subject: dev-python/scandir: fix extension install for Python 3.9, Python 3.10 Still can't do Python 3.11. Signed-off-by: Sam James --- .../scandir/files/scandir-1.10.0-python3.9.patch | 62 ++++++++++++++++++++++ dev-python/scandir/scandir-1.10.0-r3.ebuild | 27 ++++++++++ 2 files changed, 89 insertions(+) create mode 100644 dev-python/scandir/files/scandir-1.10.0-python3.9.patch create mode 100644 dev-python/scandir/scandir-1.10.0-r3.ebuild (limited to 'dev-python') diff --git a/dev-python/scandir/files/scandir-1.10.0-python3.9.patch b/dev-python/scandir/files/scandir-1.10.0-python3.9.patch new file mode 100644 index 000000000000..c8683c1c6b9b --- /dev/null +++ b/dev-python/scandir/files/scandir-1.10.0-python3.9.patch @@ -0,0 +1,62 @@ +https://github.com/benhoyt/scandir/commit/3396aa4155ffde8600a0e9ca50d5872569169b5d + +From 3396aa4155ffde8600a0e9ca50d5872569169b5d Mon Sep 17 00:00:00 2001 +From: Ben Hoyt +Date: Mon, 24 Jan 2022 08:44:07 +1300 +Subject: [PATCH] Add Python 3.10 to tests (#137) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix PyStructSequence_UnnamedField build issues on Python 3.9/3.10 + +_scandir.c:663:7: error: conflicting type qualifiers for ‘PyStructSequence_UnnamedField’ + 663 | char *PyStructSequence_UnnamedField = "unnamed field"; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In file included from /usr/local/include/python3.10/Python.h:127, + from _scandir.c:14: +/usr/local/include/python3.10/structseq.h:22:27: note: previous declaration of ‘PyStructSequence_UnnamedField’ was here + 22 | extern const char * const PyStructSequence_UnnamedField; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Fixes https://github.com/benhoyt/scandir/pull/137 +--- + _scandir.c | 10 +++++----- + scandir.py | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/_scandir.c b/_scandir.c +index 6cc28c8..433483f 100644 +--- a/_scandir.c ++++ b/_scandir.c +@@ -660,7 +660,7 @@ _pystat_fromstructstat(STRUCT_STAT *st) + return v; + } + +-char *PyStructSequence_UnnamedField = "unnamed field"; ++static char *scandir_unnamed_field = "unnamed field"; + + PyDoc_STRVAR(stat_result__doc__, + "stat_result: Result from stat, fstat, or lstat.\n\n\ +@@ -681,7 +681,7 @@ static PyStructSequence_Field stat_result_fields[] = { + {"st_uid", "user ID of owner"}, + {"st_gid", "group ID of owner"}, + {"st_size", "total size, in bytes"}, +- /* The NULL is replaced with PyStructSequence_UnnamedField later. */ ++ /* The NULL is replaced with scandir_unnamed_field later. */ + {NULL, "integer time of last access"}, + {NULL, "integer time of last modification"}, + {NULL, "integer time of last change"}, +@@ -1817,9 +1817,9 @@ init_scandir(void) + if (!billion) + INIT_ERROR; + +- stat_result_desc.fields[7].name = PyStructSequence_UnnamedField; +- stat_result_desc.fields[8].name = PyStructSequence_UnnamedField; +- stat_result_desc.fields[9].name = PyStructSequence_UnnamedField; ++ stat_result_desc.fields[7].name = scandir_unnamed_field; ++ stat_result_desc.fields[8].name = scandir_unnamed_field; ++ stat_result_desc.fields[9].name = scandir_unnamed_field; + PyStructSequence_InitType(&StatResultType, &stat_result_desc); + structseq_new = StatResultType.tp_new; + StatResultType.tp_new = statresult_new; diff --git a/dev-python/scandir/scandir-1.10.0-r3.ebuild b/dev-python/scandir/scandir-1.10.0-r3.ebuild new file mode 100644 index 000000000000..ac31277480d8 --- /dev/null +++ b/dev-python/scandir/scandir-1.10.0-r3.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +# Do NOT add Python 3.11 without verifying the C extension is actually built +# and installed for it! +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +DESCRIPTION="A better directory iterator and faster os.walk()" +HOMEPAGE="https://github.com/benhoyt/scandir" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +PATCHES=( + "${FILESDIR}"/${P}-python3.9.patch +) + +python_test() { + "${EPYTHON}" test/run_tests.py -v || die "tests failed under ${EPYTHON}" +} -- cgit v1.2.3-65-gdbad