diff options
Diffstat (limited to 'meta/recipes-devtools/python')
266 files changed, 7486 insertions, 3329 deletions
diff --git a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch deleted file mode 100644 index 680edbe704..0000000000 --- a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 6380cc63f79abe8b8404c9be5ed5f213a70c8c6a Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Tue, 17 Jul 2018 10:13:38 +0800 | ||
4 | Subject: [PATCH] conditionally do not fetch code by easy_install | ||
5 | |||
6 | If var-NO_FETCH_BUILD is set, do not allow to fetch code from | ||
7 | internet by easy_install. | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe specific] | ||
10 | |||
11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
12 | |||
13 | --- | ||
14 | setuptools/command/easy_install.py | 5 +++++ | ||
15 | 1 file changed, 5 insertions(+) | ||
16 | |||
17 | diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py | ||
18 | index eeb21b5..eca1edd 100644 | ||
19 | --- a/setuptools/command/easy_install.py | ||
20 | +++ b/setuptools/command/easy_install.py | ||
21 | @@ -636,6 +636,11 @@ class easy_install(Command): | ||
22 | os.path.exists(tmpdir) and rmtree(tmpdir) | ||
23 | |||
24 | def easy_install(self, spec, deps=False): | ||
25 | + if os.environ.get('NO_FETCH_BUILD', None): | ||
26 | + log.error("ERROR: Do not try to fetch `%s' for building. " | ||
27 | + "Please add its native recipe to DEPENDS." % spec) | ||
28 | + return None | ||
29 | + | ||
30 | with self._tmpdir() as tmpdir: | ||
31 | if not isinstance(spec, Requirement): | ||
32 | if URL_SCHEME(spec): | ||
diff --git a/meta/recipes-devtools/python/python-async.inc b/meta/recipes-devtools/python/python-async.inc deleted file mode 100644 index af887dc4e5..0000000000 --- a/meta/recipes-devtools/python/python-async.inc +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | SUMMARY = "Python framework to process interdependent tasks in a pool of workers" | ||
2 | HOMEPAGE = "http://github.com/gitpython-developers/async" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e" | ||
6 | |||
7 | inherit pypi | ||
8 | |||
9 | SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b" | ||
10 | SRC_URI[sha256sum] = "ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051" | ||
11 | |||
12 | RDEPENDS_${PN} += "${PYTHON_PN}-threading" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python-cython.inc b/meta/recipes-devtools/python/python-cython.inc deleted file mode 100644 index da6eba254f..0000000000 --- a/meta/recipes-devtools/python/python-cython.inc +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ | ||
2 | It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ | ||
3 | and the messy, low-level world of C." | ||
4 | SECTION = "devel/python" | ||
5 | LICENSE = "Apache-2.0" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" | ||
7 | PYPI_PACKAGE = "Cython" | ||
8 | BBCLASSEXTEND = "native nativesdk" | ||
9 | |||
10 | SRC_URI[sha256sum] = "df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406" | ||
11 | UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" | ||
12 | |||
13 | inherit pypi | ||
14 | |||
15 | RDEPENDS_${PN}_class-target += "\ | ||
16 | ${PYTHON_PN}-misc \ | ||
17 | ${PYTHON_PN}-netserver \ | ||
18 | ${PYTHON_PN}-pkgutil \ | ||
19 | ${PYTHON_PN}-pyparsing \ | ||
20 | ${PYTHON_PN}-setuptools \ | ||
21 | ${PYTHON_PN}-shell \ | ||
22 | ${PYTHON_PN}-xml \ | ||
23 | " | ||
24 | |||
25 | RDEPENDS_${PN}_class-nativesdk += "\ | ||
26 | nativesdk-${PYTHON_PN}-misc \ | ||
27 | nativesdk-${PYTHON_PN}-netserver \ | ||
28 | nativesdk-${PYTHON_PN}-pkgutil \ | ||
29 | nativesdk-${PYTHON_PN}-pyparsing \ | ||
30 | nativesdk-${PYTHON_PN}-setuptools \ | ||
31 | nativesdk-${PYTHON_PN}-shell \ | ||
32 | nativesdk-${PYTHON_PN}-xml \ | ||
33 | " | ||
34 | |||
35 | do_install_append() { | ||
36 | # Make sure we use /usr/bin/env python | ||
37 | for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do | ||
38 | sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT | ||
39 | done | ||
40 | } | ||
diff --git a/meta/recipes-devtools/python/python-extras.inc b/meta/recipes-devtools/python/python-extras.inc index 335bde2724..b562f90d12 100644 --- a/meta/recipes-devtools/python/python-extras.inc +++ b/meta/recipes-devtools/python/python-extras.inc | |||
@@ -6,7 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6d108f338b2f68fe48ac366c4650bd8b" | |||
6 | 6 | ||
7 | inherit pypi | 7 | inherit pypi |
8 | 8 | ||
9 | SRC_URI[md5sum] = "3a63ad60cf8f0186c9e3a02f55ec5b14" | ||
10 | SRC_URI[sha256sum] = "132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e" | 9 | SRC_URI[sha256sum] = "132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e" |
11 | 10 | ||
12 | BBCLASSEXTEND = "nativesdk" | 11 | BBCLASSEXTEND = "nativesdk" |
diff --git a/meta/recipes-devtools/python/python-gitdb.inc b/meta/recipes-devtools/python/python-gitdb.inc deleted file mode 100644 index 618d85ff8d..0000000000 --- a/meta/recipes-devtools/python/python-gitdb.inc +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | SUMMARY = "A pure-Python git object database" | ||
2 | HOMEPAGE = "http://github.com/gitpython-developers/gitdb" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528" | ||
6 | |||
7 | inherit pypi | ||
8 | |||
9 | PYPI_PACKAGE = "gitdb" | ||
10 | |||
11 | SRC_URI[sha256sum] = "c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9" | ||
12 | |||
13 | DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap" | ||
14 | |||
15 | RDEPENDS_${PN} += "${PYTHON_PN}-async \ | ||
16 | ${PYTHON_PN}-compression \ | ||
17 | ${PYTHON_PN}-crypt \ | ||
18 | ${PYTHON_PN}-io \ | ||
19 | ${PYTHON_PN}-mmap \ | ||
20 | ${PYTHON_PN}-shell \ | ||
21 | ${PYTHON_PN}-smmap \ | ||
22 | " | ||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python-nose.inc b/meta/recipes-devtools/python/python-nose.inc deleted file mode 100644 index ccec68a0e1..0000000000 --- a/meta/recipes-devtools/python/python-nose.inc +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | SUMMARY = "Extends Python unittest to make testing easier" | ||
2 | HOMEPAGE = "http://readthedocs.org/docs/nose/" | ||
3 | DESCRIPTION = "nose extends the test loading and running features of unittest, \ | ||
4 | making it easier to write, find and run tests." | ||
5 | SECTION = "devel/python" | ||
6 | LICENSE = "LGPLv2.1" | ||
7 | LIC_FILES_CHKSUM = "file://lgpl.txt;md5=a6f89e2100d9b6cdffcea4f398e37343" | ||
8 | |||
9 | SRC_URI[md5sum] = "4d3ad0ff07b61373d2cefc89c5d0b20b" | ||
10 | SRC_URI[sha256sum] = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98" | ||
11 | |||
12 | inherit pypi | ||
13 | |||
14 | RDEPENDS_${PN} = "\ | ||
15 | ${PYTHON_PN}-unittest \ | ||
16 | " | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python-pbr.inc b/meta/recipes-devtools/python/python-pbr.inc index bc470e7274..f08d9fd381 100644 --- a/meta/recipes-devtools/python/python-pbr.inc +++ b/meta/recipes-devtools/python/python-pbr.inc | |||
@@ -9,6 +9,6 @@ SRC_URI += "file://0001-change-shebang-to-python3.patch" | |||
9 | 9 | ||
10 | inherit pypi | 10 | inherit pypi |
11 | 11 | ||
12 | RDEPENDS_${PN} += "${PYTHON_PN}-pip" | 12 | RDEPENDS:${PN} += "python3-pip" |
13 | 13 | ||
14 | BBCLASSEXTEND = "native nativesdk" | 14 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-devtools/python/python-pycryptodome.inc b/meta/recipes-devtools/python/python-pycryptodome.inc index 48481bcf9a..ec9241e6d5 100644 --- a/meta/recipes-devtools/python/python-pycryptodome.inc +++ b/meta/recipes-devtools/python/python-pycryptodome.inc | |||
@@ -3,22 +3,24 @@ DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\ | |||
3 | cryptographic primitives." | 3 | cryptographic primitives." |
4 | HOMEPAGE = "http://www.pycryptodome.org" | 4 | HOMEPAGE = "http://www.pycryptodome.org" |
5 | LICENSE = "PD & BSD-2-Clause" | 5 | LICENSE = "PD & BSD-2-Clause" |
6 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=accfa6aeaceb3ba96676edf18e78302c" | 6 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=29242a70410a4eeff488a28164e7ab93" |
7 | 7 | ||
8 | inherit pypi | 8 | inherit pypi |
9 | 9 | ||
10 | RDEPENDS_${PN} += " \ | 10 | RDEPENDS:${PN} += " \ |
11 | ${PYTHON_PN}-io \ | 11 | python3-cffi \ |
12 | ${PYTHON_PN}-math \ | 12 | python3-ctypes \ |
13 | python3-io \ | ||
14 | python3-math \ | ||
13 | " | 15 | " |
14 | 16 | ||
15 | RDEPENDS_${PN}-tests += " \ | 17 | RDEPENDS:${PN}-tests += " \ |
16 | ${PYTHON_PN}-unittest \ | 18 | python3-unittest \ |
17 | " | 19 | " |
18 | 20 | ||
19 | PACKAGES =+ "${PN}-tests" | 21 | PACKAGES =+ "${PN}-tests" |
20 | 22 | ||
21 | FILES_${PN}-tests = " \ | 23 | FILES:${PN}-tests = " \ |
22 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \ | 24 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \ |
23 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \ | 25 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \ |
24 | " | 26 | " |
diff --git a/meta/recipes-devtools/python/python-pyparsing.inc b/meta/recipes-devtools/python/python-pyparsing.inc deleted file mode 100644 index 348b324bf5..0000000000 --- a/meta/recipes-devtools/python/python-pyparsing.inc +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | SUMMARY = "Python parsing module" | ||
2 | HOMEPAGE = "http://pyparsing.wikispaces.com/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1" | ||
5 | |||
6 | SRC_URI[md5sum] = "f0953e47a0112f7a65aec2305ffdf7b4" | ||
7 | SRC_URI[sha256sum] = "c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1" | ||
8 | UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar" | ||
9 | |||
10 | inherit pypi | ||
11 | |||
12 | RDEPENDS_${PN} += " \ | ||
13 | ${PYTHON_PN}-datetime \ | ||
14 | ${PYTHON_PN}-debugger \ | ||
15 | ${PYTHON_PN}-json \ | ||
16 | ${PYTHON_PN}-netclient \ | ||
17 | ${PYTHON_PN}-pprint \ | ||
18 | ${PYTHON_PN}-stringold \ | ||
19 | ${PYTHON_PN}-threading \ | ||
20 | " | ||
21 | |||
22 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python-six.inc b/meta/recipes-devtools/python/python-six.inc index df97f845bc..f7a62b6068 100644 --- a/meta/recipes-devtools/python/python-six.inc +++ b/meta/recipes-devtools/python/python-six.inc | |||
@@ -2,10 +2,10 @@ SUMMARY = "Python 2 and 3 compatibility library" | |||
2 | HOMEPAGE = "https://pypi.org/project/six/" | 2 | HOMEPAGE = "https://pypi.org/project/six/" |
3 | SECTION = "devel/python" | 3 | SECTION = "devel/python" |
4 | LICENSE = "MIT" | 4 | LICENSE = "MIT" |
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d" | 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e50fab7e9501f3dfc920eafeb24b46ea" |
6 | 6 | ||
7 | inherit pypi | 7 | inherit pypi |
8 | 8 | ||
9 | RDEPENDS_${PN} = "${PYTHON_PN}-io" | 9 | RDEPENDS:${PN} = "python3-io" |
10 | 10 | ||
11 | BBCLASSEXTEND = "native nativesdk" | 11 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-devtools/python/python-subunit.inc b/meta/recipes-devtools/python/python-subunit.inc deleted file mode 100644 index a2f9c5c3ff..0000000000 --- a/meta/recipes-devtools/python/python-subunit.inc +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | SUMMARY = "Python implementation of subunit test streaming protocol" | ||
2 | HOMEPAGE = "https://pypi.org/project/python-subunit/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://README.rst;beginline=1;endline=20;md5=909c08e291647fd985fbe5d9836d51b6" | ||
6 | |||
7 | PYPI_PACKAGE = "python-subunit" | ||
8 | |||
9 | SRC_URI[md5sum] = "30f1ab20651d94442dd9a7f8c9e8d633" | ||
10 | SRC_URI[sha256sum] = "042039928120fbf392e8c983d60f3d8ae1b88f90a9f8fd7188ddd9c26cad1e48" | ||
11 | |||
12 | inherit pypi | ||
13 | |||
14 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python-testtools.inc b/meta/recipes-devtools/python/python-testtools.inc deleted file mode 100644 index e8d308b717..0000000000 --- a/meta/recipes-devtools/python/python-testtools.inc +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | SUMMARY = "Extensions to the Python standard library unit testing framework" | ||
2 | HOMEPAGE = "https://pypi.org/project/testtools/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a" | ||
6 | |||
7 | inherit pypi | ||
8 | |||
9 | SRC_URI[md5sum] = "e8fc7185b47cfb908c641f8c4b2a6add" | ||
10 | SRC_URI[sha256sum] = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8" | ||
11 | |||
12 | DEPENDS += " \ | ||
13 | ${PYTHON_PN}-pbr \ | ||
14 | " | ||
15 | |||
16 | # Satisfy setup.py 'setup_requires' | ||
17 | DEPENDS += " \ | ||
18 | ${PYTHON_PN}-pbr-native \ | ||
19 | " | ||
20 | |||
21 | RDEPENDS_${PN} += "\ | ||
22 | ${PYTHON_PN}-doctest \ | ||
23 | ${PYTHON_PN}-extras \ | ||
24 | ${PYTHON_PN}-pbr \ | ||
25 | ${PYTHON_PN}-six \ | ||
26 | " | ||
27 | |||
28 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-alabaster_1.0.0.bb b/meta/recipes-devtools/python/python3-alabaster_1.0.0.bb new file mode 100644 index 0000000000..40be6039eb --- /dev/null +++ b/meta/recipes-devtools/python/python3-alabaster_1.0.0.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "Alabaster is a visually (c)lean, responsive, configurable theme for the Sphinx documentation system." | ||
2 | HOMEPAGE = "https://alabaster.readthedocs.io/en/latest/" | ||
3 | BUGTRACKER = "https://github.com/sphinx-doc/alabaster/issues" | ||
4 | SECTION = "devel/python" | ||
5 | LICENSE = "BSD-3-Clause" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=21860fdb805bf4e0bfaf94b566b747fa" | ||
7 | |||
8 | SRC_URI[sha256sum] = "c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e" | ||
9 | |||
10 | inherit python_flit_core pypi | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb b/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb new file mode 100644 index 0000000000..322497b09b --- /dev/null +++ b/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | SUMMARY = "A fast, pure Python library for parsing and serializing ASN.1 structures" | ||
2 | HOMEPAGE = "https://github.com/wbond/asn1crypto" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b5cda97fbd7959ad47a952651a87051a" | ||
6 | |||
7 | PYPI_PACKAGE = "asn1crypto" | ||
8 | |||
9 | SRC_URI[sha256sum] = "13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | RDEPENDS:${PN}:class-target += " \ | ||
14 | python3-codecs \ | ||
15 | python3-crypt \ | ||
16 | python3-ctypes \ | ||
17 | python3-datetime \ | ||
18 | python3-io \ | ||
19 | python3-netclient \ | ||
20 | python3-numbers \ | ||
21 | python3-shell \ | ||
22 | " | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-async_0.6.2.bb b/meta/recipes-devtools/python/python3-async_0.6.2.bb deleted file mode 100644 index 0da5fdecdc..0000000000 --- a/meta/recipes-devtools/python/python3-async_0.6.2.bb +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-async.inc | ||
diff --git a/meta/recipes-devtools/python/python3-atomicwrites/run-ptest b/meta/recipes-devtools/python/python3-atomicwrites/run-ptest deleted file mode 100644 index b63c4de0d9..0000000000 --- a/meta/recipes-devtools/python/python3-atomicwrites/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' | ||
diff --git a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb b/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb deleted file mode 100644 index 7edd41030f..0000000000 --- a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | DESCRIPTION = "Powerful Python library for atomic file writes" | ||
2 | HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" | ||
5 | |||
6 | SRC_URI[md5sum] = "b5cc15c8f9f180a48665f9aacf91d817" | ||
7 | SRC_URI[sha256sum] = "ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a" | ||
8 | |||
9 | inherit pypi setuptools3 ptest | ||
10 | |||
11 | SRC_URI += " \ | ||
12 | file://run-ptest \ | ||
13 | " | ||
14 | |||
15 | RDEPENDS_${PN}-ptest += " \ | ||
16 | ${PYTHON_PN}-pytest \ | ||
17 | ${PYTHON_PN}-unixadmin \ | ||
18 | " | ||
19 | |||
20 | do_install_ptest() { | ||
21 | install -d ${D}${PTEST_PATH}/tests | ||
22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
23 | } | ||
24 | |||
25 | RDEPENDS_${PN} = "${PYTHON_PN}-misc" | ||
diff --git a/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb new file mode 100644 index 0000000000..b14b62ab2f --- /dev/null +++ b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "Powerful Python library for atomic file writes" | ||
2 | HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" | ||
5 | |||
6 | SRC_URI[sha256sum] = "81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11" | ||
7 | |||
8 | inherit pypi setuptools3 ptest-python-pytest | ||
9 | |||
10 | RDEPENDS:${PN}-ptest += " \ | ||
11 | python3-unixadmin \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS:${PN} = "python3-misc" | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-attrs_20.3.0.bb b/meta/recipes-devtools/python/python3-attrs_20.3.0.bb deleted file mode 100644 index 55cfda7180..0000000000 --- a/meta/recipes-devtools/python/python3-attrs_20.3.0.bb +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | DESCRIPTION = "Classes Without Boilerplate" | ||
2 | HOMEPAGE = "http://www.attrs.org/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" | ||
5 | |||
6 | SRC_URI[sha256sum] = "832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" | ||
7 | SRC_URI[md5sum] = "4fe38f89297b2b446d83190fce189f29" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | RDEPENDS_${PN}_class-target += " \ | ||
12 | ${PYTHON_PN}-crypt \ | ||
13 | ${PYTHON_PN}-ctypes \ | ||
14 | " | ||
15 | RDEPENDS_${PN}_class-nativesdk += " \ | ||
16 | ${PYTHON_PN}-crypt \ | ||
17 | ${PYTHON_PN}-ctypes \ | ||
18 | " | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-attrs_25.3.0.bb b/meta/recipes-devtools/python/python3-attrs_25.3.0.bb new file mode 100644 index 0000000000..bed26a5184 --- /dev/null +++ b/meta/recipes-devtools/python/python3-attrs_25.3.0.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Classes Without Boilerplate" | ||
2 | HOMEPAGE = "http://www.attrs.org/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887" | ||
5 | |||
6 | SRC_URI[sha256sum] = "75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b" | ||
7 | |||
8 | inherit pypi ptest-python-pytest python_hatchling | ||
9 | |||
10 | DEPENDS += " \ | ||
11 | python3-hatch-vcs-native \ | ||
12 | python3-hatch-fancy-pypi-readme-native \ | ||
13 | " | ||
14 | |||
15 | RDEPENDS:${PN} += " \ | ||
16 | python3-compression \ | ||
17 | python3-crypt \ | ||
18 | " | ||
19 | |||
20 | RDEPENDS:${PN}-ptest += " \ | ||
21 | python3-hypothesis \ | ||
22 | " | ||
23 | |||
24 | do_install_ptest:append() { | ||
25 | install ${S}/conftest.py ${D}${PTEST_PATH}/ | ||
26 | } | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-babel_2.17.0.bb b/meta/recipes-devtools/python/python3-babel_2.17.0.bb new file mode 100644 index 0000000000..adffaa044c --- /dev/null +++ b/meta/recipes-devtools/python/python3-babel_2.17.0.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | SUMMARY = "A collection of tools for internationalizing Python applications" | ||
2 | HOMEPAGE = "http://babel.edgewall.org/" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e83509a66c69efcb4f3a7d4f27fd0693" | ||
5 | |||
6 | SRC_URI[sha256sum] = "0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | S = "${UNPACKDIR}/babel-${PV}" | ||
11 | |||
12 | CLEANBROKEN = "1" | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-codecs \ | ||
16 | python3-difflib \ | ||
17 | python3-netserver \ | ||
18 | python3-numbers \ | ||
19 | python3-pickle \ | ||
20 | python3-pytz \ | ||
21 | python3-setuptools \ | ||
22 | python3-shell \ | ||
23 | python3-threading \ | ||
24 | " | ||
25 | |||
26 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-bcrypt-crates.inc b/meta/recipes-devtools/python/python3-bcrypt-crates.inc new file mode 100644 index 0000000000..e0a2926519 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt-crates.inc | |||
@@ -0,0 +1,106 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-bcrypt' | ||
2 | |||
3 | # from src/_bcrypt/Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/autocfg/1.4.0 \ | ||
6 | crate://crates.io/base64/0.22.1 \ | ||
7 | crate://crates.io/bcrypt/0.17.0 \ | ||
8 | crate://crates.io/bcrypt-pbkdf/0.10.0 \ | ||
9 | crate://crates.io/bitflags/2.8.0 \ | ||
10 | crate://crates.io/block-buffer/0.10.4 \ | ||
11 | crate://crates.io/blowfish/0.9.1 \ | ||
12 | crate://crates.io/byteorder/1.5.0 \ | ||
13 | crate://crates.io/cfg-if/1.0.0 \ | ||
14 | crate://crates.io/cipher/0.4.4 \ | ||
15 | crate://crates.io/cpufeatures/0.2.17 \ | ||
16 | crate://crates.io/crypto-common/0.1.6 \ | ||
17 | crate://crates.io/digest/0.10.7 \ | ||
18 | crate://crates.io/generic-array/0.14.7 \ | ||
19 | crate://crates.io/getrandom/0.3.1 \ | ||
20 | crate://crates.io/heck/0.5.0 \ | ||
21 | crate://crates.io/indoc/2.0.5 \ | ||
22 | crate://crates.io/inout/0.1.4 \ | ||
23 | crate://crates.io/libc/0.2.170 \ | ||
24 | crate://crates.io/memoffset/0.9.1 \ | ||
25 | crate://crates.io/once_cell/1.20.3 \ | ||
26 | crate://crates.io/pbkdf2/0.12.2 \ | ||
27 | crate://crates.io/portable-atomic/1.11.0 \ | ||
28 | crate://crates.io/proc-macro2/1.0.93 \ | ||
29 | crate://crates.io/pyo3/0.23.5 \ | ||
30 | crate://crates.io/pyo3-build-config/0.23.5 \ | ||
31 | crate://crates.io/pyo3-ffi/0.23.5 \ | ||
32 | crate://crates.io/pyo3-macros/0.23.5 \ | ||
33 | crate://crates.io/pyo3-macros-backend/0.23.5 \ | ||
34 | crate://crates.io/quote/1.0.38 \ | ||
35 | crate://crates.io/sha2/0.10.8 \ | ||
36 | crate://crates.io/subtle/2.6.1 \ | ||
37 | crate://crates.io/syn/2.0.98 \ | ||
38 | crate://crates.io/target-lexicon/0.12.16 \ | ||
39 | crate://crates.io/typenum/1.18.0 \ | ||
40 | crate://crates.io/unicode-ident/1.0.17 \ | ||
41 | crate://crates.io/unindent/0.2.3 \ | ||
42 | crate://crates.io/version_check/0.9.5 \ | ||
43 | crate://crates.io/wasi/0.13.3+wasi-0.2.2 \ | ||
44 | crate://crates.io/windows-targets/0.52.6 \ | ||
45 | crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ | ||
46 | crate://crates.io/windows_aarch64_msvc/0.52.6 \ | ||
47 | crate://crates.io/windows_i686_gnu/0.52.6 \ | ||
48 | crate://crates.io/windows_i686_gnullvm/0.52.6 \ | ||
49 | crate://crates.io/windows_i686_msvc/0.52.6 \ | ||
50 | crate://crates.io/windows_x86_64_gnu/0.52.6 \ | ||
51 | crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ | ||
52 | crate://crates.io/windows_x86_64_msvc/0.52.6 \ | ||
53 | crate://crates.io/wit-bindgen-rt/0.33.0 \ | ||
54 | crate://crates.io/zeroize/1.8.1 \ | ||
55 | " | ||
56 | |||
57 | SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | ||
58 | SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" | ||
59 | SRC_URI[bcrypt-0.17.0.sha256sum] = "92758ad6077e4c76a6cadbce5005f666df70d4f13b19976b1a8062eef880040f" | ||
60 | SRC_URI[bcrypt-pbkdf-0.10.0.sha256sum] = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2" | ||
61 | SRC_URI[bitflags-2.8.0.sha256sum] = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" | ||
62 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" | ||
63 | SRC_URI[blowfish-0.9.1.sha256sum] = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7" | ||
64 | SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" | ||
65 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
66 | SRC_URI[cipher-0.4.4.sha256sum] = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" | ||
67 | SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" | ||
68 | SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" | ||
69 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | ||
70 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | ||
71 | SRC_URI[getrandom-0.3.1.sha256sum] = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" | ||
72 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" | ||
73 | SRC_URI[indoc-2.0.5.sha256sum] = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" | ||
74 | SRC_URI[inout-0.1.4.sha256sum] = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" | ||
75 | SRC_URI[libc-0.2.170.sha256sum] = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" | ||
76 | SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" | ||
77 | SRC_URI[once_cell-1.20.3.sha256sum] = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" | ||
78 | SRC_URI[pbkdf2-0.12.2.sha256sum] = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" | ||
79 | SRC_URI[portable-atomic-1.11.0.sha256sum] = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" | ||
80 | SRC_URI[proc-macro2-1.0.93.sha256sum] = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" | ||
81 | SRC_URI[pyo3-0.23.5.sha256sum] = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872" | ||
82 | SRC_URI[pyo3-build-config-0.23.5.sha256sum] = "94f6cbe86ef3bf18998d9df6e0f3fc1050a8c5efa409bf712e661a4366e010fb" | ||
83 | SRC_URI[pyo3-ffi-0.23.5.sha256sum] = "e9f1b4c431c0bb1c8fb0a338709859eed0d030ff6daa34368d3b152a63dfdd8d" | ||
84 | SRC_URI[pyo3-macros-0.23.5.sha256sum] = "fbc2201328f63c4710f68abdf653c89d8dbc2858b88c5d88b0ff38a75288a9da" | ||
85 | SRC_URI[pyo3-macros-backend-0.23.5.sha256sum] = "fca6726ad0f3da9c9de093d6f116a93c1a38e417ed73bf138472cf4064f72028" | ||
86 | SRC_URI[quote-1.0.38.sha256sum] = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" | ||
87 | SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" | ||
88 | SRC_URI[subtle-2.6.1.sha256sum] = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" | ||
89 | SRC_URI[syn-2.0.98.sha256sum] = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" | ||
90 | SRC_URI[target-lexicon-0.12.16.sha256sum] = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" | ||
91 | SRC_URI[typenum-1.18.0.sha256sum] = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" | ||
92 | SRC_URI[unicode-ident-1.0.17.sha256sum] = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" | ||
93 | SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" | ||
94 | SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" | ||
95 | SRC_URI[wasi-0.13.3+wasi-0.2.2.sha256sum] = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" | ||
96 | SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" | ||
97 | SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" | ||
98 | SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" | ||
99 | SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" | ||
100 | SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" | ||
101 | SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" | ||
102 | SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" | ||
103 | SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" | ||
104 | SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" | ||
105 | SRC_URI[wit-bindgen-rt-0.33.0.sha256sum] = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" | ||
106 | SRC_URI[zeroize-1.8.1.sha256sum] = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" | ||
diff --git a/meta/recipes-devtools/python/python3-bcrypt_4.3.0.bb b/meta/recipes-devtools/python/python3-bcrypt_4.3.0.bb new file mode 100644 index 0000000000..931aae4310 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt_4.3.0.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "Modern password hashing for your software and your servers." | ||
2 | LICENSE = "Apache-2.0" | ||
3 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" | ||
4 | HOMEPAGE = "https://pypi.org/project/bcrypt/" | ||
5 | |||
6 | DEPENDS += "python3-cffi-native" | ||
7 | LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-fuse-ld=bfd', '', d)}" | ||
8 | |||
9 | SRC_URI[sha256sum] = "3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18" | ||
10 | |||
11 | inherit pypi python_setuptools3_rust cargo-update-recipe-crates ptest-python-pytest | ||
12 | |||
13 | CARGO_SRC_DIR = "src/_bcrypt" | ||
14 | |||
15 | require ${BPN}-crates.inc | ||
16 | |||
17 | RDEPENDS:${PN}:class-target += "\ | ||
18 | python3-cffi \ | ||
19 | python3-ctypes \ | ||
20 | python3-shell \ | ||
21 | " | ||
diff --git a/meta/recipes-devtools/python/python3-beartype_0.21.0.bb b/meta/recipes-devtools/python/python3-beartype_0.21.0.bb new file mode 100644 index 0000000000..43427c1472 --- /dev/null +++ b/meta/recipes-devtools/python/python3-beartype_0.21.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Unbearably fast runtime type checking in pure Python." | ||
2 | HOMEPAGE = "https://beartype.readthedocs.io" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3a5bc05a109d235912da97a053cd7a58" | ||
6 | |||
7 | SRC_URI[sha256sum] = "f9a5078f5ce87261c2d22851d19b050b64f6a805439e8793aecf01ce660d3244" | ||
8 | |||
9 | inherit pypi python_hatchling | ||
10 | |||
11 | RDEPENDS:${PN} += "python3-numbers python3-io" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-booleanpy_4.0.bb b/meta/recipes-devtools/python/python3-booleanpy_4.0.bb new file mode 100644 index 0000000000..4563cb8c4b --- /dev/null +++ b/meta/recipes-devtools/python/python3-booleanpy_4.0.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL" | ||
2 | HOMEPAGE = "https://github.com/bastikr/boolean.py" | ||
3 | |||
4 | LICENSE = "BSD-2-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd" | ||
6 | |||
7 | SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4" | ||
8 | |||
9 | PYPI_PACKAGE = "boolean.py" | ||
10 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
11 | |||
12 | inherit pypi setuptools3 | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-build_1.2.2.bb b/meta/recipes-devtools/python/python3-build_1.2.2.bb new file mode 100644 index 0000000000..8f2ee92060 --- /dev/null +++ b/meta/recipes-devtools/python/python3-build_1.2.2.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | SUMMARY = "A simple, correct PEP517 package builder" | ||
2 | HOMEPAGE = "https://github.com/pypa/build" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c" | ||
5 | |||
6 | SRC_URI[sha256sum] = "119b2fb462adef986483438377a13b2f42064a2a3a4161f24a0cca698a07ac8c" | ||
7 | |||
8 | inherit pypi python_flit_core | ||
9 | |||
10 | DEPENDS += "python3-pyproject-hooks-native" | ||
11 | |||
12 | DEPENDS:remove:class-native = "python3-build-native" | ||
13 | |||
14 | # Skip dependencies as we're doing a minimal build to bootstrap | ||
15 | PEP517_BUILD_OPTS:class-native = "--skip-dependency-check" | ||
16 | |||
17 | do_compile:prepend:class-native() { | ||
18 | export PYTHONPATH="${S}/src" | ||
19 | } | ||
20 | |||
21 | RDEPENDS:${PN} += " \ | ||
22 | python3-compression \ | ||
23 | python3-difflib \ | ||
24 | python3-ensurepip \ | ||
25 | python3-logging \ | ||
26 | python3-packaging \ | ||
27 | python3-pyproject-hooks \ | ||
28 | python3-tomllib \ | ||
29 | python3-venv \ | ||
30 | " | ||
31 | |||
32 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-calver_2025.04.17.bb b/meta/recipes-devtools/python/python3-calver_2025.04.17.bb new file mode 100644 index 0000000000..85ad18701c --- /dev/null +++ b/meta/recipes-devtools/python/python3-calver_2025.04.17.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Setuptools extension for CalVer package versions" | ||
2 | HOMEPAGE = "https://github.com/di/calver" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
5 | |||
6 | SRC_URI = "git://github.com/di/calver;branch=master;protocol=https;tag=${PV}" | ||
7 | SRCREV = "3b74bdce35f2814eb2b65db39a133d5c849ddea7" | ||
8 | |||
9 | inherit python_setuptools_build_meta ptest-python-pytest | ||
10 | |||
11 | RDEPENDS:${PN}-ptest += " \ | ||
12 | python3-pretend \ | ||
13 | " | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-certifi_2025.6.15.bb b/meta/recipes-devtools/python/python3-certifi_2025.6.15.bb new file mode 100644 index 0000000000..e8ad8da486 --- /dev/null +++ b/meta/recipes-devtools/python/python3-certifi_2025.6.15.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "Python package for providing Mozilla's CA Bundle." | ||
2 | DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \ | ||
3 | Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \ | ||
4 | which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set." | ||
5 | HOMEPAGE = " http://certifi.io/" | ||
6 | |||
7 | LICENSE = "ISC" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c" | ||
9 | |||
10 | SRC_URI[sha256sum] = "d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b" | ||
11 | |||
12 | inherit pypi python_setuptools_build_meta | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
15 | |||
16 | RDEPENDS:${PN} += "python3-io" | ||
diff --git a/meta/recipes-devtools/python/python3-cffi/0001-Cast-offset-to-size_t-to-avoid-c-11-narrowing-warnin.patch b/meta/recipes-devtools/python/python3-cffi/0001-Cast-offset-to-size_t-to-avoid-c-11-narrowing-warnin.patch new file mode 100644 index 0000000000..a919f4f6fb --- /dev/null +++ b/meta/recipes-devtools/python/python3-cffi/0001-Cast-offset-to-size_t-to-avoid-c-11-narrowing-warnin.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 2ac63f8765e62f1492ef3ee06791636700bc6cfb Mon Sep 17 00:00:00 2001 | ||
2 | From: triallax <triallax@tutanota.com> | ||
3 | Date: Sat, 29 Jun 2024 15:25:24 +0100 | ||
4 | Subject: [PATCH] Cast offset to size_t to avoid c++11-narrowing warning (#92) | ||
5 | |||
6 | e.g. with clang 18 on chimera linux: | ||
7 | |||
8 | _CFFI_test_verify_anonymous_struct_with_star_typedef.cpp:583:10: error: non-constant-expression cannot be narrowed from type 'long' to 'size_t' (aka 'unsigned long') in initializer list [-Wc++11-narrowing] | ||
9 | 583 | { "a", ((char *)&((foo_t)4096)->a) - (char *)4096, | ||
10 | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
11 | _CFFI_test_verify_anonymous_struct_with_star_typedef.cpp:583:10: note: insert an explicit cast to silence this issue | ||
12 | 583 | { "a", ((char *)&((foo_t)4096)->a) - (char *)4096, | ||
13 | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
14 | | static_cast<size_t>( ) | ||
15 | |||
16 | Upstream-Status: Backport [https://github.com/python-cffi/cffi/pull/92] | ||
17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
18 | --- | ||
19 | src/cffi/recompiler.py | 2 +- | ||
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
21 | |||
22 | diff --git a/src/cffi/recompiler.py b/src/cffi/recompiler.py | ||
23 | index ac6c163e..14d578ee 100644 | ||
24 | --- a/src/cffi/recompiler.py | ||
25 | +++ b/src/cffi/recompiler.py | ||
26 | @@ -953,7 +953,7 @@ class Recompiler: | ||
27 | if cname is None or fbitsize >= 0: | ||
28 | offset = '(size_t)-1' | ||
29 | elif named_ptr is not None: | ||
30 | - offset = '((char *)&((%s)4096)->%s) - (char *)4096' % ( | ||
31 | + offset = '(size_t)(((char *)&((%s)4096)->%s) - (char *)4096)' % ( | ||
32 | named_ptr.name, fldname) | ||
33 | else: | ||
34 | offset = 'offsetof(%s, %s)' % (tp.get_c_name(''), fldname) | ||
diff --git a/meta/recipes-devtools/python/python3-cffi/run-ptest b/meta/recipes-devtools/python/python3-cffi/run-ptest new file mode 100644 index 0000000000..24ee6f2156 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cffi/run-ptest | |||
@@ -0,0 +1,7 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # test_passing_large_list often causes an OOM, skip for now | ||
4 | |||
5 | # test_version verifies that versions match across the source tree, ignore | ||
6 | # as we don't have a source tree | ||
7 | pytest --automake -k 'not test_passing_large_list and not test_version' | ||
diff --git a/meta/recipes-devtools/python/python3-cffi_1.17.1.bb b/meta/recipes-devtools/python/python3-cffi_1.17.1.bb new file mode 100644 index 0000000000..5a3af03d9f --- /dev/null +++ b/meta/recipes-devtools/python/python3-cffi_1.17.1.bb | |||
@@ -0,0 +1,39 @@ | |||
1 | SUMMARY = "Foreign Function Interface for Python calling C code" | ||
2 | HOMEPAGE = "http://cffi.readthedocs.org/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" | ||
5 | DEPENDS += "libffi python3-pycparser" | ||
6 | |||
7 | SRC_URI[sha256sum] = "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824" | ||
8 | |||
9 | SRC_URI += "file://run-ptest \ | ||
10 | file://0001-Cast-offset-to-size_t-to-avoid-c-11-narrowing-warnin.patch" | ||
11 | |||
12 | inherit pypi python_setuptools_build_meta ptest pkgconfig | ||
13 | |||
14 | do_install_ptest() { | ||
15 | cp -r ${S}/testing ${D}${PTEST_PATH} | ||
16 | # These two files from the source tree are needed by the tests | ||
17 | install -D -m644 ${S}/src/c/parse_c_type.c ${D}${PTEST_PATH}/src/c/parse_c_type.c | ||
18 | install -D -m644 ${S}/src/cffi/parse_c_type.h ${D}${PTEST_PATH}/src/cffi/parse_c_type.h | ||
19 | } | ||
20 | |||
21 | RDEPENDS:${PN} = " \ | ||
22 | python3-ctypes \ | ||
23 | python3-io \ | ||
24 | python3-pycparser \ | ||
25 | python3-setuptools \ | ||
26 | python3-shell \ | ||
27 | " | ||
28 | |||
29 | RDEPENDS:${PN}-ptest += " \ | ||
30 | python3-pytest \ | ||
31 | python3-unittest-automake-output \ | ||
32 | python3-dev \ | ||
33 | gcc-symlinks \ | ||
34 | g++-symlinks \ | ||
35 | " | ||
36 | |||
37 | INSANE_SKIP:${PN}-ptest = "dev-deps" | ||
38 | |||
39 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-chardet_5.2.0.bb b/meta/recipes-devtools/python/python3-chardet_5.2.0.bb new file mode 100644 index 0000000000..9acbeeb3f2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-chardet_5.2.0.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "Universal encoding detector for Python 2 and 3" | ||
2 | HOMEPAGE = "https://pypi.org/project/chardet/" | ||
3 | LICENSE = "LGPL-2.1-only" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c" | ||
5 | |||
6 | SRC_URI[sha256sum] = "1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta | ||
9 | |||
10 | PACKAGES =+ "${PN}-cli" | ||
11 | FILES:${PN}-cli += " \ | ||
12 | ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \ | ||
13 | " | ||
14 | |||
15 | RDEPENDS:${PN}-cli = "${PN} " | ||
16 | |||
17 | RDEPENDS:${PN}:class-target += " \ | ||
18 | python3-logging \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-click_8.1.8.bb b/meta/recipes-devtools/python/python3-click_8.1.8.bb new file mode 100644 index 0000000000..7be3d73546 --- /dev/null +++ b/meta/recipes-devtools/python/python3-click_8.1.8.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "A simple wrapper around optparse for powerful command line utilities." | ||
2 | DESCRIPTION = "\ | ||
3 | Click is a Python package for creating beautiful command line interfaces \ | ||
4 | in a composable way with as little code as necessary. It's the "Command \ | ||
5 | Line Interface Creation Kit". It's highly configurable but comes with \ | ||
6 | sensible defaults out of the box." | ||
7 | HOMEPAGE = "http://click.pocoo.org/" | ||
8 | LICENSE = "BSD-3-Clause" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fa98232fd645608937a0fdc82e999b8" | ||
10 | |||
11 | SRC_URI[sha256sum] = "ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a" | ||
12 | |||
13 | inherit pypi python_flit_core ptest-python-pytest | ||
14 | |||
15 | RDEPENDS:${PN}-ptest += " \ | ||
16 | python3-pytest \ | ||
17 | python3-terminal \ | ||
18 | python3-unixadmin \ | ||
19 | " | ||
20 | |||
21 | do_install_ptest:append() { | ||
22 | cp -rf ${S}/pyproject.toml ${D}${PTEST_PATH}/ | ||
23 | cp -rf ${S}/docs ${D}${PTEST_PATH}/ | ||
24 | } | ||
25 | |||
26 | CLEANBROKEN = "1" | ||
27 | |||
28 | RDEPENDS:${PN} += "\ | ||
29 | python3-io \ | ||
30 | python3-threading \ | ||
31 | " | ||
32 | |||
33 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-colorama_0.4.6.bb b/meta/recipes-devtools/python/python3-colorama_0.4.6.bb new file mode 100644 index 0000000000..c33310b969 --- /dev/null +++ b/meta/recipes-devtools/python/python3-colorama_0.4.6.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | SUMMARY = "Cross-platform colored terminal text." | ||
2 | HOMEPAGE = "https://github.com/tartley/colorama" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26" | ||
5 | |||
6 | inherit pypi python_hatchling | ||
7 | |||
8 | SRC_URI[sha256sum] = "08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography-common.inc b/meta/recipes-devtools/python/python3-cryptography-common.inc new file mode 100644 index 0000000000..5ce2485ed5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-common.inc | |||
@@ -0,0 +1,6 @@ | |||
1 | # Sharing PV between cryptography and cryptography-vectors will | ||
2 | # ensure that updating one but not the other will cause a build error. | ||
3 | # | ||
4 | # Additionally AUH will detect that they share this .inc file and | ||
5 | # perform a lockstep upgrade for both. | ||
6 | PV = "45.0.4" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography-crates.inc b/meta/recipes-devtools/python/python3-cryptography-crates.inc new file mode 100644 index 0000000000..e178790448 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-crates.inc | |||
@@ -0,0 +1,76 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-cryptography' | ||
2 | |||
3 | # from Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/asn1/0.21.3 \ | ||
6 | crate://crates.io/asn1_derive/0.21.3 \ | ||
7 | crate://crates.io/autocfg/1.4.0 \ | ||
8 | crate://crates.io/base64/0.22.1 \ | ||
9 | crate://crates.io/bitflags/2.9.1 \ | ||
10 | crate://crates.io/cc/1.2.23 \ | ||
11 | crate://crates.io/cfg-if/1.0.0 \ | ||
12 | crate://crates.io/foreign-types/0.3.2 \ | ||
13 | crate://crates.io/foreign-types-shared/0.1.1 \ | ||
14 | crate://crates.io/heck/0.5.0 \ | ||
15 | crate://crates.io/indoc/2.0.6 \ | ||
16 | crate://crates.io/itoa/1.0.15 \ | ||
17 | crate://crates.io/libc/0.2.172 \ | ||
18 | crate://crates.io/memoffset/0.9.1 \ | ||
19 | crate://crates.io/once_cell/1.21.3 \ | ||
20 | crate://crates.io/openssl/0.10.72 \ | ||
21 | crate://crates.io/openssl-macros/0.1.1 \ | ||
22 | crate://crates.io/openssl-sys/0.9.108 \ | ||
23 | crate://crates.io/pem/3.0.5 \ | ||
24 | crate://crates.io/pkg-config/0.3.32 \ | ||
25 | crate://crates.io/portable-atomic/1.11.0 \ | ||
26 | crate://crates.io/proc-macro2/1.0.95 \ | ||
27 | crate://crates.io/pyo3/0.25.0 \ | ||
28 | crate://crates.io/pyo3-build-config/0.25.0 \ | ||
29 | crate://crates.io/pyo3-ffi/0.25.0 \ | ||
30 | crate://crates.io/pyo3-macros/0.25.0 \ | ||
31 | crate://crates.io/pyo3-macros-backend/0.25.0 \ | ||
32 | crate://crates.io/quote/1.0.40 \ | ||
33 | crate://crates.io/self_cell/1.2.0 \ | ||
34 | crate://crates.io/shlex/1.3.0 \ | ||
35 | crate://crates.io/syn/2.0.101 \ | ||
36 | crate://crates.io/target-lexicon/0.13.2 \ | ||
37 | crate://crates.io/unicode-ident/1.0.18 \ | ||
38 | crate://crates.io/unindent/0.2.4 \ | ||
39 | crate://crates.io/vcpkg/0.2.15 \ | ||
40 | " | ||
41 | |||
42 | SRC_URI[asn1-0.21.3.sha256sum] = "2d9c3502a6f1b50a2c69b97b71638a81ad3b21b9874604880401b9b2b0bf758f" | ||
43 | SRC_URI[asn1_derive-0.21.3.sha256sum] = "1766ebcb519d8dd186d60dfa912571edcaa2c1f995e2e56643a261a87df69a61" | ||
44 | SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | ||
45 | SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" | ||
46 | SRC_URI[bitflags-2.9.1.sha256sum] = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" | ||
47 | SRC_URI[cc-1.2.23.sha256sum] = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" | ||
48 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
49 | SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" | ||
50 | SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" | ||
51 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" | ||
52 | SRC_URI[indoc-2.0.6.sha256sum] = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" | ||
53 | SRC_URI[itoa-1.0.15.sha256sum] = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" | ||
54 | SRC_URI[libc-0.2.172.sha256sum] = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | ||
55 | SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" | ||
56 | SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" | ||
57 | SRC_URI[openssl-0.10.72.sha256sum] = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" | ||
58 | SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" | ||
59 | SRC_URI[openssl-sys-0.9.108.sha256sum] = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" | ||
60 | SRC_URI[pem-3.0.5.sha256sum] = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" | ||
61 | SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" | ||
62 | SRC_URI[portable-atomic-1.11.0.sha256sum] = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" | ||
63 | SRC_URI[proc-macro2-1.0.95.sha256sum] = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" | ||
64 | SRC_URI[pyo3-0.25.0.sha256sum] = "f239d656363bcee73afef85277f1b281e8ac6212a1d42aa90e55b90ed43c47a4" | ||
65 | SRC_URI[pyo3-build-config-0.25.0.sha256sum] = "755ea671a1c34044fa165247aaf6f419ca39caa6003aee791a0df2713d8f1b6d" | ||
66 | SRC_URI[pyo3-ffi-0.25.0.sha256sum] = "fc95a2e67091e44791d4ea300ff744be5293f394f1bafd9f78c080814d35956e" | ||
67 | SRC_URI[pyo3-macros-0.25.0.sha256sum] = "a179641d1b93920829a62f15e87c0ed791b6c8db2271ba0fd7c2686090510214" | ||
68 | SRC_URI[pyo3-macros-backend-0.25.0.sha256sum] = "9dff85ebcaab8c441b0e3f7ae40a6963ecea8a9f5e74f647e33fcf5ec9a1e89e" | ||
69 | SRC_URI[quote-1.0.40.sha256sum] = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" | ||
70 | SRC_URI[self_cell-1.2.0.sha256sum] = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" | ||
71 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" | ||
72 | SRC_URI[syn-2.0.101.sha256sum] = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" | ||
73 | SRC_URI[target-lexicon-0.13.2.sha256sum] = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" | ||
74 | SRC_URI[unicode-ident-1.0.18.sha256sum] = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" | ||
75 | SRC_URI[unindent-0.2.4.sha256sum] = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" | ||
76 | SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography-vectors.bb b/meta/recipes-devtools/python/python3-cryptography-vectors.bb new file mode 100644 index 0000000000..a8f8d0cd17 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-vectors.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | SUMMARY = "Test vectors for the cryptography package." | ||
2 | HOMEPAGE = "https://cryptography.io/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0 | BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \ | ||
6 | file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \ | ||
7 | file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b" | ||
8 | |||
9 | # NOTE: Make sure to keep this recipe at the same version as python3-cryptography | ||
10 | # Upgrade both recipes at the same time | ||
11 | require python3-cryptography-common.inc | ||
12 | SRC_URI[sha256sum] = "fbb0408df8ff2d2b3dbd2928bc5b7feebfdd36fb092fa8790d5778a9b9a1f9ef" | ||
13 | |||
14 | PYPI_PACKAGE = "cryptography_vectors" | ||
15 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
16 | |||
17 | inherit pypi python_setuptools_build_meta | ||
18 | |||
19 | DEPENDS += " \ | ||
20 | python3-cryptography \ | ||
21 | " | ||
22 | |||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography.bb b/meta/recipes-devtools/python/python3-cryptography.bb new file mode 100644 index 0000000000..f41e13f4a1 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography.bb | |||
@@ -0,0 +1,70 @@ | |||
1 | SUMMARY = "Provides cryptographic recipes and primitives to python developers" | ||
2 | HOMEPAGE = "https://cryptography.io/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0 | BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \ | ||
6 | file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \ | ||
7 | file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \ | ||
8 | " | ||
9 | LDSHARED += "-pthread" | ||
10 | |||
11 | # NOTE: Make sure to keep this recipe at the same version as python3-cryptography-vectors | ||
12 | # Upgrade both recipes at the same time | ||
13 | require python3-cryptography-common.inc | ||
14 | SRC_URI[sha256sum] = "7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57" | ||
15 | |||
16 | SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \ | ||
17 | file://check-memfree.py \ | ||
18 | file://run-ptest \ | ||
19 | " | ||
20 | |||
21 | require ${BPN}-crates.inc | ||
22 | |||
23 | inherit pypi python_maturin cargo-update-recipe-crates pkgconfig | ||
24 | |||
25 | DEPENDS += " \ | ||
26 | python3-cffi-native \ | ||
27 | " | ||
28 | |||
29 | RDEPENDS:${PN} += " \ | ||
30 | python3-cffi \ | ||
31 | " | ||
32 | |||
33 | RDEPENDS:${PN}:append:class-target = " \ | ||
34 | python3-numbers \ | ||
35 | python3-threading \ | ||
36 | " | ||
37 | |||
38 | RDEPENDS:${PN}-ptest += " \ | ||
39 | python3-bcrypt \ | ||
40 | python3-cryptography-vectors (= ${PV}) \ | ||
41 | python3-hypothesis \ | ||
42 | python3-iso8601 \ | ||
43 | python3-mmap \ | ||
44 | python3-pretend \ | ||
45 | python3-psutil \ | ||
46 | python3-pytest \ | ||
47 | python3-unittest-automake-output \ | ||
48 | python3-pytest-subtests \ | ||
49 | python3-pytz \ | ||
50 | " | ||
51 | |||
52 | inherit ptest | ||
53 | |||
54 | do_install_ptest() { | ||
55 | install -D ${UNPACKDIR}/check-memfree.py ${D}${PTEST_PATH}/ | ||
56 | install -d ${D}${PTEST_PATH}/tests | ||
57 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
58 | # remove test_x509.py as it needs benchmark and we don't | ||
59 | # want to introduce the benchmark dependency | ||
60 | rm -rf ${D}${PTEST_PATH}/tests/bench/test_x509.py | ||
61 | install -d ${D}${PTEST_PATH}/tests/hazmat | ||
62 | cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/ | ||
63 | cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/ | ||
64 | } | ||
65 | |||
66 | FILES:${PN}-dbg += " \ | ||
67 | ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \ | ||
68 | " | ||
69 | |||
70 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch b/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch new file mode 100644 index 0000000000..e238717208 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From baa3c56b87ceaea331811a0a4642991cbb12e6ea Mon Sep 17 00:00:00 2001 | ||
2 | From: Mingli Yu <mingli.yu@windriver.com> | ||
3 | Date: Tue, 17 May 2022 17:22:48 +0800 | ||
4 | Subject: [PATCH] pyproject.toml: remove --benchmark-disable option | ||
5 | |||
6 | The new version introduced below change, so remove the option | ||
7 | to avoid python3-pytest-benchmark rdepends to fix the gap. | ||
8 | 496703c8 Refs #7079 -- added basic scaffholding for benchmarks (#7087) | ||
9 | |||
10 | Fixes: | ||
11 | # ./run-ptest | ||
12 | Free memory: 31.283 GB | ||
13 | ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...] | ||
14 | pytest: error: unrecognized arguments: --benchmark-disable | ||
15 | inifile: /usr/lib/python3-cryptography/ptest/pyproject.toml | ||
16 | rootdir: /usr/lib/python3-cryptography/ptest | ||
17 | |||
18 | Upstream-Status: Inappropriate [OE specific] | ||
19 | |||
20 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
21 | |||
22 | Refresh for 42.02 | ||
23 | Signed-off-by: Tim Orling <tim.orling@konsulko.com> | ||
24 | --- | ||
25 | pyproject.toml | 2 +- | ||
26 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
27 | |||
28 | diff --git a/pyproject.toml b/pyproject.toml | ||
29 | index d9ef704..878b720 100644 | ||
30 | --- a/pyproject.toml | ||
31 | +++ b/pyproject.toml | ||
32 | @@ -129,7 +129,7 @@ exclude = [ | ||
33 | ] | ||
34 | |||
35 | [tool.pytest.ini_options] | ||
36 | -addopts = "-r s --capture=no --strict-markers --benchmark-disable" | ||
37 | +addopts = "-r s --capture=no --strict-markers" | ||
38 | console_output_style = "progress-even-when-capture-no" | ||
39 | markers = [ | ||
40 | "skip_fips: this test is not executed in FIPS mode", | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography/check-memfree.py b/meta/recipes-devtools/python/python3-cryptography/check-memfree.py new file mode 100755 index 0000000000..ed680d8d5b --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/check-memfree.py | |||
@@ -0,0 +1,10 @@ | |||
1 | #!/usr/bin/env python3 | ||
2 | # https://stackoverflow.com/questions/22102999/get-total-physical-memory-in-python/28161352 | ||
3 | import sys | ||
4 | meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines()) | ||
5 | mem_free = meminfo['MemTotal']/1024./1024. | ||
6 | if mem_free < 2.: | ||
7 | print("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free)) | ||
8 | sys.exit(1) | ||
9 | else: | ||
10 | print("Free memory: {:.3f} GB".format(mem_free)) | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography/run-ptest b/meta/recipes-devtools/python/python3-cryptography/run-ptest new file mode 100644 index 0000000000..fe191a5dc4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/run-ptest | |||
@@ -0,0 +1,9 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if ./check-memfree.py; then | ||
4 | # Skip the bench test module, we don't yet have pytest3-benchmark in core | ||
5 | # and these are more benchmarks than unit tests. | ||
6 | pytest --automake -k 'not bench' | ||
7 | else | ||
8 | echo "SKIP: crytography.not_enough_memory" | ||
9 | fi | ||
diff --git a/meta/recipes-devtools/python/python3-cython_0.29.22.bb b/meta/recipes-devtools/python/python3-cython_0.29.22.bb deleted file mode 100644 index 01f716c16f..0000000000 --- a/meta/recipes-devtools/python/python3-cython_0.29.22.bb +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-cython.inc | ||
3 | |||
4 | RDEPENDS_${PN} += "\ | ||
5 | python3-setuptools \ | ||
6 | " | ||
7 | |||
8 | # running build_ext a second time during install fails, because Python | ||
9 | # would then attempt to import cythonized modules built for the target | ||
10 | # architecture. | ||
11 | DISTUTILS_INSTALL_ARGS += "--skip-build" | ||
12 | |||
13 | do_install_append() { | ||
14 | # rename scripts that would conflict with the Python 2 build of Cython | ||
15 | mv ${D}${bindir}/cython ${D}${bindir}/cython3 | ||
16 | mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 | ||
17 | mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 | ||
18 | } | ||
19 | |||
20 | PACKAGEBUILDPKGD += "cython_fix_sources" | ||
21 | |||
22 | cython_fix_sources () { | ||
23 | sed -i -e 's#${WORKDIR}#/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}#g' \ | ||
24 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FlowControl.c \ | ||
25 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/FusedNode.c \ | ||
26 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Scanning.c \ | ||
27 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Compiler/Visitor.c \ | ||
28 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Actions.c \ | ||
29 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Plex/Scanners.c \ | ||
30 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Runtime/refnanny.c \ | ||
31 | ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/Cython-${PV}/Cython/Tempita/_tempita.c \ | ||
32 | ${PKGD}${libdir}/${PYTHON_DIR}/site-packages/Cython*/SOURCES.txt | ||
33 | } | ||
diff --git a/meta/recipes-devtools/python/python3-cython_3.1.2.bb b/meta/recipes-devtools/python/python3-cython_3.1.2.bb new file mode 100644 index 0000000000..77dbbe8b2c --- /dev/null +++ b/meta/recipes-devtools/python/python3-cython_3.1.2.bb | |||
@@ -0,0 +1,44 @@ | |||
1 | SUMMARY = "The Cython language" | ||
2 | HOMEPAGE = "https://pypi.org/project/Cython/" | ||
3 | DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ | ||
4 | It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ | ||
5 | and the messy, low-level world of C." | ||
6 | SECTION = "devel/python" | ||
7 | LICENSE = "Apache-2.0" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=61c3ee8961575861fa86c7e62bc9f69c" | ||
9 | |||
10 | SRC_URI[sha256sum] = "6bbf7a953fa6762dfecdec015e3b054ba51c0121a45ad851fa130f63f5331381" | ||
11 | |||
12 | inherit pypi setuptools3 cython | ||
13 | |||
14 | # No need to depend on self | ||
15 | DEPENDS:remove = "python3-cython-native" | ||
16 | |||
17 | do_install:append() { | ||
18 | # rename scripts that would conflict with the Python 2 build of Cython | ||
19 | mv ${D}${bindir}/cython ${D}${bindir}/cython3 | ||
20 | mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 | ||
21 | mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 | ||
22 | } | ||
23 | |||
24 | RDEPENDS:${PN}:class-target += "\ | ||
25 | python3-misc \ | ||
26 | python3-netserver \ | ||
27 | python3-pkgutil \ | ||
28 | python3-pyparsing \ | ||
29 | python3-setuptools \ | ||
30 | python3-shell \ | ||
31 | python3-xml \ | ||
32 | " | ||
33 | |||
34 | RDEPENDS:${PN}:class-nativesdk += "\ | ||
35 | nativesdk-python3-misc \ | ||
36 | nativesdk-python3-netserver \ | ||
37 | nativesdk-python3-pkgutil \ | ||
38 | nativesdk-python3-pyparsing \ | ||
39 | nativesdk-python3-setuptools \ | ||
40 | nativesdk-python3-shell \ | ||
41 | nativesdk-python3-xml \ | ||
42 | " | ||
43 | |||
44 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dbus_1.2.16.bb b/meta/recipes-devtools/python/python3-dbus_1.2.16.bb deleted file mode 100644 index e1700fa869..0000000000 --- a/meta/recipes-devtools/python/python3-dbus_1.2.16.bb +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | SUMMARY = "Python bindings for the DBus inter-process communication system" | ||
2 | SECTION = "devel/python" | ||
3 | HOMEPAGE = "http://www.freedesktop.org/Software/dbus" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4" | ||
6 | DEPENDS = "expat dbus glib-2.0 virtual/libintl" | ||
7 | |||
8 | SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz" | ||
9 | |||
10 | SRC_URI[md5sum] = "51a45c973d82bedff033a4b57d69d5d8" | ||
11 | SRC_URI[sha256sum] = "11238f1d86c995d8aed2e22f04a1e3779f0d70e587caffeab4857f3c662ed5a4" | ||
12 | |||
13 | S = "${WORKDIR}/dbus-python-${PV}" | ||
14 | |||
15 | inherit distutils3-base autotools pkgconfig | ||
16 | |||
17 | # documentation needs python3-sphinx, which is not in oe-core or meta-python for now | ||
18 | # change to use PACKAGECONFIG when python3-sphinx is added to oe-core | ||
19 | EXTRA_OECONF += "--disable-documentation" | ||
20 | |||
21 | |||
22 | RDEPENDS_${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" | ||
23 | |||
24 | FILES_${PN}-dev += "${libdir}/pkgconfig" | ||
25 | |||
26 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dbus_1.4.0.bb b/meta/recipes-devtools/python/python3-dbus_1.4.0.bb new file mode 100644 index 0000000000..2854eda30a --- /dev/null +++ b/meta/recipes-devtools/python/python3-dbus_1.4.0.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | SUMMARY = "Python bindings for the DBus inter-process communication system" | ||
2 | SECTION = "devel/python" | ||
3 | HOMEPAGE = "http://www.freedesktop.org/Software/dbus" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=97f58951300aa52a9f9e3a62bd5c846c" | ||
6 | DEPENDS = "expat dbus glib-2.0 virtual/libintl" | ||
7 | |||
8 | SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.xz" | ||
9 | |||
10 | SRC_URI[sha256sum] = "c36b28f10ffcc8f1f798aca973bcc132f91f33eb9b6b8904381b4077766043d5" | ||
11 | |||
12 | S = "${UNPACKDIR}/dbus-python-${PV}" | ||
13 | |||
14 | inherit setuptools3-base meson pkgconfig | ||
15 | |||
16 | # requires dbus-run-session | ||
17 | EXTRA_OEMESON += "-Dtests=false" | ||
18 | |||
19 | RDEPENDS:${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" | ||
20 | |||
21 | FILES:${PN}-dev += "${libdir}/pkgconfig" | ||
22 | |||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb b/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb deleted file mode 100644 index b1feee8416..0000000000 --- a/meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" | ||
2 | |||
3 | LICENSE = "GPL-3.0" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" | ||
5 | |||
6 | SRC_URI[sha256sum] = "2191919cc411fb94953b36e46bfd55ee5ad4162432ee0d0892bc2c4770ff5d7c" | ||
7 | |||
8 | PYPI_PACKAGE = "python-dbusmock" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | RDEPENDS_${PN} += "\ | ||
13 | ${PYTHON_PN}-dbus \ | ||
14 | ${PYTHON_PN}-pygobject \ | ||
15 | ${PYTHON_PN}-unittest \ | ||
16 | ${PYTHON_PN}-xml \ | ||
17 | " | ||
diff --git a/meta/recipes-devtools/python/python3-dbusmock_0.33.0.bb b/meta/recipes-devtools/python/python3-dbusmock_0.33.0.bb new file mode 100644 index 0000000000..c0ea64b6b8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-dbusmock_0.33.0.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" | ||
2 | HOMEPAGE = "https://pypi.org/project/python-dbusmock/" | ||
3 | |||
4 | LICENSE = "GPL-3.0-only" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" | ||
6 | |||
7 | SRC_URI[sha256sum] = "04efd311dd1063ac2b8f7baa79a026b5c0aa3ed4ef18cd9226f52a273fa6193a" | ||
8 | |||
9 | PYPI_PACKAGE = "python-dbusmock" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | DEPENDS += "python3-setuptools-scm-native" | ||
13 | |||
14 | RDEPENDS:${PN} += "\ | ||
15 | python3-dbus \ | ||
16 | python3-unittest \ | ||
17 | python3-xml \ | ||
18 | " | ||
19 | |||
20 | RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', '${MLPREFIX}python3-pygobject', '', d)}" | ||
21 | |||
22 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-docutils_0.16.bb b/meta/recipes-devtools/python/python3-docutils_0.16.bb deleted file mode 100644 index 50547a1b0c..0000000000 --- a/meta/recipes-devtools/python/python3-docutils_0.16.bb +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | SUMMARY = "Text processing system for documentation" | ||
2 | HOMEPAGE = "http://docutils.sourceforge.net" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "PSF & BSD-2-Clause & GPLv3" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106" | ||
6 | |||
7 | DEPENDS = "python3" | ||
8 | |||
9 | SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" | ||
10 | SRC_URI[md5sum] = "9ccb6f332e23360f964de72c8ea5f0ed" | ||
11 | SRC_URI[sha256sum] = "7d4e999cca74a52611773a42912088078363a30912e8822f7a3d38043b767573" | ||
12 | |||
13 | S = "${WORKDIR}/docutils-${PV}" | ||
14 | |||
15 | inherit distutils3 | ||
16 | |||
17 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-docutils_0.21.2.bb b/meta/recipes-devtools/python/python3-docutils_0.21.2.bb new file mode 100644 index 0000000000..d9f8160913 --- /dev/null +++ b/meta/recipes-devtools/python/python3-docutils_0.21.2.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Docutils is a modular system for processing documentation into useful formats" | ||
2 | HOMEPAGE = "http://docutils.sourceforge.net" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "CC0-1.0 & ZPL-2.1 & BSD-2-Clause & GPL-3.0-only" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING.txt;md5=382430a09a4453818aa6618f2090491b" | ||
6 | |||
7 | SRC_URI[sha256sum] = "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | RDEPENDS:${PN} += " \ | ||
12 | python3-pprint \ | ||
13 | " | ||
14 | |||
15 | do_install:append() { | ||
16 | # Make sure we use /usr/bin/env python3 | ||
17 | for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do | ||
18 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
19 | done | ||
20 | } | ||
21 | |||
22 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dtc_1.7.2.bb b/meta/recipes-devtools/python/python3-dtc_1.7.2.bb new file mode 100644 index 0000000000..9525c340cd --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtc_1.7.2.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Python Library for the Device Tree Compiler" | ||
2 | HOMEPAGE = "https://devicetree.org/" | ||
3 | DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware." | ||
4 | SECTION = "bootloader" | ||
5 | LICENSE = "GPL-2.0-only | BSD-2-Clause" | ||
6 | |||
7 | DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc" | ||
8 | |||
9 | SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main \ | ||
10 | " | ||
11 | |||
12 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | ||
13 | |||
14 | LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90" | ||
15 | |||
16 | SRCREV = "2d10aa2afe35527728db30b35ec491ecb6959e5c" | ||
17 | |||
18 | PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl" | ||
19 | |||
20 | inherit setuptools3 pkgconfig | ||
21 | |||
22 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dtschema_2025.6.1.bb b/meta/recipes-devtools/python/python3-dtschema_2025.6.1.bb new file mode 100644 index 0000000000..872084841b --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtschema_2025.6.1.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | SUMMARY = "Tooling for devicetree validation using YAML and jsonschema" | ||
2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" | ||
5 | |||
6 | inherit pypi python_setuptools_build_meta | ||
7 | |||
8 | PYPI_PACKAGE = "dtschema" | ||
9 | |||
10 | SRC_URI[sha256sum] = "6348fb23961d0cd1c89ea0c29b790c622bc34fdd1be56090724c6c1f76cbf10d" | ||
11 | |||
12 | DEPENDS += "python3-setuptools-scm-native" | ||
13 | RDEPENDS:${PN} += "\ | ||
14 | python3-dtc \ | ||
15 | python3-jsonschema \ | ||
16 | python3-rfc3987 \ | ||
17 | python3-ruamel-yaml \ | ||
18 | " | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-editables_0.5.bb b/meta/recipes-devtools/python/python3-editables_0.5.bb new file mode 100644 index 0000000000..f3261183cb --- /dev/null +++ b/meta/recipes-devtools/python/python3-editables_0.5.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "A Python library for creating editable wheels" | ||
2 | HOMEPAGE = "https://github.com/pfmoore/editables" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=41bc1be47b7bb8240db3ef928c7cb0bf" | ||
6 | |||
7 | SRC_URI[sha256sum] = "309627d9b5c4adc0e668d8c6fa7bac1ba7c8c5d415c2d27f60f081f8e80d1de2" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | RDEPENDS:${PN} += "\ | ||
12 | python3-io \ | ||
13 | " | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-flit-core_3.12.0.bb b/meta/recipes-devtools/python/python3-flit-core_3.12.0.bb new file mode 100644 index 0000000000..e40ffd0d0f --- /dev/null +++ b/meta/recipes-devtools/python/python3-flit-core_3.12.0.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "This provides a PEP 517 build backend for packages using Flit." | ||
2 | DESCRIPTION = "This provides a PEP 517 build backend for packages using \ | ||
3 | Flit. The only public interface is the API specified by PEP 517, at \ | ||
4 | flit_core.buildapi." | ||
5 | HOMEPAGE = "https://github.com/pypa/flit" | ||
6 | BUGTRACKER = "https://github.com/pypa/flit/issues" | ||
7 | |||
8 | LICENSE = "BSD-3-Clause" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=41eb78fa8a872983a882c694a8305f08" | ||
10 | |||
11 | SRC_URI[sha256sum] = "1c80f34dd96992e7758b40423d2809f48f640ca285d0b7821825e50745ec3740" | ||
12 | |||
13 | inherit pypi python_flit_core | ||
14 | |||
15 | # Need to install by hand as there's a dependency loop | ||
16 | DEPENDS:remove:class-native = " python3-build-native python3-installer-native" | ||
17 | DEPENDS:append:class-native = " unzip-native" | ||
18 | |||
19 | # We need the full flit tarball | ||
20 | PYPI_PACKAGE = "flit" | ||
21 | PEP517_SOURCE_PATH = "${S}/flit_core" | ||
22 | |||
23 | do_compile:class-native () { | ||
24 | python_flit_core_do_manual_build | ||
25 | } | ||
26 | |||
27 | do_install:class-native () { | ||
28 | python_pep517_do_bootstrap_install | ||
29 | } | ||
30 | |||
31 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-git_3.1.14.bb b/meta/recipes-devtools/python/python3-git_3.1.14.bb deleted file mode 100644 index 911c8f1487..0000000000 --- a/meta/recipes-devtools/python/python3-git_3.1.14.bb +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | SUMMARY = "Python library used to interact with Git repositories" | ||
2 | DESCRIPTION = "GitPython provides object model read and write access to \ | ||
3 | a git repository. Access repository information conveniently, alter the \ | ||
4 | index directly, handle remotes, or go down to low-level object database \ | ||
5 | access with big-files support." | ||
6 | HOMEPAGE = "http://github.com/gitpython-developers/GitPython" | ||
7 | SECTION = "devel/python" | ||
8 | LICENSE = "BSD-3-Clause" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" | ||
10 | |||
11 | PYPI_PACKAGE = "GitPython" | ||
12 | |||
13 | inherit pypi setuptools3 | ||
14 | |||
15 | SRC_URI[sha256sum] = "be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61" | ||
16 | |||
17 | DEPENDS += " ${PYTHON_PN}-gitdb" | ||
18 | |||
19 | RDEPENDS_${PN} += " \ | ||
20 | ${PYTHON_PN}-datetime \ | ||
21 | ${PYTHON_PN}-gitdb \ | ||
22 | ${PYTHON_PN}-io \ | ||
23 | ${PYTHON_PN}-logging \ | ||
24 | ${PYTHON_PN}-math \ | ||
25 | ${PYTHON_PN}-netclient \ | ||
26 | ${PYTHON_PN}-stringold \ | ||
27 | ${PYTHON_PN}-unittest \ | ||
28 | ${PYTHON_PN}-unixadmin \ | ||
29 | git \ | ||
30 | " | ||
31 | |||
32 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-git_3.1.43.bb b/meta/recipes-devtools/python/python3-git_3.1.43.bb new file mode 100644 index 0000000000..2126b5e92b --- /dev/null +++ b/meta/recipes-devtools/python/python3-git_3.1.43.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "Python library used to interact with Git repositories" | ||
2 | DESCRIPTION = "GitPython provides object model read and write access to \ | ||
3 | a git repository. Access repository information conveniently, alter the \ | ||
4 | index directly, handle remotes, or go down to low-level object database \ | ||
5 | access with big-files support." | ||
6 | HOMEPAGE = "http://github.com/gitpython-developers/GitPython" | ||
7 | SECTION = "devel/python" | ||
8 | LICENSE = "BSD-3-Clause" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5279a7ab369ba336989dcf2a107e5c8e" | ||
10 | |||
11 | PYPI_PACKAGE = "GitPython" | ||
12 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
13 | |||
14 | inherit pypi python_setuptools_build_meta | ||
15 | |||
16 | SRC_URI[sha256sum] = "35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c" | ||
17 | |||
18 | DEPENDS += " python3-gitdb" | ||
19 | |||
20 | RDEPENDS:${PN} += " \ | ||
21 | python3-datetime \ | ||
22 | python3-gitdb \ | ||
23 | python3-io \ | ||
24 | python3-logging \ | ||
25 | python3-math \ | ||
26 | python3-netclient \ | ||
27 | python3-stringold \ | ||
28 | python3-unittest \ | ||
29 | python3-unixadmin \ | ||
30 | git \ | ||
31 | " | ||
32 | |||
33 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.12.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.12.bb new file mode 100644 index 0000000000..0b7eec876f --- /dev/null +++ b/meta/recipes-devtools/python/python3-gitdb_4.0.12.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "A pure-Python git object database" | ||
2 | HOMEPAGE = "http://github.com/gitpython-developers/gitdb" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528" | ||
6 | |||
7 | DEPENDS = "python3-smmap" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | PYPI_PACKAGE = "gitdb" | ||
12 | |||
13 | SRC_URI[sha256sum] = "5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571" | ||
14 | |||
15 | RDEPENDS:${PN} += "python3-compression \ | ||
16 | python3-crypt \ | ||
17 | python3-io \ | ||
18 | python3-mmap \ | ||
19 | python3-shell \ | ||
20 | python3-smmap \ | ||
21 | " | ||
22 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb deleted file mode 100644 index fe56bf9640..0000000000 --- a/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-gitdb.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "0e2d3f34efece5deda7c55fede6507cc" | ||
diff --git a/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_25.1.0.bb b/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_25.1.0.bb new file mode 100644 index 0000000000..5d8d82edd8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_25.1.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Hatch plugin for fancy PyPI readmes " | ||
2 | HOMEPAGE = "https://pypi.org/project/hatch-fancy-pypi-readme/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ba5633c60bd3e243091013aa83b4d807" | ||
5 | |||
6 | inherit pypi python_hatchling | ||
7 | |||
8 | PYPI_PACKAGE = "hatch_fancy_pypi_readme" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | SRC_URI[sha256sum] = "9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-hatch-vcs_0.4.0.bb b/meta/recipes-devtools/python/python3-hatch-vcs_0.4.0.bb new file mode 100644 index 0000000000..ac70295f45 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatch-vcs_0.4.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Hatch plugin for versioning with your preferred VCS" | ||
2 | HOMEPAGE = "https://pypi.org/project/hatch-vcs/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26501cfd0bbddf830ee820e95551fa3d" | ||
5 | |||
6 | inherit pypi python_hatchling | ||
7 | |||
8 | PYPI_PACKAGE = "hatch_vcs" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | SRC_URI[sha256sum] = "093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-hatchling_1.27.0.bb b/meta/recipes-devtools/python/python3-hatchling_1.27.0.bb new file mode 100644 index 0000000000..5239d8155c --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatchling_1.27.0.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | SUMMARY = "The extensible, standards compliant build backend used by Hatch" | ||
2 | HOMEPAGE = "https://hatch.pypa.io/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbe2fd33fc9297692812fc94b7d27fd9" | ||
5 | |||
6 | inherit pypi python_hatchling | ||
7 | |||
8 | DEPENDS += "python3-pluggy-native python3-pathspec-native python3-packaging-native python3-editables-native python3-trove-classifiers-native" | ||
9 | DEPENDS:remove:class-native = "python3-hatchling-native" | ||
10 | |||
11 | SRC_URI[sha256sum] = "971c296d9819abb3811112fc52c7a9751c8d381898f36533bb16f9791e941fd6" | ||
12 | |||
13 | do_compile:prepend() { | ||
14 | export PYTHONPATH=src | ||
15 | } | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py b/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py new file mode 100644 index 0000000000..21267c4ac2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis/test_binary_search.py | |||
@@ -0,0 +1,135 @@ | |||
1 | # This file is part of Hypothesis, which may be found at | ||
2 | # https://github.com/HypothesisWorks/hypothesis/ | ||
3 | # | ||
4 | # Most of this work is copyright (C) 2013-2021 David R. MacIver | ||
5 | # (david@drmaciver.com), but it contains contributions by others. See | ||
6 | # CONTRIBUTING.rst for a full list of people who may hold copyright, and | ||
7 | # consult the git log if you need to determine who owns an individual | ||
8 | # contribution. | ||
9 | # | ||
10 | # This Source Code Form is subject to the terms of the Mozilla Public License, | ||
11 | # v. 2.0. If a copy of the MPL was not distributed with this file, You can | ||
12 | # obtain one at https://mozilla.org/MPL/2.0/. | ||
13 | # | ||
14 | # END HEADER | ||
15 | # | ||
16 | # SPDX-License-Identifier: MPL-2.0 | ||
17 | |||
18 | """This file demonstrates testing a binary search. | ||
19 | |||
20 | It's a useful example because the result of the binary search is so clearly | ||
21 | determined by the invariants it must satisfy, so we can simply test for those | ||
22 | invariants. | ||
23 | |||
24 | It also demonstrates the useful testing technique of testing how the answer | ||
25 | should change (or not) in response to movements in the underlying data. | ||
26 | """ | ||
27 | |||
28 | from hypothesis import given, strategies as st | ||
29 | |||
30 | |||
31 | def binary_search(ls, v): | ||
32 | """Take a list ls and a value v such that ls is sorted and v is comparable | ||
33 | with the elements of ls. | ||
34 | |||
35 | Return an index i such that 0 <= i <= len(v) with the properties: | ||
36 | |||
37 | 1. ls.insert(i, v) is sorted | ||
38 | 2. ls.insert(j, v) is not sorted for j < i | ||
39 | """ | ||
40 | # Without this check we will get an index error on the next line when the | ||
41 | # list is empty. | ||
42 | if not ls: | ||
43 | return 0 | ||
44 | |||
45 | # Without this check we will miss the case where the insertion point should | ||
46 | # be zero: The invariant we maintain in the next section is that lo is | ||
47 | # always strictly lower than the insertion point. | ||
48 | if v <= ls[0]: | ||
49 | return 0 | ||
50 | |||
51 | # Invariant: There is no insertion point i with i <= lo | ||
52 | lo = 0 | ||
53 | |||
54 | # Invariant: There is an insertion point i with i <= hi | ||
55 | hi = len(ls) | ||
56 | while lo + 1 < hi: | ||
57 | mid = (lo + hi) // 2 | ||
58 | if v > ls[mid]: | ||
59 | # Inserting v anywhere below mid would result in an unsorted list | ||
60 | # because it's > the value at mid. Therefore mid is a valid new lo | ||
61 | lo = mid | ||
62 | # Uncommenting the following lines will cause this to return a valid | ||
63 | # insertion point which is not always minimal. | ||
64 | # elif v == ls[mid]: | ||
65 | # return mid | ||
66 | else: | ||
67 | # Either v == ls[mid] in which case mid is a valid insertion point | ||
68 | # or v < ls[mid], in which case all valid insertion points must be | ||
69 | # < hi. Either way, mid is a valid new hi. | ||
70 | hi = mid | ||
71 | assert lo + 1 == hi | ||
72 | # We now know that there is a valid insertion point <= hi and there is no | ||
73 | # valid insertion point < hi because hi - 1 is lo. Therefore hi is the | ||
74 | # answer we were seeking | ||
75 | return hi | ||
76 | |||
77 | |||
78 | def is_sorted(ls): | ||
79 | """Is this list sorted?""" | ||
80 | for i in range(len(ls) - 1): | ||
81 | if ls[i] > ls[i + 1]: | ||
82 | return False | ||
83 | return True | ||
84 | |||
85 | |||
86 | Values = st.integers() | ||
87 | |||
88 | # We generate arbitrary lists and turn this into generating sorting lists | ||
89 | # by just sorting them. | ||
90 | SortedLists = st.lists(Values).map(sorted) | ||
91 | |||
92 | # We could also do it this way, but that would be a bad idea: | ||
93 | # SortedLists = st.lists(Values).filter(is_sorted) | ||
94 | # The problem is that Hypothesis will only generate long sorted lists with very | ||
95 | # low probability, so we are much better off post-processing values into the | ||
96 | # form we want than filtering them out. | ||
97 | |||
98 | |||
99 | @given(ls=SortedLists, v=Values) | ||
100 | def test_insert_is_sorted(ls, v): | ||
101 | """We test the first invariant: binary_search should return an index such | ||
102 | that inserting the value provided at that index would result in a sorted | ||
103 | set.""" | ||
104 | ls.insert(binary_search(ls, v), v) | ||
105 | assert is_sorted(ls) | ||
106 | |||
107 | |||
108 | @given(ls=SortedLists, v=Values) | ||
109 | def test_is_minimal(ls, v): | ||
110 | """We test the second invariant: binary_search should return an index such | ||
111 | that no smaller index is a valid insertion point for v.""" | ||
112 | for i in range(binary_search(ls, v)): | ||
113 | ls2 = list(ls) | ||
114 | ls2.insert(i, v) | ||
115 | assert not is_sorted(ls2) | ||
116 | |||
117 | |||
118 | @given(ls=SortedLists, v=Values) | ||
119 | def test_inserts_into_same_place_twice(ls, v): | ||
120 | """In this we test a *consequence* of the second invariant: When we insert | ||
121 | a value into a list twice, the insertion point should be the same both | ||
122 | times. This is because we know that v is > the previous element and == the | ||
123 | next element. | ||
124 | |||
125 | In theory if the former passes, this should always pass. In practice, | ||
126 | failures are detected by this test with much higher probability because it | ||
127 | deliberately puts the data into a shape that is likely to trigger a | ||
128 | failure. | ||
129 | |||
130 | This is an instance of a good general category of test: Testing how the | ||
131 | function moves in responses to changes in the underlying data. | ||
132 | """ | ||
133 | i = binary_search(ls, v) | ||
134 | ls.insert(i, v) | ||
135 | assert binary_search(ls, v) == i | ||
diff --git a/meta/recipes-devtools/python/python3-hypothesis/test_rle.py b/meta/recipes-devtools/python/python3-hypothesis/test_rle.py new file mode 100644 index 0000000000..4d618865ac --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis/test_rle.py | |||
@@ -0,0 +1,101 @@ | |||
1 | # This file is part of Hypothesis, which may be found at | ||
2 | # https://github.com/HypothesisWorks/hypothesis/ | ||
3 | # | ||
4 | # Most of this work is copyright (C) 2013-2021 David R. MacIver | ||
5 | # (david@drmaciver.com), but it contains contributions by others. See | ||
6 | # CONTRIBUTING.rst for a full list of people who may hold copyright, and | ||
7 | # consult the git log if you need to determine who owns an individual | ||
8 | # contribution. | ||
9 | # | ||
10 | # This Source Code Form is subject to the terms of the Mozilla Public License, | ||
11 | # v. 2.0. If a copy of the MPL was not distributed with this file, You can | ||
12 | # obtain one at https://mozilla.org/MPL/2.0/. | ||
13 | # | ||
14 | # END HEADER | ||
15 | # | ||
16 | # SPDX-License-Identifier: MPL-2.0 | ||
17 | |||
18 | """This example demonstrates testing a run length encoding scheme. That is, we | ||
19 | take a sequence and represent it by a shorter sequence where each 'run' of | ||
20 | consecutive equal elements is represented as a single element plus a count. So | ||
21 | e.g. | ||
22 | |||
23 | [1, 1, 1, 1, 2, 1] is represented as [[1, 4], [2, 1], [1, 1]] | ||
24 | |||
25 | This demonstrates the useful decode(encode(x)) == x invariant that is often | ||
26 | a fruitful source of testing with Hypothesis. | ||
27 | |||
28 | It also has an example of testing invariants in response to changes in the | ||
29 | underlying data. | ||
30 | """ | ||
31 | |||
32 | from hypothesis import assume, given, strategies as st | ||
33 | |||
34 | |||
35 | def run_length_encode(seq): | ||
36 | """Encode a sequence as a new run-length encoded sequence.""" | ||
37 | if not seq: | ||
38 | return [] | ||
39 | # By starting off the count at zero we simplify the iteration logic | ||
40 | # slightly. | ||
41 | result = [[seq[0], 0]] | ||
42 | for s in seq: | ||
43 | if ( | ||
44 | # If you uncomment this line this branch will be skipped and we'll | ||
45 | # always append a new run of length 1. Note which tests fail. | ||
46 | # False and | ||
47 | s | ||
48 | == result[-1][0] | ||
49 | # Try uncommenting this line and see what problems occur: | ||
50 | # and result[-1][-1] < 2 | ||
51 | ): | ||
52 | result[-1][1] += 1 | ||
53 | else: | ||
54 | result.append([s, 1]) | ||
55 | return result | ||
56 | |||
57 | |||
58 | def run_length_decode(seq): | ||
59 | """Take a previously encoded sequence and reconstruct the original from | ||
60 | it.""" | ||
61 | result = [] | ||
62 | for s, i in seq: | ||
63 | for _ in range(i): | ||
64 | result.append(s) | ||
65 | return result | ||
66 | |||
67 | |||
68 | # We use lists of a type that should have a relatively high duplication rate, | ||
69 | # otherwise we'd almost never get any runs. | ||
70 | Lists = st.lists(st.integers(0, 10)) | ||
71 | |||
72 | |||
73 | @given(Lists) | ||
74 | def test_decodes_to_starting_sequence(ls): | ||
75 | """If we encode a sequence and then decode the result, we should get the | ||
76 | original sequence back. | ||
77 | |||
78 | Otherwise we've done something very wrong. | ||
79 | """ | ||
80 | assert run_length_decode(run_length_encode(ls)) == ls | ||
81 | |||
82 | |||
83 | @given(Lists, st.data()) | ||
84 | def test_duplicating_an_element_does_not_increase_length(ls, data): | ||
85 | """The previous test could be passed by simply returning the input sequence | ||
86 | so we need something that tests the compression property of our encoding. | ||
87 | |||
88 | In this test we deliberately introduce or extend a run and assert | ||
89 | that this does not increase the length of our encoding, because they | ||
90 | should be part of the same run in the final result. | ||
91 | """ | ||
92 | # We use assume to get a valid index into the list. We could also have used | ||
93 | # e.g. flatmap, but this is relatively straightforward and will tend to | ||
94 | # perform better. | ||
95 | assume(ls) | ||
96 | i = data.draw(st.integers(0, len(ls) - 1)) | ||
97 | ls2 = list(ls) | ||
98 | # duplicating the value at i right next to it guarantees they are part of | ||
99 | # the same run in the resulting compression. | ||
100 | ls2.insert(i, ls2[i]) | ||
101 | assert len(run_length_encode(ls2)) == len(run_length_encode(ls)) | ||
diff --git a/meta/recipes-devtools/python/python3-hypothesis_6.135.9.bb b/meta/recipes-devtools/python/python3-hypothesis_6.135.9.bb new file mode 100644 index 0000000000..efc5229fbc --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis_6.135.9.bb | |||
@@ -0,0 +1,36 @@ | |||
1 | SUMMARY = "A library for property-based testing" | ||
2 | HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" | ||
3 | LICENSE = "MPL-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" | ||
5 | |||
6 | PYPI_PACKAGE = "hypothesis" | ||
7 | PTEST_PYTEST_DIR ?= "examples" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
10 | |||
11 | SRC_URI += " \ | ||
12 | file://test_binary_search.py \ | ||
13 | file://test_rle.py \ | ||
14 | " | ||
15 | |||
16 | SRC_URI[sha256sum] = "a80a256268b8af3d34d62be30f6bf4a7d099b2b762621cc5f3f1de65e7b98543" | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-attrs \ | ||
20 | python3-compression \ | ||
21 | python3-core \ | ||
22 | python3-json \ | ||
23 | python3-pytest \ | ||
24 | python3-sortedcontainers \ | ||
25 | python3-statistics \ | ||
26 | python3-unittest \ | ||
27 | python3-zoneinfo \ | ||
28 | " | ||
29 | |||
30 | do_install_ptest:append() { | ||
31 | install -d ${D}${PTEST_PATH}/${PTEST_PYTEST_DIR} | ||
32 | install -m 0755 ${UNPACKDIR}/test_binary_search.py ${D}${PTEST_PATH}/${PTEST_PYTEST_DIR}/ | ||
33 | install -m 0755 ${UNPACKDIR}/test_rle.py ${D}${PTEST_PATH}/${PTEST_PYTEST_DIR}/ | ||
34 | } | ||
35 | |||
36 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb b/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb deleted file mode 100644 index be9418386f..0000000000 --- a/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | SUMMARY = "A library for property-based testing" | ||
2 | HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" | ||
3 | LICENSE = "MPL-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" | ||
5 | |||
6 | PYPI_PACKAGE = "hypothesis" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | SRC_URI[sha256sum] = "c16fbde26b65c98a2464c48209b066c2f6dab5e8e38acd9d959021eb8d58b6c0" | ||
11 | |||
12 | RDEPENDS_${PN} += "python3-attrs python3-core python3-sortedcontainers" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-idna_3.10.bb b/meta/recipes-devtools/python/python3-idna_3.10.bb new file mode 100644 index 0000000000..bd6529e720 --- /dev/null +++ b/meta/recipes-devtools/python/python3-idna_3.10.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Internationalised Domain Names in Applications" | ||
2 | HOMEPAGE = "https://github.com/kjd/idna" | ||
3 | LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=204c0612e40a4dd46012a78d02c80fb1" | ||
5 | |||
6 | SRC_URI[sha256sum] = "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" | ||
7 | |||
8 | inherit pypi python_flit_core ptest-python-pytest | ||
9 | |||
10 | RDEPENDS:${PN} += "python3-codecs" | ||
11 | RDEPENDS:${PN}-ptest += "python3-unittest-automake-output" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb b/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb new file mode 100644 index 0000000000..7d37e2be24 --- /dev/null +++ b/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Parses image files' header and return image size." | ||
2 | HOMEPAGE = "https://github.com/shibukawa/imagesize_py" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=0c128f0f7e8a02e1b83884c0b5a41cda" | ||
6 | |||
7 | SRC_URI[sha256sum] = "69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a" | ||
8 | |||
9 | inherit setuptools3 pypi | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} = "python3-xml" | ||
diff --git a/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb b/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb deleted file mode 100644 index 81f24e55c2..0000000000 --- a/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | DESCRIPTION = "Read metadata from Python packages" | ||
2 | HOMEPAGE = "https://pypi.org/project/importlib-metadata/" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" | ||
5 | |||
6 | inherit pypi setuptools3 | ||
7 | |||
8 | PYPI_PACKAGE = "importlib_metadata" | ||
9 | UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/" | ||
10 | |||
11 | SRC_URI[sha256sum] = "fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d" | ||
12 | |||
13 | S = "${WORKDIR}/importlib_metadata-${PV}" | ||
14 | |||
15 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native" | ||
16 | RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" | ||
17 | RDEPENDS_${PN}_append_class-target = " python3-misc" | ||
18 | RDEPENDS_${PN}_append_class-nativesdk = " python3-misc" | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb b/meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb deleted file mode 100644 index af4291bbf4..0000000000 --- a/meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | SUMMARY = "A small and simple INI-file parser module" | ||
2 | |||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" | ||
5 | |||
6 | SRC_URI[md5sum] = "0b7f3be87481211c183eae095bcea6f1" | ||
7 | SRC_URI[sha256sum] = "bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
diff --git a/meta/recipes-devtools/python/python3-iniconfig_2.1.0.bb b/meta/recipes-devtools/python/python3-iniconfig_2.1.0.bb new file mode 100644 index 0000000000..d9b31aea4a --- /dev/null +++ b/meta/recipes-devtools/python/python3-iniconfig_2.1.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "A small and simple INI-file parser module" | ||
2 | HOMEPAGE = "https://pypi.org/project/iniconfig/" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4a73af4b5f1f3a8731e5def70e8c1254" | ||
6 | |||
7 | SRC_URI[sha256sum] = "3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7" | ||
8 | |||
9 | DEPENDS += "python3-hatch-vcs-native" | ||
10 | |||
11 | inherit pypi python_hatchling | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-iniparse/0001-Add-python-3-compatibility.patch b/meta/recipes-devtools/python/python3-iniparse/0001-Add-python-3-compatibility.patch deleted file mode 100644 index 44090a20d0..0000000000 --- a/meta/recipes-devtools/python/python3-iniparse/0001-Add-python-3-compatibility.patch +++ /dev/null | |||
@@ -1,552 +0,0 @@ | |||
1 | From 8a98e4d44a5e59439a4b6bd95368cc362412c995 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 24 Mar 2017 18:06:08 +0200 | ||
4 | Subject: [PATCH] Add python 3 compatibility. | ||
5 | |||
6 | Taken from | ||
7 | http://pkgs.fedoraproject.org/cgit/rpms/python-iniparse.git/tree/python-iniparse-python3-compat.patch | ||
8 | |||
9 | Upstream-Status: Inappropriate [upstream is defunct] | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | --- | ||
12 | iniparse/__init__.py | 20 ++++++++++---------- | ||
13 | iniparse/compat.py | 30 ++++++++++++++++-------------- | ||
14 | iniparse/config.py | 16 ++++++++-------- | ||
15 | iniparse/configparser.py | 7 +++++++ | ||
16 | iniparse/ini.py | 20 ++++++++++++-------- | ||
17 | iniparse/utils.py | 4 ++-- | ||
18 | tests/__init__.py | 14 +++++++------- | ||
19 | tests/test_compat.py | 23 +++++++++++++++-------- | ||
20 | tests/test_fuzz.py | 18 +++++++++--------- | ||
21 | tests/test_ini.py | 8 ++++---- | ||
22 | tests/test_misc.py | 4 ++-- | ||
23 | tests/test_tidy.py | 2 +- | ||
24 | tests/test_unicode.py | 10 +++++----- | ||
25 | 13 files changed, 98 insertions(+), 78 deletions(-) | ||
26 | create mode 100644 iniparse/configparser.py | ||
27 | |||
28 | diff --git a/iniparse/__init__.py b/iniparse/__init__.py | ||
29 | index 8de756f..7193f92 100644 | ||
30 | --- a/iniparse/__init__.py | ||
31 | +++ b/iniparse/__init__.py | ||
32 | @@ -3,17 +3,17 @@ | ||
33 | # Copyright (c) 2007 Tim Lauridsen <tla@rasmil.dk> | ||
34 | # All Rights Reserved. See LICENSE-PSF & LICENSE for details. | ||
35 | |||
36 | -from ini import INIConfig, change_comment_syntax | ||
37 | -from config import BasicConfig, ConfigNamespace | ||
38 | -from compat import RawConfigParser, ConfigParser, SafeConfigParser | ||
39 | -from utils import tidy | ||
40 | +from .ini import INIConfig, change_comment_syntax | ||
41 | +from .config import BasicConfig, ConfigNamespace | ||
42 | +from .compat import RawConfigParser, ConfigParser, SafeConfigParser | ||
43 | +from .utils import tidy | ||
44 | |||
45 | -from ConfigParser import DuplicateSectionError, \ | ||
46 | - NoSectionError, NoOptionError, \ | ||
47 | - InterpolationMissingOptionError, \ | ||
48 | - InterpolationDepthError, \ | ||
49 | - InterpolationSyntaxError, \ | ||
50 | - DEFAULTSECT, MAX_INTERPOLATION_DEPTH | ||
51 | +from .configparser import DuplicateSectionError, \ | ||
52 | + NoSectionError, NoOptionError, \ | ||
53 | + InterpolationMissingOptionError, \ | ||
54 | + InterpolationDepthError, \ | ||
55 | + InterpolationSyntaxError, \ | ||
56 | + DEFAULTSECT, MAX_INTERPOLATION_DEPTH | ||
57 | |||
58 | __all__ = [ | ||
59 | 'BasicConfig', 'ConfigNamespace', | ||
60 | diff --git a/iniparse/compat.py b/iniparse/compat.py | ||
61 | index db89ed8..f95c25c 100644 | ||
62 | --- a/iniparse/compat.py | ||
63 | +++ b/iniparse/compat.py | ||
64 | @@ -12,19 +12,21 @@ The underlying INIConfig object can be accessed as cfg.data | ||
65 | """ | ||
66 | |||
67 | import re | ||
68 | -from ConfigParser import DuplicateSectionError, \ | ||
69 | - NoSectionError, NoOptionError, \ | ||
70 | - InterpolationMissingOptionError, \ | ||
71 | - InterpolationDepthError, \ | ||
72 | - InterpolationSyntaxError, \ | ||
73 | - DEFAULTSECT, MAX_INTERPOLATION_DEPTH | ||
74 | +from .configparser import DuplicateSectionError, \ | ||
75 | + NoSectionError, NoOptionError, \ | ||
76 | + InterpolationMissingOptionError, \ | ||
77 | + InterpolationDepthError, \ | ||
78 | + InterpolationSyntaxError, \ | ||
79 | + DEFAULTSECT, MAX_INTERPOLATION_DEPTH | ||
80 | |||
81 | # These are imported only for compatiability. | ||
82 | # The code below does not reference them directly. | ||
83 | -from ConfigParser import Error, InterpolationError, \ | ||
84 | - MissingSectionHeaderError, ParsingError | ||
85 | +from .configparser import Error, InterpolationError, \ | ||
86 | + MissingSectionHeaderError, ParsingError | ||
87 | |||
88 | -import ini | ||
89 | +import six | ||
90 | + | ||
91 | +from . import ini | ||
92 | |||
93 | class RawConfigParser(object): | ||
94 | def __init__(self, defaults=None, dict_type=dict): | ||
95 | @@ -56,7 +58,7 @@ class RawConfigParser(object): | ||
96 | # The default section is the only one that gets the case-insensitive | ||
97 | # treatment - so it is special-cased here. | ||
98 | if section.lower() == "default": | ||
99 | - raise ValueError, 'Invalid section name: %s' % section | ||
100 | + raise ValueError('Invalid section name: %s' % section) | ||
101 | |||
102 | if self.has_section(section): | ||
103 | raise DuplicateSectionError(section) | ||
104 | @@ -88,7 +90,7 @@ class RawConfigParser(object): | ||
105 | filename may also be given. | ||
106 | """ | ||
107 | files_read = [] | ||
108 | - if isinstance(filenames, basestring): | ||
109 | + if isinstance(filenames, six.string_types): | ||
110 | filenames = [filenames] | ||
111 | for filename in filenames: | ||
112 | try: | ||
113 | @@ -143,7 +145,7 @@ class RawConfigParser(object): | ||
114 | def getboolean(self, section, option): | ||
115 | v = self.get(section, option) | ||
116 | if v.lower() not in self._boolean_states: | ||
117 | - raise ValueError, 'Not a boolean: %s' % v | ||
118 | + raise ValueError('Not a boolean: %s' % v) | ||
119 | return self._boolean_states[v.lower()] | ||
120 | |||
121 | def has_option(self, section, option): | ||
122 | @@ -234,7 +236,7 @@ class ConfigParser(RawConfigParser): | ||
123 | if "%(" in value: | ||
124 | try: | ||
125 | value = value % vars | ||
126 | - except KeyError, e: | ||
127 | + except KeyError as e: | ||
128 | raise InterpolationMissingOptionError( | ||
129 | option, section, rawval, e.args[0]) | ||
130 | else: | ||
131 | @@ -283,7 +285,7 @@ class SafeConfigParser(ConfigParser): | ||
132 | _badpercent_re = re.compile(r"%[^%]|%$") | ||
133 | |||
134 | def set(self, section, option, value): | ||
135 | - if not isinstance(value, basestring): | ||
136 | + if not isinstance(value, six.string_types): | ||
137 | raise TypeError("option values must be strings") | ||
138 | # check for bad percent signs: | ||
139 | # first, replace all "good" interpolations | ||
140 | diff --git a/iniparse/config.py b/iniparse/config.py | ||
141 | index 5cfa2ea..3b28549 100644 | ||
142 | --- a/iniparse/config.py | ||
143 | +++ b/iniparse/config.py | ||
144 | @@ -143,7 +143,7 @@ class BasicConfig(ConfigNamespace): | ||
145 | |||
146 | >>> n.aaa = 42 | ||
147 | >>> del n.x | ||
148 | - >>> print n | ||
149 | + >>> print(n) | ||
150 | aaa = 42 | ||
151 | name.first = paramjit | ||
152 | name.last = oberoi | ||
153 | @@ -152,7 +152,7 @@ class BasicConfig(ConfigNamespace): | ||
154 | |||
155 | >>> isinstance(n.name, ConfigNamespace) | ||
156 | True | ||
157 | - >>> print n.name | ||
158 | + >>> print(n.name) | ||
159 | first = paramjit | ||
160 | last = oberoi | ||
161 | >>> sorted(list(n.name)) | ||
162 | @@ -160,7 +160,7 @@ class BasicConfig(ConfigNamespace): | ||
163 | |||
164 | Finally, values can be read from a file as follows: | ||
165 | |||
166 | - >>> from StringIO import StringIO | ||
167 | + >>> from six import StringIO | ||
168 | >>> sio = StringIO(''' | ||
169 | ... # comment | ||
170 | ... ui.height = 100 | ||
171 | @@ -171,7 +171,7 @@ class BasicConfig(ConfigNamespace): | ||
172 | ... ''') | ||
173 | >>> n = BasicConfig() | ||
174 | >>> n._readfp(sio) | ||
175 | - >>> print n | ||
176 | + >>> print(n) | ||
177 | complexity = medium | ||
178 | data.secret.password = goodness=gracious me | ||
179 | have_python | ||
180 | @@ -199,7 +199,7 @@ class BasicConfig(ConfigNamespace): | ||
181 | |||
182 | def __str__(self, prefix=''): | ||
183 | lines = [] | ||
184 | - keys = self._data.keys() | ||
185 | + keys = list(self._data.keys()) | ||
186 | keys.sort() | ||
187 | for name in keys: | ||
188 | value = self._data[name] | ||
189 | @@ -258,7 +258,7 @@ def update_config(target, source): | ||
190 | >>> n.ui.display_clock = True | ||
191 | >>> n.ui.display_qlength = True | ||
192 | >>> n.ui.width = 150 | ||
193 | - >>> print n | ||
194 | + >>> print(n) | ||
195 | playlist.expand_playlist = True | ||
196 | ui.display_clock = True | ||
197 | ui.display_qlength = True | ||
198 | @@ -267,7 +267,7 @@ def update_config(target, source): | ||
199 | >>> from iniparse import ini | ||
200 | >>> i = ini.INIConfig() | ||
201 | >>> update_config(i, n) | ||
202 | - >>> print i | ||
203 | + >>> print(i) | ||
204 | [playlist] | ||
205 | expand_playlist = True | ||
206 | <BLANKLINE> | ||
207 | @@ -277,7 +277,7 @@ def update_config(target, source): | ||
208 | width = 150 | ||
209 | |||
210 | """ | ||
211 | - for name in source: | ||
212 | + for name in sorted(source): | ||
213 | value = source[name] | ||
214 | if isinstance(value, ConfigNamespace): | ||
215 | if name in target: | ||
216 | diff --git a/iniparse/configparser.py b/iniparse/configparser.py | ||
217 | new file mode 100644 | ||
218 | index 0000000..c543d50 | ||
219 | --- /dev/null | ||
220 | +++ b/iniparse/configparser.py | ||
221 | @@ -0,0 +1,7 @@ | ||
222 | +try: | ||
223 | + from ConfigParser import * | ||
224 | + # not all objects get imported with __all__ | ||
225 | + from ConfigParser import Error, InterpolationMissingOptionError | ||
226 | +except ImportError: | ||
227 | + from configparser import * | ||
228 | + from configparser import Error, InterpolationMissingOptionError | ||
229 | diff --git a/iniparse/ini.py b/iniparse/ini.py | ||
230 | index 408354d..052d9e9 100644 | ||
231 | --- a/iniparse/ini.py | ||
232 | +++ b/iniparse/ini.py | ||
233 | @@ -7,7 +7,7 @@ | ||
234 | |||
235 | Example: | ||
236 | |||
237 | - >>> from StringIO import StringIO | ||
238 | + >>> from six import StringIO | ||
239 | >>> sio = StringIO('''# configure foo-application | ||
240 | ... [foo] | ||
241 | ... bar1 = qualia | ||
242 | @@ -16,14 +16,14 @@ Example: | ||
243 | ... special = 1''') | ||
244 | |||
245 | >>> cfg = INIConfig(sio) | ||
246 | - >>> print cfg.foo.bar1 | ||
247 | + >>> print(cfg.foo.bar1) | ||
248 | qualia | ||
249 | - >>> print cfg['foo-ext'].special | ||
250 | + >>> print(cfg['foo-ext'].special) | ||
251 | 1 | ||
252 | >>> cfg.foo.newopt = 'hi!' | ||
253 | >>> cfg.baz.enabled = 0 | ||
254 | |||
255 | - >>> print cfg | ||
256 | + >>> print(cfg) | ||
257 | # configure foo-application | ||
258 | [foo] | ||
259 | bar1 = qualia | ||
260 | @@ -42,9 +42,11 @@ Example: | ||
261 | # Backward-compatiable with ConfigParser | ||
262 | |||
263 | import re | ||
264 | -from ConfigParser import DEFAULTSECT, ParsingError, MissingSectionHeaderError | ||
265 | +from .configparser import DEFAULTSECT, ParsingError, MissingSectionHeaderError | ||
266 | |||
267 | -import config | ||
268 | +import six | ||
269 | + | ||
270 | +from . import config | ||
271 | |||
272 | class LineType(object): | ||
273 | line = None | ||
274 | @@ -278,6 +280,8 @@ class LineContainer(object): | ||
275 | value = property(get_value, set_value) | ||
276 | |||
277 | def __str__(self): | ||
278 | + for c in self.contents: | ||
279 | + pass#print(c.__str__()) | ||
280 | s = [x.__str__() for x in self.contents] | ||
281 | return '\n'.join(s) | ||
282 | |||
283 | @@ -465,7 +469,7 @@ class INIConfig(config.ConfigNamespace): | ||
284 | self._sections = {} | ||
285 | if defaults is None: defaults = {} | ||
286 | self._defaults = INISection(LineContainer(), optionxformsource=self) | ||
287 | - for name, value in defaults.iteritems(): | ||
288 | + for name, value in defaults.items(): | ||
289 | self._defaults[name] = value | ||
290 | if fp is not None: | ||
291 | self._readfp(fp) | ||
292 | @@ -551,7 +555,7 @@ class INIConfig(config.ConfigNamespace): | ||
293 | |||
294 | for line in readline_iterator(fp): | ||
295 | # Check for BOM on first line | ||
296 | - if linecount == 0 and isinstance(line, unicode): | ||
297 | + if linecount == 0 and isinstance(line, six.text_type): | ||
298 | if line[0] == u'\ufeff': | ||
299 | line = line[1:] | ||
300 | self._bom = True | ||
301 | diff --git a/iniparse/utils.py b/iniparse/utils.py | ||
302 | index 829fc28..f8b773a 100644 | ||
303 | --- a/iniparse/utils.py | ||
304 | +++ b/iniparse/utils.py | ||
305 | @@ -1,5 +1,5 @@ | ||
306 | -import compat | ||
307 | -from ini import LineContainer, EmptyLine | ||
308 | +from . import compat | ||
309 | +from .ini import LineContainer, EmptyLine | ||
310 | |||
311 | def tidy(cfg): | ||
312 | """Clean up blank lines. | ||
313 | diff --git a/tests/__init__.py b/tests/__init__.py | ||
314 | index f1fa321..88689fb 100644 | ||
315 | --- a/tests/__init__.py | ||
316 | +++ b/tests/__init__.py | ||
317 | @@ -1,12 +1,12 @@ | ||
318 | import unittest, doctest | ||
319 | |||
320 | -import test_ini | ||
321 | -import test_misc | ||
322 | -import test_fuzz | ||
323 | -import test_compat | ||
324 | -import test_unicode | ||
325 | -import test_tidy | ||
326 | -import test_multiprocessing | ||
327 | +from . import test_ini | ||
328 | +from . import test_misc | ||
329 | +from . import test_fuzz | ||
330 | +from . import test_compat | ||
331 | +from . import test_unicode | ||
332 | +from . import test_tidy | ||
333 | +from . import test_multiprocessing | ||
334 | from iniparse import config | ||
335 | from iniparse import ini | ||
336 | |||
337 | diff --git a/tests/test_compat.py b/tests/test_compat.py | ||
338 | index b8da3d5..b6dfb5c 100644 | ||
339 | --- a/tests/test_compat.py | ||
340 | +++ b/tests/test_compat.py | ||
341 | @@ -1,9 +1,16 @@ | ||
342 | from iniparse import compat as ConfigParser | ||
343 | -import StringIO | ||
344 | +from six import StringIO | ||
345 | +try: | ||
346 | + import UserDict | ||
347 | +except ImportError: | ||
348 | + import collections as UserDict | ||
349 | import unittest | ||
350 | -import UserDict | ||
351 | |||
352 | -from test import test_support | ||
353 | +import sys | ||
354 | +if sys.version_info[0] < 3: | ||
355 | + from test import test_support | ||
356 | +else: | ||
357 | + from test import support as test_support | ||
358 | |||
359 | class SortedDict(UserDict.UserDict): | ||
360 | def items(self): | ||
361 | @@ -35,7 +42,7 @@ class TestCaseBase(unittest.TestCase): | ||
362 | |||
363 | def fromstring(self, string, defaults=None): | ||
364 | cf = self.newconfig(defaults) | ||
365 | - sio = StringIO.StringIO(string) | ||
366 | + sio = StringIO(string) | ||
367 | cf.readfp(sio) | ||
368 | return cf | ||
369 | |||
370 | @@ -161,7 +168,7 @@ class TestCaseBase(unittest.TestCase): | ||
371 | "No Section!\n") | ||
372 | |||
373 | def parse_error(self, exc, src): | ||
374 | - sio = StringIO.StringIO(src) | ||
375 | + sio = StringIO(src) | ||
376 | self.assertRaises(exc, self.cf.readfp, sio) | ||
377 | |||
378 | def test_query_errors(self): | ||
379 | @@ -181,7 +188,7 @@ class TestCaseBase(unittest.TestCase): | ||
380 | def get_error(self, exc, section, option): | ||
381 | try: | ||
382 | self.cf.get(section, option) | ||
383 | - except exc, e: | ||
384 | + except exc as e: | ||
385 | return e | ||
386 | else: | ||
387 | self.fail("expected exception type %s.%s" | ||
388 | @@ -227,7 +234,7 @@ class TestCaseBase(unittest.TestCase): | ||
389 | "foo: another very\n" | ||
390 | " long line" | ||
391 | ) | ||
392 | - output = StringIO.StringIO() | ||
393 | + output = StringIO() | ||
394 | cf.write(output) | ||
395 | self.assertEqual( | ||
396 | output.getvalue(), | ||
397 | @@ -465,7 +472,7 @@ class SortedTestCase(RawConfigParserTestCase): | ||
398 | "o1=4\n" | ||
399 | "[a]\n" | ||
400 | "k=v\n") | ||
401 | - output = StringIO.StringIO() | ||
402 | + output = StringIO() | ||
403 | self.cf.write(output) | ||
404 | self.assertEquals(output.getvalue(), | ||
405 | "[a]\n" | ||
406 | diff --git a/tests/test_fuzz.py b/tests/test_fuzz.py | ||
407 | index 5420dcc..b219500 100644 | ||
408 | --- a/tests/test_fuzz.py | ||
409 | +++ b/tests/test_fuzz.py | ||
410 | @@ -1,9 +1,10 @@ | ||
411 | import re | ||
412 | import os | ||
413 | import random | ||
414 | +import sys | ||
415 | import unittest | ||
416 | -import ConfigParser | ||
417 | -from StringIO import StringIO | ||
418 | +from six import StringIO | ||
419 | +from six.moves import configparser | ||
420 | from iniparse import compat, ini, tidy | ||
421 | |||
422 | # TODO: | ||
423 | @@ -96,24 +97,25 @@ class test_fuzz(unittest.TestCase): | ||
424 | s = '\n'.join(good_lines) | ||
425 | cc = compat.RawConfigParser() | ||
426 | cc.readfp(StringIO(s)) | ||
427 | - cc_py = ConfigParser.RawConfigParser() | ||
428 | + cc_py = configparser.RawConfigParser() | ||
429 | cc_py.readfp(StringIO(s)) | ||
430 | # compare the two configparsers | ||
431 | self.assertEqualConfig(cc_py, cc) | ||
432 | # check that tidy does not change semantics | ||
433 | tidy(cc) | ||
434 | - cc_tidy = ConfigParser.RawConfigParser() | ||
435 | + cc_tidy = configparser.RawConfigParser() | ||
436 | cc_tidy.readfp(StringIO(str(cc.data))) | ||
437 | self.assertEqualConfig(cc_py, cc_tidy) | ||
438 | except AssertionError: | ||
439 | fname = 'fuzz-test-iter-%d.ini' % fuzz_iter | ||
440 | - print 'Fuzz test failed at iteration', fuzz_iter | ||
441 | - print 'Writing out failing INI file as', fname | ||
442 | + print('Fuzz test failed at iteration', fuzz_iter) | ||
443 | + print('Writing out failing INI file as', fname) | ||
444 | f = open(fname, 'w') | ||
445 | f.write(s) | ||
446 | f.close() | ||
447 | raise | ||
448 | |||
449 | + @unittest.skipIf(sys.version_info[0] > 2, 'http://code.google.com/p/iniparse/issues/detail?id=22#c9') | ||
450 | def assertEqualConfig(self, c1, c2): | ||
451 | self.assertEqualSorted(c1.sections(), c2.sections()) | ||
452 | self.assertEqualSorted(c1.defaults().items(), c2.defaults().items()) | ||
453 | @@ -123,9 +125,7 @@ class test_fuzz(unittest.TestCase): | ||
454 | self.assertEqual(c1.get(sec, opt), c2.get(sec, opt)) | ||
455 | |||
456 | def assertEqualSorted(self, l1, l2): | ||
457 | - l1.sort() | ||
458 | - l2.sort() | ||
459 | - self.assertEqual(l1, l2) | ||
460 | + self.assertEqual(sorted(l1), sorted(l2)) | ||
461 | |||
462 | class suite(unittest.TestSuite): | ||
463 | def __init__(self): | ||
464 | diff --git a/tests/test_ini.py b/tests/test_ini.py | ||
465 | index 6a76edb..07d4f4e 100644 | ||
466 | --- a/tests/test_ini.py | ||
467 | +++ b/tests/test_ini.py | ||
468 | @@ -1,5 +1,5 @@ | ||
469 | import unittest | ||
470 | -from StringIO import StringIO | ||
471 | +from six import StringIO | ||
472 | |||
473 | from iniparse import ini | ||
474 | from iniparse import compat | ||
475 | @@ -196,13 +196,13 @@ but = also me | ||
476 | self.assertEqual(p._data.find('section2').find('just').value, 'kidding') | ||
477 | |||
478 | itr = p._data.finditer('section1') | ||
479 | - v = itr.next() | ||
480 | + v = next(itr) | ||
481 | self.assertEqual(v.find('help').value, 'yourself') | ||
482 | self.assertEqual(v.find('but').value, 'also me') | ||
483 | - v = itr.next() | ||
484 | + v = next(itr) | ||
485 | self.assertEqual(v.find('help').value, 'me') | ||
486 | self.assertEqual(v.find('I\'m').value, 'desperate') | ||
487 | - self.assertRaises(StopIteration, itr.next) | ||
488 | + self.assertRaises(StopIteration, next, itr) | ||
489 | |||
490 | self.assertRaises(KeyError, p._data.find, 'section') | ||
491 | self.assertRaises(KeyError, p._data.find('section2').find, 'ahem') | ||
492 | diff --git a/tests/test_misc.py b/tests/test_misc.py | ||
493 | index 31cf4da..96ef035 100644 | ||
494 | --- a/tests/test_misc.py | ||
495 | +++ b/tests/test_misc.py | ||
496 | @@ -1,9 +1,9 @@ | ||
497 | import re | ||
498 | import unittest | ||
499 | import pickle | ||
500 | -import ConfigParser | ||
501 | +from six.moves import configparser | ||
502 | +from six import StringIO | ||
503 | from textwrap import dedent | ||
504 | -from StringIO import StringIO | ||
505 | from iniparse import compat, ini | ||
506 | |||
507 | class CaseSensitiveConfigParser(compat.ConfigParser): | ||
508 | diff --git a/tests/test_tidy.py b/tests/test_tidy.py | ||
509 | index 7304747..26b6cde 100644 | ||
510 | --- a/tests/test_tidy.py | ||
511 | +++ b/tests/test_tidy.py | ||
512 | @@ -1,6 +1,6 @@ | ||
513 | import unittest | ||
514 | from textwrap import dedent | ||
515 | -from StringIO import StringIO | ||
516 | +from six import StringIO | ||
517 | |||
518 | from iniparse import tidy,INIConfig | ||
519 | from iniparse.ini import EmptyLine | ||
520 | diff --git a/tests/test_unicode.py b/tests/test_unicode.py | ||
521 | index a56fcab..14d4fbd 100644 | ||
522 | --- a/tests/test_unicode.py | ||
523 | +++ b/tests/test_unicode.py | ||
524 | @@ -1,5 +1,5 @@ | ||
525 | import unittest | ||
526 | -from StringIO import StringIO | ||
527 | +import six | ||
528 | from iniparse import compat, ini | ||
529 | |||
530 | class test_unicode(unittest.TestCase): | ||
531 | @@ -17,14 +17,14 @@ baz = Marc-Andr\202 | ||
532 | """ | ||
533 | |||
534 | def basic_tests(self, s, strable): | ||
535 | - f = StringIO(s) | ||
536 | + f = six.StringIO(s) | ||
537 | i = ini.INIConfig(f) | ||
538 | - self.assertEqual(unicode(i), s) | ||
539 | - self.assertEqual(type(i.foo.bar), unicode) | ||
540 | + self.assertEqual(six.text_type(i), s) | ||
541 | + self.assertEqual(type(i.foo.bar), six.text_type) | ||
542 | if strable: | ||
543 | self.assertEqual(str(i), str(s)) | ||
544 | else: | ||
545 | - self.assertRaises(UnicodeEncodeError, lambda: str(i)) | ||
546 | + self.assertRaises(UnicodeEncodeError, lambda: six.text_type(i).encode('ascii')) | ||
547 | return i | ||
548 | |||
549 | def test_ascii(self): | ||
550 | -- | ||
551 | 2.11.0 | ||
552 | |||
diff --git a/meta/recipes-devtools/python/python3-iniparse_0.4.bb b/meta/recipes-devtools/python/python3-iniparse_0.4.bb deleted file mode 100644 index 47cd6598cc..0000000000 --- a/meta/recipes-devtools/python/python3-iniparse_0.4.bb +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | SUMMARY = "Accessing and Modifying INI files" | ||
2 | HOMEPAGE = "https://pypi.org/project/iniparse/" | ||
3 | LICENSE = "MIT & PSF" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \ | ||
5 | file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54" | ||
6 | |||
7 | SRC_URI = "file://0001-Add-python-3-compatibility.patch " | ||
8 | |||
9 | SRC_URI[md5sum] = "5e573e9e9733d97623881ce9bbe5eca6" | ||
10 | SRC_URI[sha256sum] = "abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054" | ||
11 | |||
12 | inherit pypi distutils3 | ||
13 | |||
14 | RDEPENDS_${PN} += "python3-core python3-six" | ||
15 | DEPENDS += "python3-six" | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch b/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch new file mode 100644 index 0000000000..a6715ed457 --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From 760ddf50ce559abd67bbdd31797267d00bcddfb3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Tue, 1 Oct 2024 19:22:11 +0200 | ||
4 | Subject: [PATCH] src/installer/utils.py: sort entries before writing out | ||
5 | RECORD file | ||
6 | |||
7 | This helps build reproducibility. | ||
8 | |||
9 | Upstream-Status: Submitted [https://github.com/pypa/installer/pull/245] | ||
10 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
11 | --- | ||
12 | src/installer/utils.py | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/src/installer/utils.py b/src/installer/utils.py | ||
16 | index 3e601d6..073297c 100644 | ||
17 | --- a/src/installer/utils.py | ||
18 | +++ b/src/installer/utils.py | ||
19 | @@ -207,7 +207,7 @@ def construct_record_file( | ||
20 | io.BytesIO(), encoding="utf-8", write_through=True, newline="" | ||
21 | ) | ||
22 | writer = csv.writer(stream, delimiter=",", quotechar='"', lineterminator="\n") | ||
23 | - for scheme, record in records: | ||
24 | + for scheme, record in sorted(records, key=lambda x: x[1].path): | ||
25 | writer.writerow(record.to_row(prefix_for_scheme(scheme))) | ||
26 | stream.seek(0) | ||
27 | return stream.detach() | ||
diff --git a/meta/recipes-devtools/python/python3-installer/interpreter.patch b/meta/recipes-devtools/python/python3-installer/interpreter.patch new file mode 100644 index 0000000000..7906769b90 --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer/interpreter.patch | |||
@@ -0,0 +1,71 @@ | |||
1 | From 74fe171fa4a25c120607e9f8450cbdfee675c959 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Mon, 14 Mar 2022 14:39:22 +0000 | ||
4 | Subject: [PATCH] python3-installer: add installer module | ||
5 | |||
6 | Let us override the hashbang directly (possibly upstreamable), and don't | ||
7 | play games with hashbangs: for now assume that even hashbangs with spaces | ||
8 | are simple (assume the spaces are only used to separate arguments) and | ||
9 | we don't have long hashbangs. | ||
10 | |||
11 | Upstream-Status: Inappropriate | ||
12 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
13 | |||
14 | --- | ||
15 | src/installer/__main__.py | 9 ++++++++- | ||
16 | src/installer/scripts.py | 15 +-------------- | ||
17 | 2 files changed, 9 insertions(+), 15 deletions(-) | ||
18 | |||
19 | diff --git a/src/installer/__main__.py b/src/installer/__main__.py | ||
20 | index 51014b9..38de286 100644 | ||
21 | --- a/src/installer/__main__.py | ||
22 | +++ b/src/installer/__main__.py | ||
23 | @@ -30,6 +30,13 @@ def _get_main_parser() -> argparse.ArgumentParser: | ||
24 | type=str, | ||
25 | help="override prefix to install packages to", | ||
26 | ) | ||
27 | + parser.add_argument( | ||
28 | + "--interpreter", | ||
29 | + "-i", | ||
30 | + type=str, | ||
31 | + default=sys.executable, | ||
32 | + help=f"interpreter (defaults to {sys.executable})", | ||
33 | + ) | ||
34 | parser.add_argument( | ||
35 | "--compile-bytecode", | ||
36 | action="append", | ||
37 | @@ -86,7 +93,7 @@ def _main(cli_args: Sequence[str], program: Optional[str] = None) -> None: | ||
38 | with WheelFile.open(args.wheel) as source: | ||
39 | destination = SchemeDictionaryDestination( | ||
40 | scheme_dict=_get_scheme_dict(source.distribution, prefix=args.prefix), | ||
41 | - interpreter=sys.executable, | ||
42 | + interpreter=args.interpreter, | ||
43 | script_kind=get_launcher_kind(), | ||
44 | bytecode_optimization_levels=bytecode_levels, | ||
45 | destdir=args.destdir, | ||
46 | diff --git a/src/installer/scripts.py b/src/installer/scripts.py | ||
47 | index 7e3c8fc..ba6ed5a 100644 | ||
48 | --- a/src/installer/scripts.py | ||
49 | +++ b/src/installer/scripts.py | ||
50 | @@ -59,20 +59,7 @@ def _build_shebang(executable: str, forlauncher: bool) -> bytes: | ||
51 | https://bitbucket.org/pypa/distlib/src/58cd5c6/distlib/scripts.py#lines-124 | ||
52 | """ | ||
53 | executable_bytes = executable.encode("utf-8") | ||
54 | - if forlauncher: # The launcher can just use the command as-is. | ||
55 | - return b"#!" + executable_bytes | ||
56 | - if _is_executable_simple(executable_bytes): | ||
57 | - return b"#!" + executable_bytes | ||
58 | - | ||
59 | - # Shebang support for an executable with a space in it is under-specified | ||
60 | - # and platform-dependent, so we use a clever hack to generate a script to | ||
61 | - # run in ``/bin/sh`` that should work on all reasonably modern platforms. | ||
62 | - # Read the following message to understand how the hack works: | ||
63 | - # https://github.com/pradyunsg/installer/pull/4#issuecomment-623668717 | ||
64 | - | ||
65 | - quoted = shlex.quote(executable).encode("utf-8") | ||
66 | - # I don't understand a lick what this is trying to do. | ||
67 | - return b"#!/bin/sh\n'''exec' " + quoted + b' "$0" "$@"\n' + b"' '''" | ||
68 | + return b"#!" + executable_bytes | ||
69 | |||
70 | |||
71 | class InvalidScript(ValueError): | ||
diff --git a/meta/recipes-devtools/python/python3-installer_0.7.0.bb b/meta/recipes-devtools/python/python3-installer_0.7.0.bb new file mode 100644 index 0000000000..6aaf1b3a37 --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer_0.7.0.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | SUMMARY = "Library and tool for installing Python wheels" | ||
2 | DESCRIPTION = "A low-level library for installing a Python package from a wheel distribution." | ||
3 | HOMEPAGE = "https://installer.readthedocs.io/" | ||
4 | BUGTRACKER = "https://github.com/pypa/installer/issues" | ||
5 | |||
6 | LICENSE = "MIT" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5038641aec7a77451e31da828ebfae00" | ||
8 | |||
9 | SRC_URI += "file://interpreter.patch \ | ||
10 | file://0001-src-installer-utils.py-sort-entries-before-writing-o.patch" | ||
11 | |||
12 | SRC_URI[sha256sum] = "a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631" | ||
13 | |||
14 | inherit pypi python_flit_core | ||
15 | |||
16 | # Bootstrap the native build | ||
17 | DEPENDS:remove:class-native = "python3-build-native python3-installer-native" | ||
18 | |||
19 | RDEPENDS:${PN} += " \ | ||
20 | python3-compile \ | ||
21 | python3-compression \ | ||
22 | python3-netclient \ | ||
23 | " | ||
24 | |||
25 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
26 | |||
27 | do_compile:class-native () { | ||
28 | python_flit_core_do_manual_build | ||
29 | } | ||
30 | |||
31 | do_install:prepend:class-native() { | ||
32 | export PYTHONPATH="${S}/src" | ||
33 | } | ||
34 | |||
35 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-iso8601_2.1.0.bb b/meta/recipes-devtools/python/python3-iso8601_2.1.0.bb new file mode 100644 index 0000000000..d7ab4a5a77 --- /dev/null +++ b/meta/recipes-devtools/python/python3-iso8601_2.1.0.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Simple module to parse ISO 8601 dates" | ||
2 | HOMEPAGE = "http://pyiso8601.readthedocs.org/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=aab31f2ef7ba214a5a341eaa47a7f367" | ||
5 | |||
6 | SRC_URI[sha256sum] = "6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df" | ||
7 | |||
8 | inherit pypi python_poetry_core | ||
9 | |||
10 | RDEPENDS:${PN} += "\ | ||
11 | python3-datetime \ | ||
12 | python3-numbers \ | ||
13 | " | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jinja2/run-ptest b/meta/recipes-devtools/python/python3-jinja2/run-ptest deleted file mode 100644 index 5cec711696..0000000000 --- a/meta/recipes-devtools/python/python3-jinja2/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest | ||
diff --git a/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb b/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb deleted file mode 100644 index 19a4eee11a..0000000000 --- a/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." | ||
2 | |||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462" | ||
5 | |||
6 | SRC_URI[sha256sum] = "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" | ||
7 | |||
8 | PYPI_PACKAGE = "Jinja2" | ||
9 | |||
10 | CLEANBROKEN = "1" | ||
11 | |||
12 | inherit pypi setuptools3 | ||
13 | # ptest disabled in OE-Core for now due to missing dependencies | ||
14 | |||
15 | |||
16 | SRC_URI += " \ | ||
17 | file://run-ptest \ | ||
18 | " | ||
19 | |||
20 | do_install_ptest() { | ||
21 | install -d ${D}${PTEST_PATH}/tests | ||
22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
23 | } | ||
24 | |||
25 | RDEPENDS_${PN}-ptest += " \ | ||
26 | ${PYTHON_PN}-pytest \ | ||
27 | ${PYTHON_PN}-unixadmin \ | ||
28 | " | ||
29 | |||
30 | RDEPENDS_${PN} += " \ | ||
31 | ${PYTHON_PN}-asyncio \ | ||
32 | ${PYTHON_PN}-crypt \ | ||
33 | ${PYTHON_PN}-io \ | ||
34 | ${PYTHON_PN}-json \ | ||
35 | ${PYTHON_PN}-markupsafe \ | ||
36 | ${PYTHON_PN}-math \ | ||
37 | ${PYTHON_PN}-netclient \ | ||
38 | ${PYTHON_PN}-numbers\ | ||
39 | ${PYTHON_PN}-pickle \ | ||
40 | ${PYTHON_PN}-pprint \ | ||
41 | ${PYTHON_PN}-shell \ | ||
42 | ${PYTHON_PN}-threading \ | ||
43 | " | ||
44 | |||
45 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jinja2_3.1.6.bb b/meta/recipes-devtools/python/python3-jinja2_3.1.6.bb new file mode 100644 index 0000000000..2e96eb0dcb --- /dev/null +++ b/meta/recipes-devtools/python/python3-jinja2_3.1.6.bb | |||
@@ -0,0 +1,41 @@ | |||
1 | SUMMARY = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." | ||
2 | HOMEPAGE = "https://pypi.org/project/Jinja2/" | ||
3 | |||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dc88300786f1c214c1e9827a5229462" | ||
6 | |||
7 | SRC_URI[sha256sum] = "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" | ||
8 | |||
9 | PYPI_PACKAGE = "jinja2" | ||
10 | |||
11 | CVE_PRODUCT = "jinja2 jinja" | ||
12 | |||
13 | CLEANBROKEN = "1" | ||
14 | |||
15 | inherit pypi python_flit_core ptest-python-pytest | ||
16 | |||
17 | do_install_ptest:append() { | ||
18 | # test_async items require trio module | ||
19 | rm -f ${D}${PTEST_PATH}/tests/test_async.py ${D}${PTEST_PATH}/tests/test_async_filters.py | ||
20 | } | ||
21 | |||
22 | RDEPENDS:${PN}-ptest += " \ | ||
23 | python3-unixadmin \ | ||
24 | " | ||
25 | |||
26 | RDEPENDS:${PN} += " \ | ||
27 | python3-asyncio \ | ||
28 | python3-crypt \ | ||
29 | python3-io \ | ||
30 | python3-json \ | ||
31 | python3-markupsafe \ | ||
32 | python3-math \ | ||
33 | python3-netclient \ | ||
34 | python3-numbers\ | ||
35 | python3-pickle \ | ||
36 | python3-pprint \ | ||
37 | python3-shell \ | ||
38 | python3-threading \ | ||
39 | " | ||
40 | |||
41 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jsonpointer/run-ptest b/meta/recipes-devtools/python/python3-jsonpointer/run-ptest new file mode 100644 index 0000000000..7ebd69231f --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonpointer/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | python3 -mputao.unittest tests.py | ||
diff --git a/meta/recipes-devtools/python/python3-jsonpointer_3.0.0.bb b/meta/recipes-devtools/python/python3-jsonpointer_3.0.0.bb new file mode 100644 index 0000000000..0a23dc3100 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonpointer_3.0.0.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Resolve JSON Pointers in Python" | ||
2 | HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3" | ||
5 | |||
6 | inherit pypi ptest setuptools3 | ||
7 | |||
8 | SRC_URI[sha256sum] = "2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef" | ||
9 | |||
10 | SRC_URI += " \ | ||
11 | file://run-ptest \ | ||
12 | " | ||
13 | |||
14 | do_install_ptest() { | ||
15 | cp -f ${S}/tests.py ${D}${PTEST_PATH}/ | ||
16 | } | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-json \ | ||
20 | " | ||
21 | |||
22 | RDEPENDS:${PN}-ptest += " \ | ||
23 | python3-doctest \ | ||
24 | python3-unittest \ | ||
25 | python3-unittest-automake-output \ | ||
26 | " | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jsonschema-specifications_2025.4.1.bb b/meta/recipes-devtools/python/python3-jsonschema-specifications_2025.4.1.bb new file mode 100644 index 0000000000..53805b0396 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonschema-specifications_2025.4.1.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | SUMMARY = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" | ||
2 | DESCRIPTION = "JSON support files from the JSON Schema Specifications (metaschemas, \ | ||
3 | vocabularies, etc.), packaged for runtime access from Python as a referencing-based Schema Registry." | ||
4 | HOMEPAGE = "https://pypi.org/project/jsonschema-specifications/" | ||
5 | LICENSE = "MIT" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2" | ||
7 | |||
8 | SRC_URI[sha256sum] = "630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608" | ||
9 | |||
10 | inherit pypi python_hatchling | ||
11 | |||
12 | PYPI_PACKAGE = "jsonschema_specifications" | ||
13 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
14 | |||
15 | DEPENDS += "python3-hatch-vcs-native" | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jsonschema_4.24.0.bb b/meta/recipes-devtools/python/python3-jsonschema_4.24.0.bb new file mode 100644 index 0000000000..7a5f4a09a6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonschema_4.24.0.bb | |||
@@ -0,0 +1,49 @@ | |||
1 | SUMMARY = "An implementation of JSON Schema validation for Python" | ||
2 | HOMEPAGE = "https://github.com/python-jsonschema/jsonschema" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \ | ||
5 | file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af" | ||
6 | |||
7 | SRC_URI[sha256sum] = "0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196" | ||
8 | |||
9 | inherit pypi python_hatchling | ||
10 | |||
11 | PACKAGES =+ "${PN}-tests" | ||
12 | FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/jsonschema/tests" | ||
13 | |||
14 | DEPENDS += "python3-hatch-fancy-pypi-readme-native python3-hatch-vcs-native " | ||
15 | |||
16 | PACKAGECONFIG ??= "format" | ||
17 | PACKAGECONFIG[format] = ",,,\ | ||
18 | python3-idna \ | ||
19 | python3-jsonpointer \ | ||
20 | python3-webcolors \ | ||
21 | python3-rfc3987 \ | ||
22 | python3-rfc3339-validator \ | ||
23 | " | ||
24 | PACKAGECONFIG[format-nongpl] = ",,,\ | ||
25 | python3-idna \ | ||
26 | python3-jsonpointer \ | ||
27 | python3-webcolors \ | ||
28 | python3-rfc3986-validator \ | ||
29 | python3-rfc3339-validator \ | ||
30 | " | ||
31 | |||
32 | RDEPENDS:${PN} += " \ | ||
33 | python3-attrs \ | ||
34 | python3-core \ | ||
35 | python3-datetime \ | ||
36 | python3-io \ | ||
37 | python3-json \ | ||
38 | python3-jsonschema-specifications \ | ||
39 | python3-netclient \ | ||
40 | python3-numbers \ | ||
41 | python3-pprint \ | ||
42 | python3-pyrsistent \ | ||
43 | python3-referencing \ | ||
44 | python3-zipp \ | ||
45 | " | ||
46 | |||
47 | RDEPENDS:${PN}-tests = "${PN}" | ||
48 | |||
49 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch b/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch new file mode 100644 index 0000000000..7b8775802f --- /dev/null +++ b/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From ed20aba335996d3aa97d99dfc122eb5a3a26ba1b Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 2 Nov 2024 11:06:01 -0700 | ||
4 | Subject: [PATCH] ffi: Insert a replacable anchor for find_library | ||
5 | |||
6 | @@REPLACE_FIND_LIBRARY_API@@ must be sustituted from bitbake environment via | ||
7 | recipe. This also helps in detecting changes to code from upstream in | ||
8 | this area as this patch will fail to apply. | ||
9 | |||
10 | Upstream-Status: Inappropriate [OE-Specific] | ||
11 | |||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | libarchive/ffi.py | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/libarchive/ffi.py b/libarchive/ffi.py | ||
18 | index 1fc321a..991f1b6 100644 | ||
19 | --- a/libarchive/ffi.py | ||
20 | +++ b/libarchive/ffi.py | ||
21 | @@ -22,7 +22,7 @@ logger = logging.getLogger('libarchive') | ||
22 | |||
23 | page_size = mmap.PAGESIZE | ||
24 | |||
25 | -libarchive_path = os.environ.get('LIBARCHIVE') or find_library('archive') | ||
26 | +libarchive_path = os.environ.get('LIBARCHIVE') or @@REPLACE_FIND_LIBRARY_API@@ | ||
27 | libarchive = ctypes.cdll.LoadLibrary(libarchive_path) | ||
28 | |||
29 | |||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c/new-libarchive.patch b/meta/recipes-devtools/python/python3-libarchive-c/new-libarchive.patch new file mode 100644 index 0000000000..681e03a465 --- /dev/null +++ b/meta/recipes-devtools/python/python3-libarchive-c/new-libarchive.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From adb206946721a4f5bd1190ab9c975bab4373e35c Mon Sep 17 00:00:00 2001 | ||
2 | From: Changaco <changaco@changaco.oy.lc> | ||
3 | Date: Fri, 27 Sep 2024 11:51:22 +0200 | ||
4 | Subject: [PATCH] update a test failing with new libarchive versions | ||
5 | |||
6 | fixes #130 | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/Changaco/python-libarchive-c/pull/131] | ||
9 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
10 | --- | ||
11 | tests/test_entry.py | 10 ++++++++-- | ||
12 | 1 file changed, 8 insertions(+), 2 deletions(-) | ||
13 | |||
14 | diff --git a/tests/test_entry.py b/tests/test_entry.py | ||
15 | index 419cecb..34543a5 100644 | ||
16 | --- a/tests/test_entry.py | ||
17 | +++ b/tests/test_entry.py | ||
18 | @@ -9,7 +9,7 @@ | ||
19 | |||
20 | import pytest | ||
21 | |||
22 | -from libarchive import memory_reader, memory_writer | ||
23 | +from libarchive import ArchiveError, memory_reader, memory_writer | ||
24 | from libarchive.entry import ArchiveEntry, ConsumedArchiveEntry, PassedArchiveEntry | ||
25 | |||
26 | from . import data_dir, get_entries, get_tarinfos | ||
27 | @@ -64,7 +64,13 @@ def test_check_ArchiveEntry_against_TarInfo(): | ||
28 | |||
29 | |||
30 | def test_check_archiveentry_using_python_testtar(): | ||
31 | - check_entries(join(data_dir, 'testtar.tar')) | ||
32 | + # This test behaves differently depending on the libarchive version: | ||
33 | + # 3.5, 3.6 and presumably all future versions reject the archive as damaged, | ||
34 | + # whereas older versions accepted it. | ||
35 | + try: | ||
36 | + check_entries(join(data_dir, 'testtar.tar')) | ||
37 | + except ArchiveError as e: | ||
38 | + assert e.msg == "Damaged tar archive" | ||
39 | |||
40 | |||
41 | def test_check_archiveentry_with_unicode_and_binary_entries_tar(): | ||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c/run-ptest b/meta/recipes-devtools/python/python3-libarchive-c/run-ptest new file mode 100644 index 0000000000..ddfbba7f94 --- /dev/null +++ b/meta/recipes-devtools/python/python3-libarchive-c/run-ptest | |||
@@ -0,0 +1,6 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # export needed to set the locale to support accentuated and non-latin chars in tests | ||
4 | export LC_ALL=en_US.UTF-8 | ||
5 | |||
6 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb deleted file mode 100644 index 3a2d8733e9..0000000000 --- a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | SUMMARY = "Python interface to libarchive" | ||
2 | DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \ | ||
3 | dynamically load and access the C library." | ||
4 | HOMEPAGE = "https://github.com/Changaco/python-libarchive-c" | ||
5 | LICENSE = "CC0-1.0" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc" | ||
7 | |||
8 | PYPI_PACKAGE = "libarchive-c" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532" | ||
13 | SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60" | ||
14 | |||
15 | RDEPENDS_${PN} += "\ | ||
16 | libarchive \ | ||
17 | ${PYTHON_PN}-ctypes \ | ||
18 | ${PYTHON_PN}-mmap \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb new file mode 100644 index 0000000000..8b5de01b69 --- /dev/null +++ b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb | |||
@@ -0,0 +1,45 @@ | |||
1 | SUMMARY = "Python interface to libarchive" | ||
2 | DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \ | ||
3 | dynamically load and access the C library." | ||
4 | HOMEPAGE = "https://github.com/Changaco/python-libarchive-c" | ||
5 | LICENSE = "CC0-1.0" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc" | ||
7 | |||
8 | SRC_URI += " \ | ||
9 | file://new-libarchive.patch \ | ||
10 | file://0001-ffi-Insert-a-replacable-anchor-for-find_library.patch \ | ||
11 | file://run-ptest \ | ||
12 | " | ||
13 | |||
14 | PYPI_PACKAGE = "libarchive-c" | ||
15 | |||
16 | inherit pypi setuptools3 ptest-python-pytest | ||
17 | |||
18 | SRC_URI[sha256sum] = "7bcce24ea6c0fa3bc62468476c6d2f6264156db2f04878a372027c10615a2721" | ||
19 | |||
20 | DEPENDS += "patchelf-native libarchive" | ||
21 | # Avoid using find_library API which needs ldconfig and ld/objdump | ||
22 | # https://docs.python.org/3/library/ctypes.html#ctypes-reference | ||
23 | # | ||
24 | do_configure:append() { | ||
25 | sed -i -e "s|@@REPLACE_FIND_LIBRARY_API@@|'${libdir}/$(patchelf --print-soname ${STAGING_LIBDIR}/libarchive.so)'|" ${S}/libarchive/ffi.py | ||
26 | } | ||
27 | |||
28 | RDEPENDS:${PN} += "\ | ||
29 | libarchive \ | ||
30 | python3-ctypes \ | ||
31 | python3-mmap \ | ||
32 | python3-logging \ | ||
33 | " | ||
34 | |||
35 | RDEPENDS:${PN}-ptest += " \ | ||
36 | locale-base-en-us \ | ||
37 | " | ||
38 | |||
39 | BBCLASSEXTEND = "native" | ||
40 | |||
41 | do_install_ptest:append() { | ||
42 | install -d ${D}${PTEST_PATH}/libarchive | ||
43 | cp ${S}/libarchive/* ${D}${PTEST_PATH}/libarchive/ | ||
44 | cp ${S}/README.rst ${D}${PTEST_PATH}/README.rst | ||
45 | } | ||
diff --git a/meta/recipes-devtools/python/python3-license-expression_30.4.1.bb b/meta/recipes-devtools/python/python3-license-expression_30.4.1.bb new file mode 100644 index 0000000000..ec613f6eaa --- /dev/null +++ b/meta/recipes-devtools/python/python3-license-expression_30.4.1.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions" | ||
2 | HOMEPAGE = "https://github.com/nexB/license-expression" | ||
3 | |||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" | ||
6 | |||
7 | SRC_URI[sha256sum] = "9f02105f9e0fcecba6a85dfbbed7d94ea1c3a70cf23ddbfb5adf3438a6f6fce0" | ||
8 | |||
9 | inherit pypi ptest-python-pytest python_setuptools_build_meta | ||
10 | PYPI_PACKAGE = "license_expression" | ||
11 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
12 | |||
13 | DEPENDS += "python3-setuptools-scm-native" | ||
14 | |||
15 | RDEPENDS:${PN} += "\ | ||
16 | python3-booleanpy \ | ||
17 | python3-core \ | ||
18 | python3-json \ | ||
19 | python3-stringold \ | ||
20 | python3-logging \ | ||
21 | " | ||
22 | |||
23 | BBCLASSEXTEND = "native nativesdk" | ||
24 | |||
25 | do_install_ptest:append() { | ||
26 | # The tests need some files from the source tree | ||
27 | install -d ${D}${PTEST_PATH}/src | ||
28 | ln -s ${PYTHON_SITEPACKAGES_DIR}/license_expression/ ${D}${PTEST_PATH}/src/ | ||
29 | install -m644 ${S}/setup.cfg ${D}${PTEST_PATH}/ | ||
30 | } | ||
diff --git a/meta/recipes-devtools/python/python3-lxml_5.4.0.bb b/meta/recipes-devtools/python/python3-lxml_5.4.0.bb new file mode 100644 index 0000000000..126fbe99b4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-lxml_5.4.0.bb | |||
@@ -0,0 +1,44 @@ | |||
1 | SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." | ||
2 | DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \ | ||
3 | libxslt libraries. It provides safe and convenient access to these \ | ||
4 | libraries using the ElementTree API. It extends the ElementTree API \ | ||
5 | significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \ | ||
6 | C14N and much more." | ||
7 | HOMEPAGE = "https://lxml.de/" | ||
8 | SECTION = "devel/python" | ||
9 | LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & PSF-2.0" | ||
10 | LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \ | ||
11 | file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \ | ||
12 | file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \ | ||
13 | file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
14 | file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \ | ||
15 | file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \ | ||
16 | file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \ | ||
17 | " | ||
18 | |||
19 | DEPENDS += "libxml2 libxslt" | ||
20 | |||
21 | SRC_URI[sha256sum] = "d12832e1dbea4be280b22fd0ea7c9b87f0d8fc51ba06e92dc62d52f804f78ebd" | ||
22 | |||
23 | SRC_URI += "${PYPI_SRC_URI}" | ||
24 | inherit pkgconfig pypi setuptools3 | ||
25 | |||
26 | # {standard input}: Assembler messages: | ||
27 | # {standard input}:1488805: Error: branch out of range | ||
28 | DEBUG_OPTIMIZATION:remove:mips = " -Og" | ||
29 | DEBUG_OPTIMIZATION:append:mips = " -O" | ||
30 | BUILD_OPTIMIZATION:remove:mips = " -Og" | ||
31 | BUILD_OPTIMIZATION:append:mips = " -O" | ||
32 | |||
33 | DEBUG_OPTIMIZATION:remove:mipsel = " -Og" | ||
34 | DEBUG_OPTIMIZATION:append:mipsel = " -O" | ||
35 | BUILD_OPTIMIZATION:remove:mipsel = " -Og" | ||
36 | BUILD_OPTIMIZATION:append:mipsel = " -O" | ||
37 | |||
38 | BBCLASSEXTEND = "native nativesdk" | ||
39 | |||
40 | RDEPENDS:${PN} += "libxml2 libxslt python3-compression" | ||
41 | |||
42 | CVE_PRODUCT = "lxml" | ||
43 | |||
44 | CLEANBROKEN = "1" | ||
diff --git a/meta/recipes-devtools/python/python3-magic_0.4.22.bb b/meta/recipes-devtools/python/python3-magic_0.4.27.bb index b828927599..2e561e69d7 100644 --- a/meta/recipes-devtools/python/python3-magic_0.4.22.bb +++ b/meta/recipes-devtools/python/python3-magic_0.4.27.bb | |||
@@ -11,12 +11,12 @@ PYPI_PACKAGE = "python-magic" | |||
11 | 11 | ||
12 | inherit pypi setuptools3 | 12 | inherit pypi setuptools3 |
13 | 13 | ||
14 | SRC_URI[sha256sum] = "ca884349f2c92ce830e3f498c5b7c7051fe2942c3ee4332f65213b8ebff15a62" | 14 | SRC_URI[sha256sum] = "c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b" |
15 | 15 | ||
16 | RDEPENDS_${PN} += "file \ | 16 | RDEPENDS:${PN} += "file \ |
17 | ${PYTHON_PN}-ctypes \ | 17 | python3-ctypes \ |
18 | ${PYTHON_PN}-io \ | 18 | python3-io \ |
19 | ${PYTHON_PN}-logging \ | 19 | python3-logging \ |
20 | ${PYTHON_PN}-shell" | 20 | python3-shell" |
21 | 21 | ||
22 | BBCLASSEXTEND = "native" | 22 | BBCLASSEXTEND = "native" |
diff --git a/meta/recipes-devtools/python/python3-mako_1.1.4.bb b/meta/recipes-devtools/python/python3-mako_1.1.4.bb deleted file mode 100644 index 1645f37da4..0000000000 --- a/meta/recipes-devtools/python/python3-mako_1.1.4.bb +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | SUMMARY = "Templating library for Python" | ||
2 | HOMEPAGE = "http://www.makotemplates.org/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=943eb67718222db21d44a4ef1836675f" | ||
6 | |||
7 | PYPI_PACKAGE = "Mako" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | SRC_URI[sha256sum] = "17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab" | ||
12 | |||
13 | RDEPENDS_${PN} = "${PYTHON_PN}-html \ | ||
14 | ${PYTHON_PN}-netclient \ | ||
15 | ${PYTHON_PN}-threading \ | ||
16 | " | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-mako_1.3.10.bb b/meta/recipes-devtools/python/python3-mako_1.3.10.bb new file mode 100644 index 0000000000..2d937dc184 --- /dev/null +++ b/meta/recipes-devtools/python/python3-mako_1.3.10.bb | |||
@@ -0,0 +1,27 @@ | |||
1 | SUMMARY = "Templating library for Python" | ||
2 | HOMEPAGE = "http://www.makotemplates.org/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=73026b50800163bd3c75cfdc121d9eb5" | ||
6 | |||
7 | PYPI_PACKAGE = "mako" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
10 | |||
11 | SRC_URI[sha256sum] = "99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28" | ||
12 | |||
13 | RDEPENDS:${PN} = "python3-html \ | ||
14 | python3-markupsafe \ | ||
15 | python3-misc \ | ||
16 | python3-netclient \ | ||
17 | python3-pygments \ | ||
18 | python3-threading \ | ||
19 | " | ||
20 | |||
21 | PTEST_PYTEST_DIR = "test" | ||
22 | |||
23 | do_install_ptest:append() { | ||
24 | install -m 0644 ${S}/setup.cfg ${D}${PTEST_PATH}/ | ||
25 | } | ||
26 | |||
27 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-markdown_3.8.bb b/meta/recipes-devtools/python/python3-markdown_3.8.bb new file mode 100644 index 0000000000..09c2f3435b --- /dev/null +++ b/meta/recipes-devtools/python/python3-markdown_3.8.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "A Python implementation of John Gruber's Markdown." | ||
2 | HOMEPAGE = "https://python-markdown.github.io/" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ec58cdf7cfed06a21f7a9362627a5480" | ||
5 | |||
6 | inherit pypi python_setuptools_build_meta | ||
7 | |||
8 | SRC_URI[sha256sum] = "7df81e63f0df5c4b24b7d156eb81e4690595239b7d70937d0409f1b0de319c6f" | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
11 | |||
12 | RDEPENDS:${PN} += "python3-logging python3-setuptools" | ||
diff --git a/meta/recipes-devtools/python/python3-markupsafe/run-ptest b/meta/recipes-devtools/python/python3-markupsafe/run-ptest deleted file mode 100644 index 5cec711696..0000000000 --- a/meta/recipes-devtools/python/python3-markupsafe/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest | ||
diff --git a/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb b/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb deleted file mode 100644 index 403a98a43f..0000000000 --- a/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python" | ||
2 | HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" | ||
5 | |||
6 | SRC_URI[md5sum] = "43fd756864fe42063068e092e220c57b" | ||
7 | SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b" | ||
8 | |||
9 | PYPI_PACKAGE = "MarkupSafe" | ||
10 | inherit pypi setuptools3 | ||
11 | # ptest disabled in OE-Core for now due to missing dependencies | ||
12 | |||
13 | RDEPENDS_${PN} += "${PYTHON_PN}-stringold" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
16 | |||
17 | SRC_URI += " \ | ||
18 | file://run-ptest \ | ||
19 | " | ||
20 | |||
21 | RDEPENDS_${PN}-ptest += " \ | ||
22 | ${PYTHON_PN}-pytest \ | ||
23 | " | ||
24 | |||
25 | do_install_ptest() { | ||
26 | install -d ${D}${PTEST_PATH}/tests | ||
27 | cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
28 | } | ||
diff --git a/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb b/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb new file mode 100644 index 0000000000..b90dd84f48 --- /dev/null +++ b/meta/recipes-devtools/python/python3-markupsafe_3.0.2.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Implements a XML/HTML/XHTML Markup safe string for Python" | ||
2 | HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ffeffa59c90c9c4a033c7574f8f3fb75" | ||
5 | |||
6 | SRC_URI[sha256sum] = "ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0" | ||
7 | |||
8 | PYPI_PACKAGE = "markupsafe" | ||
9 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
10 | |||
11 | RDEPENDS:${PN} += "python3-html python3-stringold" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-maturin-crates.inc b/meta/recipes-devtools/python/python3-maturin-crates.inc new file mode 100644 index 0000000000..28551ff4ca --- /dev/null +++ b/meta/recipes-devtools/python/python3-maturin-crates.inc | |||
@@ -0,0 +1,748 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-maturin' | ||
2 | |||
3 | # from Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/adler2/2.0.0 \ | ||
6 | crate://crates.io/ahash/0.8.11 \ | ||
7 | crate://crates.io/aho-corasick/1.1.3 \ | ||
8 | crate://crates.io/allocator-api2/0.2.18 \ | ||
9 | crate://crates.io/anstream/0.6.14 \ | ||
10 | crate://crates.io/anstyle/1.0.7 \ | ||
11 | crate://crates.io/anstyle-parse/0.2.4 \ | ||
12 | crate://crates.io/anstyle-query/1.1.0 \ | ||
13 | crate://crates.io/anstyle-wincon/3.0.3 \ | ||
14 | crate://crates.io/anyhow/1.0.89 \ | ||
15 | crate://crates.io/arbitrary/1.4.1 \ | ||
16 | crate://crates.io/autocfg/1.3.0 \ | ||
17 | crate://crates.io/automod/1.0.14 \ | ||
18 | crate://crates.io/base64/0.21.7 \ | ||
19 | crate://crates.io/base64/0.22.1 \ | ||
20 | crate://crates.io/bitflags/1.3.2 \ | ||
21 | crate://crates.io/bitflags/2.5.0 \ | ||
22 | crate://crates.io/block-buffer/0.10.4 \ | ||
23 | crate://crates.io/boxcar/0.2.8 \ | ||
24 | crate://crates.io/bstr/1.10.0 \ | ||
25 | crate://crates.io/bumpalo/3.16.0 \ | ||
26 | crate://crates.io/byteorder/1.5.0 \ | ||
27 | crate://crates.io/bytes/1.9.0 \ | ||
28 | crate://crates.io/bytesize/1.3.0 \ | ||
29 | crate://crates.io/bzip2/0.5.2 \ | ||
30 | crate://crates.io/bzip2-sys/0.1.13+1.0.8 \ | ||
31 | crate://crates.io/cab/0.6.0 \ | ||
32 | crate://crates.io/camino/1.1.9 \ | ||
33 | crate://crates.io/cargo-config2/0.1.26 \ | ||
34 | crate://crates.io/cargo-options/0.7.4 \ | ||
35 | crate://crates.io/cargo-platform/0.1.8 \ | ||
36 | crate://crates.io/cargo-xwin/0.18.6 \ | ||
37 | crate://crates.io/cargo-zigbuild/0.20.0 \ | ||
38 | crate://crates.io/cargo_metadata/0.19.0 \ | ||
39 | crate://crates.io/cbindgen/0.29.0 \ | ||
40 | crate://crates.io/cc/1.2.16 \ | ||
41 | crate://crates.io/cfb/0.10.0 \ | ||
42 | crate://crates.io/cfg-if/1.0.0 \ | ||
43 | crate://crates.io/charset/0.1.5 \ | ||
44 | crate://crates.io/chumsky/0.9.3 \ | ||
45 | crate://crates.io/clap/4.5.7 \ | ||
46 | crate://crates.io/clap_builder/4.5.7 \ | ||
47 | crate://crates.io/clap_complete/4.5.5 \ | ||
48 | crate://crates.io/clap_complete_command/0.6.1 \ | ||
49 | crate://crates.io/clap_complete_nushell/4.5.2 \ | ||
50 | crate://crates.io/clap_derive/4.5.5 \ | ||
51 | crate://crates.io/clap_lex/0.7.1 \ | ||
52 | crate://crates.io/cli-table/0.4.7 \ | ||
53 | crate://crates.io/colorchoice/1.0.1 \ | ||
54 | crate://crates.io/configparser/3.1.0 \ | ||
55 | crate://crates.io/console/0.15.8 \ | ||
56 | crate://crates.io/content_inspector/0.2.4 \ | ||
57 | crate://crates.io/core-foundation/0.9.4 \ | ||
58 | crate://crates.io/core-foundation-sys/0.8.6 \ | ||
59 | crate://crates.io/cpufeatures/0.2.12 \ | ||
60 | crate://crates.io/crc/3.2.1 \ | ||
61 | crate://crates.io/crc-catalog/2.4.0 \ | ||
62 | crate://crates.io/crc32fast/1.4.2 \ | ||
63 | crate://crates.io/crossbeam-channel/0.5.15 \ | ||
64 | crate://crates.io/crossbeam-deque/0.8.5 \ | ||
65 | crate://crates.io/crossbeam-epoch/0.9.18 \ | ||
66 | crate://crates.io/crossbeam-utils/0.8.20 \ | ||
67 | crate://crates.io/crypto-common/0.1.6 \ | ||
68 | crate://crates.io/data-encoding/2.6.0 \ | ||
69 | crate://crates.io/deranged/0.3.11 \ | ||
70 | crate://crates.io/derive_arbitrary/1.4.1 \ | ||
71 | crate://crates.io/dialoguer/0.11.0 \ | ||
72 | crate://crates.io/diff/0.1.13 \ | ||
73 | crate://crates.io/digest/0.10.7 \ | ||
74 | crate://crates.io/dirs/5.0.1 \ | ||
75 | crate://crates.io/dirs-sys/0.4.1 \ | ||
76 | crate://crates.io/displaydoc/0.2.5 \ | ||
77 | crate://crates.io/dissimilar/1.0.9 \ | ||
78 | crate://crates.io/dunce/1.0.5 \ | ||
79 | crate://crates.io/dyn-clone/1.0.17 \ | ||
80 | crate://crates.io/either/1.13.0 \ | ||
81 | crate://crates.io/encode_unicode/0.3.6 \ | ||
82 | crate://crates.io/encoding_rs/0.8.34 \ | ||
83 | crate://crates.io/equivalent/1.0.1 \ | ||
84 | crate://crates.io/errno/0.3.9 \ | ||
85 | crate://crates.io/expect-test/1.5.0 \ | ||
86 | crate://crates.io/fastrand/2.1.0 \ | ||
87 | crate://crates.io/fat-macho/0.4.9 \ | ||
88 | crate://crates.io/filetime/0.2.23 \ | ||
89 | crate://crates.io/flate2/1.0.33 \ | ||
90 | crate://crates.io/fnv/1.0.7 \ | ||
91 | crate://crates.io/foreign-types/0.3.2 \ | ||
92 | crate://crates.io/foreign-types-shared/0.1.1 \ | ||
93 | crate://crates.io/form_urlencoded/1.2.1 \ | ||
94 | crate://crates.io/fs-err/3.0.0 \ | ||
95 | crate://crates.io/fs4/0.12.0 \ | ||
96 | crate://crates.io/futures/0.3.30 \ | ||
97 | crate://crates.io/futures-channel/0.3.31 \ | ||
98 | crate://crates.io/futures-core/0.3.31 \ | ||
99 | crate://crates.io/futures-executor/0.3.30 \ | ||
100 | crate://crates.io/futures-io/0.3.31 \ | ||
101 | crate://crates.io/futures-macro/0.3.31 \ | ||
102 | crate://crates.io/futures-sink/0.3.31 \ | ||
103 | crate://crates.io/futures-task/0.3.31 \ | ||
104 | crate://crates.io/futures-timer/3.0.3 \ | ||
105 | crate://crates.io/futures-util/0.3.31 \ | ||
106 | crate://crates.io/generic-array/0.14.7 \ | ||
107 | crate://crates.io/getrandom/0.2.15 \ | ||
108 | crate://crates.io/getrandom/0.3.3 \ | ||
109 | crate://crates.io/glob/0.3.1 \ | ||
110 | crate://crates.io/globset/0.4.16 \ | ||
111 | crate://crates.io/goblin/0.9.2 \ | ||
112 | crate://crates.io/hashbrown/0.14.5 \ | ||
113 | crate://crates.io/hashbrown/0.15.2 \ | ||
114 | crate://crates.io/heck/0.5.0 \ | ||
115 | crate://crates.io/home/0.5.9 \ | ||
116 | crate://crates.io/humantime/2.1.0 \ | ||
117 | crate://crates.io/humantime-serde/1.1.1 \ | ||
118 | crate://crates.io/icu_collections/1.5.0 \ | ||
119 | crate://crates.io/icu_locid/1.5.0 \ | ||
120 | crate://crates.io/icu_locid_transform/1.5.0 \ | ||
121 | crate://crates.io/icu_locid_transform_data/1.5.0 \ | ||
122 | crate://crates.io/icu_normalizer/1.5.0 \ | ||
123 | crate://crates.io/icu_normalizer_data/1.5.0 \ | ||
124 | crate://crates.io/icu_properties/1.5.1 \ | ||
125 | crate://crates.io/icu_properties_data/1.5.0 \ | ||
126 | crate://crates.io/icu_provider/1.5.0 \ | ||
127 | crate://crates.io/icu_provider_macros/1.5.0 \ | ||
128 | crate://crates.io/idna/1.0.3 \ | ||
129 | crate://crates.io/idna_adapter/1.2.0 \ | ||
130 | crate://crates.io/ignore/0.4.23 \ | ||
131 | crate://crates.io/indexmap/2.6.0 \ | ||
132 | crate://crates.io/indicatif/0.17.9 \ | ||
133 | crate://crates.io/indoc/2.0.5 \ | ||
134 | crate://crates.io/insta/1.43.1 \ | ||
135 | crate://crates.io/is_terminal_polyfill/1.70.0 \ | ||
136 | crate://crates.io/itertools/0.12.1 \ | ||
137 | crate://crates.io/itertools/0.13.0 \ | ||
138 | crate://crates.io/itoa/1.0.11 \ | ||
139 | crate://crates.io/jobserver/0.1.33 \ | ||
140 | crate://crates.io/js-sys/0.3.73 \ | ||
141 | crate://crates.io/keyring/2.3.3 \ | ||
142 | crate://crates.io/lazy_static/1.4.0 \ | ||
143 | crate://crates.io/lddtree/0.3.7 \ | ||
144 | crate://crates.io/libc/0.2.172 \ | ||
145 | crate://crates.io/libmimalloc-sys/0.1.39 \ | ||
146 | crate://crates.io/libredox/0.1.3 \ | ||
147 | crate://crates.io/linux-keyutils/0.2.4 \ | ||
148 | crate://crates.io/linux-raw-sys/0.4.14 \ | ||
149 | crate://crates.io/litemap/0.7.3 \ | ||
150 | crate://crates.io/lock_api/0.4.12 \ | ||
151 | crate://crates.io/lockfree-object-pool/0.1.6 \ | ||
152 | crate://crates.io/log/0.4.22 \ | ||
153 | crate://crates.io/lzma-rs/0.3.0 \ | ||
154 | crate://crates.io/lzma-sys/0.1.20 \ | ||
155 | crate://crates.io/lzxd/0.2.5 \ | ||
156 | crate://crates.io/mailparse/0.15.0 \ | ||
157 | crate://crates.io/matchers/0.1.0 \ | ||
158 | crate://crates.io/memchr/2.7.4 \ | ||
159 | crate://crates.io/mimalloc/0.1.43 \ | ||
160 | crate://crates.io/mime/0.3.17 \ | ||
161 | crate://crates.io/mime_guess/2.0.4 \ | ||
162 | crate://crates.io/minijinja/2.5.0 \ | ||
163 | crate://crates.io/minimal-lexical/0.2.1 \ | ||
164 | crate://crates.io/miniz_oxide/0.8.0 \ | ||
165 | crate://crates.io/msi/0.8.0 \ | ||
166 | crate://crates.io/multipart/0.18.0 \ | ||
167 | crate://crates.io/native-tls/0.2.12 \ | ||
168 | crate://crates.io/nom/7.1.3 \ | ||
169 | crate://crates.io/normalize-line-endings/0.3.0 \ | ||
170 | crate://crates.io/normpath/1.2.0 \ | ||
171 | crate://crates.io/nu-ansi-term/0.46.0 \ | ||
172 | crate://crates.io/num-conv/0.1.0 \ | ||
173 | crate://crates.io/number_prefix/0.4.0 \ | ||
174 | crate://crates.io/once_cell/1.20.2 \ | ||
175 | crate://crates.io/openssl/0.10.72 \ | ||
176 | crate://crates.io/openssl-macros/0.1.1 \ | ||
177 | crate://crates.io/openssl-probe/0.1.5 \ | ||
178 | crate://crates.io/openssl-sys/0.9.107 \ | ||
179 | crate://crates.io/option-ext/0.2.0 \ | ||
180 | crate://crates.io/os_pipe/1.2.0 \ | ||
181 | crate://crates.io/overload/0.1.1 \ | ||
182 | crate://crates.io/parking_lot/0.12.3 \ | ||
183 | crate://crates.io/parking_lot_core/0.9.10 \ | ||
184 | crate://crates.io/paste/1.0.15 \ | ||
185 | crate://crates.io/path-slash/0.2.1 \ | ||
186 | crate://crates.io/pep440_rs/0.7.3 \ | ||
187 | crate://crates.io/pep508_rs/0.9.2 \ | ||
188 | crate://crates.io/percent-encoding/2.3.1 \ | ||
189 | crate://crates.io/pin-project-lite/0.2.15 \ | ||
190 | crate://crates.io/pin-utils/0.1.0 \ | ||
191 | crate://crates.io/pkg-config/0.3.30 \ | ||
192 | crate://crates.io/plain/0.2.3 \ | ||
193 | crate://crates.io/platform-info/2.0.5 \ | ||
194 | crate://crates.io/portable-atomic/1.6.0 \ | ||
195 | crate://crates.io/powerfmt/0.2.0 \ | ||
196 | crate://crates.io/ppv-lite86/0.2.17 \ | ||
197 | crate://crates.io/pretty_assertions/1.4.1 \ | ||
198 | crate://crates.io/proc-macro-crate/3.1.0 \ | ||
199 | crate://crates.io/proc-macro2/1.0.92 \ | ||
200 | crate://crates.io/psm/0.1.21 \ | ||
201 | crate://crates.io/pyproject-toml/0.13.5 \ | ||
202 | crate://crates.io/python-pkginfo/0.6.5 \ | ||
203 | crate://crates.io/quote/1.0.37 \ | ||
204 | crate://crates.io/quoted_printable/0.5.0 \ | ||
205 | crate://crates.io/r-efi/5.2.0 \ | ||
206 | crate://crates.io/rand/0.8.5 \ | ||
207 | crate://crates.io/rand_chacha/0.3.1 \ | ||
208 | crate://crates.io/rand_core/0.6.4 \ | ||
209 | crate://crates.io/rayon/1.10.0 \ | ||
210 | crate://crates.io/rayon-core/1.12.1 \ | ||
211 | crate://crates.io/redox_syscall/0.4.1 \ | ||
212 | crate://crates.io/redox_syscall/0.5.1 \ | ||
213 | crate://crates.io/redox_users/0.4.5 \ | ||
214 | crate://crates.io/regex/1.11.1 \ | ||
215 | crate://crates.io/regex-automata/0.1.10 \ | ||
216 | crate://crates.io/regex-automata/0.4.9 \ | ||
217 | crate://crates.io/regex-syntax/0.6.29 \ | ||
218 | crate://crates.io/regex-syntax/0.8.5 \ | ||
219 | crate://crates.io/relative-path/1.9.3 \ | ||
220 | crate://crates.io/rfc2047-decoder/1.0.6 \ | ||
221 | crate://crates.io/ring/0.17.13 \ | ||
222 | crate://crates.io/rstest/0.22.0 \ | ||
223 | crate://crates.io/rstest_macros/0.22.0 \ | ||
224 | crate://crates.io/rustc-hash/2.0.0 \ | ||
225 | crate://crates.io/rustc_version/0.4.1 \ | ||
226 | crate://crates.io/rustflags/0.1.6 \ | ||
227 | crate://crates.io/rustix/0.38.41 \ | ||
228 | crate://crates.io/rustls/0.23.19 \ | ||
229 | crate://crates.io/rustls-pemfile/2.1.3 \ | ||
230 | crate://crates.io/rustls-pki-types/1.10.0 \ | ||
231 | crate://crates.io/rustls-webpki/0.102.8 \ | ||
232 | crate://crates.io/rustversion/1.0.18 \ | ||
233 | crate://crates.io/ryu/1.0.18 \ | ||
234 | crate://crates.io/same-file/1.0.6 \ | ||
235 | crate://crates.io/schannel/0.1.23 \ | ||
236 | crate://crates.io/schemars/0.8.21 \ | ||
237 | crate://crates.io/schemars_derive/0.8.21 \ | ||
238 | crate://crates.io/scopeguard/1.2.0 \ | ||
239 | crate://crates.io/scroll/0.12.0 \ | ||
240 | crate://crates.io/scroll_derive/0.12.0 \ | ||
241 | crate://crates.io/security-framework/2.11.0 \ | ||
242 | crate://crates.io/security-framework-sys/2.11.0 \ | ||
243 | crate://crates.io/semver/1.0.23 \ | ||
244 | crate://crates.io/serde/1.0.217 \ | ||
245 | crate://crates.io/serde_derive/1.0.217 \ | ||
246 | crate://crates.io/serde_derive_internals/0.29.1 \ | ||
247 | crate://crates.io/serde_json/1.0.135 \ | ||
248 | crate://crates.io/serde_spanned/0.6.8 \ | ||
249 | crate://crates.io/sha2/0.10.8 \ | ||
250 | crate://crates.io/sharded-slab/0.1.7 \ | ||
251 | crate://crates.io/shell-words/1.1.0 \ | ||
252 | crate://crates.io/shlex/1.3.0 \ | ||
253 | crate://crates.io/simd-adler32/0.3.7 \ | ||
254 | crate://crates.io/similar/2.5.0 \ | ||
255 | crate://crates.io/slab/0.4.9 \ | ||
256 | crate://crates.io/smallvec/1.13.2 \ | ||
257 | crate://crates.io/smawk/0.3.2 \ | ||
258 | crate://crates.io/snapbox/0.6.16 \ | ||
259 | crate://crates.io/snapbox-macros/0.3.10 \ | ||
260 | crate://crates.io/socks/0.3.4 \ | ||
261 | crate://crates.io/stable_deref_trait/1.2.0 \ | ||
262 | crate://crates.io/stacker/0.1.15 \ | ||
263 | crate://crates.io/static_assertions/1.1.0 \ | ||
264 | crate://crates.io/strsim/0.11.1 \ | ||
265 | crate://crates.io/subtle/2.5.0 \ | ||
266 | crate://crates.io/syn/2.0.90 \ | ||
267 | crate://crates.io/synstructure/0.13.1 \ | ||
268 | crate://crates.io/tar/0.4.43 \ | ||
269 | crate://crates.io/target-lexicon/0.13.1 \ | ||
270 | crate://crates.io/tempfile/3.11.0 \ | ||
271 | crate://crates.io/termcolor/1.4.1 \ | ||
272 | crate://crates.io/terminal_size/0.3.0 \ | ||
273 | crate://crates.io/textwrap/0.16.1 \ | ||
274 | crate://crates.io/thiserror/1.0.69 \ | ||
275 | crate://crates.io/thiserror/2.0.12 \ | ||
276 | crate://crates.io/thiserror-impl/1.0.69 \ | ||
277 | crate://crates.io/thiserror-impl/2.0.12 \ | ||
278 | crate://crates.io/thread_local/1.1.8 \ | ||
279 | crate://crates.io/time/0.3.36 \ | ||
280 | crate://crates.io/time-core/0.1.2 \ | ||
281 | crate://crates.io/time-macros/0.2.18 \ | ||
282 | crate://crates.io/tinystr/0.7.6 \ | ||
283 | crate://crates.io/toml/0.8.19 \ | ||
284 | crate://crates.io/toml_datetime/0.6.8 \ | ||
285 | crate://crates.io/toml_edit/0.21.1 \ | ||
286 | crate://crates.io/toml_edit/0.22.22 \ | ||
287 | crate://crates.io/tracing/0.1.41 \ | ||
288 | crate://crates.io/tracing-attributes/0.1.28 \ | ||
289 | crate://crates.io/tracing-core/0.1.33 \ | ||
290 | crate://crates.io/tracing-log/0.2.0 \ | ||
291 | crate://crates.io/tracing-serde/0.2.0 \ | ||
292 | crate://crates.io/tracing-subscriber/0.3.19 \ | ||
293 | crate://crates.io/trycmd/0.15.6 \ | ||
294 | crate://crates.io/twox-hash/1.6.3 \ | ||
295 | crate://crates.io/typenum/1.17.0 \ | ||
296 | crate://crates.io/unicase/2.7.0 \ | ||
297 | crate://crates.io/unicode-ident/1.0.12 \ | ||
298 | crate://crates.io/unicode-linebreak/0.1.5 \ | ||
299 | crate://crates.io/unicode-width/0.1.13 \ | ||
300 | crate://crates.io/unicode-width/0.2.0 \ | ||
301 | crate://crates.io/unicode-xid/0.2.6 \ | ||
302 | crate://crates.io/unscanny/0.1.0 \ | ||
303 | crate://crates.io/untrusted/0.9.0 \ | ||
304 | crate://crates.io/ureq/2.11.0 \ | ||
305 | crate://crates.io/url/2.5.4 \ | ||
306 | crate://crates.io/urlencoding/2.1.3 \ | ||
307 | crate://crates.io/utf16_iter/1.0.5 \ | ||
308 | crate://crates.io/utf8_iter/1.0.4 \ | ||
309 | crate://crates.io/utf8parse/0.2.2 \ | ||
310 | crate://crates.io/uuid/1.8.0 \ | ||
311 | crate://crates.io/valuable/0.1.0 \ | ||
312 | crate://crates.io/vcpkg/0.2.15 \ | ||
313 | crate://crates.io/version-ranges/0.1.1 \ | ||
314 | crate://crates.io/version_check/0.9.4 \ | ||
315 | crate://crates.io/versions/6.2.0 \ | ||
316 | crate://crates.io/wait-timeout/0.2.0 \ | ||
317 | crate://crates.io/walkdir/2.5.0 \ | ||
318 | crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ | ||
319 | crate://crates.io/wasi/0.14.2+wasi-0.2.4 \ | ||
320 | crate://crates.io/wasm-bindgen/0.2.96 \ | ||
321 | crate://crates.io/wasm-bindgen-backend/0.2.96 \ | ||
322 | crate://crates.io/wasm-bindgen-macro/0.2.96 \ | ||
323 | crate://crates.io/wasm-bindgen-macro-support/0.2.96 \ | ||
324 | crate://crates.io/wasm-bindgen-shared/0.2.96 \ | ||
325 | crate://crates.io/web-time/1.1.0 \ | ||
326 | crate://crates.io/webpki-roots/0.26.2 \ | ||
327 | crate://crates.io/which/7.0.0 \ | ||
328 | crate://crates.io/wild/2.2.1 \ | ||
329 | crate://crates.io/winapi/0.3.9 \ | ||
330 | crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ | ||
331 | crate://crates.io/winapi-util/0.1.8 \ | ||
332 | crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ | ||
333 | crate://crates.io/windows-sys/0.48.0 \ | ||
334 | crate://crates.io/windows-sys/0.52.0 \ | ||
335 | crate://crates.io/windows-targets/0.48.5 \ | ||
336 | crate://crates.io/windows-targets/0.52.5 \ | ||
337 | crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ | ||
338 | crate://crates.io/windows_aarch64_gnullvm/0.52.5 \ | ||
339 | crate://crates.io/windows_aarch64_msvc/0.48.5 \ | ||
340 | crate://crates.io/windows_aarch64_msvc/0.52.5 \ | ||
341 | crate://crates.io/windows_i686_gnu/0.48.5 \ | ||
342 | crate://crates.io/windows_i686_gnu/0.52.5 \ | ||
343 | crate://crates.io/windows_i686_gnullvm/0.52.5 \ | ||
344 | crate://crates.io/windows_i686_msvc/0.48.5 \ | ||
345 | crate://crates.io/windows_i686_msvc/0.52.5 \ | ||
346 | crate://crates.io/windows_x86_64_gnu/0.48.5 \ | ||
347 | crate://crates.io/windows_x86_64_gnu/0.52.5 \ | ||
348 | crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ | ||
349 | crate://crates.io/windows_x86_64_gnullvm/0.52.5 \ | ||
350 | crate://crates.io/windows_x86_64_msvc/0.48.5 \ | ||
351 | crate://crates.io/windows_x86_64_msvc/0.52.5 \ | ||
352 | crate://crates.io/winnow/0.5.40 \ | ||
353 | crate://crates.io/winnow/0.6.20 \ | ||
354 | crate://crates.io/winsafe/0.0.19 \ | ||
355 | crate://crates.io/wit-bindgen-rt/0.39.0 \ | ||
356 | crate://crates.io/write16/1.0.0 \ | ||
357 | crate://crates.io/writeable/0.5.5 \ | ||
358 | crate://crates.io/xattr/1.3.1 \ | ||
359 | crate://crates.io/xwin/0.6.5 \ | ||
360 | crate://crates.io/xz2/0.1.7 \ | ||
361 | crate://crates.io/yansi/1.0.1 \ | ||
362 | crate://crates.io/yoke/0.7.4 \ | ||
363 | crate://crates.io/yoke-derive/0.7.5 \ | ||
364 | crate://crates.io/zerocopy/0.7.35 \ | ||
365 | crate://crates.io/zerocopy-derive/0.7.35 \ | ||
366 | crate://crates.io/zerofrom/0.1.4 \ | ||
367 | crate://crates.io/zerofrom-derive/0.1.5 \ | ||
368 | crate://crates.io/zeroize/1.8.1 \ | ||
369 | crate://crates.io/zerovec/0.10.4 \ | ||
370 | crate://crates.io/zerovec-derive/0.10.3 \ | ||
371 | crate://crates.io/zip/2.3.0 \ | ||
372 | crate://crates.io/zopfli/0.8.1 \ | ||
373 | crate://crates.io/zstd/0.13.3 \ | ||
374 | crate://crates.io/zstd-safe/7.2.4 \ | ||
375 | crate://crates.io/zstd-sys/2.0.15+zstd.1.5.7 \ | ||
376 | " | ||
377 | |||
378 | SRC_URI[adler2-2.0.0.sha256sum] = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" | ||
379 | SRC_URI[ahash-0.8.11.sha256sum] = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" | ||
380 | SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" | ||
381 | SRC_URI[allocator-api2-0.2.18.sha256sum] = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" | ||
382 | SRC_URI[anstream-0.6.14.sha256sum] = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" | ||
383 | SRC_URI[anstyle-1.0.7.sha256sum] = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" | ||
384 | SRC_URI[anstyle-parse-0.2.4.sha256sum] = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" | ||
385 | SRC_URI[anstyle-query-1.1.0.sha256sum] = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" | ||
386 | SRC_URI[anstyle-wincon-3.0.3.sha256sum] = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" | ||
387 | SRC_URI[anyhow-1.0.89.sha256sum] = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" | ||
388 | SRC_URI[arbitrary-1.4.1.sha256sum] = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" | ||
389 | SRC_URI[autocfg-1.3.0.sha256sum] = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" | ||
390 | SRC_URI[automod-1.0.14.sha256sum] = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" | ||
391 | SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" | ||
392 | SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" | ||
393 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
394 | SRC_URI[bitflags-2.5.0.sha256sum] = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" | ||
395 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" | ||
396 | SRC_URI[boxcar-0.2.8.sha256sum] = "2721c3c5a6f0e7f7e607125d963fedeb765f545f67adc9d71ed934693881eb42" | ||
397 | SRC_URI[bstr-1.10.0.sha256sum] = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" | ||
398 | SRC_URI[bumpalo-3.16.0.sha256sum] = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" | ||
399 | SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" | ||
400 | SRC_URI[bytes-1.9.0.sha256sum] = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" | ||
401 | SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" | ||
402 | SRC_URI[bzip2-0.5.2.sha256sum] = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" | ||
403 | SRC_URI[bzip2-sys-0.1.13+1.0.8.sha256sum] = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" | ||
404 | SRC_URI[cab-0.6.0.sha256sum] = "171228650e6721d5acc0868a462cd864f49ac5f64e4a42cde270406e64e404d2" | ||
405 | SRC_URI[camino-1.1.9.sha256sum] = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" | ||
406 | SRC_URI[cargo-config2-0.1.26.sha256sum] = "d83ce0be8bd1479e5de6202def660e6c7e27e4e0599bffa4fed05bd380ec2ede" | ||
407 | SRC_URI[cargo-options-0.7.4.sha256sum] = "f3540247c0a37a76eb324acc238dc617786ea22c43b95da560c82a8f2714321f" | ||
408 | SRC_URI[cargo-platform-0.1.8.sha256sum] = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" | ||
409 | SRC_URI[cargo-xwin-0.18.6.sha256sum] = "5dff83aad332bd6ee29072dd874b48892cd22c58e233c25735eb4417b3999685" | ||
410 | SRC_URI[cargo-zigbuild-0.20.0.sha256sum] = "3f6e9e856390d5b0a859acaeda16528f8a61c964bdb894c3216c254908f1c2ea" | ||
411 | SRC_URI[cargo_metadata-0.19.0.sha256sum] = "afc309ed89476c8957c50fb818f56fe894db857866c3e163335faa91dc34eb85" | ||
412 | SRC_URI[cbindgen-0.29.0.sha256sum] = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" | ||
413 | SRC_URI[cc-1.2.16.sha256sum] = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" | ||
414 | SRC_URI[cfb-0.10.0.sha256sum] = "d8a4f8e55be323b378facfcf1f06aa97f6ec17cf4ac84fb17325093aaf62da41" | ||
415 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
416 | SRC_URI[charset-0.1.5.sha256sum] = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" | ||
417 | SRC_URI[chumsky-0.9.3.sha256sum] = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9" | ||
418 | SRC_URI[clap-4.5.7.sha256sum] = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" | ||
419 | SRC_URI[clap_builder-4.5.7.sha256sum] = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" | ||
420 | SRC_URI[clap_complete-4.5.5.sha256sum] = "d2020fa13af48afc65a9a87335bda648309ab3d154cd03c7ff95b378c7ed39c4" | ||
421 | SRC_URI[clap_complete_command-0.6.1.sha256sum] = "da8e198c052315686d36371e8a3c5778b7852fc75cc313e4e11eeb7a644a1b62" | ||
422 | SRC_URI[clap_complete_nushell-4.5.2.sha256sum] = "1accf1b463dee0d3ab2be72591dccdab8bef314958340447c882c4c72acfe2a3" | ||
423 | SRC_URI[clap_derive-4.5.5.sha256sum] = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" | ||
424 | SRC_URI[clap_lex-0.7.1.sha256sum] = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" | ||
425 | SRC_URI[cli-table-0.4.7.sha256sum] = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d" | ||
426 | SRC_URI[colorchoice-1.0.1.sha256sum] = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" | ||
427 | SRC_URI[configparser-3.1.0.sha256sum] = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" | ||
428 | SRC_URI[console-0.15.8.sha256sum] = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" | ||
429 | SRC_URI[content_inspector-0.2.4.sha256sum] = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" | ||
430 | SRC_URI[core-foundation-0.9.4.sha256sum] = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" | ||
431 | SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" | ||
432 | SRC_URI[cpufeatures-0.2.12.sha256sum] = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" | ||
433 | SRC_URI[crc-3.2.1.sha256sum] = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" | ||
434 | SRC_URI[crc-catalog-2.4.0.sha256sum] = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" | ||
435 | SRC_URI[crc32fast-1.4.2.sha256sum] = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" | ||
436 | SRC_URI[crossbeam-channel-0.5.15.sha256sum] = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" | ||
437 | SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" | ||
438 | SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" | ||
439 | SRC_URI[crossbeam-utils-0.8.20.sha256sum] = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" | ||
440 | SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" | ||
441 | SRC_URI[data-encoding-2.6.0.sha256sum] = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" | ||
442 | SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" | ||
443 | SRC_URI[derive_arbitrary-1.4.1.sha256sum] = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" | ||
444 | SRC_URI[dialoguer-0.11.0.sha256sum] = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" | ||
445 | SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" | ||
446 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | ||
447 | SRC_URI[dirs-5.0.1.sha256sum] = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" | ||
448 | SRC_URI[dirs-sys-0.4.1.sha256sum] = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" | ||
449 | SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" | ||
450 | SRC_URI[dissimilar-1.0.9.sha256sum] = "59f8e79d1fbf76bdfbde321e902714bf6c49df88a7dda6fc682fc2979226962d" | ||
451 | SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" | ||
452 | SRC_URI[dyn-clone-1.0.17.sha256sum] = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" | ||
453 | SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" | ||
454 | SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" | ||
455 | SRC_URI[encoding_rs-0.8.34.sha256sum] = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" | ||
456 | SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" | ||
457 | SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" | ||
458 | SRC_URI[expect-test-1.5.0.sha256sum] = "9e0be0a561335815e06dab7c62e50353134c796e7a6155402a64bcff66b6a5e0" | ||
459 | SRC_URI[fastrand-2.1.0.sha256sum] = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" | ||
460 | SRC_URI[fat-macho-0.4.9.sha256sum] = "4c9c45caa6c6edfaee4cb3bd84ea9686e115df7f0efb530e15fb466eccb0b345" | ||
461 | SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" | ||
462 | SRC_URI[flate2-1.0.33.sha256sum] = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" | ||
463 | SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" | ||
464 | SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" | ||
465 | SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" | ||
466 | SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" | ||
467 | SRC_URI[fs-err-3.0.0.sha256sum] = "8bb60e7409f34ef959985bc9d9c5ee8f5db24ee46ed9775850548021710f807f" | ||
468 | SRC_URI[fs4-0.12.0.sha256sum] = "c29c30684418547d476f0b48e84f4821639119c483b1eccd566c8cd0cd05f521" | ||
469 | SRC_URI[futures-0.3.30.sha256sum] = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" | ||
470 | SRC_URI[futures-channel-0.3.31.sha256sum] = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" | ||
471 | SRC_URI[futures-core-0.3.31.sha256sum] = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" | ||
472 | SRC_URI[futures-executor-0.3.30.sha256sum] = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" | ||
473 | SRC_URI[futures-io-0.3.31.sha256sum] = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" | ||
474 | SRC_URI[futures-macro-0.3.31.sha256sum] = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" | ||
475 | SRC_URI[futures-sink-0.3.31.sha256sum] = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" | ||
476 | SRC_URI[futures-task-0.3.31.sha256sum] = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" | ||
477 | SRC_URI[futures-timer-3.0.3.sha256sum] = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" | ||
478 | SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" | ||
479 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | ||
480 | SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" | ||
481 | SRC_URI[getrandom-0.3.3.sha256sum] = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" | ||
482 | SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" | ||
483 | SRC_URI[globset-0.4.16.sha256sum] = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" | ||
484 | SRC_URI[goblin-0.9.2.sha256sum] = "53ab3f32d1d77146981dea5d6b1e8fe31eedcb7013e5e00d6ccd1259a4b4d923" | ||
485 | SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" | ||
486 | SRC_URI[hashbrown-0.15.2.sha256sum] = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" | ||
487 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" | ||
488 | SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" | ||
489 | SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" | ||
490 | SRC_URI[humantime-serde-1.1.1.sha256sum] = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" | ||
491 | SRC_URI[icu_collections-1.5.0.sha256sum] = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" | ||
492 | SRC_URI[icu_locid-1.5.0.sha256sum] = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" | ||
493 | SRC_URI[icu_locid_transform-1.5.0.sha256sum] = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" | ||
494 | SRC_URI[icu_locid_transform_data-1.5.0.sha256sum] = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" | ||
495 | SRC_URI[icu_normalizer-1.5.0.sha256sum] = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" | ||
496 | SRC_URI[icu_normalizer_data-1.5.0.sha256sum] = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" | ||
497 | SRC_URI[icu_properties-1.5.1.sha256sum] = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" | ||
498 | SRC_URI[icu_properties_data-1.5.0.sha256sum] = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" | ||
499 | SRC_URI[icu_provider-1.5.0.sha256sum] = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" | ||
500 | SRC_URI[icu_provider_macros-1.5.0.sha256sum] = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" | ||
501 | SRC_URI[idna-1.0.3.sha256sum] = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" | ||
502 | SRC_URI[idna_adapter-1.2.0.sha256sum] = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" | ||
503 | SRC_URI[ignore-0.4.23.sha256sum] = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" | ||
504 | SRC_URI[indexmap-2.6.0.sha256sum] = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" | ||
505 | SRC_URI[indicatif-0.17.9.sha256sum] = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" | ||
506 | SRC_URI[indoc-2.0.5.sha256sum] = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" | ||
507 | SRC_URI[insta-1.43.1.sha256sum] = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371" | ||
508 | SRC_URI[is_terminal_polyfill-1.70.0.sha256sum] = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" | ||
509 | SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" | ||
510 | SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" | ||
511 | SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" | ||
512 | SRC_URI[jobserver-0.1.33.sha256sum] = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" | ||
513 | SRC_URI[js-sys-0.3.73.sha256sum] = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" | ||
514 | SRC_URI[keyring-2.3.3.sha256sum] = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0" | ||
515 | SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" | ||
516 | SRC_URI[lddtree-0.3.7.sha256sum] = "e0779ac94bd7b6ab781fa12388dbf79ac45ec1fa433e7d25521753be8227b08e" | ||
517 | SRC_URI[libc-0.2.172.sha256sum] = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | ||
518 | SRC_URI[libmimalloc-sys-0.1.39.sha256sum] = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" | ||
519 | SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" | ||
520 | SRC_URI[linux-keyutils-0.2.4.sha256sum] = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" | ||
521 | SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" | ||
522 | SRC_URI[litemap-0.7.3.sha256sum] = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" | ||
523 | SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" | ||
524 | SRC_URI[lockfree-object-pool-0.1.6.sha256sum] = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" | ||
525 | SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" | ||
526 | SRC_URI[lzma-rs-0.3.0.sha256sum] = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" | ||
527 | SRC_URI[lzma-sys-0.1.20.sha256sum] = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" | ||
528 | SRC_URI[lzxd-0.2.5.sha256sum] = "5de7336a183103429ad66d11d56d8bdc9c4a2916f6b85a8f11e5b127bde12001" | ||
529 | SRC_URI[mailparse-0.15.0.sha256sum] = "3da03d5980411a724e8aaf7b61a7b5e386ec55a7fb49ee3d0ff79efc7e5e7c7e" | ||
530 | SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" | ||
531 | SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" | ||
532 | SRC_URI[mimalloc-0.1.43.sha256sum] = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" | ||
533 | SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" | ||
534 | SRC_URI[mime_guess-2.0.4.sha256sum] = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" | ||
535 | SRC_URI[minijinja-2.5.0.sha256sum] = "2c37e1b517d1dcd0e51dc36c4567b9d5a29262b3ec8da6cb5d35e27a8fb529b5" | ||
536 | SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" | ||
537 | SRC_URI[miniz_oxide-0.8.0.sha256sum] = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" | ||
538 | SRC_URI[msi-0.8.0.sha256sum] = "4a2332f87a064dea9cce571408c879e0da8dc193b3af06a2b3b2604ee4182a32" | ||
539 | SRC_URI[multipart-0.18.0.sha256sum] = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" | ||
540 | SRC_URI[native-tls-0.2.12.sha256sum] = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" | ||
541 | SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" | ||
542 | SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" | ||
543 | SRC_URI[normpath-1.2.0.sha256sum] = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" | ||
544 | SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" | ||
545 | SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" | ||
546 | SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" | ||
547 | SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" | ||
548 | SRC_URI[openssl-0.10.72.sha256sum] = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" | ||
549 | SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" | ||
550 | SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" | ||
551 | SRC_URI[openssl-sys-0.9.107.sha256sum] = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" | ||
552 | SRC_URI[option-ext-0.2.0.sha256sum] = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" | ||
553 | SRC_URI[os_pipe-1.2.0.sha256sum] = "29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209" | ||
554 | SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" | ||
555 | SRC_URI[parking_lot-0.12.3.sha256sum] = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" | ||
556 | SRC_URI[parking_lot_core-0.9.10.sha256sum] = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" | ||
557 | SRC_URI[paste-1.0.15.sha256sum] = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" | ||
558 | SRC_URI[path-slash-0.2.1.sha256sum] = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" | ||
559 | SRC_URI[pep440_rs-0.7.3.sha256sum] = "31095ca1f396e3de32745f42b20deef7bc09077f918b085307e8eab6ddd8fb9c" | ||
560 | SRC_URI[pep508_rs-0.9.2.sha256sum] = "faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05" | ||
561 | SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" | ||
562 | SRC_URI[pin-project-lite-0.2.15.sha256sum] = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" | ||
563 | SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" | ||
564 | SRC_URI[pkg-config-0.3.30.sha256sum] = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" | ||
565 | SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" | ||
566 | SRC_URI[platform-info-2.0.5.sha256sum] = "7539aeb3fdd8cb4f6a331307cf71a1039cee75e94e8a71725b9484f4a0d9451a" | ||
567 | SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" | ||
568 | SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" | ||
569 | SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" | ||
570 | SRC_URI[pretty_assertions-1.4.1.sha256sum] = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" | ||
571 | SRC_URI[proc-macro-crate-3.1.0.sha256sum] = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" | ||
572 | SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" | ||
573 | SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" | ||
574 | SRC_URI[pyproject-toml-0.13.5.sha256sum] = "7b0f6160dc48298b9260d9b958ad1d7f96f6cd0b9df200b22329204e09334663" | ||
575 | SRC_URI[python-pkginfo-0.6.5.sha256sum] = "c21f58880fc45e91d29b2f639ab4051aaa6a2b054534c2d343a953347d0dd600" | ||
576 | SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" | ||
577 | SRC_URI[quoted_printable-0.5.0.sha256sum] = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0" | ||
578 | SRC_URI[r-efi-5.2.0.sha256sum] = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" | ||
579 | SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" | ||
580 | SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" | ||
581 | SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" | ||
582 | SRC_URI[rayon-1.10.0.sha256sum] = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" | ||
583 | SRC_URI[rayon-core-1.12.1.sha256sum] = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" | ||
584 | SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" | ||
585 | SRC_URI[redox_syscall-0.5.1.sha256sum] = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" | ||
586 | SRC_URI[redox_users-0.4.5.sha256sum] = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" | ||
587 | SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" | ||
588 | SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" | ||
589 | SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" | ||
590 | SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" | ||
591 | SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" | ||
592 | SRC_URI[relative-path-1.9.3.sha256sum] = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" | ||
593 | SRC_URI[rfc2047-decoder-1.0.6.sha256sum] = "bc36545d1021456a751b573517cb52e8c339b2f662e6b2778ef629282678de29" | ||
594 | SRC_URI[ring-0.17.13.sha256sum] = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" | ||
595 | SRC_URI[rstest-0.22.0.sha256sum] = "7b423f0e62bdd61734b67cd21ff50871dfaeb9cc74f869dcd6af974fbcb19936" | ||
596 | SRC_URI[rstest_macros-0.22.0.sha256sum] = "c5e1711e7d14f74b12a58411c542185ef7fb7f2e7f8ee6e2940a883628522b42" | ||
597 | SRC_URI[rustc-hash-2.0.0.sha256sum] = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" | ||
598 | SRC_URI[rustc_version-0.4.1.sha256sum] = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" | ||
599 | SRC_URI[rustflags-0.1.6.sha256sum] = "d7fc92159fb50a431c5da366f7627751fe7263cf867f8a30f27fa6063ba02ac0" | ||
600 | SRC_URI[rustix-0.38.41.sha256sum] = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" | ||
601 | SRC_URI[rustls-0.23.19.sha256sum] = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" | ||
602 | SRC_URI[rustls-pemfile-2.1.3.sha256sum] = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" | ||
603 | SRC_URI[rustls-pki-types-1.10.0.sha256sum] = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" | ||
604 | SRC_URI[rustls-webpki-0.102.8.sha256sum] = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" | ||
605 | SRC_URI[rustversion-1.0.18.sha256sum] = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" | ||
606 | SRC_URI[ryu-1.0.18.sha256sum] = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" | ||
607 | SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" | ||
608 | SRC_URI[schannel-0.1.23.sha256sum] = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" | ||
609 | SRC_URI[schemars-0.8.21.sha256sum] = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" | ||
610 | SRC_URI[schemars_derive-0.8.21.sha256sum] = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" | ||
611 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | ||
612 | SRC_URI[scroll-0.12.0.sha256sum] = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" | ||
613 | SRC_URI[scroll_derive-0.12.0.sha256sum] = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" | ||
614 | SRC_URI[security-framework-2.11.0.sha256sum] = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" | ||
615 | SRC_URI[security-framework-sys-2.11.0.sha256sum] = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" | ||
616 | SRC_URI[semver-1.0.23.sha256sum] = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" | ||
617 | SRC_URI[serde-1.0.217.sha256sum] = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" | ||
618 | SRC_URI[serde_derive-1.0.217.sha256sum] = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" | ||
619 | SRC_URI[serde_derive_internals-0.29.1.sha256sum] = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" | ||
620 | SRC_URI[serde_json-1.0.135.sha256sum] = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" | ||
621 | SRC_URI[serde_spanned-0.6.8.sha256sum] = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" | ||
622 | SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" | ||
623 | SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" | ||
624 | SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" | ||
625 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" | ||
626 | SRC_URI[simd-adler32-0.3.7.sha256sum] = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" | ||
627 | SRC_URI[similar-2.5.0.sha256sum] = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" | ||
628 | SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" | ||
629 | SRC_URI[smallvec-1.13.2.sha256sum] = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" | ||
630 | SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" | ||
631 | SRC_URI[snapbox-0.6.16.sha256sum] = "027c936207f85d10d015e21faf5c676c7e08c453ed371adf55c0874c443ca77a" | ||
632 | SRC_URI[snapbox-macros-0.3.10.sha256sum] = "16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af" | ||
633 | SRC_URI[socks-0.3.4.sha256sum] = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" | ||
634 | SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" | ||
635 | SRC_URI[stacker-0.1.15.sha256sum] = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" | ||
636 | SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" | ||
637 | SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" | ||
638 | SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" | ||
639 | SRC_URI[syn-2.0.90.sha256sum] = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" | ||
640 | SRC_URI[synstructure-0.13.1.sha256sum] = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" | ||
641 | SRC_URI[tar-0.4.43.sha256sum] = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" | ||
642 | SRC_URI[target-lexicon-0.13.1.sha256sum] = "dc12939a1c9b9d391e0b7135f72fd30508b73450753e28341fed159317582a77" | ||
643 | SRC_URI[tempfile-3.11.0.sha256sum] = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" | ||
644 | SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" | ||
645 | SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" | ||
646 | SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" | ||
647 | SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" | ||
648 | SRC_URI[thiserror-2.0.12.sha256sum] = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" | ||
649 | SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" | ||
650 | SRC_URI[thiserror-impl-2.0.12.sha256sum] = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" | ||
651 | SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" | ||
652 | SRC_URI[time-0.3.36.sha256sum] = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" | ||
653 | SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" | ||
654 | SRC_URI[time-macros-0.2.18.sha256sum] = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" | ||
655 | SRC_URI[tinystr-0.7.6.sha256sum] = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" | ||
656 | SRC_URI[toml-0.8.19.sha256sum] = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" | ||
657 | SRC_URI[toml_datetime-0.6.8.sha256sum] = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" | ||
658 | SRC_URI[toml_edit-0.21.1.sha256sum] = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" | ||
659 | SRC_URI[toml_edit-0.22.22.sha256sum] = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" | ||
660 | SRC_URI[tracing-0.1.41.sha256sum] = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" | ||
661 | SRC_URI[tracing-attributes-0.1.28.sha256sum] = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" | ||
662 | SRC_URI[tracing-core-0.1.33.sha256sum] = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" | ||
663 | SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" | ||
664 | SRC_URI[tracing-serde-0.2.0.sha256sum] = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" | ||
665 | SRC_URI[tracing-subscriber-0.3.19.sha256sum] = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" | ||
666 | SRC_URI[trycmd-0.15.6.sha256sum] = "3e8673f1dc45acdff8e25a06cc62f8e529563e8acd84237ce83d5a28e2befa12" | ||
667 | SRC_URI[twox-hash-1.6.3.sha256sum] = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" | ||
668 | SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" | ||
669 | SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" | ||
670 | SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||
671 | SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" | ||
672 | SRC_URI[unicode-width-0.1.13.sha256sum] = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" | ||
673 | SRC_URI[unicode-width-0.2.0.sha256sum] = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" | ||
674 | SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" | ||
675 | SRC_URI[unscanny-0.1.0.sha256sum] = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" | ||
676 | SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" | ||
677 | SRC_URI[ureq-2.11.0.sha256sum] = "b30e6f97efe1fa43535ee241ee76967d3ff6ff3953ebb430d8d55c5393029e7b" | ||
678 | SRC_URI[url-2.5.4.sha256sum] = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" | ||
679 | SRC_URI[urlencoding-2.1.3.sha256sum] = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" | ||
680 | SRC_URI[utf16_iter-1.0.5.sha256sum] = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" | ||
681 | SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" | ||
682 | SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" | ||
683 | SRC_URI[uuid-1.8.0.sha256sum] = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" | ||
684 | SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" | ||
685 | SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" | ||
686 | SRC_URI[version-ranges-0.1.1.sha256sum] = "f8d079415ceb2be83fc355adbadafe401307d5c309c7e6ade6638e6f9f42f42d" | ||
687 | SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" | ||
688 | SRC_URI[versions-6.2.0.sha256sum] = "38a8931f8d167b6448076020e70b9de46dcf5ea1731212481a092d0071c4ac5b" | ||
689 | SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" | ||
690 | SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" | ||
691 | SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" | ||
692 | SRC_URI[wasi-0.14.2+wasi-0.2.4.sha256sum] = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" | ||
693 | SRC_URI[wasm-bindgen-0.2.96.sha256sum] = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" | ||
694 | SRC_URI[wasm-bindgen-backend-0.2.96.sha256sum] = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" | ||
695 | SRC_URI[wasm-bindgen-macro-0.2.96.sha256sum] = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" | ||
696 | SRC_URI[wasm-bindgen-macro-support-0.2.96.sha256sum] = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" | ||
697 | SRC_URI[wasm-bindgen-shared-0.2.96.sha256sum] = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" | ||
698 | SRC_URI[web-time-1.1.0.sha256sum] = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" | ||
699 | SRC_URI[webpki-roots-0.26.2.sha256sum] = "3c452ad30530b54a4d8e71952716a212b08efd0f3562baa66c29a618b07da7c3" | ||
700 | SRC_URI[which-7.0.0.sha256sum] = "c9cad3279ade7346b96e38731a641d7343dd6a53d55083dd54eadfa5a1b38c6b" | ||
701 | SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1" | ||
702 | SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" | ||
703 | SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | ||
704 | SRC_URI[winapi-util-0.1.8.sha256sum] = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" | ||
705 | SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | ||
706 | SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" | ||
707 | SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" | ||
708 | SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" | ||
709 | SRC_URI[windows-targets-0.52.5.sha256sum] = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" | ||
710 | SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" | ||
711 | SRC_URI[windows_aarch64_gnullvm-0.52.5.sha256sum] = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" | ||
712 | SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" | ||
713 | SRC_URI[windows_aarch64_msvc-0.52.5.sha256sum] = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" | ||
714 | SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" | ||
715 | SRC_URI[windows_i686_gnu-0.52.5.sha256sum] = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" | ||
716 | SRC_URI[windows_i686_gnullvm-0.52.5.sha256sum] = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" | ||
717 | SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" | ||
718 | SRC_URI[windows_i686_msvc-0.52.5.sha256sum] = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" | ||
719 | SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" | ||
720 | SRC_URI[windows_x86_64_gnu-0.52.5.sha256sum] = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" | ||
721 | SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" | ||
722 | SRC_URI[windows_x86_64_gnullvm-0.52.5.sha256sum] = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" | ||
723 | SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" | ||
724 | SRC_URI[windows_x86_64_msvc-0.52.5.sha256sum] = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" | ||
725 | SRC_URI[winnow-0.5.40.sha256sum] = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" | ||
726 | SRC_URI[winnow-0.6.20.sha256sum] = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" | ||
727 | SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" | ||
728 | SRC_URI[wit-bindgen-rt-0.39.0.sha256sum] = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" | ||
729 | SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" | ||
730 | SRC_URI[writeable-0.5.5.sha256sum] = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" | ||
731 | SRC_URI[xattr-1.3.1.sha256sum] = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" | ||
732 | SRC_URI[xwin-0.6.5.sha256sum] = "ca7e4546db1514c186778f0a257d89732ed9ed75587d0953ac25be7519d9f0d1" | ||
733 | SRC_URI[xz2-0.1.7.sha256sum] = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" | ||
734 | SRC_URI[yansi-1.0.1.sha256sum] = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" | ||
735 | SRC_URI[yoke-0.7.4.sha256sum] = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" | ||
736 | SRC_URI[yoke-derive-0.7.5.sha256sum] = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" | ||
737 | SRC_URI[zerocopy-0.7.35.sha256sum] = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" | ||
738 | SRC_URI[zerocopy-derive-0.7.35.sha256sum] = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" | ||
739 | SRC_URI[zerofrom-0.1.4.sha256sum] = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" | ||
740 | SRC_URI[zerofrom-derive-0.1.5.sha256sum] = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" | ||
741 | SRC_URI[zeroize-1.8.1.sha256sum] = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" | ||
742 | SRC_URI[zerovec-0.10.4.sha256sum] = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" | ||
743 | SRC_URI[zerovec-derive-0.10.3.sha256sum] = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" | ||
744 | SRC_URI[zip-2.3.0.sha256sum] = "84e9a772a54b54236b9b744aaaf8d7be01b4d6e99725523cb82cb32d1c81b1d7" | ||
745 | SRC_URI[zopfli-0.8.1.sha256sum] = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" | ||
746 | SRC_URI[zstd-0.13.3.sha256sum] = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" | ||
747 | SRC_URI[zstd-safe-7.2.4.sha256sum] = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" | ||
748 | SRC_URI[zstd-sys-2.0.15+zstd.1.5.7.sha256sum] = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" | ||
diff --git a/meta/recipes-devtools/python/python3-maturin_1.9.0.bb b/meta/recipes-devtools/python/python3-maturin_1.9.0.bb new file mode 100644 index 0000000000..e4147b9321 --- /dev/null +++ b/meta/recipes-devtools/python/python3-maturin_1.9.0.bb | |||
@@ -0,0 +1,42 @@ | |||
1 | SUMMARY = "Build and publish crates with pyo3, rust-cpython, cffi bindings and rust binaries as python packages" | ||
2 | HOMEPAGE = "https://github.com/pyo3/maturin" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT | Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://license-apache;md5=1836efb2eb779966696f473ee8540542 \ | ||
6 | file://license-mit;md5=85fd3b67069cff784d98ebfc7d5c0797" | ||
7 | |||
8 | SRC_URI[sha256sum] = "ccb9cb87f8df88d1bab8f49efe3fc77f0abb0639ea4b4ebf4f35549200d16b9e" | ||
9 | |||
10 | S = "${UNPACKDIR}/maturin-${PV}" | ||
11 | |||
12 | CFLAGS += "-ffile-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home" | ||
13 | |||
14 | DEPENDS += "\ | ||
15 | python3-setuptools-rust-native \ | ||
16 | python3-semantic-version-native \ | ||
17 | python3-setuptools-rust \ | ||
18 | " | ||
19 | |||
20 | require ${BPN}-crates.inc | ||
21 | |||
22 | inherit pypi cargo-update-recipe-crates python_pyo3 python_setuptools_build_meta | ||
23 | |||
24 | do_configure() { | ||
25 | python_pyo3_do_configure | ||
26 | cargo_common_do_configure | ||
27 | python_pep517_do_configure | ||
28 | } | ||
29 | |||
30 | RDEPENDS:${PN} += "\ | ||
31 | cargo \ | ||
32 | python3-json \ | ||
33 | rust \ | ||
34 | " | ||
35 | |||
36 | RRECOMMENDS:${PN} += "\ | ||
37 | python3-ensurepip \ | ||
38 | python3-pip \ | ||
39 | python3-venv \ | ||
40 | " | ||
41 | |||
42 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-meson-python_0.18.0.bb b/meta/recipes-devtools/python/python3-meson-python_0.18.0.bb new file mode 100644 index 0000000000..742a2580a7 --- /dev/null +++ b/meta/recipes-devtools/python/python3-meson-python_0.18.0.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Meson Python build backend (PEP 517)" | ||
2 | HOMEPAGE = "https://github.com/mesonbuild/meson-python" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=d580b27e67cc0892a5b005b0be114b60" | ||
5 | |||
6 | DEPENDS = " \ | ||
7 | meson-native \ | ||
8 | ninja-native \ | ||
9 | patchelf-native \ | ||
10 | python3-pyproject-metadata-native \ | ||
11 | " | ||
12 | |||
13 | PYPI_PACKAGE = "meson_python" | ||
14 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
15 | |||
16 | inherit pypi python_mesonpy | ||
17 | SRC_URI[sha256sum] = "c56a99ec9df669a40662fe46960321af6e4b14106c14db228709c1628e23848d" | ||
18 | |||
19 | DEPENDS:remove:class-native = "python3-meson-python-native" | ||
20 | |||
21 | RDEPENDS:${PN} = " \ | ||
22 | meson \ | ||
23 | ninja \ | ||
24 | patchelf \ | ||
25 | python3-pyproject-metadata \ | ||
26 | " | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-more-itertools/run-ptest b/meta/recipes-devtools/python/python3-more-itertools/run-ptest deleted file mode 100644 index 3385d68939..0000000000 --- a/meta/recipes-devtools/python/python3-more-itertools/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' | ||
diff --git a/meta/recipes-devtools/python/python3-more-itertools_10.6.0.bb b/meta/recipes-devtools/python/python3-more-itertools_10.6.0.bb new file mode 100644 index 0000000000..5447a7af8e --- /dev/null +++ b/meta/recipes-devtools/python/python3-more-itertools_10.6.0.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | SUMMARY = "More routines for operating on iterables, beyond itertools" | ||
2 | HOMEPAGE = "https://github.com/erikrose/more-itertools" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5" | ||
5 | |||
6 | SRC_URI[sha256sum] = "2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b" | ||
7 | |||
8 | inherit pypi python_flit_core ptest-python-pytest | ||
9 | |||
10 | RDEPENDS:${PN} += " \ | ||
11 | python3-asyncio \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS:${PN}-ptest += " \ | ||
15 | python3-statistics \ | ||
16 | " | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb b/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb deleted file mode 100644 index 0cb61915bf..0000000000 --- a/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | DESCRIPTION = "More routines for operating on iterables, beyond itertools" | ||
2 | HOMEPAGE = "https://github.com/erikrose/more-itertools" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5" | ||
5 | |||
6 | SRC_URI[sha256sum] = "c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713" | ||
7 | |||
8 | inherit pypi setuptools3 ptest | ||
9 | |||
10 | SRC_URI += " \ | ||
11 | file://run-ptest \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS_${PN}-ptest += " \ | ||
15 | ${PYTHON_PN}-pytest \ | ||
16 | " | ||
17 | |||
18 | do_install_ptest() { | ||
19 | install -d ${D}${PTEST_PATH}/tests | ||
20 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
21 | } | ||
22 | |||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-nose_1.3.7.bb b/meta/recipes-devtools/python/python3-nose_1.3.7.bb deleted file mode 100644 index 13dbf96179..0000000000 --- a/meta/recipes-devtools/python/python3-nose_1.3.7.bb +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-nose.inc | ||
diff --git a/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch new file mode 100644 index 0000000000..3e08b43587 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From b036c984b019d941ead2efd5a05d1588c4bc193a Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 10 Dec 2015 13:20:30 +0200 | ||
4 | Subject: [PATCH] Don't search /usr and so on for libraries by default to | ||
5 | |||
6 | avoid host contamination. | ||
7 | |||
8 | Upstream-Status: Inappropriate (As the code stands, this is a hack) | ||
9 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | --- | ||
12 | numpy/distutils/system_info.py | 42 +++++----------------------------- | ||
13 | 1 file changed, 6 insertions(+), 36 deletions(-) | ||
14 | |||
15 | diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py | ||
16 | index 6478548..c0620e7 100644 | ||
17 | --- a/numpy/distutils/system_info.py | ||
18 | +++ b/numpy/distutils/system_info.py | ||
19 | @@ -326,44 +326,14 @@ def add_system_root(library_root): | ||
20 | add_system_root(os.path.join(conda_dir, 'Library')) | ||
21 | |||
22 | else: | ||
23 | - default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', | ||
24 | - '/opt/local/lib', '/sw/lib'], platform_bits) | ||
25 | default_runtime_dirs = [] | ||
26 | - default_include_dirs = ['/usr/local/include', | ||
27 | - '/opt/include', | ||
28 | - # path of umfpack under macports | ||
29 | - '/opt/local/include/ufsparse', | ||
30 | - '/opt/local/include', '/sw/include', | ||
31 | - '/usr/include/suitesparse'] | ||
32 | - default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src'] | ||
33 | - | ||
34 | - default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib', | ||
35 | - '/usr/lib'], platform_bits) | ||
36 | - default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include'] | ||
37 | - | ||
38 | - if os.path.exists('/usr/lib/X11'): | ||
39 | - globbed_x11_dir = glob('/usr/lib/*/libX11.so') | ||
40 | - if globbed_x11_dir: | ||
41 | - x11_so_dir = os.path.split(globbed_x11_dir[0])[0] | ||
42 | - default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11']) | ||
43 | - default_x11_include_dirs.extend(['/usr/lib/X11/include', | ||
44 | - '/usr/include/X11']) | ||
45 | - | ||
46 | - with open(os.devnull, 'w') as tmp: | ||
47 | - try: | ||
48 | - p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE, | ||
49 | - stderr=tmp) | ||
50 | - except (OSError, DistutilsError): | ||
51 | - # OSError if gcc is not installed, or SandboxViolation (DistutilsError | ||
52 | - # subclass) if an old setuptools bug is triggered (see gh-3160). | ||
53 | - pass | ||
54 | - else: | ||
55 | - triplet = str(p.communicate()[0].decode().strip()) | ||
56 | - if p.returncode == 0: | ||
57 | - # gcc supports the "-print-multiarch" option | ||
58 | - default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] | ||
59 | - default_lib_dirs += [os.path.join("/usr/lib/", triplet)] | ||
60 | |||
61 | + default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) | ||
62 | + default_include_dirs = ['/deaddir/include'] | ||
63 | + default_src_dirs = ['.', '/deaddir/src'] | ||
64 | + | ||
65 | + default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) | ||
66 | + default_x11_include_dirs = ['/deaddir/include'] | ||
67 | |||
68 | if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: | ||
69 | default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) | ||
diff --git a/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch b/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch new file mode 100644 index 0000000000..8b39b7bcfe --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From 45d76002bc989a9098141f2bfcd2d2fabc5a04d5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
3 | Date: Fri, 29 Sep 2023 22:53:24 +0100 | ||
4 | Subject: [PATCH] This regex decides whether to use O3 opimisation on numpy or | ||
5 | not. | ||
6 | |||
7 | It includes "od", which happens to be a substring of "reproducible" | ||
8 | but not "qemux86-world". | ||
9 | |||
10 | The regex will run against all compiler options including things like: | ||
11 | |||
12 | -fmacro-prefix-map=/XXX/build/tmp/work/core2-64-poky-linux/python3-numpy/1.26.0/numpy-1.26.0=/usr/src/debug/python3-numpy/1.26.0-r0 | ||
13 | |||
14 | i.e. including build paths. | ||
15 | |||
16 | Reduce the regex to something deterministic for our builds, assuming | ||
17 | nobody builds in /home/debug:full/ | ||
18 | |||
19 | The autobuilder race depended upon whether qemux86-world or the | ||
20 | reproducible target ran first and won the race to populate sstate. | ||
21 | |||
22 | Upstream-Status: Inappropriate [upstream have dropped distutils and switched to meson] | ||
23 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
24 | --- | ||
25 | numpy/distutils/ccompiler_opt.py | 2 +- | ||
26 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
27 | |||
28 | diff --git a/numpy/distutils/ccompiler_opt.py b/numpy/distutils/ccompiler_opt.py | ||
29 | index b1a6fa3..7b0302b 100644 | ||
30 | --- a/numpy/distutils/ccompiler_opt.py | ||
31 | +++ b/numpy/distutils/ccompiler_opt.py | ||
32 | @@ -991,7 +991,7 @@ def __init__(self): | ||
33 | ("cc_is_nocc", "", ""), | ||
34 | ) | ||
35 | detect_args = ( | ||
36 | - ("cc_has_debug", ".*(O0|Od|ggdb|coverage|debug:full).*", ""), | ||
37 | + ("cc_has_debug", ".*debug:full.*", ""), | ||
38 | ("cc_has_native", | ||
39 | ".*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*", ""), | ||
40 | # in case if the class run with -DNPY_DISABLE_OPTIMIZATION | ||
diff --git a/meta/recipes-devtools/python/python3-numpy/run-ptest b/meta/recipes-devtools/python/python3-numpy/run-ptest new file mode 100644 index 0000000000..6e76dffc59 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/run-ptest | |||
@@ -0,0 +1,15 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # By default, numpy will use /tmp as the root path for temporary files used | ||
4 | # during tests, but if this is a tmpfs it may fill up quickly and cause many of | ||
5 | # the tests to report "no space left on device" errors. Create a custom | ||
6 | # directory for these and point pytest at it so we can take advantage of the | ||
7 | # storage provided in the rootfs. | ||
8 | export PYTEST_DEBUG_TEMPROOT="/usr/lib/python3-numpy/ptest/tmp" | ||
9 | mkdir -p "$PYTEST_DEBUG_TEMPROOT" | ||
10 | |||
11 | # test_mem_policy fails if there's no C compiler present, but we don't want to | ||
12 | # include gcc as a ptest dependency, so skip that. test_big_arrays uses up a | ||
13 | # large amount of storage, so skip that too. | ||
14 | pytest --automake -m "not slow" -k "not test_mem_policy and not test_big_arrays" /usr/lib/python3.*/site-packages/numpy | ||
15 | rm -rf "$PYTEST_DEBUG_TEMPROOT" | ||
diff --git a/meta/recipes-devtools/python/python3-numpy_2.3.0.bb b/meta/recipes-devtools/python/python3-numpy_2.3.0.bb new file mode 100644 index 0000000000..34a14f7ca6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy_2.3.0.bb | |||
@@ -0,0 +1,76 @@ | |||
1 | SUMMARY = "A sophisticated Numeric Processing Package for Python" | ||
2 | HOMEPAGE = "https://numpy.org/" | ||
3 | DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python." | ||
4 | SECTION = "devel/python" | ||
5 | LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26080bf81b2662c7119d3ef28ae197fd" | ||
7 | |||
8 | SRCNAME = "numpy" | ||
9 | |||
10 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ | ||
11 | file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ | ||
12 | file://fix_reproducibility.patch \ | ||
13 | file://run-ptest \ | ||
14 | " | ||
15 | SRC_URI[sha256sum] = "581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6" | ||
16 | |||
17 | GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" | ||
18 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" | ||
19 | |||
20 | inherit pkgconfig ptest python_mesonpy github-releases cython | ||
21 | |||
22 | S = "${UNPACKDIR}/numpy-${PV}" | ||
23 | |||
24 | PACKAGECONFIG[svml] = "-Ddisable-svml=false,-Ddisable-svml=true" | ||
25 | |||
26 | # Remove references to buildpaths from numpy's __config__.py | ||
27 | do_install:append() { | ||
28 | sed -i \ | ||
29 | -e 's|${S}=||g' \ | ||
30 | -e 's|${B}=||g' \ | ||
31 | -e 's|${RECIPE_SYSROOT_NATIVE}=||g' \ | ||
32 | -e 's|${RECIPE_SYSROOT_NATIVE}||g' \ | ||
33 | -e 's|${RECIPE_SYSROOT}=||g' \ | ||
34 | -e 's|${RECIPE_SYSROOT}||g' ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/__config__.py | ||
35 | |||
36 | nativepython3 -mcompileall -s ${D} ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/__config__.py | ||
37 | } | ||
38 | |||
39 | FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/_core/lib/*.a \ | ||
40 | ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a \ | ||
41 | " | ||
42 | |||
43 | # install what is needed for numpy.test() | ||
44 | RDEPENDS:${PN} = "\ | ||
45 | python3-compression \ | ||
46 | python3-ctypes \ | ||
47 | python3-datetime \ | ||
48 | python3-difflib \ | ||
49 | python3-doctest \ | ||
50 | python3-email \ | ||
51 | python3-json \ | ||
52 | python3-misc \ | ||
53 | python3-mmap \ | ||
54 | python3-multiprocessing \ | ||
55 | python3-netclient \ | ||
56 | python3-numbers \ | ||
57 | python3-pickle \ | ||
58 | python3-pkgutil \ | ||
59 | python3-pprint \ | ||
60 | python3-pydoc \ | ||
61 | python3-shell \ | ||
62 | python3-threading \ | ||
63 | python3-unittest \ | ||
64 | " | ||
65 | RDEPENDS:${PN}-ptest += "\ | ||
66 | ldd \ | ||
67 | meson \ | ||
68 | python3-hypothesis \ | ||
69 | python3-pytest \ | ||
70 | python3-resource \ | ||
71 | python3-sortedcontainers \ | ||
72 | python3-typing-extensions \ | ||
73 | python3-unittest-automake-output \ | ||
74 | " | ||
75 | |||
76 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-packaging/run-ptest.in b/meta/recipes-devtools/python/python3-packaging/run-ptest.in new file mode 100644 index 0000000000..508538463b --- /dev/null +++ b/meta/recipes-devtools/python/python3-packaging/run-ptest.in | |||
@@ -0,0 +1,2 @@ | |||
1 | #!/bin/sh | ||
2 | pytest --automake IGNOREDTESTS | ||
diff --git a/meta/recipes-devtools/python/python3-packaging_20.9.bb b/meta/recipes-devtools/python/python3-packaging_20.9.bb deleted file mode 100644 index 92cf6a25fe..0000000000 --- a/meta/recipes-devtools/python/python3-packaging_20.9.bb +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | DESCRIPTION = "Core utilities for Python packages" | ||
2 | HOMEPAGE = "https://github.com/pypa/packaging" | ||
3 | LICENSE = "Apache-2.0 & BSD" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91" | ||
5 | |||
6 | SRC_URI[sha256sum] = "5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | BBCLASSEXTEND = "native" | ||
11 | |||
12 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native" | ||
13 | RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-pyparsing" | ||
diff --git a/meta/recipes-devtools/python/python3-packaging_25.0.bb b/meta/recipes-devtools/python/python3-packaging_25.0.bb new file mode 100644 index 0000000000..9cb5c68f58 --- /dev/null +++ b/meta/recipes-devtools/python/python3-packaging_25.0.bb | |||
@@ -0,0 +1,43 @@ | |||
1 | SUMMARY = "Core utilities for Python packages" | ||
2 | HOMEPAGE = "https://github.com/pypa/packaging" | ||
3 | LICENSE = "Apache-2.0 | BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91" | ||
5 | |||
6 | SRC_URI[sha256sum] = "d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f" | ||
7 | |||
8 | SRC_URI += "file://run-ptest.in" | ||
9 | |||
10 | inherit pypi python_flit_core ptest | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | # Bootstrap the native build | ||
15 | DEPENDS:remove:class-native = "python3-build-native" | ||
16 | RDEPENDS:${PN} += "python3-profile" | ||
17 | |||
18 | # https://github.com/pypa/packaging/issues/850 | ||
19 | SKIPLIST ?= "" | ||
20 | SKIPLIST:libc-musl = "--deselect tests/test_manylinux.py::test_is_manylinux_compatible_old --ignore=tests/test_tags.py" | ||
21 | |||
22 | do_compile:class-native () { | ||
23 | python_flit_core_do_manual_build | ||
24 | } | ||
25 | |||
26 | do_install_ptest() { | ||
27 | cp -r ${S}/tests ${D}${PTEST_PATH}/ | ||
28 | # We don't need this script which is used to build the binaries | ||
29 | rm -f ${D}${PTEST_PATH}/tests/manylinux/build.sh | ||
30 | sed -e 's|IGNOREDTESTS|${SKIPLIST}|' ${UNPACKDIR}/run-ptest.in > ${D}${PTEST_PATH}/run-ptest | ||
31 | chmod 0755 ${D}${PTEST_PATH}/run-ptest | ||
32 | } | ||
33 | |||
34 | RDEPENDS:${PN}-ptest = "\ | ||
35 | python3-ctypes \ | ||
36 | python3-pretend \ | ||
37 | python3-pytest \ | ||
38 | python3-unittest-automake-output \ | ||
39 | " | ||
40 | |||
41 | # The ptest package contains prebuilt test binaries | ||
42 | INSANE_SKIP:${PN} = "already-stripped" | ||
43 | INSANE_SKIP:${PN}-ptest = "arch" | ||
diff --git a/meta/recipes-devtools/python/python3-pathlib2_2.3.5.bb b/meta/recipes-devtools/python/python3-pathlib2_2.3.5.bb deleted file mode 100644 index a022701ad0..0000000000 --- a/meta/recipes-devtools/python/python3-pathlib2_2.3.5.bb +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | DESCRIPTION = "Object-oriented filesystem paths" | ||
2 | HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=042856c23a3e903b33bf361ea1cbe29a" | ||
5 | |||
6 | SRC_URI[md5sum] = "f2bd0a363eb0f8fa0556f35c1d9e66fb" | ||
7 | SRC_URI[sha256sum] = "6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-ctypes" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pathspec_0.12.1.bb b/meta/recipes-devtools/python/python3-pathspec_0.12.1.bb new file mode 100644 index 0000000000..2c80b24c28 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pathspec_0.12.1.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Utility library for gitignore style pattern matching of file paths." | ||
2 | HOMEPAGE = "https://github.com/cpburnz/python-path-specification" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MPL-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad" | ||
6 | |||
7 | SRC_URI[sha256sum] = "a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" | ||
8 | |||
9 | inherit pypi python_flit_core | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} += "python3-profile" | ||
diff --git a/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch index 688da6b204..218add1778 100644 --- a/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch +++ b/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 09bd8368bf0d5385663a10eeb890131481681bdd Mon Sep 17 00:00:00 2001 | 1 | From df0a8c56f03004738599e06a7b5a1d2b67189848 Mon Sep 17 00:00:00 2001 |
2 | From: Changqing Li <changqing.li@windriver.com> | 2 | From: Changqing Li <changqing.li@windriver.com> |
3 | Date: Thu, 23 Apr 2020 09:28:58 +0000 | 3 | Date: Thu, 23 Apr 2020 09:28:58 +0000 |
4 | Subject: [PATCH] change shebang to python3 | 4 | Subject: [PATCH] change shebang to python3 |
@@ -12,10 +12,10 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com> | |||
12 | 2 files changed, 2 insertions(+), 2 deletions(-) | 12 | 2 files changed, 2 insertions(+), 2 deletions(-) |
13 | 13 | ||
14 | diff --git a/pbr/tests/test_integration.py b/pbr/tests/test_integration.py | 14 | diff --git a/pbr/tests/test_integration.py b/pbr/tests/test_integration.py |
15 | index 8e96f21..b07cbe3 100644 | 15 | index cb4b5e5..4cbfb19 100644 |
16 | --- a/pbr/tests/test_integration.py | 16 | --- a/pbr/tests/test_integration.py |
17 | +++ b/pbr/tests/test_integration.py | 17 | +++ b/pbr/tests/test_integration.py |
18 | @@ -150,7 +150,7 @@ class TestInstallWithoutPbr(base.BaseTestCase): | 18 | @@ -171,7 +171,7 @@ class TestInstallWithoutPbr(base.BaseTestCase): |
19 | pkgs = { | 19 | pkgs = { |
20 | 'pkgTest': { | 20 | 'pkgTest': { |
21 | 'setup.py': textwrap.dedent("""\ | 21 | 'setup.py': textwrap.dedent("""\ |
@@ -25,10 +25,10 @@ index 8e96f21..b07cbe3 100644 | |||
25 | setuptools.setup( | 25 | setuptools.setup( |
26 | name = 'pkgTest', | 26 | name = 'pkgTest', |
27 | diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py | 27 | diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py |
28 | index 07be547..f6a9412 100644 | 28 | index dddf7ae..bec03ce 100644 |
29 | --- a/pbr/tests/test_packaging.py | 29 | --- a/pbr/tests/test_packaging.py |
30 | +++ b/pbr/tests/test_packaging.py | 30 | +++ b/pbr/tests/test_packaging.py |
31 | @@ -206,7 +206,7 @@ class CreatePackages(fixtures.Fixture): | 31 | @@ -219,7 +219,7 @@ class CreatePackages(fixtures.Fixture): |
32 | 32 | ||
33 | defaults = { | 33 | defaults = { |
34 | 'setup.py': textwrap.dedent(six.u("""\ | 34 | 'setup.py': textwrap.dedent(six.u("""\ |
@@ -37,6 +37,3 @@ index 07be547..f6a9412 100644 | |||
37 | import setuptools | 37 | import setuptools |
38 | setuptools.setup( | 38 | setuptools.setup( |
39 | setup_requires=['pbr'], | 39 | setup_requires=['pbr'], |
40 | -- | ||
41 | 2.24.1 | ||
42 | |||
diff --git a/meta/recipes-devtools/python/python3-pbr_5.4.4.bb b/meta/recipes-devtools/python/python3-pbr_5.4.4.bb deleted file mode 100644 index 6f335ea341..0000000000 --- a/meta/recipes-devtools/python/python3-pbr_5.4.4.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-pbr.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "65cdc32e1a1ff56d481fc15aa8caf988" | ||
5 | SRC_URI[sha256sum] = "139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b" | ||
diff --git a/meta/recipes-devtools/python/python3-pbr_6.1.0.bb b/meta/recipes-devtools/python/python3-pbr_6.1.0.bb new file mode 100644 index 0000000000..a58b491a82 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pbr_6.1.0.bb | |||
@@ -0,0 +1,4 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-pbr.inc | ||
3 | |||
4 | SRC_URI[sha256sum] = "788183e382e3d1d7707db08978239965e8b9e4e5ed42669bf4758186734d5f24" | ||
diff --git a/meta/recipes-devtools/python/python3-pdm-backend_2.4.4.bb b/meta/recipes-devtools/python/python3-pdm-backend_2.4.4.bb new file mode 100644 index 0000000000..71275f3ee8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pdm-backend_2.4.4.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "The build backend used by PDM that supports latest packaging standards" | ||
2 | HOMEPAGE = "https://github.com/pdm-project/pdm-backend" | ||
3 | LICENSE = "MIT" | ||
4 | SECTION = "devel/python" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4a564297b3c5b629a528b92fd8ff61ea" | ||
6 | |||
7 | SRC_URI[sha256sum] = "f72551eeb319f74ca25856c24fb4026684eeb0dddd9df68482901ab0dc481258" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | PYPI_PACKAGE = "pdm_backend" | ||
12 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pdm-build-locked_0.3.5.bb b/meta/recipes-devtools/python/python3-pdm-build-locked_0.3.5.bb new file mode 100644 index 0000000000..12afe8bcf4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pdm-build-locked_0.3.5.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "pdm plugin to publish locked dependencies as optional-dependencies" | ||
2 | HOMEPAGE = "https://github.com/pdm-project/pdm-build-locked" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=19382cdf9c143df4f00b9caa0b60c75a" | ||
5 | |||
6 | SRC_URI[sha256sum] = "ab2f381e00d79841d46be2e6909c265038b9fa951de2bf551ca6adb7f6844201" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta | ||
9 | |||
10 | DEPENDS += " python3-pdm-backend-native" | ||
11 | |||
12 | PYPI_PACKAGE = "pdm_build_locked" | ||
13 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
14 | |||
15 | BBCLASSEXTEND += "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pdm_2.25.1.bb b/meta/recipes-devtools/python/python3-pdm_2.25.1.bb new file mode 100644 index 0000000000..d9331ba72c --- /dev/null +++ b/meta/recipes-devtools/python/python3-pdm_2.25.1.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "A modern Python package and dependency manager supporting the latest PEP standards" | ||
2 | HOMEPAGE = "https://pdm-project.org/latest/" | ||
3 | LICENSE = "MIT" | ||
4 | SECTION = "devel/python" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2" | ||
6 | |||
7 | SRC_URI[sha256sum] = "3145251f37a3f94fa211ade992e7db7792da4c3e8e3eeeb1993d952adebe0b96" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | DEPENDS += " \ | ||
12 | python3-pdm-backend-native \ | ||
13 | python3-pdm-build-locked-native \ | ||
14 | " | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pefile/run-ptest b/meta/recipes-devtools/python/python3-pefile/run-ptest new file mode 100644 index 0000000000..95ae72306f --- /dev/null +++ b/meta/recipes-devtools/python/python3-pefile/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake --ignore=./tests/pefile_test.py | ||
diff --git a/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb new file mode 100644 index 0000000000..11765b3cb3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | SUMMARY = "Python PE parsing module" | ||
2 | DESCRIPTION = "A multi-platform Python module to parse and work with Portable Executable (PE) files." | ||
3 | HOMEPAGE = "https://github.com/erocarrera/pefile" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e34c75178086aca0a17551ffbacaca53" | ||
6 | |||
7 | inherit setuptools3 ptest-python-pytest | ||
8 | SRCREV = "4b3b1e2e568a88d4f1897d694d684f23d9e270c4" | ||
9 | SRC_URI = "git://github.com/erocarrera/pefile;branch=master;protocol=https \ | ||
10 | file://run-ptest" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-mmap \ | ||
16 | python3-netclient \ | ||
17 | python3-stringold \ | ||
18 | " | ||
diff --git a/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch deleted file mode 100644 index 00cffe169b..0000000000 --- a/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | From e7a00e9b5104ae2fbcea32a35c85760b77fae7e5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Changqing Li <changqing.li@windriver.com> | ||
3 | Date: Thu, 23 Apr 2020 09:42:10 +0000 | ||
4 | Subject: [PATCH] change shebang to python3 | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | pip will drop support of python2 from 21.0 | ||
9 | |||
10 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
11 | --- | ||
12 | src/pip/_internal/__init__.py | 2 +- | ||
13 | src/pip/_vendor/appdirs.py | 2 +- | ||
14 | src/pip/_vendor/chardet/cli/chardetect.py | 2 +- | ||
15 | src/pip/_vendor/requests/certs.py | 2 +- | ||
16 | 4 files changed, 4 insertions(+), 4 deletions(-) | ||
17 | |||
18 | diff --git a/src/pip/_internal/__init__.py b/src/pip/_internal/__init__.py | ||
19 | index 3aa8a46..e1ad179 100755 | ||
20 | --- a/src/pip/_internal/__init__.py | ||
21 | +++ b/src/pip/_internal/__init__.py | ||
22 | @@ -1,4 +1,4 @@ | ||
23 | -#!/usr/bin/env python | ||
24 | +#!/usr/bin/env python3 | ||
25 | import pip._internal.utils.inject_securetransport # noqa | ||
26 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING | ||
27 | |||
28 | diff --git a/src/pip/_vendor/appdirs.py b/src/pip/_vendor/appdirs.py | ||
29 | index 3a52b75..ad3f81d 100644 | ||
30 | --- a/src/pip/_vendor/appdirs.py | ||
31 | +++ b/src/pip/_vendor/appdirs.py | ||
32 | @@ -1,4 +1,4 @@ | ||
33 | -#!/usr/bin/env python | ||
34 | +#!/usr/bin/env python3 | ||
35 | # -*- coding: utf-8 -*- | ||
36 | # Copyright (c) 2005-2010 ActiveState Software Inc. | ||
37 | # Copyright (c) 2013 Eddy Petrișor | ||
38 | diff --git a/src/pip/_vendor/chardet/cli/chardetect.py b/src/pip/_vendor/chardet/cli/chardetect.py | ||
39 | index c61136b..a497e98 100644 | ||
40 | --- a/src/pip/_vendor/chardet/cli/chardetect.py | ||
41 | +++ b/src/pip/_vendor/chardet/cli/chardetect.py | ||
42 | @@ -1,4 +1,4 @@ | ||
43 | -#!/usr/bin/env python | ||
44 | +#!/usr/bin/env python3 | ||
45 | """ | ||
46 | Script which takes one or more file paths and reports on their detected | ||
47 | encodings | ||
48 | diff --git a/src/pip/_vendor/requests/certs.py b/src/pip/_vendor/requests/certs.py | ||
49 | index 06a594e..bfa7839 100644 | ||
50 | --- a/src/pip/_vendor/requests/certs.py | ||
51 | +++ b/src/pip/_vendor/requests/certs.py | ||
52 | @@ -1,4 +1,4 @@ | ||
53 | -#!/usr/bin/env python | ||
54 | +#!/usr/bin/env python3 | ||
55 | # -*- coding: utf-8 -*- | ||
56 | |||
57 | """ | ||
58 | -- | ||
59 | 2.24.1 | ||
60 | |||
diff --git a/meta/recipes-devtools/python/python3-pip/no_shebang_mangling.patch b/meta/recipes-devtools/python/python3-pip/no_shebang_mangling.patch new file mode 100644 index 0000000000..71836dca07 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip/no_shebang_mangling.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From a715a622989ac182d18f6f2ada8201122282d889 Mon Sep 17 00:00:00 2001 | ||
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
3 | Date: Wed, 23 Feb 2022 12:27:06 +0000 | ||
4 | Subject: [PATCH] python3-pip: Don't change shebang | ||
5 | |||
6 | Patch pip to disable shebang mangling and also force the python executable | ||
7 | to be python3 from the environment when building anything for the target | ||
8 | (or nativesdk). This avoids incorrect interpreter paths in the target scripts. | ||
9 | |||
10 | Upstream-Status: Inappropriate [OE specific config] | ||
11 | --- | ||
12 | src/pip/_vendor/distlib/scripts.py | 4 +++- | ||
13 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/src/pip/_vendor/distlib/scripts.py b/src/pip/_vendor/distlib/scripts.py | ||
16 | index b1fc705..c030e98 100644 | ||
17 | --- a/src/pip/_vendor/distlib/scripts.py | ||
18 | +++ b/src/pip/_vendor/distlib/scripts.py | ||
19 | @@ -155,6 +155,8 @@ class ScriptMaker(object): | ||
20 | See also: http://www.in-ulm.de/~mascheck/various/shebang/#length | ||
21 | https://hg.mozilla.org/mozilla-central/file/tip/mach | ||
22 | """ | ||
23 | + if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ: | ||
24 | + return b'#!/usr/bin/env python3' | ||
25 | if os.name != 'posix': | ||
26 | simple_shebang = True | ||
27 | elif getattr(sys, "cross_compiling", False): | ||
28 | @@ -363,7 +365,7 @@ class ScriptMaker(object): | ||
29 | return | ||
30 | |||
31 | match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) | ||
32 | - if match: | ||
33 | + if False: | ||
34 | adjust = True | ||
35 | post_interp = match.group(1) or b'' | ||
36 | |||
diff --git a/meta/recipes-devtools/python/python3-pip_20.0.2.bb b/meta/recipes-devtools/python/python3-pip_20.0.2.bb deleted file mode 100644 index 99eeea2edf..0000000000 --- a/meta/recipes-devtools/python/python3-pip_20.0.2.bb +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | SUMMARY = "The PyPA recommended tool for installing Python packages" | ||
2 | HOMEPAGE = "https://pypi.org/project/pip" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e" | ||
6 | |||
7 | DEPENDS += "python3 python3-setuptools-native" | ||
8 | |||
9 | SRC_URI += "file://0001-change-shebang-to-python3.patch" | ||
10 | |||
11 | SRC_URI[md5sum] = "7d42ba49b809604f0df3d55df1c3fd86" | ||
12 | SRC_URI[sha256sum] = "7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f" | ||
13 | |||
14 | inherit pypi distutils3 | ||
15 | |||
16 | do_install_append() { | ||
17 | # Install as pip3 and leave pip2 as default | ||
18 | rm ${D}/${bindir}/pip | ||
19 | } | ||
20 | |||
21 | RDEPENDS_${PN} = "\ | ||
22 | python3-compile \ | ||
23 | python3-io \ | ||
24 | python3-html \ | ||
25 | python3-json \ | ||
26 | python3-netserver \ | ||
27 | python3-setuptools \ | ||
28 | python3-unixadmin \ | ||
29 | python3-xmlrpc \ | ||
30 | python3-pickle \ | ||
31 | " | ||
32 | |||
33 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pip_25.1.1.bb b/meta/recipes-devtools/python/python3-pip_25.1.1.bb new file mode 100644 index 0000000000..431ba182c6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip_25.1.1.bb | |||
@@ -0,0 +1,51 @@ | |||
1 | SUMMARY = "The PyPA recommended tool for installing Python packages" | ||
2 | HOMEPAGE = "https://pypi.org/project/pip" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT & Apache-2.0 & MPL-2.0 & LGPL-2.1-only & BSD-3-Clause & PSF-2.0 & BSD-2-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=63ec52baf95163b597008bb46db68030 \ | ||
6 | file://src/pip/_vendor/cachecontrol/LICENSE.txt;md5=6572692148079ebbbd800be4b9f36c6d \ | ||
7 | file://src/pip/_vendor/certifi/LICENSE;md5=11618cb6a975948679286b1211bd573c \ | ||
8 | file://src/pip/_vendor/distlib/LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc \ | ||
9 | file://src/pip/_vendor/distro/LICENSE;md5=d2794c0df5b907fdace235a619d80314 \ | ||
10 | file://src/pip/_vendor/idna/LICENSE.md;md5=204c0612e40a4dd46012a78d02c80fb1 \ | ||
11 | file://src/pip/_vendor/msgpack/COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751 \ | ||
12 | file://src/pip/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \ | ||
13 | file://src/pip/_vendor/pkg_resources/LICENSE;md5=141643e11c48898150daa83802dbc65f \ | ||
14 | file://src/pip/_vendor/platformdirs/LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a \ | ||
15 | file://src/pip/_vendor/pygments/LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592 \ | ||
16 | file://src/pip/_vendor/pyproject_hooks/LICENSE;md5=aad69c93f605003e3342b174d9b0708c \ | ||
17 | file://src/pip/_vendor/requests/LICENSE;md5=34400b68072d710fecd0a2940a0d1658 \ | ||
18 | file://src/pip/_vendor/resolvelib/LICENSE;md5=78e1c0248051c32a38a7f820c30bd7a5 \ | ||
19 | file://src/pip/_vendor/rich/LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303 \ | ||
20 | file://src/pip/_vendor/tomli/LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5 \ | ||
21 | file://src/pip/_vendor/truststore/LICENSE;md5=74420fc3965c4558a4a1529e63c2867f \ | ||
22 | file://src/pip/_vendor/typing_extensions.LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2 \ | ||
23 | file://src/pip/_vendor/urllib3/LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c \ | ||
24 | " | ||
25 | |||
26 | inherit pypi python_setuptools_build_meta | ||
27 | |||
28 | SRC_URI += "file://no_shebang_mangling.patch" | ||
29 | |||
30 | SRC_URI[sha256sum] = "3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077" | ||
31 | |||
32 | RDEPENDS:${PN} = "\ | ||
33 | python3-compile \ | ||
34 | python3-html \ | ||
35 | python3-image \ | ||
36 | python3-io \ | ||
37 | python3-json \ | ||
38 | python3-multiprocessing \ | ||
39 | python3-netserver \ | ||
40 | python3-pickle \ | ||
41 | python3-setuptools \ | ||
42 | python3-tomllib \ | ||
43 | python3-unixadmin \ | ||
44 | python3-xmlrpc \ | ||
45 | " | ||
46 | |||
47 | BBCLASSEXTEND = "native nativesdk" | ||
48 | |||
49 | # This used to use the bootstrap install which didn't compile. Until we bump the | ||
50 | # tmpdir version we can't compile the native otherwise the sysroot unpack fails | ||
51 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
diff --git a/meta/recipes-devtools/python/python3-pluggy/run-ptest b/meta/recipes-devtools/python/python3-pluggy/run-ptest deleted file mode 100644 index b63c4de0d9..0000000000 --- a/meta/recipes-devtools/python/python3-pluggy/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' | ||
diff --git a/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb b/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb deleted file mode 100644 index d3e0365ca1..0000000000 --- a/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | SUMMARY = "Plugin and hook calling mechanisms for python" | ||
2 | HOMEPAGE = "https://github.com/pytest-dev/pluggy" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2" | ||
5 | |||
6 | SRC_URI[md5sum] = "7f610e28b8b34487336b585a3dfb803d" | ||
7 | SRC_URI[sha256sum] = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0" | ||
8 | |||
9 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native" | ||
10 | RDEPENDS_${PN} += "${PYTHON_PN}-importlib-metadata \ | ||
11 | ${PYTHON_PN}-more-itertools \ | ||
12 | " | ||
13 | |||
14 | inherit pypi ptest setuptools3 | ||
15 | |||
16 | SRC_URI += " \ | ||
17 | file://run-ptest \ | ||
18 | " | ||
19 | |||
20 | RDEPENDS_${PN}-ptest += " \ | ||
21 | ${PYTHON_PN}-pytest \ | ||
22 | " | ||
23 | |||
24 | do_install_ptest() { | ||
25 | install -d ${D}${PTEST_PATH}/testing | ||
26 | cp -rf ${S}/testing/* ${D}${PTEST_PATH}/testing/ | ||
27 | } | ||
diff --git a/meta/recipes-devtools/python/python3-pluggy_1.6.0.bb b/meta/recipes-devtools/python/python3-pluggy_1.6.0.bb new file mode 100644 index 0000000000..b8e4bbc75b --- /dev/null +++ b/meta/recipes-devtools/python/python3-pluggy_1.6.0.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "Plugin and hook calling mechanisms for python" | ||
2 | HOMEPAGE = "https://github.com/pytest-dev/pluggy" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2" | ||
5 | |||
6 | SRC_URI[sha256sum] = "7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3" | ||
7 | |||
8 | DEPENDS += "python3-setuptools-scm-native" | ||
9 | |||
10 | inherit pypi ptest-python-pytest python_setuptools_build_meta | ||
11 | |||
12 | PTEST_PYTEST_DIR = "testing" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-ply_3.11.bb b/meta/recipes-devtools/python/python3-ply_3.11.bb new file mode 100644 index 0000000000..2c5fa3f215 --- /dev/null +++ b/meta/recipes-devtools/python/python3-ply_3.11.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | SUMMARY = "Python Lex and Yacc" | ||
2 | DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python" | ||
3 | HOMEPAGE = "https://pypi.python.org/pypi/ply" | ||
4 | SECTION = "devel/python" | ||
5 | LICENSE = "BSD-3-Clause" | ||
6 | LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c" | ||
7 | |||
8 | SRC_URI[sha256sum] = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | RDEPENDS:${PN}:class-target += "\ | ||
13 | python3-netclient \ | ||
14 | python3-shell \ | ||
15 | " | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-poetry-core_2.1.3.bb b/meta/recipes-devtools/python/python3-poetry-core_2.1.3.bb new file mode 100644 index 0000000000..12c4751de8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-poetry-core_2.1.3.bb | |||
@@ -0,0 +1,41 @@ | |||
1 | SUMMARY = "Poetry PEP 517 Build Backend" | ||
2 | DESCRIPTION = "Poetry PEP 517 Build Backend" | ||
3 | HOMEPAGE = "https://github.com/python-poetry/poetry-core" | ||
4 | BUGTRACKER = "https://github.com/python-poetry/poetry-core" | ||
5 | CHANGELOG = "https://github.com/python-poetry/poetry-core/blob/master/CHANGELOG.md" | ||
6 | |||
7 | LICENSE = "Apache-2.0 & BSD-2-Clause & BSD-3-Clause & MIT" | ||
8 | LIC_FILES_CHKSUM = "\ | ||
9 | file://LICENSE;md5=78c39cfd009863ae44237a7ab1f9cedc \ | ||
10 | file://src/poetry/core/_vendor/fastjsonschema/LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532 \ | ||
11 | file://src/poetry/core/_vendor/lark/LICENSE;md5=fcfbf1e2ecc0f37acbb5871aa0267500 \ | ||
12 | file://src/poetry/core/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \ | ||
13 | file://src/poetry/core/_vendor/packaging/LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \ | ||
14 | file://src/poetry/core/_vendor/packaging/LICENSE.BSD;md5=7bef9bf4a8e4263634d0597e7ba100b8 \ | ||
15 | file://src/poetry/core/_vendor/tomli/LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5 \ | ||
16 | " | ||
17 | |||
18 | SRC_URI[sha256sum] = "0522a015477ed622c89aad56a477a57813cace0c8e7ff2a2906b7ef4a2e296a4" | ||
19 | |||
20 | inherit python_poetry_core pypi | ||
21 | |||
22 | PYPI_PACKAGE = "poetry_core" | ||
23 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
24 | |||
25 | RDEPENDS:${PN}:append:class-target = "\ | ||
26 | python3-compression \ | ||
27 | python3-core \ | ||
28 | python3-crypt \ | ||
29 | python3-io \ | ||
30 | python3-json \ | ||
31 | python3-logging \ | ||
32 | python3-netclient \ | ||
33 | python3-pprint \ | ||
34 | python3-shell \ | ||
35 | " | ||
36 | |||
37 | RDEPENDS:${PN} += "\ | ||
38 | python3-pip \ | ||
39 | " | ||
40 | |||
41 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pretend_1.0.9.bb b/meta/recipes-devtools/python/python3-pretend_1.0.9.bb new file mode 100644 index 0000000000..60c02de488 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pretend_1.0.9.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | SUMMARY = "A library for stubbing in Python" | ||
2 | HOMEPAGE = "https://github.com/alex/pretend" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99" | ||
5 | |||
6 | SRC_URI[sha256sum] = "c90eb810cde8ebb06dafcb8796f9a95228ce796531bc806e794c2f4649aa1b10" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-psutil_7.0.0.bb b/meta/recipes-devtools/python/python3-psutil_7.0.0.bb new file mode 100644 index 0000000000..a2af198083 --- /dev/null +++ b/meta/recipes-devtools/python/python3-psutil_7.0.0.bb | |||
@@ -0,0 +1,43 @@ | |||
1 | SUMMARY = "A cross-platform process and system utilities module for Python" | ||
2 | LICENSE = "BSD-3-Clause" | ||
3 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a9c72113a843d0d732a0ac1c200d81b1" | ||
4 | HOMEPAGE = "https://pypi.org/project/psutil/" | ||
5 | |||
6 | SRC_URI[sha256sum] = "7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta | ||
9 | |||
10 | PACKAGES =+ "${PN}-tests" | ||
11 | |||
12 | FILES:${PN}-tests += " \ | ||
13 | ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \ | ||
14 | ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \ | ||
15 | " | ||
16 | |||
17 | RDEPENDS:${PN} += " \ | ||
18 | python3-shell \ | ||
19 | python3-threading \ | ||
20 | python3-xml \ | ||
21 | python3-netclient \ | ||
22 | python3-ctypes \ | ||
23 | python3-resource \ | ||
24 | " | ||
25 | |||
26 | RDEPENDS:${PN}-tests += " \ | ||
27 | ${PN} \ | ||
28 | python3 \ | ||
29 | coreutils \ | ||
30 | procps \ | ||
31 | binutils \ | ||
32 | gcc \ | ||
33 | gcc-symlinks \ | ||
34 | libstdc++ \ | ||
35 | libstdc++-dev \ | ||
36 | " | ||
37 | RDEPENDS:${PN}-tests:class-native = "" | ||
38 | |||
39 | INSANE_SKIP:${PN}-tests += "dev-deps" | ||
40 | |||
41 | CVE_PRODUCT = "psutil" | ||
42 | |||
43 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-py_1.10.0.bb b/meta/recipes-devtools/python/python3-py_1.10.0.bb deleted file mode 100644 index 4e16ad1743..0000000000 --- a/meta/recipes-devtools/python/python3-py_1.10.0.bb +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities" | ||
2 | HOMEPAGE = "http://py.readthedocs.io/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" | ||
5 | |||
6 | SRC_URI[sha256sum] = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3" | ||
7 | |||
8 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | RDEPENDS_${PN} += "${PYTHON_PN}-netclient" | ||
diff --git a/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb b/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb new file mode 100644 index 0000000000..820ef27d2b --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyasn1_0.6.1.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | SUMMARY = "Python library implementing ASN.1 types." | ||
2 | HOMEPAGE = "http://pyasn1.sourceforge.net/" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=190f79253908c986e6cacf380c3a5f6d" | ||
5 | |||
6 | SRC_URI[sha256sum] = "6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
9 | |||
10 | RDEPENDS:${PN}:class-target += " \ | ||
11 | python3-codecs \ | ||
12 | python3-logging \ | ||
13 | python3-math \ | ||
14 | python3-shell \ | ||
15 | " | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb b/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb index 8987b7a428..498c4db586 100644 --- a/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb +++ b/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb | |||
@@ -2,7 +2,7 @@ SUMMARY = "Python bindings for the Cairo canvas library" | |||
2 | HOMEPAGE = "http://cairographics.org/pycairo" | 2 | HOMEPAGE = "http://cairographics.org/pycairo" |
3 | BUGTRACKER = "http://bugs.freedesktop.org" | 3 | BUGTRACKER = "http://bugs.freedesktop.org" |
4 | SECTION = "python-devel" | 4 | SECTION = "python-devel" |
5 | LICENSE = "LGPLv2.1 & MPLv1.1" | 5 | LICENSE = "LGPL-2.1-only & MPL-1.1" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ |
7 | file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \ | 7 | file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \ |
8 | file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325" | 8 | file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325" |
@@ -10,18 +10,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ | |||
10 | # cairo >= 1.14 | 10 | # cairo >= 1.14 |
11 | DEPENDS = "cairo python3" | 11 | DEPENDS = "cairo python3" |
12 | 12 | ||
13 | SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz" | 13 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/pycairo-${PV}.tar.gz" |
14 | UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/" | 14 | GITHUB_BASE_URI = "https://github.com/pygobject/pycairo/releases/" |
15 | 15 | ||
16 | SRC_URI[md5sum] = "a1f9b661a0000c2f42281db933284451" | 16 | SRC_URI[sha256sum] = "26ec5c6126781eb167089a123919f87baa2740da2cca9098be8b3a6b91cc5fbc" |
17 | SRC_URI[sha256sum] = "5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c" | ||
18 | 17 | ||
19 | S = "${WORKDIR}/pycairo-${PV}" | 18 | S = "${UNPACKDIR}/pycairo-${PV}" |
20 | 19 | ||
21 | inherit meson pkgconfig python3targetconfig | 20 | inherit meson pkgconfig python3targetconfig github-releases |
22 | 21 | ||
23 | CFLAGS += "-fPIC" | 22 | CFLAGS += "-fPIC" |
24 | 23 | ||
25 | BBCLASSEXTEND = "native" | 24 | BBCLASSEXTEND = "native" |
26 | 25 | ||
27 | FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" | 26 | FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" |
diff --git a/meta/recipes-devtools/python/python3-pycparser_2.22.bb b/meta/recipes-devtools/python/python3-pycparser_2.22.bb new file mode 100644 index 0000000000..0be39ea383 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycparser_2.22.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "Parser of the C language, written in pure Python" | ||
2 | HOMEPAGE = "https://github.com/eliben/pycparser" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=9761c3ffee7ba99c60dca0408fd3262b" | ||
5 | |||
6 | SRC_URI[sha256sum] = "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
11 | |||
12 | RDEPENDS:${PN}:class-target += "\ | ||
13 | python3-netclient \ | ||
14 | " | ||
15 | |||
16 | RSUGGESTS:${PN}:class-target += "\ | ||
17 | cpp \ | ||
18 | cpp-symlinks \ | ||
19 | " | ||
diff --git a/meta/recipes-devtools/python/python3-pycryptodome_3.10.1.bb b/meta/recipes-devtools/python/python3-pycryptodome_3.10.1.bb deleted file mode 100644 index 28448b84fe..0000000000 --- a/meta/recipes-devtools/python/python3-pycryptodome_3.10.1.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | require python-pycryptodome.inc | ||
2 | inherit setuptools3 | ||
3 | |||
4 | SRC_URI[sha256sum] = "3e2e3a06580c5f190df843cdb90ea28d61099cf4924334d5297a995de68e4673" | ||
5 | |||
diff --git a/meta/recipes-devtools/python/python3-pycryptodome_3.23.0.bb b/meta/recipes-devtools/python/python3-pycryptodome_3.23.0.bb new file mode 100644 index 0000000000..2528162ff8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycryptodome_3.23.0.bb | |||
@@ -0,0 +1,5 @@ | |||
1 | require python-pycryptodome.inc | ||
2 | inherit python_setuptools_build_meta | ||
3 | |||
4 | SRC_URI[sha256sum] = "447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef" | ||
5 | |||
diff --git a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb b/meta/recipes-devtools/python/python3-pycryptodomex_3.23.0.bb index a6b3b3e935..43dba3faa3 100644 --- a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb +++ b/meta/recipes-devtools/python/python3-pycryptodomex_3.23.0.bb | |||
@@ -1,9 +1,9 @@ | |||
1 | require python-pycryptodome.inc | 1 | require python-pycryptodome.inc |
2 | inherit setuptools3 | 2 | inherit python_setuptools_build_meta |
3 | 3 | ||
4 | SRC_URI[sha256sum] = "541cd3e3e252fb19a7b48f420b798b53483302b7fe4d9954c947605d0a263d62" | 4 | SRC_URI[sha256sum] = "71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da" |
5 | 5 | ||
6 | FILES_${PN}-tests = " \ | 6 | FILES:${PN}-tests = " \ |
7 | ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ | 7 | ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ |
8 | ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ | 8 | ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ |
9 | " | 9 | " |
diff --git a/meta/recipes-devtools/python/python3-pyelftools_0.27.bb b/meta/recipes-devtools/python/python3-pyelftools_0.27.bb deleted file mode 100644 index 0cfd99504b..0000000000 --- a/meta/recipes-devtools/python/python3-pyelftools_0.27.bb +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information" | ||
2 | HOMEPAGE = "https://github.com/eliben/pyelftools" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "PD" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc" | ||
6 | |||
7 | SRC_URI[sha256sum] = "cde854e662774c5457d688ca41615f6594187ba7067af101232df889a6b7a66b" | ||
8 | |||
9 | PYPI_PACKAGE = "pyelftools" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-pyelftools_0.32.bb b/meta/recipes-devtools/python/python3-pyelftools_0.32.bb new file mode 100644 index 0000000000..13e9efff8d --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyelftools_0.32.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information" | ||
2 | HOMEPAGE = "https://github.com/eliben/pyelftools" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "PD" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc" | ||
6 | |||
7 | SRC_URI[sha256sum] = "6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5" | ||
8 | |||
9 | PYPI_PACKAGE = "pyelftools" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | BBCLASSEXTEND = "native" | ||
14 | |||
15 | RDEPENDS:${PN} += "python3-debugger python3-pprint" | ||
diff --git a/meta/recipes-devtools/python/python3-pygments_2.19.1.bb b/meta/recipes-devtools/python/python3-pygments_2.19.1.bb new file mode 100644 index 0000000000..de24ed3f11 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pygments_2.19.1.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Pygments is a syntax highlighting package written in Python." | ||
2 | DESCRIPTION = "Pygments is a syntax highlighting package written in Python." | ||
3 | HOMEPAGE = "http://pygments.org/" | ||
4 | LICENSE = "BSD-2-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592" | ||
6 | |||
7 | inherit python_hatchling | ||
8 | SRC_URI[sha256sum] = "61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f" | ||
9 | |||
10 | inherit pypi | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
diff --git a/meta/recipes-devtools/python/python3-pygments_2.8.0.bb b/meta/recipes-devtools/python/python3-pygments_2.8.0.bb deleted file mode 100644 index 6c8afc5095..0000000000 --- a/meta/recipes-devtools/python/python3-pygments_2.8.0.bb +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | SUMMARY = "Pygments is a syntax highlighting package written in Python." | ||
2 | DESCRIPTION = "Pygments is a syntax highlighting package written in Python." | ||
3 | HOMEPAGE = "http://pygments.org/" | ||
4 | LICENSE = "BSD-2-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc" | ||
6 | |||
7 | inherit setuptools3 | ||
8 | SRC_URI[sha256sum] = "37a13ba168a02ac54cc5891a42b1caec333e59b66addb7fa633ea8a6d73445c0" | ||
9 | |||
10 | DEPENDS += "\ | ||
11 | ${PYTHON_PN} \ | ||
12 | " | ||
13 | |||
14 | PYPI_PACKAGE = "Pygments" | ||
15 | |||
16 | inherit pypi | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
19 | |||
diff --git a/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch b/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch deleted file mode 100644 index 0f2465bb52..0000000000 --- a/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From c125a806de951359ab7e302b0584f7c92fa451ad Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 12 Apr 2019 16:25:58 +0200 | ||
4 | Subject: [PATCH] Do not build tests | ||
5 | |||
6 | They require installing tests from g-i, which we do not do. | ||
7 | |||
8 | Upstream-Status: Inappropriate [oe-core specific] | ||
9 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
10 | --- | ||
11 | meson.build | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/meson.build b/meson.build | ||
15 | index 278fa16f..aacbd4a2 100644 | ||
16 | --- a/meson.build | ||
17 | +++ b/meson.build | ||
18 | @@ -175,6 +175,6 @@ configure_file(input : 'PKG-INFO.in', | ||
19 | subdir('gi') | ||
20 | subdir('pygtkcompat') | ||
21 | with_tests = get_option('tests') | ||
22 | -if with_tests | ||
23 | -subdir('tests') | ||
24 | -endif | ||
25 | +#if with_tests | ||
26 | +#subdir('tests') | ||
27 | +#endif | ||
28 | -- | ||
29 | 2.17.1 | ||
30 | |||
diff --git a/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb b/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb deleted file mode 100644 index b4427050f5..0000000000 --- a/meta/recipes-devtools/python/python3-pygobject_3.38.0.bb +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | SUMMARY = "Python GObject bindings" | ||
2 | SECTION = "devel/python" | ||
3 | LICENSE = "LGPLv2.1" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" | ||
5 | |||
6 | GNOMEBASEBUILDCLASS = "meson" | ||
7 | inherit gnomebase distutils3-base gobject-introspection upstream-version-is-even | ||
8 | |||
9 | DEPENDS += "python3 glib-2.0" | ||
10 | |||
11 | SRCNAME="pygobject" | ||
12 | |||
13 | SRC_URI = " \ | ||
14 | http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \ | ||
15 | file://0001-Do-not-build-tests.patch \ | ||
16 | " | ||
17 | SRC_URI[sha256sum] = "0372d1bb9122fc19f500a249b1f38c2bb67485000f5887497b4b205b3e7084d5" | ||
18 | |||
19 | UNKNOWN_CONFIGURE_WHITELIST = "introspection" | ||
20 | |||
21 | S = "${WORKDIR}/${SRCNAME}-${PV}" | ||
22 | |||
23 | PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" | ||
24 | |||
25 | RDEPENDS_${PN} += "python3-pkgutil" | ||
26 | |||
27 | # python3-pycairo is checked on configuration -> DEPENDS | ||
28 | # we don't link against python3-pycairo -> RDEPENDS | ||
29 | PACKAGECONFIG[cairo] = "-Dpycairo=enabled,-Dpycairo=disabled, cairo python3-pycairo, python3-pycairo" | ||
30 | |||
31 | BBCLASSEXTEND = "native" | ||
32 | PACKAGECONFIG_class-native = "" | ||
diff --git a/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb b/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb new file mode 100644 index 0000000000..42b071ca08 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb | |||
@@ -0,0 +1,41 @@ | |||
1 | SUMMARY = "Python GObject bindings" | ||
2 | HOMEPAGE = "https://gitlab.gnome.org/GNOME/pygobject" | ||
3 | DESCRIPTION = "PyGObject is a Python package which provides bindings for GObject based libraries such as GTK, GStreamer, WebKitGTK, GLib, GIO and many more." | ||
4 | SECTION = "devel/python" | ||
5 | LICENSE = "LGPL-2.1-only" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" | ||
7 | |||
8 | GIR_MESON_OPTION = "" | ||
9 | |||
10 | inherit gnomebase setuptools3-base gobject-introspection upstream-version-is-even | ||
11 | |||
12 | python() { | ||
13 | if d.getVar('CLASSOVERRIDE') == "class-target" and not bb.utils.to_boolean(d.getVar("GI_DATA_ENABLED")): | ||
14 | raise bb.parse.SkipRecipe("GI not available") | ||
15 | } | ||
16 | |||
17 | DEPENDS += "python3 glib-2.0" | ||
18 | |||
19 | SRCNAME = "pygobject" | ||
20 | |||
21 | SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.gz" | ||
22 | SRC_URI[sha256sum] = "00e427d291e957462a8fad659a9f9c8be776ff82a8b76bdf402f1eaeec086d82" | ||
23 | |||
24 | S = "${UNPACKDIR}/${SRCNAME}-${PV}" | ||
25 | |||
26 | PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" | ||
27 | |||
28 | RDEPENDS:${PN} += " \ | ||
29 | python3-asyncio \ | ||
30 | python3-io \ | ||
31 | python3-pkgutil \ | ||
32 | gobject-introspection \ | ||
33 | " | ||
34 | |||
35 | # python3-pycairo is checked on configuration -> DEPENDS | ||
36 | # we don't link against python3-pycairo -> RDEPENDS | ||
37 | PACKAGECONFIG[cairo] = "-Dpycairo=enabled,-Dpycairo=disabled, cairo python3-pycairo, python3-pycairo" | ||
38 | PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false," | ||
39 | |||
40 | BBCLASSEXTEND = "native" | ||
41 | PACKAGECONFIG:class-native = "" | ||
diff --git a/meta/recipes-devtools/python/python3-pyopenssl_25.1.0.bb b/meta/recipes-devtools/python/python3-pyopenssl_25.1.0.bb new file mode 100644 index 0000000000..c1f571c552 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyopenssl_25.1.0.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "Simple Python wrapper around the OpenSSL library" | ||
2 | HOMEPAGE = "https://pyopenssl.org/" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
5 | |||
6 | DEPENDS += "openssl python3-cryptography" | ||
7 | |||
8 | SRC_URI[sha256sum] = "8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | PACKAGES =+ "${PN}-tests" | ||
13 | FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test" | ||
14 | |||
15 | RDEPENDS:${PN}:class-target = " \ | ||
16 | python3-cryptography \ | ||
17 | python3-threading \ | ||
18 | " | ||
19 | RDEPENDS:${PN}-tests = "${PN}" | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb b/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb deleted file mode 100644 index d0c3d0b424..0000000000 --- a/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-pyparsing.inc | ||
3 | |||
diff --git a/meta/recipes-devtools/python/python3-pyparsing_3.2.3.bb b/meta/recipes-devtools/python/python3-pyparsing_3.2.3.bb new file mode 100644 index 0000000000..459b01fd94 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyparsing_3.2.3.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Python parsing module" | ||
2 | DESCRIPTION = "The pyparsing module is an alternative approach to creating \ | ||
3 | and executing simple grammars, vs. the traditional lex/yacc approach, or \ | ||
4 | the use of regular expressions. The pyparsing module provides a library of \ | ||
5 | classes that client code uses to construct the grammar directly in Python \ | ||
6 | code." | ||
7 | HOMEPAGE = "https://github.com/pyparsing/pyparsing/" | ||
8 | BUGTRACKER = "https://github.com/pyparsing/pyparsing/issues" | ||
9 | |||
10 | LICENSE = "MIT" | ||
11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1" | ||
12 | |||
13 | SRC_URI[sha256sum] = "b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be" | ||
14 | |||
15 | inherit pypi python_flit_core | ||
16 | |||
17 | RDEPENDS:${PN} += " \ | ||
18 | python3-datetime \ | ||
19 | python3-debugger \ | ||
20 | python3-html \ | ||
21 | python3-json \ | ||
22 | python3-netclient \ | ||
23 | python3-pprint \ | ||
24 | python3-stringold \ | ||
25 | python3-threading \ | ||
26 | " | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pyproject-hooks_1.2.0.bb b/meta/recipes-devtools/python/python3-pyproject-hooks_1.2.0.bb new file mode 100644 index 0000000000..c68760e293 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyproject-hooks_1.2.0.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | SUMMARY = "A low-level library for calling build-backends in pyproject.toml-based projects" | ||
2 | HOMEPAGE = "https://github.com/pypa/pyproject-hooks" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=aad69c93f605003e3342b174d9b0708c" | ||
5 | |||
6 | SRC_URI[sha256sum] = "1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8" | ||
7 | |||
8 | inherit pypi python_flit_core | ||
9 | |||
10 | PYPI_PACKAGE = "pyproject_hooks" | ||
11 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
14 | |||
15 | # Bootstrap the native build | ||
16 | DEPENDS:remove:class-native = "python3-build-native" | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-io \ | ||
20 | python3-json \ | ||
21 | " | ||
22 | |||
23 | do_compile:class-native () { | ||
24 | python_flit_core_do_manual_build | ||
25 | } | ||
diff --git a/meta/recipes-devtools/python/python3-pyproject-metadata_0.9.1.bb b/meta/recipes-devtools/python/python3-pyproject-metadata_0.9.1.bb new file mode 100644 index 0000000000..4c58da3c07 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyproject-metadata_0.9.1.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "PEP 621 metadata parsing" | ||
2 | DESCRIPTION = "Dataclass for PEP 621 metadata with support for core \ | ||
3 | metadata generation \ | ||
4 | \ | ||
5 | This project does not implement the parsing of pyproject.toml containing \ | ||
6 | PEP 621 metadata.\ | ||
7 | \ | ||
8 | Instead, given a Python data structure representing PEP 621 metadata \ | ||
9 | (already parsed), it will validate this input and generate a \ | ||
10 | PEP 643-compliant metadata file (e.g. PKG-INFO)." | ||
11 | HOMEPAGE = "https://github.com/FFY00/python-pyproject-metadata" | ||
12 | LICENSE = "MIT" | ||
13 | LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c" | ||
14 | |||
15 | PYPI_PACKAGE = "pyproject_metadata" | ||
16 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
17 | |||
18 | inherit pypi python_setuptools_build_meta | ||
19 | |||
20 | SRC_URI[sha256sum] = "b8b2253dd1b7062b78cf949a115f02ba7fa4114aabe63fa10528e9e1a954a816" | ||
21 | |||
22 | RDEPENDS:${PN} += " \ | ||
23 | python3-logging \ | ||
24 | python3-packaging \ | ||
25 | python3-profile \ | ||
26 | " | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pyrsistent_0.20.0.bb b/meta/recipes-devtools/python/python3-pyrsistent_0.20.0.bb new file mode 100644 index 0000000000..7de70942a9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyrsistent_0.20.0.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "Persistent/Immutable/Functional data structures for Python" | ||
2 | HOMEPAGE = "https://github.com/tobgu/pyrsistent" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.mit;md5=f798dc4222a29fea881fa998cdf4a8c8" | ||
5 | |||
6 | SRC_URI[sha256sum] = "4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta | ||
9 | |||
10 | RDEPENDS:${PN} += " \ | ||
11 | python3-numbers \ | ||
12 | " | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb b/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb new file mode 100644 index 0000000000..dbf0fb0ee6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "A Python SOCKS client module" | ||
2 | HOMEPAGE = "http://python-requests.org" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16" | ||
5 | |||
6 | SRC_URI[sha256sum] = "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" | ||
7 | |||
8 | PYPI_PACKAGE = "PySocks" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | RDEPENDS:${PN}:class-target += "\ | ||
14 | python3-email \ | ||
15 | python3-io \ | ||
16 | python3-logging \ | ||
17 | python3-netclient \ | ||
18 | python3-shell \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb b/meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb new file mode 100644 index 0000000000..58212bfb1c --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | SUMMARY = "unittest subTest() support and subtests fixture." | ||
2 | DESCRIPTION = "Adds support for TestCase.subTest.\ | ||
3 | New subtests fixture, providing similar functionality for pure pytest tests." | ||
4 | HOMEPAGE = "https://github.com/pytest-dev/pytest-subtests" | ||
5 | BUGTRACKER = "https://github.com/pytest-dev/pytest-subtests/issues" | ||
6 | |||
7 | LICENSE = "MIT" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1" | ||
9 | |||
10 | SRC_URI[sha256sum] = "7154a8665fd528ee70a76d00216a44d139dc3c9c83521a0f779f7b0ad4f800de" | ||
11 | |||
12 | PYPI_PACKAGE = "pytest_subtests" | ||
13 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
14 | |||
15 | inherit pypi python_setuptools_build_meta | ||
16 | |||
17 | DEPENDS += "python3-setuptools-scm-native" | ||
18 | |||
19 | RDEPENDS:${PN} += " \ | ||
20 | python3-attrs \ | ||
21 | python3-pytest \ | ||
22 | " | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch b/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch deleted file mode 100644 index 1abd531c62..0000000000 --- a/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | From ead04f2da75efeca3369feff6161ea4a8baecbc9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yuan Chao <yuanc.fnst@cn.fujitsu.com> | ||
3 | Date: Wed, 28 Aug 2019 16:12:27 +0900 | ||
4 | Subject: [PATCH] setup.py: remove the setup_requires for setuptools-scm | ||
5 | |||
6 | The setup_requires argument forces the download of the egg file for setuptools-scm | ||
7 | during the do_compile phase. This download is incompatible with the typical fetch | ||
8 | and mirror structure. The only usage of scm is the generation of the _version.py | ||
9 | file and in the release tarball it is already correctly created | ||
10 | |||
11 | Upstream-Status: Inappropriate [oe specific] | ||
12 | |||
13 | Signed-off-by: Derek Straka <derek@asterius.io> | ||
14 | |||
15 | Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com> | ||
16 | |||
17 | Rebase for pytest 6.1.0. | ||
18 | |||
19 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
20 | |||
21 | --- | ||
22 | setup.cfg | 1 - | ||
23 | 1 file changed, 1 deletion(-) | ||
24 | |||
25 | diff --git a/setup.cfg b/setup.cfg | ||
26 | index 6ed0792..0137090 100644 | ||
27 | --- a/setup.cfg | ||
28 | +++ b/setup.cfg | ||
29 | @@ -53,7 +53,6 @@ package_dir = | ||
30 | =src | ||
31 | setup_requires = | ||
32 | setuptools>=>=42.0 | ||
33 | - setuptools-scm>=3.4 | ||
34 | zip_safe = no | ||
35 | |||
36 | [options.entry_points] | ||
diff --git a/meta/recipes-devtools/python/python3-pytest_6.2.2.bb b/meta/recipes-devtools/python/python3-pytest_6.2.2.bb deleted file mode 100644 index 392c20d039..0000000000 --- a/meta/recipes-devtools/python/python3-pytest_6.2.2.bb +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | SUMMARY = "Simple powerful testing with python" | ||
2 | |||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=81eb9f71d006c6b268cf4388e3c98f7b" | ||
5 | |||
6 | SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch " | ||
7 | |||
8 | SRC_URI[sha256sum] = "9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9" | ||
9 | |||
10 | inherit update-alternatives pypi setuptools3 | ||
11 | |||
12 | RDEPENDS_${PN}_class-target += " \ | ||
13 | ${PYTHON_PN}-atomicwrites \ | ||
14 | ${PYTHON_PN}-attrs \ | ||
15 | ${PYTHON_PN}-debugger \ | ||
16 | ${PYTHON_PN}-doctest \ | ||
17 | ${PYTHON_PN}-importlib-metadata \ | ||
18 | ${PYTHON_PN}-iniconfig \ | ||
19 | ${PYTHON_PN}-json \ | ||
20 | ${PYTHON_PN}-more-itertools \ | ||
21 | ${PYTHON_PN}-packaging \ | ||
22 | ${PYTHON_PN}-pathlib2 \ | ||
23 | ${PYTHON_PN}-pluggy \ | ||
24 | ${PYTHON_PN}-py \ | ||
25 | ${PYTHON_PN}-setuptools \ | ||
26 | ${PYTHON_PN}-six \ | ||
27 | ${PYTHON_PN}-toml \ | ||
28 | ${PYTHON_PN}-wcwidth \ | ||
29 | " | ||
30 | |||
31 | ALTERNATIVE_${PN} += "py.test pytest" | ||
32 | |||
33 | NATIVE_LINK_NAME[pytest] = "${bindir}/pytest" | ||
34 | ALTERNATIVE_TARGET[pytest] = "${bindir}/pytest" | ||
35 | |||
36 | ALTERNATIVE_LINK_NAME[py.test] = "${bindir}/py.test" | ||
37 | ALTERNATIVE_TARGET[py.test] = "${bindir}/py.test" | ||
38 | |||
39 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytest_8.4.1.bb b/meta/recipes-devtools/python/python3-pytest_8.4.1.bb new file mode 100644 index 0000000000..1f98b6d87e --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest_8.4.1.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | SUMMARY = "Simple powerful testing with python" | ||
2 | HOMEPAGE = "https://pypi.org/project/pytest/" | ||
3 | DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries." | ||
4 | |||
5 | LICENSE = "MIT" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c" | ||
7 | |||
8 | SRC_URI[sha256sum] = "7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c" | ||
9 | |||
10 | DEPENDS += "python3-setuptools-scm-native" | ||
11 | |||
12 | inherit update-alternatives pypi python_setuptools_build_meta | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-colorama \ | ||
16 | python3-debugger \ | ||
17 | python3-doctest \ | ||
18 | python3-iniconfig \ | ||
19 | python3-json \ | ||
20 | python3-packaging \ | ||
21 | python3-pluggy \ | ||
22 | python3-pygments \ | ||
23 | python3-tomllib \ | ||
24 | python3-xml \ | ||
25 | " | ||
26 | |||
27 | ALTERNATIVE:${PN} += "py.test pytest" | ||
28 | |||
29 | NATIVE_LINK_NAME[pytest] = "${bindir}/pytest" | ||
30 | ALTERNATIVE_TARGET[pytest] = "${bindir}/pytest" | ||
31 | |||
32 | ALTERNATIVE_LINK_NAME[py.test] = "${bindir}/py.test" | ||
33 | ALTERNATIVE_TARGET[py.test] = "${bindir}/py.test" | ||
34 | |||
35 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytz_2025.2.bb b/meta/recipes-devtools/python/python3-pytz_2025.2.bb new file mode 100644 index 0000000000..86bfceadc8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytz_2025.2.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | SUMMARY = "World timezone definitions, modern and historical" | ||
2 | HOMEPAGE = "http://pythonhosted.org/pytz" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a67fc46c1b596cce5d21209bbe75999" | ||
5 | |||
6 | inherit pypi setuptools3 ptest-python-pytest | ||
7 | |||
8 | PTEST_PYTEST_DIR = "pytz/tests" | ||
9 | |||
10 | SRC_URI[sha256sum] = "360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3" | ||
11 | |||
12 | RDEPENDS:${PN}:class-target += "\ | ||
13 | python3-datetime \ | ||
14 | python3-doctest \ | ||
15 | python3-io \ | ||
16 | python3-pickle \ | ||
17 | python3-pprint \ | ||
18 | python3-threading \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
22 | |||
23 | RDEPENDS:${PN}-ptest += " \ | ||
24 | python3-pytest \ | ||
25 | python3-unittest-automake-output \ | ||
26 | " | ||
27 | |||
28 | do_install_ptest:append() { | ||
29 | cp -f ${S}/README.rst ${D}${PTEST_PATH}/ | ||
30 | } | ||
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb new file mode 100644 index 0000000000..7ebe3f7d9f --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.2.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | SUMMARY = "Python support for YAML" | ||
2 | HOMEPAGE = "https://pyyaml.org/" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=6d8242660a8371add5fe547adf083079" | ||
6 | |||
7 | SRC_URI[sha256sum] = "d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" | ||
8 | |||
9 | SRC_URI += "\ | ||
10 | https://raw.githubusercontent.com/yaml/pyyaml/a98fd6088e81d7aca571220c966bbfe2ac43c335/tests/test_dump_load.py;name=test \ | ||
11 | " | ||
12 | SRC_URI[test.sha256sum] = "b6a8a2825d89fdc8aee226560f66b8196e872012a0ea7118cbef1a832359434a" | ||
13 | |||
14 | inherit pypi python_setuptools_build_meta ptest-python-pytest cython | ||
15 | |||
16 | PACKAGECONFIG ?= "libyaml" | ||
17 | PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml" | ||
18 | |||
19 | RDEPENDS:${PN} += "\ | ||
20 | python3-datetime \ | ||
21 | python3-netclient \ | ||
22 | " | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-rdflib_7.1.4.bb b/meta/recipes-devtools/python/python3-rdflib_7.1.4.bb new file mode 100644 index 0000000000..01841cda4f --- /dev/null +++ b/meta/recipes-devtools/python/python3-rdflib_7.1.4.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "RDFLib is a pure Python package for working with RDF" | ||
2 | HOMEPAGE = "https://github.com/RDFLib/rdflib" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7006e973486c4700556f6d58cba0ab6c" | ||
6 | |||
7 | SRC_URI[sha256sum] = "fed46e24f26a788e2ab8e445f7077f00edcf95abb73bcef4b86cefa8b62dd174" | ||
8 | |||
9 | inherit pypi python_poetry_core | ||
10 | |||
11 | RDEPENDS:${PN} += " \ | ||
12 | python3-datetime \ | ||
13 | python3-pyparsing \ | ||
14 | python3-logging \ | ||
15 | python3-numbers \ | ||
16 | python3-xml \ | ||
17 | python3-compression \ | ||
18 | python3-core \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-referencing_0.36.2.bb b/meta/recipes-devtools/python/python3-referencing_0.36.2.bb new file mode 100644 index 0000000000..388c1887fb --- /dev/null +++ b/meta/recipes-devtools/python/python3-referencing_0.36.2.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "An implementation-agnostic implementation of JSON reference resolution." | ||
2 | HOMEPAGE = "https://github.com/python-jsonschema/referencing" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2" | ||
5 | |||
6 | SRC_URI[sha256sum] = "df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa" | ||
7 | |||
8 | inherit pypi python_hatchling | ||
9 | |||
10 | DEPENDS += "python3-hatch-vcs-native" | ||
11 | |||
12 | RDEPENDS:${PN} += "python3-rpds-py" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-requests/environment.d-python3-requests.sh b/meta/recipes-devtools/python/python3-requests/environment.d-python3-requests.sh new file mode 100644 index 0000000000..492177a9c3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-requests/environment.d-python3-requests.sh | |||
@@ -0,0 +1,11 @@ | |||
1 | # Respect host env REQUESTS_CA_BUNDLE first, then auto-detected host cert, then cert in buildtools | ||
2 | # CAFILE/CAPATH is auto-deteced when source buildtools | ||
3 | if [ -z "$REQUESTS_CA_BUNDLE" ]; then | ||
4 | if [ -n "$CAFILE" ];then | ||
5 | export REQUESTS_CA_BUNDLE="$CAFILE" | ||
6 | elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then | ||
7 | export REQUESTS_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" | ||
8 | fi | ||
9 | fi | ||
10 | |||
11 | export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} REQUESTS_CA_BUNDLE" | ||
diff --git a/meta/recipes-devtools/python/python3-requests_2.32.4.bb b/meta/recipes-devtools/python/python3-requests_2.32.4.bb new file mode 100644 index 0000000000..49d44298f6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-requests_2.32.4.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | SUMMARY = "Python HTTP for Humans." | ||
2 | HOMEPAGE = "https://requests.readthedocs.io" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658" | ||
5 | |||
6 | SRC_URI:append:class-nativesdk = " \ | ||
7 | file://environment.d-python3-requests.sh \ | ||
8 | " | ||
9 | |||
10 | SRC_URI[sha256sum] = "27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422" | ||
11 | |||
12 | inherit pypi python_setuptools_build_meta | ||
13 | |||
14 | do_install:append:class-nativesdk() { | ||
15 | mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d | ||
16 | install -m 644 ${UNPACKDIR}/environment.d-python3-requests.sh ${D}${SDKPATHNATIVE}/environment-setup.d/python3-requests.sh | ||
17 | } | ||
18 | |||
19 | RDEPENDS:${PN} += " \ | ||
20 | python3-certifi \ | ||
21 | python3-email \ | ||
22 | python3-json \ | ||
23 | python3-netserver \ | ||
24 | python3-pysocks \ | ||
25 | python3-urllib3 \ | ||
26 | python3-chardet \ | ||
27 | python3-idna \ | ||
28 | python3-compression \ | ||
29 | " | ||
30 | |||
31 | FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/python3-requests.sh" | ||
32 | |||
33 | CVE_PRODUCT = "requests" | ||
34 | |||
35 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb b/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb new file mode 100644 index 0000000000..1e60c763d8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "A pure python RFC3339 validator" | ||
2 | HOMEPAGE = "https://github.com/naimetti/rfc3339-validator" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" | ||
5 | |||
6 | FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3339-validator:" | ||
7 | |||
8 | SRC_URI[sha256sum] = "138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b" | ||
9 | |||
10 | PYPI_PACKAGE = "rfc3339_validator" | ||
11 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
12 | |||
13 | inherit pypi setuptools3 | ||
14 | |||
15 | RDEPENDS:${PN} += "\ | ||
16 | python3-core \ | ||
17 | python3-datetime \ | ||
18 | python3-six \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb b/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb new file mode 100644 index 0000000000..c13a765660 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)" | ||
2 | HOMEPAGE = "https://pypi.org/project/rfc3987/" | ||
3 | LICENSE = "GPL-3.0-or-later" | ||
4 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d" | ||
5 | |||
6 | SRC_URI[sha256sum] = "d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-roman-numerals-py_3.1.0.bb b/meta/recipes-devtools/python/python3-roman-numerals-py_3.1.0.bb new file mode 100644 index 0000000000..9a76df0de2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-roman-numerals-py_3.1.0.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "Manipulate roman numerals" | ||
2 | HOMEPAGE = "https://github.com/AA-Turner/roman-numerals/" | ||
3 | LICENSE = "0BSD & CC0-1.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=bfcc8b16e42929aafeb9d414360bc2fd" | ||
5 | |||
6 | SRC_URI[sha256sum] = "be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d" | ||
7 | PYPI_PACKAGE = "roman_numerals_py" | ||
8 | UPSTREAM_CHECK_PYPI_PACKAGE = "roman_numerals_py" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-rpds-py-crates.inc b/meta/recipes-devtools/python/python3-rpds-py-crates.inc new file mode 100644 index 0000000000..0a6fbb1bd6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rpds-py-crates.inc | |||
@@ -0,0 +1,54 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-rpds-py' | ||
2 | |||
3 | # from Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/archery/1.2.1 \ | ||
6 | crate://crates.io/autocfg/1.4.0 \ | ||
7 | crate://crates.io/cc/1.2.22 \ | ||
8 | crate://crates.io/heck/0.5.0 \ | ||
9 | crate://crates.io/indoc/2.0.6 \ | ||
10 | crate://crates.io/libc/0.2.172 \ | ||
11 | crate://crates.io/memoffset/0.9.1 \ | ||
12 | crate://crates.io/once_cell/1.21.3 \ | ||
13 | crate://crates.io/portable-atomic/1.11.0 \ | ||
14 | crate://crates.io/proc-macro2/1.0.95 \ | ||
15 | crate://crates.io/pyo3/0.25.0 \ | ||
16 | crate://crates.io/pyo3-build-config/0.25.0 \ | ||
17 | crate://crates.io/pyo3-ffi/0.25.0 \ | ||
18 | crate://crates.io/pyo3-macros/0.25.0 \ | ||
19 | crate://crates.io/pyo3-macros-backend/0.25.0 \ | ||
20 | crate://crates.io/python3-dll-a/0.2.13 \ | ||
21 | crate://crates.io/quote/1.0.40 \ | ||
22 | crate://crates.io/rpds/1.1.1 \ | ||
23 | crate://crates.io/shlex/1.3.0 \ | ||
24 | crate://crates.io/syn/2.0.101 \ | ||
25 | crate://crates.io/target-lexicon/0.13.2 \ | ||
26 | crate://crates.io/triomphe/0.1.14 \ | ||
27 | crate://crates.io/unicode-ident/1.0.18 \ | ||
28 | crate://crates.io/unindent/0.2.4 \ | ||
29 | " | ||
30 | |||
31 | SRC_URI[archery-1.2.1.sha256sum] = "eae2ed21cd55021f05707a807a5fc85695dafb98832921f6cfa06db67ca5b869" | ||
32 | SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | ||
33 | SRC_URI[cc-1.2.22.sha256sum] = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" | ||
34 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" | ||
35 | SRC_URI[indoc-2.0.6.sha256sum] = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" | ||
36 | SRC_URI[libc-0.2.172.sha256sum] = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | ||
37 | SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" | ||
38 | SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" | ||
39 | SRC_URI[portable-atomic-1.11.0.sha256sum] = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" | ||
40 | SRC_URI[proc-macro2-1.0.95.sha256sum] = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" | ||
41 | SRC_URI[pyo3-0.25.0.sha256sum] = "f239d656363bcee73afef85277f1b281e8ac6212a1d42aa90e55b90ed43c47a4" | ||
42 | SRC_URI[pyo3-build-config-0.25.0.sha256sum] = "755ea671a1c34044fa165247aaf6f419ca39caa6003aee791a0df2713d8f1b6d" | ||
43 | SRC_URI[pyo3-ffi-0.25.0.sha256sum] = "fc95a2e67091e44791d4ea300ff744be5293f394f1bafd9f78c080814d35956e" | ||
44 | SRC_URI[pyo3-macros-0.25.0.sha256sum] = "a179641d1b93920829a62f15e87c0ed791b6c8db2271ba0fd7c2686090510214" | ||
45 | SRC_URI[pyo3-macros-backend-0.25.0.sha256sum] = "9dff85ebcaab8c441b0e3f7ae40a6963ecea8a9f5e74f647e33fcf5ec9a1e89e" | ||
46 | SRC_URI[python3-dll-a-0.2.13.sha256sum] = "49fe4227a288cf9493942ad0220ea3f185f4d1f2a14f197f7344d6d02f4ed4ed" | ||
47 | SRC_URI[quote-1.0.40.sha256sum] = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" | ||
48 | SRC_URI[rpds-1.1.1.sha256sum] = "a7f89f654d51fffdd6026289d07d1fd523244d46ae0a8bc22caa6dd7f9e8cb0b" | ||
49 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" | ||
50 | SRC_URI[syn-2.0.101.sha256sum] = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" | ||
51 | SRC_URI[target-lexicon-0.13.2.sha256sum] = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" | ||
52 | SRC_URI[triomphe-0.1.14.sha256sum] = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" | ||
53 | SRC_URI[unicode-ident-1.0.18.sha256sum] = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" | ||
54 | SRC_URI[unindent-0.2.4.sha256sum] = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" | ||
diff --git a/meta/recipes-devtools/python/python3-rpds-py_0.25.1.bb b/meta/recipes-devtools/python/python3-rpds-py_0.25.1.bb new file mode 100644 index 0000000000..efc1d4c01c --- /dev/null +++ b/meta/recipes-devtools/python/python3-rpds-py_0.25.1.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Python bindings to the Rust rpds crate for persistent data structures." | ||
2 | HOMEPAGE = "https://pypi.org/project/rpds-py/" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7767fa537c4596c54141f32882c4a984" | ||
6 | |||
7 | SRC_URI[sha256sum] = "8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3" | ||
8 | |||
9 | require ${BPN}-crates.inc | ||
10 | |||
11 | inherit pypi cargo-update-recipe-crates python_maturin ptest-python-pytest | ||
12 | |||
13 | PYPI_PACKAGE = "rpds_py" | ||
14 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
15 | |||
16 | RDEPENDS:${PN}-ptest += " \ | ||
17 | python3-iniconfig \ | ||
18 | python3-packaging \ | ||
19 | python3-pluggy \ | ||
20 | " | ||
21 | |||
22 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.14.bb b/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.14.bb new file mode 100644 index 0000000000..e7ac24abb8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.14.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order." | ||
2 | HOMEPAGE = "https://pypi.org/project/ruamel.yaml/" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5cc5d45e8a30c81dade6ca1928caa515" | ||
6 | |||
7 | PYPI_PACKAGE = "ruamel.yaml" | ||
8 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
9 | |||
10 | inherit pypi python_setuptools_build_meta | ||
11 | |||
12 | SRC_URI[sha256sum] = "7227b76aaec364df15936730efbf7d72b30c0b79b1d578bbb8e3dcb2d81f52b7" | ||
13 | |||
14 | RDEPENDS:${PN} += "\ | ||
15 | python3-shell \ | ||
16 | python3-datetime \ | ||
17 | python3-netclient \ | ||
18 | " | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb b/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb deleted file mode 100644 index 9e127304d6..0000000000 --- a/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | require python3-scons_${PV}.bb | ||
2 | inherit native python3native | ||
3 | DEPENDS = "python3-native python3-setuptools-native" | ||
4 | |||
5 | do_install_append() { | ||
6 | create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' | ||
7 | } | ||
diff --git a/meta/recipes-devtools/python/python3-scons_3.1.2.bb b/meta/recipes-devtools/python/python3-scons_3.1.2.bb deleted file mode 100644 index ce117a92d4..0000000000 --- a/meta/recipes-devtools/python/python3-scons_3.1.2.bb +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | SUMMARY = "Software Construction tool (make/autotools replacement)" | ||
2 | SECTION = "devel/python" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-python3-scons-${PV};md5=e14e1b33428df24a40a782ae142785d0" | ||
5 | |||
6 | # pypi package does not have a valid license file | ||
7 | SRC_URI += "https://raw.githubusercontent.com/SCons/scons/${PV}/LICENSE;downloadfilename=LICENSE-python3-scons-${PV};name=license" | ||
8 | |||
9 | SRC_URI[md5sum] = "f9c4ad06dcf1427be95472eaf380c81a" | ||
10 | SRC_URI[sha256sum] = "8aaa483c303efeb678e6f7c776c8444a482f8ddc3ad891f8b6cdd35264da9a1f" | ||
11 | SRC_URI[license.md5sum] = "e14e1b33428df24a40a782ae142785d0" | ||
12 | SRC_URI[license.sha256sum] = "72ed889165fb28378cadac14552be4a959f1ebab6b148abb5dd2b49712c3c6f6" | ||
13 | |||
14 | S = "${WORKDIR}/scons-${PV}" | ||
15 | |||
16 | UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html" | ||
17 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" | ||
18 | |||
19 | inherit pypi setuptools3 | ||
20 | |||
21 | do_install_prepend() { | ||
22 | sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/* | ||
23 | } | ||
24 | |||
25 | RDEPENDS_${PN}_class-target = "\ | ||
26 | python3-core \ | ||
27 | python3-fcntl \ | ||
28 | python3-io \ | ||
29 | python3-json \ | ||
30 | python3-shell \ | ||
31 | python3-pickle \ | ||
32 | python3-pprint \ | ||
33 | " | ||
diff --git a/meta/recipes-devtools/python/python3-scons_4.9.1.bb b/meta/recipes-devtools/python/python3-scons_4.9.1.bb new file mode 100644 index 0000000000..1eac1ce5a9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-scons_4.9.1.bb | |||
@@ -0,0 +1,29 @@ | |||
1 | SUMMARY = "Software Construction tool (make/autotools replacement)" | ||
2 | HOMEPAGE = "https://github.com/SCons/scons" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7" | ||
6 | |||
7 | SRC_URI[sha256sum] = "bacac880ba2e86d6a156c116e2f8f2bfa82b257046f3ac2666c85c53c615c338" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | S = "${UNPACKDIR}/scons-${PV}" | ||
12 | |||
13 | RDEPENDS:${PN}:class-target = "\ | ||
14 | python3-core \ | ||
15 | python3-compression \ | ||
16 | python3-fcntl \ | ||
17 | python3-io \ | ||
18 | python3-json \ | ||
19 | python3-shell \ | ||
20 | python3-pickle \ | ||
21 | python3-pkg-resources \ | ||
22 | python3-pprint \ | ||
23 | " | ||
24 | |||
25 | do_install:append:class-native() { | ||
26 | create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' | ||
27 | } | ||
28 | |||
29 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-semantic-version_2.10.0.bb b/meta/recipes-devtools/python/python3-semantic-version_2.10.0.bb new file mode 100644 index 0000000000..78763a911e --- /dev/null +++ b/meta/recipes-devtools/python/python3-semantic-version_2.10.0.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "A library implementing the 'SemVer' scheme." | ||
2 | DESCRIPTION = "Semantic version comparison for Python (see http://semver.org/)" | ||
3 | HOMEPAGE = "https://github.com/rbarrois/python-semanticversion" | ||
4 | LICENSE = "BSD-2-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4fb31e3c1c7eeb8b5e8c07657cdd54e2" | ||
6 | |||
7 | SRC_URI[sha256sum] = "bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c" | ||
8 | |||
9 | PYPI_PACKAGE = "semantic_version" | ||
10 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
11 | |||
12 | inherit pypi setuptools3 | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-pkg-resources \ | ||
16 | " | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
19 | |||
diff --git a/meta/recipes-devtools/python/python3-setuptools-rust_1.11.1.bb b/meta/recipes-devtools/python/python3-setuptools-rust_1.11.1.bb new file mode 100644 index 0000000000..417ded009e --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools-rust_1.11.1.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "Setuptools Rust extension plugin" | ||
2 | DESCRIPTION = "setuptools-rust is a plugin for setuptools to build Rust \ | ||
3 | Python extensions implemented with PyO3 or rust-cpython.\ | ||
4 | \ | ||
5 | Compile and distribute Python extensions written in Rust as easily as if they were written in C." | ||
6 | HOMEPAGE = "https://github.com/PyO3/setuptools-rust" | ||
7 | BUGTRACKER = "https://github.com/PyO3/setuptools-rust/issues" | ||
8 | |||
9 | LICENSE = "MIT" | ||
10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5" | ||
11 | |||
12 | SRC_URI[sha256sum] = "7dabc4392252ced314b8050d63276e05fdc5d32398fc7d3cce1f6a6ac35b76c0" | ||
13 | |||
14 | PYPI_PACKAGE = "setuptools_rust" | ||
15 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
16 | |||
17 | inherit cargo pypi python_setuptools_build_meta | ||
18 | |||
19 | DEPENDS += "python3-setuptools-scm-native python3-wheel-native" | ||
20 | |||
21 | RDEPENDS:${PN} += " \ | ||
22 | python3-json \ | ||
23 | python3-semantic-version \ | ||
24 | python3-setuptools \ | ||
25 | python3-setuptools-scm \ | ||
26 | python3-shell \ | ||
27 | python3-typing-extensions \ | ||
28 | python3-wheel \ | ||
29 | " | ||
30 | |||
31 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb b/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb deleted file mode 100644 index 406404ec69..0000000000 --- a/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | SUMMARY = "the blessed package to manage your versions by scm tags" | ||
2 | LICENSE = "MIT" | ||
3 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" | ||
4 | |||
5 | SRC_URI[sha256sum] = "c85b6b46d0edd40d2301038cdea96bb6adc14d62ef943e75afb08b3e7bcf142a" | ||
6 | |||
7 | PYPI_PACKAGE = "setuptools_scm" | ||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | UPSTREAM_CHECK_REGEX = "setuptools_scm-(?P<pver>.*)\.tar" | ||
11 | |||
12 | RDEPENDS_${PN} = "\ | ||
13 | ${PYTHON_PN}-debugger \ | ||
14 | ${PYTHON_PN}-json \ | ||
15 | ${PYTHON_PN}-py \ | ||
16 | ${PYTHON_PN}-setuptools \ | ||
17 | ${PYTHON_PN}-toml \ | ||
18 | " | ||
19 | RDEPENDS_${PN}_class-native = "\ | ||
20 | ${PYTHON_PN}-setuptools-native \ | ||
21 | ${PYTHON_PN}-toml-native \ | ||
22 | " | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb b/meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb new file mode 100644 index 0000000000..70eaf312d3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "the blessed package to manage your versions by scm tags" | ||
2 | HOMEPAGE = "https://pypi.org/project/setuptools-scm/" | ||
3 | DESCRIPTION = "setuptools_scm handles managing your Python package \ | ||
4 | versions in SCM metadata instead of declaring them as the version \ | ||
5 | argument or in a SCM managed file." | ||
6 | LICENSE = "MIT" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2" | ||
8 | |||
9 | SRC_URI[sha256sum] = "3d555e92b75dacd037d32bafdf94f97af51ea29ae8c7b234cf94b7a5bd242a63" | ||
10 | |||
11 | PYPI_PACKAGE = "setuptools_scm" | ||
12 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
13 | |||
14 | inherit pypi python_setuptools_build_meta | ||
15 | |||
16 | DEPENDS += "python3-packaging-native python3-typing-extensions-native" | ||
17 | |||
18 | RDEPENDS:${PN} = "\ | ||
19 | python3-packaging \ | ||
20 | python3-pip \ | ||
21 | python3-pyparsing \ | ||
22 | python3-setuptools \ | ||
23 | python3-typing-extensions \ | ||
24 | " | ||
25 | |||
26 | RDEPENDS:${PN}:append:class-target = " \ | ||
27 | python3-debugger \ | ||
28 | python3-json \ | ||
29 | " | ||
30 | |||
31 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch new file mode 100644 index 0000000000..39153883b0 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From e2eab8c254f16c461de25123f6859b8a18db5cd8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Wed, 11 May 2022 21:41:14 +0200 | ||
4 | Subject: [PATCH] _distutils/sysconfig.py: make it possible to substite the | ||
5 | prefix to target sysroot | ||
6 | |||
7 | This is done by probing STAGING_INCDIR/STAGING_LIBDIRenv vars: | ||
8 | not the most elegant solution, but distutils/sysconfig has been | ||
9 | tweaked to do this for many, many year, and so it's easiest | ||
10 | to replicate here as well, the original is | ||
11 | meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch | ||
12 | |||
13 | I'm not sure exactly why setuptools now needs a copy, and what | ||
14 | would happen to this module in light of distutils deprecation. | ||
15 | |||
16 | Upstream-Status: Inappropriate [oe-core specific] | ||
17 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
18 | --- | ||
19 | setuptools/_distutils/sysconfig.py | 12 ++++++++++-- | ||
20 | 1 file changed, 10 insertions(+), 2 deletions(-) | ||
21 | |||
22 | diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py | ||
23 | index 7ddc869..01a06af 100644 | ||
24 | --- a/setuptools/_distutils/sysconfig.py | ||
25 | +++ b/setuptools/_distutils/sysconfig.py | ||
26 | @@ -134,6 +134,8 @@ def get_python_inc(plat_specific: bool = False, prefix: str | None = None) -> st | ||
27 | sys.base_exec_prefix -- i.e., ignore 'plat_specific'. | ||
28 | """ | ||
29 | default_prefix = BASE_EXEC_PREFIX if plat_specific else BASE_PREFIX | ||
30 | + if os.environ.get('STAGING_INCDIR', ""): | ||
31 | + default_prefix = os.environ['STAGING_INCDIR'].rstrip('include') | ||
32 | resolved_prefix = prefix if prefix is not None else default_prefix | ||
33 | # MinGW imitates posix like layout, but os.name != posix | ||
34 | os_name = "posix" if is_mingw() else os.name | ||
35 | @@ -246,7 +248,13 @@ def get_python_lib( | ||
36 | |||
37 | early_prefix = prefix | ||
38 | |||
39 | - if prefix is None: | ||
40 | + if os.environ.get('STAGING_LIBDIR', ""): | ||
41 | + lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1] | ||
42 | + else: | ||
43 | + lib_basename = "lib" | ||
44 | + if prefix is None and os.environ.get('STAGING_LIBDIR', ""): | ||
45 | + prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename) | ||
46 | + elif prefix is None: | ||
47 | if standard_lib: | ||
48 | prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX | ||
49 | else: | ||
50 | @@ -261,7 +269,7 @@ def get_python_lib( | ||
51 | # Pure Python | ||
52 | libdir = "lib" | ||
53 | implementation = 'pypy' if IS_PYPY else 'python' | ||
54 | - libpython = os.path.join(prefix, libdir, implementation + get_python_version()) | ||
55 | + libpython = os.path.join(prefix, lib_basename, implementation + get_python_version()) | ||
56 | return _posix_lib(standard_lib, libpython, early_prefix, prefix) | ||
57 | elif os.name == "nt": | ||
58 | if standard_lib: | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch deleted file mode 100644 index 6dcf52771b..0000000000 --- a/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | From c39d0896930e25c224cc897660fc8511ccae30c8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Changqing Li <changqing.li@windriver.com> | ||
3 | Date: Thu, 23 Apr 2020 10:01:12 +0000 | ||
4 | Subject: [PATCH] change shebang to python3 | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
9 | --- | ||
10 | pkg_resources/_vendor/appdirs.py | 2 +- | ||
11 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
12 | |||
13 | diff --git a/pkg_resources/_vendor/appdirs.py b/pkg_resources/_vendor/appdirs.py | ||
14 | index ae67001..933e398 100644 | ||
15 | --- a/pkg_resources/_vendor/appdirs.py | ||
16 | +++ b/pkg_resources/_vendor/appdirs.py | ||
17 | @@ -1,4 +1,4 @@ | ||
18 | -#!/usr/bin/env python | ||
19 | +#!/usr/bin/env python3 | ||
20 | # -*- coding: utf-8 -*- | ||
21 | # Copyright (c) 2005-2010 ActiveState Software Inc. | ||
22 | # Copyright (c) 2013 Eddy Petrișor | ||
23 | -- | ||
24 | 2.24.1 | ||
25 | |||
diff --git a/meta/recipes-devtools/python/python3-setuptools_53.0.0.bb b/meta/recipes-devtools/python/python3-setuptools_53.0.0.bb deleted file mode 100644 index 811c8a5900..0000000000 --- a/meta/recipes-devtools/python/python3-setuptools_53.0.0.bb +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" | ||
2 | HOMEPAGE = "https://pypi.org/project/setuptools" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6" | ||
6 | |||
7 | inherit pypi setuptools3 | ||
8 | |||
9 | SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" | ||
10 | |||
11 | SRC_URI += "file://0001-change-shebang-to-python3.patch" | ||
12 | |||
13 | SRC_URI[sha256sum] = "1b18ef17d74ba97ac9c0e4b4265f123f07a8ae85d9cd093949fa056d3eeeead5" | ||
14 | |||
15 | DEPENDS += "${PYTHON_PN}" | ||
16 | |||
17 | RDEPENDS_${PN} = "\ | ||
18 | ${PYTHON_PN}-2to3 \ | ||
19 | ${PYTHON_PN}-compile \ | ||
20 | ${PYTHON_PN}-compression \ | ||
21 | ${PYTHON_PN}-ctypes \ | ||
22 | ${PYTHON_PN}-distutils \ | ||
23 | ${PYTHON_PN}-email \ | ||
24 | ${PYTHON_PN}-html \ | ||
25 | ${PYTHON_PN}-json \ | ||
26 | ${PYTHON_PN}-netserver \ | ||
27 | ${PYTHON_PN}-numbers \ | ||
28 | ${PYTHON_PN}-pickle \ | ||
29 | ${PYTHON_PN}-pkg-resources \ | ||
30 | ${PYTHON_PN}-pkgutil \ | ||
31 | ${PYTHON_PN}-plistlib \ | ||
32 | ${PYTHON_PN}-shell \ | ||
33 | ${PYTHON_PN}-stringold \ | ||
34 | ${PYTHON_PN}-threading \ | ||
35 | ${PYTHON_PN}-unittest \ | ||
36 | ${PYTHON_PN}-xml \ | ||
37 | " | ||
38 | |||
39 | do_install_prepend() { | ||
40 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
41 | } | ||
42 | |||
43 | BBCLASSEXTEND = "native nativesdk" | ||
44 | |||
45 | # The pkg-resources module can be used by itself, without the package downloader | ||
46 | # and easy_install. Ship it in a separate package so that it can be used by | ||
47 | # minimal distributions. | ||
48 | PACKAGES =+ "${PYTHON_PN}-pkg-resources " | ||
49 | FILES_${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" | ||
50 | RDEPENDS_${PYTHON_PN}-pkg-resources = "\ | ||
51 | ${PYTHON_PN}-compression \ | ||
52 | ${PYTHON_PN}-email \ | ||
53 | ${PYTHON_PN}-plistlib \ | ||
54 | ${PYTHON_PN}-pprint \ | ||
55 | " | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools_80.9.0.bb b/meta/recipes-devtools/python/python3-setuptools_80.9.0.bb new file mode 100644 index 0000000000..533d8ce3d4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools_80.9.0.bb | |||
@@ -0,0 +1,55 @@ | |||
1 | SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" | ||
2 | HOMEPAGE = "https://pypi.org/project/setuptools" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f" | ||
6 | |||
7 | inherit pypi python_setuptools_build_meta | ||
8 | |||
9 | CVE_PRODUCT = "python3-setuptools python:setuptools" | ||
10 | |||
11 | SRC_URI += " \ | ||
12 | file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch" | ||
13 | |||
14 | SRC_URI[sha256sum] = "f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c" | ||
15 | |||
16 | DEPENDS += "python3" | ||
17 | |||
18 | RDEPENDS:${PN} = "\ | ||
19 | python3-compile \ | ||
20 | python3-compression \ | ||
21 | python3-ctypes \ | ||
22 | python3-email \ | ||
23 | python3-html \ | ||
24 | python3-json \ | ||
25 | python3-netserver \ | ||
26 | python3-numbers \ | ||
27 | python3-pickle \ | ||
28 | python3-pkg-resources \ | ||
29 | python3-pkgutil \ | ||
30 | python3-plistlib \ | ||
31 | python3-shell \ | ||
32 | python3-stringold \ | ||
33 | python3-threading \ | ||
34 | python3-unittest \ | ||
35 | python3-unixadmin \ | ||
36 | python3-xml \ | ||
37 | " | ||
38 | |||
39 | BBCLASSEXTEND = "native nativesdk" | ||
40 | |||
41 | # The pkg-resources module can be used by itself, without the package downloader | ||
42 | # and easy_install. Ship it in a separate package so that it can be used by | ||
43 | # minimal distributions. | ||
44 | PACKAGES =+ "python3-pkg-resources " | ||
45 | FILES:python3-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" | ||
46 | RDEPENDS:python3-pkg-resources = "\ | ||
47 | python3-compression \ | ||
48 | python3-email \ | ||
49 | python3-plistlib \ | ||
50 | python3-pprint \ | ||
51 | " | ||
52 | |||
53 | # This used to use the bootstrap install which didn't compile. Until we bump the | ||
54 | # tmpdir version we can't compile the native otherwise the sysroot unpack fails | ||
55 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
diff --git a/meta/recipes-devtools/python/python3-six_1.15.0.bb b/meta/recipes-devtools/python/python3-six_1.15.0.bb deleted file mode 100644 index 6c6f3f9629..0000000000 --- a/meta/recipes-devtools/python/python3-six_1.15.0.bb +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-six.inc | ||
3 | |||
4 | SRC_URI[md5sum] = "9f90a0eaa0ea7747fda01ca79d21ebcb" | ||
5 | SRC_URI[sha256sum] = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259" | ||
diff --git a/meta/recipes-devtools/python/python3-six_1.17.0.bb b/meta/recipes-devtools/python/python3-six_1.17.0.bb new file mode 100644 index 0000000000..693f1818d3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-six_1.17.0.bb | |||
@@ -0,0 +1,4 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-six.inc | ||
3 | |||
4 | SRC_URI[sha256sum] = "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" | ||
diff --git a/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch b/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch new file mode 100644 index 0000000000..63bd523cb7 --- /dev/null +++ b/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From 7425e49166e6f16743ec9528697d06bc4103dc5e Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Orling <tim.orling@konsulko.com> | ||
3 | Date: Sun, 20 Feb 2022 18:55:50 -0800 | ||
4 | Subject: [PATCH] Change hash bang to python3 | ||
5 | |||
6 | In setup.py, smartypants and smartypants.py set hash bang to python3. | ||
7 | |||
8 | Upstream-Status: Inappropriate [oe-core specific] | ||
9 | |||
10 | Signed-off-by: Tim Orling <tim.orling@konsulko.com> | ||
11 | |||
12 | Update to apply on v2.0.2. | ||
13 | |||
14 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
15 | --- | ||
16 | setup.py | 2 +- | ||
17 | smartypants | 2 +- | ||
18 | smartypants.py | 2 +- | ||
19 | 3 files changed, 3 insertions(+), 3 deletions(-) | ||
20 | |||
21 | diff --git a/setup.py b/setup.py | ||
22 | index c183fc0..e10d757 100755 | ||
23 | --- a/setup.py | ||
24 | +++ b/setup.py | ||
25 | @@ -1,4 +1,4 @@ | ||
26 | -#!/usr/bin/env python | ||
27 | +#!/usr/bin/env python3 | ||
28 | # Copyright (c) 2025–present Justin Mayer | ||
29 | # For detail license information, See COPYING | ||
30 | |||
31 | diff --git a/smartypants b/smartypants | ||
32 | index 1dabf7d..20c130e 100755 | ||
33 | --- a/smartypants | ||
34 | +++ b/smartypants | ||
35 | @@ -1,4 +1,4 @@ | ||
36 | -#!/usr/bin/env python | ||
37 | +#!/usr/bin/env python3 | ||
38 | # Copyright (c) 2025–present Justin Mayer | ||
39 | # Licensed under the BSD License, for detailed license information, see COPYING | ||
40 | |||
41 | diff --git a/smartypants.py b/smartypants.py | ||
42 | index 62c1472..a440d14 100755 | ||
43 | --- a/smartypants.py | ||
44 | +++ b/smartypants.py | ||
45 | @@ -1,4 +1,4 @@ | ||
46 | -#!/usr/bin/python | ||
47 | +#!/usr/bin/python3 | ||
48 | # Copyright (c) 2025–present Justin Mayer | ||
49 | # Copyright (c) 2017 Leo Hemsted | ||
50 | # Copyright (c) 2013, 2014, 2016 Yu-Jie Lin | ||
51 | -- | ||
52 | 2.49.0 | ||
53 | |||
diff --git a/meta/recipes-devtools/python/python3-smartypants_2.0.2.bb b/meta/recipes-devtools/python/python3-smartypants_2.0.2.bb new file mode 100644 index 0000000000..a439f8a880 --- /dev/null +++ b/meta/recipes-devtools/python/python3-smartypants_2.0.2.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "Translator of plain ASCII punctuation characters into 'smart' typographic punctuation HTML entities" | ||
2 | HOMEPAGE = "https://pythonhosted.org/smartypants/" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=ca325788d94ee694fef2a308c5073454" | ||
5 | |||
6 | inherit pypi setuptools3 | ||
7 | |||
8 | PYPI_PACKAGE = "smartypants" | ||
9 | SRC_URI += "file://0001-Change-hash-bang-to-python3.patch" | ||
10 | SRC_URI[sha256sum] = "39d64ce1d7cc6964b698297bdf391bc12c3251b7f608e6e55d857cd7c5f800c6" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-smmap_4.0.0.bb b/meta/recipes-devtools/python/python3-smmap_4.0.0.bb deleted file mode 100644 index 5f0f341d6a..0000000000 --- a/meta/recipes-devtools/python/python3-smmap_4.0.0.bb +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-smmap.inc | ||
3 | |||
diff --git a/meta/recipes-devtools/python/python-smmap.inc b/meta/recipes-devtools/python/python3-smmap_6.0.0.bb index 2a2ac76f2e..6abed1205f 100644 --- a/meta/recipes-devtools/python/python-smmap.inc +++ b/meta/recipes-devtools/python/python3-smmap_6.0.0.bb | |||
@@ -7,13 +7,13 @@ SECTION = "devel/python" | |||
7 | LICENSE = "BSD-3-Clause" | 7 | LICENSE = "BSD-3-Clause" |
8 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" | 8 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" |
9 | 9 | ||
10 | inherit pypi | 10 | inherit pypi setuptools3 |
11 | 11 | ||
12 | PYPI_PACKAGE = "smmap" | 12 | PYPI_PACKAGE = "smmap" |
13 | 13 | ||
14 | SRC_URI[sha256sum] = "7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182" | 14 | SRC_URI[sha256sum] = "8d79028ea6cc131da5eab099a5d95a998d43c6779956fffe3b455040911076da" |
15 | 15 | ||
16 | RDEPENDS_${PN} += "${PYTHON_PN}-codecs \ | 16 | RDEPENDS:${PN} += "python3-codecs \ |
17 | ${PYTHON_PN}-mmap \ | 17 | python3-mmap \ |
18 | " | 18 | " |
19 | BBCLASSEXTEND = "native nativesdk" | 19 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-devtools/python/python3-snowballstemmer_3.0.1.bb b/meta/recipes-devtools/python/python3-snowballstemmer_3.0.1.bb new file mode 100644 index 0000000000..37cfbce7dc --- /dev/null +++ b/meta/recipes-devtools/python/python3-snowballstemmer_3.0.1.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Snowball compiler and stemming algorithms" | ||
2 | HOMEPAGE = "https://github.com/snowballstem/snowball" | ||
3 | |||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=19139aaf3c8c8fa1ca6edd59c072fb9f" | ||
6 | |||
7 | SRC_URI[sha256sum] = "6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895" | ||
8 | |||
9 | PYPI_PACKAGE = "snowballstemmer" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sortedcontainers_2.3.0.bb b/meta/recipes-devtools/python/python3-sortedcontainers_2.4.0.bb index 6060c03723..0755d3e177 100644 --- a/meta/recipes-devtools/python/python3-sortedcontainers_2.3.0.bb +++ b/meta/recipes-devtools/python/python3-sortedcontainers_2.4.0.bb | |||
@@ -4,6 +4,6 @@ LICENSE = "Apache-2.0" | |||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7c7c6a1a12ec816da16c1839137d53ae" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7c7c6a1a12ec816da16c1839137d53ae" |
5 | 5 | ||
6 | inherit pypi setuptools3 | 6 | inherit pypi setuptools3 |
7 | SRC_URI[sha256sum] = "59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1" | 7 | SRC_URI[sha256sum] = "25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88" |
8 | 8 | ||
9 | BBCLASSEXTEND = "native nativesdk" | 9 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-devtools/python/python3-spdx-tools_0.8.3.bb b/meta/recipes-devtools/python/python3-spdx-tools_0.8.3.bb new file mode 100644 index 0000000000..0f05679322 --- /dev/null +++ b/meta/recipes-devtools/python/python3-spdx-tools_0.8.3.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | SUMMARY = "Python tool to parse, validate and convert spdx files" | ||
2 | HOMEPAGE = "https://github.com/spdx/tools-python" | ||
3 | |||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=dc7f21ccff0f672f2a7cd6f412ae627d" | ||
6 | |||
7 | SRC_URI[sha256sum] = "68b8f9ce2893b5216bd90b2e63f1c821c2884e4ebc4fd295ebbf1fa8b8a94b93" | ||
8 | |||
9 | BBCLASSEXTEND = "native nativesdk" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | DEPENDS += "python3-setuptools-scm-native" | ||
14 | |||
15 | # Dependency required for pyspdxtools : python3-click | ||
16 | # Dependencies required for conversion to spdx3 : python3-semantic-version, python3-ply | ||
17 | RDEPENDS:${PN} += "\ | ||
18 | python3-core \ | ||
19 | python3-beartype \ | ||
20 | python3-click \ | ||
21 | python3-datetime \ | ||
22 | python3-json \ | ||
23 | python3-license-expression \ | ||
24 | python3-ply \ | ||
25 | python3-pyyaml \ | ||
26 | python3-rdflib \ | ||
27 | python3-semantic-version \ | ||
28 | python3-uritools \ | ||
29 | python3-xmltodict \ | ||
30 | " | ||
diff --git a/meta/recipes-devtools/python/python3-sphinx-argparse_0.5.2.bb b/meta/recipes-devtools/python/python3-sphinx-argparse_0.5.2.bb new file mode 100644 index 0000000000..554fb3eb51 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx-argparse_0.5.2.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "A sphinx extension that automatically documents argparse commands and options" | ||
2 | HOMEPAGE = "https://sphinx-argparse.readthedocs.io/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=5c1cd8f13774629fee215681e66a1056" | ||
5 | |||
6 | SRC_URI[sha256sum] = "e5352f8fa894b6fb6fda0498ba28a9f8d435971ef4bbc1a6c9c6414e7644f032" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinx_argparse" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinx-copybutton_0.5.2.bb b/meta/recipes-devtools/python/python3-sphinx-copybutton_0.5.2.bb new file mode 100644 index 0000000000..0441804661 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx-copybutton_0.5.2.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | SUMMARY = "Add a copy button to code blocks in Sphinx" | ||
2 | HOMEPAGE = "https://sphinx-copybutton.readthedocs.io" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c60e920848b6d2ecec51ea44a1a33bf0" | ||
5 | |||
6 | SRC_URI[sha256sum] = "4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd" | ||
7 | |||
8 | inherit setuptools3 pypi | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinx-rtd-theme_3.0.2.bb b/meta/recipes-devtools/python/python3-sphinx-rtd-theme_3.0.2.bb new file mode 100644 index 0000000000..03e7a50125 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx-rtd-theme_3.0.2.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | SUMMARY = "Sphinx Theme reader" | ||
2 | HOMEPAGE = "https://github.com/readthedocs/sphinx_rtd_theme" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT & OFL-1.1" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a1db7d4ef426c2935227264e1d4ae8f9 \ | ||
6 | file://OFL-License.txt;md5=4534c22e0147eadb6828bd9fe86d4868 \ | ||
7 | file://Apache-License-2.0.txt;md5=8a75796f0ef19c3f601d69857f5a9a5b" | ||
8 | |||
9 | RDEPENDS:${PN} += " \ | ||
10 | python3-compile \ | ||
11 | python3-sphinx \ | ||
12 | python3-sphinxcontrib-jquery \ | ||
13 | " | ||
14 | |||
15 | PYPI_PACKAGE = "sphinx_rtd_theme" | ||
16 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
17 | |||
18 | SRC_URI[sha256sum] = "b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85" | ||
19 | |||
20 | inherit setuptools3 pypi | ||
21 | |||
22 | #Fake out the setup scipt | ||
23 | export CI = "True" | ||
24 | export TOX_ENV_NAME = "True" | ||
25 | |||
26 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinx_8.2.1.bb b/meta/recipes-devtools/python/python3-sphinx_8.2.1.bb new file mode 100644 index 0000000000..614566b8f4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx_8.2.1.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | SUMMARY = "Python documentation generator" | ||
2 | HOMEPAGE = "http://sphinx-doc.org/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-2-Clause & MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=e30c37a2b7fb0afa3adc0d72b85e8b04" | ||
6 | |||
7 | SRC_URI[sha256sum] = "e4b932951b9c18b039f73b72e4e63afe967d90408700ec222b981ac24647c01e" | ||
8 | |||
9 | inherit python_flit_core pypi | ||
10 | |||
11 | do_install:append () { | ||
12 | # The cache format of "{None, 'en', 'ja'}" doesn't seem to be consistent (dict ordering?) | ||
13 | rm ${D}${libdir}/${PYTHON_DIR}/site-packages/sphinx/writers/__pycache__/*latex* | ||
14 | } | ||
15 | |||
16 | RDEPENDS:${PN} = "\ | ||
17 | python3-alabaster \ | ||
18 | python3-babel \ | ||
19 | python3-docutils \ | ||
20 | python3-imagesize \ | ||
21 | python3-jinja2 \ | ||
22 | python3-packaging \ | ||
23 | python3-pygments \ | ||
24 | python3-requests \ | ||
25 | python3-roman-numerals-py \ | ||
26 | python3-snowballstemmer \ | ||
27 | python3-sphinxcontrib-applehelp \ | ||
28 | python3-sphinxcontrib-devhelp \ | ||
29 | python3-sphinxcontrib-htmlhelp \ | ||
30 | python3-sphinxcontrib-jsmath \ | ||
31 | python3-sphinxcontrib-qthelp \ | ||
32 | python3-sphinxcontrib-serializinghtml \ | ||
33 | " | ||
34 | |||
35 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_2.0.0.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_2.0.0.bb new file mode 100644 index 0000000000..a63b7ad014 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_2.0.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" | ||
2 | HOMEPAGE = "https://www.sphinx-doc.org" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=c7715857042d4c8c0105999ca0c072c5" | ||
5 | |||
6 | SRC_URI[sha256sum] = "2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_applehelp" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_2.0.0.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_2.0.0.bb new file mode 100644 index 0000000000..abce915a19 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_2.0.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." | ||
2 | HOMEPAGE = "https://www.sphinx-doc.org" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=fd30d9972a142c857a80c9f312e92b93" | ||
5 | |||
6 | SRC_URI[sha256sum] = "411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_devhelp" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.1.0.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.1.0.bb new file mode 100644 index 0000000000..44885d7dc3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.1.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" | ||
2 | HOMEPAGE = "https://www.sphinx-doc.org" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=24dce5ef6a13563241c24bc366f48886" | ||
5 | |||
6 | SRC_URI[sha256sum] = "c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_htmlhelp" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb new file mode 100644 index 0000000000..5f915663c2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "Extension to include jQuery on newer Sphinx releases" | ||
2 | HOMEPAGE = "https://pypi.org/project/sphinxcontrib-jquery/" | ||
3 | LICENSE = "0BSD" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE;md5=926e8b7e89e3ebb2a2d1dfaf0873f241" | ||
5 | |||
6 | SRC_URI[sha256sum] = "1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib-jquery" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb new file mode 100644 index 0000000000..7c11cfeec5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "A sphinx extension which renders display math in HTML via JavaScript" | ||
2 | HOMEPAGE = "https://www.sphinx-doc.org" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=f0064c10bd544bcffccbc67a41c108d3" | ||
5 | |||
6 | SRC_URI[sha256sum] = "a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib-jsmath" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_2.0.0.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_2.0.0.bb new file mode 100644 index 0000000000..141d1c4862 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_2.0.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "Is a sphinx extension which outputs QtHelp document." | ||
2 | HOMEPAGE = "http://babel.edgewall.org/" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=f7a83b72ea86d04827575ec0b63430eb" | ||
5 | |||
6 | SRC_URI[sha256sum] = "4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_qthelp" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_2.0.0.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_2.0.0.bb new file mode 100644 index 0000000000..95ee596b3b --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_2.0.0.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = 'sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).' | ||
2 | HOMEPAGE = "https://www.sphinx-doc.org" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENCE.rst;md5=32a84ac5cd3bbd10c4d479233ad588b6" | ||
5 | |||
6 | SRC_URI[sha256sum] = "e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_serializinghtml" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-subunit_1.4.0.bb b/meta/recipes-devtools/python/python3-subunit_1.4.0.bb deleted file mode 100644 index 55066e2d0f..0000000000 --- a/meta/recipes-devtools/python/python3-subunit_1.4.0.bb +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-subunit.inc | ||
3 | |||
4 | RDEPENDS_${PN} = " python3-testtools" | ||
diff --git a/meta/recipes-devtools/python/python3-subunit_1.4.4.bb b/meta/recipes-devtools/python/python3-subunit_1.4.4.bb new file mode 100644 index 0000000000..269b057427 --- /dev/null +++ b/meta/recipes-devtools/python/python3-subunit_1.4.4.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Python implementation of subunit test streaming protocol" | ||
2 | HOMEPAGE = "https://pypi.org/project/python-subunit/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0 | BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;beginline=1;endline=20;md5=b1121e68d06c8d9ea544fcd895df0d39" | ||
6 | |||
7 | PYPI_PACKAGE = "python-subunit" | ||
8 | |||
9 | SRC_URI[sha256sum] = "1079363131aa1d3f45259237265bc2e61a77e35f20edfb6e3d1d2558a2cdea34" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | RDEPENDS:${PN} = " python3-testtools python3-iso8601" | ||
14 | |||
15 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch b/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch deleted file mode 100644 index 594510342b..0000000000 --- a/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | traceback2 adds traceback for python2. Rather than depend on traceback2, we're | ||
2 | python3 only so just use traceback. | ||
3 | This caused breakage in oe-selftest -j which uses testtools on the autobuilder | ||
4 | using buildtools-tarball. | ||
5 | |||
6 | Upstream-Status: Inappropriate [Our recipe is python3 specific] | ||
7 | (Once py2 is EOL upstream probably could/should take this) | ||
8 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
9 | |||
10 | Index: testtools-2.3.0/testtools/content.py | ||
11 | =================================================================== | ||
12 | --- testtools-2.3.0.orig/testtools/content.py | ||
13 | +++ testtools-2.3.0/testtools/content.py | ||
14 | @@ -19,8 +19,7 @@ import os | ||
15 | import sys | ||
16 | |||
17 | from extras import try_import | ||
18 | -# To let setup.py work, make this a conditional import. | ||
19 | -traceback = try_import('traceback2') | ||
20 | +import traceback | ||
21 | |||
22 | from testtools.compat import ( | ||
23 | _b, | ||
diff --git a/meta/recipes-devtools/python/python3-testtools_2.4.0.bb b/meta/recipes-devtools/python/python3-testtools_2.4.0.bb deleted file mode 100644 index a254b90a75..0000000000 --- a/meta/recipes-devtools/python/python3-testtools_2.4.0.bb +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-testtools.inc | ||
3 | |||
4 | SRC_URI += "file://no_traceback2.patch" | ||
diff --git a/meta/recipes-devtools/python/python3-testtools_2.7.2.bb b/meta/recipes-devtools/python/python3-testtools_2.7.2.bb new file mode 100644 index 0000000000..8d7759b4a7 --- /dev/null +++ b/meta/recipes-devtools/python/python3-testtools_2.7.2.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Extensions to the Python standard library unit testing framework" | ||
2 | HOMEPAGE = "https://pypi.org/project/testtools/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a" | ||
6 | |||
7 | DEPENDS += "python3-hatch-vcs-native" | ||
8 | |||
9 | inherit pypi python_hatchling | ||
10 | |||
11 | SRC_URI[sha256sum] = "5be5bbc1f0fa0f8b60aca6ceec07845d41d0c475cf445bfadb4d2c45ec397ea3" | ||
12 | |||
13 | RDEPENDS:${PN} += "\ | ||
14 | python3-compression \ | ||
15 | python3-doctest \ | ||
16 | python3-extras \ | ||
17 | python3-json \ | ||
18 | python3-six \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "nativesdk" | ||
22 | |||
diff --git a/meta/recipes-devtools/python/python3-toml_0.10.2.bb b/meta/recipes-devtools/python/python3-toml_0.10.2.bb deleted file mode 100644 index b46eba6fd1..0000000000 --- a/meta/recipes-devtools/python/python3-toml_0.10.2.bb +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | SUMMARY = "Python Library for Tom's Obvious, Minimal Language" | ||
2 | HOMEPAGE = "https://github.com/uiri/toml" | ||
3 | LICENSE = "MIT" | ||
4 | SECTION = "devel/python" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=16c77b2b1050d2f03cb9c2ed0edaf4f0" | ||
6 | |||
7 | SRC_URI[sha256sum] = "b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS_${PN} += " \ | ||
14 | ${PYTHON_PN}-misc \ | ||
15 | " | ||
diff --git a/meta/recipes-devtools/python/python3-trove-classifiers_2025.5.9.12.bb b/meta/recipes-devtools/python/python3-trove-classifiers_2025.5.9.12.bb new file mode 100644 index 0000000000..68b09537bc --- /dev/null +++ b/meta/recipes-devtools/python/python3-trove-classifiers_2025.5.9.12.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Canonical source for classifiers on PyPI (pypi.org)." | ||
2 | HOMEPAGE = "https://github.com/pypa/trove-classifiers" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" | ||
5 | |||
6 | SRC_URI[sha256sum] = "7ca7c8a7a76e2cd314468c677c69d12cc2357711fcab4a60f87994c1589e5cb5" | ||
7 | |||
8 | PYPI_PACKAGE = "trove_classifiers" | ||
9 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
12 | |||
13 | DEPENDS += " python3-calver-native" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-typing-extensions_4.14.0.bb b/meta/recipes-devtools/python/python3-typing-extensions_4.14.0.bb new file mode 100644 index 0000000000..1c03aacc10 --- /dev/null +++ b/meta/recipes-devtools/python/python3-typing-extensions_4.14.0.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | SUMMARY = "Backported and Experimental Type Hints for Python 3.7+" | ||
2 | DESCRIPTION = "The typing_extensions module serves two related purposes:\ | ||
3 | \ | ||
4 | * Enable use of new type system features on older Python versions. For \ | ||
5 | example, typing.TypeGuard is new in Python 3.10, but typing_extensions \ | ||
6 | allows users on previous Python versions to use it too.\ | ||
7 | * Enable experimentation with new type system PEPs before they are accepted \ | ||
8 | and added to the typing module." | ||
9 | HOMEPAGE = "https://github.com/python/typing_extensions" | ||
10 | BUGTRACKER = "https://github.com/python/typing_extensions/issues" | ||
11 | SECTIONS = "libs" | ||
12 | LICENSE = "PSF-2.0" | ||
13 | LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2" | ||
14 | |||
15 | # The name on PyPi is slightly different. | ||
16 | PYPI_PACKAGE = "typing_extensions" | ||
17 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
18 | |||
19 | SRC_URI[sha256sum] = "8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4" | ||
20 | |||
21 | inherit pypi python_flit_core | ||
22 | |||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-typogrify_2.1.0.bb b/meta/recipes-devtools/python/python3-typogrify_2.1.0.bb new file mode 100644 index 0000000000..0cb31468bd --- /dev/null +++ b/meta/recipes-devtools/python/python3-typogrify_2.1.0.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "Filters to enhance web typography, including support for Django & Jinja templates" | ||
2 | HOMEPAGE = "https://github.com/mintchaos/typogrify" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b8558ebcc682078c1a44d0227573006d" | ||
5 | |||
6 | inherit pypi python_hatchling | ||
7 | |||
8 | PYPI_PACKAGE = "typogrify" | ||
9 | SRC_URI[sha256sum] = "f0aa004e98032a6e6be4c9da65e7eb7150e36ca3bf508adbcda82b4d003e61ee" | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} += "python3-smartypants" | ||
14 | |||
diff --git a/meta/recipes-devtools/python/python3-unittest-automake-output/0001-Update-__version__-to-match-the-tag-version.patch b/meta/recipes-devtools/python/python3-unittest-automake-output/0001-Update-__version__-to-match-the-tag-version.patch new file mode 100644 index 0000000000..c2e519a12a --- /dev/null +++ b/meta/recipes-devtools/python/python3-unittest-automake-output/0001-Update-__version__-to-match-the-tag-version.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 8da931c5e9e32a15091d517b28cdf2e2b5395f77 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
3 | Date: Tue, 8 Apr 2025 15:55:42 +0800 | ||
4 | Subject: [PATCH] Update __version__ to match the tag version | ||
5 | |||
6 | Update __version__ to 0.2 to match the current tag. | ||
7 | |||
8 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | [https://gitlab.com/rossburton/python-unittest-automake-output/-/commit/8da931c5e9e32a15091d517b28cdf2e2b5395f77] | ||
12 | |||
13 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
14 | --- | ||
15 | src/putao/__init__.py | 2 +- | ||
16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/src/putao/__init__.py b/src/putao/__init__.py | ||
19 | index e8758de..00265e2 100644 | ||
20 | --- a/src/putao/__init__.py | ||
21 | +++ b/src/putao/__init__.py | ||
22 | @@ -5,4 +5,4 @@ | ||
23 | Tools to write automake-style test reports. | ||
24 | """ | ||
25 | |||
26 | -__version__ = "0.1" | ||
27 | +__version__ = "0.2" | ||
28 | -- | ||
29 | 2.34.1 | ||
30 | |||
diff --git a/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb b/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb new file mode 100644 index 0000000000..216fea2b93 --- /dev/null +++ b/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Modules to make unittest and pytest look like Automake output, for ptest" | ||
2 | HOMEPAGE = "https://gitlab.com/rossburton/python-unittest-automake-output" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=f6f16008d9fb7349f06609329f1ab93b" | ||
5 | |||
6 | SRC_URI = "git://gitlab.com/rossburton/python-unittest-automake-output;protocol=https;branch=main \ | ||
7 | file://0001-Update-__version__-to-match-the-tag-version.patch" | ||
8 | |||
9 | SRCREV = "aebdfb188e368c690ea55cf6c9c9ffa1a52def65" | ||
10 | |||
11 | inherit python_flit_core | ||
12 | |||
13 | RDEPENDS:${PN} += "python3-unittest" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-uritools_5.0.0.bb b/meta/recipes-devtools/python/python3-uritools_5.0.0.bb new file mode 100644 index 0000000000..35a8f2a0d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-uritools_5.0.0.bb | |||
@@ -0,0 +1,11 @@ | |||
1 | SUMMARY = "URI parsing, classification and composition" | ||
2 | HOMEPAGE = "https://github.com/tkem/uritools/" | ||
3 | |||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e21bbe53b2730bfe1911cf381b81821e" | ||
6 | |||
7 | SRC_URI[sha256sum] = "68180cad154062bd5b5d9ffcdd464f8de6934414b25462ae807b00b8df9345de" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb b/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb new file mode 100644 index 0000000000..a4f3995730 --- /dev/null +++ b/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" | ||
2 | HOMEPAGE = "https://github.com/urllib3/urllib3" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda" | ||
5 | |||
6 | SRC_URI[sha256sum] = "3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760" | ||
7 | |||
8 | inherit pypi python_hatchling | ||
9 | |||
10 | DEPENDS += " \ | ||
11 | python3-hatch-vcs-native \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS:${PN} += "\ | ||
15 | python3-certifi \ | ||
16 | python3-cryptography \ | ||
17 | python3-email \ | ||
18 | python3-idna \ | ||
19 | python3-json \ | ||
20 | python3-netclient \ | ||
21 | python3-pyopenssl \ | ||
22 | python3-threading \ | ||
23 | python3-logging \ | ||
24 | " | ||
25 | |||
26 | CVE_PRODUCT = "urllib3" | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb b/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb new file mode 100644 index 0000000000..2f5e0ad141 --- /dev/null +++ b/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb | |||
@@ -0,0 +1,11 @@ | |||
1 | SUMMARY = "Python vcversioner, automagically update the project's version" | ||
2 | HOMEPAGE = "https://github.com/habnabit/vcversioner" | ||
3 | |||
4 | LICENSE = "ISC" | ||
5 | LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3" | ||
6 | |||
7 | SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-wcwidth/run-ptest b/meta/recipes-devtools/python/python3-wcwidth/run-ptest deleted file mode 100644 index b63c4de0d9..0000000000 --- a/meta/recipes-devtools/python/python3-wcwidth/run-ptest +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}' | ||
diff --git a/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb new file mode 100644 index 0000000000..71bb1a2703 --- /dev/null +++ b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "Library for building powerful interactive command lines in Python" | ||
2 | DESCRIPTION = "Measures the displayed width of unicode strings in a terminal" | ||
3 | HOMEPAGE = "https://github.com/jquast/wcwidth" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb" | ||
6 | |||
7 | SRC_URI[sha256sum] = "72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" | ||
8 | |||
9 | inherit pypi setuptools3 ptest-python-pytest | ||
10 | |||
11 | do_install_ptest:aapend() { | ||
12 | install -d ${D}${PTEST_PATH}/bin | ||
13 | cp -rf ${S}/bin/* ${D}${PTEST_PATH}/bin/ | ||
14 | } | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb b/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb deleted file mode 100644 index bb4aae2e86..0000000000 --- a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | SUMMARY = "Library for building powerful interactive command lines in Python" | ||
2 | DESCRIPTION = "Measures the displayed width of unicode strings in a terminal" | ||
3 | HOMEPAGE = "https://github.com/jquast/wcwidth" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb" | ||
6 | |||
7 | SRC_URI[md5sum] = "a07a75f99d316e14838ac760c831ea37" | ||
8 | SRC_URI[sha256sum] = "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" | ||
9 | |||
10 | inherit pypi setuptools3 ptest | ||
11 | |||
12 | SRC_URI += " \ | ||
13 | file://run-ptest \ | ||
14 | " | ||
15 | |||
16 | RDEPENDS_${PN}-ptest += " \ | ||
17 | ${PYTHON_PN}-pytest \ | ||
18 | " | ||
19 | |||
20 | do_install_ptest() { | ||
21 | install -d ${D}${PTEST_PATH}/tests | ||
22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
23 | } | ||
24 | |||
25 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-webcolors_24.11.1.bb b/meta/recipes-devtools/python/python3-webcolors_24.11.1.bb new file mode 100644 index 0000000000..cda63d2a35 --- /dev/null +++ b/meta/recipes-devtools/python/python3-webcolors_24.11.1.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "Simple Python module for working with HTML/CSS color definitions." | ||
2 | HOMEPAGE = "https://pypi.org/project/webcolors/" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=cbaebec43b7d199c7fd8f5411b3b0448" | ||
5 | |||
6 | SRC_URI[sha256sum] = "ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta ptest-python-pytest | ||
9 | |||
10 | DEPENDS += " \ | ||
11 | python3-pdm-native \ | ||
12 | python3-pdm-backend-native \ | ||
13 | " | ||
14 | |||
15 | RDEPENDS:${PN}:class-target = "\ | ||
16 | python3-stringold \ | ||
17 | " | ||
18 | |||
19 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-websockets_15.0.1.bb b/meta/recipes-devtools/python/python3-websockets_15.0.1.bb new file mode 100644 index 0000000000..2e1b0f0919 --- /dev/null +++ b/meta/recipes-devtools/python/python3-websockets_15.0.1.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)" | ||
2 | HOMEPAGE = "https://github.com/aaugustin/websockets" | ||
3 | |||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=51924a6af4495b8cfaee1b1da869b6f4" | ||
6 | |||
7 | inherit pypi python_setuptools_build_meta | ||
8 | |||
9 | SRC_URI[sha256sum] = "82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee" | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} = " \ | ||
14 | python3-asyncio \ | ||
15 | " | ||
diff --git a/meta/recipes-devtools/python/python3-wheel_0.46.1.bb b/meta/recipes-devtools/python/python3-wheel_0.46.1.bb new file mode 100644 index 0000000000..058af2f0e7 --- /dev/null +++ b/meta/recipes-devtools/python/python3-wheel_0.46.1.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | SUMMARY = "The official binary distribution format for Python " | ||
2 | HOMEPAGE = "https://github.com/pypa/wheel" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7ffb0db04527cfe380e4f2726bd05ebf" | ||
6 | |||
7 | SRC_URI[sha256sum] = "fd477efb5da0f7df1d3c76c73c14394002c844451bd63229d8570f376f5e6a38" | ||
8 | |||
9 | inherit python_flit_core pypi ptest-python-pytest | ||
10 | |||
11 | RDEPENDS:${PN} += "python3-packaging" | ||
12 | |||
13 | # One test is skipped but requires the "full" python3-flit, not just python3-flit-core | ||
14 | RDEPENDS:${PN}-ptest += "python3-setuptools" | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
17 | |||
18 | # This used to use the bootstrap install which didn't compile. Until we bump the | ||
19 | # tmpdir version we can't compile the native otherwise the sysroot unpack fails | ||
20 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
diff --git a/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb b/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb new file mode 100644 index 0000000000..56cdf6ff4a --- /dev/null +++ b/meta/recipes-devtools/python/python3-xmltodict_0.14.2.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "Makes working with XML feel like you are working with JSON" | ||
2 | HOMEPAGE = "https://github.com/martinblech/xmltodict" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=01441d50dc74476db58a41ac10cb9fa2" | ||
5 | |||
6 | SRC_URI[sha256sum] = "201e7c28bb210e374999d1dde6382923ab0ed1a8a5faeece48ab525b7810a553" | ||
7 | |||
8 | PYPI_PACKAGE = "xmltodict" | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
11 | |||
12 | inherit pypi setuptools3 ptest-python-pytest | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-core \ | ||
16 | python3-xml \ | ||
17 | python3-io \ | ||
18 | " | ||
19 | |||
diff --git a/meta/recipes-devtools/python/python3-yamllint_1.37.1.bb b/meta/recipes-devtools/python/python3-yamllint_1.37.1.bb new file mode 100644 index 0000000000..1b0ddde873 --- /dev/null +++ b/meta/recipes-devtools/python/python3-yamllint_1.37.1.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "A linter for YAML files." | ||
2 | HOMEPAGE = "https://github.com/adrienverge/yamllint" | ||
3 | LICENSE = "GPL-3.0-only" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464" | ||
5 | |||
6 | inherit pypi python_setuptools_build_meta | ||
7 | |||
8 | PYPI_PACKAGE = "yamllint" | ||
9 | |||
10 | SRC_URI[sha256sum] = "81f7c0c5559becc8049470d86046b36e96113637bcbe4753ecef06977c00245d" | ||
11 | |||
12 | RDEPENDS:${PN} += "python3-pathspec python3-pyyaml" | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-zipp_3.21.0.bb b/meta/recipes-devtools/python/python3-zipp_3.21.0.bb new file mode 100644 index 0000000000..135a1ae533 --- /dev/null +++ b/meta/recipes-devtools/python/python3-zipp_3.21.0.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | SUMMARY = "Backport of pathlib-compatible object wrapper for zip files" | ||
2 | HOMEPAGE = "https://github.com/jaraco/zipp" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f" | ||
5 | |||
6 | SRC_URI[sha256sum] = "2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4" | ||
7 | |||
8 | DEPENDS += "python3-setuptools-scm-native" | ||
9 | |||
10 | inherit pypi python_setuptools_build_meta | ||
11 | |||
12 | RDEPENDS:${PN} += "python3-compression \ | ||
13 | python3-math" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-zipp_3.4.0.bb b/meta/recipes-devtools/python/python3-zipp_3.4.0.bb deleted file mode 100644 index 97523e8e7c..0000000000 --- a/meta/recipes-devtools/python/python3-zipp_3.4.0.bb +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | DESCRIPTION = "Backport of pathlib-compatible object wrapper for zip files" | ||
2 | HOMEPAGE = "https://github.com/jaraco/zipp" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6" | ||
5 | |||
6 | SRC_URI[md5sum] = "ae81f228995578b840d76d1b7d87fede" | ||
7 | SRC_URI[sha256sum] = "ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb" | ||
8 | |||
9 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | DEPENDS += "${PYTHON_PN}-toml-native" | ||
14 | |||
15 | RDEPENDS_${PN} += "${PYTHON_PN}-compression \ | ||
16 | ${PYTHON_PN}-math \ | ||
17 | ${PYTHON_PN}-more-itertools" | ||
18 | |||
19 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch new file mode 100644 index 0000000000..81a613c151 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 6b111a328c1c57b1580d63894b2b5d337316f6d4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paulo Neves <ptsneves@gmail.com> | ||
3 | Date: Tue, 7 Jun 2022 16:16:41 +0200 | ||
4 | Subject: [PATCH] Avoid shebang overflow on python-config.py | ||
5 | |||
6 | The whole native path may be too big, leading to shebang | ||
7 | overflow. Let's just use the env shebang. | ||
8 | |||
9 | Denial reason: [1] | ||
10 | |||
11 | Upstream-Status: Denied [distribution] | ||
12 | |||
13 | [1] https://github.com/python/cpython/pull/93760#pullrequestreview-1005365737 | ||
14 | --- | ||
15 | Makefile.pre.in | 2 ++ | ||
16 | 1 file changed, 2 insertions(+) | ||
17 | |||
18 | diff --git a/Makefile.pre.in b/Makefile.pre.in | ||
19 | index 9ec3a71..f7d5382 100644 | ||
20 | --- a/Makefile.pre.in | ||
21 | +++ b/Makefile.pre.in | ||
22 | @@ -2578,6 +2578,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh | ||
23 | @ # Substitution happens here, as the completely-expanded BINDIR | ||
24 | @ # is not available in configure | ||
25 | sed -e "s,@EXENAME@,$(EXENAME)," < $(srcdir)/Misc/python-config.in >python-config.py | ||
26 | + @ # Otherwise we might get huge shebangs with native paths | ||
27 | + sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' python-config.py | ||
28 | @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} | ||
29 | LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config | ||
30 | @ # On Darwin, always use the python version of the script, the shell | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch b/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch deleted file mode 100644 index 59592821d7..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | From 039c53dd5baddec3359a05be0bff46a3b32bbb84 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 25 Jan 2019 19:04:13 +0100 | ||
4 | Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host | ||
5 | contamination | ||
6 | |||
7 | Upstream-Status: Inappropriate [oe-core specific] | ||
8 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
9 | |||
10 | --- | ||
11 | setup.py | 1 - | ||
12 | 1 file changed, 1 deletion(-) | ||
13 | |||
14 | diff --git a/setup.py b/setup.py | ||
15 | index 20d7f35..ab18ff0 100644 | ||
16 | --- a/setup.py | ||
17 | +++ b/setup.py | ||
18 | @@ -957,7 +957,6 @@ class PyBuildExt(build_ext): | ||
19 | 'termcap'): | ||
20 | readline_libs.append('termcap') | ||
21 | self.add(Extension('readline', ['readline.c'], | ||
22 | - library_dirs=['/usr/lib/termcap'], | ||
23 | extra_link_args=readline_extra_link_args, | ||
24 | libraries=readline_libs)) | ||
25 | else: | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch b/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch deleted file mode 100644 index 83fd52d87f..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From 148861fa16f2aaacd518770f337ea54b5182f981 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Tue, 29 Jan 2019 15:03:01 +0100 | ||
4 | Subject: [PATCH] Do not use the shell version of python-config that was | ||
5 | introduced in 3.4 | ||
6 | |||
7 | Revert instead to the original python version: it has our tweaks and | ||
8 | outputs directories correctly. | ||
9 | |||
10 | Upstream-Status: Inappropriate [oe-specific] | ||
11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
12 | --- | ||
13 | Makefile.pre.in | 9 +++------ | ||
14 | 1 file changed, 3 insertions(+), 6 deletions(-) | ||
15 | |||
16 | diff --git a/Makefile.pre.in b/Makefile.pre.in | ||
17 | index 2d2e11f..cc19942 100644 | ||
18 | --- a/Makefile.pre.in | ||
19 | +++ b/Makefile.pre.in | ||
20 | @@ -1431,12 +1431,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh | ||
21 | sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py | ||
22 | @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} | ||
23 | LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config | ||
24 | - @ # On Darwin, always use the python version of the script, the shell | ||
25 | - @ # version doesn't use the compiler customizations that are provided | ||
26 | - @ # in python (_osx_support.py). | ||
27 | - @if test `uname -s` = Darwin; then \ | ||
28 | - cp python-config.py python-config; \ | ||
29 | - fi | ||
30 | + @ # In OpenEmbedded, always use the python version of the script, the shell | ||
31 | + @ # version is broken in multiple ways, and doesn't return correct directories | ||
32 | + cp python-config.py python-config | ||
33 | |||
34 | |||
35 | # Install the include files | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch b/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch deleted file mode 100644 index a94fa0a5a9..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | From 9da913bf5f39c6fe737219af7419170574d6fbfb Mon Sep 17 00:00:00 2001 | ||
2 | From: Jeremy Puhlman <jpuhlman@mvista.com> | ||
3 | Date: Wed, 4 Mar 2020 00:06:42 +0000 | ||
4 | Subject: [PATCH] Don't search system for headers/libraries | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe-core specific] | ||
7 | Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> | ||
8 | |||
9 | --- | ||
10 | setup.py | 4 ++-- | ||
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/setup.py b/setup.py | ||
14 | index a0bf9ea..da099bf 100644 | ||
15 | --- a/setup.py | ||
16 | +++ b/setup.py | ||
17 | @@ -674,8 +674,8 @@ class PyBuildExt(build_ext): | ||
18 | add_dir_to_list(self.compiler.include_dirs, | ||
19 | sysconfig.get_config_var("INCLUDEDIR")) | ||
20 | |||
21 | - system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib'] | ||
22 | - system_include_dirs = ['/usr/include'] | ||
23 | + system_lib_dirs = [] | ||
24 | + system_include_dirs = [] | ||
25 | # lib_dirs and inc_dirs are used to search for files; | ||
26 | # if a file is found in one of those directories, it can | ||
27 | # be assumed that no additional -I,-L directives are needed. | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch b/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch new file mode 100644 index 0000000000..075737e7d1 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch | |||
@@ -0,0 +1,1452 @@ | |||
1 | From db5c5763f3e3172f1dd011355b41469770dafc0f Mon Sep 17 00:00:00 2001 | ||
2 | From: Petr Viktorin <encukou@gmail.com> | ||
3 | Date: Thu, 28 Nov 2024 13:29:27 +0100 | ||
4 | Subject: [PATCH] gh-127330: Update for OpenSSL 3.4 & document+improve the | ||
5 | update process (GH-127331) | ||
6 | |||
7 | - Add `git describe` output to headers generated by `make_ssl_data.py` | ||
8 | |||
9 | This info is more important than the date when the file was generated. | ||
10 | It does mean that the tool now requires a Git checkout of OpenSSL, | ||
11 | not for example a release tarball. | ||
12 | |||
13 | - Regenerate the older file to add the info. | ||
14 | To the other older file, add a note about manual edits. | ||
15 | |||
16 | - Add notes on how to add a new OpenSSL version | ||
17 | |||
18 | - Add 3.4 error messages and multissl tests | ||
19 | |||
20 | Upstream-Status: Submitted [https://github.com/python/cpython/commit/db5c5763f3e3172f1dd011355b41469770dafc0f] | ||
21 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
22 | --- | ||
23 | Modules/_ssl.c | 2 +- | ||
24 | Modules/_ssl_data_111.h | 4 +- | ||
25 | Modules/_ssl_data_300.h | 5 +- | ||
26 | Modules/{_ssl_data_31.h => _ssl_data_34.h} | 674 ++++++++++++++++++++- | ||
27 | Tools/c-analyzer/cpython/_parser.py | 4 +- | ||
28 | Tools/ssl/make_ssl_data.py | 34 +- | ||
29 | Tools/ssl/multissltests.py | 1 + | ||
30 | 7 files changed, 714 insertions(+), 10 deletions(-) | ||
31 | rename Modules/{_ssl_data_31.h => _ssl_data_34.h} (92%) | ||
32 | |||
33 | diff --git a/Modules/_ssl.c b/Modules/_ssl.c | ||
34 | index b6b5ebf094c..e5b8bf21002 100644 | ||
35 | --- a/Modules/_ssl.c | ||
36 | +++ b/Modules/_ssl.c | ||
37 | @@ -121,7 +121,7 @@ static void _PySSLFixErrno(void) { | ||
38 | |||
39 | /* Include generated data (error codes) */ | ||
40 | #if (OPENSSL_VERSION_NUMBER >= 0x30100000L) | ||
41 | -#include "_ssl_data_31.h" | ||
42 | +#include "_ssl_data_34.h" | ||
43 | #elif (OPENSSL_VERSION_NUMBER >= 0x30000000L) | ||
44 | #include "_ssl_data_300.h" | ||
45 | #elif (OPENSSL_VERSION_NUMBER >= 0x10101000L) | ||
46 | diff --git a/Modules/_ssl_data_111.h b/Modules/_ssl_data_111.h | ||
47 | index 093c786e6a2..061fac2bd58 100644 | ||
48 | --- a/Modules/_ssl_data_111.h | ||
49 | +++ b/Modules/_ssl_data_111.h | ||
50 | @@ -1,4 +1,6 @@ | ||
51 | -/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T02:58:04.081473 */ | ||
52 | +/* File generated by Tools/ssl/make_ssl_data.py */ | ||
53 | +/* Generated on 2024-11-27T12:48:46.194048+00:00 */ | ||
54 | +/* Generated from Git commit OpenSSL_1_1_1w-0-ge04bd3433f */ | ||
55 | static struct py_ssl_library_code library_codes[] = { | ||
56 | #ifdef ERR_LIB_ASN1 | ||
57 | {"ASN1", ERR_LIB_ASN1}, | ||
58 | diff --git a/Modules/_ssl_data_300.h b/Modules/_ssl_data_300.h | ||
59 | index dc66731f6b6..b687ce43c77 100644 | ||
60 | --- a/Modules/_ssl_data_300.h | ||
61 | +++ b/Modules/_ssl_data_300.h | ||
62 | @@ -1,4 +1,7 @@ | ||
63 | -/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:03:52.163218 */ | ||
64 | +/* File generated by Tools/ssl/make_ssl_data.py */ | ||
65 | +/* Generated on 2023-06-01T03:03:52.163218 */ | ||
66 | +/* Manually edited to add definitions from 1.1.1 (GH-105174) */ | ||
67 | + | ||
68 | static struct py_ssl_library_code library_codes[] = { | ||
69 | #ifdef ERR_LIB_ASN1 | ||
70 | {"ASN1", ERR_LIB_ASN1}, | ||
71 | diff --git a/Modules/_ssl_data_31.h b/Modules/_ssl_data_34.h | ||
72 | similarity index 92% | ||
73 | rename from Modules/_ssl_data_31.h | ||
74 | rename to Modules/_ssl_data_34.h | ||
75 | index c589c501f4e..d4af3e1c1fa 100644 | ||
76 | --- a/Modules/_ssl_data_31.h | ||
77 | +++ b/Modules/_ssl_data_34.h | ||
78 | @@ -1,4 +1,6 @@ | ||
79 | -/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:04:00.275280 */ | ||
80 | +/* File generated by Tools/ssl/make_ssl_data.py */ | ||
81 | +/* Generated on 2024-11-27T12:35:52.276767+00:00 */ | ||
82 | +/* Generated from Git commit openssl-3.4.0-0-g98acb6b028 */ | ||
83 | static struct py_ssl_library_code library_codes[] = { | ||
84 | #ifdef ERR_LIB_ASN1 | ||
85 | {"ASN1", ERR_LIB_ASN1}, | ||
86 | @@ -300,6 +302,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
87 | #else | ||
88 | {"FIRST_NUM_TOO_LARGE", 13, 122}, | ||
89 | #endif | ||
90 | + #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT | ||
91 | + {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, | ||
92 | + #else | ||
93 | + {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, | ||
94 | + #endif | ||
95 | #ifdef ASN1_R_HEADER_TOO_LONG | ||
96 | {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, | ||
97 | #else | ||
98 | @@ -730,6 +737,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
99 | #else | ||
100 | {"UNSUPPORTED_TYPE", 13, 196}, | ||
101 | #endif | ||
102 | + #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT | ||
103 | + {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, | ||
104 | + #else | ||
105 | + {"UTCTIME_IS_TOO_SHORT", 13, 233}, | ||
106 | + #endif | ||
107 | #ifdef ASN1_R_WRONG_INTEGER_TYPE | ||
108 | {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, | ||
109 | #else | ||
110 | @@ -845,6 +857,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
111 | #else | ||
112 | {"LISTEN_V6_ONLY", 32, 136}, | ||
113 | #endif | ||
114 | + #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE | ||
115 | + {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, | ||
116 | + #else | ||
117 | + {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, | ||
118 | + #endif | ||
119 | #ifdef BIO_R_LOOKUP_RETURNED_NOTHING | ||
120 | {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, | ||
121 | #else | ||
122 | @@ -860,6 +877,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
123 | #else | ||
124 | {"NBIO_CONNECT_ERROR", 32, 110}, | ||
125 | #endif | ||
126 | + #ifdef BIO_R_NON_FATAL | ||
127 | + {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, | ||
128 | + #else | ||
129 | + {"NON_FATAL", 32, 112}, | ||
130 | + #endif | ||
131 | #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED | ||
132 | {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, | ||
133 | #else | ||
134 | @@ -880,6 +902,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
135 | #else | ||
136 | {"NO_SUCH_FILE", 32, 128}, | ||
137 | #endif | ||
138 | + #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE | ||
139 | + {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, | ||
140 | + #else | ||
141 | + {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, | ||
142 | + #endif | ||
143 | + #ifdef BIO_R_PORT_MISMATCH | ||
144 | + {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, | ||
145 | + #else | ||
146 | + {"PORT_MISMATCH", 32, 150}, | ||
147 | + #endif | ||
148 | + #ifdef BIO_R_TFO_DISABLED | ||
149 | + {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, | ||
150 | + #else | ||
151 | + {"TFO_DISABLED", 32, 106}, | ||
152 | + #endif | ||
153 | + #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT | ||
154 | + {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, | ||
155 | + #else | ||
156 | + {"TFO_NO_KERNEL_SUPPORT", 32, 108}, | ||
157 | + #endif | ||
158 | #ifdef BIO_R_TRANSFER_ERROR | ||
159 | {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, | ||
160 | #else | ||
161 | @@ -920,6 +962,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
162 | #else | ||
163 | {"UNABLE_TO_REUSEADDR", 32, 139}, | ||
164 | #endif | ||
165 | + #ifdef BIO_R_UNABLE_TO_TFO | ||
166 | + {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, | ||
167 | + #else | ||
168 | + {"UNABLE_TO_TFO", 32, 109}, | ||
169 | + #endif | ||
170 | #ifdef BIO_R_UNAVAILABLE_IP_FAMILY | ||
171 | {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, | ||
172 | #else | ||
173 | @@ -1230,6 +1277,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
174 | #else | ||
175 | {"ERROR_VALIDATING_SIGNATURE", 58, 171}, | ||
176 | #endif | ||
177 | + #ifdef CMP_R_EXPECTED_POLLREQ | ||
178 | + {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, | ||
179 | + #else | ||
180 | + {"EXPECTED_POLLREQ", 58, 104}, | ||
181 | + #endif | ||
182 | #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN | ||
183 | {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, | ||
184 | #else | ||
185 | @@ -1250,16 +1302,51 @@ static struct py_ssl_error_code error_codes[] = { | ||
186 | #else | ||
187 | {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, | ||
188 | #endif | ||
189 | + #ifdef CMP_R_GENERATE_CERTREQTEMPLATE | ||
190 | + {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, | ||
191 | + #else | ||
192 | + {"GENERATE_CERTREQTEMPLATE", 58, 197}, | ||
193 | + #endif | ||
194 | + #ifdef CMP_R_GENERATE_CRLSTATUS | ||
195 | + {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, | ||
196 | + #else | ||
197 | + {"GENERATE_CRLSTATUS", 58, 198}, | ||
198 | + #endif | ||
199 | + #ifdef CMP_R_GETTING_GENP | ||
200 | + {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, | ||
201 | + #else | ||
202 | + {"GETTING_GENP", 58, 192}, | ||
203 | + #endif | ||
204 | + #ifdef CMP_R_GET_ITAV | ||
205 | + {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, | ||
206 | + #else | ||
207 | + {"GET_ITAV", 58, 199}, | ||
208 | + #endif | ||
209 | #ifdef CMP_R_INVALID_ARGS | ||
210 | {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, | ||
211 | #else | ||
212 | {"INVALID_ARGS", 58, 100}, | ||
213 | #endif | ||
214 | + #ifdef CMP_R_INVALID_GENP | ||
215 | + {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, | ||
216 | + #else | ||
217 | + {"INVALID_GENP", 58, 193}, | ||
218 | + #endif | ||
219 | + #ifdef CMP_R_INVALID_KEYSPEC | ||
220 | + {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, | ||
221 | + #else | ||
222 | + {"INVALID_KEYSPEC", 58, 202}, | ||
223 | + #endif | ||
224 | #ifdef CMP_R_INVALID_OPTION | ||
225 | {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, | ||
226 | #else | ||
227 | {"INVALID_OPTION", 58, 174}, | ||
228 | #endif | ||
229 | + #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE | ||
230 | + {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, | ||
231 | + #else | ||
232 | + {"INVALID_ROOTCAKEYUPDATE", 58, 195}, | ||
233 | + #endif | ||
234 | #ifdef CMP_R_MISSING_CERTID | ||
235 | {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, | ||
236 | #else | ||
237 | @@ -1425,6 +1512,21 @@ static struct py_ssl_error_code error_codes[] = { | ||
238 | #else | ||
239 | {"TRANSFER_ERROR", 58, 159}, | ||
240 | #endif | ||
241 | + #ifdef CMP_R_UNCLEAN_CTX | ||
242 | + {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, | ||
243 | + #else | ||
244 | + {"UNCLEAN_CTX", 58, 191}, | ||
245 | + #endif | ||
246 | + #ifdef CMP_R_UNEXPECTED_CERTPROFILE | ||
247 | + {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, | ||
248 | + #else | ||
249 | + {"UNEXPECTED_CERTPROFILE", 58, 196}, | ||
250 | + #endif | ||
251 | + #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST | ||
252 | + {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, | ||
253 | + #else | ||
254 | + {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, | ||
255 | + #endif | ||
256 | #ifdef CMP_R_UNEXPECTED_PKIBODY | ||
257 | {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, | ||
258 | #else | ||
259 | @@ -1435,11 +1537,21 @@ static struct py_ssl_error_code error_codes[] = { | ||
260 | #else | ||
261 | {"UNEXPECTED_PKISTATUS", 58, 185}, | ||
262 | #endif | ||
263 | + #ifdef CMP_R_UNEXPECTED_POLLREQ | ||
264 | + {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, | ||
265 | + #else | ||
266 | + {"UNEXPECTED_POLLREQ", 58, 105}, | ||
267 | + #endif | ||
268 | #ifdef CMP_R_UNEXPECTED_PVNO | ||
269 | {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, | ||
270 | #else | ||
271 | {"UNEXPECTED_PVNO", 58, 153}, | ||
272 | #endif | ||
273 | + #ifdef CMP_R_UNEXPECTED_SENDER | ||
274 | + {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, | ||
275 | + #else | ||
276 | + {"UNEXPECTED_SENDER", 58, 106}, | ||
277 | + #endif | ||
278 | #ifdef CMP_R_UNKNOWN_ALGORITHM_ID | ||
279 | {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, | ||
280 | #else | ||
281 | @@ -1450,6 +1562,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
282 | #else | ||
283 | {"UNKNOWN_CERT_TYPE", 58, 135}, | ||
284 | #endif | ||
285 | + #ifdef CMP_R_UNKNOWN_CRL_ISSUER | ||
286 | + {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, | ||
287 | + #else | ||
288 | + {"UNKNOWN_CRL_ISSUER", 58, 200}, | ||
289 | + #endif | ||
290 | #ifdef CMP_R_UNKNOWN_PKISTATUS | ||
291 | {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, | ||
292 | #else | ||
293 | @@ -1465,6 +1582,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
294 | #else | ||
295 | {"UNSUPPORTED_KEY_TYPE", 58, 137}, | ||
296 | #endif | ||
297 | + #ifdef CMP_R_UNSUPPORTED_PKIBODY | ||
298 | + {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, | ||
299 | + #else | ||
300 | + {"UNSUPPORTED_PKIBODY", 58, 101}, | ||
301 | + #endif | ||
302 | #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC | ||
303 | {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, | ||
304 | #else | ||
305 | @@ -1825,6 +1947,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
306 | #else | ||
307 | {"NO_SIGNERS", 46, 135}, | ||
308 | #endif | ||
309 | + #ifdef CMS_R_OPERATION_UNSUPPORTED | ||
310 | + {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, | ||
311 | + #else | ||
312 | + {"OPERATION_UNSUPPORTED", 46, 182}, | ||
313 | + #endif | ||
314 | #ifdef CMS_R_PEER_KEY_ERROR | ||
315 | {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, | ||
316 | #else | ||
317 | @@ -1960,6 +2087,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
318 | #else | ||
319 | {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, | ||
320 | #endif | ||
321 | + #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM | ||
322 | + {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, | ||
323 | + #else | ||
324 | + {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, | ||
325 | + #endif | ||
326 | #ifdef CMS_R_UNSUPPORTED_TYPE | ||
327 | {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, | ||
328 | #else | ||
329 | @@ -1985,6 +2117,31 @@ static struct py_ssl_error_code error_codes[] = { | ||
330 | #else | ||
331 | {"WRAP_ERROR", 46, 159}, | ||
332 | #endif | ||
333 | + #ifdef COMP_R_BROTLI_DECODE_ERROR | ||
334 | + {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, | ||
335 | + #else | ||
336 | + {"BROTLI_DECODE_ERROR", 41, 102}, | ||
337 | + #endif | ||
338 | + #ifdef COMP_R_BROTLI_DEFLATE_ERROR | ||
339 | + {"BROTLI_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DEFLATE_ERROR}, | ||
340 | + #else | ||
341 | + {"BROTLI_DEFLATE_ERROR", 41, 103}, | ||
342 | + #endif | ||
343 | + #ifdef COMP_R_BROTLI_ENCODE_ERROR | ||
344 | + {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, | ||
345 | + #else | ||
346 | + {"BROTLI_ENCODE_ERROR", 41, 106}, | ||
347 | + #endif | ||
348 | + #ifdef COMP_R_BROTLI_INFLATE_ERROR | ||
349 | + {"BROTLI_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_INFLATE_ERROR}, | ||
350 | + #else | ||
351 | + {"BROTLI_INFLATE_ERROR", 41, 104}, | ||
352 | + #endif | ||
353 | + #ifdef COMP_R_BROTLI_NOT_SUPPORTED | ||
354 | + {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, | ||
355 | + #else | ||
356 | + {"BROTLI_NOT_SUPPORTED", 41, 105}, | ||
357 | + #endif | ||
358 | #ifdef COMP_R_ZLIB_DEFLATE_ERROR | ||
359 | {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, | ||
360 | #else | ||
361 | @@ -2000,6 +2157,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
362 | #else | ||
363 | {"ZLIB_NOT_SUPPORTED", 41, 101}, | ||
364 | #endif | ||
365 | + #ifdef COMP_R_ZSTD_COMPRESS_ERROR | ||
366 | + {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, | ||
367 | + #else | ||
368 | + {"ZSTD_COMPRESS_ERROR", 41, 107}, | ||
369 | + #endif | ||
370 | + #ifdef COMP_R_ZSTD_DECODE_ERROR | ||
371 | + {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, | ||
372 | + #else | ||
373 | + {"ZSTD_DECODE_ERROR", 41, 108}, | ||
374 | + #endif | ||
375 | + #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR | ||
376 | + {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, | ||
377 | + #else | ||
378 | + {"ZSTD_DECOMPRESS_ERROR", 41, 109}, | ||
379 | + #endif | ||
380 | + #ifdef COMP_R_ZSTD_NOT_SUPPORTED | ||
381 | + {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, | ||
382 | + #else | ||
383 | + {"ZSTD_NOT_SUPPORTED", 41, 110}, | ||
384 | + #endif | ||
385 | #ifdef CONF_R_ERROR_LOADING_DSO | ||
386 | {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, | ||
387 | #else | ||
388 | @@ -2085,6 +2262,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
389 | #else | ||
390 | {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, | ||
391 | #endif | ||
392 | + #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE | ||
393 | + {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, | ||
394 | + #else | ||
395 | + {"RECURSIVE_SECTION_REFERENCE", 14, 126}, | ||
396 | + #endif | ||
397 | #ifdef CONF_R_RELATIVE_PATH | ||
398 | {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, | ||
399 | #else | ||
400 | @@ -2370,6 +2552,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
401 | #else | ||
402 | {"TOO_MANY_BYTES", 15, 113}, | ||
403 | #endif | ||
404 | + #ifdef CRYPTO_R_TOO_MANY_NAMES | ||
405 | + {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, | ||
406 | + #else | ||
407 | + {"TOO_MANY_NAMES", 15, 132}, | ||
408 | + #endif | ||
409 | #ifdef CRYPTO_R_TOO_MANY_RECORDS | ||
410 | {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, | ||
411 | #else | ||
412 | @@ -2560,6 +2747,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
413 | #else | ||
414 | {"INVALID_SECRET", 5, 128}, | ||
415 | #endif | ||
416 | + #ifdef DH_R_INVALID_SIZE | ||
417 | + {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, | ||
418 | + #else | ||
419 | + {"INVALID_SIZE", 5, 129}, | ||
420 | + #endif | ||
421 | #ifdef DH_R_KDF_PARAMETER_ERROR | ||
422 | {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, | ||
423 | #else | ||
424 | @@ -2610,6 +2802,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
425 | #else | ||
426 | {"PEER_KEY_ERROR", 5, 111}, | ||
427 | #endif | ||
428 | + #ifdef DH_R_Q_TOO_LARGE | ||
429 | + {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, | ||
430 | + #else | ||
431 | + {"Q_TOO_LARGE", 5, 130}, | ||
432 | + #endif | ||
433 | #ifdef DH_R_SHARED_INFO_ERROR | ||
434 | {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, | ||
435 | #else | ||
436 | @@ -3545,6 +3742,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
437 | #else | ||
438 | {"GENERATE_ERROR", 6, 214}, | ||
439 | #endif | ||
440 | + #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED | ||
441 | + {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, | ||
442 | + #else | ||
443 | + {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, | ||
444 | + #endif | ||
445 | #ifdef EVP_R_GET_RAW_KEY_FAILED | ||
446 | {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, | ||
447 | #else | ||
448 | @@ -3745,6 +3947,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
449 | #else | ||
450 | {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, | ||
451 | #endif | ||
452 | + #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE | ||
453 | + {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, | ||
454 | + #else | ||
455 | + {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, | ||
456 | + #endif | ||
457 | #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW | ||
458 | {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, | ||
459 | #else | ||
460 | @@ -3795,6 +4002,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
461 | #else | ||
462 | {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, | ||
463 | #endif | ||
464 | + #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE | ||
465 | + {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, | ||
466 | + #else | ||
467 | + {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, | ||
468 | + #endif | ||
469 | #ifdef EVP_R_TOO_MANY_RECORDS | ||
470 | {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, | ||
471 | #else | ||
472 | @@ -3825,6 +4037,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
473 | #else | ||
474 | {"UNABLE_TO_SET_CALLBACKS", 6, 217}, | ||
475 | #endif | ||
476 | + #ifdef EVP_R_UNKNOWN_BITS | ||
477 | + {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, | ||
478 | + #else | ||
479 | + {"UNKNOWN_BITS", 6, 166}, | ||
480 | + #endif | ||
481 | #ifdef EVP_R_UNKNOWN_CIPHER | ||
482 | {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, | ||
483 | #else | ||
484 | @@ -3840,6 +4057,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
485 | #else | ||
486 | {"UNKNOWN_KEY_TYPE", 6, 207}, | ||
487 | #endif | ||
488 | + #ifdef EVP_R_UNKNOWN_MAX_SIZE | ||
489 | + {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, | ||
490 | + #else | ||
491 | + {"UNKNOWN_MAX_SIZE", 6, 167}, | ||
492 | + #endif | ||
493 | #ifdef EVP_R_UNKNOWN_OPTION | ||
494 | {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, | ||
495 | #else | ||
496 | @@ -3850,6 +4072,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
497 | #else | ||
498 | {"UNKNOWN_PBE_ALGORITHM", 6, 121}, | ||
499 | #endif | ||
500 | + #ifdef EVP_R_UNKNOWN_SECURITY_BITS | ||
501 | + {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, | ||
502 | + #else | ||
503 | + {"UNKNOWN_SECURITY_BITS", 6, 168}, | ||
504 | + #endif | ||
505 | #ifdef EVP_R_UNSUPPORTED_ALGORITHM | ||
506 | {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, | ||
507 | #else | ||
508 | @@ -4040,6 +4267,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
509 | #else | ||
510 | {"RESPONSE_PARSE_ERROR", 61, 104}, | ||
511 | #endif | ||
512 | + #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES | ||
513 | + {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, | ||
514 | + #else | ||
515 | + {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, | ||
516 | + #endif | ||
517 | #ifdef HTTP_R_RETRY_TIMEOUT | ||
518 | {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, | ||
519 | #else | ||
520 | @@ -4530,6 +4762,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
521 | #else | ||
522 | {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, | ||
523 | #endif | ||
524 | + #ifdef PKCS12_R_CALLBACK_FAILED | ||
525 | + {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, | ||
526 | + #else | ||
527 | + {"CALLBACK_FAILED", 35, 115}, | ||
528 | + #endif | ||
529 | #ifdef PKCS12_R_CANT_PACK_STRUCTURE | ||
530 | {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, | ||
531 | #else | ||
532 | @@ -4920,6 +5157,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
533 | #else | ||
534 | {"CIPHER_OPERATION_FAILED", 57, 102}, | ||
535 | #endif | ||
536 | + #ifdef PROV_R_COFACTOR_REQUIRED | ||
537 | + {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, | ||
538 | + #else | ||
539 | + {"COFACTOR_REQUIRED", 57, 236}, | ||
540 | + #endif | ||
541 | #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED | ||
542 | {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, | ||
543 | #else | ||
544 | @@ -4935,6 +5177,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
545 | #else | ||
546 | {"EMS_NOT_ENABLED", 57, 233}, | ||
547 | #endif | ||
548 | + #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS | ||
549 | + {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, | ||
550 | + #else | ||
551 | + {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, | ||
552 | + #endif | ||
553 | #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK | ||
554 | {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, | ||
555 | #else | ||
556 | @@ -4990,6 +5237,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
557 | #else | ||
558 | {"FAILED_TO_SIGN", 57, 175}, | ||
559 | #endif | ||
560 | + #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER | ||
561 | + {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, | ||
562 | + #else | ||
563 | + {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, | ||
564 | + #endif | ||
565 | #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR | ||
566 | {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, | ||
567 | #else | ||
568 | @@ -5020,6 +5272,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
569 | #else | ||
570 | {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, | ||
571 | #endif | ||
572 | + #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER | ||
573 | + {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, | ||
574 | + #else | ||
575 | + {"INIT_CALL_OUT_OF_ORDER", 57, 238}, | ||
576 | + #endif | ||
577 | #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH | ||
578 | {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, | ||
579 | #else | ||
580 | @@ -5030,6 +5287,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
581 | #else | ||
582 | {"INVALID_AAD", 57, 108}, | ||
583 | #endif | ||
584 | + #ifdef PROV_R_INVALID_AEAD | ||
585 | + {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, | ||
586 | + #else | ||
587 | + {"INVALID_AEAD", 57, 231}, | ||
588 | + #endif | ||
589 | #ifdef PROV_R_INVALID_CONFIG_DATA | ||
590 | {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, | ||
591 | #else | ||
592 | @@ -5070,6 +5332,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
593 | #else | ||
594 | {"INVALID_DIGEST_SIZE", 57, 218}, | ||
595 | #endif | ||
596 | + #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION | ||
597 | + {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, | ||
598 | + #else | ||
599 | + {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, | ||
600 | + #endif | ||
601 | #ifdef PROV_R_INVALID_INPUT_LENGTH | ||
602 | {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, | ||
603 | #else | ||
604 | @@ -5085,6 +5352,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
605 | #else | ||
606 | {"INVALID_IV_LENGTH", 57, 109}, | ||
607 | #endif | ||
608 | + #ifdef PROV_R_INVALID_KDF | ||
609 | + {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, | ||
610 | + #else | ||
611 | + {"INVALID_KDF", 57, 232}, | ||
612 | + #endif | ||
613 | #ifdef PROV_R_INVALID_KEY | ||
614 | {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, | ||
615 | #else | ||
616 | @@ -5100,6 +5372,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
617 | #else | ||
618 | {"INVALID_MAC", 57, 151}, | ||
619 | #endif | ||
620 | + #ifdef PROV_R_INVALID_MEMORY_SIZE | ||
621 | + {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, | ||
622 | + #else | ||
623 | + {"INVALID_MEMORY_SIZE", 57, 235}, | ||
624 | + #endif | ||
625 | #ifdef PROV_R_INVALID_MGF1_MD | ||
626 | {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, | ||
627 | #else | ||
628 | @@ -5120,6 +5397,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
629 | #else | ||
630 | {"INVALID_PADDING_MODE", 57, 168}, | ||
631 | #endif | ||
632 | + #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH | ||
633 | + {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, | ||
634 | + #else | ||
635 | + {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, | ||
636 | + #endif | ||
637 | #ifdef PROV_R_INVALID_PUBINFO | ||
638 | {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, | ||
639 | #else | ||
640 | @@ -5155,6 +5437,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
641 | #else | ||
642 | {"INVALID_TAG_LENGTH", 57, 118}, | ||
643 | #endif | ||
644 | + #ifdef PROV_R_INVALID_THREAD_POOL_SIZE | ||
645 | + {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, | ||
646 | + #else | ||
647 | + {"INVALID_THREAD_POOL_SIZE", 57, 234}, | ||
648 | + #endif | ||
649 | #ifdef PROV_R_INVALID_UKM_LENGTH | ||
650 | {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, | ||
651 | #else | ||
652 | @@ -5300,6 +5587,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
653 | #else | ||
654 | {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, | ||
655 | #endif | ||
656 | + #ifdef PROV_R_NO_INSTANCE_ALLOWED | ||
657 | + {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, | ||
658 | + #else | ||
659 | + {"NO_INSTANCE_ALLOWED", 57, 242}, | ||
660 | + #endif | ||
661 | #ifdef PROV_R_NO_KEY_SET | ||
662 | {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, | ||
663 | #else | ||
664 | @@ -5310,6 +5602,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
665 | #else | ||
666 | {"NO_PARAMETERS_SET", 57, 177}, | ||
667 | #endif | ||
668 | + #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER | ||
669 | + {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, | ||
670 | + #else | ||
671 | + {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, | ||
672 | + #endif | ||
673 | #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE | ||
674 | {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, | ||
675 | #else | ||
676 | @@ -5460,6 +5757,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
677 | #else | ||
678 | {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, | ||
679 | #endif | ||
680 | + #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER | ||
681 | + {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, | ||
682 | + #else | ||
683 | + {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, | ||
684 | + #endif | ||
685 | #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED | ||
686 | {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, | ||
687 | #else | ||
688 | @@ -5595,6 +5897,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
689 | #else | ||
690 | {"INTERNAL_ERROR", 36, 113}, | ||
691 | #endif | ||
692 | + #ifdef RAND_R_INVALID_PROPERTY_QUERY | ||
693 | + {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, | ||
694 | + #else | ||
695 | + {"INVALID_PROPERTY_QUERY", 36, 137}, | ||
696 | + #endif | ||
697 | #ifdef RAND_R_IN_ERROR_STATE | ||
698 | {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, | ||
699 | #else | ||
700 | @@ -6210,6 +6517,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
701 | #else | ||
702 | {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, | ||
703 | #endif | ||
704 | + #ifdef SSL_R_BAD_CERTIFICATE | ||
705 | + {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, | ||
706 | + #else | ||
707 | + {"BAD_CERTIFICATE", 20, 348}, | ||
708 | + #endif | ||
709 | #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC | ||
710 | {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, | ||
711 | #else | ||
712 | @@ -6220,6 +6532,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
713 | #else | ||
714 | {"BAD_CIPHER", 20, 186}, | ||
715 | #endif | ||
716 | + #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM | ||
717 | + {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, | ||
718 | + #else | ||
719 | + {"BAD_COMPRESSION_ALGORITHM", 20, 326}, | ||
720 | + #endif | ||
721 | #ifdef SSL_R_BAD_DATA | ||
722 | {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, | ||
723 | #else | ||
724 | @@ -6495,6 +6812,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
725 | #else | ||
726 | {"CONNECTION_TYPE_NOT_SET", 20, 144}, | ||
727 | #endif | ||
728 | + #ifdef SSL_R_CONN_USE_ONLY | ||
729 | + {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, | ||
730 | + #else | ||
731 | + {"CONN_USE_ONLY", 20, 356}, | ||
732 | + #endif | ||
733 | #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED | ||
734 | {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, | ||
735 | #else | ||
736 | @@ -6635,6 +6957,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
737 | #else | ||
738 | {"EE_KEY_TOO_SMALL", 20, 399}, | ||
739 | #endif | ||
740 | + #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY | ||
741 | + {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, | ||
742 | + #else | ||
743 | + {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, | ||
744 | + #endif | ||
745 | #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST | ||
746 | {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, | ||
747 | #else | ||
748 | @@ -6650,6 +6977,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
749 | #else | ||
750 | {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, | ||
751 | #endif | ||
752 | + #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG | ||
753 | + {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, | ||
754 | + #else | ||
755 | + {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, | ||
756 | + #endif | ||
757 | #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN | ||
758 | {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, | ||
759 | #else | ||
760 | @@ -6680,11 +7012,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
761 | #else | ||
762 | {"EXT_LENGTH_MISMATCH", 20, 163}, | ||
763 | #endif | ||
764 | + #ifdef SSL_R_FAILED_TO_GET_PARAMETER | ||
765 | + {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, | ||
766 | + #else | ||
767 | + {"FAILED_TO_GET_PARAMETER", 20, 316}, | ||
768 | + #endif | ||
769 | #ifdef SSL_R_FAILED_TO_INIT_ASYNC | ||
770 | {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, | ||
771 | #else | ||
772 | {"FAILED_TO_INIT_ASYNC", 20, 405}, | ||
773 | #endif | ||
774 | + #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE | ||
775 | + {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, | ||
776 | + #else | ||
777 | + {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, | ||
778 | + #endif | ||
779 | + #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE | ||
780 | + {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, | ||
781 | + #else | ||
782 | + {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, | ||
783 | + #endif | ||
784 | #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO | ||
785 | {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, | ||
786 | #else | ||
787 | @@ -6805,6 +7152,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
788 | #else | ||
789 | {"INVALID_NULL_CMD_NAME", 20, 385}, | ||
790 | #endif | ||
791 | + #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY | ||
792 | + {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, | ||
793 | + #else | ||
794 | + {"INVALID_RAW_PUBLIC_KEY", 20, 350}, | ||
795 | + #endif | ||
796 | + #ifdef SSL_R_INVALID_RECORD | ||
797 | + {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, | ||
798 | + #else | ||
799 | + {"INVALID_RECORD", 20, 317}, | ||
800 | + #endif | ||
801 | #ifdef SSL_R_INVALID_SEQUENCE_NUMBER | ||
802 | {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, | ||
803 | #else | ||
804 | @@ -6865,6 +7222,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
805 | #else | ||
806 | {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, | ||
807 | #endif | ||
808 | + #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED | ||
809 | + {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, | ||
810 | + #else | ||
811 | + {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, | ||
812 | + #endif | ||
813 | #ifdef SSL_R_MISSING_DSA_SIGNING_CERT | ||
814 | {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, | ||
815 | #else | ||
816 | @@ -6925,6 +7287,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
817 | #else | ||
818 | {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, | ||
819 | #endif | ||
820 | + #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION | ||
821 | + {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, | ||
822 | + #else | ||
823 | + {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, | ||
824 | + #endif | ||
825 | #ifdef SSL_R_MISSING_TMP_DH_KEY | ||
826 | {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, | ||
827 | #else | ||
828 | @@ -7065,6 +7432,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
829 | #else | ||
830 | {"NO_SRTP_PROFILES", 20, 359}, | ||
831 | #endif | ||
832 | + #ifdef SSL_R_NO_STREAM | ||
833 | + {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, | ||
834 | + #else | ||
835 | + {"NO_STREAM", 20, 355}, | ||
836 | + #endif | ||
837 | #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM | ||
838 | {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, | ||
839 | #else | ||
840 | @@ -7080,6 +7452,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
841 | #else | ||
842 | {"NO_SUITABLE_KEY_SHARE", 20, 101}, | ||
843 | #endif | ||
844 | + #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER | ||
845 | + {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, | ||
846 | + #else | ||
847 | + {"NO_SUITABLE_RECORD_LAYER", 20, 322}, | ||
848 | + #endif | ||
849 | #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM | ||
850 | {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, | ||
851 | #else | ||
852 | @@ -7160,6 +7537,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
853 | #else | ||
854 | {"PIPELINE_FAILURE", 20, 406}, | ||
855 | #endif | ||
856 | + #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED | ||
857 | + {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, | ||
858 | + #else | ||
859 | + {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, | ||
860 | + #endif | ||
861 | #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR | ||
862 | {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, | ||
863 | #else | ||
864 | @@ -7190,6 +7572,21 @@ static struct py_ssl_error_code error_codes[] = { | ||
865 | #else | ||
866 | {"PSK_NO_SERVER_CB", 20, 225}, | ||
867 | #endif | ||
868 | + #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR | ||
869 | + {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, | ||
870 | + #else | ||
871 | + {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, | ||
872 | + #endif | ||
873 | + #ifdef SSL_R_QUIC_NETWORK_ERROR | ||
874 | + {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, | ||
875 | + #else | ||
876 | + {"QUIC_NETWORK_ERROR", 20, 387}, | ||
877 | + #endif | ||
878 | + #ifdef SSL_R_QUIC_PROTOCOL_ERROR | ||
879 | + {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, | ||
880 | + #else | ||
881 | + {"QUIC_PROTOCOL_ERROR", 20, 382}, | ||
882 | + #endif | ||
883 | #ifdef SSL_R_READ_BIO_NOT_SET | ||
884 | {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, | ||
885 | #else | ||
886 | @@ -7200,6 +7597,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
887 | #else | ||
888 | {"READ_TIMEOUT_EXPIRED", 20, 312}, | ||
889 | #endif | ||
890 | + #ifdef SSL_R_RECORDS_NOT_RELEASED | ||
891 | + {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, | ||
892 | + #else | ||
893 | + {"RECORDS_NOT_RELEASED", 20, 321}, | ||
894 | + #endif | ||
895 | + #ifdef SSL_R_RECORD_LAYER_FAILURE | ||
896 | + {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, | ||
897 | + #else | ||
898 | + {"RECORD_LAYER_FAILURE", 20, 313}, | ||
899 | + #endif | ||
900 | #ifdef SSL_R_RECORD_LENGTH_MISMATCH | ||
901 | {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, | ||
902 | #else | ||
903 | @@ -7210,6 +7617,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
904 | #else | ||
905 | {"RECORD_TOO_SMALL", 20, 298}, | ||
906 | #endif | ||
907 | + #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET | ||
908 | + {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, | ||
909 | + #else | ||
910 | + {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, | ||
911 | + #endif | ||
912 | #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG | ||
913 | {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, | ||
914 | #else | ||
915 | @@ -7255,6 +7667,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
916 | #else | ||
917 | {"SCT_VERIFICATION_FAILED", 20, 208}, | ||
918 | #endif | ||
919 | + #ifdef SSL_R_SEQUENCE_CTR_WRAPPED | ||
920 | + {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, | ||
921 | + #else | ||
922 | + {"SEQUENCE_CTR_WRAPPED", 20, 327}, | ||
923 | + #endif | ||
924 | #ifdef SSL_R_SERVERHELLO_TLSEXT | ||
925 | {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, | ||
926 | #else | ||
927 | @@ -7325,6 +7742,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
928 | #else | ||
929 | {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042}, | ||
930 | #endif | ||
931 | + #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE | ||
932 | + {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE}, | ||
933 | + #else | ||
934 | + {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042}, | ||
935 | + #endif | ||
936 | + #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC | ||
937 | + {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC}, | ||
938 | + #else | ||
939 | + {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020}, | ||
940 | + #endif | ||
941 | #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC | ||
942 | {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC}, | ||
943 | #else | ||
944 | @@ -7335,11 +7762,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
945 | #else | ||
946 | {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, | ||
947 | #endif | ||
948 | + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED | ||
949 | + {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED}, | ||
950 | + #else | ||
951 | + {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, | ||
952 | + #endif | ||
953 | #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED | ||
954 | {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED}, | ||
955 | #else | ||
956 | {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044}, | ||
957 | #endif | ||
958 | + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED | ||
959 | + {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED}, | ||
960 | + #else | ||
961 | + {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044}, | ||
962 | + #endif | ||
963 | + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN | ||
964 | + {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN}, | ||
965 | + #else | ||
966 | + {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, | ||
967 | + #endif | ||
968 | #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN | ||
969 | {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN}, | ||
970 | #else | ||
971 | @@ -7350,6 +7792,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
972 | #else | ||
973 | {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, | ||
974 | #endif | ||
975 | + #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE | ||
976 | + {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE}, | ||
977 | + #else | ||
978 | + {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, | ||
979 | + #endif | ||
980 | + #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE | ||
981 | + {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE}, | ||
982 | + #else | ||
983 | + {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040}, | ||
984 | + #endif | ||
985 | #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE | ||
986 | {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE}, | ||
987 | #else | ||
988 | @@ -7360,11 +7812,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
989 | #else | ||
990 | {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047}, | ||
991 | #endif | ||
992 | + #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER | ||
993 | + {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER}, | ||
994 | + #else | ||
995 | + {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047}, | ||
996 | + #endif | ||
997 | #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE | ||
998 | {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE}, | ||
999 | #else | ||
1000 | {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041}, | ||
1001 | #endif | ||
1002 | + #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE | ||
1003 | + {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE}, | ||
1004 | + #else | ||
1005 | + {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041}, | ||
1006 | + #endif | ||
1007 | + #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE | ||
1008 | + {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE}, | ||
1009 | + #else | ||
1010 | + {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, | ||
1011 | + #endif | ||
1012 | #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE | ||
1013 | {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE}, | ||
1014 | #else | ||
1015 | @@ -7375,6 +7842,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1016 | #else | ||
1017 | {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, | ||
1018 | #endif | ||
1019 | + #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE | ||
1020 | + {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE}, | ||
1021 | + #else | ||
1022 | + {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, | ||
1023 | + #endif | ||
1024 | #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY | ||
1025 | {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, | ||
1026 | #else | ||
1027 | @@ -7450,6 +7922,36 @@ static struct py_ssl_error_code error_codes[] = { | ||
1028 | #else | ||
1029 | {"STILL_IN_INIT", 20, 121}, | ||
1030 | #endif | ||
1031 | + #ifdef SSL_R_STREAM_COUNT_LIMITED | ||
1032 | + {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, | ||
1033 | + #else | ||
1034 | + {"STREAM_COUNT_LIMITED", 20, 411}, | ||
1035 | + #endif | ||
1036 | + #ifdef SSL_R_STREAM_FINISHED | ||
1037 | + {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, | ||
1038 | + #else | ||
1039 | + {"STREAM_FINISHED", 20, 365}, | ||
1040 | + #endif | ||
1041 | + #ifdef SSL_R_STREAM_RECV_ONLY | ||
1042 | + {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, | ||
1043 | + #else | ||
1044 | + {"STREAM_RECV_ONLY", 20, 366}, | ||
1045 | + #endif | ||
1046 | + #ifdef SSL_R_STREAM_RESET | ||
1047 | + {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, | ||
1048 | + #else | ||
1049 | + {"STREAM_RESET", 20, 375}, | ||
1050 | + #endif | ||
1051 | + #ifdef SSL_R_STREAM_SEND_ONLY | ||
1052 | + {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, | ||
1053 | + #else | ||
1054 | + {"STREAM_SEND_ONLY", 20, 379}, | ||
1055 | + #endif | ||
1056 | + #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED | ||
1057 | + {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, | ||
1058 | + #else | ||
1059 | + {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, | ||
1060 | + #endif | ||
1061 | #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED | ||
1062 | {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, | ||
1063 | #else | ||
1064 | @@ -7460,6 +7962,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1065 | #else | ||
1066 | {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, | ||
1067 | #endif | ||
1068 | + #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION | ||
1069 | + {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, | ||
1070 | + #else | ||
1071 | + {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, | ||
1072 | + #endif | ||
1073 | + #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED | ||
1074 | + {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, | ||
1075 | + #else | ||
1076 | + {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, | ||
1077 | + #endif | ||
1078 | #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED | ||
1079 | {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, | ||
1080 | #else | ||
1081 | @@ -7470,6 +7982,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1082 | #else | ||
1083 | {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, | ||
1084 | #endif | ||
1085 | + #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR | ||
1086 | + {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, | ||
1087 | + #else | ||
1088 | + {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, | ||
1089 | + #endif | ||
1090 | + #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED | ||
1091 | + {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, | ||
1092 | + #else | ||
1093 | + {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, | ||
1094 | + #endif | ||
1095 | #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED | ||
1096 | {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, | ||
1097 | #else | ||
1098 | @@ -7480,6 +8002,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1099 | #else | ||
1100 | {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, | ||
1101 | #endif | ||
1102 | + #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR | ||
1103 | + {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, | ||
1104 | + #else | ||
1105 | + {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, | ||
1106 | + #endif | ||
1107 | + #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION | ||
1108 | + {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, | ||
1109 | + #else | ||
1110 | + {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, | ||
1111 | + #endif | ||
1112 | #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION | ||
1113 | {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, | ||
1114 | #else | ||
1115 | @@ -7490,6 +8022,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1116 | #else | ||
1117 | {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, | ||
1118 | #endif | ||
1119 | + #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK | ||
1120 | + {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, | ||
1121 | + #else | ||
1122 | + {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, | ||
1123 | + #endif | ||
1124 | + #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY | ||
1125 | + {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, | ||
1126 | + #else | ||
1127 | + {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, | ||
1128 | + #endif | ||
1129 | #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY | ||
1130 | {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, | ||
1131 | #else | ||
1132 | @@ -7500,6 +8042,26 @@ static struct py_ssl_error_code error_codes[] = { | ||
1133 | #else | ||
1134 | {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, | ||
1135 | #endif | ||
1136 | + #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR | ||
1137 | + {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, | ||
1138 | + #else | ||
1139 | + {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, | ||
1140 | + #endif | ||
1141 | + #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL | ||
1142 | + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, | ||
1143 | + #else | ||
1144 | + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, | ||
1145 | + #endif | ||
1146 | + #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL | ||
1147 | + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, | ||
1148 | + #else | ||
1149 | + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, | ||
1150 | + #endif | ||
1151 | + #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION | ||
1152 | + {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, | ||
1153 | + #else | ||
1154 | + {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, | ||
1155 | + #endif | ||
1156 | #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION | ||
1157 | {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, | ||
1158 | #else | ||
1159 | @@ -7510,21 +8072,56 @@ static struct py_ssl_error_code error_codes[] = { | ||
1160 | #else | ||
1161 | {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, | ||
1162 | #endif | ||
1163 | + #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION | ||
1164 | + {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, | ||
1165 | + #else | ||
1166 | + {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, | ||
1167 | + #endif | ||
1168 | #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW | ||
1169 | {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, | ||
1170 | #else | ||
1171 | {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, | ||
1172 | #endif | ||
1173 | + #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW | ||
1174 | + {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, | ||
1175 | + #else | ||
1176 | + {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, | ||
1177 | + #endif | ||
1178 | + #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA | ||
1179 | + {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, | ||
1180 | + #else | ||
1181 | + {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, | ||
1182 | + #endif | ||
1183 | #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA | ||
1184 | {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, | ||
1185 | #else | ||
1186 | {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, | ||
1187 | #endif | ||
1188 | + #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY | ||
1189 | + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, | ||
1190 | + #else | ||
1191 | + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, | ||
1192 | + #endif | ||
1193 | + #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY | ||
1194 | + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, | ||
1195 | + #else | ||
1196 | + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, | ||
1197 | + #endif | ||
1198 | #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED | ||
1199 | {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, | ||
1200 | #else | ||
1201 | {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, | ||
1202 | #endif | ||
1203 | + #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED | ||
1204 | + {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, | ||
1205 | + #else | ||
1206 | + {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, | ||
1207 | + #endif | ||
1208 | + #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE | ||
1209 | + {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, | ||
1210 | + #else | ||
1211 | + {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, | ||
1212 | + #endif | ||
1213 | #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE | ||
1214 | {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, | ||
1215 | #else | ||
1216 | @@ -7535,6 +8132,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1217 | #else | ||
1218 | {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, | ||
1219 | #endif | ||
1220 | + #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE | ||
1221 | + {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, | ||
1222 | + #else | ||
1223 | + {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, | ||
1224 | + #endif | ||
1225 | + #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE | ||
1226 | + {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, | ||
1227 | + #else | ||
1228 | + {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, | ||
1229 | + #endif | ||
1230 | #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE | ||
1231 | {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, | ||
1232 | #else | ||
1233 | @@ -7545,6 +8152,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1234 | #else | ||
1235 | {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, | ||
1236 | #endif | ||
1237 | + #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME | ||
1238 | + {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, | ||
1239 | + #else | ||
1240 | + {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, | ||
1241 | + #endif | ||
1242 | + #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION | ||
1243 | + {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, | ||
1244 | + #else | ||
1245 | + {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, | ||
1246 | + #endif | ||
1247 | #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION | ||
1248 | {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, | ||
1249 | #else | ||
1250 | @@ -7665,6 +8282,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1251 | #else | ||
1252 | {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, | ||
1253 | #endif | ||
1254 | + #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER | ||
1255 | + {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, | ||
1256 | + #else | ||
1257 | + {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, | ||
1258 | + #endif | ||
1259 | #ifdef SSL_R_UNKNOWN_PKEY_TYPE | ||
1260 | {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, | ||
1261 | #else | ||
1262 | @@ -7700,6 +8322,21 @@ static struct py_ssl_error_code error_codes[] = { | ||
1263 | #else | ||
1264 | {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, | ||
1265 | #endif | ||
1266 | + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE | ||
1267 | + {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, | ||
1268 | + #else | ||
1269 | + {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, | ||
1270 | + #endif | ||
1271 | + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS | ||
1272 | + {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, | ||
1273 | + #else | ||
1274 | + {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, | ||
1275 | + #endif | ||
1276 | + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP | ||
1277 | + {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, | ||
1278 | + #else | ||
1279 | + {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, | ||
1280 | + #endif | ||
1281 | #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE | ||
1282 | {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, | ||
1283 | #else | ||
1284 | @@ -7720,6 +8357,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1285 | #else | ||
1286 | {"UNSUPPORTED_STATUS_TYPE", 20, 329}, | ||
1287 | #endif | ||
1288 | + #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG | ||
1289 | + {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, | ||
1290 | + #else | ||
1291 | + {"UNSUPPORTED_WRITE_FLAG", 20, 412}, | ||
1292 | + #endif | ||
1293 | #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED | ||
1294 | {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, | ||
1295 | #else | ||
1296 | @@ -7750,6 +8392,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1297 | #else | ||
1298 | {"WRONG_CURVE", 20, 378}, | ||
1299 | #endif | ||
1300 | + #ifdef SSL_R_WRONG_RPK_TYPE | ||
1301 | + {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, | ||
1302 | + #else | ||
1303 | + {"WRONG_RPK_TYPE", 20, 351}, | ||
1304 | + #endif | ||
1305 | #ifdef SSL_R_WRONG_SIGNATURE_LENGTH | ||
1306 | {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, | ||
1307 | #else | ||
1308 | @@ -8055,6 +8702,16 @@ static struct py_ssl_error_code error_codes[] = { | ||
1309 | #else | ||
1310 | {"BAD_OBJECT", 34, 119}, | ||
1311 | #endif | ||
1312 | + #ifdef X509V3_R_BAD_OPTION | ||
1313 | + {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, | ||
1314 | + #else | ||
1315 | + {"BAD_OPTION", 34, 170}, | ||
1316 | + #endif | ||
1317 | + #ifdef X509V3_R_BAD_VALUE | ||
1318 | + {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, | ||
1319 | + #else | ||
1320 | + {"BAD_VALUE", 34, 171}, | ||
1321 | + #endif | ||
1322 | #ifdef X509V3_R_BN_DEC2BN_ERROR | ||
1323 | {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, | ||
1324 | #else | ||
1325 | @@ -8370,6 +9027,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1326 | #else | ||
1327 | {"UNKNOWN_OPTION", 34, 120}, | ||
1328 | #endif | ||
1329 | + #ifdef X509V3_R_UNKNOWN_VALUE | ||
1330 | + {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, | ||
1331 | + #else | ||
1332 | + {"UNKNOWN_VALUE", 34, 172}, | ||
1333 | + #endif | ||
1334 | #ifdef X509V3_R_UNSUPPORTED_OPTION | ||
1335 | {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, | ||
1336 | #else | ||
1337 | @@ -8430,6 +9092,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1338 | #else | ||
1339 | {"CRL_VERIFY_FAILURE", 11, 131}, | ||
1340 | #endif | ||
1341 | + #ifdef X509_R_DUPLICATE_ATTRIBUTE | ||
1342 | + {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, | ||
1343 | + #else | ||
1344 | + {"DUPLICATE_ATTRIBUTE", 11, 140}, | ||
1345 | + #endif | ||
1346 | #ifdef X509_R_ERROR_GETTING_MD_BY_NID | ||
1347 | {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, | ||
1348 | #else | ||
1349 | @@ -8590,6 +9257,11 @@ static struct py_ssl_error_code error_codes[] = { | ||
1350 | #else | ||
1351 | {"UNSUPPORTED_ALGORITHM", 11, 111}, | ||
1352 | #endif | ||
1353 | + #ifdef X509_R_UNSUPPORTED_VERSION | ||
1354 | + {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, | ||
1355 | + #else | ||
1356 | + {"UNSUPPORTED_VERSION", 11, 145}, | ||
1357 | + #endif | ||
1358 | #ifdef X509_R_WRONG_LOOKUP_TYPE | ||
1359 | {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, | ||
1360 | #else | ||
1361 | diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py | ||
1362 | index 21be53e7884..a08b32fa45d 100644 | ||
1363 | --- a/Tools/c-analyzer/cpython/_parser.py | ||
1364 | +++ b/Tools/c-analyzer/cpython/_parser.py | ||
1365 | @@ -70,9 +70,7 @@ Python/thread_pthread.h | ||
1366 | Python/thread_pthread_stubs.h | ||
1367 | |||
1368 | # only huge constants (safe but parsing is slow) | ||
1369 | -Modules/_ssl_data_31.h | ||
1370 | -Modules/_ssl_data_300.h | ||
1371 | -Modules/_ssl_data_111.h | ||
1372 | +Modules/_ssl_data_*.h | ||
1373 | Modules/cjkcodecs/mappings_*.h | ||
1374 | Modules/unicodedata_db.h | ||
1375 | Modules/unicodename_db.h | ||
1376 | diff --git a/Tools/ssl/make_ssl_data.py b/Tools/ssl/make_ssl_data.py | ||
1377 | index 9860871..0cd05c7 100755 | ||
1378 | --- a/Tools/ssl/make_ssl_data.py | ||
1379 | +++ b/Tools/ssl/make_ssl_data.py | ||
1380 | @@ -5,9 +5,28 @@ This script should be called *manually* when we want to upgrade SSLError | ||
1381 | `library` and `reason` mnemonics to a more recent OpenSSL version. | ||
1382 | |||
1383 | It takes two arguments: | ||
1384 | -- the path to the OpenSSL source tree (e.g. git checkout) | ||
1385 | +- the path to the OpenSSL git checkout | ||
1386 | - the path to the header file to be generated Modules/_ssl_data_{version}.h | ||
1387 | - error codes are version specific | ||
1388 | + | ||
1389 | +The OpenSSL git checkout should be at a specific tag, using commands like: | ||
1390 | + git tag --list 'openssl-*' | ||
1391 | + git switch --detach openssl-3.4.0 | ||
1392 | + | ||
1393 | + | ||
1394 | +After generating the definitions, compare the result with newest pre-existing file. | ||
1395 | +You can use a command like: | ||
1396 | + | ||
1397 | + git diff --no-index Modules/_ssl_data_31.h Modules/_ssl_data_34.h | ||
1398 | + | ||
1399 | +- If the new version *only* adds new definitions, remove the pre-existing file | ||
1400 | + and adjust the #include in _ssl.c to point to the new version. | ||
1401 | +- If the new version removes or renumbers some definitions, keep both files and | ||
1402 | + add a new #include in _ssl.c. | ||
1403 | + | ||
1404 | +A newly supported OpenSSL version should also be added to: | ||
1405 | +- Tools/ssl/multissltests.py | ||
1406 | +- .github/workflows/build.yml | ||
1407 | """ | ||
1408 | |||
1409 | import argparse | ||
1410 | @@ -16,6 +35,7 @@ import operator | ||
1411 | import os | ||
1412 | import re | ||
1413 | import sys | ||
1414 | +import subprocess | ||
1415 | |||
1416 | |||
1417 | parser = argparse.ArgumentParser( | ||
1418 | @@ -118,9 +138,17 @@ def main(): | ||
1419 | # sort by libname, numeric error code | ||
1420 | args.reasons = sorted(reasons, key=operator.itemgetter(0, 3)) | ||
1421 | |||
1422 | + git_describe = subprocess.run( | ||
1423 | + ['git', 'describe', '--long', '--dirty'], | ||
1424 | + cwd=args.srcdir, | ||
1425 | + capture_output=True, | ||
1426 | + encoding='utf-8', | ||
1427 | + check=True, | ||
1428 | + ) | ||
1429 | lines = [ | ||
1430 | - "/* File generated by Tools/ssl/make_ssl_data.py */" | ||
1431 | - f"/* Generated on {datetime.datetime.utcnow().isoformat()} */" | ||
1432 | + "/* File generated by Tools/ssl/make_ssl_data.py */", | ||
1433 | + f"/* Generated on {datetime.datetime.now(datetime.UTC).isoformat()} */", | ||
1434 | + f"/* Generated from Git commit {git_describe.stdout.strip()} */", | ||
1435 | ] | ||
1436 | lines.extend(gen_library_codes(args)) | ||
1437 | lines.append("") | ||
1438 | diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py | ||
1439 | index eae0e0c..fb06f63 100755 | ||
1440 | --- a/Tools/ssl/multissltests.py | ||
1441 | +++ b/Tools/ssl/multissltests.py | ||
1442 | @@ -51,6 +51,7 @@ OPENSSL_RECENT_VERSIONS = [ | ||
1443 | "3.1.7", | ||
1444 | "3.2.3", | ||
1445 | "3.3.2", | ||
1446 | + "3.4.0", | ||
1447 | ] | ||
1448 | |||
1449 | LIBRESSL_OLD_VERSIONS = [ | ||
1450 | -- | ||
1451 | 2.30.2 | ||
1452 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch b/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch new file mode 100644 index 0000000000..84ad2abb0b --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | From 129ee75863081d9e3418acca3df1e47667f671ad Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Thu, 16 Sep 2021 16:35:37 +0200 | ||
4 | Subject: [PATCH] Lib/pty.py: handle stdin I/O errors same way as master I/O | ||
5 | errors | ||
6 | |||
7 | reading stdin can throw the same I/O errors as reading from master fd does, | ||
8 | e.g. when running under Yocto's test harness: | ||
9 | ====================================================================== | ||
10 | ERROR: test_spawn_doesnt_hang (test.test_pty.PtyTest) | ||
11 | ---------------------------------------------------------------------- | ||
12 | Traceback (most recent call last): | ||
13 | File "/usr/lib/python3.10/test/test_pty.py", line 316, in test_spawn_doesnt_hang | ||
14 | pty.spawn([sys.executable, '-c', 'print("hi there")']) | ||
15 | File "/usr/lib/python3.10/pty.py", line 181, in spawn | ||
16 | _copy(master_fd, master_read, stdin_read) | ||
17 | File "/usr/lib/python3.10/pty.py", line 157, in _copy | ||
18 | data = stdin_read(STDIN_FILENO) | ||
19 | File "/usr/lib/python3.10/pty.py", line 132, in _read | ||
20 | return os.read(fd, 1024) | ||
21 | OSError: [Errno 5] Input/output error | ||
22 | |||
23 | So let's treat both channels the same. | ||
24 | |||
25 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/28388] | ||
26 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
27 | --- | ||
28 | Lib/pty.py | 5 ++++- | ||
29 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
30 | |||
31 | diff --git a/Lib/pty.py b/Lib/pty.py | ||
32 | index 1d97994..fa8821b 100644 | ||
33 | --- a/Lib/pty.py | ||
34 | +++ b/Lib/pty.py | ||
35 | @@ -178,7 +178,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read): | ||
36 | i_buf = i_buf[n:] | ||
37 | |||
38 | if stdin_avail and STDIN_FILENO in rfds: | ||
39 | - data = stdin_read(STDIN_FILENO) | ||
40 | + try: | ||
41 | + data = stdin_read(STDIN_FILENO) | ||
42 | + except OSError: | ||
43 | + data = b"" | ||
44 | if not data: | ||
45 | stdin_avail = False | ||
46 | else: | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch deleted file mode 100644 index 1490cdbb18..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From deeedd1b8799294ab276ab7dbbfdb59c1dacc9a2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 22 Oct 2020 13:10:34 +0200 | ||
4 | Subject: [PATCH] Lib/sysconfig.py: use libdir values from configuration file | ||
5 | |||
6 | This allows correctly substituting them for target installs using | ||
7 | native python. | ||
8 | |||
9 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
10 | --- | ||
11 | Lib/sysconfig.py | 8 ++++---- | ||
12 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
13 | |||
14 | diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py | ||
15 | index bf04ac5..ed0462b 100644 | ||
16 | --- a/Lib/sysconfig.py | ||
17 | +++ b/Lib/sysconfig.py | ||
18 | @@ -20,10 +20,10 @@ __all__ = [ | ||
19 | |||
20 | _INSTALL_SCHEMES = { | ||
21 | 'posix_prefix': { | ||
22 | - 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', | ||
23 | - 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', | ||
24 | - 'purelib': '{base}/lib/python{py_version_short}/site-packages', | ||
25 | - 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', | ||
26 | + 'stdlib': '{LIBDEST}', | ||
27 | + 'platstdlib': '{LIBDEST}', | ||
28 | + 'purelib': '{LIBDEST}/site-packages', | ||
29 | + 'platlib': '{LIBDEST}/site-packages', | ||
30 | 'include': | ||
31 | '{installed_base}/include/python{py_version_short}{abiflags}', | ||
32 | 'platinclude': | ||
33 | -- | ||
34 | 2.24.0 | ||
35 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch new file mode 100644 index 0000000000..ca72ebc899 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 3f4f3e917950e286d5729ea949ca342995eb3c3e Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Fri, 17 Nov 2023 14:26:32 +0100 | ||
4 | Subject: [PATCH] Lib/sysconfig.py: use prefix value from build configuration | ||
5 | file | ||
6 | |||
7 | This allows correctly substituting them for target installs using | ||
8 | native python. | ||
9 | |||
10 | Upstream-Status: Inappropriate [oe-core cross builds] | ||
11 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
12 | --- | ||
13 | Lib/sysconfig/__init__.py | 5 +++++ | ||
14 | 1 file changed, 5 insertions(+) | ||
15 | |||
16 | diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py | ||
17 | index f8e1c7d..0882526 100644 | ||
18 | --- a/Lib/sysconfig/__init__.py | ||
19 | +++ b/Lib/sysconfig/__init__.py | ||
20 | @@ -494,6 +494,11 @@ def _init_config_vars(): | ||
21 | _CONFIG_VARS['VPATH'] = sys._vpath | ||
22 | if os.name == 'posix': | ||
23 | _init_posix(_CONFIG_VARS) | ||
24 | + _CONFIG_VARS['installed_base'] = _CONFIG_VARS['prefix'] | ||
25 | + _CONFIG_VARS['base'] = _CONFIG_VARS['prefix'] | ||
26 | + _CONFIG_VARS['installed_platbase'] = _CONFIG_VARS['prefix'] | ||
27 | + _CONFIG_VARS['platbase'] = _CONFIG_VARS['prefix'] | ||
28 | + _CONFIG_VARS['platlibdir'] = _CONFIG_VARS['PLATLIBDIR'] | ||
29 | if _HAS_USER_BASE: | ||
30 | # Setting 'userbase' is done below the call to the | ||
31 | # init function to enable using 'get_config_var' in | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch b/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch deleted file mode 100644 index b1bceac512..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | From c501e121a872cbcef8ffe626c1de173a125be9f8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 16 Jan 2020 12:34:20 +0100 | ||
4 | Subject: [PATCH] Makefile: do not compile .pyc in parallel | ||
5 | |||
6 | This was found to break reproducibility, and produce strange file ownership | ||
7 | races. | ||
8 | |||
9 | The upstream commit introducing the change was: | ||
10 | https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504 | ||
11 | |||
12 | Upstream-Status: Pending | ||
13 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
14 | --- | ||
15 | Makefile.pre.in | 12 ++++++------ | ||
16 | 1 file changed, 6 insertions(+), 6 deletions(-) | ||
17 | |||
18 | diff --git a/Makefile.pre.in b/Makefile.pre.in | ||
19 | index 1241112..5dfdf44 100644 | ||
20 | --- a/Makefile.pre.in | ||
21 | +++ b/Makefile.pre.in | ||
22 | @@ -1457,30 +1457,30 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c | ||
23 | fi | ||
24 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
25 | $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
26 | - -j0 -d $(LIBDEST) -f \ | ||
27 | + -d $(LIBDEST) -f \ | ||
28 | -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | ||
29 | $(DESTDIR)$(LIBDEST) | ||
30 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
31 | $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
32 | - -j0 -d $(LIBDEST) -f \ | ||
33 | + -d $(LIBDEST) -f \ | ||
34 | -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | ||
35 | $(DESTDIR)$(LIBDEST) | ||
36 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
37 | $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
38 | - -j0 -d $(LIBDEST) -f \ | ||
39 | + -d $(LIBDEST) -f \ | ||
40 | -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ | ||
41 | $(DESTDIR)$(LIBDEST) | ||
42 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
43 | $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
44 | - -j0 -d $(LIBDEST)/site-packages -f \ | ||
45 | + -d $(LIBDEST)/site-packages -f \ | ||
46 | -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | ||
47 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
48 | $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
49 | - -j0 -d $(LIBDEST)/site-packages -f \ | ||
50 | + -d $(LIBDEST)/site-packages -f \ | ||
51 | -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | ||
52 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
53 | $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ | ||
54 | - -j0 -d $(LIBDEST)/site-packages -f \ | ||
55 | + -d $(LIBDEST)/site-packages -f \ | ||
56 | -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages | ||
57 | -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ | ||
58 | $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch b/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch deleted file mode 100644 index 237645bc60..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | From 840fda32c82550259d02a7a56a78a9c05162b1a1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Changqing Li <changqing.li@windriver.com> | ||
3 | Date: Wed, 8 May 2019 16:10:29 +0800 | ||
4 | Subject: [PATCH] Makefile: fix Issue36464 (parallel build race problem) | ||
5 | |||
6 | When using make -j with the 'install' target, it's possible for altbininstall | ||
7 | (which normally creates BINDIR) and libainstall (which doesn't, though it | ||
8 | installs python-config there) to race, resulting in a failure due to | ||
9 | attempting to install python-config into a nonexistent BINDIR. Ensure it also | ||
10 | exists in the libainstall target. | ||
11 | |||
12 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/13186] | ||
13 | |||
14 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
15 | --- | ||
16 | Makefile.pre.in | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/Makefile.pre.in b/Makefile.pre.in | ||
20 | index 15f3687..7e9f173 100644 | ||
21 | --- a/Makefile.pre.in | ||
22 | +++ b/Makefile.pre.in | ||
23 | @@ -1456,7 +1456,7 @@ LIBPL= @LIBPL@ | ||
24 | LIBPC= $(LIBDIR)/pkgconfig | ||
25 | |||
26 | libainstall: @DEF_MAKE_RULE@ python-config | ||
27 | - @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \ | ||
28 | + @for i in $(LIBDIR) $(LIBPL) $(LIBPC) $(BINDIR); \ | ||
29 | do \ | ||
30 | if test ! -d $(DESTDIR)$$i; then \ | ||
31 | echo "Creating directory $$i"; \ | ||
32 | -- | ||
33 | 2.7.4 | ||
34 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch b/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch index fa7735ff93..39b62f6f26 100644 --- a/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch +++ b/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch | |||
@@ -1,25 +1,33 @@ | |||
1 | From cf6a9100902484e4d028ee88742dd2487b014a98 Mon Sep 17 00:00:00 2001 | 1 | From e7a8a7385f561f214054cf95f0a22bfa064eee0b Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Wed, 30 Jan 2019 12:41:04 +0100 | 3 | Date: Wed, 30 Jan 2019 12:41:04 +0100 |
4 | Subject: [PATCH] Makefile.pre: use qemu wrapper when gathering profile data | 4 | Subject: [PATCH] Makefile.pre: use qemu wrapper when gathering profile data |
5 | 5 | ||
6 | Upstream-Status: Inappropriate [oe-core specific] | 6 | Upstream-Status: Inappropriate [oe-core specific] |
7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
8 | |||
9 | Update to remove test_types from the test list, since that fails under | ||
10 | qemu now. | ||
11 | |||
12 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
8 | --- | 13 | --- |
9 | Makefile.pre.in | 3 +-- | 14 | Makefile.pre.in | 3 +-- |
10 | 1 file changed, 1 insertion(+), 2 deletions(-) | 15 | 1 file changed, 1 insertion(+), 2 deletions(-) |
11 | 16 | ||
12 | diff --git a/Makefile.pre.in b/Makefile.pre.in | 17 | diff --git a/Makefile.pre.in b/Makefile.pre.in |
13 | index a3a02a7..d5503dd 100644 | 18 | index 3bd4495f95b..8e8fc60bc76 100644 |
14 | --- a/Makefile.pre.in | 19 | --- a/Makefile.pre.in |
15 | +++ b/Makefile.pre.in | 20 | +++ b/Makefile.pre.in |
16 | @@ -507,8 +507,7 @@ build_all_generate_profile: | 21 | @@ -751,8 +751,7 @@ profile-run-stamp: |
17 | $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)" | 22 | # enabled. |
18 | 23 | $(MAKE) profile-gen-stamp | |
19 | run_profile_task: | 24 | # Next, run the profile task to generate the profile information. |
20 | - @ # FIXME: can't run for a cross build | 25 | - @ # FIXME: can't run for a cross build |
21 | - $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true | 26 | - $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) |
22 | + ./pgo-wrapper ./python -m test.regrtest --pgo test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_support || true | 27 | + ./pgo-wrapper ./python -m test.regrtest --pgo test_grammar test_opcodes test_dict |
23 | |||
24 | build_all_merge_profile: | ||
25 | $(LLVM_PROF_MERGER) | 28 | $(LLVM_PROF_MERGER) |
29 | # Remove profile generation binary since we are done with it. | ||
30 | $(MAKE) clean-retain-profile | ||
31 | -- | ||
32 | 2.39.5 | ||
33 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch b/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch new file mode 100644 index 0000000000..c8537db1fd --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From 8828a52ebace98199569404f01174398bcc64a00 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yi Fan Yu <yifan.yu@windriver.com> | ||
3 | Date: Thu, 1 Apr 2021 13:08:37 -0700 | ||
4 | Subject: [PATCH] Skip failing tests due to load variability on YP AB | ||
5 | |||
6 | Skip these tests until AB-INT is solved. | ||
7 | |||
8 | [YOCTO #14296] | ||
9 | |||
10 | Upstream-Status: Inappropriate [OE-Specific] | ||
11 | |||
12 | Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com> | ||
13 | |||
14 | Skip two additional tests due to suspected load variability failures. | ||
15 | |||
16 | [YOCTO #15131] | ||
17 | [YOCTO #15177] | ||
18 | |||
19 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
20 | --- | ||
21 | Lib/test/_test_multiprocessing.py | 3 +++ | ||
22 | Lib/test/test_time.py | 2 ++ | ||
23 | 2 files changed, 5 insertions(+) | ||
24 | |||
25 | diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py | ||
26 | index 5dae370..23eb971 100644 | ||
27 | --- a/Lib/test/_test_multiprocessing.py | ||
28 | +++ b/Lib/test/_test_multiprocessing.py | ||
29 | @@ -688,6 +688,7 @@ class _TestProcess(BaseTestCase): | ||
30 | close_queue(q) | ||
31 | |||
32 | @support.requires_resource('walltime') | ||
33 | + @unittest.skip('timing related test, dependent on load') | ||
34 | def test_many_processes(self): | ||
35 | if self.TYPE == 'threads': | ||
36 | self.skipTest('test not appropriate for {}'.format(self.TYPE)) | ||
37 | @@ -2211,6 +2212,7 @@ class _TestBarrier(BaseTestCase): | ||
38 | except threading.BrokenBarrierError: | ||
39 | results.append(True) | ||
40 | |||
41 | + @unittest.skip('timing related test, dependent on load') | ||
42 | def test_timeout(self): | ||
43 | """ | ||
44 | Test wait(timeout) | ||
45 | @@ -5299,6 +5301,7 @@ class TestWait(unittest.TestCase): | ||
46 | time.sleep(period) | ||
47 | |||
48 | @support.requires_resource('walltime') | ||
49 | + @unittest.skip('timing related test, dependent on load') | ||
50 | def test_wait_integer(self): | ||
51 | from multiprocessing.connection import wait | ||
52 | |||
53 | diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py | ||
54 | index 293799f..1dbb623 100644 | ||
55 | --- a/Lib/test/test_time.py | ||
56 | +++ b/Lib/test/test_time.py | ||
57 | @@ -548,6 +548,7 @@ class TimeTestCase(unittest.TestCase): | ||
58 | @unittest.skipIf( | ||
59 | support.is_wasi, "process_time not available on WASI" | ||
60 | ) | ||
61 | + @unittest.skip('timing related test, dependent on load') | ||
62 | def test_process_time(self): | ||
63 | # process_time() should not include time spend during a sleep | ||
64 | start = time.process_time() | ||
65 | @@ -561,6 +562,7 @@ class TimeTestCase(unittest.TestCase): | ||
66 | self.assertTrue(info.monotonic) | ||
67 | self.assertFalse(info.adjustable) | ||
68 | |||
69 | + @unittest.skip('timing related test, dependent on load') | ||
70 | def test_thread_time(self): | ||
71 | if not hasattr(time, 'thread_time'): | ||
72 | if sys.platform.startswith(('linux', 'android', 'win')): | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch b/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch new file mode 100644 index 0000000000..ab433d1836 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 5bf5aa6eae1fa3eed66893e51a1858ab481426b4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Wentao Zhang <wentao.zhang@windriver.com> | ||
3 | Date: Mon, 20 Mar 2023 13:39:52 +0800 | ||
4 | Subject: [PATCH] Update test_sysconfig for posix_user purelib | ||
5 | |||
6 | Steps to trigger the failed test: | ||
7 | Edit local.conf to add something as follows: | ||
8 | BASELIB = "lib64" | ||
9 | IMAGE_INSTALL:append = " python3-tests". | ||
10 | bitbake core-image-sato | ||
11 | runqemu qemux86-64 nographic slirp | ||
12 | Reproducer: | ||
13 | $python3 -m test test_sysconfig | ||
14 | |||
15 | Update test_sysconfig.test_user_similar() for the posix_user scheme: | ||
16 | "purelib" doesn't use sys.platlibdir. | ||
17 | |||
18 | Upstream-Status: Inappropriate [oe-core specific] | ||
19 | Signed-off-by: Wentao Zhang <wentao.zhang@windriver.com> | ||
20 | --- | ||
21 | Lib/test/test_sysconfig.py | 2 +- | ||
22 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
23 | |||
24 | diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py | ||
25 | index 1ade492..4e94889 100644 | ||
26 | --- a/Lib/test/test_sysconfig.py | ||
27 | +++ b/Lib/test/test_sysconfig.py | ||
28 | @@ -423,7 +423,7 @@ class TestSysConfig(unittest.TestCase): | ||
29 | expected = os.path.normpath(global_path.replace(base, user, 1)) | ||
30 | # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, | ||
31 | # whereas posix_prefix does. | ||
32 | - if name == 'platlib': | ||
33 | + if name == 'platlib' or name == 'purelib': | ||
34 | # Replace "/lib64/python3.11/site-packages" suffix | ||
35 | # with "/lib/python3.11/site-packages". | ||
36 | py_version_abi = sysconfig._get_python_version_abi() | ||
diff --git a/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch b/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch deleted file mode 100644 index 793385de91..0000000000 --- a/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 9f63e83b1cec872917647b11155edaffe399d103 Mon Sep 17 00:00:00 2001 | ||
2 | From: Inada Naoki <songofacandy@gmail.com> | ||
3 | Date: Sat, 14 Jul 2018 00:46:11 +0900 | ||
4 | Subject: [PATCH] Use FLAG_REF always for interned strings | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/8226] | ||
7 | Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> | ||
8 | |||
9 | --- | ||
10 | Python/marshal.c | 9 +++++++-- | ||
11 | 1 file changed, 7 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/Python/marshal.c b/Python/marshal.c | ||
14 | index c4538bd..2437160 100644 | ||
15 | --- a/Python/marshal.c | ||
16 | +++ b/Python/marshal.c | ||
17 | @@ -298,9 +298,14 @@ w_ref(PyObject *v, char *flag, WFILE *p) | ||
18 | if (p->version < 3 || p->hashtable == NULL) | ||
19 | return 0; /* not writing object references */ | ||
20 | |||
21 | - /* if it has only one reference, it definitely isn't shared */ | ||
22 | - if (Py_REFCNT(v) == 1) | ||
23 | + /* If it has only one reference, it definitely isn't shared. | ||
24 | + * But we use TYPE_REF always for interned string, to PYC file stable | ||
25 | + * as possible. | ||
26 | + */ | ||
27 | + if (Py_REFCNT(v) == 1 && | ||
28 | + !(PyUnicode_CheckExact(v) && PyUnicode_CHECK_INTERNED(v))) { | ||
29 | return 0; | ||
30 | + } | ||
31 | |||
32 | entry = _Py_hashtable_get_entry(p->hashtable, v); | ||
33 | if (entry != NULL) { | ||
diff --git a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch b/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch deleted file mode 100644 index c4fae09a5b..0000000000 --- a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch +++ /dev/null | |||
@@ -1,209 +0,0 @@ | |||
1 | From 1ad771d86728ee2ed30e202e9768d8d825f96467 Mon Sep 17 00:00:00 2001 | ||
2 | From: Matthias Schoepfer <matthias.schoepfer@ithinx.io> | ||
3 | Date: Fri, 31 May 2019 15:34:34 +0200 | ||
4 | Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft | ||
5 | float | ||
6 | |||
7 | When (cross) compiling for softfloat mips, __mips_hard_float will not be | ||
8 | defined and detection of OS triplet in configure.ac / configure will fail. | ||
9 | |||
10 | This also has to do with the custom detection of the build triplet. Trying | ||
11 | to do this in a more autoconf/autotools manner. | ||
12 | |||
13 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196] | ||
14 | Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io> | ||
15 | |||
16 | %% original patch: 0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch | ||
17 | --- | ||
18 | configure.ac | 175 +++++++-------------------------------------------- | ||
19 | 1 file changed, 21 insertions(+), 154 deletions(-) | ||
20 | |||
21 | diff --git a/configure.ac b/configure.ac | ||
22 | index ede710e..bc81b0b 100644 | ||
23 | --- a/configure.ac | ||
24 | +++ b/configure.ac | ||
25 | @@ -710,160 +710,27 @@ fi | ||
26 | MULTIARCH=$($CC --print-multiarch 2>/dev/null) | ||
27 | AC_SUBST(MULTIARCH) | ||
28 | |||
29 | -AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) | ||
30 | -cat >> conftest.c <<EOF | ||
31 | -#undef bfin | ||
32 | -#undef cris | ||
33 | -#undef fr30 | ||
34 | -#undef linux | ||
35 | -#undef hppa | ||
36 | -#undef hpux | ||
37 | -#undef i386 | ||
38 | -#undef mips | ||
39 | -#undef powerpc | ||
40 | -#undef sparc | ||
41 | -#undef unix | ||
42 | -#if defined(__ANDROID__) | ||
43 | - # Android is not a multiarch system. | ||
44 | -#elif defined(__linux__) | ||
45 | -# if defined(__x86_64__) && defined(__LP64__) | ||
46 | - x86_64-linux-gnu | ||
47 | -# elif defined(__x86_64__) && defined(__ILP32__) | ||
48 | - x86_64-linux-gnux32 | ||
49 | -# elif defined(__i386__) | ||
50 | - i386-linux-gnu | ||
51 | -# elif defined(__aarch64__) && defined(__AARCH64EL__) | ||
52 | -# if defined(__ILP32__) | ||
53 | - aarch64_ilp32-linux-gnu | ||
54 | -# else | ||
55 | - aarch64-linux-gnu | ||
56 | -# endif | ||
57 | -# elif defined(__aarch64__) && defined(__AARCH64EB__) | ||
58 | -# if defined(__ILP32__) | ||
59 | - aarch64_be_ilp32-linux-gnu | ||
60 | -# else | ||
61 | - aarch64_be-linux-gnu | ||
62 | -# endif | ||
63 | -# elif defined(__alpha__) | ||
64 | - alpha-linux-gnu | ||
65 | -# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP) | ||
66 | -# if defined(__ARMEL__) | ||
67 | - arm-linux-gnueabihf | ||
68 | -# else | ||
69 | - armeb-linux-gnueabihf | ||
70 | -# endif | ||
71 | -# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP) | ||
72 | -# if defined(__ARMEL__) | ||
73 | - arm-linux-gnueabi | ||
74 | -# else | ||
75 | - armeb-linux-gnueabi | ||
76 | -# endif | ||
77 | -# elif defined(__hppa__) | ||
78 | - hppa-linux-gnu | ||
79 | -# elif defined(__ia64__) | ||
80 | - ia64-linux-gnu | ||
81 | -# elif defined(__m68k__) && !defined(__mcoldfire__) | ||
82 | - m68k-linux-gnu | ||
83 | -# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) && defined(_MIPSEL) | ||
84 | -# if _MIPS_SIM == _ABIO32 | ||
85 | - mipsisa32r6el-linux-gnu | ||
86 | -# elif _MIPS_SIM == _ABIN32 | ||
87 | - mipsisa64r6el-linux-gnuabin32 | ||
88 | -# elif _MIPS_SIM == _ABI64 | ||
89 | - mipsisa64r6el-linux-gnuabi64 | ||
90 | -# else | ||
91 | -# error unknown platform triplet | ||
92 | -# endif | ||
93 | -# elif defined(__mips_hard_float) && defined(__mips_isa_rev) && (__mips_isa_rev >=6) | ||
94 | -# if _MIPS_SIM == _ABIO32 | ||
95 | - mipsisa32r6-linux-gnu | ||
96 | -# elif _MIPS_SIM == _ABIN32 | ||
97 | - mipsisa64r6-linux-gnuabin32 | ||
98 | -# elif _MIPS_SIM == _ABI64 | ||
99 | - mipsisa64r6-linux-gnuabi64 | ||
100 | -# else | ||
101 | -# error unknown platform triplet | ||
102 | -# endif | ||
103 | -# elif defined(__mips_hard_float) && defined(_MIPSEL) | ||
104 | -# if _MIPS_SIM == _ABIO32 | ||
105 | - mipsel-linux-gnu | ||
106 | -# elif _MIPS_SIM == _ABIN32 | ||
107 | - mips64el-linux-gnuabin32 | ||
108 | -# elif _MIPS_SIM == _ABI64 | ||
109 | - mips64el-linux-gnuabi64 | ||
110 | -# else | ||
111 | -# error unknown platform triplet | ||
112 | -# endif | ||
113 | -# elif defined(__mips_hard_float) | ||
114 | -# if _MIPS_SIM == _ABIO32 | ||
115 | - mips-linux-gnu | ||
116 | -# elif _MIPS_SIM == _ABIN32 | ||
117 | - mips64-linux-gnuabin32 | ||
118 | -# elif _MIPS_SIM == _ABI64 | ||
119 | - mips64-linux-gnuabi64 | ||
120 | -# else | ||
121 | -# error unknown platform triplet | ||
122 | -# endif | ||
123 | -# elif defined(__or1k__) | ||
124 | - or1k-linux-gnu | ||
125 | -# elif defined(__powerpc__) && defined(__SPE__) | ||
126 | - powerpc-linux-gnuspe | ||
127 | -# elif defined(__powerpc64__) | ||
128 | -# if defined(__LITTLE_ENDIAN__) | ||
129 | - powerpc64le-linux-gnu | ||
130 | -# else | ||
131 | - powerpc64-linux-gnu | ||
132 | -# endif | ||
133 | -# elif defined(__powerpc__) | ||
134 | - powerpc-linux-gnu | ||
135 | -# elif defined(__s390x__) | ||
136 | - s390x-linux-gnu | ||
137 | -# elif defined(__s390__) | ||
138 | - s390-linux-gnu | ||
139 | -# elif defined(__sh__) && defined(__LITTLE_ENDIAN__) | ||
140 | - sh4-linux-gnu | ||
141 | -# elif defined(__sparc__) && defined(__arch64__) | ||
142 | - sparc64-linux-gnu | ||
143 | -# elif defined(__sparc__) | ||
144 | - sparc-linux-gnu | ||
145 | -# elif defined(__riscv) | ||
146 | -# if __riscv_xlen == 32 | ||
147 | - riscv32-linux-gnu | ||
148 | -# elif __riscv_xlen == 64 | ||
149 | - riscv64-linux-gnu | ||
150 | -# else | ||
151 | -# error unknown platform triplet | ||
152 | -# endif | ||
153 | -# else | ||
154 | -# error unknown platform triplet | ||
155 | -# endif | ||
156 | -#elif defined(__FreeBSD_kernel__) | ||
157 | -# if defined(__LP64__) | ||
158 | - x86_64-kfreebsd-gnu | ||
159 | -# elif defined(__i386__) | ||
160 | - i386-kfreebsd-gnu | ||
161 | -# else | ||
162 | -# error unknown platform triplet | ||
163 | -# endif | ||
164 | -#elif defined(__gnu_hurd__) | ||
165 | - i386-gnu | ||
166 | -#elif defined(__APPLE__) | ||
167 | - darwin | ||
168 | -#elif defined(__VXWORKS__) | ||
169 | - vxworks | ||
170 | -#else | ||
171 | -# error unknown platform triplet | ||
172 | -#endif | ||
173 | - | ||
174 | -EOF | ||
175 | - | ||
176 | -if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then | ||
177 | - PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` | ||
178 | - AC_MSG_RESULT([$PLATFORM_TRIPLET]) | ||
179 | -else | ||
180 | - AC_MSG_RESULT([none]) | ||
181 | -fi | ||
182 | -rm -f conftest.c conftest.out | ||
183 | +AC_CANONICAL_TARGET | ||
184 | +## Not using $target to filter out vendor | ||
185 | +## Need to handle macos, vxworks and hurd special (?) :-/ | ||
186 | +case ${target_os} in | ||
187 | + darwin*) | ||
188 | + PLATFORM_TRIPLET=darwin | ||
189 | + ;; | ||
190 | + hurd*) | ||
191 | + PLATFORM_TRIPLET=i386-gnu | ||
192 | + ;; | ||
193 | + vxworks*) | ||
194 | + PLATFORM_TRIPLET=vxworks | ||
195 | + ;; | ||
196 | + *) | ||
197 | + if test "${target_cpu}" != "i686"; then | ||
198 | + PLATFORM_TRIPLET=${target_cpu}-${target_os} | ||
199 | + else | ||
200 | + PLATFORM_TRIPLET=i386-${target_os} | ||
201 | + fi | ||
202 | + ;; | ||
203 | +esac | ||
204 | |||
205 | if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then | ||
206 | if test x$PLATFORM_TRIPLET != x$MULTIARCH; then | ||
207 | -- | ||
208 | 2.24.1 | ||
209 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch deleted file mode 100644 index b982691b36..0000000000 --- a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From e65bfe22c858872b08366aff49119d4145a77f40 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 31 Jan 2019 16:46:30 +0100 | ||
4 | Subject: [PATCH] distutils/sysconfig: append | ||
5 | STAGING_LIBDIR/python-sysconfigdata to sys.path | ||
6 | |||
7 | So that target configuration can be used when running native python | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe-core specific] | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | |||
12 | --- | ||
13 | Lib/distutils/sysconfig.py | 2 ++ | ||
14 | Lib/sysconfig.py | 2 ++ | ||
15 | 2 files changed, 4 insertions(+) | ||
16 | |||
17 | diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py | ||
18 | index b51629e..2df348c 100644 | ||
19 | --- a/Lib/distutils/sysconfig.py | ||
20 | +++ b/Lib/distutils/sysconfig.py | ||
21 | @@ -438,6 +438,8 @@ def _init_posix(): | ||
22 | platform=sys.platform, | ||
23 | multiarch=getattr(sys.implementation, '_multiarch', ''), | ||
24 | )) | ||
25 | + if 'STAGING_LIBDIR' in os.environ: | ||
26 | + sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata') | ||
27 | _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) | ||
28 | build_time_vars = _temp.build_time_vars | ||
29 | global _config_vars | ||
30 | diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py | ||
31 | index b2d790b..405273c 100644 | ||
32 | --- a/Lib/sysconfig.py | ||
33 | +++ b/Lib/sysconfig.py | ||
34 | @@ -419,6 +419,8 @@ def _init_posix(vars): | ||
35 | """Initialize the module as appropriate for POSIX systems.""" | ||
36 | # _sysconfigdata is generated at build time, see _generate_posix_vars() | ||
37 | name = _get_sysconfigdata_name() | ||
38 | + if 'STAGING_LIBDIR' in os.environ: | ||
39 | + sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata') | ||
40 | _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) | ||
41 | build_time_vars = _temp.build_time_vars | ||
42 | vars.update(build_time_vars) | ||
diff --git a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch deleted file mode 100644 index bfddc1ad52..0000000000 --- a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch +++ /dev/null | |||
@@ -1,121 +0,0 @@ | |||
1 | From 5f9eea2c4f8716830f6c8855a3e10872119fae32 Mon Sep 17 00:00:00 2001 | ||
2 | From: Changqing Li <changqing.li@windriver.com> | ||
3 | Date: Mon, 22 Oct 2018 15:19:51 +0800 | ||
4 | Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler | ||
5 | |||
6 | When working path contains "clang"/"gcc"/"icc", it might be part of $CC | ||
7 | because of the "--sysroot" parameter. That could cause judgement error | ||
8 | about clang/gcc/icc compilers. e.g. | ||
9 | When "icc" is containded in working path, below errors are reported when | ||
10 | compiling python3: | ||
11 | x86_64-wrs-linux-gcc: error: strict: No such file or directory | ||
12 | x86_64-wrs-linux-gcc: error: unrecognized command line option '-fp-model' | ||
13 | |||
14 | Here use cc_basename to replace CC for checking compiler to avoid such | ||
15 | kind of issue. | ||
16 | |||
17 | Upstream-Status: Pending | ||
18 | |||
19 | Signed-off-by: Li Zhou <li.zhou@windriver.com> | ||
20 | |||
21 | patch originally from Li Zhou, I just rework it to new version | ||
22 | |||
23 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
24 | |||
25 | --- | ||
26 | configure.ac | 19 ++++++++++--------- | ||
27 | 1 file changed, 10 insertions(+), 9 deletions(-) | ||
28 | |||
29 | diff --git a/configure.ac b/configure.ac | ||
30 | index d60f052..e491e24 100644 | ||
31 | --- a/configure.ac | ||
32 | +++ b/configure.ac | ||
33 | @@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h) | ||
34 | AC_CANONICAL_HOST | ||
35 | AC_SUBST(build) | ||
36 | AC_SUBST(host) | ||
37 | +LT_INIT | ||
38 | |||
39 | # pybuilddir.txt will be created by --generate-posix-vars in the Makefile | ||
40 | rm -f pybuilddir.txt | ||
41 | @@ -689,7 +690,7 @@ AC_MSG_RESULT($with_cxx_main) | ||
42 | preset_cxx="$CXX" | ||
43 | if test -z "$CXX" | ||
44 | then | ||
45 | - case "$CC" in | ||
46 | + case "$cc_basename" in | ||
47 | gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;; | ||
48 | cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;; | ||
49 | clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;; | ||
50 | @@ -975,7 +976,7 @@ rmdir CaseSensitiveTestDir | ||
51 | |||
52 | case $ac_sys_system in | ||
53 | hp*|HP*) | ||
54 | - case $CC in | ||
55 | + case $cc_basename in | ||
56 | cc|*/cc) CC="$CC -Ae";; | ||
57 | esac;; | ||
58 | esac | ||
59 | @@ -1366,7 +1367,7 @@ else | ||
60 | fi], | ||
61 | [AC_MSG_RESULT(no)]) | ||
62 | if test "$Py_LTO" = 'true' ; then | ||
63 | - case $CC in | ||
64 | + case $cc_basename in | ||
65 | *clang*) | ||
66 | AC_SUBST(LLVM_AR) | ||
67 | AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) | ||
68 | @@ -1456,7 +1457,7 @@ then | ||
69 | fi | ||
70 | fi | ||
71 | LLVM_PROF_ERR=no | ||
72 | -case $CC in | ||
73 | +case $cc_basename in | ||
74 | *clang*) | ||
75 | # Any changes made here should be reflected in the GCC+Darwin case below | ||
76 | PGO_PROF_GEN_FLAG="-fprofile-instr-generate" | ||
77 | @@ -1517,7 +1518,7 @@ esac | ||
78 | # compiler and platform. BASECFLAGS tweaks need to be made even if the | ||
79 | # user set OPT. | ||
80 | |||
81 | -case $CC in | ||
82 | +case $cc_basename in | ||
83 | *clang*) | ||
84 | cc_is_clang=1 | ||
85 | ;; | ||
86 | @@ -1653,7 +1654,7 @@ yes) | ||
87 | |||
88 | # ICC doesn't recognize the option, but only emits a warning | ||
89 | ## XXX does it emit an unused result warning and can it be disabled? | ||
90 | - case "$CC" in | ||
91 | + case "$cc_basename" in | ||
92 | *icc*) | ||
93 | ac_cv_disable_unused_result_warning=no | ||
94 | ;; | ||
95 | @@ -1993,7 +1994,7 @@ yes) | ||
96 | ;; | ||
97 | esac | ||
98 | |||
99 | -case "$CC" in | ||
100 | +case "$cc_basename" in | ||
101 | *icc*) | ||
102 | # ICC needs -fp-model strict or floats behave badly | ||
103 | CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict" | ||
104 | @@ -2765,7 +2766,7 @@ then | ||
105 | then | ||
106 | LINKFORSHARED="-Wl,--export-dynamic" | ||
107 | fi;; | ||
108 | - SunOS/5*) case $CC in | ||
109 | + SunOS/5*) case $cc_basename in | ||
110 | *gcc*) | ||
111 | if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null | ||
112 | then | ||
113 | @@ -5507,7 +5508,7 @@ if test "$have_gcc_asm_for_x87" = yes; then | ||
114 | # Some versions of gcc miscompile inline asm: | ||
115 | # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 | ||
116 | # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html | ||
117 | - case $CC in | ||
118 | + case $cc_basename in | ||
119 | *gcc*) | ||
120 | AC_MSG_CHECKING(for gcc ipa-pure-const bug) | ||
121 | saved_cflags="$CFLAGS" | ||
diff --git a/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch deleted file mode 100644 index ea0af02e72..0000000000 --- a/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | From 7019ba184b828ed7253750cf409fc5760ef90a54 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 9 Jan 2020 17:44:05 +0100 | ||
4 | Subject: [PATCH] setup.py: pass missing libraries to Extension for | ||
5 | multiprocessing module | ||
6 | |||
7 | In the following commit: | ||
8 | ... | ||
9 | commit e711cafab13efc9c1fe6c5cd75826401445eb585 | ||
10 | Author: Benjamin Peterson <benjamin@python.org> | ||
11 | Date: Wed Jun 11 16:44:04 2008 +0000 | ||
12 | |||
13 | Merged revisions 64104,64117 via svnmerge from | ||
14 | svn+ssh://pythondev@svn.python.org/python/trunk | ||
15 | ... | ||
16 | (see diff in setup.py) | ||
17 | It assigned libraries for multiprocessing module according | ||
18 | the host_platform, but not pass it to Extension. | ||
19 | |||
20 | In glibc, the following commit caused two definition of | ||
21 | sem_getvalue are different. | ||
22 | https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524 | ||
23 | (see diff in nptl/sem_getvalue.c for detail) | ||
24 | `__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1 | ||
25 | and `__old_sem_getvalue' is to compat the old version | ||
26 | sem_getvalue@GLIBC_2.0. | ||
27 | |||
28 | To build python for embedded Linux systems: | ||
29 | http://www.yoctoproject.org/docs/2.3.1/yocto-project-qs/yocto-project-qs.html | ||
30 | If not explicitly link to library pthread (-lpthread), it will | ||
31 | load glibc's sem_getvalue randomly at runtime. | ||
32 | |||
33 | Such as build python on linux x86_64 host and run the python | ||
34 | on linux x86_32 target. If not link library pthread, it caused | ||
35 | multiprocessing bounded semaphore could not work correctly. | ||
36 | ... | ||
37 | >>> import multiprocessing | ||
38 | >>> pool_sema = multiprocessing.BoundedSemaphore(value=1) | ||
39 | >>> pool_sema.acquire() | ||
40 | True | ||
41 | >>> pool_sema.release() | ||
42 | Traceback (most recent call last): | ||
43 | File "<stdin>", line 1, in <module> | ||
44 | ValueError: semaphore or lock released too many times | ||
45 | ... | ||
46 | |||
47 | And the semaphore issue also caused multiprocessing.Queue().put() hung. | ||
48 | |||
49 | Upstream-Status: Pending | ||
50 | |||
51 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
52 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
53 | --- | ||
54 | setup.py | 2 +- | ||
55 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
56 | |||
57 | diff --git a/setup.py b/setup.py | ||
58 | index ec3f2a4..b0f1541 100644 | ||
59 | --- a/setup.py | ||
60 | +++ b/setup.py | ||
61 | @@ -1671,7 +1671,7 @@ class PyBuildExt(build_ext): | ||
62 | libraries=libs, | ||
63 | include_dirs=["Modules/_multiprocessing"])) | ||
64 | |||
65 | - self.add(Extension('_multiprocessing', multiprocessing_srcs, | ||
66 | + self.add(Extension('_multiprocessing', multiprocessing_srcs, libraries=['pthread'], | ||
67 | include_dirs=["Modules/_multiprocessing"])) | ||
68 | |||
69 | def detect_uuid(self): | ||
diff --git a/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch b/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch new file mode 100644 index 0000000000..ea103bc834 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From c5bdd39f8ebc4e6c58a47d7e424eac028eddb4ff Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Fri, 15 Sep 2023 08:48:33 -0400 | ||
4 | Subject: [PATCH] skip no_stdout_fileno test due to load variability | ||
5 | |||
6 | Skip test_input_no_stdout_fileno so that it doesn't fail on systems | ||
7 | under heavy load. | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE-Specific] | ||
10 | |||
11 | [YOCTO #15210] | ||
12 | |||
13 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
14 | --- | ||
15 | Lib/test/test_builtin.py | 1 + | ||
16 | 1 file changed, 1 insertion(+) | ||
17 | |||
18 | diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py | ||
19 | index c5394de..ed17fb6 100644 | ||
20 | --- a/Lib/test/test_builtin.py | ||
21 | +++ b/Lib/test/test_builtin.py | ||
22 | @@ -2435,6 +2435,7 @@ class PtyTests(unittest.TestCase): | ||
23 | "byte 0xe9 in position 4: ordinal not in " | ||
24 | "range(128)") | ||
25 | |||
26 | + @unittest.skip("Test may fail under heavy load") | ||
27 | def test_input_no_stdout_fileno(self): | ||
28 | # Issue #24402: If stdin is the original terminal but stdout.fileno() | ||
29 | # fails, do not use the original stdout file descriptor | ||
diff --git a/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch b/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch new file mode 100644 index 0000000000..b9c68a98d7 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From bbcb17dc1ed283f41c8cd94d39f70898f0c45583 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Sun, 12 Sep 2021 21:44:36 +0200 | ||
4 | Subject: [PATCH] sysconfig.py: use platlibdir also for purelib | ||
5 | |||
6 | This is needed in multilib configurations where hardcoding 'lib' | ||
7 | is not correct. | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe-core specific] | ||
10 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
11 | --- | ||
12 | Lib/sysconfig/__init__.py | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py | ||
16 | index 80aef34..f8e1c7d 100644 | ||
17 | --- a/Lib/sysconfig/__init__.py | ||
18 | +++ b/Lib/sysconfig/__init__.py | ||
19 | @@ -29,7 +29,7 @@ _INSTALL_SCHEMES = { | ||
20 | 'posix_prefix': { | ||
21 | 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', | ||
22 | 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}', | ||
23 | - 'purelib': '{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages', | ||
24 | + 'purelib': '{base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', | ||
25 | 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages', | ||
26 | 'include': | ||
27 | '{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}', | ||
diff --git a/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch new file mode 100644 index 0000000000..5f60c60b5b --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_active_children-skip-problematic-test.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From 540765b148d942a2339affa6c0d11445e9d0f26c Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Thu, 13 Jun 2024 10:54:31 -0400 | ||
4 | Subject: [PATCH] test_active_children: skip problematic test | ||
5 | |||
6 | This test is failing in some tests on the Autobuilder. Since it's of a | ||
7 | similar nature to other failing/hanging tests, disable it for now. | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE-Specific] | ||
10 | |||
11 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
12 | --- | ||
13 | Lib/test/_test_multiprocessing.py | 1 + | ||
14 | 1 file changed, 1 insertion(+) | ||
15 | |||
16 | diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py | ||
17 | index 23eb971..b1295b2 100644 | ||
18 | --- a/Lib/test/_test_multiprocessing.py | ||
19 | +++ b/Lib/test/_test_multiprocessing.py | ||
20 | @@ -585,6 +585,7 @@ class _TestProcess(BaseTestCase): | ||
21 | self.assertTrue(type(cpus) is int) | ||
22 | self.assertTrue(cpus >= 1) | ||
23 | |||
24 | + @unittest.skip("skipping problematic test") | ||
25 | def test_active_children(self): | ||
26 | self.assertEqual(type(self.active_children()), list) | ||
27 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch new file mode 100644 index 0000000000..68e277d662 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From 0e9d0c58e77ef540d9601ce84a1aa79d9ce6ee9b Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Orling <timothy.t.orling@intel.com> | ||
3 | Date: Fri, 18 Jun 2021 11:56:50 -0700 | ||
4 | Subject: [PATCH] test_ctypes.test_find: skip without tools-sdk | ||
5 | |||
6 | These tests need full packagegroup-core-buildessential, the | ||
7 | easiest way to dynamically check for that is looking for | ||
8 | 'tools-sdk' in IMAGE_FEATURES. | ||
9 | |||
10 | Upstream-Status: Inappropriate [oe-specific] | ||
11 | |||
12 | Signed-off-by: Tim Orling <timothy.t.orling@intel.com> | ||
13 | --- | ||
14 | Lib/test/test_ctypes/test_find.py | 2 ++ | ||
15 | 1 file changed, 2 insertions(+) | ||
16 | |||
17 | diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py | ||
18 | index 85b2861..b033203 100644 | ||
19 | --- a/Lib/test/test_ctypes/test_find.py | ||
20 | +++ b/Lib/test/test_ctypes/test_find.py | ||
21 | @@ -116,10 +116,12 @@ class FindLibraryLinux(unittest.TestCase): | ||
22 | # LD_LIBRARY_PATH) | ||
23 | self.assertEqual(find_library(libname), 'lib%s.so' % libname) | ||
24 | |||
25 | + @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") | ||
26 | def test_find_library_with_gcc(self): | ||
27 | with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None): | ||
28 | self.assertNotEqual(find_library('c'), None) | ||
29 | |||
30 | + @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") | ||
31 | def test_find_library_with_ld(self): | ||
32 | with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \ | ||
33 | unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None): | ||
diff --git a/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch new file mode 100644 index 0000000000..3336e2913a --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_deadlock-skip-problematic-test.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From 5a44f74549b32395109342e9299510c32db71068 Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Wed, 12 Jun 2024 10:29:03 -0400 | ||
4 | Subject: [PATCH] test_deadlock: skip problematic test | ||
5 | |||
6 | This test hangs frequently when run on the Autobuilder. Disable it in | ||
7 | testing until the cause can be determined. | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE-Specific] | ||
10 | |||
11 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
12 | --- | ||
13 | Lib/test/test_concurrent_futures/test_deadlock.py | 1 + | ||
14 | 1 file changed, 1 insertion(+) | ||
15 | |||
16 | diff --git a/Lib/test/test_concurrent_futures/test_deadlock.py b/Lib/test/test_concurrent_futures/test_deadlock.py | ||
17 | index 3c30c45..008d6c0 100644 | ||
18 | --- a/Lib/test/test_concurrent_futures/test_deadlock.py | ||
19 | +++ b/Lib/test/test_concurrent_futures/test_deadlock.py | ||
20 | @@ -90,6 +90,7 @@ class ErrorAtUnpickle(object): | ||
21 | return _raise_error_ignore_stderr, (UnpicklingError, ) | ||
22 | |||
23 | |||
24 | +@unittest.skip("skipping problematic test") | ||
25 | class ExecutorDeadlockTest: | ||
26 | TIMEOUT = support.LONG_TIMEOUT | ||
27 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch index 35b7e0c480..2cca004b57 100644 --- a/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch +++ b/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From b94995e0c694ec9561efec0d1a59b323340e6105 Mon Sep 17 00:00:00 2001 | 1 | From c1f3cf625c0f011060ddaa2a4096f6aa13dd1ee6 Mon Sep 17 00:00:00 2001 |
2 | From: Mingli Yu <mingli.yu@windriver.com> | 2 | From: Mingli Yu <mingli.yu@windriver.com> |
3 | Date: Mon, 5 Aug 2019 15:57:39 +0800 | 3 | Date: Mon, 5 Aug 2019 15:57:39 +0800 |
4 | Subject: [PATCH] test_locale.py: correct the test output format | 4 | Subject: [PATCH] test_locale.py: correct the test output format |
@@ -23,24 +23,23 @@ Before this patch: | |||
23 | 23 | ||
24 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132] | 24 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132] |
25 | 25 | ||
26 | Rebased for 3.9.4, still not accepted upstream Signed-off-by: Alejandro Hernandez <alejandro@enedino.org> | ||
27 | |||
26 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | 28 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> |
27 | --- | 29 | --- |
28 | Lib/test/test_locale.py | 2 +- | 30 | Lib/test/test_locale.py | 2 +- |
29 | 1 file changed, 1 insertion(+), 1 deletion(-) | 31 | 1 file changed, 1 insertion(+), 1 deletion(-) |
30 | 32 | ||
31 | diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py | 33 | diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py |
32 | index e2c2178..558d63c 100644 | 34 | index da4bd79..fd9e67d 100644 |
33 | --- a/Lib/test/test_locale.py | 35 | --- a/Lib/test/test_locale.py |
34 | +++ b/Lib/test/test_locale.py | 36 | +++ b/Lib/test/test_locale.py |
35 | @@ -527,7 +527,7 @@ class TestMiscellaneous(unittest.TestCase): | 37 | @@ -572,7 +572,7 @@ class TestMiscellaneous(unittest.TestCase): |
36 | self.skipTest('test needs Turkish locale') | 38 | self.skipTest('test needs Turkish locale') |
37 | loc = locale.getlocale(locale.LC_CTYPE) | 39 | loc = locale.getlocale(locale.LC_CTYPE) |
38 | if verbose: | 40 | if verbose: |
39 | - print('testing with %a' % (loc,), end=' ', flush=True) | 41 | - print('testing with %a' % (loc,), end=' ', flush=True) |
40 | + print('testing with %a...' % (loc,), end=' ', flush=True) | 42 | + print('testing with %a...' % (loc,), end=' ', flush=True) |
41 | locale.setlocale(locale.LC_CTYPE, loc) | 43 | try: |
42 | self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE)) | 44 | locale.setlocale(locale.LC_CTYPE, loc) |
43 | 45 | except locale.Error as exc: | |
44 | -- | ||
45 | 2.7.4 | ||
46 | |||
diff --git a/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch b/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch new file mode 100644 index 0000000000..862a7f5ea7 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_readline-skip-limited-history-test.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 1a0a145261ba4f97aaff3c0c656ac2e0ad9695a8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Tue, 13 Aug 2024 11:07:05 -0400 | ||
4 | Subject: [PATCH] test_readline: skip limited history test | ||
5 | |||
6 | This test was added recently and is failing on the ptest image when | ||
7 | using the default PACKAGECONFIG settings (i.e. with editline instead of | ||
8 | readline).. Disable it until the proper fix is determined. | ||
9 | |||
10 | A bug has been opened upstream: https://github.com/python/cpython/issues/123018 | ||
11 | |||
12 | Upstream-Status: Inappropriate [OE-specific] | ||
13 | |||
14 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
15 | --- | ||
16 | Lib/test/test_readline.py | 2 ++ | ||
17 | 1 file changed, 2 insertions(+) | ||
18 | |||
19 | --- a/Lib/test/test_readline.py | ||
20 | +++ b/Lib/test/test_readline.py | ||
21 | @@ -70,6 +70,7 @@ class TestHistoryManipulation (unittest. | ||
22 | |||
23 | @unittest.skipUnless(hasattr(readline, "append_history_file"), | ||
24 | "append_history not available") | ||
25 | + @unittest.skip("Skipping problematic test") | ||
26 | def test_write_read_append(self): | ||
27 | hfile = tempfile.NamedTemporaryFile(delete=False) | ||
28 | hfile.close() | ||
29 | @@ -141,6 +142,7 @@ class TestHistoryManipulation (unittest. | ||
30 | self.assertEqual(readline.get_history_item(1), "entrée 1") | ||
31 | self.assertEqual(readline.get_history_item(2), "entrée 22") | ||
32 | |||
33 | + @unittest.skip("Skipping problematic test") | ||
34 | def test_write_read_limited_history(self): | ||
35 | previous_length = readline.get_history_length() | ||
36 | self.addCleanup(readline.set_history_length, previous_length) | ||
37 | @@ -382,6 +384,7 @@ readline.write_history_file(history_file | ||
38 | self.assertIn(b"done", output) | ||
39 | |||
40 | |||
41 | + @unittest.skip("Skipping problematic test") | ||
42 | def test_write_read_limited_history(self): | ||
43 | previous_length = readline.get_history_length() | ||
44 | self.addCleanup(readline.set_history_length, previous_length) | ||
diff --git a/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch b/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch new file mode 100644 index 0000000000..4e284de613 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_shutdown-skip-problematic-test.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From b678363156b5d40e09c1d138840180e3ddc7d20b Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Wed, 8 May 2024 11:58:09 -0400 | ||
4 | Subject: [PATCH] test_shutdown: skip problematic test | ||
5 | |||
6 | This test hangs frequently when run on the Autobuilder. Disable it in | ||
7 | testing until the cause can be determined. | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE-Specific] | ||
10 | |||
11 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
12 | --- | ||
13 | Lib/test/test_concurrent_futures/test_shutdown.py | 3 +++ | ||
14 | 1 file changed, 3 insertions(+) | ||
15 | |||
16 | diff --git a/Lib/test/test_concurrent_futures/test_shutdown.py b/Lib/test/test_concurrent_futures/test_shutdown.py | ||
17 | index 7a4065a..6b878a4 100644 | ||
18 | --- a/Lib/test/test_concurrent_futures/test_shutdown.py | ||
19 | +++ b/Lib/test/test_concurrent_futures/test_shutdown.py | ||
20 | @@ -20,6 +20,7 @@ def sleep_and_print(t, msg): | ||
21 | sys.stdout.flush() | ||
22 | |||
23 | |||
24 | +@unittest.skip("skipping problematic test") | ||
25 | class ExecutorShutdownTest: | ||
26 | def test_run_after_shutdown(self): | ||
27 | self.executor.shutdown() | ||
28 | @@ -156,6 +157,7 @@ class ExecutorShutdownTest: | ||
29 | signal.signal(signal.SIGALRM, old_handler) | ||
30 | |||
31 | |||
32 | +@unittest.skip("skipping problematic test") | ||
33 | class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase): | ||
34 | def test_threads_terminate(self): | ||
35 | def acquire_lock(lock): | ||
36 | @@ -252,6 +254,7 @@ class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase | ||
37 | self.assertIn(out.strip(), [b"apple", b""]) | ||
38 | |||
39 | |||
40 | +@unittest.skip("skipping problematic test") | ||
41 | class ProcessPoolShutdownTest(ExecutorShutdownTest): | ||
42 | def test_processes_terminate(self): | ||
43 | def acquire_lock(lock): | ||
diff --git a/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch b/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch new file mode 100644 index 0000000000..b4f873fd72 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From 9f252a691cd335341938489da32d6e2d4620d8ca Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Fri, 6 Oct 2023 10:59:44 -0400 | ||
4 | Subject: [PATCH] test_storlines: skip due to load variability | ||
5 | |||
6 | This is yet another test that intermittently fails on the Yocto AB when | ||
7 | a worker is under heavy load, so skip it during testing. | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE-Specific] | ||
10 | |||
11 | [YOCTO #14933] | ||
12 | |||
13 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
14 | --- | ||
15 | Lib/test/test_ftplib.py | 1 + | ||
16 | 1 file changed, 1 insertion(+) | ||
17 | |||
18 | diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py | ||
19 | index bed0e6d..36602be 100644 | ||
20 | --- a/Lib/test/test_ftplib.py | ||
21 | +++ b/Lib/test/test_ftplib.py | ||
22 | @@ -627,6 +627,7 @@ class TestFTPClass(TestCase): | ||
23 | self.client.storbinary('stor', f, rest=r) | ||
24 | self.assertEqual(self.server.handler_instance.rest, str(r)) | ||
25 | |||
26 | + @unittest.skip('timing related test, dependent on load') | ||
27 | def test_storlines(self): | ||
28 | data = RETR_DATA.replace('\r\n', '\n').encode(self.client.encoding) | ||
29 | f = io.BytesIO(data) | ||
diff --git a/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch b/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch deleted file mode 100644 index 5c620361da..0000000000 --- a/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From a2dd127b4163aff6cc35af0d0251321964232ad4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Mon, 7 Oct 2019 13:22:14 +0200 | ||
4 | Subject: [PATCH] setup.py: do not report missing dependencies for disabled | ||
5 | modules | ||
6 | |||
7 | Reporting those missing dependencies is misleading as the modules would not | ||
8 | have been built anyway. This particularly matters in oe-core's automated | ||
9 | build completeness checker which relies on the report. | ||
10 | |||
11 | Upstream-Status: Inappropriate [oe-core specific] | ||
12 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
13 | |||
14 | --- | ||
15 | setup.py | 4 ++++ | ||
16 | 1 file changed, 4 insertions(+) | ||
17 | |||
18 | diff --git a/setup.py b/setup.py | ||
19 | index 7691258..ec3f2a4 100644 | ||
20 | --- a/setup.py | ||
21 | +++ b/setup.py | ||
22 | @@ -408,6 +408,10 @@ class PyBuildExt(build_ext): | ||
23 | print("%-*s %-*s %-*s" % (longest, e, longest, f, | ||
24 | longest, g)) | ||
25 | |||
26 | + # There is no need to report missing module dependencies, | ||
27 | + # if the modules have been disabled in the first place. | ||
28 | + self.missing = list(set(self.missing) - set(mods_disabled)) | ||
29 | + | ||
30 | if self.missing: | ||
31 | print() | ||
32 | print("Python build finished successfully!") | ||
diff --git a/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch b/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch deleted file mode 100644 index e04a91605c..0000000000 --- a/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | From 863c09f640a5dfd33ff22915b0d5fee7bc5df70a Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Sun, 16 Feb 2020 17:50:25 +0100 | ||
4 | Subject: [PATCH] configure.ac, setup.py: do not add a curses include path from | ||
5 | the host | ||
6 | |||
7 | This leads to host contamination, and particularly can cause | ||
8 | curses modules to fail at runtime if the host curses is configured | ||
9 | differently to native curses (observed on current OpenSuse Tumbleweed | ||
10 | as dnf failures). | ||
11 | |||
12 | Upstream-Status: Inappropriate [oe-core specific] | ||
13 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
14 | --- | ||
15 | configure.ac | 6 ------ | ||
16 | setup.py | 2 -- | ||
17 | 2 files changed, 8 deletions(-) | ||
18 | |||
19 | diff --git a/configure.ac b/configure.ac | ||
20 | index 915f475..c911011 100644 | ||
21 | --- a/configure.ac | ||
22 | +++ b/configure.ac | ||
23 | @@ -4828,12 +4828,6 @@ then | ||
24 | [Define if you have struct stat.st_mtimensec]) | ||
25 | fi | ||
26 | |||
27 | -# first curses header check | ||
28 | -ac_save_cppflags="$CPPFLAGS" | ||
29 | -if test "$cross_compiling" = no; then | ||
30 | - CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" | ||
31 | -fi | ||
32 | - | ||
33 | AC_CHECK_HEADERS(curses.h ncurses.h) | ||
34 | |||
35 | # On Solaris, term.h requires curses.h | ||
36 | diff --git a/setup.py b/setup.py | ||
37 | index b0f1541..7208cd0 100644 | ||
38 | --- a/setup.py | ||
39 | +++ b/setup.py | ||
40 | @@ -973,8 +973,6 @@ class PyBuildExt(build_ext): | ||
41 | panel_library = 'panel' | ||
42 | if curses_library == 'ncursesw': | ||
43 | curses_defines.append(('HAVE_NCURSESW', '1')) | ||
44 | - if not CROSS_COMPILING: | ||
45 | - curses_includes.append('/usr/include/ncursesw') | ||
46 | # Bug 1464056: If _curses.so links with ncursesw, | ||
47 | # _curses_panel.so must link with panelw. | ||
48 | panel_library = 'panelw' | ||
diff --git a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch deleted file mode 100644 index 5a39cf8933..0000000000 --- a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | From c52fa7948ef109db1132fdc1aee0b68f8d767b4e Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 14 May 2013 15:00:26 -0700 | ||
4 | Subject: [PATCH 1/2] python3: Add target and native recipes | ||
5 | |||
6 | Upstream-Status: Inappropriate [embedded specific] | ||
7 | |||
8 | 02/2015 Rebased for Python 3.4.2 | ||
9 | |||
10 | The proper prefix is inside our staging area. | ||
11 | Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> | ||
12 | Signed-off-by: Phil Blundell <philb@gnu.org> | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> | ||
15 | --- | ||
16 | Lib/distutils/sysconfig.py | 14 +++++++++++--- | ||
17 | 1 file changed, 11 insertions(+), 3 deletions(-) | ||
18 | |||
19 | diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py | ||
20 | index 4774e12..ccf7d58 100644 | ||
21 | --- a/Lib/distutils/sysconfig.py | ||
22 | +++ b/Lib/distutils/sysconfig.py | ||
23 | @@ -95,7 +95,9 @@ def get_python_inc(plat_specific=0, prefix=None): | ||
24 | If 'prefix' is supplied, use it instead of sys.base_prefix or | ||
25 | sys.base_exec_prefix -- i.e., ignore 'plat_specific'. | ||
26 | """ | ||
27 | - if prefix is None: | ||
28 | + if prefix is None and os.environ.get('STAGING_INCDIR', ""): | ||
29 | + prefix = os.environ['STAGING_INCDIR'].rstrip('include') | ||
30 | + elif prefix is None: | ||
31 | prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX | ||
32 | if os.name == "posix": | ||
33 | if python_build: | ||
34 | @@ -138,7 +140,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): | ||
35 | If 'prefix' is supplied, use it instead of sys.base_prefix or | ||
36 | sys.base_exec_prefix -- i.e., ignore 'plat_specific'. | ||
37 | """ | ||
38 | - if prefix is None: | ||
39 | + if os.environ.get('STAGING_LIBDIR', ""): | ||
40 | + lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1] | ||
41 | + else: | ||
42 | + lib_basename = "lib" | ||
43 | + if prefix is None and os.environ.get('STAGING_LIBDIR', ""): | ||
44 | + prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename) | ||
45 | + elif prefix is None: | ||
46 | if standard_lib: | ||
47 | prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX | ||
48 | else: | ||
49 | @@ -152,7 +160,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): | ||
50 | else: | ||
51 | # Pure Python | ||
52 | libdir = "lib" | ||
53 | - libpython = os.path.join(prefix, libdir, | ||
54 | + libpython = os.path.join(prefix, lib_basename, | ||
55 | "python" + get_python_version()) | ||
56 | if standard_lib: | ||
57 | return libpython | ||
58 | -- | ||
59 | 2.24.0 | ||
60 | |||
diff --git a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch deleted file mode 100644 index 184540e794..0000000000 --- a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From ba7202700578d435b07cfdfb7b57e83185752800 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrei Gherzan <andrei@gherzan.ro> | ||
3 | Date: Mon, 28 Jan 2019 15:57:54 +0000 | ||
4 | Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet | ||
5 | integrated in yocto so we skip the check for this module. Avoid a warning by | ||
6 | not adding this module to missing variable. | ||
7 | |||
8 | Upstream-Status: Inappropriate [distribution] | ||
9 | |||
10 | Also simply disable the tk module since its not in DEPENDS. | ||
11 | Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> | ||
12 | |||
13 | --- | ||
14 | setup.py | 4 ++-- | ||
15 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
16 | |||
17 | diff --git a/setup.py b/setup.py | ||
18 | index ab18ff0..7691258 100644 | ||
19 | --- a/setup.py | ||
20 | +++ b/setup.py | ||
21 | @@ -1706,8 +1706,8 @@ class PyBuildExt(build_ext): | ||
22 | self.detect_decimal() | ||
23 | self.detect_ctypes() | ||
24 | self.detect_multiprocessing() | ||
25 | - if not self.detect_tkinter(): | ||
26 | - self.missing.append('_tkinter') | ||
27 | +# if not self.detect_tkinter(): | ||
28 | +# self.missing.append('_tkinter') | ||
29 | self.detect_uuid() | ||
30 | |||
31 | ## # Uncomment these lines if you want to play with xxmodule.c | ||
diff --git a/meta/recipes-devtools/python/python3/cgi_py.patch b/meta/recipes-devtools/python/python3/cgi_py.patch deleted file mode 100644 index 6c4ba54320..0000000000 --- a/meta/recipes-devtools/python/python3/cgi_py.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 62336285cba38017b35cb761c03f0c7e80a671a3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Mark Hatle <mark.hatle@windriver.com> | ||
3 | Date: Wed, 21 Sep 2011 20:55:33 -0500 | ||
4 | Subject: [PATCH] Lib/cgi.py: Update the script as mentioned in the comment | ||
5 | |||
6 | Upstream-Status: Inappropriate [distribution] | ||
7 | |||
8 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | ||
9 | |||
10 | --- | ||
11 | Lib/cgi.py | 11 +---------- | ||
12 | 1 file changed, 1 insertion(+), 10 deletions(-) | ||
13 | |||
14 | diff --git a/Lib/cgi.py b/Lib/cgi.py | ||
15 | index 8cf6687..094c7b4 100755 | ||
16 | --- a/Lib/cgi.py | ||
17 | +++ b/Lib/cgi.py | ||
18 | @@ -1,13 +1,4 @@ | ||
19 | -#! /usr/local/bin/python | ||
20 | - | ||
21 | -# NOTE: the above "/usr/local/bin/python" is NOT a mistake. It is | ||
22 | -# intentionally NOT "/usr/bin/env python". On many systems | ||
23 | -# (e.g. Solaris), /usr/local/bin is not in $PATH as passed to CGI | ||
24 | -# scripts, and /usr/local/bin is the default directory where Python is | ||
25 | -# installed, so /usr/bin/env would be unable to find python. Granted, | ||
26 | -# binary installations by Linux vendors often install Python in | ||
27 | -# /usr/bin. So let those vendors patch cgi.py to match their choice | ||
28 | -# of installation. | ||
29 | +#! /usr/bin/env python | ||
30 | |||
31 | """Support module for CGI (Common Gateway Interface) scripts. | ||
32 | |||
diff --git a/meta/recipes-devtools/python/python3/create_manifest3.py b/meta/recipes-devtools/python/python3/create_manifest3.py index 4da02a2991..288d5ede3a 100644 --- a/meta/recipes-devtools/python/python3/create_manifest3.py +++ b/meta/recipes-devtools/python/python3/create_manifest3.py | |||
@@ -1,7 +1,7 @@ | |||
1 | # This script is used as a bitbake task to create a new python manifest | 1 | # This script is used as a bitbake task to create a new python manifest |
2 | # $ bitbake python -c create_manifest | 2 | # $ bitbake python -c create_manifest |
3 | # | 3 | # |
4 | # Our goal is to keep python-core as small as posible and add other python | 4 | # Our goal is to keep python-core as small as possible and add other python |
5 | # packages only when the user needs them, hence why we split upstream python | 5 | # packages only when the user needs them, hence why we split upstream python |
6 | # into several packages. | 6 | # into several packages. |
7 | # | 7 | # |
@@ -36,7 +36,7 @@ | |||
36 | # Tha method to handle cached files does not work when a module includes a folder which | 36 | # Tha method to handle cached files does not work when a module includes a folder which |
37 | # itself contains the pycache folder, gladly this is almost never the case. | 37 | # itself contains the pycache folder, gladly this is almost never the case. |
38 | # | 38 | # |
39 | # Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29 at gmail dot com> | 39 | # Author: Alejandro Enedino Hernandez Samaniego <alejandro at enedino dot org> |
40 | 40 | ||
41 | 41 | ||
42 | import sys | 42 | import sys |
@@ -45,6 +45,11 @@ import json | |||
45 | import os | 45 | import os |
46 | import collections | 46 | import collections |
47 | 47 | ||
48 | if '-d' in sys.argv: | ||
49 | debugFlag = '-d' | ||
50 | else: | ||
51 | debugFlag = '' | ||
52 | |||
48 | # Get python version from ${PYTHON_MAJMIN} | 53 | # Get python version from ${PYTHON_MAJMIN} |
49 | pyversion = str(sys.argv[1]) | 54 | pyversion = str(sys.argv[1]) |
50 | 55 | ||
@@ -84,6 +89,12 @@ def prepend_comments(comments, json_manifest): | |||
84 | manifest.seek(0, 0) | 89 | manifest.seek(0, 0) |
85 | manifest.write(comments + json_contents) | 90 | manifest.write(comments + json_contents) |
86 | 91 | ||
92 | def print_indent(msg, offset): | ||
93 | for l in msg.splitlines(): | ||
94 | msg = ' ' * offset + l | ||
95 | print(msg) | ||
96 | |||
97 | |||
87 | # Read existing JSON manifest | 98 | # Read existing JSON manifest |
88 | with open('python3-manifest.json') as manifest: | 99 | with open('python3-manifest.json') as manifest: |
89 | # The JSON format doesn't allow comments so we hack the call to keep the comments using a marker | 100 | # The JSON format doesn't allow comments so we hack the call to keep the comments using a marker |
@@ -99,7 +110,7 @@ with open('python3-manifest.json') as manifest: | |||
99 | # Not exactly the same so it should not be a function | 110 | # Not exactly the same so it should not be a function |
100 | # | 111 | # |
101 | 112 | ||
102 | print ('Getting dependencies for package: core') | 113 | print_indent('Getting dependencies for package: core', 0) |
103 | 114 | ||
104 | 115 | ||
105 | # This special call gets the core dependencies and | 116 | # This special call gets the core dependencies and |
@@ -109,7 +120,7 @@ print ('Getting dependencies for package: core') | |||
109 | # on the new core package, they will still find them | 120 | # on the new core package, they will still find them |
110 | # even when checking the old_manifest | 121 | # even when checking the old_manifest |
111 | 122 | ||
112 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', 'python-core-package']).decode('utf8') | 123 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', 'python-core-package', '%s' % debugFlag]).decode('utf8') |
113 | for coredep in output.split(): | 124 | for coredep in output.split(): |
114 | coredep = coredep.replace(pyversion,'${PYTHON_MAJMIN}') | 125 | coredep = coredep.replace(pyversion,'${PYTHON_MAJMIN}') |
115 | if isCached(coredep): | 126 | if isCached(coredep): |
@@ -149,17 +160,16 @@ for filedep in old_manifest['core']['files']: | |||
149 | # Get actual module name , shouldnt be affected by libdir/bindir, etc. | 160 | # Get actual module name , shouldnt be affected by libdir/bindir, etc. |
150 | pymodule = os.path.splitext(os.path.basename(os.path.normpath(filedep)))[0] | 161 | pymodule = os.path.splitext(os.path.basename(os.path.normpath(filedep)))[0] |
151 | 162 | ||
152 | |||
153 | # We now know that were dealing with a python module, so we can import it | 163 | # We now know that were dealing with a python module, so we can import it |
154 | # and check what its dependencies are. | 164 | # and check what its dependencies are. |
155 | # We launch a separate task for each module for deterministic behavior. | 165 | # We launch a separate task for each module for deterministic behavior. |
156 | # Each module will only import what is necessary for it to work in specific. | 166 | # Each module will only import what is necessary for it to work in specific. |
157 | # The output of each task will contain each module's dependencies | 167 | # The output of each task will contain each module's dependencies |
158 | 168 | ||
159 | print ('Getting dependencies for module: %s' % pymodule) | 169 | print_indent('Getting dependencies for module: %s' % pymodule, 2) |
160 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule]).decode('utf8') | 170 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule, '%s' % debugFlag]).decode('utf8') |
161 | print ('The following dependencies were found for module %s:\n' % pymodule) | 171 | print_indent('The following dependencies were found for module %s:\n' % pymodule, 4) |
162 | print (output) | 172 | print_indent(output, 6) |
163 | 173 | ||
164 | 174 | ||
165 | for pymodule_dep in output.split(): | 175 | for pymodule_dep in output.split(): |
@@ -178,12 +188,13 @@ for filedep in old_manifest['core']['files']: | |||
178 | # all others will use this a base. | 188 | # all others will use this a base. |
179 | 189 | ||
180 | 190 | ||
191 | print('\n\nChecking for directories...\n') | ||
181 | # To improve the script speed, we check which packages contain directories | 192 | # To improve the script speed, we check which packages contain directories |
182 | # since we will be looping through (only) those later. | 193 | # since we will be looping through (only) those later. |
183 | for pypkg in old_manifest: | 194 | for pypkg in old_manifest: |
184 | for filedep in old_manifest[pypkg]['files']: | 195 | for filedep in old_manifest[pypkg]['files']: |
185 | if isFolder(filedep): | 196 | if isFolder(filedep): |
186 | print ('%s is a folder' % filedep) | 197 | print_indent('%s is a directory' % filedep, 2) |
187 | if pypkg not in hasfolders: | 198 | if pypkg not in hasfolders: |
188 | hasfolders.append(pypkg) | 199 | hasfolders.append(pypkg) |
189 | if filedep not in allfolders: | 200 | if filedep not in allfolders: |
@@ -221,14 +232,14 @@ for pypkg in old_manifest: | |||
221 | 232 | ||
222 | print('\n') | 233 | print('\n') |
223 | print('--------------------------') | 234 | print('--------------------------') |
224 | print ('Handling package %s' % pypkg) | 235 | print('Handling package %s' % pypkg) |
225 | print('--------------------------') | 236 | print('--------------------------') |
226 | 237 | ||
227 | # Handle special cases, we assume that when they were manually added | 238 | # Handle special cases, we assume that when they were manually added |
228 | # to the manifest we knew what we were doing. | 239 | # to the manifest we knew what we were doing. |
229 | special_packages = ['misc', 'modules', 'dev', 'tests'] | 240 | special_packages = ['misc', 'modules', 'dev', 'tests'] |
230 | if pypkg in special_packages or 'staticdev' in pypkg: | 241 | if pypkg in special_packages or 'staticdev' in pypkg: |
231 | print('Passing %s package directly' % pypkg) | 242 | print_indent('Passing %s package directly' % pypkg, 2) |
232 | new_manifest[pypkg] = old_manifest[pypkg] | 243 | new_manifest[pypkg] = old_manifest[pypkg] |
233 | continue | 244 | continue |
234 | 245 | ||
@@ -259,7 +270,7 @@ for pypkg in old_manifest: | |||
259 | 270 | ||
260 | # Get actual module name , shouldnt be affected by libdir/bindir, etc. | 271 | # Get actual module name , shouldnt be affected by libdir/bindir, etc. |
261 | # We need to check if the imported module comes from another (e.g. sqlite3.dump) | 272 | # We need to check if the imported module comes from another (e.g. sqlite3.dump) |
262 | path,pymodule = os.path.split(filedep) | 273 | path, pymodule = os.path.split(filedep) |
263 | path = os.path.basename(path) | 274 | path = os.path.basename(path) |
264 | pymodule = os.path.splitext(os.path.basename(pymodule))[0] | 275 | pymodule = os.path.splitext(os.path.basename(pymodule))[0] |
265 | 276 | ||
@@ -279,10 +290,10 @@ for pypkg in old_manifest: | |||
279 | # Each module will only import what is necessary for it to work in specific. | 290 | # Each module will only import what is necessary for it to work in specific. |
280 | # The output of each task will contain each module's dependencies | 291 | # The output of each task will contain each module's dependencies |
281 | 292 | ||
282 | print ('\nGetting dependencies for module: %s' % pymodule) | 293 | print_indent('\nGetting dependencies for module: %s' % pymodule, 2) |
283 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule]).decode('utf8') | 294 | output = subprocess.check_output([sys.executable, 'get_module_deps3.py', '%s' % pymodule, '%s' % debugFlag]).decode('utf8') |
284 | print ('The following dependencies were found for module %s:\n' % pymodule) | 295 | print_indent('The following dependencies were found for module %s:\n' % pymodule, 4) |
285 | print (output) | 296 | print_indent(output, 6) |
286 | 297 | ||
287 | reportFILES = [] | 298 | reportFILES = [] |
288 | reportRDEPS = [] | 299 | reportRDEPS = [] |
@@ -325,7 +336,7 @@ for pypkg in old_manifest: | |||
325 | # print('Checking folder %s on package %s' % (pymodule_dep,pypkg_with_folder)) | 336 | # print('Checking folder %s on package %s' % (pymodule_dep,pypkg_with_folder)) |
326 | for folder_dep in old_manifest[pypkg_with_folder]['files'] or folder_dep in old_manifest[pypkg_with_folder]['cached']: | 337 | for folder_dep in old_manifest[pypkg_with_folder]['files'] or folder_dep in old_manifest[pypkg_with_folder]['cached']: |
327 | if folder_dep == folder: | 338 | if folder_dep == folder: |
328 | print ('%s folder found in %s' % (folder, pypkg_with_folder)) | 339 | print ('%s directory found in %s' % (folder, pypkg_with_folder)) |
329 | folderFound = True | 340 | folderFound = True |
330 | if pypkg_with_folder not in new_manifest[pypkg]['rdepends'] and pypkg_with_folder != pypkg: | 341 | if pypkg_with_folder not in new_manifest[pypkg]['rdepends'] and pypkg_with_folder != pypkg: |
331 | new_manifest[pypkg]['rdepends'].append(pypkg_with_folder) | 342 | new_manifest[pypkg]['rdepends'].append(pypkg_with_folder) |
@@ -424,7 +435,7 @@ prepend_comments(comments,'python3-manifest.json.new') | |||
424 | 435 | ||
425 | if (repeated): | 436 | if (repeated): |
426 | error_msg = '\n\nERROR:\n' | 437 | error_msg = '\n\nERROR:\n' |
427 | error_msg += 'The following files are repeated (contained in more than one package),\n' | 438 | error_msg += 'The following files were found in more than one package),\n' |
428 | error_msg += 'this is likely to happen when new files are introduced after an upgrade,\n' | 439 | error_msg += 'this is likely to happen when new files are introduced after an upgrade,\n' |
429 | error_msg += 'please check which package should get it,\n modify the manifest accordingly and re-run the create_manifest task:\n' | 440 | error_msg += 'please check which package should get it,\n modify the manifest accordingly and re-run the create_manifest task:\n' |
430 | error_msg += '\n'.join(repeated) | 441 | error_msg += '\n'.join(repeated) |
diff --git a/meta/recipes-devtools/python/python3/crosspythonpath.patch b/meta/recipes-devtools/python/python3/crosspythonpath.patch deleted file mode 100644 index d789ab57d4..0000000000 --- a/meta/recipes-devtools/python/python3/crosspythonpath.patch +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD | ||
2 | |||
3 | When building x86->x86 the system will try to execute .so and related items | ||
4 | from the default PYTHONPATH. This will fail if the target CPU contains | ||
5 | instructions that the host CPU does not have, add CROSSPYTHONPATH | ||
6 | into PYTHONPATH so we can prepend the list to find correct libs. | ||
7 | |||
8 | Upstream-Status: Inappropriate [OE-Core integration specific] | ||
9 | |||
10 | Credits-to: Mark Hatle <mark.hatle@windriver.com> | ||
11 | Credits-to: Jackie Huang <jackie.huang@windriver.com> | ||
12 | Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com> | ||
13 | diff --git a/configure.ac b/configure.ac | ||
14 | index 4ab19a6..7036a53 100644 | ||
15 | --- a/configure.ac | ||
16 | +++ b/configure.ac | ||
17 | @@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then | ||
18 | AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) | ||
19 | fi | ||
20 | AC_MSG_RESULT($interp) | ||
21 | - PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp | ||
22 | + PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH):$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp | ||
23 | fi | ||
24 | elif test "$cross_compiling" = maybe; then | ||
25 | AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) | ||
diff --git a/meta/recipes-devtools/python/python3/get_module_deps3.py b/meta/recipes-devtools/python/python3/get_module_deps3.py index 6806f23172..8e432b49af 100644 --- a/meta/recipes-devtools/python/python3/get_module_deps3.py +++ b/meta/recipes-devtools/python/python3/get_module_deps3.py | |||
@@ -3,14 +3,18 @@ | |||
3 | # them out, the output of this execution will have all dependencies | 3 | # them out, the output of this execution will have all dependencies |
4 | # for a specific module, which will be parsed an dealt on create_manifest.py | 4 | # for a specific module, which will be parsed an dealt on create_manifest.py |
5 | # | 5 | # |
6 | # Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com> | 6 | # Author: Alejandro Enedino Hernandez Samaniego <alejandro at enedino dot org> |
7 | 7 | ||
8 | # We can get a log per module, for all the dependencies that were found, but its messy. | ||
9 | debug=False | ||
10 | 8 | ||
11 | import sys | 9 | import sys |
12 | import os | 10 | import os |
13 | 11 | ||
12 | # We can get a log per module, for all the dependencies that were found, but its messy. | ||
13 | if '-d' in sys.argv: | ||
14 | debug = True | ||
15 | else: | ||
16 | debug = False | ||
17 | |||
14 | # We can get a list of the modules which are currently required to run python | 18 | # We can get a list of the modules which are currently required to run python |
15 | # so we run python-core and get its modules, we then import what we need | 19 | # so we run python-core and get its modules, we then import what we need |
16 | # and check what modules are currently running, if we substract them from the | 20 | # and check what modules are currently running, if we substract them from the |
@@ -19,16 +23,16 @@ import os | |||
19 | # We use importlib to achieve this, so we also need to know what modules importlib needs | 23 | # We use importlib to achieve this, so we also need to know what modules importlib needs |
20 | import importlib | 24 | import importlib |
21 | 25 | ||
22 | core_deps=set(sys.modules) | 26 | core_deps = set(sys.modules) |
23 | 27 | ||
24 | def fix_path(dep_path): | 28 | def fix_path(dep_path): |
25 | import os | 29 | import os |
26 | # We DONT want the path on our HOST system | 30 | # We DONT want the path on our HOST system |
27 | pivot='recipe-sysroot-native' | 31 | pivot = 'recipe-sysroot-native' |
28 | dep_path=dep_path[dep_path.find(pivot)+len(pivot):] | 32 | dep_path = dep_path[dep_path.find(pivot)+len(pivot):] |
29 | 33 | ||
30 | if '/usr/bin' in dep_path: | 34 | if '/usr/bin' in dep_path: |
31 | dep_path = dep_path.replace('/usr/bin''${bindir}') | 35 | dep_path = dep_path.replace('/usr/bin','${bindir}') |
32 | 36 | ||
33 | # Handle multilib, is there a better way? | 37 | # Handle multilib, is there a better way? |
34 | if '/usr/lib32' in dep_path: | 38 | if '/usr/lib32' in dep_path: |
@@ -46,13 +50,13 @@ def fix_path(dep_path): | |||
46 | 50 | ||
47 | # Module to import was passed as an argument | 51 | # Module to import was passed as an argument |
48 | current_module = str(sys.argv[1]).rstrip() | 52 | current_module = str(sys.argv[1]).rstrip() |
49 | if(debug==True): | 53 | if debug == True: |
50 | log = open('log_%s' % current_module,'w') | 54 | log = open('temp/log_%s' % current_module.strip('.*'),'w') |
51 | log.write('Module %s generated the following dependencies:\n' % current_module) | 55 | log.write('Module %s generated the following dependencies:\n' % current_module) |
52 | try: | 56 | try: |
53 | m = importlib.import_module(current_module) | 57 | m = importlib.import_module(current_module) |
54 | # handle python packages which may not include all modules in the __init__ | 58 | # handle python packages which may not include all modules in the __init__ |
55 | if os.path.basename(m.__file__) == "__init__.py": | 59 | if hasattr(m, '__file__') and os.path.basename(m.__file__) == "__init__.py": |
56 | modulepath = os.path.dirname(m.__file__) | 60 | modulepath = os.path.dirname(m.__file__) |
57 | for i in os.listdir(modulepath): | 61 | for i in os.listdir(modulepath): |
58 | if i.startswith("_") or not(i.endswith(".py")): | 62 | if i.startswith("_") or not(i.endswith(".py")): |
@@ -63,13 +67,13 @@ try: | |||
63 | except: | 67 | except: |
64 | pass # ignore all import or other exceptions raised during import | 68 | pass # ignore all import or other exceptions raised during import |
65 | except ImportError as e: | 69 | except ImportError as e: |
66 | if (debug==True): | 70 | if debug == True: |
67 | log.write('Module was not found') | 71 | log.write('Module was not found\n') |
68 | pass | 72 | pass |
69 | 73 | ||
70 | 74 | ||
71 | # Get current module dependencies, dif will contain a list of specific deps for this module | 75 | # Get current module dependencies, dif will contain a list of specific deps for this module |
72 | module_deps=set(sys.modules) | 76 | module_deps = set(sys.modules) |
73 | 77 | ||
74 | # We handle the core package (1st pass on create_manifest.py) as a special case | 78 | # We handle the core package (1st pass on create_manifest.py) as a special case |
75 | if current_module == 'python-core-package': | 79 | if current_module == 'python-core-package': |
@@ -81,14 +85,18 @@ else: | |||
81 | 85 | ||
82 | # Check where each dependency came from | 86 | # Check where each dependency came from |
83 | for item in dif: | 87 | for item in dif: |
84 | dep_path='' | 88 | # Main module returns script filename, __main matches mp_main__ as well |
89 | if 'main__' in item: | ||
90 | continue | ||
91 | |||
92 | dep_path = '' | ||
85 | try: | 93 | try: |
86 | if (debug==True): | 94 | if debug == True: |
87 | log.write('Calling: sys.modules[' + '%s' % item + '].__file__\n') | 95 | log.write('\nCalling: sys.modules[' + '%s' % item + '].__file__\n') |
88 | dep_path = sys.modules['%s' % item].__file__ | 96 | dep_path = sys.modules['%s' % item].__file__ |
89 | except AttributeError as e: | 97 | except AttributeError as e: |
90 | # Deals with thread (builtin module) not having __file__ attribute | 98 | # Deals with thread (builtin module) not having __file__ attribute |
91 | if debug==True: | 99 | if debug == True: |
92 | log.write(item + ' ') | 100 | log.write(item + ' ') |
93 | log.write(str(e)) | 101 | log.write(str(e)) |
94 | log.write('\n') | 102 | log.write('\n') |
@@ -96,11 +104,16 @@ for item in dif: | |||
96 | except NameError as e: | 104 | except NameError as e: |
97 | # Deals with NameError: name 'dep_path' is not defined | 105 | # Deals with NameError: name 'dep_path' is not defined |
98 | # because module is not found (wasn't compiled?), e.g. bddsm | 106 | # because module is not found (wasn't compiled?), e.g. bddsm |
99 | if (debug==True): | 107 | if debug == True: |
100 | log.write(item+' ') | 108 | log.write(item+' ') |
101 | log.write(str(e)) | 109 | log.write(str(e)) |
102 | pass | 110 | pass |
103 | 111 | ||
112 | if dep_path == '': | ||
113 | continue | ||
114 | if debug == True: | ||
115 | log.write('Dependency path found:\n%s\n' % dep_path) | ||
116 | |||
104 | # Site-customize is a special case since we (OpenEmbedded) put it there manually | 117 | # Site-customize is a special case since we (OpenEmbedded) put it there manually |
105 | if 'sitecustomize' in dep_path: | 118 | if 'sitecustomize' in dep_path: |
106 | dep_path = '${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py' | 119 | dep_path = '${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py' |
@@ -111,52 +124,51 @@ for item in dif: | |||
111 | dep_path = fix_path(dep_path) | 124 | dep_path = fix_path(dep_path) |
112 | 125 | ||
113 | import sysconfig | 126 | import sysconfig |
114 | soabi=sysconfig.get_config_var('SOABI') | 127 | soabi = sysconfig.get_config_var('SOABI') |
115 | # Check if its a shared library and deconstruct it | 128 | # Check if its a shared library and deconstruct it |
116 | if soabi in dep_path: | 129 | if soabi in dep_path: |
117 | if (debug==True): | 130 | if debug == True: |
118 | log.write('Shared library found in %s' % dep_path) | 131 | log.write('Shared library found in %s\n' % dep_path) |
119 | dep_path = dep_path.replace(soabi,'*') | 132 | dep_path = dep_path.replace(soabi,'*') |
120 | print (dep_path) | 133 | print (dep_path) |
121 | continue | 134 | continue |
122 | if "_sysconfigdata" in dep_path: | 135 | if "_sysconfigdata" in dep_path: |
123 | dep_path = dep_path.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") | 136 | dep_path = dep_path.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") |
124 | 137 | ||
125 | if (debug==True): | 138 | if debug == True: |
126 | log.write(dep_path+'\n') | 139 | log.write(dep_path+'\n') |
127 | # Prints out result, which is what will be used by create_manifest | 140 | # Prints out result, which is what will be used by create_manifest |
128 | print (dep_path) | 141 | print (dep_path) |
129 | 142 | ||
130 | 143 | ||
131 | import imp | 144 | cpython_tag = sys.implementation.cache_tag |
132 | cpython_tag = imp.get_tag() | 145 | cached = '' |
133 | cached='' | ||
134 | # Theres no naive way to find *.pyc files on python3 | 146 | # Theres no naive way to find *.pyc files on python3 |
135 | try: | 147 | try: |
136 | if (debug==True): | 148 | if debug == True: |
137 | log.write('Calling: sys.modules[' + '%s' % item + '].__cached__\n') | 149 | log.write('\nCalling: sys.modules[' + '%s' % item + '].__cached__\n') |
138 | cached = sys.modules['%s' % item].__cached__ | 150 | cached = sys.modules['%s' % item].__cached__ |
139 | except AttributeError as e: | 151 | except AttributeError as e: |
140 | # Deals with thread (builtin module) not having __cached__ attribute | 152 | # Deals with thread (builtin module) not having __cached__ attribute |
141 | if debug==True: | 153 | if debug == True: |
142 | log.write(item + ' ') | 154 | log.write(item + ' ') |
143 | log.write(str(e)) | 155 | log.write(str(e)) |
144 | log.write('\n') | 156 | log.write('\n') |
145 | pass | 157 | pass |
146 | except NameError as e: | 158 | except NameError as e: |
147 | # Deals with NameError: name 'cached' is not defined | 159 | # Deals with NameError: name 'cached' is not defined |
148 | if (debug==True): | 160 | if debug == True: |
149 | log.write(item+' ') | 161 | log.write(item+' ') |
150 | log.write(str(e)) | 162 | log.write(str(e)) |
151 | pass | 163 | pass |
152 | if cached is not None: | 164 | if cached is not None: |
153 | if (debug==True): | 165 | if debug == True: |
154 | log.write(cached) | 166 | log.write(cached + '\n') |
155 | cached = fix_path(cached) | 167 | cached = fix_path(cached) |
156 | cached = cached.replace(cpython_tag,'*') | 168 | cached = cached.replace(cpython_tag,'*') |
157 | if "_sysconfigdata" in cached: | 169 | if "_sysconfigdata" in cached: |
158 | cached = cached.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") | 170 | cached = cached.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") |
159 | print (cached) | 171 | print (cached) |
160 | 172 | ||
161 | if debug==True: | 173 | if debug == True: |
162 | log.close() | 174 | log.close() |
diff --git a/meta/recipes-devtools/python/python3/makerace.patch b/meta/recipes-devtools/python/python3/makerace.patch new file mode 100644 index 0000000000..b115a6fa65 --- /dev/null +++ b/meta/recipes-devtools/python/python3/makerace.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 2b458b4e1bcd57e3f135d3f0e715f64b98b27906 Mon Sep 17 00:00:00 2001 | ||
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
3 | Date: Tue, 13 Jul 2021 23:19:29 +0100 | ||
4 | Subject: [PATCH] python3: Fix make race | ||
5 | |||
6 | libainstall installs python-config.py but the .pyc cache files are generated | ||
7 | by the libinstall target. This means some builds may not generate the pyc files | ||
8 | for python-config.py depending on the order things happen in. This means builds | ||
9 | are not always reproducible. | ||
10 | |||
11 | Add a dependency to avoid the race. | ||
12 | |||
13 | Upstream-Status: Pending | ||
14 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
15 | --- | ||
16 | Makefile.pre.in | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/Makefile.pre.in b/Makefile.pre.in | ||
20 | index be1b9ea..9ec3a71 100644 | ||
21 | --- a/Makefile.pre.in | ||
22 | +++ b/Makefile.pre.in | ||
23 | @@ -2485,7 +2485,7 @@ COMPILEALL_OPTS=-j0 | ||
24 | TEST_MODULES=@TEST_MODULES@ | ||
25 | |||
26 | .PHONY: libinstall | ||
27 | -libinstall: all $(srcdir)/Modules/xxmodule.c | ||
28 | +libinstall: all $(srcdir)/Modules/xxmodule.c libainstall | ||
29 | @for i in $(SCRIPTDIR) $(LIBDEST); \ | ||
30 | do \ | ||
31 | if test ! -d $(DESTDIR)$$i; then \ | ||
diff --git a/meta/recipes-devtools/python/python3/python-config.patch b/meta/recipes-devtools/python/python3/python-config.patch deleted file mode 100644 index d0ddbbc7fd..0000000000 --- a/meta/recipes-devtools/python/python3/python-config.patch +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | From 57d073c12e7bede29919117b0141df14015eb27f Mon Sep 17 00:00:00 2001 | ||
2 | From: Tyler Hall <tylerwhall@gmail.com> | ||
3 | Date: Sun, 4 May 2014 20:06:43 -0400 | ||
4 | Subject: [PATCH] python-config: Revert to using distutils.sysconfig | ||
5 | |||
6 | The newer sysconfig module shares some code with distutils.sysconfig, but the same modifications as in | ||
7 | |||
8 | 12-distutils-prefix-is-inside-staging-area.patch makes distutils.sysconfig | ||
9 | |||
10 | affect the native runtime as well as cross building. Use the old, patched | ||
11 | implementation which returns paths in the staging directory and for the target, | ||
12 | as appropriate. | ||
13 | |||
14 | Upstream-Status: Inappropriate [Embedded Specific] | ||
15 | |||
16 | Signed-off-by: Tyler Hall <tylerwhall@gmail.com> | ||
17 | : | ||
18 | |||
19 | --- | ||
20 | Misc/python-config.in | 10 +++++----- | ||
21 | 1 file changed, 5 insertions(+), 5 deletions(-) | ||
22 | |||
23 | diff --git a/Misc/python-config.in b/Misc/python-config.in | ||
24 | index ebd99da..13e57ae 100644 | ||
25 | --- a/Misc/python-config.in | ||
26 | +++ b/Misc/python-config.in | ||
27 | @@ -6,7 +6,7 @@ | ||
28 | import getopt | ||
29 | import os | ||
30 | import sys | ||
31 | -import sysconfig | ||
32 | +from distutils import sysconfig | ||
33 | |||
34 | valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', | ||
35 | 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir', | ||
36 | @@ -35,14 +35,14 @@ if '--help' in opt_flags: | ||
37 | |||
38 | for opt in opt_flags: | ||
39 | if opt == '--prefix': | ||
40 | - print(getvar('prefix')) | ||
41 | + print(sysconfig.PREFIX) | ||
42 | |||
43 | elif opt == '--exec-prefix': | ||
44 | - print(getvar('exec_prefix')) | ||
45 | + print(sysconfig.EXEC_PREFIX) | ||
46 | |||
47 | elif opt in ('--includes', '--cflags'): | ||
48 | - flags = ['-I' + sysconfig.get_path('include'), | ||
49 | - '-I' + sysconfig.get_path('platinclude')] | ||
50 | + flags = ['-I' + sysconfig.get_python_inc(), | ||
51 | + '-I' + sysconfig.get_python_inc(plat_specific=True)] | ||
52 | if opt == '--cflags': | ||
53 | flags.extend(getvar('CFLAGS').split()) | ||
54 | print(' '.join(flags)) | ||
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json index 615dc3a5e5..441830833b 100644 --- a/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/meta/recipes-devtools/python/python3/python3-manifest.json | |||
@@ -1,7 +1,7 @@ | |||
1 | # DO NOT (entirely) modify this file manually, please read. | 1 | # DO NOT (entirely) modify this file manually, please read. |
2 | # | 2 | # |
3 | # IMPORTANT NOTE: | 3 | # IMPORTANT NOTE: |
4 | # Please keep in mind that the create_manifest task relies on the fact the the | 4 | # Please keep in mind that the create_manifest task relies on the fact that the |
5 | # target and native Python packages are the same, and it also needs to be executed | 5 | # target and native Python packages are the same, and it also needs to be executed |
6 | # with a fully working native package (with all the PACKAGECONFIGs enabled and all | 6 | # with a fully working native package (with all the PACKAGECONFIGs enabled and all |
7 | # and all the modules should be working, check log.do_compile), otherwise the script | 7 | # and all the modules should be working, check log.do_compile), otherwise the script |
@@ -103,17 +103,6 @@ | |||
103 | ], | 103 | ], |
104 | "cached": [] | 104 | "cached": [] |
105 | }, | 105 | }, |
106 | "2to3": { | ||
107 | "summary": "Python automated Python 2 to 3 code translator", | ||
108 | "rdepends": [ | ||
109 | "core" | ||
110 | ], | ||
111 | "files": [ | ||
112 | "${bindir}/2to3*", | ||
113 | "${libdir}/python${PYTHON_MAJMIN}/lib2to3" | ||
114 | ], | ||
115 | "cached": [] | ||
116 | }, | ||
117 | "asyncio": { | 106 | "asyncio": { |
118 | "summary": "Python Asynchronous I/O", | 107 | "summary": "Python Asynchronous I/O", |
119 | "rdepends": [ | 108 | "rdepends": [ |
@@ -138,17 +127,9 @@ | |||
138 | "core" | 127 | "core" |
139 | ], | 128 | ], |
140 | "files": [ | 129 | "files": [ |
141 | "${libdir}/python${PYTHON_MAJMIN}/chunk.py", | ||
142 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/audioop.*.so", | ||
143 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/ossaudiodev.*.so", | ||
144 | "${libdir}/python${PYTHON_MAJMIN}/sndhdr.py", | ||
145 | "${libdir}/python${PYTHON_MAJMIN}/sunau.py", | ||
146 | "${libdir}/python${PYTHON_MAJMIN}/wave.py" | 130 | "${libdir}/python${PYTHON_MAJMIN}/wave.py" |
147 | ], | 131 | ], |
148 | "cached": [ | 132 | "cached": [ |
149 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/chunk.*.pyc", | ||
150 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sndhdr.*.pyc", | ||
151 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sunau.*.pyc", | ||
152 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/wave.*.pyc" | 133 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/wave.*.pyc" |
153 | ] | 134 | ] |
154 | }, | 135 | }, |
@@ -158,12 +139,9 @@ | |||
158 | "core" | 139 | "core" |
159 | ], | 140 | ], |
160 | "files": [ | 141 | "files": [ |
161 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multibytecodec.*.so", | 142 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multibytecodec.*.so" |
162 | "${libdir}/python${PYTHON_MAJMIN}/xdrlib.py" | ||
163 | ], | 143 | ], |
164 | "cached": [ | 144 | "cached": [] |
165 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/xdrlib.*.pyc" | ||
166 | ] | ||
167 | }, | 145 | }, |
168 | "compile": { | 146 | "compile": { |
169 | "summary": "Python bytecode compilation support", | 147 | "summary": "Python bytecode compilation support", |
@@ -189,17 +167,17 @@ | |||
189 | "files": [ | 167 | "files": [ |
190 | "${libdir}/python${PYTHON_MAJMIN}/gzip.py", | 168 | "${libdir}/python${PYTHON_MAJMIN}/gzip.py", |
191 | "${libdir}/python${PYTHON_MAJMIN}/tarfile.py", | 169 | "${libdir}/python${PYTHON_MAJMIN}/tarfile.py", |
192 | "${libdir}/python${PYTHON_MAJMIN}/zipfile.py" | 170 | "${libdir}/python${PYTHON_MAJMIN}/zipfile", |
171 | "${libdir}/python${PYTHON_MAJMIN}/zipfile/_path" | ||
193 | ], | 172 | ], |
194 | "cached": [ | 173 | "cached": [ |
195 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc", | 174 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc", |
196 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc", | 175 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc" |
197 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipfile.*.pyc" | ||
198 | ] | 176 | ] |
199 | }, | 177 | }, |
200 | "core": { | 178 | "core": { |
201 | "summary": "Python interpreter and core modules", | 179 | "summary": "Python interpreter and core modules", |
202 | "rdepends": [], | 180 | "rdepends": ["compression"], |
203 | "files": [ | 181 | "files": [ |
204 | "${bindir}/python${PYTHON_MAJMIN}", | 182 | "${bindir}/python${PYTHON_MAJMIN}", |
205 | "${bindir}/python${PYTHON_MAJMIN}.real", | 183 | "${bindir}/python${PYTHON_MAJMIN}.real", |
@@ -212,8 +190,12 @@ | |||
212 | "${libdir}/python${PYTHON_MAJMIN}/_abcoll.py", | 190 | "${libdir}/python${PYTHON_MAJMIN}/_abcoll.py", |
213 | "${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py", | 191 | "${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py", |
214 | "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py", | 192 | "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py", |
193 | "${libdir}/python${PYTHON_MAJMIN}/_colorize.py", | ||
215 | "${libdir}/python${PYTHON_MAJMIN}/_compression.py", | 194 | "${libdir}/python${PYTHON_MAJMIN}/_compression.py", |
216 | "${libdir}/python${PYTHON_MAJMIN}/_markupbase.py", | 195 | "${libdir}/python${PYTHON_MAJMIN}/_markupbase.py", |
196 | "${libdir}/python${PYTHON_MAJMIN}/_opcode_metadata.py", | ||
197 | "${libdir}/python${PYTHON_MAJMIN}/_pyrepl", | ||
198 | "${libdir}/python${PYTHON_MAJMIN}/_pyrepl/pager.py", | ||
217 | "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py", | 199 | "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py", |
218 | "${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py", | 200 | "${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py", |
219 | "${libdir}/python${PYTHON_MAJMIN}/_weakrefset.py", | 201 | "${libdir}/python${PYTHON_MAJMIN}/_weakrefset.py", |
@@ -232,6 +214,7 @@ | |||
232 | "${libdir}/python${PYTHON_MAJMIN}/copy.py", | 214 | "${libdir}/python${PYTHON_MAJMIN}/copy.py", |
233 | "${libdir}/python${PYTHON_MAJMIN}/copyreg.py", | 215 | "${libdir}/python${PYTHON_MAJMIN}/copyreg.py", |
234 | "${libdir}/python${PYTHON_MAJMIN}/csv.py", | 216 | "${libdir}/python${PYTHON_MAJMIN}/csv.py", |
217 | "${libdir}/python${PYTHON_MAJMIN}/dataclasses.py", | ||
235 | "${libdir}/python${PYTHON_MAJMIN}/dis.py", | 218 | "${libdir}/python${PYTHON_MAJMIN}/dis.py", |
236 | "${libdir}/python${PYTHON_MAJMIN}/encodings", | 219 | "${libdir}/python${PYTHON_MAJMIN}/encodings", |
237 | "${libdir}/python${PYTHON_MAJMIN}/encodings/aliases.py", | 220 | "${libdir}/python${PYTHON_MAJMIN}/encodings/aliases.py", |
@@ -243,9 +226,11 @@ | |||
243 | "${libdir}/python${PYTHON_MAJMIN}/genericpath.py", | 226 | "${libdir}/python${PYTHON_MAJMIN}/genericpath.py", |
244 | "${libdir}/python${PYTHON_MAJMIN}/getopt.py", | 227 | "${libdir}/python${PYTHON_MAJMIN}/getopt.py", |
245 | "${libdir}/python${PYTHON_MAJMIN}/gettext.py", | 228 | "${libdir}/python${PYTHON_MAJMIN}/gettext.py", |
229 | "${libdir}/python${PYTHON_MAJMIN}/glob.py", | ||
246 | "${libdir}/python${PYTHON_MAJMIN}/heapq.py", | 230 | "${libdir}/python${PYTHON_MAJMIN}/heapq.py", |
247 | "${libdir}/python${PYTHON_MAJMIN}/imp.py", | 231 | "${libdir}/python${PYTHON_MAJMIN}/imp.py", |
248 | "${libdir}/python${PYTHON_MAJMIN}/importlib", | 232 | "${libdir}/python${PYTHON_MAJMIN}/importlib", |
233 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_abc.py", | ||
249 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap.py", | 234 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap.py", |
250 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap_external.py", | 235 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap_external.py", |
251 | "${libdir}/python${PYTHON_MAJMIN}/importlib/abc.py", | 236 | "${libdir}/python${PYTHON_MAJMIN}/importlib/abc.py", |
@@ -253,6 +238,7 @@ | |||
253 | "${libdir}/python${PYTHON_MAJMIN}/importlib/util.py", | 238 | "${libdir}/python${PYTHON_MAJMIN}/importlib/util.py", |
254 | "${libdir}/python${PYTHON_MAJMIN}/inspect.py", | 239 | "${libdir}/python${PYTHON_MAJMIN}/inspect.py", |
255 | "${libdir}/python${PYTHON_MAJMIN}/io.py", | 240 | "${libdir}/python${PYTHON_MAJMIN}/io.py", |
241 | "${libdir}/python${PYTHON_MAJMIN}/ipaddress.py", | ||
256 | "${libdir}/python${PYTHON_MAJMIN}/keyword.py", | 242 | "${libdir}/python${PYTHON_MAJMIN}/keyword.py", |
257 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/_struct.*.so", | 243 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/_struct.*.so", |
258 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/binascii.*.so", | 244 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/binascii.*.so", |
@@ -266,8 +252,10 @@ | |||
266 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so", | 252 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so", |
267 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so", | 253 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so", |
268 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so", | 254 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so", |
255 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_typing.*.so", | ||
269 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so", | 256 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so", |
270 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so", | 257 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so", |
258 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/fcntl.*.so", | ||
271 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so", | 259 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so", |
272 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so", | 260 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so", |
273 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so", | 261 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so", |
@@ -286,11 +274,18 @@ | |||
286 | "${libdir}/python${PYTHON_MAJMIN}/operator.py", | 274 | "${libdir}/python${PYTHON_MAJMIN}/operator.py", |
287 | "${libdir}/python${PYTHON_MAJMIN}/optparse.py", | 275 | "${libdir}/python${PYTHON_MAJMIN}/optparse.py", |
288 | "${libdir}/python${PYTHON_MAJMIN}/os.py", | 276 | "${libdir}/python${PYTHON_MAJMIN}/os.py", |
277 | "${libdir}/python${PYTHON_MAJMIN}/pathlib", | ||
289 | "${libdir}/python${PYTHON_MAJMIN}/pathlib.py", | 278 | "${libdir}/python${PYTHON_MAJMIN}/pathlib.py", |
279 | "${libdir}/python${PYTHON_MAJMIN}/pathlib/_abc.py", | ||
280 | "${libdir}/python${PYTHON_MAJMIN}/pathlib/_local.py", | ||
290 | "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py", | 281 | "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py", |
291 | "${libdir}/python${PYTHON_MAJMIN}/platform.py", | 282 | "${libdir}/python${PYTHON_MAJMIN}/platform.py", |
292 | "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", | 283 | "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", |
293 | "${libdir}/python${PYTHON_MAJMIN}/re.py", | 284 | "${libdir}/python${PYTHON_MAJMIN}/re", |
285 | "${libdir}/python${PYTHON_MAJMIN}/re/_casefix.py", | ||
286 | "${libdir}/python${PYTHON_MAJMIN}/re/_compiler.py", | ||
287 | "${libdir}/python${PYTHON_MAJMIN}/re/_constants.py", | ||
288 | "${libdir}/python${PYTHON_MAJMIN}/re/_parser.py", | ||
294 | "${libdir}/python${PYTHON_MAJMIN}/reprlib.py", | 289 | "${libdir}/python${PYTHON_MAJMIN}/reprlib.py", |
295 | "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", | 290 | "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", |
296 | "${libdir}/python${PYTHON_MAJMIN}/runpy.py", | 291 | "${libdir}/python${PYTHON_MAJMIN}/runpy.py", |
@@ -307,6 +302,7 @@ | |||
307 | "${libdir}/python${PYTHON_MAJMIN}/struct.py", | 302 | "${libdir}/python${PYTHON_MAJMIN}/struct.py", |
308 | "${libdir}/python${PYTHON_MAJMIN}/subprocess.py", | 303 | "${libdir}/python${PYTHON_MAJMIN}/subprocess.py", |
309 | "${libdir}/python${PYTHON_MAJMIN}/symbol.py", | 304 | "${libdir}/python${PYTHON_MAJMIN}/symbol.py", |
305 | "${libdir}/python${PYTHON_MAJMIN}/sysconfig", | ||
310 | "${libdir}/python${PYTHON_MAJMIN}/sysconfig.py", | 306 | "${libdir}/python${PYTHON_MAJMIN}/sysconfig.py", |
311 | "${libdir}/python${PYTHON_MAJMIN}/textwrap.py", | 307 | "${libdir}/python${PYTHON_MAJMIN}/textwrap.py", |
312 | "${libdir}/python${PYTHON_MAJMIN}/threading.py", | 308 | "${libdir}/python${PYTHON_MAJMIN}/threading.py", |
@@ -319,14 +315,17 @@ | |||
319 | "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py", | 315 | "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py", |
320 | "${libdir}/python${PYTHON_MAJMIN}/warnings.py", | 316 | "${libdir}/python${PYTHON_MAJMIN}/warnings.py", |
321 | "${libdir}/python${PYTHON_MAJMIN}/weakref.py", | 317 | "${libdir}/python${PYTHON_MAJMIN}/weakref.py", |
318 | "${libdir}/python${PYTHON_MAJMIN}/zipimport.py", | ||
322 | "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]" | 319 | "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]" |
323 | ], | 320 | ], |
324 | "cached": [ | 321 | "cached": [ |
325 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc", | 322 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc", |
326 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc", | 323 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc", |
327 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc", | 324 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc", |
325 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_colorize.*.pyc", | ||
328 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc", | 326 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc", |
329 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc", | 327 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc", |
328 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_opcode_metadata.*.pyc", | ||
330 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc", | 329 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc", |
331 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.*.pyc", | 330 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.*.pyc", |
332 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_weakrefset.*.pyc", | 331 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_weakrefset.*.pyc", |
@@ -343,6 +342,7 @@ | |||
343 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copy.*.pyc", | 342 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copy.*.pyc", |
344 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copyreg.*.pyc", | 343 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copyreg.*.pyc", |
345 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc", | 344 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc", |
345 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dataclasses.*.pyc", | ||
346 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc", | 346 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc", |
347 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc", | 347 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc", |
348 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc", | 348 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc", |
@@ -350,10 +350,12 @@ | |||
350 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc", | 350 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc", |
351 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc", | 351 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc", |
352 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gettext.*.pyc", | 352 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gettext.*.pyc", |
353 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc", | ||
353 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/heapq.*.pyc", | 354 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/heapq.*.pyc", |
354 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imp.*.pyc", | 355 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imp.*.pyc", |
355 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/inspect.*.pyc", | 356 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/inspect.*.pyc", |
356 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/io.*.pyc", | 357 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/io.*.pyc", |
358 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ipaddress.*.pyc", | ||
357 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc", | 359 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc", |
358 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc", | 360 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc", |
359 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc", | 361 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc", |
@@ -393,6 +395,8 @@ | |||
393 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/typing.*.pyc", | 395 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/typing.*.pyc", |
394 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/warnings.*.pyc", | 396 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/warnings.*.pyc", |
395 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/weakref.*.pyc", | 397 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/weakref.*.pyc", |
398 | "${libdir}/python${PYTHON_MAJMIN}/_pyrepl/__pycache__", | ||
399 | "${libdir}/python${PYTHON_MAJMIN}/_pyrepl/__pycache__/pager.*.pyc", | ||
396 | "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__", | 400 | "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__", |
397 | "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__/abc.*.pyc", | 401 | "${libdir}/python${PYTHON_MAJMIN}/collections/__pycache__/abc.*.pyc", |
398 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__", | 402 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__", |
@@ -400,9 +404,19 @@ | |||
400 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/latin_1.*.pyc", | 404 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/latin_1.*.pyc", |
401 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/utf_8.*.pyc", | 405 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/utf_8.*.pyc", |
402 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__", | 406 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__", |
407 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/_abc.*.pyc", | ||
403 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc", | 408 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc", |
404 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc", | 409 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc", |
405 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc", | 410 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc", |
411 | "${libdir}/python${PYTHON_MAJMIN}/pathlib/__pycache__", | ||
412 | "${libdir}/python${PYTHON_MAJMIN}/pathlib/__pycache__/_abc.*.pyc", | ||
413 | "${libdir}/python${PYTHON_MAJMIN}/pathlib/__pycache__/_local.*.pyc", | ||
414 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__", | ||
415 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_casefix.*.pyc", | ||
416 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_compiler.*.pyc", | ||
417 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_constants.*.pyc", | ||
418 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_parser.*.pyc", | ||
419 | "${libdir}/python${PYTHON_MAJMIN}/sysconfig/__pycache__", | ||
406 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", | 420 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", |
407 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc" | 421 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc" |
408 | ] | 422 | ] |
@@ -410,24 +424,18 @@ | |||
410 | "crypt": { | 424 | "crypt": { |
411 | "summary": "Python basic cryptographic and hashing support", | 425 | "summary": "Python basic cryptographic and hashing support", |
412 | "rdepends": [ | 426 | "rdepends": [ |
413 | "core", | 427 | "core" |
414 | "math", | ||
415 | "stringold" | ||
416 | ], | 428 | ], |
417 | "files": [ | 429 | "files": [ |
418 | "${libdir}/python${PYTHON_MAJMIN}/crypt.py", | ||
419 | "${libdir}/python${PYTHON_MAJMIN}/hashlib.py", | 430 | "${libdir}/python${PYTHON_MAJMIN}/hashlib.py", |
420 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so", | 431 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so", |
421 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_crypt.*.so", | ||
422 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so", | 432 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so", |
423 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so", | 433 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so", |
424 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so", | 434 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so", |
425 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha256.*.so", | 435 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha2.*.so", |
426 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so", | 436 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so" |
427 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha512.*.so" | ||
428 | ], | 437 | ], |
429 | "cached": [ | 438 | "cached": [ |
430 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/crypt.*.pyc", | ||
431 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hashlib.*.pyc" | 439 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hashlib.*.pyc" |
432 | ] | 440 | ] |
433 | }, | 441 | }, |
@@ -435,7 +443,6 @@ | |||
435 | "summary": "Python C types support", | 443 | "summary": "Python C types support", |
436 | "rdepends": [ | 444 | "rdepends": [ |
437 | "core", | 445 | "core", |
438 | "crypt", | ||
439 | "io", | 446 | "io", |
440 | "math" | 447 | "math" |
441 | ], | 448 | ], |
@@ -519,8 +526,7 @@ | |||
519 | "${libdir}/pkgconfig" | 526 | "${libdir}/pkgconfig" |
520 | ], | 527 | ], |
521 | "rdepends": [ | 528 | "rdepends": [ |
522 | "core", | 529 | "core" |
523 | "distutils" | ||
524 | ], | 530 | ], |
525 | "summary": "Python development package" | 531 | "summary": "Python development package" |
526 | }, | 532 | }, |
@@ -536,27 +542,6 @@ | |||
536 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc" | 542 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc" |
537 | ] | 543 | ] |
538 | }, | 544 | }, |
539 | "distutils-windows": { | ||
540 | "summary": "Python distribution utilities (Windows installer stubs)", | ||
541 | "rdepends": [ | ||
542 | "core" | ||
543 | ], | ||
544 | "files": [], | ||
545 | "cached": [] | ||
546 | }, | ||
547 | "distutils": { | ||
548 | "summary": "Python Distribution Utilities", | ||
549 | "rdepends": [ | ||
550 | "compression", | ||
551 | "core", | ||
552 | "email", | ||
553 | "stringold" | ||
554 | ], | ||
555 | "files": [ | ||
556 | "${libdir}/python${PYTHON_MAJMIN}/distutils" | ||
557 | ], | ||
558 | "cached": [] | ||
559 | }, | ||
560 | "doctest": { | 545 | "doctest": { |
561 | "summary": "Python framework for running examples in docstrings", | 546 | "summary": "Python framework for running examples in docstrings", |
562 | "rdepends": [ | 547 | "rdepends": [ |
@@ -579,7 +564,6 @@ | |||
579 | "summary": "Python email support", | 564 | "summary": "Python email support", |
580 | "rdepends": [ | 565 | "rdepends": [ |
581 | "core", | 566 | "core", |
582 | "crypt", | ||
583 | "datetime", | 567 | "datetime", |
584 | "io", | 568 | "io", |
585 | "math", | 569 | "math", |
@@ -595,6 +579,16 @@ | |||
595 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc" | 579 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc" |
596 | ] | 580 | ] |
597 | }, | 581 | }, |
582 | "ensurepip": { | ||
583 | "summary": "Support for bootstrapping the pip installer", | ||
584 | "rdepends": [ | ||
585 | "core" | ||
586 | ], | ||
587 | "files": [ | ||
588 | "${libdir}/python${PYTHON_MAJMIN}/ensurepip/" | ||
589 | ], | ||
590 | "cached": [] | ||
591 | }, | ||
598 | "fcntl": { | 592 | "fcntl": { |
599 | "summary": "Python's fcntl interface", | 593 | "summary": "Python's fcntl interface", |
600 | "rdepends": [ | 594 | "rdepends": [ |
@@ -621,12 +615,9 @@ | |||
621 | "core" | 615 | "core" |
622 | ], | 616 | ], |
623 | "files": [ | 617 | "files": [ |
624 | "${libdir}/python${PYTHON_MAJMIN}/formatter.py", | ||
625 | "${libdir}/python${PYTHON_MAJMIN}/html" | 618 | "${libdir}/python${PYTHON_MAJMIN}/html" |
626 | ], | 619 | ], |
627 | "cached": [ | 620 | "cached": [] |
628 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/formatter.*.pyc" | ||
629 | ] | ||
630 | }, | 621 | }, |
631 | "idle": { | 622 | "idle": { |
632 | "summary": "Python Integrated Development Environment", | 623 | "summary": "Python Integrated Development Environment", |
@@ -645,38 +636,30 @@ | |||
645 | "core" | 636 | "core" |
646 | ], | 637 | ], |
647 | "files": [ | 638 | "files": [ |
648 | "${libdir}/python${PYTHON_MAJMIN}/colorsys.py", | 639 | "${libdir}/python${PYTHON_MAJMIN}/colorsys.py" |
649 | "${libdir}/python${PYTHON_MAJMIN}/imghdr.py" | ||
650 | ], | 640 | ], |
651 | "cached": [ | 641 | "cached": [ |
652 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/colorsys.*.pyc", | 642 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/colorsys.*.pyc" |
653 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imghdr.*.pyc" | ||
654 | ] | 643 | ] |
655 | }, | 644 | }, |
656 | "io": { | 645 | "io": { |
657 | "summary": "Python low-level I/O", | 646 | "summary": "Python low-level I/O", |
658 | "rdepends": [ | 647 | "rdepends": [ |
659 | "core", | 648 | "core", |
660 | "crypt", | ||
661 | "math", | 649 | "math", |
662 | "netclient", | 650 | "netclient" |
663 | "shell" | ||
664 | ], | 651 | ], |
665 | "files": [ | 652 | "files": [ |
666 | "${libdir}/python${PYTHON_MAJMIN}/_pyio.py", | 653 | "${libdir}/python${PYTHON_MAJMIN}/_pyio.py", |
667 | "${libdir}/python${PYTHON_MAJMIN}/ipaddress.py", | ||
668 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_socket.*.so", | 654 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_socket.*.so", |
669 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ssl.*.so", | 655 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ssl.*.so", |
670 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/termios.*.so", | 656 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/termios.*.so", |
671 | "${libdir}/python${PYTHON_MAJMIN}/pipes.py", | ||
672 | "${libdir}/python${PYTHON_MAJMIN}/socket.py", | 657 | "${libdir}/python${PYTHON_MAJMIN}/socket.py", |
673 | "${libdir}/python${PYTHON_MAJMIN}/ssl.py", | 658 | "${libdir}/python${PYTHON_MAJMIN}/ssl.py", |
674 | "${libdir}/python${PYTHON_MAJMIN}/tempfile.py" | 659 | "${libdir}/python${PYTHON_MAJMIN}/tempfile.py" |
675 | ], | 660 | ], |
676 | "cached": [ | 661 | "cached": [ |
677 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pyio.*.pyc", | 662 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pyio.*.pyc", |
678 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ipaddress.*.pyc", | ||
679 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pipes.*.pyc", | ||
680 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socket.*.pyc", | 663 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socket.*.pyc", |
681 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ssl.*.pyc", | 664 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ssl.*.pyc", |
682 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tempfile.*.pyc" | 665 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tempfile.*.pyc" |
@@ -712,10 +695,8 @@ | |||
712 | "summary": "Python mailbox format support", | 695 | "summary": "Python mailbox format support", |
713 | "rdepends": [ | 696 | "rdepends": [ |
714 | "core", | 697 | "core", |
715 | "crypt", | ||
716 | "datetime", | 698 | "datetime", |
717 | "email", | 699 | "email", |
718 | "fcntl", | ||
719 | "io", | 700 | "io", |
720 | "math", | 701 | "math", |
721 | "mime", | 702 | "mime", |
@@ -732,8 +713,7 @@ | |||
732 | "math": { | 713 | "math": { |
733 | "summary": "Python math support", | 714 | "summary": "Python math support", |
734 | "rdepends": [ | 715 | "rdepends": [ |
735 | "core", | 716 | "core" |
736 | "crypt" | ||
737 | ], | 717 | ], |
738 | "files": [ | 718 | "files": [ |
739 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_random.*.so", | 719 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_random.*.so", |
@@ -750,12 +730,10 @@ | |||
750 | "core" | 730 | "core" |
751 | ], | 731 | ], |
752 | "files": [ | 732 | "files": [ |
753 | "${libdir}/python${PYTHON_MAJMIN}/quopri.py", | 733 | "${libdir}/python${PYTHON_MAJMIN}/quopri.py" |
754 | "${libdir}/python${PYTHON_MAJMIN}/uu.py" | ||
755 | ], | 734 | ], |
756 | "cached": [ | 735 | "cached": [ |
757 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/quopri.*.pyc", | 736 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/quopri.*.pyc" |
758 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uu.*.pyc" | ||
759 | ] | 737 | ] |
760 | }, | 738 | }, |
761 | "mmap": { | 739 | "mmap": { |
@@ -772,7 +750,6 @@ | |||
772 | "cached": [], | 750 | "cached": [], |
773 | "files": [], | 751 | "files": [], |
774 | "rdepends": [ | 752 | "rdepends": [ |
775 | "2to3", | ||
776 | "asyncio", | 753 | "asyncio", |
777 | "audio", | 754 | "audio", |
778 | "codecs", | 755 | "codecs", |
@@ -786,9 +763,9 @@ | |||
786 | "db", | 763 | "db", |
787 | "debugger", | 764 | "debugger", |
788 | "difflib", | 765 | "difflib", |
789 | "distutils", | ||
790 | "doctest", | 766 | "doctest", |
791 | "email", | 767 | "email", |
768 | "ensurepip", | ||
792 | "fcntl", | 769 | "fcntl", |
793 | "html", | 770 | "html", |
794 | "idle", | 771 | "idle", |
@@ -812,21 +789,20 @@ | |||
812 | "pydoc", | 789 | "pydoc", |
813 | "resource", | 790 | "resource", |
814 | "shell", | 791 | "shell", |
815 | "smtpd", | ||
816 | "sqlite3", | 792 | "sqlite3", |
793 | "statistics", | ||
817 | "stringold", | 794 | "stringold", |
818 | "syslog", | 795 | "syslog", |
819 | "terminal", | 796 | "terminal", |
820 | "threading", | 797 | "threading", |
821 | "tkinter", | 798 | "tkinter", |
799 | "tomllib", | ||
822 | "unittest", | 800 | "unittest", |
823 | "unixadmin", | 801 | "unixadmin", |
824 | "venv", | 802 | "venv", |
825 | "xml", | 803 | "xml", |
826 | "xmlrpc" | 804 | "xmlrpc", |
827 | ], | 805 | "zoneinfo" |
828 | "rrecommends": [ | ||
829 | "distutils-windows" | ||
830 | ], | 806 | ], |
831 | "summary": "All Python modules" | 807 | "summary": "All Python modules" |
832 | }, | 808 | }, |
@@ -870,11 +846,10 @@ | |||
870 | "${libdir}/python${PYTHON_MAJMIN}/http/__pycache__", | 846 | "${libdir}/python${PYTHON_MAJMIN}/http/__pycache__", |
871 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_uuid.*.so", | 847 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_uuid.*.so", |
872 | "${libdir}/python${PYTHON_MAJMIN}/mimetypes.py", | 848 | "${libdir}/python${PYTHON_MAJMIN}/mimetypes.py", |
873 | "${libdir}/python${PYTHON_MAJMIN}/nntplib.py", | ||
874 | "${libdir}/python${PYTHON_MAJMIN}/poplib.py", | 849 | "${libdir}/python${PYTHON_MAJMIN}/poplib.py", |
875 | "${libdir}/python${PYTHON_MAJMIN}/secrets.py", | 850 | "${libdir}/python${PYTHON_MAJMIN}/secrets.py", |
876 | "${libdir}/python${PYTHON_MAJMIN}/smtplib.py", | 851 | "${libdir}/python${PYTHON_MAJMIN}/smtplib.py", |
877 | "${libdir}/python${PYTHON_MAJMIN}/telnetlib.py", | 852 | "${libdir}/python${PYTHON_MAJMIN}/urllib", |
878 | "${libdir}/python${PYTHON_MAJMIN}/uuid.py" | 853 | "${libdir}/python${PYTHON_MAJMIN}/uuid.py" |
879 | ], | 854 | ], |
880 | "cached": [ | 855 | "cached": [ |
@@ -882,11 +857,9 @@ | |||
882 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ftplib.*.pyc", | 857 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ftplib.*.pyc", |
883 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hmac.*.pyc", | 858 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/hmac.*.pyc", |
884 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/mimetypes.*.pyc", | 859 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/mimetypes.*.pyc", |
885 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/nntplib.*.pyc", | ||
886 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/poplib.*.pyc", | 860 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/poplib.*.pyc", |
887 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/secrets.*.pyc", | 861 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/secrets.*.pyc", |
888 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtplib.*.pyc", | 862 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtplib.*.pyc", |
889 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/telnetlib.*.pyc", | ||
890 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uuid.*.pyc" | 863 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uuid.*.pyc" |
891 | ] | 864 | ] |
892 | }, | 865 | }, |
@@ -894,22 +867,12 @@ | |||
894 | "summary": "Python Internet Protocol servers", | 867 | "summary": "Python Internet Protocol servers", |
895 | "rdepends": [ | 868 | "rdepends": [ |
896 | "core", | 869 | "core", |
897 | "crypt", | 870 | "io" |
898 | "datetime", | ||
899 | "email", | ||
900 | "html", | ||
901 | "io", | ||
902 | "math", | ||
903 | "mime", | ||
904 | "netclient", | ||
905 | "stringold" | ||
906 | ], | 871 | ], |
907 | "files": [ | 872 | "files": [ |
908 | "${libdir}/python${PYTHON_MAJMIN}/cgi.py", | ||
909 | "${libdir}/python${PYTHON_MAJMIN}/socketserver.py" | 873 | "${libdir}/python${PYTHON_MAJMIN}/socketserver.py" |
910 | ], | 874 | ], |
911 | "cached": [ | 875 | "cached": [ |
912 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cgi.*.pyc", | ||
913 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socketserver.*.pyc" | 876 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socketserver.*.pyc" |
914 | ] | 877 | ] |
915 | }, | 878 | }, |
@@ -995,14 +958,12 @@ | |||
995 | ], | 958 | ], |
996 | "files": [ | 959 | "files": [ |
997 | "${libdir}/python${PYTHON_MAJMIN}/cProfile.py", | 960 | "${libdir}/python${PYTHON_MAJMIN}/cProfile.py", |
998 | "${libdir}/python${PYTHON_MAJMIN}/dataclasses.py", | ||
999 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lsprof.*.so", | 961 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lsprof.*.so", |
1000 | "${libdir}/python${PYTHON_MAJMIN}/profile.py", | 962 | "${libdir}/python${PYTHON_MAJMIN}/profile.py", |
1001 | "${libdir}/python${PYTHON_MAJMIN}/pstats.py" | 963 | "${libdir}/python${PYTHON_MAJMIN}/pstats.py" |
1002 | ], | 964 | ], |
1003 | "cached": [ | 965 | "cached": [ |
1004 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cProfile.*.pyc", | 966 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cProfile.*.pyc", |
1005 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dataclasses.*.pyc", | ||
1006 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/profile.*.pyc", | 967 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/profile.*.pyc", |
1007 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pstats.*.pyc" | 968 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pstats.*.pyc" |
1008 | ] | 969 | ] |
@@ -1039,40 +1000,13 @@ | |||
1039 | ], | 1000 | ], |
1040 | "files": [ | 1001 | "files": [ |
1041 | "${libdir}/python${PYTHON_MAJMIN}/cmd.py", | 1002 | "${libdir}/python${PYTHON_MAJMIN}/cmd.py", |
1042 | "${libdir}/python${PYTHON_MAJMIN}/glob.py", | ||
1043 | "${libdir}/python${PYTHON_MAJMIN}/shlex.py" | 1003 | "${libdir}/python${PYTHON_MAJMIN}/shlex.py" |
1044 | ], | 1004 | ], |
1045 | "cached": [ | 1005 | "cached": [ |
1046 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc", | 1006 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc", |
1047 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc", | ||
1048 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc" | 1007 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc" |
1049 | ] | 1008 | ] |
1050 | }, | 1009 | }, |
1051 | "smtpd": { | ||
1052 | "summary": "Python Simple Mail Transport Daemon", | ||
1053 | "rdepends": [ | ||
1054 | "core", | ||
1055 | "crypt", | ||
1056 | "datetime", | ||
1057 | "email", | ||
1058 | "io", | ||
1059 | "math", | ||
1060 | "mime", | ||
1061 | "netclient", | ||
1062 | "stringold" | ||
1063 | ], | ||
1064 | "files": [ | ||
1065 | "${bindir}/smtpd.py", | ||
1066 | "${libdir}/python${PYTHON_MAJMIN}/asynchat.py", | ||
1067 | "${libdir}/python${PYTHON_MAJMIN}/asyncore.py", | ||
1068 | "${libdir}/python${PYTHON_MAJMIN}/smtpd.py" | ||
1069 | ], | ||
1070 | "cached": [ | ||
1071 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/asynchat.*.pyc", | ||
1072 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/asyncore.*.pyc", | ||
1073 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtpd.*.pyc" | ||
1074 | ] | ||
1075 | }, | ||
1076 | "sqlite3": { | 1010 | "sqlite3": { |
1077 | "summary": "Python Sqlite3 database support", | 1011 | "summary": "Python Sqlite3 database support", |
1078 | "rdepends": [ | 1012 | "rdepends": [ |
@@ -1085,8 +1019,23 @@ | |||
1085 | ], | 1019 | ], |
1086 | "cached": [] | 1020 | "cached": [] |
1087 | }, | 1021 | }, |
1022 | "statistics": { | ||
1023 | "summary": "Basic statistics module", | ||
1024 | "rdepends": [ | ||
1025 | "core", | ||
1026 | "math", | ||
1027 | "numbers" | ||
1028 | ], | ||
1029 | "files": [ | ||
1030 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_statistics.*.so", | ||
1031 | "${libdir}/python${PYTHON_MAJMIN}/statistics.py" | ||
1032 | ], | ||
1033 | "cached": [ | ||
1034 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/statistics.*.pyc" | ||
1035 | ] | ||
1036 | }, | ||
1088 | "stringold": { | 1037 | "stringold": { |
1089 | "summary": "Python string APIs [deprecated]", | 1038 | "summary": "Common string operations", |
1090 | "rdepends": [ | 1039 | "rdepends": [ |
1091 | "core" | 1040 | "core" |
1092 | ], | 1041 | ], |
@@ -1143,11 +1092,20 @@ | |||
1143 | "core" | 1092 | "core" |
1144 | ], | 1093 | ], |
1145 | "files": [ | 1094 | "files": [ |
1146 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so", | ||
1147 | "${libdir}/python${PYTHON_MAJMIN}/tkinter" | 1095 | "${libdir}/python${PYTHON_MAJMIN}/tkinter" |
1148 | ], | 1096 | ], |
1149 | "cached": [] | 1097 | "cached": [] |
1150 | }, | 1098 | }, |
1099 | "tomllib": { | ||
1100 | "summary": "Provides an interface for parsing TOML", | ||
1101 | "rdepends": [ | ||
1102 | "core" | ||
1103 | ], | ||
1104 | "files": [ | ||
1105 | "${libdir}/python${PYTHON_MAJMIN}/tomllib/" | ||
1106 | ], | ||
1107 | "cached": [] | ||
1108 | }, | ||
1151 | "unittest": { | 1109 | "unittest": { |
1152 | "summary": "Python unit testing framework", | 1110 | "summary": "Python unit testing framework", |
1153 | "rdepends": [ | 1111 | "rdepends": [ |
@@ -1175,8 +1133,7 @@ | |||
1175 | "io" | 1133 | "io" |
1176 | ], | 1134 | ], |
1177 | "files": [ | 1135 | "files": [ |
1178 | "${libdir}/python${PYTHON_MAJMIN}/getpass.py", | 1136 | "${libdir}/python${PYTHON_MAJMIN}/getpass.py" |
1179 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/nis.*.so" | ||
1180 | ], | 1137 | ], |
1181 | "cached": [ | 1138 | "cached": [ |
1182 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getpass.*.pyc" | 1139 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getpass.*.pyc" |
@@ -1212,13 +1169,10 @@ | |||
1212 | "rdepends": [ | 1169 | "rdepends": [ |
1213 | "compression", | 1170 | "compression", |
1214 | "core", | 1171 | "core", |
1215 | "crypt", | ||
1216 | "datetime", | 1172 | "datetime", |
1217 | "email", | 1173 | "email", |
1218 | "fcntl", | ||
1219 | "html", | 1174 | "html", |
1220 | "io", | 1175 | "io", |
1221 | "math", | ||
1222 | "mime", | 1176 | "mime", |
1223 | "netclient", | 1177 | "netclient", |
1224 | "netserver", | 1178 | "netserver", |
@@ -1232,5 +1186,30 @@ | |||
1232 | "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__" | 1186 | "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__" |
1233 | ], | 1187 | ], |
1234 | "cached": [] | 1188 | "cached": [] |
1189 | }, | ||
1190 | "zipapp": { | ||
1191 | "summary": "Tools to manage the creation of zip files containing Python code", | ||
1192 | "rdepends": [ | ||
1193 | "compression", | ||
1194 | "core" | ||
1195 | ], | ||
1196 | "files": [ | ||
1197 | "${libdir}/python${PYTHON_MAJMIN}/zipapp.py" | ||
1198 | ], | ||
1199 | "cached": [ | ||
1200 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipapp.*.pyc" | ||
1201 | ] | ||
1202 | }, | ||
1203 | "zoneinfo": { | ||
1204 | "summary": "IANA time zone support", | ||
1205 | "rdepends": [ | ||
1206 | "core", | ||
1207 | "datetime" | ||
1208 | ], | ||
1209 | "files": [ | ||
1210 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_zoneinfo.*.so", | ||
1211 | "${libdir}/python${PYTHON_MAJMIN}/zoneinfo" | ||
1212 | ], | ||
1213 | "cached": [] | ||
1235 | } | 1214 | } |
1236 | } | 1215 | } |
diff --git a/meta/recipes-devtools/python/python3/reformat_sysconfig.py b/meta/recipes-devtools/python/python3/reformat_sysconfig.py index c4164313e8..5e2b12879d 100644 --- a/meta/recipes-devtools/python/python3/reformat_sysconfig.py +++ b/meta/recipes-devtools/python/python3/reformat_sysconfig.py | |||
@@ -16,6 +16,6 @@ with open(sys.argv[1], 'r') as f: | |||
16 | with open(sys.argv[1], 'w') as f: | 16 | with open(sys.argv[1], 'w') as f: |
17 | for k in sorted(l.keys()): | 17 | for k in sorted(l.keys()): |
18 | f.write('%s = ' % k) | 18 | f.write('%s = ' % k) |
19 | pprint.pprint(l[k], stream=f, width=sys.maxsize) | 19 | pprint.pprint(l[k], stream=f, width=1) |
20 | f.write('\n') | 20 | f.write('\n') |
21 | 21 | ||
diff --git a/meta/recipes-devtools/python/python3/run-ptest b/meta/recipes-devtools/python/python3/run-ptest index 405b07f495..d1c26c11e2 100644 --- a/meta/recipes-devtools/python/python3/run-ptest +++ b/meta/recipes-devtools/python/python3/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | SKIPPED_TESTS= | |
3 | python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' | 3 | { SETUPTOOLS_USE_DISTUTILS=nonlocal python3 -m test $SKIPPED_TESTS -v -j 4 || echo "FAIL: python3" ; } | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' |
diff --git a/meta/recipes-devtools/python/python3/valid-dists.patch b/meta/recipes-devtools/python/python3/valid-dists.patch new file mode 100644 index 0000000000..1b2c078c21 --- /dev/null +++ b/meta/recipes-devtools/python/python3/valid-dists.patch | |||
@@ -0,0 +1,160 @@ | |||
1 | From a65c29adc027b3615154cab73aaedd58a6aa23da Mon Sep 17 00:00:00 2001 | ||
2 | From: "Jason R. Coombs" <jaraco@jaraco.com> | ||
3 | Date: Tue, 23 Jul 2024 08:36:16 -0400 | ||
4 | Subject: [PATCH] Prioritize valid dists to invalid dists when retrieving by | ||
5 | name. | ||
6 | |||
7 | Closes python/importlib_metadata#489 | ||
8 | |||
9 | Upstream-Status: Backport [https://github.com/python/importlib_metadata/commit/a65c29adc027b3615154cab73aaedd58a6aa23da] | ||
10 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
11 | |||
12 | diff --git i/Lib/importlib/metadata/__init__.py w/Lib/importlib/metadata/__init__.py | ||
13 | index 8ce62dd864f..085378caabc 100644 | ||
14 | --- i/Lib/importlib/metadata/__init__.py | ||
15 | +++ w/Lib/importlib/metadata/__init__.py | ||
16 | @@ -21,7 +21,7 @@ | ||
17 | from . import _meta | ||
18 | from ._collections import FreezableDefaultDict, Pair | ||
19 | from ._functools import method_cache, pass_none | ||
20 | -from ._itertools import always_iterable, unique_everseen | ||
21 | +from ._itertools import always_iterable, bucket, unique_everseen | ||
22 | from ._meta import PackageMetadata, SimplePath | ||
23 | |||
24 | from contextlib import suppress | ||
25 | @@ -404,7 +404,7 @@ def from_name(cls, name: str) -> Distribution: | ||
26 | if not name: | ||
27 | raise ValueError("A distribution name is required.") | ||
28 | try: | ||
29 | - return next(iter(cls.discover(name=name))) | ||
30 | + return next(iter(cls._prefer_valid(cls.discover(name=name)))) | ||
31 | except StopIteration: | ||
32 | raise PackageNotFoundError(name) | ||
33 | |||
34 | @@ -428,6 +428,16 @@ def discover( | ||
35 | resolver(context) for resolver in cls._discover_resolvers() | ||
36 | ) | ||
37 | |||
38 | + @staticmethod | ||
39 | + def _prefer_valid(dists: Iterable[Distribution]) -> Iterable[Distribution]: | ||
40 | + """ | ||
41 | + Prefer (move to the front) distributions that have metadata. | ||
42 | + | ||
43 | + Ref python/importlib_resources#489. | ||
44 | + """ | ||
45 | + buckets = bucket(dists, lambda dist: bool(dist.metadata)) | ||
46 | + return itertools.chain(buckets[True], buckets[False]) | ||
47 | + | ||
48 | @staticmethod | ||
49 | def at(path: str | os.PathLike[str]) -> Distribution: | ||
50 | """Return a Distribution for the indicated metadata path. | ||
51 | diff --git i/Lib/importlib/metadata/_itertools.py w/Lib/importlib/metadata/_itertools.py | ||
52 | index d4ca9b9140e..79d37198ce7 100644 | ||
53 | --- i/Lib/importlib/metadata/_itertools.py | ||
54 | +++ w/Lib/importlib/metadata/_itertools.py | ||
55 | @@ -1,3 +1,4 @@ | ||
56 | +from collections import defaultdict, deque | ||
57 | from itertools import filterfalse | ||
58 | |||
59 | |||
60 | @@ -71,3 +72,100 @@ def always_iterable(obj, base_type=(str, bytes)): | ||
61 | return iter(obj) | ||
62 | except TypeError: | ||
63 | return iter((obj,)) | ||
64 | + | ||
65 | + | ||
66 | +# Copied from more_itertools 10.3 | ||
67 | +class bucket: | ||
68 | + """Wrap *iterable* and return an object that buckets the iterable into | ||
69 | + child iterables based on a *key* function. | ||
70 | + | ||
71 | + >>> iterable = ['a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'b3'] | ||
72 | + >>> s = bucket(iterable, key=lambda x: x[0]) # Bucket by 1st character | ||
73 | + >>> sorted(list(s)) # Get the keys | ||
74 | + ['a', 'b', 'c'] | ||
75 | + >>> a_iterable = s['a'] | ||
76 | + >>> next(a_iterable) | ||
77 | + 'a1' | ||
78 | + >>> next(a_iterable) | ||
79 | + 'a2' | ||
80 | + >>> list(s['b']) | ||
81 | + ['b1', 'b2', 'b3'] | ||
82 | + | ||
83 | + The original iterable will be advanced and its items will be cached until | ||
84 | + they are used by the child iterables. This may require significant storage. | ||
85 | + | ||
86 | + By default, attempting to select a bucket to which no items belong will | ||
87 | + exhaust the iterable and cache all values. | ||
88 | + If you specify a *validator* function, selected buckets will instead be | ||
89 | + checked against it. | ||
90 | + | ||
91 | + >>> from itertools import count | ||
92 | + >>> it = count(1, 2) # Infinite sequence of odd numbers | ||
93 | + >>> key = lambda x: x % 10 # Bucket by last digit | ||
94 | + >>> validator = lambda x: x in {1, 3, 5, 7, 9} # Odd digits only | ||
95 | + >>> s = bucket(it, key=key, validator=validator) | ||
96 | + >>> 2 in s | ||
97 | + False | ||
98 | + >>> list(s[2]) | ||
99 | + [] | ||
100 | + | ||
101 | + """ | ||
102 | + | ||
103 | + def __init__(self, iterable, key, validator=None): | ||
104 | + self._it = iter(iterable) | ||
105 | + self._key = key | ||
106 | + self._cache = defaultdict(deque) | ||
107 | + self._validator = validator or (lambda x: True) | ||
108 | + | ||
109 | + def __contains__(self, value): | ||
110 | + if not self._validator(value): | ||
111 | + return False | ||
112 | + | ||
113 | + try: | ||
114 | + item = next(self[value]) | ||
115 | + except StopIteration: | ||
116 | + return False | ||
117 | + else: | ||
118 | + self._cache[value].appendleft(item) | ||
119 | + | ||
120 | + return True | ||
121 | + | ||
122 | + def _get_values(self, value): | ||
123 | + """ | ||
124 | + Helper to yield items from the parent iterator that match *value*. | ||
125 | + Items that don't match are stored in the local cache as they | ||
126 | + are encountered. | ||
127 | + """ | ||
128 | + while True: | ||
129 | + # If we've cached some items that match the target value, emit | ||
130 | + # the first one and evict it from the cache. | ||
131 | + if self._cache[value]: | ||
132 | + yield self._cache[value].popleft() | ||
133 | + # Otherwise we need to advance the parent iterator to search for | ||
134 | + # a matching item, caching the rest. | ||
135 | + else: | ||
136 | + while True: | ||
137 | + try: | ||
138 | + item = next(self._it) | ||
139 | + except StopIteration: | ||
140 | + return | ||
141 | + item_value = self._key(item) | ||
142 | + if item_value == value: | ||
143 | + yield item | ||
144 | + break | ||
145 | + elif self._validator(item_value): | ||
146 | + self._cache[item_value].append(item) | ||
147 | + | ||
148 | + def __iter__(self): | ||
149 | + for item in self._it: | ||
150 | + item_value = self._key(item) | ||
151 | + if self._validator(item_value): | ||
152 | + self._cache[item_value].append(item) | ||
153 | + | ||
154 | + yield from self._cache.keys() | ||
155 | + | ||
156 | + def __getitem__(self, value): | ||
157 | + if not self._validator(value): | ||
158 | + return iter(()) | ||
159 | + | ||
160 | + return self._get_values(value) | ||
diff --git a/meta/recipes-devtools/python/python3_3.13.5.bb b/meta/recipes-devtools/python/python3_3.13.5.bb new file mode 100644 index 0000000000..f9ae534213 --- /dev/null +++ b/meta/recipes-devtools/python/python3_3.13.5.bb | |||
@@ -0,0 +1,496 @@ | |||
1 | SUMMARY = "The Python Programming Language" | ||
2 | HOMEPAGE = "http://www.python.org" | ||
3 | DESCRIPTION = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." | ||
4 | LICENSE = "PSF-2.0" | ||
5 | SECTION = "devel/python" | ||
6 | |||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3f64a4ff490f884d562feb77bf2435f1" | ||
8 | |||
9 | SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ | ||
10 | file://run-ptest \ | ||
11 | file://create_manifest3.py \ | ||
12 | file://get_module_deps3.py \ | ||
13 | file://python3-manifest.json \ | ||
14 | file://check_build_completeness.py \ | ||
15 | file://reformat_sysconfig.py \ | ||
16 | file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ | ||
17 | file://0001-test_locale.py-correct-the-test-output-format.patch \ | ||
18 | file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \ | ||
19 | file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \ | ||
20 | file://makerace.patch \ | ||
21 | file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ | ||
22 | file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ | ||
23 | file://valid-dists.patch \ | ||
24 | file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ | ||
25 | file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ | ||
26 | file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ | ||
27 | file://0001-test_storlines-skip-due-to-load-variability.patch \ | ||
28 | file://0001-test_shutdown-skip-problematic-test.patch \ | ||
29 | file://0001-test_deadlock-skip-problematic-test.patch \ | ||
30 | file://0001-test_active_children-skip-problematic-test.patch \ | ||
31 | file://0001-test_readline-skip-limited-history-test.patch \ | ||
32 | file://0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch \ | ||
33 | " | ||
34 | |||
35 | SRC_URI:append:class-native = " \ | ||
36 | file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ | ||
37 | " | ||
38 | |||
39 | SRC_URI[sha256sum] = "93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640" | ||
40 | |||
41 | # exclude pre-releases for both python 2.x and 3.x | ||
42 | UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" | ||
43 | |||
44 | CVE_PRODUCT = "python cpython" | ||
45 | |||
46 | CVE_STATUS[CVE-2007-4559] = "disputed: Upstream consider this expected behaviour" | ||
47 | CVE_STATUS[CVE-2019-18348] = "not-applicable-config: This is not exploitable when glibc has CVE-2016-10739 fixed" | ||
48 | CVE_STATUS[CVE-2020-15523] = "not-applicable-platform: Issue only applies on Windows" | ||
49 | CVE_STATUS[CVE-2022-26488] = "not-applicable-platform: Issue only applies on Windows" | ||
50 | # The module will be removed in the future and flaws documented. | ||
51 | CVE_STATUS[CVE-2015-20107] = "upstream-wontfix: The mailcap module is insecure by design, so this can't be fixed in a meaningful way" | ||
52 | CVE_STATUS[CVE-2023-36632] = "disputed: Not an issue, in fact expected behaviour" | ||
53 | |||
54 | PYTHON_MAJMIN = "3.13" | ||
55 | |||
56 | S = "${UNPACKDIR}/Python-${PV}" | ||
57 | |||
58 | BBCLASSEXTEND = "native nativesdk" | ||
59 | |||
60 | inherit autotools pkgconfig qemu ptest multilib_header update-alternatives | ||
61 | |||
62 | MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" | ||
63 | |||
64 | ALTERNATIVE:${PN}-dev = "python3-config" | ||
65 | ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config" | ||
66 | ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}" | ||
67 | |||
68 | DEPENDS = "\ | ||
69 | autoconf-archive-native \ | ||
70 | bzip2 \ | ||
71 | bzip2-replacement-native \ | ||
72 | expat \ | ||
73 | libffi \ | ||
74 | ncurses \ | ||
75 | openssl \ | ||
76 | sqlite3 \ | ||
77 | util-linux-libuuid \ | ||
78 | virtual/crypt \ | ||
79 | virtual/libintl \ | ||
80 | xz \ | ||
81 | zlib \ | ||
82 | " | ||
83 | |||
84 | DEPENDS:append:class-target = " python3-native" | ||
85 | DEPENDS:append:class-nativesdk = " python3-native" | ||
86 | |||
87 | EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib} --with-system-expat" | ||
88 | EXTRA_OECONF:append:class-native = " --bindir=${bindir}/${PN}" | ||
89 | EXTRA_OECONF:append:class-target = " --with-build-python=nativepython3" | ||
90 | EXTRA_OECONF:append:class-nativesdk = " --with-build-python=nativepython3" | ||
91 | |||
92 | export CROSSPYTHONPATH = "${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" | ||
93 | |||
94 | EXTRANATIVEPATH += "python3-native" | ||
95 | |||
96 | # LTO will be enabled via packageconfig depending upong distro features | ||
97 | LTO:class-target = "" | ||
98 | |||
99 | CACHED_CONFIGUREVARS = " \ | ||
100 | ac_cv_file__dev_ptmx=yes \ | ||
101 | ac_cv_file__dev_ptc=no \ | ||
102 | ac_cv_working_tzset=yes \ | ||
103 | " | ||
104 | CACHED_CONFIGUREVARS:append:class-target = " \ | ||
105 | ac_cv_libatomic_needed=yes \ | ||
106 | " | ||
107 | |||
108 | # set thread stack size to 2MB on musl for interpreter and stdlib C extensions | ||
109 | # so it does not run into stack limits due to musl's small thread stack | ||
110 | # This is only needed to build interpreter and not the subsequent modules | ||
111 | # Thats why CFLAGS_NODIST is modified instead of CFLAGS | ||
112 | CACHED_CONFIGUREVARS:append:libc-musl = "\ | ||
113 | CFLAGS_NODIST='${CFLAGS} -DTHREAD_STACK_SIZE=0x200000' \ | ||
114 | " | ||
115 | |||
116 | # PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407 | ||
117 | PACKAGECONFIG ??= "editline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" | ||
118 | PACKAGECONFIG[readline] = "--with-readline=readline,,readline,,,editline" | ||
119 | PACKAGECONFIG[editline] = "--with-readline=editline,,libedit,,,readline" | ||
120 | # Use profile guided optimisation by running PyBench inside qemu-user | ||
121 | PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" | ||
122 | PACKAGECONFIG[tk] = ",,tk" | ||
123 | PACKAGECONFIG[tcl] = ",,tcl" | ||
124 | PACKAGECONFIG[gdbm] = ",,gdbm" | ||
125 | PACKAGECONFIG[lto] = "--with-lto,--without-lto" | ||
126 | PACKAGECONFIG[staticlibpython] = "--with-static-libpython,--without-static-libpython" | ||
127 | |||
128 | do_configure:prepend () { | ||
129 | mkdir -p ${B}/Modules | ||
130 | cat > ${B}/Modules/Setup.local << EOF | ||
131 | *disabled* | ||
132 | ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)} | ||
133 | ${@bb.utils.contains_any('PACKAGECONFIG', 'readline editline', '', 'readline', d)} | ||
134 | ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', '_tkinter', d)} | ||
135 | EOF | ||
136 | } | ||
137 | |||
138 | CPPFLAGS += "-I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" | ||
139 | |||
140 | # COMPILEALL_OPTS= ensures that .pyc are not compiled in parallel | ||
141 | # This was found to lock up builds, break reproducibility, and produce strange file ownership | ||
142 | # races. | ||
143 | # | ||
144 | # The upstream commit introducing the change was: | ||
145 | # https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504 | ||
146 | # | ||
147 | # The build lock up issue is reported here: | ||
148 | # https://bugs.python.org/issue45945 | ||
149 | # | ||
150 | # The repro failures are documented here: | ||
151 | # https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211130-yr_o1a8d/packages/diff-html/ | ||
152 | |||
153 | EXTRA_OEMAKE = '\ | ||
154 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | ||
155 | STAGING_INCDIR=${STAGING_INCDIR} \ | ||
156 | LIB=${baselib} \ | ||
157 | COMPILEALL_OPTS= \ | ||
158 | ' | ||
159 | |||
160 | # Generate a Profile Guided Optimisation wrapper script that uses qemu-user for | ||
161 | # all cross builds. | ||
162 | write_pgo_wrapper:class-native = ":" | ||
163 | write_pgo_wrapper() { | ||
164 | if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then | ||
165 | cat >pgo-wrapper <<EOF | ||
166 | #!/bin/sh | ||
167 | cd ${B} | ||
168 | ${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])} "\$@" | ||
169 | EOF | ||
170 | chmod +x pgo-wrapper | ||
171 | fi | ||
172 | } | ||
173 | |||
174 | do_compile:prepend() { | ||
175 | write_pgo_wrapper | ||
176 | } | ||
177 | |||
178 | do_install:prepend() { | ||
179 | ${UNPACKDIR}/check_build_completeness.py ${T}/log.do_compile | ||
180 | } | ||
181 | |||
182 | do_install:append:class-target() { | ||
183 | oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h | ||
184 | } | ||
185 | |||
186 | do_install:append:class-native() { | ||
187 | # Make sure we use /usr/bin/env python | ||
188 | for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do | ||
189 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
190 | done | ||
191 | # Add a symlink to the native Python so that scripts can just invoke | ||
192 | # "nativepython" and get the right one without needing absolute paths | ||
193 | # (these often end up too long for the #! parser in the kernel as the | ||
194 | # buffer is 128 bytes long). | ||
195 | ln -s python3-native/python3 ${D}${bindir}/nativepython3 | ||
196 | |||
197 | # Remove the opt-1.pyc and opt-2.pyc files. There are over 3,000 of them | ||
198 | # and the overhead in each recipe-sysroot-native isn't worth it, particularly | ||
199 | # when they're only used for python called with -O or -OO. | ||
200 | #find ${D} -name *opt-*.pyc -delete | ||
201 | # Remove all pyc files. There are a ton of them and it is probably faster to let | ||
202 | # python create the ones it wants at runtime rather than manage in the sstate | ||
203 | # tarballs and sysroot creation. | ||
204 | find ${D} -name *.pyc -delete | ||
205 | |||
206 | # Nothing should be looking into ${B} for python3-native | ||
207 | sed -i -e 's:${B}:/build/path/unavailable/:g' \ | ||
208 | ${D}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile | ||
209 | |||
210 | # disable the lookup in user's site-packages globally | ||
211 | sed -i 's#ENABLE_USER_SITE = None#ENABLE_USER_SITE = False#' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py | ||
212 | |||
213 | # python3-config needs to be in /usr/bin and not in a subdir of it to work properly | ||
214 | mv ${D}/${bindir}/${PN}/python*config ${D}/${bindir}/ | ||
215 | } | ||
216 | |||
217 | do_install:append() { | ||
218 | for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do | ||
219 | python3 ${UNPACKDIR}/reformat_sysconfig.py $c | ||
220 | done | ||
221 | rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython* | ||
222 | |||
223 | mkdir -p ${D}${libdir}/python-sysconfigdata | ||
224 | sysconfigfile=`find ${D} -name _sysconfig*.py` | ||
225 | sed -i \ | ||
226 | -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \ | ||
227 | -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
228 | -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
229 | -e "s,^ 'INCLUDEPY'.*, 'INCLUDEPY': '${STAGING_INCDIR}/python${PYTHON_MAJMIN}'\,,g" \ | ||
230 | -e "s,^ 'CONFINCLUDEPY'.*, 'CONFINCLUDEPY': '${STAGING_INCDIR}/python${PYTHON_MAJMIN}'\,,g" \ | ||
231 | -e "s,${B},/build/path/unavailable/,g" \ | ||
232 | $sysconfigfile | ||
233 | cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py | ||
234 | |||
235 | # Remove the opt-1.pyc and opt-2.pyc files. They effectively waste space on embedded | ||
236 | # style targets as they're only used when python is called with the -O or -OO options | ||
237 | # which is rare. | ||
238 | find ${D} -name *opt-*.pyc -delete | ||
239 | } | ||
240 | |||
241 | do_install:append:class-nativesdk () { | ||
242 | # Make sure we use /usr/bin/env python | ||
243 | for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do | ||
244 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
245 | done | ||
246 | create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1' | ||
247 | } | ||
248 | |||
249 | do_install_ptest:append:class-target:libc-musl () { | ||
250 | sed -i -e 's|SKIPPED_TESTS=|SKIPPED_TESTS="-x test__locale -x test_c_locale_coercion -x test_locale -x test_os test_re -x test__xxsubinterpreters -x test_threading --ignore test.test_strptime.StrptimeTests.test_date_locale2"|' ${D}${PTEST_PATH}/run-ptest | ||
251 | } | ||
252 | |||
253 | SYSROOT_PREPROCESS_FUNCS:append:class-target = " provide_target_config_script" | ||
254 | SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " provide_target_config_script" | ||
255 | |||
256 | # This is installed into /usr/python-target-config/ and not /usr/bin | ||
257 | # because adding target sysroot's /usr/bin/ to PATH has unwanted side effects | ||
258 | # in components erroneously picking up other target executables from it | ||
259 | provide_target_config_script() { | ||
260 | install -d ${SYSROOT_DESTDIR}${prefix}/python-target-config/ | ||
261 | install ${D}/${bindir}/python3-config ${SYSROOT_DESTDIR}/${prefix}/python-target-config/ | ||
262 | install ${D}/${bindir}/python${PYTHON_MAJMIN}-config ${SYSROOT_DESTDIR}/${prefix}/python-target-config/ | ||
263 | } | ||
264 | SYSROOT_DIRS += "${prefix}/python-target-config/" | ||
265 | |||
266 | SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py" | ||
267 | SSTATE_HASHEQUIV_FILEMAP = " \ | ||
268 | populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \ | ||
269 | populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \ | ||
270 | populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \ | ||
271 | populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \ | ||
272 | populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \ | ||
273 | populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \ | ||
274 | " | ||
275 | PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" | ||
276 | |||
277 | py_package_preprocess () { | ||
278 | # Remove references to buildmachine paths in target Makefile and _sysconfigdata | ||
279 | sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \ | ||
280 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
281 | -e 's:${HOSTTOOLS_DIR}/::g' \ | ||
282 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | ||
283 | -e 's:${RECIPE_SYSROOT}::g' \ | ||
284 | -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ | ||
285 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \ | ||
286 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \ | ||
287 | ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config | ||
288 | |||
289 | # Reformat _sysconfigdata after modifying it so that it remains | ||
290 | # reproducible | ||
291 | for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do | ||
292 | python3 ${UNPACKDIR}/reformat_sysconfig.py $c | ||
293 | done | ||
294 | |||
295 | # Recompile _sysconfigdata after modifying it | ||
296 | cd ${PKGD} | ||
297 | sysconfigfile=`find . -name _sysconfigdata_*.py` | ||
298 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
299 | -c "from py_compile import compile; compile('$sysconfigfile')" | ||
300 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
301 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=1)" | ||
302 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
303 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)" | ||
304 | cd - | ||
305 | |||
306 | mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX} | ||
307 | |||
308 | #Remove the unneeded copy of target sysconfig data | ||
309 | rm -rf ${PKGD}/${libdir}/python-sysconfigdata | ||
310 | } | ||
311 | |||
312 | # We want bytecode precompiled .py files (.pyc's) by default | ||
313 | # but the user may set it on their own conf | ||
314 | INCLUDE_PYCS ?= "1" | ||
315 | |||
316 | python(){ | ||
317 | import collections, json | ||
318 | |||
319 | filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json') | ||
320 | # This python changes the datastore based on the contents of a file, so mark | ||
321 | # that dependency. | ||
322 | bb.parse.mark_dependency(d, filename) | ||
323 | |||
324 | with open(filename) as manifest_file: | ||
325 | manifest_str = manifest_file.read() | ||
326 | json_start = manifest_str.find('# EOC') + 6 | ||
327 | manifest_file.seek(json_start) | ||
328 | manifest_str = manifest_file.read() | ||
329 | python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict) | ||
330 | |||
331 | # First set RPROVIDES for -native case | ||
332 | # Hardcoded since it cant be python3-native-foo, should be python3-foo-native | ||
333 | pn = 'python3' | ||
334 | rprovides = (d.getVar('RPROVIDES') or "").split() | ||
335 | |||
336 | # ${PN}-misc-native is not in the manifest | ||
337 | rprovides.append(pn + '-misc-native') | ||
338 | |||
339 | for key in python_manifest: | ||
340 | pypackage = pn + '-' + key + '-native' | ||
341 | if pypackage not in rprovides: | ||
342 | rprovides.append(pypackage) | ||
343 | |||
344 | d.setVar('RPROVIDES:class-native', ' '.join(rprovides)) | ||
345 | |||
346 | # Then work on the target | ||
347 | include_pycs = d.getVar('INCLUDE_PYCS') | ||
348 | |||
349 | packages = d.getVar('PACKAGES').split() | ||
350 | pn = d.getVar('PN') | ||
351 | |||
352 | newpackages=[] | ||
353 | for key in python_manifest: | ||
354 | pypackage = pn + '-' + key | ||
355 | |||
356 | if pypackage not in packages: | ||
357 | # We need to prepend, otherwise python-misc gets everything | ||
358 | # so we use a new variable | ||
359 | newpackages.append(pypackage) | ||
360 | |||
361 | # "Build" python's manifest FILES, RDEPENDS and SUMMARY | ||
362 | for value in python_manifest[key]['files']: | ||
363 | d.appendVar('FILES:' + pypackage, ' ' + value) | ||
364 | |||
365 | # Add cached files | ||
366 | if include_pycs == '1': | ||
367 | for value in python_manifest[key]['cached']: | ||
368 | d.appendVar('FILES:' + pypackage, ' ' + value) | ||
369 | |||
370 | for value in python_manifest[key]['rdepends']: | ||
371 | # Make it work with or without $PN | ||
372 | if '${PN}' in value: | ||
373 | value=value.split('-', 1)[1] | ||
374 | d.appendVar('RDEPENDS:' + pypackage, ' ' + pn + '-' + value) | ||
375 | |||
376 | for value in python_manifest[key].get('rrecommends', ()): | ||
377 | if '${PN}' in value: | ||
378 | value=value.split('-', 1)[1] | ||
379 | d.appendVar('RRECOMMENDS:' + pypackage, ' ' + pn + '-' + value) | ||
380 | |||
381 | d.setVar('SUMMARY:' + pypackage, python_manifest[key]['summary']) | ||
382 | |||
383 | # Prepending so to avoid python-misc getting everything | ||
384 | packages = newpackages + packages | ||
385 | d.setVar('PACKAGES', ' '.join(packages)) | ||
386 | d.setVar('ALLOW_EMPTY:${PN}-fcntl', '1') | ||
387 | d.setVar('ALLOW_EMPTY:${PN}-modules', '1') | ||
388 | d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1') | ||
389 | |||
390 | if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d): | ||
391 | bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine") | ||
392 | } | ||
393 | |||
394 | # Files needed to create a new manifest | ||
395 | |||
396 | do_create_manifest() { | ||
397 | # This task should be run with every new release of Python. | ||
398 | # We must ensure that PACKAGECONFIG enables everything when creating | ||
399 | # a new manifest, this is to base our new manifest on a complete | ||
400 | # native python build, containing all dependencies, otherwise the task | ||
401 | # wont be able to find the required files. | ||
402 | # e.g. BerkeleyDB is an optional build dependency so it may or may not | ||
403 | # be present, we must ensure it is. | ||
404 | |||
405 | cp ${UNPACKDIR}/create_manifest3.py ${WORKDIR} | ||
406 | cp ${UNPACKDIR}/python3-manifest.json ${WORKDIR} | ||
407 | cp ${UNPACKDIR}/get_module_deps3.py ${WORKDIR} | ||
408 | cd ${WORKDIR} | ||
409 | # This needs to be executed by python-native and NOT by HOST's python | ||
410 | nativepython3 create_manifest3.py ${PYTHON_MAJMIN} | ||
411 | cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json | ||
412 | } | ||
413 | |||
414 | # bitbake python -c create_manifest | ||
415 | # Make sure we have native python ready when we create a new manifest | ||
416 | addtask do_create_manifest after do_patch do_prepare_recipe_sysroot | ||
417 | |||
418 | # manual dependency additions | ||
419 | RRECOMMENDS:${PN}-core:append:class-nativesdk = " nativesdk-python3-modules" | ||
420 | RRECOMMENDS:${PN}-crypt:append:class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
421 | RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
422 | |||
423 | # For historical reasons PN is empty and provided by python3-modules | ||
424 | FILES:${PN} = "" | ||
425 | RPROVIDES:${PN}-modules = "${PN}" | ||
426 | |||
427 | FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" | ||
428 | FILES:${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" | ||
429 | FILES:${PN}-tkinter += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so" | ||
430 | |||
431 | # provide python-pyvenv from python3-venv | ||
432 | RPROVIDES:${PN}-venv += "${MLPREFIX}python3-pyvenv" | ||
433 | |||
434 | # package libpython3 | ||
435 | PACKAGES =+ "libpython3 libpython3-staticdev" | ||
436 | FILES:libpython3 = "${libdir}/libpython*.so.*" | ||
437 | FILES:libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a" | ||
438 | INSANE_SKIP:${PN}-dev += "dev-elf" | ||
439 | INSANE_SKIP:${PN}-ptest = "dev-deps" | ||
440 | |||
441 | # catch all the rest (unsorted) | ||
442 | PACKAGES += "${PN}-misc" | ||
443 | RDEPENDS:${PN}-misc += "\ | ||
444 | ${PN}-audio \ | ||
445 | ${PN}-codecs \ | ||
446 | ${PN}-core \ | ||
447 | ${PN}-email \ | ||
448 | ${PN}-numbers \ | ||
449 | ${PN}-pickle \ | ||
450 | ${PN}-pydoc \ | ||
451 | " | ||
452 | RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc" | ||
453 | RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc" | ||
454 | RDEPENDS:${PN}-modules:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '${MLPREFIX}python3-gdbm', '', d)}" | ||
455 | FILES:${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" | ||
456 | |||
457 | # catch manpage | ||
458 | PACKAGES += "${PN}-man" | ||
459 | FILES:${PN}-man = "${datadir}/man" | ||
460 | |||
461 | # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 | ||
462 | RDEPENDS:libpython3:append:libc-glibc = " libgcc" | ||
463 | RRECOMMENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig" | ||
464 | RDEPENDS:${PN}-ptest = "\ | ||
465 | ${PN}-dev \ | ||
466 | ${PN}-modules \ | ||
467 | ${PN}-tests \ | ||
468 | ${PN}-zipapp \ | ||
469 | binutils \ | ||
470 | bzip2 \ | ||
471 | coreutils \ | ||
472 | gcc \ | ||
473 | gcc-symlinks \ | ||
474 | g++ \ | ||
475 | libgcc \ | ||
476 | locale-base-fr-fr \ | ||
477 | locale-base-en-us \ | ||
478 | locale-base-de-de \ | ||
479 | sed \ | ||
480 | tzdata \ | ||
481 | unzip \ | ||
482 | " | ||
483 | RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-tr-tr" | ||
484 | RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}" | ||
485 | RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}" | ||
486 | DEV_PKG_DEPENDENCY = "" | ||
487 | RDEPENDS:${PN}-pydoc += "${PN}-io" | ||
488 | |||
489 | RDEPENDS:${PN}-tests:append:class-target = " ${MLPREFIX}bash" | ||
490 | RDEPENDS:${PN}-tests:append:class-nativesdk = " ${MLPREFIX}bash" | ||
491 | |||
492 | # Python's tests contain large numbers of files we don't need in the recipe sysroots | ||
493 | SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup" | ||
494 | py3_sysroot_cleanup () { | ||
495 | rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test | ||
496 | } | ||
diff --git a/meta/recipes-devtools/python/python3_3.9.2.bb b/meta/recipes-devtools/python/python3_3.9.2.bb deleted file mode 100644 index af1843a180..0000000000 --- a/meta/recipes-devtools/python/python3_3.9.2.bb +++ /dev/null | |||
@@ -1,382 +0,0 @@ | |||
1 | SUMMARY = "The Python Programming Language" | ||
2 | HOMEPAGE = "http://www.python.org" | ||
3 | DESCRIPTION = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." | ||
4 | LICENSE = "PSFv2" | ||
5 | SECTION = "devel/python" | ||
6 | |||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c22d2438294c784731bf9dd224a467b7" | ||
8 | |||
9 | SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ | ||
10 | file://run-ptest \ | ||
11 | file://create_manifest3.py \ | ||
12 | file://get_module_deps3.py \ | ||
13 | file://python3-manifest.json \ | ||
14 | file://check_build_completeness.py \ | ||
15 | file://reformat_sysconfig.py \ | ||
16 | file://cgi_py.patch \ | ||
17 | file://0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch \ | ||
18 | ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \ | ||
19 | file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \ | ||
20 | file://python-config.patch \ | ||
21 | file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ | ||
22 | file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \ | ||
23 | file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \ | ||
24 | file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \ | ||
25 | file://crosspythonpath.patch \ | ||
26 | file://0001-Use-FLAG_REF-always-for-interned-strings.patch \ | ||
27 | file://0001-test_locale.py-correct-the-test-output-format.patch \ | ||
28 | file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \ | ||
29 | file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \ | ||
30 | file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \ | ||
31 | file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ | ||
32 | file://0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch \ | ||
33 | " | ||
34 | |||
35 | SRC_URI_append_class-native = " \ | ||
36 | file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \ | ||
37 | file://12-distutils-prefix-is-inside-staging-area.patch \ | ||
38 | file://0001-Don-t-search-system-for-headers-libraries.patch \ | ||
39 | " | ||
40 | SRC_URI[sha256sum] = "3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" | ||
41 | |||
42 | # exclude pre-releases for both python 2.x and 3.x | ||
43 | UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" | ||
44 | UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/" | ||
45 | |||
46 | CVE_PRODUCT = "python" | ||
47 | |||
48 | # Upstream consider this expected behaviour | ||
49 | CVE_CHECK_WHITELIST += "CVE-2007-4559" | ||
50 | # This is not exploitable when glibc has CVE-2016-10739 fixed. | ||
51 | CVE_CHECK_WHITELIST += "CVE-2019-18348" | ||
52 | |||
53 | # This is windows only issue. | ||
54 | CVE_CHECK_WHITELIST += "CVE-2020-15523" | ||
55 | |||
56 | PYTHON_MAJMIN = "3.9" | ||
57 | |||
58 | S = "${WORKDIR}/Python-${PV}" | ||
59 | |||
60 | BBCLASSEXTEND = "native nativesdk" | ||
61 | |||
62 | inherit autotools pkgconfig qemu ptest multilib_header update-alternatives | ||
63 | |||
64 | MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" | ||
65 | |||
66 | ALTERNATIVE_${PN}-dev = "python3-config" | ||
67 | ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config" | ||
68 | ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}" | ||
69 | |||
70 | |||
71 | DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2" | ||
72 | DEPENDS_append_class-target = " python3-native" | ||
73 | DEPENDS_append_class-nativesdk = " python3-native" | ||
74 | |||
75 | EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib}" | ||
76 | EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}" | ||
77 | |||
78 | export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" | ||
79 | |||
80 | EXTRANATIVEPATH += "python3-native" | ||
81 | |||
82 | # LTO will be enabled via packageconfig depending upong distro features | ||
83 | LTO_class-target = "" | ||
84 | |||
85 | CACHED_CONFIGUREVARS = " \ | ||
86 | ac_cv_file__dev_ptmx=yes \ | ||
87 | ac_cv_file__dev_ptc=no \ | ||
88 | ac_cv_working_tzset=yes \ | ||
89 | " | ||
90 | |||
91 | def possibly_include_pgo(d): | ||
92 | # PGO currently causes builds to not be reproducible, so disable it for | ||
93 | # now. See YOCTO #13407 | ||
94 | if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': | ||
95 | return 'pgo' | ||
96 | |||
97 | return '' | ||
98 | |||
99 | PACKAGECONFIG_class-target ??= "readline ${@possibly_include_pgo(d)} gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" | ||
100 | PACKAGECONFIG_class-native ??= "readline gdbm" | ||
101 | PACKAGECONFIG_class-nativesdk ??= "readline gdbm" | ||
102 | PACKAGECONFIG[readline] = ",,readline" | ||
103 | # Use profile guided optimisation by running PyBench inside qemu-user | ||
104 | PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" | ||
105 | PACKAGECONFIG[tk] = ",,tk" | ||
106 | PACKAGECONFIG[gdbm] = ",,gdbm" | ||
107 | PACKAGECONFIG[lto] = "--with-lto,," | ||
108 | |||
109 | do_configure_prepend () { | ||
110 | mkdir -p ${B}/Modules | ||
111 | cat > ${B}/Modules/Setup.local << EOF | ||
112 | *disabled* | ||
113 | ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)} | ||
114 | ${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)} | ||
115 | EOF | ||
116 | } | ||
117 | |||
118 | CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" | ||
119 | |||
120 | EXTRA_OEMAKE = '\ | ||
121 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | ||
122 | STAGING_INCDIR=${STAGING_INCDIR} \ | ||
123 | LIB=${baselib} \ | ||
124 | ' | ||
125 | |||
126 | do_compile_prepend_class-target() { | ||
127 | if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then | ||
128 | qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" | ||
129 | cat >pgo-wrapper <<EOF | ||
130 | #!/bin/sh | ||
131 | cd ${B} | ||
132 | $qemu_binary "\$@" | ||
133 | EOF | ||
134 | chmod +x pgo-wrapper | ||
135 | fi | ||
136 | } | ||
137 | |||
138 | do_install_prepend() { | ||
139 | ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile | ||
140 | } | ||
141 | |||
142 | do_install_append_class-target() { | ||
143 | oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h | ||
144 | } | ||
145 | |||
146 | do_install_append_class-native() { | ||
147 | # Make sure we use /usr/bin/env python | ||
148 | for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do | ||
149 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
150 | done | ||
151 | # Add a symlink to the native Python so that scripts can just invoke | ||
152 | # "nativepython" and get the right one without needing absolute paths | ||
153 | # (these often end up too long for the #! parser in the kernel as the | ||
154 | # buffer is 128 bytes long). | ||
155 | ln -s python3-native/python3 ${D}${bindir}/nativepython3 | ||
156 | } | ||
157 | |||
158 | do_install_append() { | ||
159 | mkdir -p ${D}${libdir}/python-sysconfigdata | ||
160 | sysconfigfile=`find ${D} -name _sysconfig*.py` | ||
161 | cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py | ||
162 | |||
163 | sed -i \ | ||
164 | -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \ | ||
165 | -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
166 | -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
167 | -e "/^ 'INCLDIRSTOMAKE'/{N; s,/usr/include,${STAGING_INCDIR},g}" \ | ||
168 | -e "/^ 'INCLUDEPY'/s,/usr/include,${STAGING_INCDIR},g" \ | ||
169 | ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py | ||
170 | |||
171 | # Unfortunately the following pyc files are non-deterministc due to 'frozenset' | ||
172 | # being written without strict ordering, even with PYTHONHASHSEED = 0 | ||
173 | # Upstream is discussing ways to solve the issue properly, until then let's | ||
174 | # just not install the problematic files. | ||
175 | # More info: http://benno.id.au/blog/2013/01/15/python-determinism | ||
176 | rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython* | ||
177 | rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython* | ||
178 | } | ||
179 | |||
180 | do_install_append_class-nativesdk () { | ||
181 | # Make sure we use /usr/bin/env python | ||
182 | for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do | ||
183 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
184 | done | ||
185 | create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1' | ||
186 | } | ||
187 | |||
188 | SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py" | ||
189 | PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" | ||
190 | |||
191 | py_package_preprocess () { | ||
192 | # Remove references to buildmachine paths in target Makefile and _sysconfigdata | ||
193 | sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \ | ||
194 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
195 | -e 's:${HOSTTOOLS_DIR}/::g' \ | ||
196 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | ||
197 | -e 's:${RECIPE_SYSROOT}::g' \ | ||
198 | -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ | ||
199 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \ | ||
200 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \ | ||
201 | ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config | ||
202 | |||
203 | # Reformat _sysconfigdata after modifying it so that it remains | ||
204 | # reproducible | ||
205 | for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do | ||
206 | python3 ${WORKDIR}/reformat_sysconfig.py $c | ||
207 | done | ||
208 | |||
209 | # Recompile _sysconfigdata after modifying it | ||
210 | cd ${PKGD} | ||
211 | sysconfigfile=`find . -name _sysconfigdata_*.py` | ||
212 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
213 | -c "from py_compile import compile; compile('$sysconfigfile')" | ||
214 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
215 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=1)" | ||
216 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
217 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)" | ||
218 | cd - | ||
219 | |||
220 | mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX} | ||
221 | |||
222 | #Remove the unneeded copy of target sysconfig data | ||
223 | rm -rf ${PKGD}/${libdir}/python-sysconfigdata | ||
224 | } | ||
225 | |||
226 | # We want bytecode precompiled .py files (.pyc's) by default | ||
227 | # but the user may set it on their own conf | ||
228 | INCLUDE_PYCS ?= "1" | ||
229 | |||
230 | python(){ | ||
231 | import collections, json | ||
232 | |||
233 | filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json') | ||
234 | # This python changes the datastore based on the contents of a file, so mark | ||
235 | # that dependency. | ||
236 | bb.parse.mark_dependency(d, filename) | ||
237 | |||
238 | with open(filename) as manifest_file: | ||
239 | manifest_str = manifest_file.read() | ||
240 | json_start = manifest_str.find('# EOC') + 6 | ||
241 | manifest_file.seek(json_start) | ||
242 | manifest_str = manifest_file.read() | ||
243 | python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict) | ||
244 | |||
245 | # First set RPROVIDES for -native case | ||
246 | # Hardcoded since it cant be python3-native-foo, should be python3-foo-native | ||
247 | pn = 'python3' | ||
248 | rprovides = (d.getVar('RPROVIDES') or "").split() | ||
249 | |||
250 | # ${PN}-misc-native is not in the manifest | ||
251 | rprovides.append(pn + '-misc-native') | ||
252 | |||
253 | for key in python_manifest: | ||
254 | pypackage = pn + '-' + key + '-native' | ||
255 | if pypackage not in rprovides: | ||
256 | rprovides.append(pypackage) | ||
257 | |||
258 | d.setVar('RPROVIDES_class-native', ' '.join(rprovides)) | ||
259 | |||
260 | # Then work on the target | ||
261 | include_pycs = d.getVar('INCLUDE_PYCS') | ||
262 | |||
263 | packages = d.getVar('PACKAGES').split() | ||
264 | pn = d.getVar('PN') | ||
265 | |||
266 | newpackages=[] | ||
267 | for key in python_manifest: | ||
268 | pypackage = pn + '-' + key | ||
269 | |||
270 | if pypackage not in packages: | ||
271 | # We need to prepend, otherwise python-misc gets everything | ||
272 | # so we use a new variable | ||
273 | newpackages.append(pypackage) | ||
274 | |||
275 | # "Build" python's manifest FILES, RDEPENDS and SUMMARY | ||
276 | d.setVar('FILES_' + pypackage, '') | ||
277 | for value in python_manifest[key]['files']: | ||
278 | d.appendVar('FILES_' + pypackage, ' ' + value) | ||
279 | |||
280 | # Add cached files | ||
281 | if include_pycs == '1': | ||
282 | for value in python_manifest[key]['cached']: | ||
283 | d.appendVar('FILES_' + pypackage, ' ' + value) | ||
284 | |||
285 | for value in python_manifest[key]['rdepends']: | ||
286 | # Make it work with or without $PN | ||
287 | if '${PN}' in value: | ||
288 | value=value.split('-', 1)[1] | ||
289 | d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value) | ||
290 | |||
291 | for value in python_manifest[key].get('rrecommends', ()): | ||
292 | if '${PN}' in value: | ||
293 | value=value.split('-', 1)[1] | ||
294 | d.appendVar('RRECOMMENDS_' + pypackage, ' ' + pn + '-' + value) | ||
295 | |||
296 | d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary']) | ||
297 | |||
298 | # Prepending so to avoid python-misc getting everything | ||
299 | packages = newpackages + packages | ||
300 | d.setVar('PACKAGES', ' '.join(packages)) | ||
301 | d.setVar('ALLOW_EMPTY_${PN}-modules', '1') | ||
302 | d.setVar('ALLOW_EMPTY_${PN}-pkgutil', '1') | ||
303 | } | ||
304 | |||
305 | # Files needed to create a new manifest | ||
306 | |||
307 | do_create_manifest() { | ||
308 | # This task should be run with every new release of Python. | ||
309 | # We must ensure that PACKAGECONFIG enables everything when creating | ||
310 | # a new manifest, this is to base our new manifest on a complete | ||
311 | # native python build, containing all dependencies, otherwise the task | ||
312 | # wont be able to find the required files. | ||
313 | # e.g. BerkeleyDB is an optional build dependency so it may or may not | ||
314 | # be present, we must ensure it is. | ||
315 | |||
316 | cd ${WORKDIR} | ||
317 | # This needs to be executed by python-native and NOT by HOST's python | ||
318 | nativepython3 create_manifest3.py ${PYTHON_MAJMIN} | ||
319 | cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json | ||
320 | } | ||
321 | |||
322 | # bitbake python -c create_manifest | ||
323 | # Make sure we have native python ready when we create a new manifest | ||
324 | addtask do_create_manifest after do_patch do_prepare_recipe_sysroot | ||
325 | |||
326 | # manual dependency additions | ||
327 | RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules" | ||
328 | RRECOMMENDS_${PN}-crypt_append_class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
329 | RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
330 | |||
331 | # For historical reasons PN is empty and provided by python3-modules | ||
332 | FILES_${PN} = "" | ||
333 | RPROVIDES_${PN}-modules = "${PN}" | ||
334 | |||
335 | FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" | ||
336 | FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" | ||
337 | |||
338 | # provide python-pyvenv from python3-venv | ||
339 | RPROVIDES_${PN}-venv += "${MLPREFIX}python3-pyvenv" | ||
340 | |||
341 | # package libpython3 | ||
342 | PACKAGES =+ "libpython3 libpython3-staticdev" | ||
343 | FILES_libpython3 = "${libdir}/libpython*.so.*" | ||
344 | FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a" | ||
345 | INSANE_SKIP_${PN}-dev += "dev-elf" | ||
346 | |||
347 | # catch all the rest (unsorted) | ||
348 | PACKAGES += "${PN}-misc" | ||
349 | RDEPENDS_${PN}-misc += "\ | ||
350 | ${PN}-core \ | ||
351 | ${PN}-email \ | ||
352 | ${PN}-codecs \ | ||
353 | ${PN}-pydoc \ | ||
354 | ${PN}-pickle \ | ||
355 | ${PN}-audio \ | ||
356 | ${PN}-numbers \ | ||
357 | " | ||
358 | RDEPENDS_${PN}-modules_append_class-target = " ${MLPREFIX}python3-misc" | ||
359 | RDEPENDS_${PN}-modules_append_class-nativesdk = " ${MLPREFIX}python3-misc" | ||
360 | FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" | ||
361 | |||
362 | # catch manpage | ||
363 | PACKAGES += "${PN}-man" | ||
364 | FILES_${PN}-man = "${datadir}/man" | ||
365 | |||
366 | # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 | ||
367 | RDEPENDS_libpython3_append_libc-glibc = " libgcc" | ||
368 | RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig" | ||
369 | RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip bzip2 libgcc tzdata-europe coreutils sed" | ||
370 | RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9" | ||
371 | RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" | ||
372 | RDEPENDS_${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter tcl', '', d)}" | ||
373 | RDEPENDS_${PN}-dev = "" | ||
374 | |||
375 | RDEPENDS_${PN}-tests_append_class-target = " ${MLPREFIX}bash" | ||
376 | RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash" | ||
377 | |||
378 | # Python's tests contain large numbers of files we don't need in the recipe sysroots | ||
379 | SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup" | ||
380 | py3_sysroot_cleanup () { | ||
381 | rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test | ||
382 | } | ||