summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-08-10 14:05:32 +0100
committerSam James <sam@gentoo.org>2022-08-10 14:05:32 +0100
commitef7d9650ac3274555fc5e3d2c0766042587bfce0 (patch)
tree003acc3eb2425d2374fa6d898c4953958ce4f2ab /dev-python
parentdev-python/pyxattr: add github upstream metadata (diff)
downloadgentoo-ef7d9650ac3274555fc5e3d2c0766042587bfce0.tar.gz
gentoo-ef7d9650ac3274555fc5e3d2c0766042587bfce0.tar.bz2
gentoo-ef7d9650ac3274555fc5e3d2c0766042587bfce0.zip
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 <sam@gentoo.org>
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/scandir/files/scandir-1.10.0-python3.9.patch62
-rw-r--r--dev-python/scandir/scandir-1.10.0-r3.ebuild27
2 files changed, 89 insertions, 0 deletions
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 <benhoyt@gmail.com>
+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}"
+}