diff options
Diffstat (limited to 'meta/recipes-devtools/python')
268 files changed, 6339 insertions, 2943 deletions
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 index da6eba254f..87a2e88a1a 100644 --- a/meta/recipes-devtools/python/python-cython.inc +++ b/meta/recipes-devtools/python/python-cython.inc | |||
@@ -1,40 +1,45 @@ | |||
1 | SUMMARY = "The Cython language" | ||
2 | HOMEPAGE = "https://pypi.org/project/Cython/" | ||
1 | DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ | 3 | 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 \ | 4 | 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." | 5 | and the messy, low-level world of C." |
4 | SECTION = "devel/python" | 6 | SECTION = "devel/python" |
5 | LICENSE = "Apache-2.0" | 7 | LICENSE = "Apache-2.0" |
6 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" | 8 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=61c3ee8961575861fa86c7e62bc9f69c" |
7 | PYPI_PACKAGE = "Cython" | 9 | PYPI_PACKAGE = "Cython" |
8 | BBCLASSEXTEND = "native nativesdk" | 10 | BBCLASSEXTEND = "native nativesdk" |
9 | 11 | ||
10 | SRC_URI[sha256sum] = "df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406" | 12 | SRC_URI[sha256sum] = "dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99" |
11 | UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" | 13 | UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" |
12 | 14 | ||
13 | inherit pypi | 15 | inherit pypi |
14 | 16 | ||
15 | RDEPENDS_${PN}_class-target += "\ | 17 | RDEPENDS:${PN}:class-target += "\ |
16 | ${PYTHON_PN}-misc \ | 18 | python3-misc \ |
17 | ${PYTHON_PN}-netserver \ | 19 | python3-netserver \ |
18 | ${PYTHON_PN}-pkgutil \ | 20 | python3-pkgutil \ |
19 | ${PYTHON_PN}-pyparsing \ | 21 | python3-pyparsing \ |
20 | ${PYTHON_PN}-setuptools \ | 22 | python3-setuptools \ |
21 | ${PYTHON_PN}-shell \ | 23 | python3-shell \ |
22 | ${PYTHON_PN}-xml \ | 24 | python3-xml \ |
23 | " | 25 | " |
24 | 26 | ||
25 | RDEPENDS_${PN}_class-nativesdk += "\ | 27 | RDEPENDS:${PN}:class-nativesdk += "\ |
26 | nativesdk-${PYTHON_PN}-misc \ | 28 | nativesdk-python3-misc \ |
27 | nativesdk-${PYTHON_PN}-netserver \ | 29 | nativesdk-python3-netserver \ |
28 | nativesdk-${PYTHON_PN}-pkgutil \ | 30 | nativesdk-python3-pkgutil \ |
29 | nativesdk-${PYTHON_PN}-pyparsing \ | 31 | nativesdk-python3-pyparsing \ |
30 | nativesdk-${PYTHON_PN}-setuptools \ | 32 | nativesdk-python3-setuptools \ |
31 | nativesdk-${PYTHON_PN}-shell \ | 33 | nativesdk-python3-shell \ |
32 | nativesdk-${PYTHON_PN}-xml \ | 34 | nativesdk-python3-xml \ |
33 | " | 35 | " |
34 | 36 | ||
35 | do_install_append() { | 37 | do_install:append() { |
36 | # Make sure we use /usr/bin/env python | 38 | # Make sure we use /usr/bin/env python |
37 | for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do | 39 | for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do |
38 | sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT | 40 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT |
39 | done | 41 | done |
42 | |||
43 | # remove build paths from generated sources | ||
44 | sed -i -e 's|${WORKDIR}||' ${S}/Cython/*.c ${S}/Cython/Compiler/*.c ${S}/Cython/Plex/*.c | ||
40 | } | 45 | } |
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-pyasn1.inc b/meta/recipes-devtools/python/python-pyasn1.inc new file mode 100644 index 0000000000..7b269f2940 --- /dev/null +++ b/meta/recipes-devtools/python/python-pyasn1.inc | |||
@@ -0,0 +1,31 @@ | |||
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] = "3a35ab2c4b5ef98e17dfdec8ab074046fbda76e281c5a706ccd82328cfc8f64c" | ||
7 | |||
8 | RDEPENDS:${PN}:class-target += " \ | ||
9 | python3-codecs \ | ||
10 | python3-logging \ | ||
11 | python3-math \ | ||
12 | python3-shell \ | ||
13 | " | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
16 | |||
17 | inherit ptest | ||
18 | |||
19 | SRC_URI += " \ | ||
20 | file://run-ptest \ | ||
21 | " | ||
22 | |||
23 | RDEPENDS:${PN}-ptest += " \ | ||
24 | python3-pytest \ | ||
25 | python3-unittest-automake-output \ | ||
26 | " | ||
27 | |||
28 | do_install_ptest() { | ||
29 | install -d ${D}${PTEST_PATH}/tests | ||
30 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
31 | } | ||
diff --git a/meta/recipes-devtools/python/python-pycryptodome.inc b/meta/recipes-devtools/python/python-pycryptodome.inc index 48481bcf9a..8d9b6d911e 100644 --- a/meta/recipes-devtools/python/python-pycryptodome.inc +++ b/meta/recipes-devtools/python/python-pycryptodome.inc | |||
@@ -3,22 +3,26 @@ 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 | PYPI_PACKAGE_EXT = "tar.gz" |
11 | ${PYTHON_PN}-io \ | 11 | |
12 | ${PYTHON_PN}-math \ | 12 | RDEPENDS:${PN} += " \ |
13 | python3-cffi \ | ||
14 | python3-ctypes \ | ||
15 | python3-io \ | ||
16 | python3-math \ | ||
13 | " | 17 | " |
14 | 18 | ||
15 | RDEPENDS_${PN}-tests += " \ | 19 | RDEPENDS:${PN}-tests += " \ |
16 | ${PYTHON_PN}-unittest \ | 20 | python3-unittest \ |
17 | " | 21 | " |
18 | 22 | ||
19 | PACKAGES =+ "${PN}-tests" | 23 | PACKAGES =+ "${PN}-tests" |
20 | 24 | ||
21 | FILES_${PN}-tests = " \ | 25 | FILES:${PN}-tests = " \ |
22 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \ | 26 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \ |
23 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \ | 27 | ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \ |
24 | " | 28 | " |
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-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch b/meta/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch new file mode 100644 index 0000000000..8a646874e8 --- /dev/null +++ b/meta/recipes-devtools/python/python-rfc3986-validator/0001-setup.py-move-pytest-runner-to-test_requirements.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 3531ff73631a0d59234eb4713e7b3a7f5ea57bbb Mon Sep 17 00:00:00 2001 | ||
2 | From: Nicola Lunghi <nicola.lunghi@jci.com> | ||
3 | Date: Thu, 14 Nov 2019 12:17:51 +0000 | ||
4 | Subject: [PATCH] setup.py: move pytest-runner to test_requirements | ||
5 | |||
6 | This fixes an issue with yocto build. | ||
7 | pytest-runner is only needed when running tests. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | --- | ||
11 | setup.py | 4 ++-- | ||
12 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
13 | |||
14 | diff --git a/setup.py b/setup.py | ||
15 | index 53ebea7..ebb0de2 100644 | ||
16 | --- a/setup.py | ||
17 | +++ b/setup.py | ||
18 | @@ -10,9 +10,9 @@ with open('README.md') as readme_file: | ||
19 | |||
20 | requirements = [] | ||
21 | |||
22 | -setup_requirements = ['pytest-runner', ] | ||
23 | +setup_requirements = [] | ||
24 | |||
25 | -test_requirements = ['pytest>=3', ] | ||
26 | +test_requirements = ['pytest>=3', 'pytest-runner'] | ||
27 | |||
28 | setup( | ||
29 | author="Nicolas Aimetti", | ||
30 | -- | ||
31 | 2.20.1 | ||
32 | |||
diff --git a/meta/recipes-devtools/python/python-six.inc b/meta/recipes-devtools/python/python-six.inc index df97f845bc..6b1b4ba481 100644 --- a/meta/recipes-devtools/python/python-six.inc +++ b/meta/recipes-devtools/python/python-six.inc | |||
@@ -6,6 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d" | |||
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_0.7.16.bb b/meta/recipes-devtools/python/python3-alabaster_0.7.16.bb new file mode 100644 index 0000000000..c61fce454f --- /dev/null +++ b/meta/recipes-devtools/python/python3-alabaster_0.7.16.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] = "75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65" | ||
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 index b63c4de0d9..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-atomicwrites/run-ptest +++ b/meta/recipes-devtools/python/python3-atomicwrites/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 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}}' | 3 | pytest --automake |
diff --git a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb index 7edd41030f..848f74d612 100644 --- a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb +++ b/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb | |||
@@ -1,10 +1,9 @@ | |||
1 | DESCRIPTION = "Powerful Python library for atomic file writes" | 1 | SUMMARY = "Powerful Python library for atomic file writes" |
2 | HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" | 2 | HOMEPAGE = "https://github.com/untitaker/python-atomicwrites" |
3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4" |
5 | 5 | ||
6 | SRC_URI[md5sum] = "b5cc15c8f9f180a48665f9aacf91d817" | 6 | SRC_URI[sha256sum] = "81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11" |
7 | SRC_URI[sha256sum] = "ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a" | ||
8 | 7 | ||
9 | inherit pypi setuptools3 ptest | 8 | inherit pypi setuptools3 ptest |
10 | 9 | ||
@@ -12,9 +11,10 @@ SRC_URI += " \ | |||
12 | file://run-ptest \ | 11 | file://run-ptest \ |
13 | " | 12 | " |
14 | 13 | ||
15 | RDEPENDS_${PN}-ptest += " \ | 14 | RDEPENDS:${PN}-ptest += " \ |
16 | ${PYTHON_PN}-pytest \ | 15 | python3-pytest \ |
17 | ${PYTHON_PN}-unixadmin \ | 16 | python3-unittest-automake-output \ |
17 | python3-unixadmin \ | ||
18 | " | 18 | " |
19 | 19 | ||
20 | do_install_ptest() { | 20 | do_install_ptest() { |
@@ -22,4 +22,6 @@ do_install_ptest() { | |||
22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | 22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ |
23 | } | 23 | } |
24 | 24 | ||
25 | RDEPENDS_${PN} = "${PYTHON_PN}-misc" | 25 | RDEPENDS:${PN} = "python3-misc" |
26 | |||
27 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-attrs/0001-conftest.py-disable-deadline.patch b/meta/recipes-devtools/python/python3-attrs/0001-conftest.py-disable-deadline.patch new file mode 100644 index 0000000000..b1e6d99916 --- /dev/null +++ b/meta/recipes-devtools/python/python3-attrs/0001-conftest.py-disable-deadline.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From 41103f017f6a233ebb477dd1712fe82ea8f1c84c Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Orling <tim.orling@konsulko.com> | ||
3 | Date: Thu, 29 Feb 2024 08:45:54 -0800 | ||
4 | Subject: [PATCH] conftest.py: disable deadline | ||
5 | |||
6 | The deadline is by default 200ms, but this is intended to be useful to | ||
7 | the developer and not necessarily recommended for heavily loaded CI | ||
8 | systems. Avoid warnings by disabling the deadline completely. | ||
9 | |||
10 | https://github.com/HypothesisWorks/hypothesis/issues/3713 | ||
11 | https://hypothesis.readthedocs.io/en/latest/settings.html#hypothesis.settings.deadline | ||
12 | https://lists.openembedded.org/g/openembedded-core/topic/104640034#196437 | ||
13 | |||
14 | Fixes: | ||
15 | """ | ||
16 | Unreliable test timings! On an initial run, this test took 268.29ms, | ||
17 | which exceeded the deadline of 200.00ms, but on a subsequent run it | ||
18 | took 2.63 ms, which did not. If you expect this sort of variability in | ||
19 | your test timings, consider turning deadlines off for this test by | ||
20 | setting deadline=None. | ||
21 | """ | ||
22 | |||
23 | Upstream-Status: Submitted [https://github.com/python-attrs/attrs/pull/1252] | ||
24 | |||
25 | Signed-off-by: Tim Orling <tim.orling@konsulko.com> | ||
26 | --- | ||
27 | conftest.py | 2 +- | ||
28 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
29 | |||
30 | diff --git a/conftest.py b/conftest.py | ||
31 | index 144e5f3..fdead3d 100644 | ||
32 | --- a/conftest.py | ||
33 | +++ b/conftest.py | ||
34 | @@ -20,7 +20,7 @@ def _frozen(request): | ||
35 | def pytest_configure(config): | ||
36 | # HealthCheck.too_slow causes more trouble than good -- especially in CIs. | ||
37 | settings.register_profile( | ||
38 | - "patience", settings(suppress_health_check=[HealthCheck.too_slow]) | ||
39 | + "patience", settings(suppress_health_check=[HealthCheck.too_slow], deadline=None) | ||
40 | ) | ||
41 | settings.load_profile("patience") | ||
42 | |||
43 | -- | ||
44 | 2.34.1 | ||
45 | |||
diff --git a/meta/recipes-devtools/python/python3-attrs/0001-test_funcs-skip-test_unknown-for-pytest-8.patch b/meta/recipes-devtools/python/python3-attrs/0001-test_funcs-skip-test_unknown-for-pytest-8.patch new file mode 100644 index 0000000000..bb69c0f157 --- /dev/null +++ b/meta/recipes-devtools/python/python3-attrs/0001-test_funcs-skip-test_unknown-for-pytest-8.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From cbe95e1aa6d95195dce13406a6f0522b2964babc Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Orling <tim.orling@konsulko.com> | ||
3 | Date: Fri, 16 Feb 2024 07:17:19 -0800 | ||
4 | Subject: [PATCH] test_funcs: skip test_unknown for pytest 8 | ||
5 | |||
6 | https://github.com/python-attrs/attrs/issues/1233 | ||
7 | |||
8 | Upstream-Status: Inappropriate [Test case needs to be properly fixed upstream] | ||
9 | |||
10 | Signed-off-by: Tim Orling <tim.orling@konsulko.com> | ||
11 | --- | ||
12 | tests/test_funcs.py | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/tests/test_funcs.py b/tests/test_funcs.py | ||
16 | index 044aaab..0872c31 100644 | ||
17 | --- a/tests/test_funcs.py | ||
18 | +++ b/tests/test_funcs.py | ||
19 | @@ -593,7 +593,7 @@ class TestAssoc: | ||
20 | for k, v in change_dict.items(): | ||
21 | assert getattr(changed, k) == v | ||
22 | |||
23 | - @given(simple_classes()) | ||
24 | + @pytest.mark.skip('Broken with pytest 8. See https://github.com/python-attrs/attrs/issues/1233') | ||
25 | def test_unknown(self, C): | ||
26 | """ | ||
27 | Wanting to change an unknown attribute raises an | ||
28 | -- | ||
29 | 2.34.1 | ||
30 | |||
diff --git a/meta/recipes-devtools/python/python3-attrs/run-ptest b/meta/recipes-devtools/python/python3-attrs/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-attrs/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
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_23.2.0.bb b/meta/recipes-devtools/python/python3-attrs_23.2.0.bb new file mode 100644 index 0000000000..a638097988 --- /dev/null +++ b/meta/recipes-devtools/python/python3-attrs_23.2.0.bb | |||
@@ -0,0 +1,39 @@ | |||
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] = "935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30" | ||
7 | |||
8 | inherit pypi ptest python_hatchling | ||
9 | |||
10 | SRC_URI += " \ | ||
11 | file://0001-test_funcs-skip-test_unknown-for-pytest-8.patch \ | ||
12 | file://0001-conftest.py-disable-deadline.patch \ | ||
13 | file://run-ptest \ | ||
14 | " | ||
15 | |||
16 | DEPENDS += " \ | ||
17 | python3-hatch-vcs-native \ | ||
18 | python3-hatch-fancy-pypi-readme-native \ | ||
19 | " | ||
20 | |||
21 | RDEPENDS:${PN}+= " \ | ||
22 | python3-compression \ | ||
23 | python3-ctypes \ | ||
24 | python3-crypt \ | ||
25 | " | ||
26 | |||
27 | RDEPENDS:${PN}-ptest += " \ | ||
28 | python3-hypothesis \ | ||
29 | python3-pytest \ | ||
30 | python3-unittest-automake-output \ | ||
31 | " | ||
32 | |||
33 | do_install_ptest() { | ||
34 | install -d ${D}${PTEST_PATH}/tests | ||
35 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
36 | install ${S}/conftest.py ${D}${PTEST_PATH}/ | ||
37 | } | ||
38 | |||
39 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-babel_2.14.0.bb b/meta/recipes-devtools/python/python3-babel_2.14.0.bb new file mode 100644 index 0000000000..cd40d4222b --- /dev/null +++ b/meta/recipes-devtools/python/python3-babel_2.14.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=0f97d9a63e91407b4c0d01efde91cfc0" | ||
5 | |||
6 | SRC_URI[sha256sum] = "6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363" | ||
7 | |||
8 | PYPI_PACKAGE = "Babel" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
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..0e7479f0b5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt-crates.inc | |||
@@ -0,0 +1,114 @@ | |||
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.1.0 \ | ||
6 | crate://crates.io/base64/0.21.5 \ | ||
7 | crate://crates.io/bcrypt/0.15.0 \ | ||
8 | crate://crates.io/bcrypt-pbkdf/0.10.0 \ | ||
9 | crate://crates.io/bitflags/1.3.2 \ | ||
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.11 \ | ||
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.2.11 \ | ||
20 | crate://crates.io/heck/0.4.1 \ | ||
21 | crate://crates.io/indoc/2.0.4 \ | ||
22 | crate://crates.io/inout/0.1.3 \ | ||
23 | crate://crates.io/libc/0.2.151 \ | ||
24 | crate://crates.io/lock_api/0.4.11 \ | ||
25 | crate://crates.io/memoffset/0.9.0 \ | ||
26 | crate://crates.io/once_cell/1.19.0 \ | ||
27 | crate://crates.io/parking_lot/0.12.1 \ | ||
28 | crate://crates.io/parking_lot_core/0.9.9 \ | ||
29 | crate://crates.io/pbkdf2/0.12.2 \ | ||
30 | crate://crates.io/portable-atomic/1.6.0 \ | ||
31 | crate://crates.io/proc-macro2/1.0.70 \ | ||
32 | crate://crates.io/pyo3/0.20.3 \ | ||
33 | crate://crates.io/pyo3-build-config/0.20.3 \ | ||
34 | crate://crates.io/pyo3-ffi/0.20.3 \ | ||
35 | crate://crates.io/pyo3-macros/0.20.3 \ | ||
36 | crate://crates.io/pyo3-macros-backend/0.20.3 \ | ||
37 | crate://crates.io/quote/1.0.33 \ | ||
38 | crate://crates.io/redox_syscall/0.4.1 \ | ||
39 | crate://crates.io/scopeguard/1.2.0 \ | ||
40 | crate://crates.io/sha2/0.10.8 \ | ||
41 | crate://crates.io/smallvec/1.11.2 \ | ||
42 | crate://crates.io/subtle/2.5.0 \ | ||
43 | crate://crates.io/syn/2.0.41 \ | ||
44 | crate://crates.io/target-lexicon/0.12.12 \ | ||
45 | crate://crates.io/typenum/1.17.0 \ | ||
46 | crate://crates.io/unicode-ident/1.0.12 \ | ||
47 | crate://crates.io/unindent/0.2.3 \ | ||
48 | crate://crates.io/version_check/0.9.4 \ | ||
49 | crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ | ||
50 | crate://crates.io/windows-targets/0.48.5 \ | ||
51 | crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ | ||
52 | crate://crates.io/windows_aarch64_msvc/0.48.5 \ | ||
53 | crate://crates.io/windows_i686_gnu/0.48.5 \ | ||
54 | crate://crates.io/windows_i686_msvc/0.48.5 \ | ||
55 | crate://crates.io/windows_x86_64_gnu/0.48.5 \ | ||
56 | crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ | ||
57 | crate://crates.io/windows_x86_64_msvc/0.48.5 \ | ||
58 | crate://crates.io/zeroize/1.7.0 \ | ||
59 | " | ||
60 | |||
61 | SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" | ||
62 | SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" | ||
63 | SRC_URI[bcrypt-0.15.0.sha256sum] = "28d1c9c15093eb224f0baa400f38fcd713fc1391a6f1c389d886beef146d60a3" | ||
64 | SRC_URI[bcrypt-pbkdf-0.10.0.sha256sum] = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2" | ||
65 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
66 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" | ||
67 | SRC_URI[blowfish-0.9.1.sha256sum] = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7" | ||
68 | SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" | ||
69 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
70 | SRC_URI[cipher-0.4.4.sha256sum] = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" | ||
71 | SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" | ||
72 | SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" | ||
73 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | ||
74 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | ||
75 | SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" | ||
76 | SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" | ||
77 | SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" | ||
78 | SRC_URI[inout-0.1.3.sha256sum] = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" | ||
79 | SRC_URI[libc-0.2.151.sha256sum] = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" | ||
80 | SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" | ||
81 | SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" | ||
82 | SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" | ||
83 | SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" | ||
84 | SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" | ||
85 | SRC_URI[pbkdf2-0.12.2.sha256sum] = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" | ||
86 | SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" | ||
87 | SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" | ||
88 | SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233" | ||
89 | SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7" | ||
90 | SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa" | ||
91 | SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158" | ||
92 | SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185" | ||
93 | SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" | ||
94 | SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" | ||
95 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | ||
96 | SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" | ||
97 | SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" | ||
98 | SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" | ||
99 | SRC_URI[syn-2.0.41.sha256sum] = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" | ||
100 | SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" | ||
101 | SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" | ||
102 | SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||
103 | SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" | ||
104 | SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" | ||
105 | SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" | ||
106 | SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" | ||
107 | SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" | ||
108 | SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" | ||
109 | SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" | ||
110 | SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" | ||
111 | SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" | ||
112 | SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" | ||
113 | SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" | ||
114 | SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" | ||
diff --git a/meta/recipes-devtools/python/python3-bcrypt/0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch b/meta/recipes-devtools/python/python3-bcrypt/0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch new file mode 100644 index 0000000000..3f671fcc98 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt/0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch | |||
@@ -0,0 +1,111 @@ | |||
1 | From cfdd98b3215cc12e66190a9c7f0a32c052e3c2e7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 26 Feb 2024 18:26:30 -0800 | ||
4 | Subject: [PATCH] Bump pyo3 from 0.20.0 to 0.20.3 in /src/_bcrypt (#746) | ||
5 | |||
6 | It fixes build on hosts without 64bit atomics | ||
7 | |||
8 | Upstream-Status: Backport [https://github.com/pyca/bcrypt/commit/c2ef9350798ab59b18e8a0e04a01389858578fe0] | ||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | src/_bcrypt/Cargo.lock | 22 ++++++++++++++-------- | ||
12 | src/_bcrypt/Cargo.toml | 2 +- | ||
13 | 2 files changed, 15 insertions(+), 9 deletions(-) | ||
14 | |||
15 | --- a/src/_bcrypt/Cargo.lock | ||
16 | +++ b/src/_bcrypt/Cargo.lock | ||
17 | @@ -233,6 +233,12 @@ dependencies = [ | ||
18 | ] | ||
19 | |||
20 | [[package]] | ||
21 | +name = "portable-atomic" | ||
22 | +version = "1.6.0" | ||
23 | +source = "registry+https://github.com/rust-lang/crates.io-index" | ||
24 | +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" | ||
25 | + | ||
26 | +[[package]] | ||
27 | name = "proc-macro2" | ||
28 | version = "1.0.70" | ||
29 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
30 | @@ -243,15 +249,16 @@ dependencies = [ | ||
31 | |||
32 | [[package]] | ||
33 | name = "pyo3" | ||
34 | -version = "0.20.0" | ||
35 | +version = "0.20.3" | ||
36 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
37 | -checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b" | ||
38 | +checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233" | ||
39 | dependencies = [ | ||
40 | "cfg-if", | ||
41 | "indoc", | ||
42 | "libc", | ||
43 | "memoffset", | ||
44 | "parking_lot", | ||
45 | + "portable-atomic", | ||
46 | "pyo3-build-config", | ||
47 | "pyo3-ffi", | ||
48 | "pyo3-macros", | ||
49 | @@ -260,9 +267,9 @@ dependencies = [ | ||
50 | |||
51 | [[package]] | ||
52 | name = "pyo3-build-config" | ||
53 | -version = "0.20.0" | ||
54 | +version = "0.20.3" | ||
55 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
56 | -checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5" | ||
57 | +checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7" | ||
58 | dependencies = [ | ||
59 | "once_cell", | ||
60 | "target-lexicon", | ||
61 | @@ -270,9 +277,9 @@ dependencies = [ | ||
62 | |||
63 | [[package]] | ||
64 | name = "pyo3-ffi" | ||
65 | -version = "0.20.0" | ||
66 | +version = "0.20.3" | ||
67 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
68 | -checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b" | ||
69 | +checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa" | ||
70 | dependencies = [ | ||
71 | "libc", | ||
72 | "pyo3-build-config", | ||
73 | @@ -280,9 +287,9 @@ dependencies = [ | ||
74 | |||
75 | [[package]] | ||
76 | name = "pyo3-macros" | ||
77 | -version = "0.20.0" | ||
78 | +version = "0.20.3" | ||
79 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
80 | -checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b" | ||
81 | +checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158" | ||
82 | dependencies = [ | ||
83 | "proc-macro2", | ||
84 | "pyo3-macros-backend", | ||
85 | @@ -292,12 +299,13 @@ dependencies = [ | ||
86 | |||
87 | [[package]] | ||
88 | name = "pyo3-macros-backend" | ||
89 | -version = "0.20.0" | ||
90 | +version = "0.20.3" | ||
91 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
92 | -checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424" | ||
93 | +checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185" | ||
94 | dependencies = [ | ||
95 | "heck", | ||
96 | "proc-macro2", | ||
97 | + "pyo3-build-config", | ||
98 | "quote", | ||
99 | "syn", | ||
100 | ] | ||
101 | --- a/src/_bcrypt/Cargo.toml | ||
102 | +++ b/src/_bcrypt/Cargo.toml | ||
103 | @@ -6,7 +6,7 @@ edition = "2018" | ||
104 | publish = false | ||
105 | |||
106 | [dependencies] | ||
107 | -pyo3 = { version = "0.20.0", features = ["abi3"] } | ||
108 | +pyo3 = { version = "0.20.3", features = ["abi3"] } | ||
109 | bcrypt = "0.15" | ||
110 | bcrypt-pbkdf = "0.10.0" | ||
111 | base64 = "0.21.5" | ||
diff --git a/meta/recipes-devtools/python/python3-bcrypt/run-ptest b/meta/recipes-devtools/python/python3-bcrypt/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb b/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb new file mode 100644 index 0000000000..93fa645f33 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb | |||
@@ -0,0 +1,37 @@ | |||
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:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', ' -fuse-ld=bfd', '', d)}" | ||
8 | |||
9 | SRC_URI[sha256sum] = "33313a1200a3ae90b75587ceac502b048b840fc69e7f7a0905b5f87fac7a1258" | ||
10 | |||
11 | inherit pypi python_setuptools3_rust ptest-cargo cargo-update-recipe-crates | ||
12 | |||
13 | SRC_URI += " \ | ||
14 | file://0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch \ | ||
15 | file://run-ptest \ | ||
16 | " | ||
17 | |||
18 | CARGO_SRC_DIR = "src/_bcrypt" | ||
19 | |||
20 | require ${BPN}-crates.inc | ||
21 | |||
22 | RDEPENDS:${PN}-ptest += " \ | ||
23 | python3-pytest \ | ||
24 | python3-unittest-automake-output \ | ||
25 | " | ||
26 | |||
27 | do_install_ptest() { | ||
28 | install -d ${D}${PTEST_PATH}/tests | ||
29 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
30 | } | ||
31 | |||
32 | RDEPENDS:${PN}:class-target += "\ | ||
33 | python3-cffi \ | ||
34 | python3-ctypes \ | ||
35 | python3-shell \ | ||
36 | python3-six \ | ||
37 | " | ||
diff --git a/meta/recipes-devtools/python/python3-beartype_0.18.5.bb b/meta/recipes-devtools/python/python3-beartype_0.18.5.bb new file mode 100644 index 0000000000..04fbd3139f --- /dev/null +++ b/meta/recipes-devtools/python/python3-beartype_0.18.5.bb | |||
@@ -0,0 +1,11 @@ | |||
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=e71f94261c1b39896cacacfeaf60560e" | ||
6 | |||
7 | SRC_URI[sha256sum] = "264ddc2f1da9ec94ff639141fbe33d22e12a9f75aa863b83b7046ffff1381927" | ||
8 | |||
9 | inherit setuptools3 pypi | ||
10 | |||
11 | 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..41fd3d960a --- /dev/null +++ b/meta/recipes-devtools/python/python3-booleanpy_4.0.bb | |||
@@ -0,0 +1,13 @@ | |||
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 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-build_1.2.1.bb b/meta/recipes-devtools/python/python3-build_1.2.1.bb new file mode 100644 index 0000000000..0156861201 --- /dev/null +++ b/meta/recipes-devtools/python/python3-build_1.2.1.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] = "526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d" | ||
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/0001-setup.py-hard-code-version.patch b/meta/recipes-devtools/python/python3-calver/0001-setup.py-hard-code-version.patch new file mode 100644 index 0000000000..43f8a78ef0 --- /dev/null +++ b/meta/recipes-devtools/python/python3-calver/0001-setup.py-hard-code-version.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 390a233ed969f82b2ef209b23bfb523e785603f9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Tue, 9 May 2023 10:19:41 -0400 | ||
4 | Subject: [PATCH] setup.py: hard-code version | ||
5 | |||
6 | setup.py is pulling the build version from the current date rather than | ||
7 | a release tag or other predictable method, causing reproducibility | ||
8 | issues in builds. Patch this to make reproducible builds work while | ||
9 | discussing this with upstream maintainer (or developing a patch that can | ||
10 | make calver rely on a more standard pyproject.toml solution). | ||
11 | |||
12 | Upstream-Status: Inappropriate (configuration) | ||
13 | |||
14 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
15 | --- | ||
16 | setup.py | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/setup.py b/setup.py | ||
20 | index 73f6b10..2e27cf1 100644 | ||
21 | --- a/setup.py | ||
22 | +++ b/setup.py | ||
23 | @@ -42,5 +42,5 @@ setup( | ||
24 | "use_calver = calver.integration:version", | ||
25 | ], | ||
26 | }, | ||
27 | - version=calver_version(True), | ||
28 | + version=calver_version("2022.6.26"), | ||
29 | ) | ||
30 | -- | ||
31 | 2.40.0 | ||
32 | |||
diff --git a/meta/recipes-devtools/python/python3-calver/run-ptest b/meta/recipes-devtools/python/python3-calver/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-calver/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-calver_2022.6.26.bb b/meta/recipes-devtools/python/python3-calver_2022.6.26.bb new file mode 100644 index 0000000000..71b5431400 --- /dev/null +++ b/meta/recipes-devtools/python/python3-calver_2022.6.26.bb | |||
@@ -0,0 +1,28 @@ | |||
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 = " \ | ||
7 | git://github.com/di/calver;branch=master;protocol=https \ | ||
8 | file://run-ptest \ | ||
9 | file://0001-setup.py-hard-code-version.patch \ | ||
10 | " | ||
11 | SRCREV = "3268d8acf2c345f32a1c5f08ba25dc67f76cca81" | ||
12 | |||
13 | inherit python_setuptools_build_meta ptest | ||
14 | |||
15 | S = "${WORKDIR}/git" | ||
16 | |||
17 | RDEPENDS:${PN}-ptest += " \ | ||
18 | python3-pretend \ | ||
19 | python3-pytest \ | ||
20 | python3-unittest-automake-output \ | ||
21 | " | ||
22 | |||
23 | do_install_ptest() { | ||
24 | install -d ${D}${PTEST_PATH}/tests | ||
25 | cp -rf ${S}/tests ${D}${PTEST_PATH}/ | ||
26 | } | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-certifi_2024.2.2.bb b/meta/recipes-devtools/python/python3-certifi_2024.2.2.bb new file mode 100644 index 0000000000..4e61b8d9d4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-certifi_2024.2.2.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] = "0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f" | ||
11 | |||
12 | inherit pypi setuptools3 | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
15 | |||
16 | RDEPENDS:${PN} += "python3-io" | ||
diff --git a/meta/recipes-devtools/python/python3-cffi_1.16.0.bb b/meta/recipes-devtools/python/python3-cffi_1.16.0.bb new file mode 100644 index 0000000000..c5f6578ab2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cffi_1.16.0.bb | |||
@@ -0,0 +1,18 @@ | |||
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] = "bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | RDEPENDS:${PN}:class-target = " \ | ||
12 | python3-ctypes \ | ||
13 | python3-io \ | ||
14 | python3-pycparser \ | ||
15 | python3-shell \ | ||
16 | " | ||
17 | |||
18 | 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..ed792b1c7e --- /dev/null +++ b/meta/recipes-devtools/python/python3-chardet_5.2.0.bb | |||
@@ -0,0 +1,24 @@ | |||
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 | # setup.py of chardet needs this. | ||
9 | DEPENDS += "python3-pytest-runner-native" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | PACKAGES =+ "${PN}-cli" | ||
14 | FILES:${PN}-cli += " \ | ||
15 | ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \ | ||
16 | " | ||
17 | |||
18 | RDEPENDS:${PN}-cli = "${PN} " | ||
19 | |||
20 | RDEPENDS:${PN}:class-target += " \ | ||
21 | python3-logging \ | ||
22 | " | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-click/run-ptest b/meta/recipes-devtools/python/python3-click/run-ptest new file mode 100644 index 0000000000..b63c4de0d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-click/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
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-click_8.1.7.bb b/meta/recipes-devtools/python/python3-click_8.1.7.bb new file mode 100644 index 0000000000..7d91e1af83 --- /dev/null +++ b/meta/recipes-devtools/python/python3-click_8.1.7.bb | |||
@@ -0,0 +1,39 @@ | |||
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.rst;md5=1fa98232fd645608937a0fdc82e999b8" | ||
10 | |||
11 | SRC_URI[sha256sum] = "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" | ||
12 | |||
13 | inherit pypi setuptools3 ptest | ||
14 | |||
15 | SRC_URI += "file://run-ptest" | ||
16 | |||
17 | RDEPENDS:${PN}-ptest += " \ | ||
18 | python3-pytest \ | ||
19 | python3-terminal \ | ||
20 | python3-unixadmin \ | ||
21 | " | ||
22 | |||
23 | do_install_ptest() { | ||
24 | install -d ${D}${PTEST_PATH}/tests | ||
25 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
26 | cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/ | ||
27 | cp -rf ${S}/docs ${D}${PTEST_PATH}/ | ||
28 | } | ||
29 | |||
30 | UPSTREAM_CHECK_REGEX = "click/(?P<pver>\d+(\.\d+)+)/" | ||
31 | |||
32 | CLEANBROKEN = "1" | ||
33 | |||
34 | RDEPENDS:${PN} += "\ | ||
35 | python3-io \ | ||
36 | python3-threading \ | ||
37 | " | ||
38 | |||
39 | BBCLASSEXTEND = "native nativesdk" | ||
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..b26e22b70c --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-crates.inc | |||
@@ -0,0 +1,102 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-cryptography' | ||
2 | |||
3 | # from src/rust/Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/asn1/0.15.5 \ | ||
6 | crate://crates.io/asn1_derive/0.15.5 \ | ||
7 | crate://crates.io/autocfg/1.1.0 \ | ||
8 | crate://crates.io/base64/0.21.7 \ | ||
9 | crate://crates.io/bitflags/1.3.2 \ | ||
10 | crate://crates.io/bitflags/2.4.2 \ | ||
11 | crate://crates.io/cc/1.0.83 \ | ||
12 | crate://crates.io/cfg-if/1.0.0 \ | ||
13 | crate://crates.io/foreign-types/0.3.2 \ | ||
14 | crate://crates.io/foreign-types-shared/0.1.1 \ | ||
15 | crate://crates.io/heck/0.4.1 \ | ||
16 | crate://crates.io/indoc/2.0.4 \ | ||
17 | crate://crates.io/libc/0.2.152 \ | ||
18 | crate://crates.io/lock_api/0.4.11 \ | ||
19 | crate://crates.io/memoffset/0.9.0 \ | ||
20 | crate://crates.io/once_cell/1.19.0 \ | ||
21 | crate://crates.io/openssl/0.10.63 \ | ||
22 | crate://crates.io/openssl-macros/0.1.1 \ | ||
23 | crate://crates.io/openssl-sys/0.9.99 \ | ||
24 | crate://crates.io/parking_lot/0.12.1 \ | ||
25 | crate://crates.io/parking_lot_core/0.9.9 \ | ||
26 | crate://crates.io/pem/3.0.3 \ | ||
27 | crate://crates.io/pkg-config/0.3.29 \ | ||
28 | crate://crates.io/portable-atomic/1.6.0 \ | ||
29 | crate://crates.io/proc-macro2/1.0.78 \ | ||
30 | crate://crates.io/pyo3/0.20.3 \ | ||
31 | crate://crates.io/pyo3-build-config/0.20.3 \ | ||
32 | crate://crates.io/pyo3-ffi/0.20.3 \ | ||
33 | crate://crates.io/pyo3-macros/0.20.3 \ | ||
34 | crate://crates.io/pyo3-macros-backend/0.20.3 \ | ||
35 | crate://crates.io/quote/1.0.35 \ | ||
36 | crate://crates.io/redox_syscall/0.4.1 \ | ||
37 | crate://crates.io/scopeguard/1.2.0 \ | ||
38 | crate://crates.io/self_cell/1.0.3 \ | ||
39 | crate://crates.io/smallvec/1.13.1 \ | ||
40 | crate://crates.io/syn/2.0.48 \ | ||
41 | crate://crates.io/target-lexicon/0.12.13 \ | ||
42 | crate://crates.io/unicode-ident/1.0.12 \ | ||
43 | crate://crates.io/unindent/0.2.3 \ | ||
44 | crate://crates.io/vcpkg/0.2.15 \ | ||
45 | crate://crates.io/windows-targets/0.48.5 \ | ||
46 | crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ | ||
47 | crate://crates.io/windows_aarch64_msvc/0.48.5 \ | ||
48 | crate://crates.io/windows_i686_gnu/0.48.5 \ | ||
49 | crate://crates.io/windows_i686_msvc/0.48.5 \ | ||
50 | crate://crates.io/windows_x86_64_gnu/0.48.5 \ | ||
51 | crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ | ||
52 | crate://crates.io/windows_x86_64_msvc/0.48.5 \ | ||
53 | " | ||
54 | |||
55 | SRC_URI[asn1-0.15.5.sha256sum] = "ae3ecbce89a22627b5e8e6e11d69715617138290289e385cde773b1fe50befdb" | ||
56 | SRC_URI[asn1_derive-0.15.5.sha256sum] = "861af988fac460ac69a09f41e6217a8fb9178797b76fcc9478444be6a59be19c" | ||
57 | SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" | ||
58 | SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" | ||
59 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
60 | SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" | ||
61 | SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" | ||
62 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
63 | SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" | ||
64 | SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" | ||
65 | SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" | ||
66 | SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" | ||
67 | SRC_URI[libc-0.2.152.sha256sum] = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" | ||
68 | SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" | ||
69 | SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" | ||
70 | SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" | ||
71 | SRC_URI[openssl-0.10.63.sha256sum] = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" | ||
72 | SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" | ||
73 | SRC_URI[openssl-sys-0.9.99.sha256sum] = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" | ||
74 | SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" | ||
75 | SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" | ||
76 | SRC_URI[pem-3.0.3.sha256sum] = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" | ||
77 | SRC_URI[pkg-config-0.3.29.sha256sum] = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" | ||
78 | SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" | ||
79 | SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" | ||
80 | SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233" | ||
81 | SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7" | ||
82 | SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa" | ||
83 | SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158" | ||
84 | SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185" | ||
85 | SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" | ||
86 | SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" | ||
87 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | ||
88 | SRC_URI[self_cell-1.0.3.sha256sum] = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba" | ||
89 | SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" | ||
90 | SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" | ||
91 | SRC_URI[target-lexicon-0.12.13.sha256sum] = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" | ||
92 | SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||
93 | SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" | ||
94 | SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" | ||
95 | SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" | ||
96 | SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" | ||
97 | SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" | ||
98 | SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" | ||
99 | SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" | ||
100 | SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" | ||
101 | SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" | ||
102 | SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" | ||
diff --git a/meta/recipes-devtools/python/python3-cryptography-vectors_42.0.5.bb b/meta/recipes-devtools/python/python3-cryptography-vectors_42.0.5.bb new file mode 100644 index 0000000000..ee522af08e --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-vectors_42.0.5.bb | |||
@@ -0,0 +1,31 @@ | |||
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 | |||
12 | SRC_URI[sha256sum] = "505cd5e3b0cb32da1526f07042b7fc38a4b6c356710cb73d2b5f76b037a38ed1" | ||
13 | |||
14 | PYPI_PACKAGE = "cryptography_vectors" | ||
15 | |||
16 | inherit pypi python_setuptools_build_meta | ||
17 | |||
18 | DEPENDS += " \ | ||
19 | python3-cryptography \ | ||
20 | " | ||
21 | |||
22 | do_install:append () { | ||
23 | # Remove the sha256 checksum lines for pycache files | ||
24 | sed ${D}${PYTHON_SITEPACKAGES_DIR}/cryptography_vectors-${PV}.dist-info/RECORD -e '/__pycache__/d' -i | ||
25 | } | ||
26 | |||
27 | BBCLASSEXTEND = "native nativesdk" | ||
28 | |||
29 | UPSTREAM_CHECK_REGEX = "" | ||
30 | |||
31 | RECIPE_NO_UPDATE_REASON = "Must be updated in sync with python3-cryptography." | ||
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..f9c8d1393d --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From b7dd3ce1d75d1e6255e1aca82aa7f401d4246a75 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 c9a7979bd..dec4b7157 100644 | ||
30 | --- a/pyproject.toml | ||
31 | +++ b/pyproject.toml | ||
32 | @@ -92,7 +92,7 @@ rust-version = ">=1.63.0" | ||
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", | ||
41 | -- | ||
42 | 2.34.1 | ||
43 | |||
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-cryptography_42.0.5.bb b/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb new file mode 100644 index 0000000000..732f925d92 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb | |||
@@ -0,0 +1,67 @@ | |||
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 | SRC_URI[sha256sum] = "6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1" | ||
12 | |||
13 | SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \ | ||
14 | file://check-memfree.py \ | ||
15 | file://run-ptest \ | ||
16 | " | ||
17 | |||
18 | require ${BPN}-crates.inc | ||
19 | |||
20 | inherit pypi python_setuptools3_rust cargo-update-recipe-crates pkgconfig | ||
21 | |||
22 | DEPENDS += " \ | ||
23 | python3-cffi-native \ | ||
24 | " | ||
25 | |||
26 | RDEPENDS:${PN} += " \ | ||
27 | python3-cffi \ | ||
28 | " | ||
29 | |||
30 | RDEPENDS:${PN}:append:class-target = " \ | ||
31 | python3-numbers \ | ||
32 | python3-threading \ | ||
33 | " | ||
34 | |||
35 | RDEPENDS:${PN}-ptest += " \ | ||
36 | python3-bcrypt \ | ||
37 | python3-cryptography-vectors (= ${PV}) \ | ||
38 | python3-hypothesis \ | ||
39 | python3-iso8601 \ | ||
40 | python3-mmap \ | ||
41 | python3-pretend \ | ||
42 | python3-psutil \ | ||
43 | python3-pytest \ | ||
44 | python3-unittest-automake-output \ | ||
45 | python3-pytest-subtests \ | ||
46 | python3-pytz \ | ||
47 | " | ||
48 | |||
49 | inherit ptest | ||
50 | |||
51 | do_install_ptest() { | ||
52 | install -D ${WORKDIR}/check-memfree.py ${D}${PTEST_PATH}/ | ||
53 | install -d ${D}${PTEST_PATH}/tests | ||
54 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
55 | # remove test_x509.py as it needs benchmark and we don't | ||
56 | # want to introduce the benchmark dependency | ||
57 | rm -rf ${D}${PTEST_PATH}/tests/bench/test_x509.py | ||
58 | install -d ${D}${PTEST_PATH}/tests/hazmat | ||
59 | cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/ | ||
60 | cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/ | ||
61 | } | ||
62 | |||
63 | FILES:${PN}-dbg += " \ | ||
64 | ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \ | ||
65 | " | ||
66 | |||
67 | BBCLASSEXTEND = "native nativesdk" | ||
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.0.10.bb b/meta/recipes-devtools/python/python3-cython_3.0.10.bb new file mode 100644 index 0000000000..07638d7ad7 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cython_3.0.10.bb | |||
@@ -0,0 +1,37 @@ | |||
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 | SETUPTOOLS_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 | PACKAGESPLITFUNCS =+ "cython_fix_sources" | ||
21 | |||
22 | cython_fix_sources () { | ||
23 | for f in ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/FlowControl.c \ | ||
24 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/FusedNode.c \ | ||
25 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/Scanning.c \ | ||
26 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/Visitor.c \ | ||
27 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Plex/Actions.c \ | ||
28 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Plex/Scanners.c \ | ||
29 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Runtime/refnanny.c \ | ||
30 | ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Tempita/_tempita.c \ | ||
31 | ${PKGD}${libdir}/${PYTHON_DIR}/site-packages/Cython*/SOURCES.txt; do | ||
32 | if [ -e $f ]; then | ||
33 | sed -i -e 's#${WORKDIR}/Cython-${PV}#${TARGET_DBGSRC_DIR}#g' $f | ||
34 | fi | ||
35 | done | ||
36 | } | ||
37 | |||
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.3.2.bb b/meta/recipes-devtools/python/python3-dbus_1.3.2.bb new file mode 100644 index 0000000000..e0cf64c70e --- /dev/null +++ b/meta/recipes-devtools/python/python3-dbus_1.3.2.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.gz" | ||
9 | |||
10 | SRC_URI[sha256sum] = "ad67819308618b5069537be237f8e68ca1c7fcc95ee4a121fe6845b1418248f8" | ||
11 | |||
12 | S = "${WORKDIR}/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.31.1.bb b/meta/recipes-devtools/python/python3-dbusmock_0.31.1.bb new file mode 100644 index 0000000000..fc32c6bbb6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-dbusmock_0.31.1.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] = "b23b8e1b51fe2a9b13e617fff6b60b3ed8e536c080cf3498019d223678d5ea49" | ||
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.20.1.bb b/meta/recipes-devtools/python/python3-docutils_0.20.1.bb new file mode 100644 index 0000000000..6038732cc4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-docutils_0.20.1.bb | |||
@@ -0,0 +1,20 @@ | |||
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 = "PSF-2.0 & BSD-2-Clause & GPL-3.0-only" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING.txt;md5=08f5f8aa6a1db2500c08a2bb558e45af" | ||
6 | |||
7 | SRC_URI[sha256sum] = "f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | do_install:append() { | ||
12 | for f in rst2html rst2html4 rst2html5 rst2latex rst2man \ | ||
13 | rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml \ | ||
14 | rstpep2html | ||
15 | do | ||
16 | mv ${D}${bindir}/$f.py ${D}${bindir}/$f; | ||
17 | done | ||
18 | } | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch new file mode 100644 index 0000000000..a2df482e3a --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch | |||
@@ -0,0 +1,132 @@ | |||
1 | From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
3 | Date: Wed, 19 Jan 2022 12:46:42 -0500 | ||
4 | Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public" | ||
5 | |||
6 | This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb. | ||
7 | |||
8 | Upstream-Status: Inappropriate [embedded specific] | ||
9 | |||
10 | --- | ||
11 | libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++------- | ||
12 | libfdt/libfdt.h | 18 ------------------ | ||
13 | libfdt/version.lds | 1 - | ||
14 | 3 files changed, 22 insertions(+), 26 deletions(-) | ||
15 | |||
16 | diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c | ||
17 | index 5c0c398..d217e79 100644 | ||
18 | --- a/libfdt/fdt_overlay.c | ||
19 | +++ b/libfdt/fdt_overlay.c | ||
20 | @@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment) | ||
21 | return fdt32_to_cpu(*val); | ||
22 | } | ||
23 | |||
24 | -int fdt_overlay_target_offset(const void *fdt, const void *fdto, | ||
25 | - int fragment_offset, char const **pathp) | ||
26 | +/** | ||
27 | + * overlay_get_target - retrieves the offset of a fragment's target | ||
28 | + * @fdt: Base device tree blob | ||
29 | + * @fdto: Device tree overlay blob | ||
30 | + * @fragment: node offset of the fragment in the overlay | ||
31 | + * @pathp: pointer which receives the path of the target (or NULL) | ||
32 | + * | ||
33 | + * overlay_get_target() retrieves the target offset in the base | ||
34 | + * device tree of a fragment, no matter how the actual targeting is | ||
35 | + * done (through a phandle or a path) | ||
36 | + * | ||
37 | + * returns: | ||
38 | + * the targeted node offset in the base device tree | ||
39 | + * Negative error code on error | ||
40 | + */ | ||
41 | +static int overlay_get_target(const void *fdt, const void *fdto, | ||
42 | + int fragment, char const **pathp) | ||
43 | { | ||
44 | uint32_t phandle; | ||
45 | const char *path = NULL; | ||
46 | int path_len = 0, ret; | ||
47 | |||
48 | /* Try first to do a phandle based lookup */ | ||
49 | - phandle = overlay_get_target_phandle(fdto, fragment_offset); | ||
50 | + phandle = overlay_get_target_phandle(fdto, fragment); | ||
51 | if (phandle == (uint32_t)-1) | ||
52 | return -FDT_ERR_BADPHANDLE; | ||
53 | |||
54 | /* no phandle, try path */ | ||
55 | if (!phandle) { | ||
56 | /* And then a path based lookup */ | ||
57 | - path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len); | ||
58 | + path = fdt_getprop(fdto, fragment, "target-path", &path_len); | ||
59 | if (path) | ||
60 | ret = fdt_path_offset(fdt, path); | ||
61 | else | ||
62 | @@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto) | ||
63 | if (overlay < 0) | ||
64 | return overlay; | ||
65 | |||
66 | - target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL); | ||
67 | + target = overlay_get_target(fdt, fdto, fragment, NULL); | ||
68 | if (target < 0) | ||
69 | return target; | ||
70 | |||
71 | @@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto) | ||
72 | return -FDT_ERR_BADOVERLAY; | ||
73 | |||
74 | /* get the target of the fragment */ | ||
75 | - ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path); | ||
76 | + ret = overlay_get_target(fdt, fdto, fragment, &target_path); | ||
77 | if (ret < 0) | ||
78 | return ret; | ||
79 | target = ret; | ||
80 | @@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto) | ||
81 | |||
82 | if (!target_path) { | ||
83 | /* again in case setprop_placeholder changed it */ | ||
84 | - ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path); | ||
85 | + ret = overlay_get_target(fdt, fdto, fragment, &target_path); | ||
86 | if (ret < 0) | ||
87 | return ret; | ||
88 | target = ret; | ||
89 | diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h | ||
90 | index a7f432c..7f117e8 100644 | ||
91 | --- a/libfdt/libfdt.h | ||
92 | +++ b/libfdt/libfdt.h | ||
93 | @@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset); | ||
94 | */ | ||
95 | int fdt_overlay_apply(void *fdt, void *fdto); | ||
96 | |||
97 | -/** | ||
98 | - * fdt_overlay_target_offset - retrieves the offset of a fragment's target | ||
99 | - * @fdt: Base device tree blob | ||
100 | - * @fdto: Device tree overlay blob | ||
101 | - * @fragment_offset: node offset of the fragment in the overlay | ||
102 | - * @pathp: pointer which receives the path of the target (or NULL) | ||
103 | - * | ||
104 | - * fdt_overlay_target_offset() retrieves the target offset in the base | ||
105 | - * device tree of a fragment, no matter how the actual targeting is | ||
106 | - * done (through a phandle or a path) | ||
107 | - * | ||
108 | - * returns: | ||
109 | - * the targeted node offset in the base device tree | ||
110 | - * Negative error code on error | ||
111 | - */ | ||
112 | -int fdt_overlay_target_offset(const void *fdt, const void *fdto, | ||
113 | - int fragment_offset, char const **pathp); | ||
114 | - | ||
115 | /**********************************************************************/ | ||
116 | /* Debugging / informational functions */ | ||
117 | /**********************************************************************/ | ||
118 | diff --git a/libfdt/version.lds b/libfdt/version.lds | ||
119 | index cbce5d4..7ab85f1 100644 | ||
120 | --- a/libfdt/version.lds | ||
121 | +++ b/libfdt/version.lds | ||
122 | @@ -77,7 +77,6 @@ LIBFDT_1.2 { | ||
123 | fdt_appendprop_addrrange; | ||
124 | fdt_setprop_inplace_namelen_partial; | ||
125 | fdt_create_with_flags; | ||
126 | - fdt_overlay_target_offset; | ||
127 | local: | ||
128 | *; | ||
129 | }; | ||
130 | -- | ||
131 | 2.19.1 | ||
132 | |||
diff --git a/meta/recipes-devtools/python/python3-dtc_1.7.0.bb b/meta/recipes-devtools/python/python3-dtc_1.7.0.bb new file mode 100644 index 0000000000..85e48d4694 --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtc_1.7.0.bb | |||
@@ -0,0 +1,25 @@ | |||
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=master \ | ||
10 | file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \ | ||
11 | " | ||
12 | |||
13 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | ||
14 | |||
15 | LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90" | ||
16 | |||
17 | SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798" | ||
18 | |||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl" | ||
22 | |||
23 | inherit setuptools3 pkgconfig | ||
24 | |||
25 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-dtschema_2024.4.bb b/meta/recipes-devtools/python/python3-dtschema_2024.4.bb new file mode 100644 index 0000000000..9583cd57b9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtschema_2024.4.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] = "18dd1d34b4a5e451291e5444e9ceb4a6febc605871cdaef22673b6f80aa4a131" | ||
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.9.0.bb b/meta/recipes-devtools/python/python3-flit-core_3.9.0.bb new file mode 100644 index 0000000000..b0bef4b6b6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-flit-core_3.9.0.bb | |||
@@ -0,0 +1,37 @@ | |||
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] = "d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7" | ||
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 | PACKAGES =+ "${PN}-tests" | ||
32 | |||
33 | FILES:${PN}-tests += "\ | ||
34 | ${PYTHON_SITEPACKAGES_DIR}/flit_core/tests/* \ | ||
35 | " | ||
36 | |||
37 | 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..45c988117b --- /dev/null +++ b/meta/recipes-devtools/python/python3-git_3.1.43.bb | |||
@@ -0,0 +1,32 @@ | |||
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 | |||
13 | inherit pypi python_setuptools_build_meta | ||
14 | |||
15 | SRC_URI[sha256sum] = "35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c" | ||
16 | |||
17 | DEPENDS += " python3-gitdb" | ||
18 | |||
19 | RDEPENDS:${PN} += " \ | ||
20 | python3-datetime \ | ||
21 | python3-gitdb \ | ||
22 | python3-io \ | ||
23 | python3-logging \ | ||
24 | python3-math \ | ||
25 | python3-netclient \ | ||
26 | python3-stringold \ | ||
27 | python3-unittest \ | ||
28 | python3-unixadmin \ | ||
29 | git \ | ||
30 | " | ||
31 | |||
32 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.11.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.11.bb new file mode 100644 index 0000000000..25e1a2df7e --- /dev/null +++ b/meta/recipes-devtools/python/python3-gitdb_4.0.11.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] = "bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b" | ||
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_24.1.0.bb b/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_24.1.0.bb new file mode 100644 index 0000000000..1e5c67f832 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_24.1.0.bb | |||
@@ -0,0 +1,14 @@ | |||
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 | |||
10 | SRC_URI[sha256sum] = "44dd239f1a779b9dcf8ebc9401a611fd7f7e3e14578dcf22c265dfaf7c1514b8" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | UPSTREAM_CHECK_REGEX = "/hatch-fancy-pypi-readme/(?P<pver>(\d+[\.\-_]*)+)/" | ||
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..2e49aba469 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatch-vcs_0.4.0.bb | |||
@@ -0,0 +1,14 @@ | |||
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 | |||
10 | SRC_URI[sha256sum] = "093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | UPSTREAM_CHECK_REGEX = "/hatch-vcs/(?P<pver>(\d+[\.\-_]*)+)/" | ||
diff --git a/meta/recipes-devtools/python/python3-hatchling_1.24.1.bb b/meta/recipes-devtools/python/python3-hatchling_1.24.1.bb new file mode 100644 index 0000000000..fc8d953281 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hatchling_1.24.1.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] = "51f861891e98c4044eb455163a737e5d2328d7aa74890b182db2d80fee22a497" | ||
12 | |||
13 | do_compile:prepend() { | ||
14 | export PYTHONPATH=src | ||
15 | } | ||
16 | |||
17 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-hypothesis/run-ptest b/meta/recipes-devtools/python/python3-hypothesis/run-ptest new file mode 100644 index 0000000000..54f6e7930f --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis/run-ptest | |||
@@ -0,0 +1,10 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Upstream "fast" tests take about 5 minutes and currently do not run cleanly | ||
4 | # (tests/cover and tests/pytest) | ||
5 | # https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python/tests | ||
6 | # https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/scripts/basic-test.sh#L18 | ||
7 | # | ||
8 | # Instead we run two test suites imported from examples/ | ||
9 | |||
10 | pytest --automake | ||
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.100.1.bb b/meta/recipes-devtools/python/python3-hypothesis_6.100.1.bb new file mode 100644 index 0000000000..af7facfe7e --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis_6.100.1.bb | |||
@@ -0,0 +1,39 @@ | |||
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 ptest | ||
9 | |||
10 | SRC_URI += " \ | ||
11 | file://run-ptest \ | ||
12 | file://test_binary_search.py \ | ||
13 | file://test_rle.py \ | ||
14 | " | ||
15 | |||
16 | SRC_URI[sha256sum] = "ebff09d7fa4f1fb6a855a812baf17e578b4481b7b70ec6d96496210d1a4c6c35" | ||
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 | " | ||
28 | |||
29 | RDEPENDS:${PN}-ptest += " \ | ||
30 | python3-unittest-automake-output \ | ||
31 | " | ||
32 | |||
33 | do_install_ptest() { | ||
34 | install -d ${D}${PTEST_PATH}/examples | ||
35 | install -m 0755 ${WORKDIR}/test_binary_search.py ${D}${PTEST_PATH}/examples/ | ||
36 | install -m 0755 ${WORKDIR}/test_rle.py ${D}${PTEST_PATH}/examples/ | ||
37 | } | ||
38 | |||
39 | 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.7.bb b/meta/recipes-devtools/python/python3-idna_3.7.bb new file mode 100644 index 0000000000..729aff1c46 --- /dev/null +++ b/meta/recipes-devtools/python/python3-idna_3.7.bb | |||
@@ -0,0 +1,14 @@ | |||
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] = "028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc" | ||
7 | |||
8 | inherit pypi python_flit_core | ||
9 | |||
10 | RDEPENDS:${PN}:class-target = "\ | ||
11 | python3-codecs \ | ||
12 | " | ||
13 | |||
14 | 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..4edac0a533 --- /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-importlib-metadata_7.1.0.bb b/meta/recipes-devtools/python/python3-importlib-metadata_7.1.0.bb new file mode 100644 index 0000000000..fdb37cecef --- /dev/null +++ b/meta/recipes-devtools/python/python3-importlib-metadata_7.1.0.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | SUMMARY = "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=3b83ef96387f14655fc854ddc3c6bd57" | ||
5 | |||
6 | inherit pypi python_setuptools_build_meta | ||
7 | |||
8 | PYPI_PACKAGE = "importlib_metadata" | ||
9 | UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/" | ||
10 | |||
11 | SRC_URI[sha256sum] = "b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2" | ||
12 | |||
13 | S = "${WORKDIR}/importlib_metadata-${PV}" | ||
14 | |||
15 | DEPENDS += "python3-setuptools-scm-native python3-toml-native" | ||
16 | RDEPENDS:${PN} += "python3-zipp python3-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.0.0.bb b/meta/recipes-devtools/python/python3-iniconfig_2.0.0.bb new file mode 100644 index 0000000000..2abeec62f4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-iniconfig_2.0.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=a6bb0320b04a0a503f12f69fea479de9" | ||
6 | |||
7 | SRC_URI[sha256sum] = "2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" | ||
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.5.bb index 47cd6598cc..c18949014b 100644 --- a/meta/recipes-devtools/python/python3-iniparse_0.4.bb +++ b/meta/recipes-devtools/python/python3-iniparse_0.5.bb | |||
@@ -1,17 +1,14 @@ | |||
1 | SUMMARY = "Accessing and Modifying INI files" | 1 | SUMMARY = "Accessing and Modifying INI files" |
2 | HOMEPAGE = "https://pypi.org/project/iniparse/" | 2 | HOMEPAGE = "https://pypi.org/project/iniparse/" |
3 | LICENSE = "MIT & PSF" | 3 | LICENSE = "MIT & PSF-2.0" |
4 | LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \ | 4 | LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \ |
5 | file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54" | 5 | file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54" |
6 | 6 | ||
7 | SRC_URI = "file://0001-Add-python-3-compatibility.patch " | 7 | SRC_URI[sha256sum] = "932e5239d526e7acb504017bb707be67019ac428a6932368e6851691093aa842" |
8 | 8 | ||
9 | SRC_URI[md5sum] = "5e573e9e9733d97623881ce9bbe5eca6" | 9 | inherit pypi setuptools3 |
10 | SRC_URI[sha256sum] = "abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054" | ||
11 | 10 | ||
12 | inherit pypi distutils3 | 11 | RDEPENDS:${PN} += "python3-core python3-six" |
13 | |||
14 | RDEPENDS_${PN} += "python3-core python3-six" | ||
15 | DEPENDS += "python3-six" | 12 | DEPENDS += "python3-six" |
16 | 13 | ||
17 | BBCLASSEXTEND = "native nativesdk" | 14 | BBCLASSEXTEND = "native nativesdk" |
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..9429705b1f --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer_0.7.0.bb | |||
@@ -0,0 +1,34 @@ | |||
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 | |||
11 | SRC_URI[sha256sum] = "a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631" | ||
12 | |||
13 | inherit pypi python_flit_core | ||
14 | |||
15 | # Bootstrap the native build | ||
16 | DEPENDS:remove:class-native = "python3-build-native python3-installer-native" | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-compile \ | ||
20 | python3-compression \ | ||
21 | python3-netclient \ | ||
22 | " | ||
23 | |||
24 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
25 | |||
26 | do_compile:class-native () { | ||
27 | python_flit_core_do_manual_build | ||
28 | } | ||
29 | |||
30 | do_install:prepend:class-native() { | ||
31 | export PYTHONPATH="${S}/src" | ||
32 | } | ||
33 | |||
34 | 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-isodate_0.6.1.bb b/meta/recipes-devtools/python/python3-isodate_0.6.1.bb new file mode 100644 index 0000000000..293fb08277 --- /dev/null +++ b/meta/recipes-devtools/python/python3-isodate_0.6.1.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "ISO 8601 date/time parser" | ||
2 | HOMEPAGE = "https://github.com/gweis/isodate/" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" | ||
6 | |||
7 | SRC_URI[sha256sum] = "48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | RDEPENDS:${PN} += " \ | ||
12 | python3-numbers \ | ||
13 | python3-six \ | ||
14 | " | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jinja2/run-ptest b/meta/recipes-devtools/python/python3-jinja2/run-ptest index 5cec711696..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-jinja2/run-ptest +++ b/meta/recipes-devtools/python/python3-jinja2/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | pytest | 3 | pytest --automake |
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.3.bb b/meta/recipes-devtools/python/python3-jinja2_3.1.3.bb new file mode 100644 index 0000000000..636fb35811 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jinja2_3.1.3.bb | |||
@@ -0,0 +1,48 @@ | |||
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.rst;md5=5dc88300786f1c214c1e9827a5229462" | ||
6 | |||
7 | SRC_URI[sha256sum] = "ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90" | ||
8 | |||
9 | PYPI_PACKAGE = "Jinja2" | ||
10 | |||
11 | CVE_PRODUCT = "jinja2 jinja" | ||
12 | |||
13 | CLEANBROKEN = "1" | ||
14 | |||
15 | inherit pypi setuptools3 ptest | ||
16 | |||
17 | SRC_URI += " \ | ||
18 | file://run-ptest \ | ||
19 | " | ||
20 | |||
21 | do_install_ptest() { | ||
22 | install -d ${D}${PTEST_PATH}/tests | ||
23 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
24 | } | ||
25 | |||
26 | RDEPENDS:${PN}-ptest += " \ | ||
27 | python3-pytest \ | ||
28 | python3-unittest-automake-output \ | ||
29 | python3-toml \ | ||
30 | python3-unixadmin \ | ||
31 | " | ||
32 | |||
33 | RDEPENDS:${PN} += " \ | ||
34 | python3-asyncio \ | ||
35 | python3-crypt \ | ||
36 | python3-io \ | ||
37 | python3-json \ | ||
38 | python3-markupsafe \ | ||
39 | python3-math \ | ||
40 | python3-netclient \ | ||
41 | python3-numbers\ | ||
42 | python3-pickle \ | ||
43 | python3-pprint \ | ||
44 | python3-shell \ | ||
45 | python3-threading \ | ||
46 | " | ||
47 | |||
48 | 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_2.4.bb b/meta/recipes-devtools/python/python3-jsonpointer_2.4.bb new file mode 100644 index 0000000000..062fa5243f --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonpointer_2.4.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] = "585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88" | ||
9 | |||
10 | RDEPENDS:${PN} += " \ | ||
11 | python3-json \ | ||
12 | " | ||
13 | |||
14 | BBCLASSEXTEND = "native nativesdk" | ||
15 | |||
16 | SRC_URI += " \ | ||
17 | file://run-ptest \ | ||
18 | " | ||
19 | |||
20 | RDEPENDS:${PN}-ptest += " \ | ||
21 | python3-doctest \ | ||
22 | python3-unittest \ | ||
23 | python3-unittest-automake-output \ | ||
24 | " | ||
25 | |||
26 | do_install_ptest() { | ||
27 | cp -f ${S}/tests.py ${D}${PTEST_PATH}/ | ||
28 | } | ||
diff --git a/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb b/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb new file mode 100644 index 0000000000..4ee0dd9b12 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb | |||
@@ -0,0 +1,16 @@ | |||
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] = "48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc" | ||
9 | |||
10 | inherit pypi python_hatchling | ||
11 | |||
12 | PYPI_PACKAGE = "jsonschema_specifications" | ||
13 | |||
14 | DEPENDS += "python3-hatch-vcs-native" | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb b/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb new file mode 100644 index 0000000000..381148f4bb --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb | |||
@@ -0,0 +1,50 @@ | |||
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] = "85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5" | ||
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[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-importlib-metadata \ | ||
37 | python3-io \ | ||
38 | python3-json \ | ||
39 | python3-jsonschema-specifications \ | ||
40 | python3-netclient \ | ||
41 | python3-numbers \ | ||
42 | python3-pprint \ | ||
43 | python3-pyrsistent \ | ||
44 | python3-referencing \ | ||
45 | python3-zipp \ | ||
46 | " | ||
47 | |||
48 | RDEPENDS:${PN}-tests = "${PN}" | ||
49 | |||
50 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb index 3a2d8733e9..4e318e52f4 100644 --- a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb +++ b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb | |||
@@ -9,13 +9,13 @@ PYPI_PACKAGE = "libarchive-c" | |||
9 | 9 | ||
10 | inherit pypi setuptools3 | 10 | inherit pypi setuptools3 |
11 | 11 | ||
12 | SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532" | 12 | SRC_URI[sha256sum] = "7bcce24ea6c0fa3bc62468476c6d2f6264156db2f04878a372027c10615a2721" |
13 | SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60" | ||
14 | 13 | ||
15 | RDEPENDS_${PN} += "\ | 14 | RDEPENDS:${PN} += "\ |
16 | libarchive \ | 15 | libarchive \ |
17 | ${PYTHON_PN}-ctypes \ | 16 | python3-ctypes \ |
18 | ${PYTHON_PN}-mmap \ | 17 | python3-mmap \ |
18 | python3-logging \ | ||
19 | " | 19 | " |
20 | 20 | ||
21 | BBCLASSEXTEND = "native" | 21 | BBCLASSEXTEND = "native" |
diff --git a/meta/recipes-devtools/python/python3-license-expression/run-ptest b/meta/recipes-devtools/python/python3-license-expression/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-license-expression/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-license-expression_30.3.0.bb b/meta/recipes-devtools/python/python3-license-expression_30.3.0.bb new file mode 100644 index 0000000000..f36336b592 --- /dev/null +++ b/meta/recipes-devtools/python/python3-license-expression_30.3.0.bb | |||
@@ -0,0 +1,38 @@ | |||
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] = "1295406f736b4f395ff069aec1cebfad53c0fcb3cf57df0f5ec58fc7b905aea5" | ||
8 | |||
9 | inherit pypi ptest python_setuptools_build_meta | ||
10 | |||
11 | DEPENDS += "python3-setuptools-scm-native" | ||
12 | |||
13 | RDEPENDS:${PN} += "\ | ||
14 | python3-booleanpy \ | ||
15 | python3-core \ | ||
16 | python3-json \ | ||
17 | python3-stringold \ | ||
18 | python3-logging \ | ||
19 | " | ||
20 | |||
21 | BBCLASSEXTEND = "native nativesdk" | ||
22 | |||
23 | SRC_URI += " \ | ||
24 | file://run-ptest \ | ||
25 | " | ||
26 | |||
27 | RDEPENDS:${PN}-ptest += " \ | ||
28 | python3-pytest \ | ||
29 | python3-unittest-automake-output \ | ||
30 | " | ||
31 | |||
32 | do_install_ptest() { | ||
33 | install -d ${D}${PTEST_PATH}/tests | ||
34 | install -d ${D}${PTEST_PATH}/src | ||
35 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
36 | cp -rf ${S}/src/* ${D}${PTEST_PATH}/src/ | ||
37 | cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/ | ||
38 | } | ||
diff --git a/meta/recipes-devtools/python/python3-lxml_5.2.1.bb b/meta/recipes-devtools/python/python3-lxml_5.2.1.bb new file mode 100644 index 0000000000..44a10505f3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-lxml_5.2.1.bb | |||
@@ -0,0 +1,42 @@ | |||
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] = "3f7765e69bbce0906a7c74d5fe46d2c7a7596147318dbc08e4a2431f3060e306" | ||
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 | 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.3.bb b/meta/recipes-devtools/python/python3-mako_1.3.3.bb new file mode 100644 index 0000000000..7545cbef99 --- /dev/null +++ b/meta/recipes-devtools/python/python3-mako_1.3.3.bb | |||
@@ -0,0 +1,20 @@ | |||
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=d0995d6f7ba3f186a03118f244e88f57" | ||
6 | |||
7 | PYPI_PACKAGE = "Mako" | ||
8 | |||
9 | inherit pypi python_setuptools_build_meta | ||
10 | |||
11 | SRC_URI[sha256sum] = "e16c01d9ab9c11f7290eef1cfefc093fb5a45ee4a3da09e2fec2e4d1bae54e73" | ||
12 | |||
13 | RDEPENDS:${PN} = "python3-html \ | ||
14 | python3-markupsafe \ | ||
15 | python3-netclient \ | ||
16 | python3-pygments \ | ||
17 | python3-threading \ | ||
18 | " | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-markdown_3.6.bb b/meta/recipes-devtools/python/python3-markdown_3.6.bb new file mode 100644 index 0000000000..7c64837395 --- /dev/null +++ b/meta/recipes-devtools/python/python3-markdown_3.6.bb | |||
@@ -0,0 +1,13 @@ | |||
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 | PYPI_PACKAGE = "Markdown" | ||
9 | SRC_URI[sha256sum] = "ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224" | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | 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 index 5cec711696..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-markupsafe/run-ptest +++ b/meta/recipes-devtools/python/python3-markupsafe/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | pytest | 3 | pytest --automake |
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_2.1.5.bb b/meta/recipes-devtools/python/python3-markupsafe_2.1.5.bb new file mode 100644 index 0000000000..821332fe7c --- /dev/null +++ b/meta/recipes-devtools/python/python3-markupsafe_2.1.5.bb | |||
@@ -0,0 +1,27 @@ | |||
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.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" | ||
5 | |||
6 | SRC_URI[sha256sum] = "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b" | ||
7 | |||
8 | PYPI_PACKAGE = "MarkupSafe" | ||
9 | inherit pypi python_setuptools_build_meta ptest | ||
10 | |||
11 | RDEPENDS:${PN} += "python3-stringold" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
14 | |||
15 | SRC_URI += " \ | ||
16 | file://run-ptest \ | ||
17 | " | ||
18 | |||
19 | RDEPENDS:${PN}-ptest += " \ | ||
20 | python3-pytest \ | ||
21 | python3-unittest-automake-output \ | ||
22 | " | ||
23 | |||
24 | do_install_ptest() { | ||
25 | install -d ${D}${PTEST_PATH}/tests | ||
26 | cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
27 | } | ||
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..3cb614d52a --- /dev/null +++ b/meta/recipes-devtools/python/python3-maturin-crates.inc | |||
@@ -0,0 +1,618 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-maturin' | ||
2 | |||
3 | # from Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/adler/1.0.2 \ | ||
6 | crate://crates.io/ahash/0.8.6 \ | ||
7 | crate://crates.io/aho-corasick/1.1.2 \ | ||
8 | crate://crates.io/allocator-api2/0.2.16 \ | ||
9 | crate://crates.io/anstream/0.3.2 \ | ||
10 | crate://crates.io/anstream/0.6.4 \ | ||
11 | crate://crates.io/anstyle/1.0.2 \ | ||
12 | crate://crates.io/anstyle-parse/0.2.1 \ | ||
13 | crate://crates.io/anstyle-query/1.0.0 \ | ||
14 | crate://crates.io/anstyle-wincon/1.0.2 \ | ||
15 | crate://crates.io/anstyle-wincon/3.0.1 \ | ||
16 | crate://crates.io/anyhow/1.0.75 \ | ||
17 | crate://crates.io/autocfg/1.1.0 \ | ||
18 | crate://crates.io/base64/0.13.1 \ | ||
19 | crate://crates.io/base64/0.21.5 \ | ||
20 | crate://crates.io/bitflags/1.3.2 \ | ||
21 | crate://crates.io/bitflags/2.4.1 \ | ||
22 | crate://crates.io/block-buffer/0.10.4 \ | ||
23 | crate://crates.io/bstr/1.8.0 \ | ||
24 | crate://crates.io/byteorder/1.5.0 \ | ||
25 | crate://crates.io/bytes/1.5.0 \ | ||
26 | crate://crates.io/bytesize/1.3.0 \ | ||
27 | crate://crates.io/bzip2/0.4.4 \ | ||
28 | crate://crates.io/bzip2-sys/0.1.11+1.0.8 \ | ||
29 | crate://crates.io/cab/0.4.1 \ | ||
30 | crate://crates.io/camino/1.1.6 \ | ||
31 | crate://crates.io/cargo-config2/0.1.16 \ | ||
32 | crate://crates.io/cargo-options/0.7.2 \ | ||
33 | crate://crates.io/cargo-platform/0.1.5 \ | ||
34 | crate://crates.io/cargo-xwin/0.16.2 \ | ||
35 | crate://crates.io/cargo-zigbuild/0.18.0 \ | ||
36 | crate://crates.io/cargo_metadata/0.18.1 \ | ||
37 | crate://crates.io/cbindgen/0.26.0 \ | ||
38 | crate://crates.io/cc/1.0.83 \ | ||
39 | crate://crates.io/cfb/0.9.0 \ | ||
40 | crate://crates.io/cfg-if/1.0.0 \ | ||
41 | crate://crates.io/charset/0.1.3 \ | ||
42 | crate://crates.io/chumsky/0.9.3 \ | ||
43 | crate://crates.io/clap/4.3.24 \ | ||
44 | crate://crates.io/clap_builder/4.3.24 \ | ||
45 | crate://crates.io/clap_complete/4.3.2 \ | ||
46 | crate://crates.io/clap_complete_command/0.5.1 \ | ||
47 | crate://crates.io/clap_complete_fig/4.3.1 \ | ||
48 | crate://crates.io/clap_complete_nushell/0.1.11 \ | ||
49 | crate://crates.io/clap_derive/4.3.12 \ | ||
50 | crate://crates.io/clap_lex/0.5.0 \ | ||
51 | crate://crates.io/cli-table/0.4.7 \ | ||
52 | crate://crates.io/colorchoice/1.0.0 \ | ||
53 | crate://crates.io/configparser/3.0.3 \ | ||
54 | crate://crates.io/console/0.15.7 \ | ||
55 | crate://crates.io/content_inspector/0.2.4 \ | ||
56 | crate://crates.io/core-foundation/0.9.3 \ | ||
57 | crate://crates.io/core-foundation-sys/0.8.4 \ | ||
58 | crate://crates.io/cpufeatures/0.2.11 \ | ||
59 | crate://crates.io/crc32fast/1.3.2 \ | ||
60 | crate://crates.io/crossbeam-channel/0.5.8 \ | ||
61 | crate://crates.io/crossbeam-deque/0.8.3 \ | ||
62 | crate://crates.io/crossbeam-epoch/0.9.15 \ | ||
63 | crate://crates.io/crossbeam-utils/0.8.16 \ | ||
64 | crate://crates.io/crypto-common/0.1.6 \ | ||
65 | crate://crates.io/data-encoding/2.5.0 \ | ||
66 | crate://crates.io/deranged/0.3.9 \ | ||
67 | crate://crates.io/dialoguer/0.11.0 \ | ||
68 | crate://crates.io/diff/0.1.13 \ | ||
69 | crate://crates.io/digest/0.10.7 \ | ||
70 | crate://crates.io/dirs/5.0.1 \ | ||
71 | crate://crates.io/dirs-sys/0.4.1 \ | ||
72 | crate://crates.io/dissimilar/1.0.7 \ | ||
73 | crate://crates.io/dunce/1.0.4 \ | ||
74 | crate://crates.io/either/1.9.0 \ | ||
75 | crate://crates.io/encode_unicode/0.3.6 \ | ||
76 | crate://crates.io/encoding_rs/0.8.33 \ | ||
77 | crate://crates.io/equivalent/1.0.1 \ | ||
78 | crate://crates.io/errno/0.3.8 \ | ||
79 | crate://crates.io/expect-test/1.4.1 \ | ||
80 | crate://crates.io/fastrand/2.0.1 \ | ||
81 | crate://crates.io/fat-macho/0.4.7 \ | ||
82 | crate://crates.io/filetime/0.2.22 \ | ||
83 | crate://crates.io/flate2/1.0.28 \ | ||
84 | crate://crates.io/fnv/1.0.7 \ | ||
85 | crate://crates.io/foreign-types/0.3.2 \ | ||
86 | crate://crates.io/foreign-types-shared/0.1.1 \ | ||
87 | crate://crates.io/form_urlencoded/1.2.1 \ | ||
88 | crate://crates.io/fs-err/2.11.0 \ | ||
89 | crate://crates.io/generic-array/0.14.7 \ | ||
90 | crate://crates.io/getrandom/0.2.11 \ | ||
91 | crate://crates.io/glob/0.3.1 \ | ||
92 | crate://crates.io/globset/0.4.14 \ | ||
93 | crate://crates.io/goblin/0.7.1 \ | ||
94 | crate://crates.io/hashbrown/0.12.3 \ | ||
95 | crate://crates.io/hashbrown/0.14.3 \ | ||
96 | crate://crates.io/heck/0.4.1 \ | ||
97 | crate://crates.io/hermit-abi/0.3.3 \ | ||
98 | crate://crates.io/home/0.5.5 \ | ||
99 | crate://crates.io/humantime/2.1.0 \ | ||
100 | crate://crates.io/humantime-serde/1.1.1 \ | ||
101 | crate://crates.io/idna/0.5.0 \ | ||
102 | crate://crates.io/ignore/0.4.20 \ | ||
103 | crate://crates.io/indexmap/1.9.3 \ | ||
104 | crate://crates.io/indexmap/2.1.0 \ | ||
105 | crate://crates.io/indicatif/0.17.7 \ | ||
106 | crate://crates.io/indoc/2.0.4 \ | ||
107 | crate://crates.io/instant/0.1.12 \ | ||
108 | crate://crates.io/io-lifetimes/1.0.11 \ | ||
109 | crate://crates.io/is-terminal/0.4.9 \ | ||
110 | crate://crates.io/itertools/0.11.0 \ | ||
111 | crate://crates.io/itertools/0.12.0 \ | ||
112 | crate://crates.io/itoa/1.0.9 \ | ||
113 | crate://crates.io/keyring/2.0.5 \ | ||
114 | crate://crates.io/lazy_static/1.4.0 \ | ||
115 | crate://crates.io/lddtree/0.3.3 \ | ||
116 | crate://crates.io/libc/0.2.150 \ | ||
117 | crate://crates.io/libredox/0.0.1 \ | ||
118 | crate://crates.io/linux-keyutils/0.2.3 \ | ||
119 | crate://crates.io/linux-raw-sys/0.3.8 \ | ||
120 | crate://crates.io/linux-raw-sys/0.4.11 \ | ||
121 | crate://crates.io/lock_api/0.4.11 \ | ||
122 | crate://crates.io/log/0.4.20 \ | ||
123 | crate://crates.io/lzxd/0.1.4 \ | ||
124 | crate://crates.io/mailparse/0.14.0 \ | ||
125 | crate://crates.io/matchers/0.1.0 \ | ||
126 | crate://crates.io/memchr/2.6.4 \ | ||
127 | crate://crates.io/memoffset/0.9.0 \ | ||
128 | crate://crates.io/mime/0.3.17 \ | ||
129 | crate://crates.io/mime_guess/2.0.4 \ | ||
130 | crate://crates.io/minijinja/1.0.10 \ | ||
131 | crate://crates.io/minimal-lexical/0.2.1 \ | ||
132 | crate://crates.io/miniz_oxide/0.7.1 \ | ||
133 | crate://crates.io/msi/0.7.0 \ | ||
134 | crate://crates.io/multipart/0.18.0 \ | ||
135 | crate://crates.io/native-tls/0.2.11 \ | ||
136 | crate://crates.io/nom/7.1.3 \ | ||
137 | crate://crates.io/normalize-line-endings/0.3.0 \ | ||
138 | crate://crates.io/normpath/1.1.1 \ | ||
139 | crate://crates.io/nu-ansi-term/0.46.0 \ | ||
140 | crate://crates.io/number_prefix/0.4.0 \ | ||
141 | crate://crates.io/once_cell/1.18.0 \ | ||
142 | crate://crates.io/openssl/0.10.60 \ | ||
143 | crate://crates.io/openssl-macros/0.1.1 \ | ||
144 | crate://crates.io/openssl-probe/0.1.5 \ | ||
145 | crate://crates.io/openssl-sys/0.9.96 \ | ||
146 | crate://crates.io/option-ext/0.2.0 \ | ||
147 | crate://crates.io/os_pipe/1.1.4 \ | ||
148 | crate://crates.io/overload/0.1.1 \ | ||
149 | crate://crates.io/parking_lot/0.12.1 \ | ||
150 | crate://crates.io/parking_lot_core/0.9.9 \ | ||
151 | crate://crates.io/paste/1.0.14 \ | ||
152 | crate://crates.io/path-slash/0.2.1 \ | ||
153 | crate://crates.io/pep440_rs/0.3.12 \ | ||
154 | crate://crates.io/pep508_rs/0.2.3 \ | ||
155 | crate://crates.io/percent-encoding/2.3.1 \ | ||
156 | crate://crates.io/pin-project-lite/0.2.13 \ | ||
157 | crate://crates.io/pkg-config/0.3.27 \ | ||
158 | crate://crates.io/plain/0.2.3 \ | ||
159 | crate://crates.io/platform-info/2.0.2 \ | ||
160 | crate://crates.io/portable-atomic/1.5.1 \ | ||
161 | crate://crates.io/powerfmt/0.2.0 \ | ||
162 | crate://crates.io/ppv-lite86/0.2.17 \ | ||
163 | crate://crates.io/pretty_assertions/1.4.0 \ | ||
164 | crate://crates.io/proc-macro2/1.0.70 \ | ||
165 | crate://crates.io/psm/0.1.21 \ | ||
166 | crate://crates.io/pyproject-toml/0.8.1 \ | ||
167 | crate://crates.io/python-pkginfo/0.6.0 \ | ||
168 | crate://crates.io/quote/1.0.33 \ | ||
169 | crate://crates.io/quoted_printable/0.4.8 \ | ||
170 | crate://crates.io/rand/0.8.5 \ | ||
171 | crate://crates.io/rand_chacha/0.3.1 \ | ||
172 | crate://crates.io/rand_core/0.6.4 \ | ||
173 | crate://crates.io/rayon/1.8.0 \ | ||
174 | crate://crates.io/rayon-core/1.12.0 \ | ||
175 | crate://crates.io/redox_syscall/0.3.5 \ | ||
176 | crate://crates.io/redox_syscall/0.4.1 \ | ||
177 | crate://crates.io/redox_users/0.4.4 \ | ||
178 | crate://crates.io/regex/1.10.2 \ | ||
179 | crate://crates.io/regex-automata/0.1.10 \ | ||
180 | crate://crates.io/regex-automata/0.4.3 \ | ||
181 | crate://crates.io/regex-syntax/0.6.29 \ | ||
182 | crate://crates.io/regex-syntax/0.8.2 \ | ||
183 | crate://crates.io/rfc2047-decoder/0.2.2 \ | ||
184 | crate://crates.io/ring/0.17.6 \ | ||
185 | crate://crates.io/rustc_version/0.4.0 \ | ||
186 | crate://crates.io/rustix/0.37.27 \ | ||
187 | crate://crates.io/rustix/0.38.21 \ | ||
188 | crate://crates.io/rustls/0.21.9 \ | ||
189 | crate://crates.io/rustls-pemfile/2.0.0 \ | ||
190 | crate://crates.io/rustls-pki-types/1.0.0 \ | ||
191 | crate://crates.io/rustls-webpki/0.101.7 \ | ||
192 | crate://crates.io/rustversion/1.0.14 \ | ||
193 | crate://crates.io/ryu/1.0.15 \ | ||
194 | crate://crates.io/same-file/1.0.6 \ | ||
195 | crate://crates.io/schannel/0.1.22 \ | ||
196 | crate://crates.io/scopeguard/1.2.0 \ | ||
197 | crate://crates.io/scroll/0.11.0 \ | ||
198 | crate://crates.io/scroll_derive/0.11.1 \ | ||
199 | crate://crates.io/sct/0.7.1 \ | ||
200 | crate://crates.io/security-framework/2.9.2 \ | ||
201 | crate://crates.io/security-framework-sys/2.9.1 \ | ||
202 | crate://crates.io/semver/1.0.20 \ | ||
203 | crate://crates.io/serde/1.0.193 \ | ||
204 | crate://crates.io/serde_derive/1.0.193 \ | ||
205 | crate://crates.io/serde_json/1.0.108 \ | ||
206 | crate://crates.io/serde_spanned/0.6.4 \ | ||
207 | crate://crates.io/sha2/0.10.8 \ | ||
208 | crate://crates.io/sharded-slab/0.1.7 \ | ||
209 | crate://crates.io/shell-words/1.1.0 \ | ||
210 | crate://crates.io/shlex/1.2.0 \ | ||
211 | crate://crates.io/similar/2.3.0 \ | ||
212 | crate://crates.io/smallvec/1.11.2 \ | ||
213 | crate://crates.io/smawk/0.3.2 \ | ||
214 | crate://crates.io/snapbox/0.4.14 \ | ||
215 | crate://crates.io/snapbox-macros/0.3.6 \ | ||
216 | crate://crates.io/socks/0.3.4 \ | ||
217 | crate://crates.io/spin/0.9.8 \ | ||
218 | crate://crates.io/stacker/0.1.15 \ | ||
219 | crate://crates.io/static_assertions/1.1.0 \ | ||
220 | crate://crates.io/strsim/0.10.0 \ | ||
221 | crate://crates.io/syn/1.0.109 \ | ||
222 | crate://crates.io/syn/2.0.39 \ | ||
223 | crate://crates.io/tar/0.4.40 \ | ||
224 | crate://crates.io/target-lexicon/0.12.12 \ | ||
225 | crate://crates.io/tempfile/3.8.1 \ | ||
226 | crate://crates.io/termcolor/1.4.0 \ | ||
227 | crate://crates.io/terminal_size/0.2.6 \ | ||
228 | crate://crates.io/textwrap/0.16.0 \ | ||
229 | crate://crates.io/thiserror/1.0.50 \ | ||
230 | crate://crates.io/thiserror-impl/1.0.50 \ | ||
231 | crate://crates.io/thread_local/1.1.7 \ | ||
232 | crate://crates.io/time/0.3.30 \ | ||
233 | crate://crates.io/time-core/0.1.2 \ | ||
234 | crate://crates.io/time-macros/0.2.15 \ | ||
235 | crate://crates.io/tinyvec/1.6.0 \ | ||
236 | crate://crates.io/tinyvec_macros/0.1.1 \ | ||
237 | crate://crates.io/toml/0.5.11 \ | ||
238 | crate://crates.io/toml/0.8.8 \ | ||
239 | crate://crates.io/toml_datetime/0.6.5 \ | ||
240 | crate://crates.io/toml_edit/0.20.7 \ | ||
241 | crate://crates.io/toml_edit/0.21.0 \ | ||
242 | crate://crates.io/tracing/0.1.40 \ | ||
243 | crate://crates.io/tracing-attributes/0.1.27 \ | ||
244 | crate://crates.io/tracing-core/0.1.32 \ | ||
245 | crate://crates.io/tracing-log/0.2.0 \ | ||
246 | crate://crates.io/tracing-serde/0.1.3 \ | ||
247 | crate://crates.io/tracing-subscriber/0.3.18 \ | ||
248 | crate://crates.io/trycmd/0.14.19 \ | ||
249 | crate://crates.io/twox-hash/1.6.3 \ | ||
250 | crate://crates.io/typenum/1.17.0 \ | ||
251 | crate://crates.io/unicase/2.7.0 \ | ||
252 | crate://crates.io/unicode-bidi/0.3.13 \ | ||
253 | crate://crates.io/unicode-ident/1.0.12 \ | ||
254 | crate://crates.io/unicode-linebreak/0.1.5 \ | ||
255 | crate://crates.io/unicode-normalization/0.1.22 \ | ||
256 | crate://crates.io/unicode-width/0.1.11 \ | ||
257 | crate://crates.io/untrusted/0.9.0 \ | ||
258 | crate://crates.io/ureq/2.9.1 \ | ||
259 | crate://crates.io/url/2.5.0 \ | ||
260 | crate://crates.io/utf8parse/0.2.1 \ | ||
261 | crate://crates.io/uuid/1.6.1 \ | ||
262 | crate://crates.io/valuable/0.1.0 \ | ||
263 | crate://crates.io/vcpkg/0.2.15 \ | ||
264 | crate://crates.io/version_check/0.9.4 \ | ||
265 | crate://crates.io/versions/5.0.1 \ | ||
266 | crate://crates.io/wait-timeout/0.2.0 \ | ||
267 | crate://crates.io/walkdir/2.4.0 \ | ||
268 | crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ | ||
269 | crate://crates.io/webpki-roots/0.25.3 \ | ||
270 | crate://crates.io/which/5.0.0 \ | ||
271 | crate://crates.io/wild/2.2.0 \ | ||
272 | crate://crates.io/winapi/0.3.9 \ | ||
273 | crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ | ||
274 | crate://crates.io/winapi-util/0.1.6 \ | ||
275 | crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ | ||
276 | crate://crates.io/windows-sys/0.45.0 \ | ||
277 | crate://crates.io/windows-sys/0.48.0 \ | ||
278 | crate://crates.io/windows-sys/0.52.0 \ | ||
279 | crate://crates.io/windows-targets/0.42.2 \ | ||
280 | crate://crates.io/windows-targets/0.48.5 \ | ||
281 | crate://crates.io/windows-targets/0.52.0 \ | ||
282 | crate://crates.io/windows_aarch64_gnullvm/0.42.2 \ | ||
283 | crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ | ||
284 | crate://crates.io/windows_aarch64_gnullvm/0.52.0 \ | ||
285 | crate://crates.io/windows_aarch64_msvc/0.42.2 \ | ||
286 | crate://crates.io/windows_aarch64_msvc/0.48.5 \ | ||
287 | crate://crates.io/windows_aarch64_msvc/0.52.0 \ | ||
288 | crate://crates.io/windows_i686_gnu/0.42.2 \ | ||
289 | crate://crates.io/windows_i686_gnu/0.48.5 \ | ||
290 | crate://crates.io/windows_i686_gnu/0.52.0 \ | ||
291 | crate://crates.io/windows_i686_msvc/0.42.2 \ | ||
292 | crate://crates.io/windows_i686_msvc/0.48.5 \ | ||
293 | crate://crates.io/windows_i686_msvc/0.52.0 \ | ||
294 | crate://crates.io/windows_x86_64_gnu/0.42.2 \ | ||
295 | crate://crates.io/windows_x86_64_gnu/0.48.5 \ | ||
296 | crate://crates.io/windows_x86_64_gnu/0.52.0 \ | ||
297 | crate://crates.io/windows_x86_64_gnullvm/0.42.2 \ | ||
298 | crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ | ||
299 | crate://crates.io/windows_x86_64_gnullvm/0.52.0 \ | ||
300 | crate://crates.io/windows_x86_64_msvc/0.42.2 \ | ||
301 | crate://crates.io/windows_x86_64_msvc/0.48.5 \ | ||
302 | crate://crates.io/windows_x86_64_msvc/0.52.0 \ | ||
303 | crate://crates.io/winnow/0.5.19 \ | ||
304 | crate://crates.io/xattr/1.0.1 \ | ||
305 | crate://crates.io/xwin/0.5.0 \ | ||
306 | crate://crates.io/yansi/0.5.1 \ | ||
307 | crate://crates.io/zerocopy/0.7.28 \ | ||
308 | crate://crates.io/zerocopy-derive/0.7.28 \ | ||
309 | crate://crates.io/zeroize/1.7.0 \ | ||
310 | crate://crates.io/zip/0.6.6 \ | ||
311 | " | ||
312 | |||
313 | SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" | ||
314 | SRC_URI[ahash-0.8.6.sha256sum] = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" | ||
315 | SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" | ||
316 | SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" | ||
317 | SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" | ||
318 | SRC_URI[anstream-0.6.4.sha256sum] = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" | ||
319 | SRC_URI[anstyle-1.0.2.sha256sum] = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" | ||
320 | SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" | ||
321 | SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" | ||
322 | SRC_URI[anstyle-wincon-1.0.2.sha256sum] = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" | ||
323 | SRC_URI[anstyle-wincon-3.0.1.sha256sum] = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" | ||
324 | SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" | ||
325 | SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" | ||
326 | SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" | ||
327 | SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" | ||
328 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
329 | SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" | ||
330 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" | ||
331 | SRC_URI[bstr-1.8.0.sha256sum] = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" | ||
332 | SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" | ||
333 | SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" | ||
334 | SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" | ||
335 | SRC_URI[bzip2-0.4.4.sha256sum] = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" | ||
336 | SRC_URI[bzip2-sys-0.1.11+1.0.8.sha256sum] = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" | ||
337 | SRC_URI[cab-0.4.1.sha256sum] = "ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551" | ||
338 | SRC_URI[camino-1.1.6.sha256sum] = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" | ||
339 | SRC_URI[cargo-config2-0.1.16.sha256sum] = "7f387366785e82c7ec7ef5b845a7f61324fbf5d467d6a878469eac30c1c44b1b" | ||
340 | SRC_URI[cargo-options-0.7.2.sha256sum] = "cad71bf996c8e5b9d28ef3472d7ee41f277edf4e38cd597f51ad0438d05d76ea" | ||
341 | SRC_URI[cargo-platform-0.1.5.sha256sum] = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" | ||
342 | SRC_URI[cargo-xwin-0.16.2.sha256sum] = "02bb6bf59526935e47445f959a19c2168f151284dbf7e57f5577934334e9a61d" | ||
343 | SRC_URI[cargo-zigbuild-0.18.0.sha256sum] = "edc9c2fe646a29983b5f7263bd789175f2aaad7ea42525affa40e2172be93286" | ||
344 | SRC_URI[cargo_metadata-0.18.1.sha256sum] = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" | ||
345 | SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" | ||
346 | SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" | ||
347 | SRC_URI[cfb-0.9.0.sha256sum] = "b390793e912300f1aa713429f7fd0c391024e6c18b988962558bc4f96a349b1f" | ||
348 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
349 | SRC_URI[charset-0.1.3.sha256sum] = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46" | ||
350 | SRC_URI[chumsky-0.9.3.sha256sum] = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9" | ||
351 | SRC_URI[clap-4.3.24.sha256sum] = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487" | ||
352 | SRC_URI[clap_builder-4.3.24.sha256sum] = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e" | ||
353 | SRC_URI[clap_complete-4.3.2.sha256sum] = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" | ||
354 | SRC_URI[clap_complete_command-0.5.1.sha256sum] = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d" | ||
355 | SRC_URI[clap_complete_fig-4.3.1.sha256sum] = "99fee1d30a51305a6c2ed3fc5709be3c8af626c9c958e04dd9ae94e27bcbce9f" | ||
356 | SRC_URI[clap_complete_nushell-0.1.11.sha256sum] = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e" | ||
357 | SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" | ||
358 | SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" | ||
359 | SRC_URI[cli-table-0.4.7.sha256sum] = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d" | ||
360 | SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" | ||
361 | SRC_URI[configparser-3.0.3.sha256sum] = "e0e56e414a2a52ab2a104f85cd40933c2fbc278b83637facf646ecf451b49237" | ||
362 | SRC_URI[console-0.15.7.sha256sum] = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" | ||
363 | SRC_URI[content_inspector-0.2.4.sha256sum] = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" | ||
364 | SRC_URI[core-foundation-0.9.3.sha256sum] = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" | ||
365 | SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" | ||
366 | SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" | ||
367 | SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" | ||
368 | SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" | ||
369 | SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" | ||
370 | SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" | ||
371 | SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" | ||
372 | SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" | ||
373 | SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" | ||
374 | SRC_URI[deranged-0.3.9.sha256sum] = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" | ||
375 | SRC_URI[dialoguer-0.11.0.sha256sum] = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" | ||
376 | SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" | ||
377 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | ||
378 | SRC_URI[dirs-5.0.1.sha256sum] = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" | ||
379 | SRC_URI[dirs-sys-0.4.1.sha256sum] = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" | ||
380 | SRC_URI[dissimilar-1.0.7.sha256sum] = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" | ||
381 | SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" | ||
382 | SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" | ||
383 | SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" | ||
384 | SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" | ||
385 | SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" | ||
386 | SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" | ||
387 | SRC_URI[expect-test-1.4.1.sha256sum] = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3" | ||
388 | SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" | ||
389 | SRC_URI[fat-macho-0.4.7.sha256sum] = "63fa117c7dcabeb8c83d5c229764cfa46518545d2dba5a9a08912014711f997b" | ||
390 | SRC_URI[filetime-0.2.22.sha256sum] = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" | ||
391 | SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" | ||
392 | SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" | ||
393 | SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" | ||
394 | SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" | ||
395 | SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" | ||
396 | SRC_URI[fs-err-2.11.0.sha256sum] = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" | ||
397 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | ||
398 | SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" | ||
399 | SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" | ||
400 | SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" | ||
401 | SRC_URI[goblin-0.7.1.sha256sum] = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134" | ||
402 | SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" | ||
403 | SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" | ||
404 | SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" | ||
405 | SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" | ||
406 | SRC_URI[home-0.5.5.sha256sum] = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" | ||
407 | SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" | ||
408 | SRC_URI[humantime-serde-1.1.1.sha256sum] = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" | ||
409 | SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" | ||
410 | SRC_URI[ignore-0.4.20.sha256sum] = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" | ||
411 | SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" | ||
412 | SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" | ||
413 | SRC_URI[indicatif-0.17.7.sha256sum] = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" | ||
414 | SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" | ||
415 | SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" | ||
416 | SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" | ||
417 | SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" | ||
418 | SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" | ||
419 | SRC_URI[itertools-0.12.0.sha256sum] = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" | ||
420 | SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" | ||
421 | SRC_URI[keyring-2.0.5.sha256sum] = "9549a129bd08149e0a71b2d1ce2729780d47127991bfd0a78cc1df697ec72492" | ||
422 | SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" | ||
423 | SRC_URI[lddtree-0.3.3.sha256sum] = "2f5bfec46830ad3a95199ae6804dfe9f51fdad43d7a95fbb6c185efa9824c295" | ||
424 | SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" | ||
425 | SRC_URI[libredox-0.0.1.sha256sum] = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" | ||
426 | SRC_URI[linux-keyutils-0.2.3.sha256sum] = "3f27bb67f6dd1d0bb5ab582868e4f65052e58da6401188a08f0da09cf512b84b" | ||
427 | SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" | ||
428 | SRC_URI[linux-raw-sys-0.4.11.sha256sum] = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" | ||
429 | SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" | ||
430 | SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" | ||
431 | SRC_URI[lzxd-0.1.4.sha256sum] = "784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213" | ||
432 | SRC_URI[mailparse-0.14.0.sha256sum] = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa" | ||
433 | SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" | ||
434 | SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" | ||
435 | SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" | ||
436 | SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" | ||
437 | SRC_URI[mime_guess-2.0.4.sha256sum] = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" | ||
438 | SRC_URI[minijinja-1.0.10.sha256sum] = "208758577ef2c86cf5dd3e85730d161413ec3284e2d73b2ef65d9a24d9971bcb" | ||
439 | SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" | ||
440 | SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" | ||
441 | SRC_URI[msi-0.7.0.sha256sum] = "226b2404f03d2cf47375b9715c8adfae4e388bb2377cff908e8a40f31e421514" | ||
442 | SRC_URI[multipart-0.18.0.sha256sum] = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" | ||
443 | SRC_URI[native-tls-0.2.11.sha256sum] = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" | ||
444 | SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" | ||
445 | SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" | ||
446 | SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" | ||
447 | SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" | ||
448 | SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" | ||
449 | SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" | ||
450 | SRC_URI[openssl-0.10.60.sha256sum] = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" | ||
451 | SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" | ||
452 | SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" | ||
453 | SRC_URI[openssl-sys-0.9.96.sha256sum] = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" | ||
454 | SRC_URI[option-ext-0.2.0.sha256sum] = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" | ||
455 | SRC_URI[os_pipe-1.1.4.sha256sum] = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" | ||
456 | SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" | ||
457 | SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" | ||
458 | SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" | ||
459 | SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" | ||
460 | SRC_URI[path-slash-0.2.1.sha256sum] = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" | ||
461 | SRC_URI[pep440_rs-0.3.12.sha256sum] = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6" | ||
462 | SRC_URI[pep508_rs-0.2.3.sha256sum] = "e4516b53d9ea6112ebb38b4af08d5707d30b994fb7f98ff133c5dcf7ed8fa854" | ||
463 | SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" | ||
464 | SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" | ||
465 | SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" | ||
466 | SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" | ||
467 | SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f" | ||
468 | SRC_URI[portable-atomic-1.5.1.sha256sum] = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" | ||
469 | SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" | ||
470 | SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" | ||
471 | SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" | ||
472 | SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" | ||
473 | SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" | ||
474 | SRC_URI[pyproject-toml-0.8.1.sha256sum] = "46d4a5e69187f23a29f8aa0ea57491d104ba541bc55f76552c2a74962aa20e04" | ||
475 | SRC_URI[python-pkginfo-0.6.0.sha256sum] = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa" | ||
476 | SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" | ||
477 | SRC_URI[quoted_printable-0.4.8.sha256sum] = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49" | ||
478 | SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" | ||
479 | SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" | ||
480 | SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" | ||
481 | SRC_URI[rayon-1.8.0.sha256sum] = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" | ||
482 | SRC_URI[rayon-core-1.12.0.sha256sum] = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" | ||
483 | SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" | ||
484 | SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" | ||
485 | SRC_URI[redox_users-0.4.4.sha256sum] = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" | ||
486 | SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" | ||
487 | SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" | ||
488 | SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" | ||
489 | SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" | ||
490 | SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" | ||
491 | SRC_URI[rfc2047-decoder-0.2.2.sha256sum] = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e" | ||
492 | SRC_URI[ring-0.17.6.sha256sum] = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" | ||
493 | SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" | ||
494 | SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" | ||
495 | SRC_URI[rustix-0.38.21.sha256sum] = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" | ||
496 | SRC_URI[rustls-0.21.9.sha256sum] = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" | ||
497 | SRC_URI[rustls-pemfile-2.0.0.sha256sum] = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" | ||
498 | SRC_URI[rustls-pki-types-1.0.0.sha256sum] = "eb0a1f9b9efec70d32e6d6aa3e58ebd88c3754ec98dfe9145c63cf54cc829b83" | ||
499 | SRC_URI[rustls-webpki-0.101.7.sha256sum] = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" | ||
500 | SRC_URI[rustversion-1.0.14.sha256sum] = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" | ||
501 | SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" | ||
502 | SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" | ||
503 | SRC_URI[schannel-0.1.22.sha256sum] = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" | ||
504 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | ||
505 | SRC_URI[scroll-0.11.0.sha256sum] = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" | ||
506 | SRC_URI[scroll_derive-0.11.1.sha256sum] = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" | ||
507 | SRC_URI[sct-0.7.1.sha256sum] = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" | ||
508 | SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" | ||
509 | SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" | ||
510 | SRC_URI[semver-1.0.20.sha256sum] = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" | ||
511 | SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" | ||
512 | SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" | ||
513 | SRC_URI[serde_json-1.0.108.sha256sum] = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" | ||
514 | SRC_URI[serde_spanned-0.6.4.sha256sum] = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" | ||
515 | SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" | ||
516 | SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" | ||
517 | SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" | ||
518 | SRC_URI[shlex-1.2.0.sha256sum] = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" | ||
519 | SRC_URI[similar-2.3.0.sha256sum] = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" | ||
520 | SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" | ||
521 | SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" | ||
522 | SRC_URI[snapbox-0.4.14.sha256sum] = "4b377c0b6e4715c116473d8e40d51e3fa5b0a2297ca9b2a931ba800667b259ed" | ||
523 | SRC_URI[snapbox-macros-0.3.6.sha256sum] = "ed1559baff8a696add3322b9be3e940d433e7bb4e38d79017205fd37ff28b28e" | ||
524 | SRC_URI[socks-0.3.4.sha256sum] = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" | ||
525 | SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" | ||
526 | SRC_URI[stacker-0.1.15.sha256sum] = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" | ||
527 | SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" | ||
528 | SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" | ||
529 | SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" | ||
530 | SRC_URI[syn-2.0.39.sha256sum] = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" | ||
531 | SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" | ||
532 | SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" | ||
533 | SRC_URI[tempfile-3.8.1.sha256sum] = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" | ||
534 | SRC_URI[termcolor-1.4.0.sha256sum] = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" | ||
535 | SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" | ||
536 | SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" | ||
537 | SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" | ||
538 | SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" | ||
539 | SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" | ||
540 | SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" | ||
541 | SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" | ||
542 | SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" | ||
543 | SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" | ||
544 | SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" | ||
545 | SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" | ||
546 | SRC_URI[toml-0.8.8.sha256sum] = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" | ||
547 | SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" | ||
548 | SRC_URI[toml_edit-0.20.7.sha256sum] = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" | ||
549 | SRC_URI[toml_edit-0.21.0.sha256sum] = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" | ||
550 | SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" | ||
551 | SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" | ||
552 | SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" | ||
553 | SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" | ||
554 | SRC_URI[tracing-serde-0.1.3.sha256sum] = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" | ||
555 | SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" | ||
556 | SRC_URI[trycmd-0.14.19.sha256sum] = "ed009372a42fb103e6f8767b9222925485e03cca032b700d203e2c5b67bee4fb" | ||
557 | SRC_URI[twox-hash-1.6.3.sha256sum] = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" | ||
558 | SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" | ||
559 | SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" | ||
560 | SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" | ||
561 | SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||
562 | SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" | ||
563 | SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" | ||
564 | SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" | ||
565 | SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" | ||
566 | SRC_URI[ureq-2.9.1.sha256sum] = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" | ||
567 | SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" | ||
568 | SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" | ||
569 | SRC_URI[uuid-1.6.1.sha256sum] = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" | ||
570 | SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" | ||
571 | SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" | ||
572 | SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" | ||
573 | SRC_URI[versions-5.0.1.sha256sum] = "c73a36bc44e3039f51fbee93e39f41225f6b17b380eb70cc2aab942df06b34dd" | ||
574 | SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" | ||
575 | SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" | ||
576 | SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" | ||
577 | SRC_URI[webpki-roots-0.25.3.sha256sum] = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" | ||
578 | SRC_URI[which-5.0.0.sha256sum] = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" | ||
579 | SRC_URI[wild-2.2.0.sha256sum] = "10d01931a94d5a115a53f95292f51d316856b68a035618eb831bbba593a30b67" | ||
580 | SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" | ||
581 | SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | ||
582 | SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" | ||
583 | SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | ||
584 | SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" | ||
585 | SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" | ||
586 | SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" | ||
587 | SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" | ||
588 | SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" | ||
589 | SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" | ||
590 | SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" | ||
591 | SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" | ||
592 | SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" | ||
593 | SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" | ||
594 | SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" | ||
595 | SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" | ||
596 | SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" | ||
597 | SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" | ||
598 | SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" | ||
599 | SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" | ||
600 | SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" | ||
601 | SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" | ||
602 | SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" | ||
603 | SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" | ||
604 | SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" | ||
605 | SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" | ||
606 | SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" | ||
607 | SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" | ||
608 | SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" | ||
609 | SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" | ||
610 | SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" | ||
611 | SRC_URI[winnow-0.5.19.sha256sum] = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" | ||
612 | SRC_URI[xattr-1.0.1.sha256sum] = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" | ||
613 | SRC_URI[xwin-0.5.0.sha256sum] = "c43e0202f5457b48558096cb7b36d0e473f267551a89c82ed72d73b01dfd4007" | ||
614 | SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" | ||
615 | SRC_URI[zerocopy-0.7.28.sha256sum] = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e" | ||
616 | SRC_URI[zerocopy-derive-0.7.28.sha256sum] = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b" | ||
617 | SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" | ||
618 | SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" | ||
diff --git a/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch b/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch new file mode 100644 index 0000000000..a0ef0c9e22 --- /dev/null +++ b/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch | |||
@@ -0,0 +1,102 @@ | |||
1 | From a945706bd610c5400fc85a248d5e0c96ebd2e953 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 27 Feb 2024 10:38:49 -0800 | ||
4 | Subject: [PATCH] Add 32-bit RISC-V support | ||
5 | |||
6 | Tested with qemuriscv32 and it builds fine with all tests passed on a | ||
7 | qemu machine. | ||
8 | |||
9 | Upstream-Status: Submitted [https://github.com/PyO3/maturin/pull/1969] | ||
10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
11 | --- | ||
12 | src/target.rs | 11 ++++++++++- | ||
13 | 1 file changed, 10 insertions(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/src/target.rs b/src/target.rs | ||
16 | index fbb93531..33fa9273 100644 | ||
17 | --- a/src/target.rs | ||
18 | +++ b/src/target.rs | ||
19 | @@ -69,6 +69,7 @@ pub enum Arch { | ||
20 | X86_64, | ||
21 | S390X, | ||
22 | Wasm32, | ||
23 | + Riscv32, | ||
24 | Riscv64, | ||
25 | Mips64el, | ||
26 | Mips64, | ||
27 | @@ -91,6 +92,7 @@ impl fmt::Display for Arch { | ||
28 | Arch::X86_64 => write!(f, "x86_64"), | ||
29 | Arch::S390X => write!(f, "s390x"), | ||
30 | Arch::Wasm32 => write!(f, "wasm32"), | ||
31 | + Arch::Riscv32 => write!(f, "riscv32"), | ||
32 | Arch::Riscv64 => write!(f, "riscv64"), | ||
33 | Arch::Mips64el => write!(f, "mips64el"), | ||
34 | Arch::Mips64 => write!(f, "mips64"), | ||
35 | @@ -115,7 +117,7 @@ impl Arch { | ||
36 | Arch::Powerpc | Arch::Powerpc64Le | Arch::Powerpc64 => "powerpc", | ||
37 | Arch::X86 => "i386", | ||
38 | Arch::X86_64 => "amd64", | ||
39 | - Arch::Riscv64 => "riscv", | ||
40 | + Arch::Riscv32 | Arch::Riscv64 => "riscv", | ||
41 | Arch::Mips64el | Arch::Mips64 | Arch::Mipsel | Arch::Mips => "mips", | ||
42 | // sparc64 is unsupported since FreeBSD 13.0 | ||
43 | Arch::Sparc64 => "sparc64", | ||
44 | @@ -139,6 +141,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> { | ||
45 | Arch::S390X, | ||
46 | Arch::X86, | ||
47 | Arch::X86_64, | ||
48 | + Arch::Riscv32, | ||
49 | Arch::Riscv64, | ||
50 | Arch::Mips64el, | ||
51 | Arch::Mips64, | ||
52 | @@ -158,6 +161,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> { | ||
53 | Arch::Powerpc64Le, | ||
54 | Arch::X86, | ||
55 | Arch::X86_64, | ||
56 | + Arch::Riscv32, | ||
57 | Arch::Riscv64, | ||
58 | Arch::Mips64el, | ||
59 | Arch::Mipsel, | ||
60 | @@ -171,6 +175,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> { | ||
61 | Arch::Powerpc, | ||
62 | Arch::Powerpc64, | ||
63 | Arch::Powerpc64Le, | ||
64 | + Arch::Riscv32, | ||
65 | Arch::Riscv64, | ||
66 | Arch::Sparc64, | ||
67 | ], | ||
68 | @@ -255,6 +260,7 @@ impl Target { | ||
69 | Architecture::Powerpc64le => Arch::Powerpc64Le, | ||
70 | Architecture::S390x => Arch::S390X, | ||
71 | Architecture::Wasm32 => Arch::Wasm32, | ||
72 | + Architecture::Riscv32(_) => Arch::Riscv32, | ||
73 | Architecture::Riscv64(_) => Arch::Riscv64, | ||
74 | Architecture::Mips64(mips64_arch) => match mips64_arch { | ||
75 | Mips64Architecture::Mips64el => Arch::Mips64el, | ||
76 | @@ -343,6 +349,7 @@ impl Target { | ||
77 | Arch::X86_64 => "x86_64", | ||
78 | Arch::S390X => "s390x", | ||
79 | Arch::Wasm32 => "wasm32", | ||
80 | + Arch::Riscv32 => "riscv32", | ||
81 | Arch::Riscv64 => "riscv64", | ||
82 | // It's kinda surprising that Python doesn't include the `el` suffix | ||
83 | Arch::Mips64el | Arch::Mips64 => "mips64", | ||
84 | @@ -388,6 +395,7 @@ impl Target { | ||
85 | } | ||
86 | Arch::Armv6L | ||
87 | | Arch::Wasm32 | ||
88 | + | Arch::Riscv32 | ||
89 | | Arch::Riscv64 | ||
90 | | Arch::Mips64el | ||
91 | | Arch::Mips64 | ||
92 | @@ -418,6 +426,7 @@ impl Target { | ||
93 | | Arch::Wasm32 | ||
94 | | Arch::Mipsel | ||
95 | | Arch::Mips | ||
96 | + | Arch::Riscv32 | ||
97 | | Arch::Powerpc => 32, | ||
98 | } | ||
99 | } | ||
100 | -- | ||
101 | 2.44.0 | ||
102 | |||
diff --git a/meta/recipes-devtools/python/python3-maturin_1.4.0.bb b/meta/recipes-devtools/python/python3-maturin_1.4.0.bb new file mode 100644 index 0000000000..ed19ee647a --- /dev/null +++ b/meta/recipes-devtools/python/python3-maturin_1.4.0.bb | |||
@@ -0,0 +1,43 @@ | |||
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 += "file://0001-Add-32-bit-RISC-V-support.patch" | ||
9 | SRC_URI[sha256sum] = "ed12e1768094a7adeafc3a74ebdb8dc2201fa64c4e7e31f14cfc70378bf93790" | ||
10 | |||
11 | S = "${WORKDIR}/maturin-${PV}" | ||
12 | |||
13 | CFLAGS:append = " -fdebug-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home" | ||
14 | |||
15 | DEPENDS += "\ | ||
16 | python3-setuptools-rust-native \ | ||
17 | python3-semantic-version-native \ | ||
18 | python3-setuptools-rust \ | ||
19 | " | ||
20 | |||
21 | require ${BPN}-crates.inc | ||
22 | |||
23 | inherit pypi cargo-update-recipe-crates python_pyo3 python_setuptools_build_meta | ||
24 | |||
25 | do_configure() { | ||
26 | python_pyo3_do_configure | ||
27 | cargo_common_do_configure | ||
28 | python_pep517_do_configure | ||
29 | } | ||
30 | |||
31 | RDEPENDS:${PN} += "\ | ||
32 | cargo \ | ||
33 | python3-json \ | ||
34 | rust \ | ||
35 | " | ||
36 | |||
37 | RRECOMMENDS:${PN} += "\ | ||
38 | python3-ensurepip \ | ||
39 | python3-pip \ | ||
40 | python3-venv \ | ||
41 | " | ||
42 | |||
43 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb b/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb new file mode 100644 index 0000000000..ad3cfe17d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb | |||
@@ -0,0 +1,27 @@ | |||
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 | |||
15 | inherit pypi python_mesonpy | ||
16 | SRC_URI[sha256sum] = "fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f" | ||
17 | |||
18 | DEPENDS:remove:class-native = "python3-meson-python-native" | ||
19 | |||
20 | RDEPENDS:${PN} = " \ | ||
21 | meson \ | ||
22 | ninja \ | ||
23 | patchelf \ | ||
24 | python3-pyproject-metadata \ | ||
25 | " | ||
26 | |||
27 | 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 index 3385d68939..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-more-itertools/run-ptest +++ b/meta/recipes-devtools/python/python3-more-itertools/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 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}}' | 3 | pytest --automake |
diff --git a/meta/recipes-devtools/python/python3-more-itertools_10.2.0.bb b/meta/recipes-devtools/python/python3-more-itertools_10.2.0.bb new file mode 100644 index 0000000000..e1e1f5e18f --- /dev/null +++ b/meta/recipes-devtools/python/python3-more-itertools_10.2.0.bb | |||
@@ -0,0 +1,29 @@ | |||
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] = "8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1" | ||
7 | |||
8 | inherit pypi python_flit_core ptest | ||
9 | |||
10 | SRC_URI += " \ | ||
11 | file://run-ptest \ | ||
12 | " | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-asyncio \ | ||
16 | " | ||
17 | |||
18 | RDEPENDS:${PN}-ptest += " \ | ||
19 | python3-statistics \ | ||
20 | python3-pytest \ | ||
21 | python3-unittest-automake-output \ | ||
22 | " | ||
23 | |||
24 | do_install_ptest() { | ||
25 | install -d ${D}${PTEST_PATH}/tests | ||
26 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
27 | } | ||
28 | |||
29 | 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-ndg-httpsclient_0.5.1.bb b/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb new file mode 100644 index 0000000000..68d8668a41 --- /dev/null +++ b/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" | ||
2 | HOMEPAGE = "https://github.com/cedadev/ndg_httpsclient/" | ||
3 | LICENSE = "BSD-3-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0" | ||
5 | |||
6 | SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9" | ||
7 | SRC_URI[sha256sum] = "d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210" | ||
8 | |||
9 | inherit pypi setuptools3 update-alternatives | ||
10 | |||
11 | PYPI_PACKAGE = "ndg_httpsclient" | ||
12 | |||
13 | DEPENDS += " \ | ||
14 | python3-pyopenssl \ | ||
15 | python3-pyasn1 \ | ||
16 | " | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-datetime \ | ||
20 | python3-logging \ | ||
21 | python3-pyopenssl \ | ||
22 | python3-pyasn1 \ | ||
23 | " | ||
24 | |||
25 | BBCLASSEXTEND = "native nativesdk" | ||
26 | |||
27 | UPSTREAM_CHECK_REGEX = "" | ||
28 | |||
29 | ALTERNATIVE:${PN} = "ndg_httpclient" | ||
30 | ALTERNATIVE_LINK_NAME[ndg_httpclient] = "${bindir}/ndg_httpclient" | ||
31 | ALTERNATIVE_PRIORITY = "30" | ||
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..bbe309c556 --- /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,70 @@ | |||
1 | From 46eea664cf89d0602e7ff16d587c37c045b125b7 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 | --- | ||
13 | numpy/distutils/system_info.py | 42 +++++----------------------------- | ||
14 | 1 file changed, 6 insertions(+), 36 deletions(-) | ||
15 | |||
16 | diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py | ||
17 | index feb28f6..a48d6d1 100644 | ||
18 | --- a/numpy/distutils/system_info.py | ||
19 | +++ b/numpy/distutils/system_info.py | ||
20 | @@ -327,44 +327,14 @@ def add_system_root(library_root): | ||
21 | add_system_root(os.path.join(conda_dir, 'Library')) | ||
22 | |||
23 | else: | ||
24 | - default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', | ||
25 | - '/opt/local/lib', '/sw/lib'], platform_bits) | ||
26 | default_runtime_dirs = [] | ||
27 | - default_include_dirs = ['/usr/local/include', | ||
28 | - '/opt/include', | ||
29 | - # path of umfpack under macports | ||
30 | - '/opt/local/include/ufsparse', | ||
31 | - '/opt/local/include', '/sw/include', | ||
32 | - '/usr/include/suitesparse'] | ||
33 | - default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src'] | ||
34 | - | ||
35 | - default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib', | ||
36 | - '/usr/lib'], platform_bits) | ||
37 | - default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include'] | ||
38 | - | ||
39 | - if os.path.exists('/usr/lib/X11'): | ||
40 | - globbed_x11_dir = glob('/usr/lib/*/libX11.so') | ||
41 | - if globbed_x11_dir: | ||
42 | - x11_so_dir = os.path.split(globbed_x11_dir[0])[0] | ||
43 | - default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11']) | ||
44 | - default_x11_include_dirs.extend(['/usr/lib/X11/include', | ||
45 | - '/usr/include/X11']) | ||
46 | - | ||
47 | - with open(os.devnull, 'w') as tmp: | ||
48 | - try: | ||
49 | - p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE, | ||
50 | - stderr=tmp) | ||
51 | - except (OSError, DistutilsError): | ||
52 | - # OSError if gcc is not installed, or SandboxViolation (DistutilsError | ||
53 | - # subclass) if an old setuptools bug is triggered (see gh-3160). | ||
54 | - pass | ||
55 | - else: | ||
56 | - triplet = str(p.communicate()[0].decode().strip()) | ||
57 | - if p.returncode == 0: | ||
58 | - # gcc supports the "-print-multiarch" option | ||
59 | - default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] | ||
60 | - default_lib_dirs += [os.path.join("/usr/lib/", triplet)] | ||
61 | |||
62 | + default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) | ||
63 | + default_include_dirs = ['/deaddir/include'] | ||
64 | + default_src_dirs = ['.', '/deaddir/src'] | ||
65 | + | ||
66 | + default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) | ||
67 | + default_x11_include_dirs = ['/deaddir/include'] | ||
68 | |||
69 | if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: | ||
70 | default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) | ||
diff --git a/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch b/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch new file mode 100644 index 0000000000..676bdbb3af --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-Define-RISCV-32-support.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | From eb6d6579150bf4684603ce377c51e90ad3bb8109 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sun, 15 Nov 2020 15:32:39 -0800 | ||
4 | Subject: [PATCH] numpy/core: Define RISCV-32 support | ||
5 | |||
6 | Helps compile on riscv32 | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/numpy/numpy/pull/17780] | ||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | numpy/core/include/numpy/npy_cpu.h | 3 +++ | ||
12 | numpy/core/include/numpy/npy_endian.h | 1 + | ||
13 | 2 files changed, 4 insertions(+) | ||
14 | |||
15 | diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h | ||
16 | index 78d229e..04be511 100644 | ||
17 | --- a/numpy/core/include/numpy/npy_cpu.h | ||
18 | +++ b/numpy/core/include/numpy/npy_cpu.h | ||
19 | @@ -19,6 +19,7 @@ | ||
20 | * NPY_CPU_ARCEB | ||
21 | * NPY_CPU_RISCV64 | ||
22 | * NPY_CPU_LOONGARCH | ||
23 | + * NPY_CPU_RISCV32 | ||
24 | * NPY_CPU_WASM | ||
25 | */ | ||
26 | #ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_CPU_H_ | ||
27 | @@ -104,6 +105,8 @@ | ||
28 | #define NPY_CPU_ARCEB | ||
29 | #elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 | ||
30 | #define NPY_CPU_RISCV64 | ||
31 | +#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32 | ||
32 | + #define NPY_CPU_RISCV32 | ||
33 | #elif defined(__loongarch__) | ||
34 | #define NPY_CPU_LOONGARCH | ||
35 | #elif defined(__EMSCRIPTEN__) | ||
36 | diff --git a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h | ||
37 | index 5e58a7f..0926212 100644 | ||
38 | --- a/numpy/core/include/numpy/npy_endian.h | ||
39 | +++ b/numpy/core/include/numpy/npy_endian.h | ||
40 | @@ -49,6 +49,7 @@ | ||
41 | || defined(NPY_CPU_PPC64LE) \ | ||
42 | || defined(NPY_CPU_ARCEL) \ | ||
43 | || defined(NPY_CPU_RISCV64) \ | ||
44 | + || defined(NPY_CPU_RISCV32) \ | ||
45 | || defined(NPY_CPU_LOONGARCH) \ | ||
46 | || defined(NPY_CPU_WASM) | ||
47 | #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN | ||
48 | -- | ||
49 | 2.20.1 | ||
50 | |||
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..d952aed00c --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | This regex decides whether to use O3 opimisation on numpy or not. | ||
2 | |||
3 | It includes "od", which happens to be a substring of "reproducible" | ||
4 | but not "qemux86-world". | ||
5 | |||
6 | The regex will run against all compiler options including things like: | ||
7 | |||
8 | -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 | ||
9 | |||
10 | i.e. including build paths. | ||
11 | |||
12 | Reduce the regex to something deterministic for our builds, assuming | ||
13 | nobody builds in /home/debug:full/ | ||
14 | |||
15 | The autobuilder race depended upon whether qemux86-world or the | ||
16 | reproducible target ran first and won the race to populate sstate. | ||
17 | |||
18 | Upstream-Status: Inappropriate [upstream have dropped distutils and switched to meson] | ||
19 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
20 | |||
21 | Index: numpy-1.26.0/numpy/distutils/ccompiler_opt.py | ||
22 | =================================================================== | ||
23 | --- numpy-1.26.0.orig/numpy/distutils/ccompiler_opt.py | ||
24 | +++ numpy-1.26.0/numpy/distutils/ccompiler_opt.py | ||
25 | @@ -990,7 +990,7 @@ class _CCompiler: | ||
26 | ("cc_is_nocc", "", ""), | ||
27 | ) | ||
28 | detect_args = ( | ||
29 | - ("cc_has_debug", ".*(O0|Od|ggdb|coverage|debug:full).*", ""), | ||
30 | + ("cc_has_debug", ".*debug:full.*", ""), | ||
31 | ("cc_has_native", | ||
32 | ".*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*", ""), | ||
33 | # 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..9a1c72aeb1 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy/run-ptest | |||
@@ -0,0 +1,5 @@ | |||
1 | #!/usr/bin/env python3 | ||
2 | |||
3 | import numpy | ||
4 | numpy.test(label='full', verbose=2) | ||
5 | |||
diff --git a/meta/recipes-devtools/python/python3-numpy_1.26.4.bb b/meta/recipes-devtools/python/python3-numpy_1.26.4.bb new file mode 100644 index 0000000000..ccd08147af --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy_1.26.4.bb | |||
@@ -0,0 +1,64 @@ | |||
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=a752eb20459cf74a9d84ee4825e8317c" | ||
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://0001-numpy-core-Define-RISCV-32-support.patch \ | ||
13 | file://fix_reproducibility.patch \ | ||
14 | file://run-ptest \ | ||
15 | " | ||
16 | SRC_URI[sha256sum] = "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010" | ||
17 | |||
18 | GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" | ||
19 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" | ||
20 | |||
21 | DEPENDS += "python3-cython-native" | ||
22 | |||
23 | inherit ptest setuptools3 github-releases | ||
24 | |||
25 | S = "${WORKDIR}/numpy-${PV}" | ||
26 | |||
27 | CLEANBROKEN = "1" | ||
28 | |||
29 | do_compile:prepend() { | ||
30 | export NPY_DISABLE_SVML=1 | ||
31 | } | ||
32 | |||
33 | FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" | ||
34 | |||
35 | # install what is needed for numpy.test() | ||
36 | RDEPENDS:${PN} = "python3-unittest \ | ||
37 | python3-difflib \ | ||
38 | python3-pprint \ | ||
39 | python3-pickle \ | ||
40 | python3-shell \ | ||
41 | python3-doctest \ | ||
42 | python3-datetime \ | ||
43 | python3-misc \ | ||
44 | python3-mmap \ | ||
45 | python3-netclient \ | ||
46 | python3-numbers \ | ||
47 | python3-pydoc \ | ||
48 | python3-pkgutil \ | ||
49 | python3-email \ | ||
50 | python3-compression \ | ||
51 | python3-ctypes \ | ||
52 | python3-threading \ | ||
53 | python3-multiprocessing \ | ||
54 | python3-json \ | ||
55 | " | ||
56 | RDEPENDS:${PN}-ptest += "python3-pytest \ | ||
57 | python3-hypothesis \ | ||
58 | python3-sortedcontainers \ | ||
59 | python3-resource \ | ||
60 | python3-typing-extensions \ | ||
61 | ldd \ | ||
62 | " | ||
63 | |||
64 | BBCLASSEXTEND = "native nativesdk" | ||
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_24.0.bb b/meta/recipes-devtools/python/python3-packaging_24.0.bb new file mode 100644 index 0000000000..0942eeb15e --- /dev/null +++ b/meta/recipes-devtools/python/python3-packaging_24.0.bb | |||
@@ -0,0 +1,18 @@ | |||
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] = "eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" | ||
7 | |||
8 | inherit pypi python_flit_core | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
11 | |||
12 | # Bootstrap the native build | ||
13 | DEPENDS:remove:class-native = "python3-build-native" | ||
14 | RDEPENDS:${PN} += "python3-profile" | ||
15 | |||
16 | do_compile:class-native () { | ||
17 | python_flit_core_do_manual_build | ||
18 | } | ||
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-pathlib2_2.3.7.bb b/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb new file mode 100644 index 0000000000..d4de40893a --- /dev/null +++ b/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | SUMMARY = "Object-oriented filesystem paths" | ||
2 | HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2dc08586cce3ab91bfa091b655c0e440" | ||
5 | |||
6 | SRC_URI[sha256sum] = "7a4329d67beff9a712e1d3ae147e4e3e108b0bfd284ffdea03a635126c76b3c0" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | RDEPENDS:${PN} += "python3-six python3-ctypes" | ||
11 | |||
12 | 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..b61f673397 --- /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 setuptools3 | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} += "python3-profile" | ||
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.0.0.bb b/meta/recipes-devtools/python/python3-pbr_6.0.0.bb new file mode 100644 index 0000000000..6c8171196a --- /dev/null +++ b/meta/recipes-devtools/python/python3-pbr_6.0.0.bb | |||
@@ -0,0 +1,4 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-pbr.inc | ||
3 | |||
4 | SRC_URI[sha256sum] = "d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9" | ||
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..99fa14ee03 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip/no_shebang_mangling.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 2aa82aeb0783c5fa7777b32bfe1dd3da9ae8fc6e 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 cfa45d2..313f499 100644 | ||
17 | --- a/src/pip/_vendor/distlib/scripts.py | ||
18 | +++ b/src/pip/_vendor/distlib/scripts.py | ||
19 | @@ -144,6 +144,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 | else: | ||
28 | @@ -362,7 +364,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_24.0.bb b/meta/recipes-devtools/python/python3-pip_24.0.bb new file mode 100644 index 0000000000..be4a29500a --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip_24.0.bb | |||
@@ -0,0 +1,60 @@ | |||
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=3c2b7404369c587c3559afb604fce2f2 \ | ||
8 | file://src/pip/_vendor/chardet/LICENSE;md5=4fbd65380cdd255951079008b364516c \ | ||
9 | file://src/pip/_vendor/colorama/LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26 \ | ||
10 | file://src/pip/_vendor/distlib/LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc \ | ||
11 | file://src/pip/_vendor/distro/LICENSE;md5=d2794c0df5b907fdace235a619d80314 \ | ||
12 | file://src/pip/_vendor/idna/LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1 \ | ||
13 | file://src/pip/_vendor/msgpack/COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751 \ | ||
14 | file://src/pip/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \ | ||
15 | file://src/pip/_vendor/packaging/LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \ | ||
16 | file://src/pip/_vendor/pkg_resources/LICENSE;md5=141643e11c48898150daa83802dbc65f \ | ||
17 | file://src/pip/_vendor/platformdirs/LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a \ | ||
18 | file://src/pip/_vendor/pygments/LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592 \ | ||
19 | file://src/pip/_vendor/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \ | ||
20 | file://src/pip/_vendor/pyproject_hooks/LICENSE;md5=aad69c93f605003e3342b174d9b0708c \ | ||
21 | file://src/pip/_vendor/requests/LICENSE;md5=34400b68072d710fecd0a2940a0d1658 \ | ||
22 | file://src/pip/_vendor/resolvelib/LICENSE;md5=78e1c0248051c32a38a7f820c30bd7a5 \ | ||
23 | file://src/pip/_vendor/rich/LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303 \ | ||
24 | file://src/pip/_vendor/six.LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d \ | ||
25 | file://src/pip/_vendor/tenacity/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ | ||
26 | file://src/pip/_vendor/tomli/LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5 \ | ||
27 | file://src/pip/_vendor/typing_extensions.LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2 \ | ||
28 | file://src/pip/_vendor/urllib3/LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c \ | ||
29 | file://src/pip/_vendor/webencodings/LICENSE;md5=81fb24cd7823cce23b69f721993dce4d \ | ||
30 | " | ||
31 | |||
32 | inherit pypi python_setuptools_build_meta | ||
33 | |||
34 | SRC_URI += "file://no_shebang_mangling.patch" | ||
35 | |||
36 | SRC_URI[sha256sum] = "ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2" | ||
37 | |||
38 | do_install:append() { | ||
39 | rm -f ${D}/${bindir}/pip | ||
40 | } | ||
41 | |||
42 | RDEPENDS:${PN} = "\ | ||
43 | python3-compile \ | ||
44 | python3-io \ | ||
45 | python3-html \ | ||
46 | python3-json \ | ||
47 | python3-multiprocessing \ | ||
48 | python3-netserver \ | ||
49 | python3-setuptools \ | ||
50 | python3-unixadmin \ | ||
51 | python3-xmlrpc \ | ||
52 | python3-pickle \ | ||
53 | python3-image \ | ||
54 | " | ||
55 | |||
56 | BBCLASSEXTEND = "native nativesdk" | ||
57 | |||
58 | # This used to use the bootstrap install which didn't compile. Until we bump the | ||
59 | # tmpdir version we can't compile the native otherwise the sysroot unpack fails | ||
60 | 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 index b63c4de0d9..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-pluggy/run-ptest +++ b/meta/recipes-devtools/python/python3-pluggy/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 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}}' | 3 | pytest --automake |
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.5.0.bb b/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb new file mode 100644 index 0000000000..9822cd59f3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pluggy_1.5.0.bb | |||
@@ -0,0 +1,29 @@ | |||
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] = "2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1" | ||
7 | |||
8 | DEPENDS += "python3-setuptools-scm-native" | ||
9 | RDEPENDS:${PN} += "python3-importlib-metadata \ | ||
10 | python3-more-itertools \ | ||
11 | " | ||
12 | |||
13 | inherit pypi ptest python_setuptools_build_meta | ||
14 | |||
15 | SRC_URI += " \ | ||
16 | file://run-ptest \ | ||
17 | " | ||
18 | |||
19 | RDEPENDS:${PN}-ptest += " \ | ||
20 | python3-pytest \ | ||
21 | python3-unittest-automake-output \ | ||
22 | " | ||
23 | |||
24 | do_install_ptest() { | ||
25 | install -d ${D}${PTEST_PATH}/testing | ||
26 | cp -rf ${S}/testing/* ${D}${PTEST_PATH}/testing/ | ||
27 | } | ||
28 | |||
29 | 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..a05bd6702d --- /dev/null +++ b/meta/recipes-devtools/python/python3-ply_3.11.bb | |||
@@ -0,0 +1,18 @@ | |||
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[md5sum] = "6465f602e656455affcd7c5734c638f8" | ||
9 | SRC_URI[sha256sum] = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | RDEPENDS:${PN}:class-target += "\ | ||
14 | python3-netclient \ | ||
15 | python3-shell \ | ||
16 | " | ||
17 | |||
18 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb b/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb new file mode 100644 index 0000000000..540fdffaed --- /dev/null +++ b/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb | |||
@@ -0,0 +1,42 @@ | |||
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] = "fa7a4001eae8aa572ee84f35feb510b321bd652e5cf9293249d62853e1f935a2" | ||
19 | |||
20 | inherit python_poetry_core pypi | ||
21 | |||
22 | PYPI_PACKAGE = "poetry_core" | ||
23 | |||
24 | RDEPENDS:${PN}:append:class-target = "\ | ||
25 | python3-compression \ | ||
26 | python3-core \ | ||
27 | python3-crypt \ | ||
28 | python3-io \ | ||
29 | python3-json \ | ||
30 | python3-logging \ | ||
31 | python3-netclient \ | ||
32 | python3-pathlib2 \ | ||
33 | python3-pprint \ | ||
34 | python3-shell \ | ||
35 | " | ||
36 | |||
37 | RDEPENDS:${PN} += "\ | ||
38 | python3-pip \ | ||
39 | python3-six \ | ||
40 | " | ||
41 | |||
42 | 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..21d14a03b8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pretend_1.0.9.bb | |||
@@ -0,0 +1,11 @@ | |||
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[md5sum] = "ad53883ede48aeac7ae584f0de0240e8" | ||
7 | SRC_URI[sha256sum] = "c90eb810cde8ebb06dafcb8796f9a95228ce796531bc806e794c2f4649aa1b10" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-psutil_5.9.8.bb b/meta/recipes-devtools/python/python3-psutil_5.9.8.bb new file mode 100644 index 0000000000..1a394eda33 --- /dev/null +++ b/meta/recipes-devtools/python/python3-psutil_5.9.8.bb | |||
@@ -0,0 +1,41 @@ | |||
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] = "6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
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 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-shell \ | ||
20 | python3-threading \ | ||
21 | python3-xml \ | ||
22 | python3-netclient \ | ||
23 | python3-ctypes \ | ||
24 | python3-resource \ | ||
25 | " | ||
26 | |||
27 | RDEPENDS:${PN}-tests += " \ | ||
28 | ${PN} \ | ||
29 | python3 \ | ||
30 | coreutils \ | ||
31 | procps \ | ||
32 | binutils \ | ||
33 | gcc \ | ||
34 | gcc-symlinks \ | ||
35 | libstdc++ \ | ||
36 | libstdc++-dev \ | ||
37 | " | ||
38 | |||
39 | INSANE_SKIP:${PN}-tests += "dev-deps" | ||
40 | |||
41 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-py_1.10.0.bb b/meta/recipes-devtools/python/python3-py_1.11.0.bb index 4e16ad1743..31d5a377a7 100644 --- a/meta/recipes-devtools/python/python3-py_1.10.0.bb +++ b/meta/recipes-devtools/python/python3-py_1.11.0.bb | |||
@@ -3,12 +3,12 @@ HOMEPAGE = "http://py.readthedocs.io/" | |||
3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" |
5 | 5 | ||
6 | SRC_URI[sha256sum] = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3" | 6 | SRC_URI[sha256sum] = "51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719" |
7 | 7 | ||
8 | DEPENDS += "${PYTHON_PN}-setuptools-scm-native" | 8 | DEPENDS += "python3-setuptools-scm-native" |
9 | 9 | ||
10 | inherit pypi setuptools3 | 10 | inherit pypi python_setuptools_build_meta |
11 | 11 | ||
12 | BBCLASSEXTEND = "native nativesdk" | 12 | BBCLASSEXTEND = "native nativesdk" |
13 | 13 | ||
14 | RDEPENDS_${PN} += "${PYTHON_PN}-netclient" | 14 | RDEPENDS:${PN} += "python3-netclient" |
diff --git a/meta/recipes-devtools/python/python3-pyasn1/run-ptest b/meta/recipes-devtools/python/python3-pyasn1/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyasn1/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-pyasn1_0.6.0.bb b/meta/recipes-devtools/python/python3-pyasn1_0.6.0.bb new file mode 100644 index 0000000000..0519ba5edb --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyasn1_0.6.0.bb | |||
@@ -0,0 +1,3 @@ | |||
1 | inherit pypi setuptools3 | ||
2 | require python-pyasn1.inc | ||
3 | |||
diff --git a/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb b/meta/recipes-devtools/python/python3-pycairo_1.26.0.bb index 8987b7a428..ea8b81be76 100644 --- a/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb +++ b/meta/recipes-devtools/python/python3-pycairo_1.26.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] = "2dddd0a874fbddb21e14acd9b955881ee1dc6e63b9c549a192d613a907f9cbeb" |
17 | SRC_URI[sha256sum] = "5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c" | ||
18 | 17 | ||
19 | S = "${WORKDIR}/pycairo-${PV}" | 18 | S = "${WORKDIR}/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..9a5abc42bd --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycparser_2.22.bb | |||
@@ -0,0 +1,21 @@ | |||
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 | python3-ply \ | ||
15 | python3-pprint \ | ||
16 | " | ||
17 | |||
18 | RSUGGESTS:${PN}:class-target += "\ | ||
19 | cpp \ | ||
20 | cpp-symlinks \ | ||
21 | " | ||
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.20.0.bb b/meta/recipes-devtools/python/python3-pycryptodome_3.20.0.bb new file mode 100644 index 0000000000..d24fa58d43 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycryptodome_3.20.0.bb | |||
@@ -0,0 +1,5 @@ | |||
1 | require python-pycryptodome.inc | ||
2 | inherit setuptools3 | ||
3 | |||
4 | SRC_URI[sha256sum] = "09609209ed7de61c2b560cc5c8c4fbf892f8b15b1faf7e4cbffac97db1fffda7" | ||
5 | |||
diff --git a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb b/meta/recipes-devtools/python/python3-pycryptodomex_3.20.0.bb index a6b3b3e935..2673ea8326 100644 --- a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb +++ b/meta/recipes-devtools/python/python3-pycryptodomex_3.20.0.bb | |||
@@ -1,9 +1,9 @@ | |||
1 | require python-pycryptodome.inc | 1 | require python-pycryptodome.inc |
2 | inherit setuptools3 | 2 | inherit setuptools3 |
3 | 3 | ||
4 | SRC_URI[sha256sum] = "541cd3e3e252fb19a7b48f420b798b53483302b7fe4d9954c947605d0a263d62" | 4 | SRC_URI[sha256sum] = "7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e" |
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.31.bb b/meta/recipes-devtools/python/python3-pyelftools_0.31.bb new file mode 100644 index 0000000000..551fed6876 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyelftools_0.31.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] = "c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99" | ||
8 | |||
9 | PYPI_PACKAGE = "pyelftools" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | BBCLASSEXTEND = "native" | ||
14 | |||
15 | RDEPENDS:${PN} += "python3-debugger python3-pprint" | ||
diff --git a/meta/recipes-devtools/python/python3-pygments_2.17.2.bb b/meta/recipes-devtools/python/python3-pygments_2.17.2.bb new file mode 100644 index 0000000000..8b98064b78 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pygments_2.17.2.bb | |||
@@ -0,0 +1,14 @@ | |||
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] = "da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" | ||
9 | |||
10 | UPSTREAM_CHECK_PYPI_PACKAGE = "Pygments" | ||
11 | inherit pypi | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
14 | |||
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.48.2.bb b/meta/recipes-devtools/python/python3-pygobject_3.48.2.bb new file mode 100644 index 0000000000..3d83a8a1c2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pygobject_3.48.2.bb | |||
@@ -0,0 +1,39 @@ | |||
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.xz" | ||
22 | SRC_URI[sha256sum] = "0794aeb4a9be31a092ac20621b5f54ec280f9185943d328b105cdae6298ad1a7" | ||
23 | |||
24 | S = "${WORKDIR}/${SRCNAME}-${PV}" | ||
25 | |||
26 | PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" | ||
27 | |||
28 | RDEPENDS:${PN} += " \ | ||
29 | python3-io \ | ||
30 | python3-pkgutil \ | ||
31 | " | ||
32 | |||
33 | # python3-pycairo is checked on configuration -> DEPENDS | ||
34 | # we don't link against python3-pycairo -> RDEPENDS | ||
35 | PACKAGECONFIG[cairo] = "-Dpycairo=enabled,-Dpycairo=disabled, cairo python3-pycairo, python3-pycairo" | ||
36 | PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false," | ||
37 | |||
38 | BBCLASSEXTEND = "native" | ||
39 | PACKAGECONFIG:class-native = "" | ||
diff --git a/meta/recipes-devtools/python/python3-pyopenssl_24.1.0.bb b/meta/recipes-devtools/python/python3-pyopenssl_24.1.0.bb new file mode 100644 index 0000000000..e714ad838e --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyopenssl_24.1.0.bb | |||
@@ -0,0 +1,23 @@ | |||
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] = "cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f" | ||
9 | |||
10 | PYPI_PACKAGE = "pyOpenSSL" | ||
11 | inherit pypi setuptools3 | ||
12 | |||
13 | PACKAGES =+ "${PN}-tests" | ||
14 | FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test" | ||
15 | |||
16 | RDEPENDS:${PN}:class-target = " \ | ||
17 | python3-cryptography \ | ||
18 | python3-six \ | ||
19 | python3-threading \ | ||
20 | " | ||
21 | RDEPENDS:${PN}-tests = "${PN}" | ||
22 | |||
23 | 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.1.2.bb b/meta/recipes-devtools/python/python3-pyparsing_3.1.2.bb new file mode 100644 index 0000000000..64210ade53 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyparsing_3.1.2.bb | |||
@@ -0,0 +1,30 @@ | |||
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] = "a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad" | ||
14 | |||
15 | UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar" | ||
16 | |||
17 | inherit pypi python_flit_core | ||
18 | |||
19 | RDEPENDS:${PN} += " \ | ||
20 | python3-datetime \ | ||
21 | python3-debugger \ | ||
22 | python3-html \ | ||
23 | python3-json \ | ||
24 | python3-netclient \ | ||
25 | python3-pprint \ | ||
26 | python3-stringold \ | ||
27 | python3-threading \ | ||
28 | " | ||
29 | |||
30 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb b/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb new file mode 100644 index 0000000000..9d08e7acc4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb | |||
@@ -0,0 +1,26 @@ | |||
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] = "f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5" | ||
7 | |||
8 | inherit pypi python_flit_core | ||
9 | |||
10 | PYPI_PACKAGE = "pyproject_hooks" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | # Bootstrap the native build | ||
15 | DEPENDS:remove:class-native = "python3-build-native" | ||
16 | |||
17 | RDEPENDS:${PN} += " \ | ||
18 | python3-io \ | ||
19 | python3-json \ | ||
20 | " | ||
21 | |||
22 | do_compile:class-native () { | ||
23 | python_flit_core_do_manual_build | ||
24 | } | ||
25 | |||
26 | UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" | ||
diff --git a/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb b/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb new file mode 100644 index 0000000000..8b9549f3d0 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb | |||
@@ -0,0 +1,27 @@ | |||
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 | |||
17 | inherit pypi python_setuptools_build_meta | ||
18 | |||
19 | SRC_URI[sha256sum] = "0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67" | ||
20 | |||
21 | RDEPENDS:${PN} += " \ | ||
22 | python3-logging \ | ||
23 | python3-packaging \ | ||
24 | python3-profile \ | ||
25 | " | ||
26 | |||
27 | 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..7f2c217f19 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb | |||
@@ -0,0 +1,20 @@ | |||
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[md5sum] = "89b1a6865c61bae67a32417517612ee6" | ||
7 | SRC_URI[sha256sum] = "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" | ||
8 | |||
9 | PYPI_PACKAGE = "PySocks" | ||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | RDEPENDS:${PN}:class-target += "\ | ||
13 | python3-email \ | ||
14 | python3-io \ | ||
15 | python3-logging \ | ||
16 | python3-netclient \ | ||
17 | python3-shell \ | ||
18 | " | ||
19 | |||
20 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytest-runner_6.0.1.bb b/meta/recipes-devtools/python/python3-pytest-runner_6.0.1.bb new file mode 100644 index 0000000000..cce9ce33e2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest-runner_6.0.1.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | SUMMARY = "Invoke py.test as distutils command with dependency resolution" | ||
2 | HOMEPAGE = "https://pypi.org/project/pytest-runner/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6" | ||
5 | |||
6 | SRC_URI[sha256sum] = "70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta | ||
9 | |||
10 | DEPENDS += " \ | ||
11 | python3-setuptools-scm-native" | ||
12 | |||
13 | RDEPENDS:${PN} = "python3-py python3-setuptools python3-debugger python3-json \ | ||
14 | python3-io" | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytest-subtests_0.12.1.bb b/meta/recipes-devtools/python/python3-pytest-subtests_0.12.1.bb new file mode 100644 index 0000000000..0590be705f --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest-subtests_0.12.1.bb | |||
@@ -0,0 +1,20 @@ | |||
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] = "d6605dcb88647e0b7c1889d027f8ef1c17d7a2c60927ebfdc09c7b0d8120476d" | ||
11 | |||
12 | inherit pypi python_setuptools_build_meta | ||
13 | |||
14 | DEPENDS += "python3-setuptools-scm-native" | ||
15 | |||
16 | RDEPENDS:${PN} += " \ | ||
17 | python3-pytest \ | ||
18 | " | ||
19 | |||
20 | 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.1.1.bb b/meta/recipes-devtools/python/python3-pytest_8.1.1.bb new file mode 100644 index 0000000000..b1cf23fbc4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest_8.1.1.bb | |||
@@ -0,0 +1,41 @@ | |||
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] = "ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044" | ||
9 | |||
10 | DEPENDS += "python3-setuptools-scm-native" | ||
11 | |||
12 | inherit update-alternatives pypi python_setuptools_build_meta | ||
13 | |||
14 | RDEPENDS:${PN} += " \ | ||
15 | python3-atomicwrites \ | ||
16 | python3-attrs \ | ||
17 | python3-debugger \ | ||
18 | python3-doctest \ | ||
19 | python3-importlib-metadata \ | ||
20 | python3-iniconfig \ | ||
21 | python3-json \ | ||
22 | python3-more-itertools \ | ||
23 | python3-packaging \ | ||
24 | python3-pathlib2 \ | ||
25 | python3-pluggy \ | ||
26 | python3-py \ | ||
27 | python3-setuptools \ | ||
28 | python3-six \ | ||
29 | python3-tomllib \ | ||
30 | python3-wcwidth \ | ||
31 | " | ||
32 | |||
33 | ALTERNATIVE:${PN} += "py.test pytest" | ||
34 | |||
35 | NATIVE_LINK_NAME[pytest] = "${bindir}/pytest" | ||
36 | ALTERNATIVE_TARGET[pytest] = "${bindir}/pytest" | ||
37 | |||
38 | ALTERNATIVE_LINK_NAME[py.test] = "${bindir}/py.test" | ||
39 | ALTERNATIVE_TARGET[py.test] = "${bindir}/py.test" | ||
40 | |||
41 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-pytz/run-ptest b/meta/recipes-devtools/python/python3-pytz/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytz/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-pytz_2024.1.bb b/meta/recipes-devtools/python/python3-pytz_2024.1.bb new file mode 100644 index 0000000000..158e800fed --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytz_2024.1.bb | |||
@@ -0,0 +1,36 @@ | |||
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 | ||
7 | |||
8 | SRC_URI[sha256sum] = "2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812" | ||
9 | |||
10 | RDEPENDS:${PN}:class-target += "\ | ||
11 | python3-datetime \ | ||
12 | python3-doctest \ | ||
13 | python3-io \ | ||
14 | python3-pickle \ | ||
15 | python3-pprint \ | ||
16 | python3-threading \ | ||
17 | " | ||
18 | |||
19 | BBCLASSEXTEND = "native nativesdk" | ||
20 | |||
21 | SRC_URI += " \ | ||
22 | file://run-ptest \ | ||
23 | " | ||
24 | |||
25 | RDEPENDS:${PN}-ptest += " \ | ||
26 | python3-pytest \ | ||
27 | python3-unittest-automake-output \ | ||
28 | " | ||
29 | |||
30 | do_install_ptest() { | ||
31 | install -d ${D}${PTEST_PATH}/pytz | ||
32 | install -d ${D}${PTEST_PATH}/pytz/tests | ||
33 | cp -rf ${S}/pytz/tests/* ${D}${PTEST_PATH}/pytz/tests/ | ||
34 | cp -f ${S}/README.rst ${D}${PTEST_PATH}/ | ||
35 | |||
36 | } | ||
diff --git a/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch new file mode 100644 index 0000000000..a87d588b6a --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From 9cc23db56add79357b8f8257fe6fc0d6879d4579 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Andrew J. Hesford" <ajh@sideband.org> | ||
3 | Date: Fri, 21 Jul 2023 09:50:00 -0400 | ||
4 | Subject: [PATCH] Fix builds with Cython 3 | ||
5 | |||
6 | This is a *de minimis* fix for building with Cython 3. Recent Cython<3 | ||
7 | releases provided `Cython.Distutils.build_ext` as an alias to | ||
8 | `Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this | ||
9 | alias and instead uses a wholly new `Cython.Distutils.build_ext` that | ||
10 | does not provide the `cython_sources` function used in `setup.py`. | ||
11 | |||
12 | Explicitly importing `old_build_ext` preserves the existing behavior for | ||
13 | recent Cython<3 and uses the correct behavior for Cython 3. Should the | ||
14 | import fail (*e.g.*, because the version of Cython available predates | ||
15 | the availability of `old_build_ext`), the import falls back to just | ||
16 | `Cython.Distutils.build_ext`. | ||
17 | |||
18 | Signed-off-by: Andrew J. Hesford <ajh@sideband.org> | ||
19 | Upstream-Status: Denied [https://github.com/yaml/pyyaml/pull/731] | ||
20 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
21 | --- | ||
22 | pyproject.toml | 2 +- | ||
23 | setup.py | 6 +++++- | ||
24 | 2 files changed, 6 insertions(+), 2 deletions(-) | ||
25 | |||
26 | diff --git a/pyproject.toml b/pyproject.toml | ||
27 | index 4bc04c0..2bf5ec8 100644 | ||
28 | --- a/pyproject.toml | ||
29 | +++ b/pyproject.toml | ||
30 | @@ -1,3 +1,3 @@ | ||
31 | [build-system] | ||
32 | -requires = ["setuptools", "wheel", "Cython<3.0"] | ||
33 | +requires = ["setuptools", "wheel", "Cython"] | ||
34 | build-backend = "setuptools.build_meta" | ||
35 | diff --git a/setup.py b/setup.py | ||
36 | index 65b0ea0..4461580 100644 | ||
37 | --- a/setup.py | ||
38 | +++ b/setup.py | ||
39 | @@ -82,7 +82,11 @@ if 'sdist' in sys.argv or os.environ.get('PYYAML_FORCE_CYTHON') == '1': | ||
40 | with_cython = True | ||
41 | try: | ||
42 | from Cython.Distutils.extension import Extension as _Extension | ||
43 | - from Cython.Distutils import build_ext as _build_ext | ||
44 | + try: | ||
45 | + from Cython.Distutils.old_build_ext import old_build_ext as _build_ext | ||
46 | + except ImportError: | ||
47 | + from Cython.Distutils import build_ext as _build_ext | ||
48 | + | ||
49 | with_cython = True | ||
50 | except ImportError: | ||
51 | if with_cython: | ||
52 | -- | ||
53 | 2.39.2 | ||
54 | |||
diff --git a/meta/recipes-devtools/python/python3-pyyaml/run-ptest b/meta/recipes-devtools/python/python3-pyyaml/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyyaml/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb new file mode 100644 index 0000000000..3388312557 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb | |||
@@ -0,0 +1,40 @@ | |||
1 | SUMMARY = "Python support for YAML" | ||
2 | DEPENDS += "libyaml python3-cython-native" | ||
3 | HOMEPAGE = "https://pyyaml.org/" | ||
4 | |||
5 | LICENSE = "MIT" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=6d8242660a8371add5fe547adf083079" | ||
7 | |||
8 | PYPI_PACKAGE = "PyYAML" | ||
9 | |||
10 | inherit pypi python_setuptools_build_meta | ||
11 | |||
12 | SRC_URI += "file://0001-Fix-builds-with-Cython-3.patch" | ||
13 | SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43" | ||
14 | |||
15 | PACKAGECONFIG ?= "libyaml" | ||
16 | PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml" | ||
17 | |||
18 | RDEPENDS:${PN} += "\ | ||
19 | python3-datetime \ | ||
20 | python3-netclient \ | ||
21 | " | ||
22 | |||
23 | inherit ptest | ||
24 | SRC_URI += "\ | ||
25 | https://raw.githubusercontent.com/yaml/pyyaml/a98fd6088e81d7aca571220c966bbfe2ac43c335/tests/test_dump_load.py;name=test \ | ||
26 | file://run-ptest \ | ||
27 | " | ||
28 | SRC_URI[test.sha256sum] = "b6a8a2825d89fdc8aee226560f66b8196e872012a0ea7118cbef1a832359434a" | ||
29 | |||
30 | RDEPENDS:${PN}-ptest += " \ | ||
31 | python3-pytest \ | ||
32 | python3-unittest-automake-output \ | ||
33 | " | ||
34 | |||
35 | do_install_ptest() { | ||
36 | install -d ${D}${PTEST_PATH}/tests | ||
37 | cp -rf ${WORKDIR}/test_dump_load.py ${D}${PTEST_PATH}/tests/ | ||
38 | } | ||
39 | |||
40 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-rdflib_7.0.0.bb b/meta/recipes-devtools/python/python3-rdflib_7.0.0.bb new file mode 100644 index 0000000000..4057c1dbbc --- /dev/null +++ b/meta/recipes-devtools/python/python3-rdflib_7.0.0.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=37d489c0cefe52a17e1d5007e196464a" | ||
6 | |||
7 | SRC_URI[sha256sum] = "9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae" | ||
8 | |||
9 | inherit pypi python_poetry_core | ||
10 | |||
11 | RDEPENDS:${PN} += " \ | ||
12 | python3-isodate \ | ||
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.34.0.bb b/meta/recipes-devtools/python/python3-referencing_0.34.0.bb new file mode 100644 index 0000000000..6fbd10d9cf --- /dev/null +++ b/meta/recipes-devtools/python/python3-referencing_0.34.0.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] = "5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844" | ||
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_2.31.0.bb b/meta/recipes-devtools/python/python3-requests_2.31.0.bb new file mode 100644 index 0000000000..df48cd54c3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-requests_2.31.0.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | SUMMARY = "Python HTTP for Humans." | ||
2 | HOMEPAGE = "http://python-requests.org" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658" | ||
5 | |||
6 | SRC_URI[sha256sum] = "942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" | ||
7 | |||
8 | inherit pypi setuptools3 | ||
9 | |||
10 | RDEPENDS:${PN} += " \ | ||
11 | python3-email \ | ||
12 | python3-json \ | ||
13 | python3-ndg-httpsclient \ | ||
14 | python3-netserver \ | ||
15 | python3-pyasn1 \ | ||
16 | python3-pyopenssl \ | ||
17 | python3-pysocks \ | ||
18 | python3-urllib3 \ | ||
19 | python3-chardet \ | ||
20 | python3-idna \ | ||
21 | python3-compression \ | ||
22 | " | ||
23 | |||
24 | CVE_PRODUCT = "requests" | ||
25 | |||
26 | 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..e809c2280d --- /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_REGEX = "/rfc3339-validator/(?P<pver>(\d+[\.\-_]*)+)/" | ||
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-rfc3986-validator_0.1.1.bb b/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb new file mode 100644 index 0000000000..e374979cb4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | SUMMARY = "Pure python rfc3986 validator" | ||
2 | HOMEPAGE = "https://github.com/naimetti/rfc3986-validator" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" | ||
5 | |||
6 | FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3986-validator:" | ||
7 | |||
8 | SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95" | ||
9 | SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" | ||
10 | |||
11 | PYPI_PACKAGE = "rfc3986_validator" | ||
12 | UPSTREAM_CHECK_REGEX = "/rfc3986-validator/(?P<pver>(\d+[\.\-_]*)+)/" | ||
13 | |||
14 | inherit pypi setuptools3 | ||
15 | |||
16 | SRC_URI += "\ | ||
17 | file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \ | ||
18 | " | ||
19 | |||
20 | RDEPENDS:${PN} += "\ | ||
21 | python3-core \ | ||
22 | " | ||
23 | |||
24 | 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..316dc544de --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3987_1.3.8.bb | |||
@@ -0,0 +1,11 @@ | |||
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[md5sum] = "b6c4028acdc788a9ba697e1c1d6b896c" | ||
7 | SRC_URI[sha256sum] = "d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | 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..b9048bde51 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rpds-py-crates.inc | |||
@@ -0,0 +1,80 @@ | |||
1 | # Autogenerated with 'bitbake -c update_crates python3-rpds-py' | ||
2 | |||
3 | # from Cargo.lock | ||
4 | SRC_URI += " \ | ||
5 | crate://crates.io/archery/1.1.0 \ | ||
6 | crate://crates.io/autocfg/1.1.0 \ | ||
7 | crate://crates.io/bitflags/1.3.2 \ | ||
8 | crate://crates.io/cfg-if/1.0.0 \ | ||
9 | crate://crates.io/heck/0.4.1 \ | ||
10 | crate://crates.io/indoc/2.0.4 \ | ||
11 | crate://crates.io/libc/0.2.147 \ | ||
12 | crate://crates.io/lock_api/0.4.10 \ | ||
13 | crate://crates.io/memoffset/0.9.0 \ | ||
14 | crate://crates.io/once_cell/1.18.0 \ | ||
15 | crate://crates.io/parking_lot/0.12.1 \ | ||
16 | crate://crates.io/parking_lot_core/0.9.8 \ | ||
17 | crate://crates.io/proc-macro2/1.0.66 \ | ||
18 | crate://crates.io/pyo3/0.20.2 \ | ||
19 | crate://crates.io/pyo3-build-config/0.20.2 \ | ||
20 | crate://crates.io/pyo3-ffi/0.20.2 \ | ||
21 | crate://crates.io/pyo3-macros/0.20.2 \ | ||
22 | crate://crates.io/pyo3-macros-backend/0.20.2 \ | ||
23 | crate://crates.io/quote/1.0.31 \ | ||
24 | crate://crates.io/redox_syscall/0.3.5 \ | ||
25 | crate://crates.io/rpds/1.1.0 \ | ||
26 | crate://crates.io/scopeguard/1.1.0 \ | ||
27 | crate://crates.io/smallvec/1.11.0 \ | ||
28 | crate://crates.io/static_assertions/1.1.0 \ | ||
29 | crate://crates.io/syn/2.0.32 \ | ||
30 | crate://crates.io/target-lexicon/0.12.9 \ | ||
31 | crate://crates.io/triomphe/0.1.9 \ | ||
32 | crate://crates.io/unicode-ident/1.0.11 \ | ||
33 | crate://crates.io/unindent/0.2.3 \ | ||
34 | crate://crates.io/windows-targets/0.48.1 \ | ||
35 | crate://crates.io/windows_aarch64_gnullvm/0.48.0 \ | ||
36 | crate://crates.io/windows_aarch64_msvc/0.48.0 \ | ||
37 | crate://crates.io/windows_i686_gnu/0.48.0 \ | ||
38 | crate://crates.io/windows_i686_msvc/0.48.0 \ | ||
39 | crate://crates.io/windows_x86_64_gnu/0.48.0 \ | ||
40 | crate://crates.io/windows_x86_64_gnullvm/0.48.0 \ | ||
41 | crate://crates.io/windows_x86_64_msvc/0.48.0 \ | ||
42 | " | ||
43 | |||
44 | SRC_URI[archery-1.1.0.sha256sum] = "487955f60962765486ce000015a3492ca45c34a2ebbf12bc0aa2b5110ca6e7d2" | ||
45 | SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" | ||
46 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
47 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
48 | SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" | ||
49 | SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" | ||
50 | SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" | ||
51 | SRC_URI[lock_api-0.4.10.sha256sum] = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" | ||
52 | SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" | ||
53 | SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" | ||
54 | SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" | ||
55 | SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" | ||
56 | SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" | ||
57 | SRC_URI[pyo3-0.20.2.sha256sum] = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0" | ||
58 | SRC_URI[pyo3-build-config-0.20.2.sha256sum] = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be" | ||
59 | SRC_URI[pyo3-ffi-0.20.2.sha256sum] = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1" | ||
60 | SRC_URI[pyo3-macros-0.20.2.sha256sum] = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3" | ||
61 | SRC_URI[pyo3-macros-backend-0.20.2.sha256sum] = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f" | ||
62 | SRC_URI[quote-1.0.31.sha256sum] = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" | ||
63 | SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" | ||
64 | SRC_URI[rpds-1.1.0.sha256sum] = "a0e15515d3ce3313324d842629ea4905c25a13f81953eadb88f85516f59290a4" | ||
65 | SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" | ||
66 | SRC_URI[smallvec-1.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" | ||
67 | SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" | ||
68 | SRC_URI[syn-2.0.32.sha256sum] = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" | ||
69 | SRC_URI[target-lexicon-0.12.9.sha256sum] = "df8e77cb757a61f51b947ec4a7e3646efd825b73561db1c232a8ccb639e611a0" | ||
70 | SRC_URI[triomphe-0.1.9.sha256sum] = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" | ||
71 | SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" | ||
72 | SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" | ||
73 | SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" | ||
74 | SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" | ||
75 | SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" | ||
76 | SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" | ||
77 | SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" | ||
78 | SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" | ||
79 | SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" | ||
80 | SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" | ||
diff --git a/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb b/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb new file mode 100644 index 0000000000..cece2cb8cc --- /dev/null +++ b/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb | |||
@@ -0,0 +1,15 @@ | |||
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] = "42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d" | ||
8 | |||
9 | require ${BPN}-crates.inc | ||
10 | |||
11 | inherit pypi cargo-update-recipe-crates python_maturin | ||
12 | |||
13 | PYPI_PACKAGE = "rpds_py" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb b/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb new file mode 100644 index 0000000000..197bf91d6c --- /dev/null +++ b/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb | |||
@@ -0,0 +1,23 @@ | |||
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=30cbbccd94bf3a2b0285ec35671a1938" | ||
6 | |||
7 | PYPI_PACKAGE = "ruamel.yaml" | ||
8 | |||
9 | inherit pypi setuptools3 | ||
10 | |||
11 | SRC_URI[sha256sum] = "8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b" | ||
12 | |||
13 | RDEPENDS:${PN} += "\ | ||
14 | python3-shell \ | ||
15 | python3-datetime \ | ||
16 | python3-netclient \ | ||
17 | " | ||
18 | |||
19 | do_install:prepend() { | ||
20 | export RUAMEL_NO_PIP_INSTALL_CHECK=1 | ||
21 | } | ||
22 | |||
23 | 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/0001-Fix-man-page-installation.patch b/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch new file mode 100644 index 0000000000..6dffe64809 --- /dev/null +++ b/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From 8b482e618047e94833545dce3a26924ef4f075db Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Orling <ticotimo@gmail.com> | ||
3 | Date: Sat, 22 May 2021 11:20:46 -0700 | ||
4 | Subject: [PATCH] Fix man page installation | ||
5 | |||
6 | Fixes: | ||
7 | error: can't copy 'build/doc/man/scons.1': doesn't exist or not a regular file | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe specific] | ||
10 | |||
11 | Signed-off-by: Tim Orling <ticotimo@gmail.com> | ||
12 | |||
13 | --- | ||
14 | MANIFEST.in | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/MANIFEST.in b/MANIFEST.in | ||
18 | index 04ec000..937f6f3 100644 | ||
19 | --- a/MANIFEST.in | ||
20 | +++ b/MANIFEST.in | ||
21 | @@ -4,7 +4,7 @@ recursive-include SCons/Tool/docbook * | ||
22 | include LICENSE | ||
23 | |||
24 | include scons.1 sconsign.1 scons-time.1 | ||
25 | -recursive-include build/doc/man *.1 | ||
26 | +#recursive-include build/doc/man *.1 | ||
27 | |||
28 | |||
29 | |||
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.7.0.bb b/meta/recipes-devtools/python/python3-scons_4.7.0.bb new file mode 100644 index 0000000000..bba6c799d4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-scons_4.7.0.bb | |||
@@ -0,0 +1,36 @@ | |||
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 += " file://0001-Fix-man-page-installation.patch" | ||
8 | SRC_URI[sha256sum] = "d8b617f6610a73e46509de70dcf82f76861b79762ff602d546f4e80918ec81f3" | ||
9 | |||
10 | PYPI_PACKAGE = "SCons" | ||
11 | |||
12 | inherit pypi setuptools3 | ||
13 | |||
14 | RDEPENDS:${PN}:class-target = "\ | ||
15 | python3-core \ | ||
16 | python3-compression \ | ||
17 | python3-fcntl \ | ||
18 | python3-importlib-metadata \ | ||
19 | python3-io \ | ||
20 | python3-json \ | ||
21 | python3-shell \ | ||
22 | python3-pickle \ | ||
23 | python3-pkg-resources \ | ||
24 | python3-pprint \ | ||
25 | " | ||
26 | |||
27 | do_install:append() { | ||
28 | install -d ${D}${mandir}/man1 | ||
29 | mv ${D}${prefix}/scons*.1 ${D}${mandir}/man1/ | ||
30 | } | ||
31 | |||
32 | do_install:append:class-native() { | ||
33 | create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' | ||
34 | } | ||
35 | |||
36 | 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..27e3f534b8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-semantic-version_2.10.0.bb | |||
@@ -0,0 +1,18 @@ | |||
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 | inherit pypi setuptools3 | ||
11 | |||
12 | RDEPENDS:${PN} += " \ | ||
13 | python3-pkg-resources \ | ||
14 | " | ||
15 | |||
16 | BBCLASSEXTEND = "native nativesdk" | ||
17 | |||
18 | UPSTREAM_CHECK_REGEX = "/semantic-version/(?P<pver>(\d+[\.\-_]*)+)/" | ||
diff --git a/meta/recipes-devtools/python/python3-setuptools-rust_1.9.0.bb b/meta/recipes-devtools/python/python3-setuptools-rust_1.9.0.bb new file mode 100644 index 0000000000..8eb2513d69 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools-rust_1.9.0.bb | |||
@@ -0,0 +1,35 @@ | |||
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 = "${PYPI_SRC_URI} \ | ||
13 | https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz \ | ||
14 | " | ||
15 | SRC_URI[sha256sum] = "704df0948f2e4cc60c2596ad6e840ea679f4f43e58ed4ad0c1857807240eab96" | ||
16 | |||
17 | inherit cargo pypi python_setuptools_build_meta | ||
18 | |||
19 | DEPENDS += "python3-setuptools-scm-native python3-wheel-native" | ||
20 | # remove when https://github.com/PyO3/setuptools-rust/commit/7ced8d2a8f36e1b4fc41b5544636defb7bd44bdf | ||
21 | # is included | ||
22 | DEPENDS += "python3-semantic-version-native" | ||
23 | |||
24 | RDEPENDS:${PN} += " \ | ||
25 | python3-json \ | ||
26 | python3-semantic-version \ | ||
27 | python3-setuptools \ | ||
28 | python3-setuptools-scm \ | ||
29 | python3-shell \ | ||
30 | python3-toml \ | ||
31 | python3-typing-extensions \ | ||
32 | python3-wheel \ | ||
33 | " | ||
34 | |||
35 | 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.0.4.bb b/meta/recipes-devtools/python/python3-setuptools-scm_8.0.4.bb new file mode 100644 index 0000000000..64b5050c3b --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools-scm_8.0.4.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] = "b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7" | ||
10 | |||
11 | inherit pypi python_setuptools_build_meta | ||
12 | |||
13 | UPSTREAM_CHECK_REGEX = "scm-(?P<pver>.*)\.tar" | ||
14 | |||
15 | DEPENDS += "python3-tomli-native python3-packaging-native python3-typing-extensions-native" | ||
16 | |||
17 | RDEPENDS:${PN} = "\ | ||
18 | python3-packaging \ | ||
19 | python3-pip \ | ||
20 | python3-pyparsing \ | ||
21 | python3-setuptools \ | ||
22 | python3-tomli \ | ||
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..0f6c9d250d --- /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 d393759315b189a738e4b6a2ce31dc18dbbfae29 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 a40a723..14f35e7 100644 | ||
24 | --- a/setuptools/_distutils/sysconfig.py | ||
25 | +++ b/setuptools/_distutils/sysconfig.py | ||
26 | @@ -119,6 +119,8 @@ def get_python_inc(plat_specific=0, prefix=None): | ||
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 | try: | ||
34 | getter = globals()[f'_get_python_inc_{os.name}'] | ||
35 | @@ -238,7 +240,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): | ||
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 | @@ -253,7 +261,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): | ||
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/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 680edbe704..e227c2889c 100644 --- a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 6380cc63f79abe8b8404c9be5ed5f213a70c8c6a Mon Sep 17 00:00:00 2001 | 1 | From 80fe63816eb3bfd1f5b6d354e1f2442805cff4e0 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Tue, 17 Jul 2018 10:13:38 +0800 | 3 | Date: Tue, 17 Jul 2018 10:13:38 +0800 |
4 | Subject: [PATCH] conditionally do not fetch code by easy_install | 4 | Subject: [PATCH] conditionally do not fetch code by easy_install |
@@ -9,17 +9,16 @@ internet by easy_install. | |||
9 | Upstream-Status: Inappropriate [oe specific] | 9 | Upstream-Status: Inappropriate [oe specific] |
10 | 10 | ||
11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
12 | |||
13 | --- | 12 | --- |
14 | setuptools/command/easy_install.py | 5 +++++ | 13 | setuptools/command/easy_install.py | 5 +++++ |
15 | 1 file changed, 5 insertions(+) | 14 | 1 file changed, 5 insertions(+) |
16 | 15 | ||
17 | diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py | 16 | diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py |
18 | index eeb21b5..eca1edd 100644 | 17 | index 858fb20..62bd853 100644 |
19 | --- a/setuptools/command/easy_install.py | 18 | --- a/setuptools/command/easy_install.py |
20 | +++ b/setuptools/command/easy_install.py | 19 | +++ b/setuptools/command/easy_install.py |
21 | @@ -636,6 +636,11 @@ class easy_install(Command): | 20 | @@ -672,6 +672,11 @@ class easy_install(Command): |
22 | os.path.exists(tmpdir) and rmtree(tmpdir) | 21 | os.path.exists(tmpdir) and _rmtree(tmpdir) |
23 | 22 | ||
24 | def easy_install(self, spec, deps=False): | 23 | def easy_install(self, spec, deps=False): |
25 | + if os.environ.get('NO_FETCH_BUILD', None): | 24 | + if os.environ.get('NO_FETCH_BUILD', None): |
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_69.5.1.bb b/meta/recipes-devtools/python/python3-setuptools_69.5.1.bb new file mode 100644 index 0000000000..8261b09d16 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools_69.5.1.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 | SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" | ||
10 | |||
11 | SRC_URI += " \ | ||
12 | file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch" | ||
13 | |||
14 | SRC_URI[sha256sum] = "6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987" | ||
15 | |||
16 | DEPENDS += "python3" | ||
17 | |||
18 | RDEPENDS:${PN} = "\ | ||
19 | python3-2to3 \ | ||
20 | python3-compile \ | ||
21 | python3-compression \ | ||
22 | python3-ctypes \ | ||
23 | python3-email \ | ||
24 | python3-html \ | ||
25 | python3-json \ | ||
26 | python3-netserver \ | ||
27 | python3-numbers \ | ||
28 | python3-pickle \ | ||
29 | python3-pkg-resources \ | ||
30 | python3-pkgutil \ | ||
31 | python3-plistlib \ | ||
32 | python3-shell \ | ||
33 | python3-stringold \ | ||
34 | python3-threading \ | ||
35 | python3-unittest \ | ||
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.16.0.bb b/meta/recipes-devtools/python/python3-six_1.16.0.bb new file mode 100644 index 0000000000..1ba48d4f47 --- /dev/null +++ b/meta/recipes-devtools/python/python3-six_1.16.0.bb | |||
@@ -0,0 +1,4 @@ | |||
1 | inherit setuptools3 | ||
2 | require python-six.inc | ||
3 | |||
4 | SRC_URI[sha256sum] = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926" | ||
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..aab16eaab4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch | |||
@@ -0,0 +1,47 @@ | |||
1 | From e299bcb05405ff49450307bf3002c1fac14a866c 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 | --- | ||
13 | setup.py | 2 +- | ||
14 | smartypants | 2 +- | ||
15 | smartypants.py | 2 +- | ||
16 | 3 files changed, 3 insertions(+), 3 deletions(-) | ||
17 | |||
18 | diff --git a/setup.py b/setup.py | ||
19 | index ff1ea76..96a8b73 100755 | ||
20 | --- a/setup.py | ||
21 | +++ b/setup.py | ||
22 | @@ -1,4 +1,4 @@ | ||
23 | -#!/usr/bin/env python | ||
24 | +#!/usr/bin/env python3 | ||
25 | # Copyright (C) 2013, 2014 by Yu-Jie Lin | ||
26 | # For detail license information, See COPYING | ||
27 | |||
28 | diff --git a/smartypants b/smartypants | ||
29 | index 189adf5..0cca568 100755 | ||
30 | --- a/smartypants | ||
31 | +++ b/smartypants | ||
32 | @@ -1,4 +1,4 @@ | ||
33 | -#!/usr/bin/env python | ||
34 | +#!/usr/bin/env python3 | ||
35 | # Copyright (c) 2013, 2014 Yu-Jie Lin | ||
36 | # Licensed under the BSD License, for detailed license information, see COPYING | ||
37 | |||
38 | diff --git a/smartypants.py b/smartypants.py | ||
39 | index a70575b..e53bd87 100755 | ||
40 | --- a/smartypants.py | ||
41 | +++ b/smartypants.py | ||
42 | @@ -1,4 +1,4 @@ | ||
43 | -#!/usr/bin/python | ||
44 | +#!/usr/bin/env python3 | ||
45 | # -*- coding: utf-8 -*- | ||
46 | # Copyright (c) 2013, 2014, 2016 Yu-Jie Lin | ||
47 | # Copyright (c) 2004, 2005, 2007, 2013 Chad Miller | ||
diff --git a/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb b/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb new file mode 100644 index 0000000000..d089a89b95 --- /dev/null +++ b/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb | |||
@@ -0,0 +1,14 @@ | |||
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=977036977591ac666c728921ecc54c4f" | ||
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] = "7812353a32022699a1aa8cd5626e01c94a946dcaeedaee2d0b382bae4c4cbf36" | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
13 | |||
14 | UPSTREAM_CHECK_REGEX = "/${PYPI_PACKAGE}/(?P<pver>(?!2\.0\.1)(\d+[\.\-_]*)+)/" | ||
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_2.2.0.bb b/meta/recipes-devtools/python/python3-snowballstemmer_2.2.0.bb new file mode 100644 index 0000000000..ff120a3fc4 --- /dev/null +++ b/meta/recipes-devtools/python/python3-snowballstemmer_2.2.0.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] = "09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1" | ||
8 | |||
9 | PYPI_PACKAGE = "snowballstemmer" | ||
10 | |||
11 | inherit pypi setuptools3 | ||
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.2.bb b/meta/recipes-devtools/python/python3-spdx-tools_0.8.2.bb new file mode 100644 index 0000000000..53263ca032 --- /dev/null +++ b/meta/recipes-devtools/python/python3-spdx-tools_0.8.2.bb | |||
@@ -0,0 +1,28 @@ | |||
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] = "aea4ac9c2c375e7f439b1cef5ff32ef34914c083de0f61e08ed67cd3d9deb2a9" | ||
8 | |||
9 | BBCLASSEXTEND = "native nativesdk" | ||
10 | |||
11 | inherit setuptools3 pypi | ||
12 | |||
13 | # Dependency required for pyspdxtools : python3-click | ||
14 | # Dependencies required for conversion to spdx3 : python3-semantic-version, python3-ply | ||
15 | RDEPENDS:${PN} += "\ | ||
16 | python3-core \ | ||
17 | python3-beartype \ | ||
18 | python3-click \ | ||
19 | python3-datetime \ | ||
20 | python3-json \ | ||
21 | python3-license-expression \ | ||
22 | python3-ply \ | ||
23 | python3-pyyaml \ | ||
24 | python3-rdflib \ | ||
25 | python3-semantic-version \ | ||
26 | python3-uritools \ | ||
27 | python3-xmltodict \ | ||
28 | " | ||
diff --git a/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb b/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb new file mode 100644 index 0000000000..22b4d96444 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.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 | |||
17 | SRC_URI[sha256sum] = "bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b" | ||
18 | UPSTREAM_CHECK_REGEX ?= "/sphinx-rtd-theme/(?P<pver>(\d+[\.\-_]*)+)/" | ||
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_7.2.6.bb b/meta/recipes-devtools/python/python3-sphinx_7.2.6.bb new file mode 100644 index 0000000000..f4ed0720ff --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinx_7.2.6.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;md5=5eb6ac1b115a1ed24a12d9f15b633993" | ||
6 | |||
7 | SRC_URI[sha256sum] = "9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5" | ||
8 | |||
9 | inherit python_flit_core pypi | ||
10 | UPSTREAM_CHECK_REGEX = "/Sphinx/(?P<pver>(\d+[\.\-_]*)+)/" | ||
11 | |||
12 | do_install:append () { | ||
13 | # The cache format of "{None, 'en', 'ja'}" doesn't seem to be consistent (dict ordering?) | ||
14 | rm ${D}${libdir}/${PYTHON_DIR}/site-packages/sphinx/writers/__pycache__/*latex* | ||
15 | } | ||
16 | |||
17 | RDEPENDS:${PN} = "\ | ||
18 | python3-alabaster \ | ||
19 | python3-babel \ | ||
20 | python3-docutils \ | ||
21 | python3-imagesize \ | ||
22 | python3-jinja2 \ | ||
23 | python3-packaging \ | ||
24 | python3-pygments \ | ||
25 | python3-requests \ | ||
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_1.0.8.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb new file mode 100644 index 0000000000..67dd299b72 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb | |||
@@ -0,0 +1,12 @@ | |||
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://LICENSE;md5=c7715857042d4c8c0105999ca0c072c5" | ||
5 | |||
6 | SRC_URI[sha256sum] = "c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_applehelp" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb new file mode 100644 index 0000000000..31f77a0a14 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb | |||
@@ -0,0 +1,12 @@ | |||
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://LICENSE;md5=fd30d9972a142c857a80c9f312e92b93" | ||
5 | |||
6 | SRC_URI[sha256sum] = "9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_devhelp" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb new file mode 100644 index 0000000000..e30c61c398 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb | |||
@@ -0,0 +1,12 @@ | |||
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://LICENSE;md5=24dce5ef6a13563241c24bc366f48886" | ||
5 | |||
6 | SRC_URI[sha256sum] = "0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_htmlhelp" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | 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_1.0.7.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb new file mode 100644 index 0000000000..2225ec521e --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb | |||
@@ -0,0 +1,12 @@ | |||
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://LICENSE;md5=f7a83b72ea86d04827575ec0b63430eb" | ||
5 | |||
6 | SRC_URI[sha256sum] = "053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_qthelp" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb b/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb new file mode 100644 index 0000000000..49be5200f0 --- /dev/null +++ b/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb | |||
@@ -0,0 +1,12 @@ | |||
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://LICENSE;md5=32a84ac5cd3bbd10c4d479233ad588b6" | ||
5 | |||
6 | SRC_URI[sha256sum] = "93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f" | ||
7 | |||
8 | PYPI_PACKAGE = "sphinxcontrib_serializinghtml" | ||
9 | |||
10 | inherit pypi python_flit_core | ||
11 | |||
12 | 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..11be10bab6 --- /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 setuptools3 | ||
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.1.bb b/meta/recipes-devtools/python/python3-testtools_2.7.1.bb new file mode 100644 index 0000000000..cc7e055632 --- /dev/null +++ b/meta/recipes-devtools/python/python3-testtools_2.7.1.bb | |||
@@ -0,0 +1,20 @@ | |||
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] = "df6de96010e29ee21f637a147eabf30d50b25e3841dd1d68f93ee89ce77e366c" | ||
12 | |||
13 | RDEPENDS:${PN} += "\ | ||
14 | python3-doctest \ | ||
15 | python3-extras \ | ||
16 | python3-six \ | ||
17 | " | ||
18 | |||
19 | BBCLASSEXTEND = "nativesdk" | ||
20 | |||
diff --git a/meta/recipes-devtools/python/python3-toml_0.10.2.bb b/meta/recipes-devtools/python/python3-toml_0.10.2.bb index b46eba6fd1..649464b961 100644 --- a/meta/recipes-devtools/python/python3-toml_0.10.2.bb +++ b/meta/recipes-devtools/python/python3-toml_0.10.2.bb | |||
@@ -10,6 +10,6 @@ inherit pypi setuptools3 | |||
10 | 10 | ||
11 | BBCLASSEXTEND = "native nativesdk" | 11 | BBCLASSEXTEND = "native nativesdk" |
12 | 12 | ||
13 | RDEPENDS_${PN} += " \ | 13 | RDEPENDS:${PN} += " \ |
14 | ${PYTHON_PN}-misc \ | 14 | python3-misc \ |
15 | " | 15 | " |
diff --git a/meta/recipes-devtools/python/python3-tomli_2.0.1.bb b/meta/recipes-devtools/python/python3-tomli_2.0.1.bb new file mode 100644 index 0000000000..9401ed897f --- /dev/null +++ b/meta/recipes-devtools/python/python3-tomli_2.0.1.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | SUMMARY = "A lil' TOML parser" | ||
2 | DESCRIPTION = "Tomli is a Python library for parsing TOML. Tomli is fully \ | ||
3 | compatible with TOML v1.0.0." | ||
4 | HOMEPAGE = "https://github.com/hukkin/tomli" | ||
5 | BUGTRACKER = "https://github.com/hukkin/tomli/issues" | ||
6 | LICENSE = "MIT" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5" | ||
8 | |||
9 | inherit pypi python_flit_core | ||
10 | |||
11 | SRC_URI[sha256sum] = "de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
14 | |||
15 | RDEPENDS:${PN} += " \ | ||
16 | python3-datetime \ | ||
17 | python3-stringold \ | ||
18 | " | ||
diff --git a/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest b/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-trove-classifiers/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-trove-classifiers_2024.4.10.bb b/meta/recipes-devtools/python/python3-trove-classifiers_2024.4.10.bb new file mode 100644 index 0000000000..357b428983 --- /dev/null +++ b/meta/recipes-devtools/python/python3-trove-classifiers_2024.4.10.bb | |||
@@ -0,0 +1,26 @@ | |||
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] = "49f40bb6a746b72a1cba4f8d55ee8252169cda0f70802e3fd24f04b7fb25a492" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta ptest | ||
9 | |||
10 | DEPENDS += " python3-calver-native" | ||
11 | |||
12 | SRC_URI += " \ | ||
13 | file://run-ptest \ | ||
14 | " | ||
15 | |||
16 | RDEPENDS:${PN}-ptest += " \ | ||
17 | python3-pytest \ | ||
18 | python3-unittest-automake-output \ | ||
19 | " | ||
20 | |||
21 | do_install_ptest() { | ||
22 | install -d ${D}${PTEST_PATH}/tests | ||
23 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
24 | } | ||
25 | |||
26 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-typing-extensions_4.11.0.bb b/meta/recipes-devtools/python/python3-typing-extensions_4.11.0.bb new file mode 100644 index 0000000000..ad45b669ec --- /dev/null +++ b/meta/recipes-devtools/python/python3-typing-extensions_4.11.0.bb | |||
@@ -0,0 +1,24 @@ | |||
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 | |||
18 | SRC_URI[sha256sum] = "83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0" | ||
19 | |||
20 | inherit pypi python_flit_core | ||
21 | |||
22 | UPSTREAM_CHECK_REGEX = "/typing-extensions/(?P<pver>(\d+[\.\-_]*)+)/" | ||
23 | |||
24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb b/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb new file mode 100644 index 0000000000..8ba2788c9b --- /dev/null +++ b/meta/recipes-devtools/python/python3-typogrify_2.0.7.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=12bc792d6f5415dbf421f3fd183c6dd2" | ||
5 | |||
6 | inherit pypi setuptools3 | ||
7 | |||
8 | PYPI_PACKAGE = "typogrify" | ||
9 | SRC_URI[sha256sum] = "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38" | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} += "python3-smartypants" | ||
14 | |||
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..1fc6180d0e --- /dev/null +++ b/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb | |||
@@ -0,0 +1,13 @@ | |||
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 | SRCREV = "aebdfb188e368c690ea55cf6c9c9ffa1a52def65" | ||
8 | |||
9 | S = "${WORKDIR}/git" | ||
10 | |||
11 | inherit python_flit_core | ||
12 | |||
13 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-uritools_4.0.2.bb b/meta/recipes-devtools/python/python3-uritools_4.0.2.bb new file mode 100644 index 0000000000..5ffedccb85 --- /dev/null +++ b/meta/recipes-devtools/python/python3-uritools_4.0.2.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=1ec55353c80c662e4255f8889a0ca558" | ||
6 | |||
7 | SRC_URI[sha256sum] = "04df2b787d0eb76200e8319382a03562fbfe4741fd66c15506b08d3b8211d573" | ||
8 | |||
9 | inherit setuptools3 pypi | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-urllib3_2.2.1.bb b/meta/recipes-devtools/python/python3-urllib3_2.2.1.bb new file mode 100644 index 0000000000..fc1828b4ee --- /dev/null +++ b/meta/recipes-devtools/python/python3-urllib3_2.2.1.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" | ||
2 | HOMEPAGE = "https://github.com/shazow/urllib3" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda" | ||
5 | |||
6 | SRC_URI[sha256sum] = "d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" | ||
7 | |||
8 | inherit pypi python_hatchling | ||
9 | |||
10 | RDEPENDS:${PN} += "\ | ||
11 | python3-certifi \ | ||
12 | python3-cryptography \ | ||
13 | python3-email \ | ||
14 | python3-idna \ | ||
15 | python3-json \ | ||
16 | python3-netclient \ | ||
17 | python3-pyopenssl \ | ||
18 | python3-threading \ | ||
19 | python3-logging \ | ||
20 | " | ||
21 | |||
22 | CVE_PRODUCT = "urllib3" | ||
23 | |||
24 | 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..149078c51b --- /dev/null +++ b/meta/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb | |||
@@ -0,0 +1,12 @@ | |||
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[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d" | ||
8 | SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b" | ||
9 | |||
10 | inherit pypi setuptools3 | ||
11 | |||
12 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-devtools/python/python3-wcwidth/run-ptest b/meta/recipes-devtools/python/python3-wcwidth/run-ptest index b63c4de0d9..8d2017d39c 100644 --- a/meta/recipes-devtools/python/python3-wcwidth/run-ptest +++ b/meta/recipes-devtools/python/python3-wcwidth/run-ptest | |||
@@ -1,3 +1,3 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 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}}' | 3 | pytest --automake |
diff --git a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb index bb4aae2e86..4a9bf75323 100644 --- a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb +++ b/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb | |||
@@ -4,8 +4,7 @@ HOMEPAGE = "https://github.com/jquast/wcwidth" | |||
4 | LICENSE = "MIT" | 4 | LICENSE = "MIT" |
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb" | 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb" |
6 | 6 | ||
7 | SRC_URI[md5sum] = "a07a75f99d316e14838ac760c831ea37" | 7 | SRC_URI[sha256sum] = "72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" |
8 | SRC_URI[sha256sum] = "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" | ||
9 | 8 | ||
10 | inherit pypi setuptools3 ptest | 9 | inherit pypi setuptools3 ptest |
11 | 10 | ||
@@ -13,13 +12,16 @@ SRC_URI += " \ | |||
13 | file://run-ptest \ | 12 | file://run-ptest \ |
14 | " | 13 | " |
15 | 14 | ||
16 | RDEPENDS_${PN}-ptest += " \ | 15 | RDEPENDS:${PN}-ptest += " \ |
17 | ${PYTHON_PN}-pytest \ | 16 | python3-pytest \ |
17 | python3-unittest-automake-output \ | ||
18 | " | 18 | " |
19 | 19 | ||
20 | do_install_ptest() { | 20 | do_install_ptest() { |
21 | install -d ${D}${PTEST_PATH}/tests | 21 | install -d ${D}${PTEST_PATH}/tests |
22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | 22 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ |
23 | install -d ${D}${PTEST_PATH}/bin | ||
24 | cp -rf ${S}/bin/* ${D}${PTEST_PATH}/bin/ | ||
23 | } | 25 | } |
24 | 26 | ||
25 | BBCLASSEXTEND = "native nativesdk" | 27 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-devtools/python/python3-webcolors/run-ptest b/meta/recipes-devtools/python/python3-webcolors/run-ptest new file mode 100644 index 0000000000..8d2017d39c --- /dev/null +++ b/meta/recipes-devtools/python/python3-webcolors/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | pytest --automake | ||
diff --git a/meta/recipes-devtools/python/python3-webcolors_1.13.bb b/meta/recipes-devtools/python/python3-webcolors_1.13.bb new file mode 100644 index 0000000000..cea2a971d3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-webcolors_1.13.bb | |||
@@ -0,0 +1,28 @@ | |||
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=702b1ef12cf66832a88f24c8f2ee9c19" | ||
5 | |||
6 | SRC_URI[sha256sum] = "c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a" | ||
7 | |||
8 | inherit pypi python_setuptools_build_meta ptest | ||
9 | |||
10 | RDEPENDS:${PN}:class-target = "\ | ||
11 | python3-stringold \ | ||
12 | " | ||
13 | |||
14 | SRC_URI += " \ | ||
15 | file://run-ptest \ | ||
16 | " | ||
17 | |||
18 | RDEPENDS:${PN}-ptest += " \ | ||
19 | python3-pytest \ | ||
20 | python3-unittest-automake-output \ | ||
21 | " | ||
22 | |||
23 | do_install_ptest() { | ||
24 | install -d ${D}${PTEST_PATH}/tests | ||
25 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
26 | } | ||
27 | |||
28 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-websockets_12.0.bb b/meta/recipes-devtools/python/python3-websockets_12.0.bb new file mode 100644 index 0000000000..f89c3b629e --- /dev/null +++ b/meta/recipes-devtools/python/python3-websockets_12.0.bb | |||
@@ -0,0 +1,16 @@ | |||
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 setuptools3 | ||
8 | |||
9 | SRC_URI[sha256sum] = "81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b" | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | RDEPENDS:${PN} = " \ | ||
14 | python3-asyncio \ | ||
15 | python3-profile \ | ||
16 | " | ||
diff --git a/meta/recipes-devtools/python/python3-wheel_0.43.0.bb b/meta/recipes-devtools/python/python3-wheel_0.43.0.bb new file mode 100644 index 0000000000..ba309ae5fc --- /dev/null +++ b/meta/recipes-devtools/python/python3-wheel_0.43.0.bb | |||
@@ -0,0 +1,15 @@ | |||
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] = "465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85" | ||
8 | |||
9 | inherit python_flit_core pypi | ||
10 | |||
11 | BBCLASSEXTEND = "native nativesdk" | ||
12 | |||
13 | # This used to use the bootstrap install which didn't compile. Until we bump the | ||
14 | # tmpdir version we can't compile the native otherwise the sysroot unpack fails | ||
15 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | ||
diff --git a/meta/recipes-devtools/python/python3-xmltodict/run-ptest b/meta/recipes-devtools/python/python3-xmltodict/run-ptest new file mode 100644 index 0000000000..3385d68939 --- /dev/null +++ b/meta/recipes-devtools/python/python3-xmltodict/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
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-xmltodict_0.13.0.bb b/meta/recipes-devtools/python/python3-xmltodict_0.13.0.bb new file mode 100644 index 0000000000..e8e275647c --- /dev/null +++ b/meta/recipes-devtools/python/python3-xmltodict_0.13.0.bb | |||
@@ -0,0 +1,31 @@ | |||
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] = "341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56" | ||
7 | |||
8 | PYPI_PACKAGE = "xmltodict" | ||
9 | |||
10 | BBCLASSEXTEND = "native nativesdk" | ||
11 | |||
12 | inherit pypi setuptools3 ptest | ||
13 | |||
14 | SRC_URI += " \ | ||
15 | file://run-ptest \ | ||
16 | " | ||
17 | |||
18 | RDEPENDS:${PN} += " \ | ||
19 | python3-core \ | ||
20 | python3-xml \ | ||
21 | python3-io \ | ||
22 | " | ||
23 | |||
24 | RDEPENDS:${PN}-ptest += " \ | ||
25 | python3-pytest \ | ||
26 | " | ||
27 | |||
28 | do_install_ptest() { | ||
29 | install -d ${D}${PTEST_PATH}/tests | ||
30 | cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ | ||
31 | } | ||
diff --git a/meta/recipes-devtools/python/python3-yamllint_1.35.1.bb b/meta/recipes-devtools/python/python3-yamllint_1.35.1.bb new file mode 100644 index 0000000000..53188b0262 --- /dev/null +++ b/meta/recipes-devtools/python/python3-yamllint_1.35.1.bb | |||
@@ -0,0 +1,15 @@ | |||
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 setuptools3 | ||
7 | |||
8 | PYPI_PACKAGE = "yamllint" | ||
9 | |||
10 | SRC_URI[sha256sum] = "7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd" | ||
11 | |||
12 | DEPENDS += "python3-setuptools-scm-native" | ||
13 | RDEPENDS:${PN} += "python3-pathspec python3-pyyaml" | ||
14 | |||
15 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-devtools/python/python3-zipp_3.18.1.bb b/meta/recipes-devtools/python/python3-zipp_3.18.1.bb new file mode 100644 index 0000000000..e43432469d --- /dev/null +++ b/meta/recipes-devtools/python/python3-zipp_3.18.1.bb | |||
@@ -0,0 +1,18 @@ | |||
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] = "2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715" | ||
7 | |||
8 | DEPENDS += "python3-setuptools-scm-native" | ||
9 | |||
10 | inherit pypi python_setuptools_build_meta | ||
11 | |||
12 | DEPENDS += "python3-toml-native" | ||
13 | |||
14 | RDEPENDS:${PN} += "python3-compression \ | ||
15 | python3-math \ | ||
16 | python3-more-itertools" | ||
17 | |||
18 | 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..0d807db39f --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 365399f17d35719d828ddd49182dcb401fb7791c 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 77bf09a..6353c57 100644 | ||
20 | --- a/Makefile.pre.in | ||
21 | +++ b/Makefile.pre.in | ||
22 | @@ -2339,6 +2339,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-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..026150f0e2 --- /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,47 @@ | |||
1 | From f8a664cf1fc73e381d57d6927207286059744837 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 | --- | ||
29 | Lib/pty.py | 5 ++++- | ||
30 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
31 | |||
32 | diff --git a/Lib/pty.py b/Lib/pty.py | ||
33 | index 1d97994..fa8821b 100644 | ||
34 | --- a/Lib/pty.py | ||
35 | +++ b/Lib/pty.py | ||
36 | @@ -178,7 +178,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read): | ||
37 | i_buf = i_buf[n:] | ||
38 | |||
39 | if stdin_avail and STDIN_FILENO in rfds: | ||
40 | - data = stdin_read(STDIN_FILENO) | ||
41 | + try: | ||
42 | + data = stdin_read(STDIN_FILENO) | ||
43 | + except OSError: | ||
44 | + data = b"" | ||
45 | if not data: | ||
46 | stdin_avail = False | ||
47 | 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..680254fab9 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 71c194077bb907bfe423d3f3275f33a6c8ca0e74 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 | --- | ||
14 | Lib/sysconfig.py | 5 +++++ | ||
15 | 1 file changed, 5 insertions(+) | ||
16 | |||
17 | diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py | ||
18 | index 79c0510..91ebcb6 100644 | ||
19 | --- a/Lib/sysconfig.py | ||
20 | +++ b/Lib/sysconfig.py | ||
21 | @@ -668,6 +668,11 @@ def _init_config_vars(): | ||
22 | _CONFIG_VARS['VPATH'] = sys._vpath | ||
23 | if os.name == 'posix': | ||
24 | _init_posix(_CONFIG_VARS) | ||
25 | + _CONFIG_VARS['installed_base'] = _CONFIG_VARS['prefix'] | ||
26 | + _CONFIG_VARS['base'] = _CONFIG_VARS['prefix'] | ||
27 | + _CONFIG_VARS['installed_platbase'] = _CONFIG_VARS['prefix'] | ||
28 | + _CONFIG_VARS['platbase'] = _CONFIG_VARS['prefix'] | ||
29 | + _CONFIG_VARS['platlibdir'] = _CONFIG_VARS['PLATLIBDIR'] | ||
30 | if _HAS_USER_BASE: | ||
31 | # Setting 'userbase' is done below the call to the | ||
32 | # 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..ee33128fa1 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,4 +1,4 @@ | |||
1 | From cf6a9100902484e4d028ee88742dd2487b014a98 Mon Sep 17 00:00:00 2001 | 1 | From 38278339832a57dbf5fa3ef21accaa03e2c814d7 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 |
@@ -10,16 +10,16 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | |||
10 | 1 file changed, 1 insertion(+), 2 deletions(-) | 10 | 1 file changed, 1 insertion(+), 2 deletions(-) |
11 | 11 | ||
12 | diff --git a/Makefile.pre.in b/Makefile.pre.in | 12 | diff --git a/Makefile.pre.in b/Makefile.pre.in |
13 | index a3a02a7..d5503dd 100644 | 13 | index dd5e69f..381feb0 100644 |
14 | --- a/Makefile.pre.in | 14 | --- a/Makefile.pre.in |
15 | +++ b/Makefile.pre.in | 15 | +++ b/Makefile.pre.in |
16 | @@ -507,8 +507,7 @@ build_all_generate_profile: | 16 | @@ -658,8 +658,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)" | 17 | # enabled. |
18 | 18 | $(MAKE) profile-gen-stamp | |
19 | run_profile_task: | 19 | # Next, run the profile task to generate the profile information. |
20 | - @ # FIXME: can't run for a cross build | 20 | - @ # FIXME: can't run for a cross build |
21 | - $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true | 21 | - $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true |
22 | + ./pgo-wrapper ./python -m test.regrtest --pgo test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_support || true | 22 | + ./pgo-wrapper ./python -m test.regrtest --pgo test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_support || true |
23 | |||
24 | build_all_merge_profile: | ||
25 | $(LLVM_PROF_MERGER) | 23 | $(LLVM_PROF_MERGER) |
24 | # Remove profile generation binary since we are done with it. | ||
25 | $(MAKE) clean-retain-profile | ||
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..197daa71a5 --- /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 3471e3478e0760c42e04f8046cee2367ab5706d2 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 e42c7ab..dff5227 100644 | ||
27 | --- a/Lib/test/_test_multiprocessing.py | ||
28 | +++ b/Lib/test/_test_multiprocessing.py | ||
29 | @@ -682,6 +682,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 | @@ -2066,6 +2067,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 | @@ -5024,6 +5026,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 02cc3f4..51a4548 100644 | ||
55 | --- a/Lib/test/test_time.py | ||
56 | +++ b/Lib/test/test_time.py | ||
57 | @@ -492,6 +492,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 | @@ -505,6 +506,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', '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..b6c6ac5a28 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch | |||
@@ -0,0 +1,37 @@ | |||
1 | From 37d058e841ba3bd89b5746cc5381afb014b11581 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 | --- | ||
22 | Lib/test/test_sysconfig.py | 2 +- | ||
23 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py | ||
26 | index b6dbf3d..5672590 100644 | ||
27 | --- a/Lib/test/test_sysconfig.py | ||
28 | +++ b/Lib/test/test_sysconfig.py | ||
29 | @@ -372,7 +372,7 @@ class TestSysConfig(unittest.TestCase): | ||
30 | expected = os.path.normpath(global_path.replace(base, user, 1)) | ||
31 | # bpo-44860: platlib of posix_user doesn't use sys.platlibdir, | ||
32 | # whereas posix_prefix does. | ||
33 | - if name == 'platlib': | ||
34 | + if name == 'platlib' or name == 'purelib': | ||
35 | # Replace "/lib64/python3.11/site-packages" suffix | ||
36 | # with "/lib/python3.11/site-packages". | ||
37 | py_version_short = sysconfig.get_python_version() | ||
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-gh-114492-Initialize-struct-termios-before-calling-t.patch b/meta/recipes-devtools/python/python3/0001-gh-114492-Initialize-struct-termios-before-calling-t.patch new file mode 100644 index 0000000000..8406ef30a2 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-gh-114492-Initialize-struct-termios-before-calling-t.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From 439aa02f42d6e6715c172076261757fcb89a936a Mon Sep 17 00:00:00 2001 | ||
2 | From: "Miss Islington (bot)" | ||
3 | <31488909+miss-islington@users.noreply.github.com> | ||
4 | Date: Tue, 23 Jan 2024 23:02:02 +0100 | ||
5 | Subject: [PATCH] gh-114492: Initialize struct termios before calling | ||
6 | tcgetattr() (GH-114495) (GH-114502) | ||
7 | |||
8 | On Alpine Linux it could leave some field non-initialized. | ||
9 | (cherry picked from commit d22c066b802592932f9eb18434782299e80ca42e) | ||
10 | |||
11 | Upstream-Status: Backport [https://github.com/python/cpython/commit/386c72d9928c51aa2c855ce592bd8022da3b407f] | ||
12 | Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | --- | ||
15 | .../next/Library/2024-01-23-21-20-40.gh-issue-114492.vKxl5o.rst | 2 ++ | ||
16 | 1 file changed, 2 insertions(+) | ||
17 | create mode 100644 Misc/NEWS.d/next/Library/2024-01-23-21-20-40.gh-issue-114492.vKxl5o.rst | ||
18 | |||
19 | diff --git a/Misc/NEWS.d/next/Library/2024-01-23-21-20-40.gh-issue-114492.vKxl5o.rst b/Misc/NEWS.d/next/Library/2024-01-23-21-20-40.gh-issue-114492.vKxl5o.rst | ||
20 | new file mode 100644 | ||
21 | index 0000000..8df8299 | ||
22 | --- /dev/null | ||
23 | +++ b/Misc/NEWS.d/next/Library/2024-01-23-21-20-40.gh-issue-114492.vKxl5o.rst | ||
24 | @@ -0,0 +1,2 @@ | ||
25 | +Make the result of :func:`termios.tcgetattr` reproducible on Alpine Linux. | ||
26 | +Previously it could leave a random garbage in some fields. | ||
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 index bfddc1ad52..bbeabe4389 100644 --- 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 | |||
@@ -1,4 +1,4 @@ | |||
1 | From 5f9eea2c4f8716830f6c8855a3e10872119fae32 Mon Sep 17 00:00:00 2001 | 1 | From ababc7b1db8c406910766e11cdd04cbef7a706c9 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: Mon, 22 Oct 2018 15:19:51 +0800 | 3 | Date: Mon, 22 Oct 2018 15:19:51 +0800 |
4 | Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler | 4 | Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler |
@@ -14,40 +14,39 @@ x86_64-wrs-linux-gcc: error: unrecognized command line option '-fp-model' | |||
14 | Here use cc_basename to replace CC for checking compiler to avoid such | 14 | Here use cc_basename to replace CC for checking compiler to avoid such |
15 | kind of issue. | 15 | kind of issue. |
16 | 16 | ||
17 | Upstream-Status: Pending | 17 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/96399] |
18 | 18 | ||
19 | Signed-off-by: Li Zhou <li.zhou@windriver.com> | 19 | Signed-off-by: Li Zhou <li.zhou@windriver.com> |
20 | 20 | ||
21 | patch originally from Li Zhou, I just rework it to new version | 21 | patch originally from Li Zhou, I just rework it to new version |
22 | 22 | ||
23 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | 23 | Signed-off-by: Changqing Li <changqing.li@windriver.com> |
24 | |||
25 | --- | 24 | --- |
26 | configure.ac | 19 ++++++++++--------- | 25 | configure.ac | 19 ++++++++++--------- |
27 | 1 file changed, 10 insertions(+), 9 deletions(-) | 26 | 1 file changed, 10 insertions(+), 9 deletions(-) |
28 | 27 | ||
29 | diff --git a/configure.ac b/configure.ac | 28 | diff --git a/configure.ac b/configure.ac |
30 | index d60f052..e491e24 100644 | 29 | index 384718d..5a1d58b 100644 |
31 | --- a/configure.ac | 30 | --- a/configure.ac |
32 | +++ b/configure.ac | 31 | +++ b/configure.ac |
33 | @@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h) | 32 | @@ -137,6 +137,7 @@ AC_CONFIG_HEADERS([pyconfig.h]) |
34 | AC_CANONICAL_HOST | 33 | AC_CANONICAL_HOST |
35 | AC_SUBST(build) | 34 | AC_SUBST([build]) |
36 | AC_SUBST(host) | 35 | AC_SUBST([host]) |
37 | +LT_INIT | 36 | +LT_INIT |
38 | 37 | ||
39 | # pybuilddir.txt will be created by --generate-posix-vars in the Makefile | 38 | AS_VAR_IF([cross_compiling], [maybe], |
40 | rm -f pybuilddir.txt | 39 | [AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])] |
41 | @@ -689,7 +690,7 @@ AC_MSG_RESULT($with_cxx_main) | 40 | @@ -896,7 +897,7 @@ AC_SUBST([CXX]) |
42 | preset_cxx="$CXX" | 41 | preset_cxx="$CXX" |
43 | if test -z "$CXX" | 42 | if test -z "$CXX" |
44 | then | 43 | then |
45 | - case "$CC" in | 44 | - case "$CC" in |
46 | + case "$cc_basename" in | 45 | + case "$cc_basename" in |
47 | gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;; | 46 | gcc) AC_PATH_TOOL([CXX], [g++], [g++], [notfound]) ;; |
48 | cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;; | 47 | cc) AC_PATH_TOOL([CXX], [c++], [c++], [notfound]) ;; |
49 | clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;; | 48 | clang|*/clang) AC_PATH_TOOL([CXX], [clang++], [clang++], [notfound]) ;; |
50 | @@ -975,7 +976,7 @@ rmdir CaseSensitiveTestDir | 49 | @@ -1328,7 +1329,7 @@ rmdir CaseSensitiveTestDir |
51 | 50 | ||
52 | case $ac_sys_system in | 51 | case $ac_sys_system in |
53 | hp*|HP*) | 52 | hp*|HP*) |
@@ -56,16 +55,16 @@ index d60f052..e491e24 100644 | |||
56 | cc|*/cc) CC="$CC -Ae";; | 55 | cc|*/cc) CC="$CC -Ae";; |
57 | esac;; | 56 | esac;; |
58 | esac | 57 | esac |
59 | @@ -1366,7 +1367,7 @@ else | 58 | @@ -1854,7 +1855,7 @@ esac |
60 | fi], | 59 | ], |
61 | [AC_MSG_RESULT(no)]) | 60 | [AC_MSG_RESULT([no])]) |
62 | if test "$Py_LTO" = 'true' ; then | 61 | if test "$Py_LTO" = 'true' ; then |
63 | - case $CC in | 62 | - case $CC in |
64 | + case $cc_basename in | 63 | + case $cc_basename in |
65 | *clang*) | 64 | *clang*) |
66 | AC_SUBST(LLVM_AR) | 65 | LDFLAGS_NOLTO="-fno-lto" |
67 | AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) | 66 | dnl Clang linker requires -flto in order to link objects with LTO information. |
68 | @@ -1456,7 +1457,7 @@ then | 67 | @@ -1983,7 +1984,7 @@ then |
69 | fi | 68 | fi |
70 | fi | 69 | fi |
71 | LLVM_PROF_ERR=no | 70 | LLVM_PROF_ERR=no |
@@ -74,7 +73,7 @@ index d60f052..e491e24 100644 | |||
74 | *clang*) | 73 | *clang*) |
75 | # Any changes made here should be reflected in the GCC+Darwin case below | 74 | # Any changes made here should be reflected in the GCC+Darwin case below |
76 | PGO_PROF_GEN_FLAG="-fprofile-instr-generate" | 75 | PGO_PROF_GEN_FLAG="-fprofile-instr-generate" |
77 | @@ -1517,7 +1518,7 @@ esac | 76 | @@ -2147,7 +2148,7 @@ AC_MSG_RESULT([$BOLT_APPLY_FLAGS]) |
78 | # compiler and platform. BASECFLAGS tweaks need to be made even if the | 77 | # compiler and platform. BASECFLAGS tweaks need to be made even if the |
79 | # user set OPT. | 78 | # user set OPT. |
80 | 79 | ||
@@ -83,25 +82,25 @@ index d60f052..e491e24 100644 | |||
83 | *clang*) | 82 | *clang*) |
84 | cc_is_clang=1 | 83 | cc_is_clang=1 |
85 | ;; | 84 | ;; |
86 | @@ -1653,7 +1654,7 @@ yes) | 85 | @@ -2419,7 +2420,7 @@ yes) |
87 | 86 | ||
88 | # ICC doesn't recognize the option, but only emits a warning | 87 | # 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? | 88 | ## XXX does it emit an unused result warning and can it be disabled? |
90 | - case "$CC" in | 89 | - AS_CASE([$CC], |
91 | + case "$cc_basename" in | 90 | + AS_CASE([$cc_basename], |
92 | *icc*) | 91 | [*icc*], [ac_cv_disable_unused_result_warning=no] |
93 | ac_cv_disable_unused_result_warning=no | 92 | [PY_CHECK_CC_WARNING([disable], [unused-result])]) |
94 | ;; | 93 | AS_VAR_IF([ac_cv_disable_unused_result_warning], [yes], |
95 | @@ -1993,7 +1994,7 @@ yes) | 94 | @@ -2665,7 +2666,7 @@ yes) |
96 | ;; | 95 | ;; |
97 | esac | 96 | esac |
98 | 97 | ||
99 | -case "$CC" in | 98 | -case "$CC" in |
100 | +case "$cc_basename" in | 99 | +case "$cc_basename" in |
101 | *icc*) | 100 | *mpicc*) |
102 | # ICC needs -fp-model strict or floats behave badly | 101 | CFLAGS_NODIST="$CFLAGS_NODIST" |
103 | CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict" | 102 | ;; |
104 | @@ -2765,7 +2766,7 @@ then | 103 | @@ -3482,7 +3483,7 @@ then |
105 | then | 104 | then |
106 | LINKFORSHARED="-Wl,--export-dynamic" | 105 | LINKFORSHARED="-Wl,--export-dynamic" |
107 | fi;; | 106 | fi;; |
@@ -110,12 +109,12 @@ index d60f052..e491e24 100644 | |||
110 | *gcc*) | 109 | *gcc*) |
111 | if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null | 110 | if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null |
112 | then | 111 | then |
113 | @@ -5507,7 +5508,7 @@ if test "$have_gcc_asm_for_x87" = yes; then | 112 | @@ -6803,7 +6804,7 @@ if test "$ac_cv_gcc_asm_for_x87" = yes; then |
114 | # Some versions of gcc miscompile inline asm: | 113 | # Some versions of gcc miscompile inline asm: |
115 | # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 | 114 | # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 |
116 | # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html | 115 | # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html |
117 | - case $CC in | 116 | - case $CC in |
118 | + case $cc_basename in | 117 | + case $cc_basename in |
119 | *gcc*) | 118 | *gcc*) |
120 | AC_MSG_CHECKING(for gcc ipa-pure-const bug) | 119 | AC_MSG_CHECKING([for gcc ipa-pure-const bug]) |
121 | saved_cflags="$CFLAGS" | 120 | 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..2d7bca6a77 --- /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 217cea231462e7703e8c9ea39c0a6833f799a420 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 4d03c46..b329b7a 100644 | ||
20 | --- a/Lib/test/test_builtin.py | ||
21 | +++ b/Lib/test/test_builtin.py | ||
22 | @@ -2326,6 +2326,7 @@ class PtyTests(unittest.TestCase): | ||
23 | # Check stdin/stdout error handler is used when invoking PyOS_Readline() | ||
24 | self.check_input_tty("prompté", b"quux\xe9", "ascii") | ||
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..fc52fdac26 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From a5d429a0e1a4809c1ded7be7e45dcabeb82c53d8 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 | --- | ||
13 | Lib/sysconfig.py | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py | ||
17 | index 122d441..79c0510 100644 | ||
18 | --- a/Lib/sysconfig.py | ||
19 | +++ b/Lib/sysconfig.py | ||
20 | @@ -28,7 +28,7 @@ _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 | + 'purelib': '{base}/{platlibdir}/python{py_version_short}/site-packages', | ||
26 | 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', | ||
27 | 'include': | ||
28 | '{installed_base}/include/python{py_version_short}{abiflags}', | ||
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..b4fe946cba --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From b64c131a576a4b4f821514e711ab91b1394fb4ff 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 | --- | ||
15 | Lib/test/test_ctypes/test_find.py | 2 ++ | ||
16 | 1 file changed, 2 insertions(+) | ||
17 | |||
18 | diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py | ||
19 | index 1ff9d01..59def26 100644 | ||
20 | --- a/Lib/test/test_ctypes/test_find.py | ||
21 | +++ b/Lib/test/test_ctypes/test_find.py | ||
22 | @@ -113,10 +113,12 @@ class FindLibraryLinux(unittest.TestCase): | ||
23 | # LD_LIBRARY_PATH) | ||
24 | self.assertEqual(find_library(libname), 'lib%s.so' % libname) | ||
25 | |||
26 | + @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") | ||
27 | def test_find_library_with_gcc(self): | ||
28 | with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None): | ||
29 | self.assertNotEqual(find_library('c'), None) | ||
30 | |||
31 | + @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") | ||
32 | def test_find_library_with_ld(self): | ||
33 | with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \ | ||
34 | unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None): | ||
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..410a9fc7f1 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 ef5728f0af14da5c9f80b0f038fe5bf6d44cb0e9 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,24 @@ 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> |
29 | |||
27 | --- | 30 | --- |
28 | Lib/test/test_locale.py | 2 +- | 31 | Lib/test/test_locale.py | 2 +- |
29 | 1 file changed, 1 insertion(+), 1 deletion(-) | 32 | 1 file changed, 1 insertion(+), 1 deletion(-) |
30 | 33 | ||
31 | diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py | 34 | diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py |
32 | index e2c2178..558d63c 100644 | 35 | index b0d7998..cb12153 100644 |
33 | --- a/Lib/test/test_locale.py | 36 | --- a/Lib/test/test_locale.py |
34 | +++ b/Lib/test/test_locale.py | 37 | +++ b/Lib/test/test_locale.py |
35 | @@ -527,7 +527,7 @@ class TestMiscellaneous(unittest.TestCase): | 38 | @@ -557,7 +557,7 @@ class TestMiscellaneous(unittest.TestCase): |
36 | self.skipTest('test needs Turkish locale') | 39 | self.skipTest('test needs Turkish locale') |
37 | loc = locale.getlocale(locale.LC_CTYPE) | 40 | loc = locale.getlocale(locale.LC_CTYPE) |
38 | if verbose: | 41 | if verbose: |
39 | - print('testing with %a' % (loc,), end=' ', flush=True) | 42 | - print('testing with %a' % (loc,), end=' ', flush=True) |
40 | + print('testing with %a...' % (loc,), end=' ', flush=True) | 43 | + print('testing with %a...' % (loc,), end=' ', flush=True) |
41 | locale.setlocale(locale.LC_CTYPE, loc) | 44 | try: |
42 | self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE)) | 45 | locale.setlocale(locale.LC_CTYPE, loc) |
43 | 46 | except locale.Error as exc: | |
44 | -- | ||
45 | 2.7.4 | ||
46 | |||
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..0d0eb08459 --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From dc69a1afdb3ba619705ff71e14f19ed3142e422f 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 | --- | ||
16 | Lib/test/test_ftplib.py | 1 + | ||
17 | 1 file changed, 1 insertion(+) | ||
18 | |||
19 | diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py | ||
20 | index 2f191ea..dc29346 100644 | ||
21 | --- a/Lib/test/test_ftplib.py | ||
22 | +++ b/Lib/test/test_ftplib.py | ||
23 | @@ -626,6 +626,7 @@ class TestFTPClass(TestCase): | ||
24 | self.client.storbinary('stor', f, rest=r) | ||
25 | self.assertEqual(self.server.handler_instance.rest, str(r)) | ||
26 | |||
27 | + @unittest.skip('timing related test, dependent on load') | ||
28 | def test_storlines(self): | ||
29 | data = RETR_DATA.replace('\r\n', '\n').encode(self.client.encoding) | ||
30 | 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 index e04a91605c..0661249bfd 100644 --- 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 | |||
@@ -1,8 +1,7 @@ | |||
1 | From 863c09f640a5dfd33ff22915b0d5fee7bc5df70a Mon Sep 17 00:00:00 2001 | 1 | From d0205c60d08f51d84bd8ddc07a57e8c71710fdad Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex@linutronix.de> |
3 | Date: Sun, 16 Feb 2020 17:50:25 +0100 | 3 | Date: Fri, 17 Nov 2023 14:16:40 +0100 |
4 | Subject: [PATCH] configure.ac, setup.py: do not add a curses include path from | 4 | Subject: [PATCH] configure.ac: do not add a curses include path from the host |
5 | the host | ||
6 | 5 | ||
7 | This leads to host contamination, and particularly can cause | 6 | This leads to host contamination, and particularly can cause |
8 | curses modules to fail at runtime if the host curses is configured | 7 | curses modules to fail at runtime if the host curses is configured |
@@ -13,16 +12,15 @@ Upstream-Status: Inappropriate [oe-core specific] | |||
13 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 12 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
14 | --- | 13 | --- |
15 | configure.ac | 6 ------ | 14 | configure.ac | 6 ------ |
16 | setup.py | 2 -- | 15 | 1 file changed, 6 deletions(-) |
17 | 2 files changed, 8 deletions(-) | ||
18 | 16 | ||
19 | diff --git a/configure.ac b/configure.ac | 17 | diff --git a/configure.ac b/configure.ac |
20 | index 915f475..c911011 100644 | 18 | index c49cd4f..affdedf 100644 |
21 | --- a/configure.ac | 19 | --- a/configure.ac |
22 | +++ b/configure.ac | 20 | +++ b/configure.ac |
23 | @@ -4828,12 +4828,6 @@ then | 21 | @@ -6508,12 +6508,6 @@ AS_VAR_IF([have_panel], [no], [ |
24 | [Define if you have struct stat.st_mtimensec]) | 22 | AC_MSG_RESULT([$have_panel (CFLAGS: $PANEL_CFLAGS, LIBS: $PANEL_LIBS)]) |
25 | fi | 23 | ]) |
26 | 24 | ||
27 | -# first curses header check | 25 | -# first curses header check |
28 | -ac_save_cppflags="$CPPFLAGS" | 26 | -ac_save_cppflags="$CPPFLAGS" |
@@ -30,19 +28,6 @@ index 915f475..c911011 100644 | |||
30 | - CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" | 28 | - CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" |
31 | -fi | 29 | -fi |
32 | - | 30 | - |
33 | AC_CHECK_HEADERS(curses.h ncurses.h) | ||
34 | |||
35 | # On Solaris, term.h requires curses.h | 31 | # On Solaris, term.h requires curses.h |
36 | diff --git a/setup.py b/setup.py | 32 | AC_CHECK_HEADERS([term.h], [], [], [ |
37 | index b0f1541..7208cd0 100644 | 33 | #ifdef HAVE_CURSES_H |
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 index 6c4ba54320..8262c88e73 100644 --- a/meta/recipes-devtools/python/python3/cgi_py.patch +++ b/meta/recipes-devtools/python/python3/cgi_py.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 62336285cba38017b35cb761c03f0c7e80a671a3 Mon Sep 17 00:00:00 2001 | 1 | From a56778372fe8dc7c42f5ffd911d89498c22dd064 Mon Sep 17 00:00:00 2001 |
2 | From: Mark Hatle <mark.hatle@windriver.com> | 2 | From: Mark Hatle <mark.hatle@windriver.com> |
3 | Date: Wed, 21 Sep 2011 20:55:33 -0500 | 3 | Date: Wed, 21 Sep 2011 20:55:33 -0500 |
4 | Subject: [PATCH] Lib/cgi.py: Update the script as mentioned in the comment | 4 | Subject: [PATCH] Lib/cgi.py: Update the script as mentioned in the comment |
@@ -12,7 +12,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | |||
12 | 1 file changed, 1 insertion(+), 10 deletions(-) | 12 | 1 file changed, 1 insertion(+), 10 deletions(-) |
13 | 13 | ||
14 | diff --git a/Lib/cgi.py b/Lib/cgi.py | 14 | diff --git a/Lib/cgi.py b/Lib/cgi.py |
15 | index 8cf6687..094c7b4 100755 | 15 | index 8787567..ebe8652 100755 |
16 | --- a/Lib/cgi.py | 16 | --- a/Lib/cgi.py |
17 | +++ b/Lib/cgi.py | 17 | +++ b/Lib/cgi.py |
18 | @@ -1,13 +1,4 @@ | 18 | @@ -1,13 +1,4 @@ |
diff --git a/meta/recipes-devtools/python/python3/create_manifest3.py b/meta/recipes-devtools/python/python3/create_manifest3.py index 4da02a2991..045240ea0b 100644 --- a/meta/recipes-devtools/python/python3/create_manifest3.py +++ b/meta/recipes-devtools/python/python3/create_manifest3.py | |||
@@ -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 index d789ab57d4..2c4aef0511 100644 --- a/meta/recipes-devtools/python/python3/crosspythonpath.patch +++ b/meta/recipes-devtools/python/python3/crosspythonpath.patch | |||
@@ -1,4 +1,8 @@ | |||
1 | configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD | 1 | From 5b66463c10fec1440e977d5a21a0167862d6d79c Mon Sep 17 00:00:00 2001 |
2 | From: Ricardo Ribalda <ricardo@ribalda.com> | ||
3 | Date: Tue, 18 Nov 2014 03:35:33 -0500 | ||
4 | Subject: [PATCH] configure.ac: add CROSSPYTHONPATH into PYTHONPATH for | ||
5 | PYTHON_FOR_BUILD | ||
2 | 6 | ||
3 | When building x86->x86 the system will try to execute .so and related items | 7 | 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 | 8 | from the default PYTHONPATH. This will fail if the target CPU contains |
@@ -10,16 +14,21 @@ Upstream-Status: Inappropriate [OE-Core integration specific] | |||
10 | Credits-to: Mark Hatle <mark.hatle@windriver.com> | 14 | Credits-to: Mark Hatle <mark.hatle@windriver.com> |
11 | Credits-to: Jackie Huang <jackie.huang@windriver.com> | 15 | Credits-to: Jackie Huang <jackie.huang@windriver.com> |
12 | Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com> | 16 | Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com> |
17 | |||
18 | --- | ||
19 | configure.ac | 2 +- | ||
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
21 | |||
13 | diff --git a/configure.ac b/configure.ac | 22 | diff --git a/configure.ac b/configure.ac |
14 | index 4ab19a6..7036a53 100644 | 23 | index cb9e198..d81c19a 100644 |
15 | --- a/configure.ac | 24 | --- a/configure.ac |
16 | +++ b/configure.ac | 25 | +++ b/configure.ac |
17 | @@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then | 26 | @@ -165,7 +165,7 @@ AC_ARG_WITH([build-python], |
18 | AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) | 27 | dnl Build Python interpreter is used for regeneration and freezing. |
19 | fi | 28 | ac_cv_prog_PYTHON_FOR_REGEN=$with_build_python |
20 | AC_MSG_RESULT($interp) | 29 | PYTHON_FOR_FREEZE="$with_build_python" |
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 | 30 | - 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) '$with_build_python |
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 | 31 | + 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) '$with_build_python |
23 | fi | 32 | AC_MSG_RESULT([$with_build_python]) |
24 | elif test "$cross_compiling" = maybe; then | 33 | ], [ |
25 | AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) | 34 | AS_VAR_IF([cross_compiling], [yes], |
diff --git a/meta/recipes-devtools/python/python3/deterministic_imports.patch b/meta/recipes-devtools/python/python3/deterministic_imports.patch new file mode 100644 index 0000000000..104df94964 --- /dev/null +++ b/meta/recipes-devtools/python/python3/deterministic_imports.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From 039d5e652796b55f1132afa568c7432b6ed89afd Mon Sep 17 00:00:00 2001 | ||
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
3 | Date: Fri, 27 May 2022 17:05:44 +0100 | ||
4 | Subject: [PATCH] python3: Ensure stale empty python module directories don't | ||
5 | |||
6 | There are two issues here. Firstly, the modules are accessed in on disk order. This | ||
7 | means behaviour seen on one system might not reproduce on another and is a real headache. | ||
8 | |||
9 | Secondly, empty directories left behind by previous modules might be looked at. This | ||
10 | has caused a long string of different issues for us. | ||
11 | |||
12 | As a result, patch this to a behaviour which works for us. | ||
13 | |||
14 | Upstream-Status: Pending [need to talk to upstream to see if they'll take one or both fixes] | ||
15 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
16 | |||
17 | --- | ||
18 | Lib/importlib/metadata/__init__.py | 9 ++++++++- | ||
19 | 1 file changed, 8 insertions(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py | ||
22 | index 82e0ce1..969cac4 100644 | ||
23 | --- a/Lib/importlib/metadata/__init__.py | ||
24 | +++ b/Lib/importlib/metadata/__init__.py | ||
25 | @@ -710,7 +710,14 @@ class Lookup: | ||
26 | self.infos = FreezableDefaultDict(list) | ||
27 | self.eggs = FreezableDefaultDict(list) | ||
28 | |||
29 | - for child in path.children(): | ||
30 | + for child in sorted(path.children()): | ||
31 | + childpath = pathlib.Path(path.root, child) | ||
32 | + try: | ||
33 | + if childpath.is_dir() and not any(childpath.iterdir()): | ||
34 | + # Empty directories aren't interesting | ||
35 | + continue | ||
36 | + except PermissionError: | ||
37 | + continue | ||
38 | low = child.lower() | ||
39 | if low.endswith((".dist-info", ".egg-info")): | ||
40 | # rpartition is faster than splitext and suitable for this purpose. | ||
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..c1b20703e6 --- /dev/null +++ b/meta/recipes-devtools/python/python3/makerace.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 9f827c29adbe656af3c8fc963fdd8f47aec0c442 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 381feb0..77bf09a 100644 | ||
21 | --- a/Makefile.pre.in | ||
22 | +++ b/Makefile.pre.in | ||
23 | @@ -2250,7 +2250,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..46092d4004 100644 --- a/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/meta/recipes-devtools/python/python3/python3-manifest.json | |||
@@ -152,6 +152,23 @@ | |||
152 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/wave.*.pyc" | 152 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/wave.*.pyc" |
153 | ] | 153 | ] |
154 | }, | 154 | }, |
155 | "cgitb": { | ||
156 | "summary": "Special exception handler for Python scripts", | ||
157 | "rdepends": [ | ||
158 | "core", | ||
159 | "crypt", | ||
160 | "html", | ||
161 | "io", | ||
162 | "math", | ||
163 | "pydoc" | ||
164 | ], | ||
165 | "files": [ | ||
166 | "${libdir}/python${PYTHON_MAJMIN}/cgitb.py" | ||
167 | ], | ||
168 | "cached": [ | ||
169 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cgitb.*.pyc" | ||
170 | ] | ||
171 | }, | ||
155 | "codecs": { | 172 | "codecs": { |
156 | "summary": "Python codec", | 173 | "summary": "Python codec", |
157 | "rdepends": [ | 174 | "rdepends": [ |
@@ -189,12 +206,12 @@ | |||
189 | "files": [ | 206 | "files": [ |
190 | "${libdir}/python${PYTHON_MAJMIN}/gzip.py", | 207 | "${libdir}/python${PYTHON_MAJMIN}/gzip.py", |
191 | "${libdir}/python${PYTHON_MAJMIN}/tarfile.py", | 208 | "${libdir}/python${PYTHON_MAJMIN}/tarfile.py", |
192 | "${libdir}/python${PYTHON_MAJMIN}/zipfile.py" | 209 | "${libdir}/python${PYTHON_MAJMIN}/zipfile", |
210 | "${libdir}/python${PYTHON_MAJMIN}/zipfile/_path" | ||
193 | ], | 211 | ], |
194 | "cached": [ | 212 | "cached": [ |
195 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc", | 213 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc", |
196 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc", | 214 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc" |
197 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipfile.*.pyc" | ||
198 | ] | 215 | ] |
199 | }, | 216 | }, |
200 | "core": { | 217 | "core": { |
@@ -232,6 +249,7 @@ | |||
232 | "${libdir}/python${PYTHON_MAJMIN}/copy.py", | 249 | "${libdir}/python${PYTHON_MAJMIN}/copy.py", |
233 | "${libdir}/python${PYTHON_MAJMIN}/copyreg.py", | 250 | "${libdir}/python${PYTHON_MAJMIN}/copyreg.py", |
234 | "${libdir}/python${PYTHON_MAJMIN}/csv.py", | 251 | "${libdir}/python${PYTHON_MAJMIN}/csv.py", |
252 | "${libdir}/python${PYTHON_MAJMIN}/dataclasses.py", | ||
235 | "${libdir}/python${PYTHON_MAJMIN}/dis.py", | 253 | "${libdir}/python${PYTHON_MAJMIN}/dis.py", |
236 | "${libdir}/python${PYTHON_MAJMIN}/encodings", | 254 | "${libdir}/python${PYTHON_MAJMIN}/encodings", |
237 | "${libdir}/python${PYTHON_MAJMIN}/encodings/aliases.py", | 255 | "${libdir}/python${PYTHON_MAJMIN}/encodings/aliases.py", |
@@ -246,6 +264,7 @@ | |||
246 | "${libdir}/python${PYTHON_MAJMIN}/heapq.py", | 264 | "${libdir}/python${PYTHON_MAJMIN}/heapq.py", |
247 | "${libdir}/python${PYTHON_MAJMIN}/imp.py", | 265 | "${libdir}/python${PYTHON_MAJMIN}/imp.py", |
248 | "${libdir}/python${PYTHON_MAJMIN}/importlib", | 266 | "${libdir}/python${PYTHON_MAJMIN}/importlib", |
267 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_abc.py", | ||
249 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap.py", | 268 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap.py", |
250 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap_external.py", | 269 | "${libdir}/python${PYTHON_MAJMIN}/importlib/_bootstrap_external.py", |
251 | "${libdir}/python${PYTHON_MAJMIN}/importlib/abc.py", | 270 | "${libdir}/python${PYTHON_MAJMIN}/importlib/abc.py", |
@@ -253,6 +272,7 @@ | |||
253 | "${libdir}/python${PYTHON_MAJMIN}/importlib/util.py", | 272 | "${libdir}/python${PYTHON_MAJMIN}/importlib/util.py", |
254 | "${libdir}/python${PYTHON_MAJMIN}/inspect.py", | 273 | "${libdir}/python${PYTHON_MAJMIN}/inspect.py", |
255 | "${libdir}/python${PYTHON_MAJMIN}/io.py", | 274 | "${libdir}/python${PYTHON_MAJMIN}/io.py", |
275 | "${libdir}/python${PYTHON_MAJMIN}/ipaddress.py", | ||
256 | "${libdir}/python${PYTHON_MAJMIN}/keyword.py", | 276 | "${libdir}/python${PYTHON_MAJMIN}/keyword.py", |
257 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/_struct.*.so", | 277 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/_struct.*.so", |
258 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/binascii.*.so", | 278 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/binascii.*.so", |
@@ -266,6 +286,7 @@ | |||
266 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so", | 286 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so", |
267 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so", | 287 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so", |
268 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so", | 288 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so", |
289 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_typing.*.so", | ||
269 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so", | 290 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so", |
270 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so", | 291 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so", |
271 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so", | 292 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so", |
@@ -290,7 +311,11 @@ | |||
290 | "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py", | 311 | "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py", |
291 | "${libdir}/python${PYTHON_MAJMIN}/platform.py", | 312 | "${libdir}/python${PYTHON_MAJMIN}/platform.py", |
292 | "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", | 313 | "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", |
293 | "${libdir}/python${PYTHON_MAJMIN}/re.py", | 314 | "${libdir}/python${PYTHON_MAJMIN}/re", |
315 | "${libdir}/python${PYTHON_MAJMIN}/re/_casefix.py", | ||
316 | "${libdir}/python${PYTHON_MAJMIN}/re/_compiler.py", | ||
317 | "${libdir}/python${PYTHON_MAJMIN}/re/_constants.py", | ||
318 | "${libdir}/python${PYTHON_MAJMIN}/re/_parser.py", | ||
294 | "${libdir}/python${PYTHON_MAJMIN}/reprlib.py", | 319 | "${libdir}/python${PYTHON_MAJMIN}/reprlib.py", |
295 | "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", | 320 | "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", |
296 | "${libdir}/python${PYTHON_MAJMIN}/runpy.py", | 321 | "${libdir}/python${PYTHON_MAJMIN}/runpy.py", |
@@ -319,6 +344,7 @@ | |||
319 | "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py", | 344 | "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py", |
320 | "${libdir}/python${PYTHON_MAJMIN}/warnings.py", | 345 | "${libdir}/python${PYTHON_MAJMIN}/warnings.py", |
321 | "${libdir}/python${PYTHON_MAJMIN}/weakref.py", | 346 | "${libdir}/python${PYTHON_MAJMIN}/weakref.py", |
347 | "${libdir}/python${PYTHON_MAJMIN}/zipimport.py", | ||
322 | "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]" | 348 | "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]" |
323 | ], | 349 | ], |
324 | "cached": [ | 350 | "cached": [ |
@@ -343,6 +369,7 @@ | |||
343 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copy.*.pyc", | 369 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copy.*.pyc", |
344 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copyreg.*.pyc", | 370 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/copyreg.*.pyc", |
345 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc", | 371 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc", |
372 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dataclasses.*.pyc", | ||
346 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc", | 373 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc", |
347 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc", | 374 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc", |
348 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc", | 375 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc", |
@@ -354,6 +381,7 @@ | |||
354 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imp.*.pyc", | 381 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imp.*.pyc", |
355 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/inspect.*.pyc", | 382 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/inspect.*.pyc", |
356 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/io.*.pyc", | 383 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/io.*.pyc", |
384 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ipaddress.*.pyc", | ||
357 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc", | 385 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc", |
358 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc", | 386 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc", |
359 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc", | 387 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc", |
@@ -400,9 +428,15 @@ | |||
400 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/latin_1.*.pyc", | 428 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/latin_1.*.pyc", |
401 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/utf_8.*.pyc", | 429 | "${libdir}/python${PYTHON_MAJMIN}/encodings/__pycache__/utf_8.*.pyc", |
402 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__", | 430 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__", |
431 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/_abc.*.pyc", | ||
403 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc", | 432 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc", |
404 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc", | 433 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc", |
405 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc", | 434 | "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc", |
435 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__", | ||
436 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_casefix.*.pyc", | ||
437 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_compiler.*.pyc", | ||
438 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_constants.*.pyc", | ||
439 | "${libdir}/python${PYTHON_MAJMIN}/re/__pycache__/_parser.*.pyc", | ||
406 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", | 440 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", |
407 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc" | 441 | "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc" |
408 | ] | 442 | ] |
@@ -422,9 +456,8 @@ | |||
422 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so", | 456 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so", |
423 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so", | 457 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so", |
424 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so", | 458 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so", |
425 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha256.*.so", | 459 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha2.*.so", |
426 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so", | 460 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so" |
427 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha512.*.so" | ||
428 | ], | 461 | ], |
429 | "cached": [ | 462 | "cached": [ |
430 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/crypt.*.pyc", | 463 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/crypt.*.pyc", |
@@ -519,8 +552,7 @@ | |||
519 | "${libdir}/pkgconfig" | 552 | "${libdir}/pkgconfig" |
520 | ], | 553 | ], |
521 | "rdepends": [ | 554 | "rdepends": [ |
522 | "core", | 555 | "core" |
523 | "distutils" | ||
524 | ], | 556 | ], |
525 | "summary": "Python development package" | 557 | "summary": "Python development package" |
526 | }, | 558 | }, |
@@ -536,27 +568,6 @@ | |||
536 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc" | 568 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/difflib.*.pyc" |
537 | ] | 569 | ] |
538 | }, | 570 | }, |
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": { | 571 | "doctest": { |
561 | "summary": "Python framework for running examples in docstrings", | 572 | "summary": "Python framework for running examples in docstrings", |
562 | "rdepends": [ | 573 | "rdepends": [ |
@@ -595,6 +606,16 @@ | |||
595 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc" | 606 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc" |
596 | ] | 607 | ] |
597 | }, | 608 | }, |
609 | "ensurepip": { | ||
610 | "summary": "Support for bootstrapping the pip installer", | ||
611 | "rdepends": [ | ||
612 | "core" | ||
613 | ], | ||
614 | "files": [ | ||
615 | "${libdir}/python${PYTHON_MAJMIN}/ensurepip/" | ||
616 | ], | ||
617 | "cached": [] | ||
618 | }, | ||
598 | "fcntl": { | 619 | "fcntl": { |
599 | "summary": "Python's fcntl interface", | 620 | "summary": "Python's fcntl interface", |
600 | "rdepends": [ | 621 | "rdepends": [ |
@@ -621,12 +642,9 @@ | |||
621 | "core" | 642 | "core" |
622 | ], | 643 | ], |
623 | "files": [ | 644 | "files": [ |
624 | "${libdir}/python${PYTHON_MAJMIN}/formatter.py", | ||
625 | "${libdir}/python${PYTHON_MAJMIN}/html" | 645 | "${libdir}/python${PYTHON_MAJMIN}/html" |
626 | ], | 646 | ], |
627 | "cached": [ | 647 | "cached": [] |
628 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/formatter.*.pyc" | ||
629 | ] | ||
630 | }, | 648 | }, |
631 | "idle": { | 649 | "idle": { |
632 | "summary": "Python Integrated Development Environment", | 650 | "summary": "Python Integrated Development Environment", |
@@ -664,7 +682,6 @@ | |||
664 | ], | 682 | ], |
665 | "files": [ | 683 | "files": [ |
666 | "${libdir}/python${PYTHON_MAJMIN}/_pyio.py", | 684 | "${libdir}/python${PYTHON_MAJMIN}/_pyio.py", |
667 | "${libdir}/python${PYTHON_MAJMIN}/ipaddress.py", | ||
668 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_socket.*.so", | 685 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_socket.*.so", |
669 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ssl.*.so", | 686 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_ssl.*.so", |
670 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/termios.*.so", | 687 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/termios.*.so", |
@@ -675,7 +692,6 @@ | |||
675 | ], | 692 | ], |
676 | "cached": [ | 693 | "cached": [ |
677 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pyio.*.pyc", | 694 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_pyio.*.pyc", |
678 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ipaddress.*.pyc", | ||
679 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pipes.*.pyc", | 695 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pipes.*.pyc", |
680 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socket.*.pyc", | 696 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/socket.*.pyc", |
681 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ssl.*.pyc", | 697 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ssl.*.pyc", |
@@ -715,7 +731,6 @@ | |||
715 | "crypt", | 731 | "crypt", |
716 | "datetime", | 732 | "datetime", |
717 | "email", | 733 | "email", |
718 | "fcntl", | ||
719 | "io", | 734 | "io", |
720 | "math", | 735 | "math", |
721 | "mime", | 736 | "mime", |
@@ -786,9 +801,9 @@ | |||
786 | "db", | 801 | "db", |
787 | "debugger", | 802 | "debugger", |
788 | "difflib", | 803 | "difflib", |
789 | "distutils", | ||
790 | "doctest", | 804 | "doctest", |
791 | "email", | 805 | "email", |
806 | "ensurepip", | ||
792 | "fcntl", | 807 | "fcntl", |
793 | "html", | 808 | "html", |
794 | "idle", | 809 | "idle", |
@@ -812,21 +827,20 @@ | |||
812 | "pydoc", | 827 | "pydoc", |
813 | "resource", | 828 | "resource", |
814 | "shell", | 829 | "shell", |
815 | "smtpd", | ||
816 | "sqlite3", | 830 | "sqlite3", |
831 | "statistics", | ||
817 | "stringold", | 832 | "stringold", |
818 | "syslog", | 833 | "syslog", |
819 | "terminal", | 834 | "terminal", |
820 | "threading", | 835 | "threading", |
821 | "tkinter", | 836 | "tkinter", |
837 | "tomllib", | ||
822 | "unittest", | 838 | "unittest", |
823 | "unixadmin", | 839 | "unixadmin", |
824 | "venv", | 840 | "venv", |
825 | "xml", | 841 | "xml", |
826 | "xmlrpc" | 842 | "xmlrpc", |
827 | ], | 843 | "zoneinfo" |
828 | "rrecommends": [ | ||
829 | "distutils-windows" | ||
830 | ], | 844 | ], |
831 | "summary": "All Python modules" | 845 | "summary": "All Python modules" |
832 | }, | 846 | }, |
@@ -875,6 +889,7 @@ | |||
875 | "${libdir}/python${PYTHON_MAJMIN}/secrets.py", | 889 | "${libdir}/python${PYTHON_MAJMIN}/secrets.py", |
876 | "${libdir}/python${PYTHON_MAJMIN}/smtplib.py", | 890 | "${libdir}/python${PYTHON_MAJMIN}/smtplib.py", |
877 | "${libdir}/python${PYTHON_MAJMIN}/telnetlib.py", | 891 | "${libdir}/python${PYTHON_MAJMIN}/telnetlib.py", |
892 | "${libdir}/python${PYTHON_MAJMIN}/urllib", | ||
878 | "${libdir}/python${PYTHON_MAJMIN}/uuid.py" | 893 | "${libdir}/python${PYTHON_MAJMIN}/uuid.py" |
879 | ], | 894 | ], |
880 | "cached": [ | 895 | "cached": [ |
@@ -995,14 +1010,12 @@ | |||
995 | ], | 1010 | ], |
996 | "files": [ | 1011 | "files": [ |
997 | "${libdir}/python${PYTHON_MAJMIN}/cProfile.py", | 1012 | "${libdir}/python${PYTHON_MAJMIN}/cProfile.py", |
998 | "${libdir}/python${PYTHON_MAJMIN}/dataclasses.py", | ||
999 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lsprof.*.so", | 1013 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lsprof.*.so", |
1000 | "${libdir}/python${PYTHON_MAJMIN}/profile.py", | 1014 | "${libdir}/python${PYTHON_MAJMIN}/profile.py", |
1001 | "${libdir}/python${PYTHON_MAJMIN}/pstats.py" | 1015 | "${libdir}/python${PYTHON_MAJMIN}/pstats.py" |
1002 | ], | 1016 | ], |
1003 | "cached": [ | 1017 | "cached": [ |
1004 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cProfile.*.pyc", | 1018 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cProfile.*.pyc", |
1005 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dataclasses.*.pyc", | ||
1006 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/profile.*.pyc", | 1019 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/profile.*.pyc", |
1007 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pstats.*.pyc" | 1020 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pstats.*.pyc" |
1008 | ] | 1021 | ] |
@@ -1048,31 +1061,6 @@ | |||
1048 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc" | 1061 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc" |
1049 | ] | 1062 | ] |
1050 | }, | 1063 | }, |
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": { | 1064 | "sqlite3": { |
1077 | "summary": "Python Sqlite3 database support", | 1065 | "summary": "Python Sqlite3 database support", |
1078 | "rdepends": [ | 1066 | "rdepends": [ |
@@ -1085,6 +1073,22 @@ | |||
1085 | ], | 1073 | ], |
1086 | "cached": [] | 1074 | "cached": [] |
1087 | }, | 1075 | }, |
1076 | "statistics": { | ||
1077 | "summary": "Basic statistics module", | ||
1078 | "rdepends": [ | ||
1079 | "core", | ||
1080 | "crypt", | ||
1081 | "math", | ||
1082 | "numbers" | ||
1083 | ], | ||
1084 | "files": [ | ||
1085 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_statistics.*.so", | ||
1086 | "${libdir}/python${PYTHON_MAJMIN}/statistics.py" | ||
1087 | ], | ||
1088 | "cached": [ | ||
1089 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/statistics.*.pyc" | ||
1090 | ] | ||
1091 | }, | ||
1088 | "stringold": { | 1092 | "stringold": { |
1089 | "summary": "Python string APIs [deprecated]", | 1093 | "summary": "Python string APIs [deprecated]", |
1090 | "rdepends": [ | 1094 | "rdepends": [ |
@@ -1143,11 +1147,33 @@ | |||
1143 | "core" | 1147 | "core" |
1144 | ], | 1148 | ], |
1145 | "files": [ | 1149 | "files": [ |
1146 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so", | 1150 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so", |
1147 | "${libdir}/python${PYTHON_MAJMIN}/tkinter" | 1151 | "${libdir}/python${PYTHON_MAJMIN}/tkinter" |
1148 | ], | 1152 | ], |
1149 | "cached": [] | 1153 | "cached": [] |
1150 | }, | 1154 | }, |
1155 | "tomllib": { | ||
1156 | "summary": "Provides an interface for parsing TOML", | ||
1157 | "rdepends": [ | ||
1158 | "core" | ||
1159 | ], | ||
1160 | "files": [ | ||
1161 | "${libdir}/python${PYTHON_MAJMIN}/tomllib/" | ||
1162 | ], | ||
1163 | "cached": [] | ||
1164 | }, | ||
1165 | "turtle": { | ||
1166 | "summary": "Turtle graphics is a popular way for introducing programming to kids.", | ||
1167 | "rdepends": [ | ||
1168 | "tkinter" | ||
1169 | ], | ||
1170 | "files": [ | ||
1171 | "${libdir}/python${PYTHON_MAJMIN}/turtle.py" | ||
1172 | ], | ||
1173 | "cached": [ | ||
1174 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/turtle.*.pyc" | ||
1175 | ] | ||
1176 | }, | ||
1151 | "unittest": { | 1177 | "unittest": { |
1152 | "summary": "Python unit testing framework", | 1178 | "summary": "Python unit testing framework", |
1153 | "rdepends": [ | 1179 | "rdepends": [ |
@@ -1215,7 +1241,6 @@ | |||
1215 | "crypt", | 1241 | "crypt", |
1216 | "datetime", | 1242 | "datetime", |
1217 | "email", | 1243 | "email", |
1218 | "fcntl", | ||
1219 | "html", | 1244 | "html", |
1220 | "io", | 1245 | "io", |
1221 | "math", | 1246 | "math", |
@@ -1232,5 +1257,30 @@ | |||
1232 | "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__" | 1257 | "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__" |
1233 | ], | 1258 | ], |
1234 | "cached": [] | 1259 | "cached": [] |
1260 | }, | ||
1261 | "zipapp": { | ||
1262 | "summary": "Tools to manage the creation of zip files containing Python code", | ||
1263 | "rdepends": [ | ||
1264 | "compression", | ||
1265 | "core" | ||
1266 | ], | ||
1267 | "files": [ | ||
1268 | "${libdir}/python${PYTHON_MAJMIN}/zipapp.py" | ||
1269 | ], | ||
1270 | "cached": [ | ||
1271 | "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipapp.*.pyc" | ||
1272 | ] | ||
1273 | }, | ||
1274 | "zoneinfo": { | ||
1275 | "summary": "IANA time zone support", | ||
1276 | "rdepends": [ | ||
1277 | "core", | ||
1278 | "datetime" | ||
1279 | ], | ||
1280 | "files": [ | ||
1281 | "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_zoneinfo.*.so", | ||
1282 | "${libdir}/python${PYTHON_MAJMIN}/zoneinfo" | ||
1283 | ], | ||
1284 | "cached": [] | ||
1235 | } | 1285 | } |
1236 | } | 1286 | } |
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_3.12.3.bb b/meta/recipes-devtools/python/python3_3.12.3.bb new file mode 100644 index 0000000000..b49a58a101 --- /dev/null +++ b/meta/recipes-devtools/python/python3_3.12.3.bb | |||
@@ -0,0 +1,470 @@ | |||
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=fcf6b249c2641540219a727f35d8d2c2" | ||
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-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ | ||
18 | file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \ | ||
19 | file://crosspythonpath.patch \ | ||
20 | file://0001-test_locale.py-correct-the-test-output-format.patch \ | ||
21 | file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ | ||
22 | file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \ | ||
23 | file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \ | ||
24 | file://makerace.patch \ | ||
25 | file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ | ||
26 | file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ | ||
27 | file://deterministic_imports.patch \ | ||
28 | file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ | ||
29 | file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ | ||
30 | file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ | ||
31 | file://0001-test_storlines-skip-due-to-load-variability.patch \ | ||
32 | file://0001-gh-114492-Initialize-struct-termios-before-calling-t.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] = "56bfef1fdfc1221ce6720e43a661e3eb41785dd914ce99698d8c7896af4bdaa1" | ||
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.12" | ||
55 | |||
56 | S = "${WORKDIR}/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 | |||
69 | DEPENDS = "bzip2-replacement-native expat libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux-libuuid libtirpc libnsl2 autoconf-archive-native ncurses" | ||
70 | DEPENDS:append:class-target = " python3-native" | ||
71 | DEPENDS:append:class-nativesdk = " python3-native" | ||
72 | |||
73 | EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib} --with-system-expat" | ||
74 | EXTRA_OECONF:append:class-native = " --bindir=${bindir}/${PN}" | ||
75 | EXTRA_OECONF:append:class-target = " --with-build-python=nativepython3" | ||
76 | EXTRA_OECONF:append:class-nativesdk = " --with-build-python=nativepython3" | ||
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 | # set thread stack size to 2MB on musl for interpreter and stdlib C extensions | ||
91 | # so it does not run into stack limits due to musl's small thread stack | ||
92 | # This is only needed to build interpreter and not the subsequent modules | ||
93 | # Thats why CFLAGS_NODIST is modified instead of CFLAGS | ||
94 | CACHED_CONFIGUREVARS:append:libc-musl = "\ | ||
95 | CFLAGS_NODIST='${CFLAGS} -DTHREAD_STACK_SIZE=0x200000' \ | ||
96 | " | ||
97 | |||
98 | # PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407 | ||
99 | PACKAGECONFIG ??= "editline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" | ||
100 | PACKAGECONFIG[readline] = "--with-readline=readline,,readline,,,editline" | ||
101 | PACKAGECONFIG[editline] = "--with-readline=editline,,libedit,,,readline" | ||
102 | # Use profile guided optimisation by running PyBench inside qemu-user | ||
103 | PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" | ||
104 | PACKAGECONFIG[tk] = ",,tk" | ||
105 | PACKAGECONFIG[tcl] = ",,tcl" | ||
106 | PACKAGECONFIG[gdbm] = ",,gdbm" | ||
107 | PACKAGECONFIG[lto] = "--with-lto,--without-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_any('PACKAGECONFIG', 'readline editline', '', 'readline', d)} | ||
115 | ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', '_tkinter', d)} | ||
116 | EOF | ||
117 | } | ||
118 | |||
119 | CPPFLAGS:append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" | ||
120 | |||
121 | # COMPILEALL_OPTS= ensures that .pyc are not compiled in parallel | ||
122 | # This was found to lock up builds, break reproducibility, and produce strange file ownership | ||
123 | # races. | ||
124 | # | ||
125 | # The upstream commit introducing the change was: | ||
126 | # https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504 | ||
127 | # | ||
128 | # The build lock up issue is reported here: | ||
129 | # https://bugs.python.org/issue45945 | ||
130 | # | ||
131 | # The repro failures are documented here: | ||
132 | # https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211130-yr_o1a8d/packages/diff-html/ | ||
133 | |||
134 | EXTRA_OEMAKE = '\ | ||
135 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | ||
136 | STAGING_INCDIR=${STAGING_INCDIR} \ | ||
137 | LIB=${baselib} \ | ||
138 | COMPILEALL_OPTS= \ | ||
139 | ' | ||
140 | |||
141 | # Generate a Profile Guided Optimisation wrapper script that uses qemu-user for | ||
142 | # all cross builds. | ||
143 | write_pgo_wrapper:class-native = ":" | ||
144 | write_pgo_wrapper() { | ||
145 | if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then | ||
146 | cat >pgo-wrapper <<EOF | ||
147 | #!/bin/sh | ||
148 | cd ${B} | ||
149 | ${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])} "\$@" | ||
150 | EOF | ||
151 | chmod +x pgo-wrapper | ||
152 | fi | ||
153 | } | ||
154 | |||
155 | do_compile:prepend() { | ||
156 | write_pgo_wrapper | ||
157 | } | ||
158 | |||
159 | do_install:prepend() { | ||
160 | ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile | ||
161 | } | ||
162 | |||
163 | do_install:append:class-target() { | ||
164 | oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h | ||
165 | } | ||
166 | |||
167 | do_install:append:class-native() { | ||
168 | # Make sure we use /usr/bin/env python | ||
169 | for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do | ||
170 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
171 | done | ||
172 | # Add a symlink to the native Python so that scripts can just invoke | ||
173 | # "nativepython" and get the right one without needing absolute paths | ||
174 | # (these often end up too long for the #! parser in the kernel as the | ||
175 | # buffer is 128 bytes long). | ||
176 | ln -s python3-native/python3 ${D}${bindir}/nativepython3 | ||
177 | |||
178 | # Remove the opt-1.pyc and opt-2.pyc files. There are over 3,000 of them | ||
179 | # and the overhead in each recipe-sysroot-native isn't worth it, particularly | ||
180 | # when they're only used for python called with -O or -OO. | ||
181 | #find ${D} -name *opt-*.pyc -delete | ||
182 | # Remove all pyc files. There are a ton of them and it is probably faster to let | ||
183 | # python create the ones it wants at runtime rather than manage in the sstate | ||
184 | # tarballs and sysroot creation. | ||
185 | find ${D} -name *.pyc -delete | ||
186 | |||
187 | # Nothing should be looking into ${B} for python3-native | ||
188 | sed -i -e 's:${B}:/build/path/unavailable/:g' \ | ||
189 | ${D}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile | ||
190 | |||
191 | # disable the lookup in user's site-packages globally | ||
192 | sed -i 's#ENABLE_USER_SITE = None#ENABLE_USER_SITE = False#' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py | ||
193 | |||
194 | # python3-config needs to be in /usr/bin and not in a subdir of it to work properly | ||
195 | mv ${D}/${bindir}/${PN}/python*config ${D}/${bindir}/ | ||
196 | } | ||
197 | |||
198 | do_install:append() { | ||
199 | for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do | ||
200 | python3 ${WORKDIR}/reformat_sysconfig.py $c | ||
201 | done | ||
202 | rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython* | ||
203 | |||
204 | mkdir -p ${D}${libdir}/python-sysconfigdata | ||
205 | sysconfigfile=`find ${D} -name _sysconfig*.py` | ||
206 | sed -i \ | ||
207 | -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \ | ||
208 | -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
209 | -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ | ||
210 | -e "s,^ 'INCLUDEPY'.*, 'INCLUDEPY': '${STAGING_INCDIR}/python${PYTHON_MAJMIN}'\,,g" \ | ||
211 | -e "s,^ 'CONFINCLUDEPY'.*, 'CONFINCLUDEPY': '${STAGING_INCDIR}/python${PYTHON_MAJMIN}'\,,g" \ | ||
212 | -e "s,${B},/build/path/unavailable/,g" \ | ||
213 | $sysconfigfile | ||
214 | cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py | ||
215 | |||
216 | |||
217 | # Unfortunately the following pyc files are non-deterministc due to 'frozenset' | ||
218 | # being written without strict ordering, even with PYTHONHASHSEED = 0 | ||
219 | # Upstream is discussing ways to solve the issue properly, until then let's | ||
220 | # just not install the problematic files. | ||
221 | # More info: http://benno.id.au/blog/2013/01/15/python-determinism | ||
222 | rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython* | ||
223 | rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython* | ||
224 | |||
225 | # Similar to the above, we're getting reproducibility issues with | ||
226 | # /usr/lib/python3.10/__pycache__/traceback.cpython-310.pyc | ||
227 | # so remove it too | ||
228 | rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/traceback.cpython* | ||
229 | |||
230 | # Remove the opt-1.pyc and opt-2.pyc files. They effectively waste space on embedded | ||
231 | # style targets as they're only used when python is called with the -O or -OO options | ||
232 | # which is rare. | ||
233 | find ${D} -name *opt-*.pyc -delete | ||
234 | } | ||
235 | |||
236 | do_install:append:class-nativesdk () { | ||
237 | # Make sure we use /usr/bin/env python | ||
238 | for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do | ||
239 | sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT | ||
240 | done | ||
241 | create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1' | ||
242 | } | ||
243 | |||
244 | do_install_ptest:append:class-target:libc-musl () { | ||
245 | 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"|' ${D}${PTEST_PATH}/run-ptest | ||
246 | } | ||
247 | |||
248 | SYSROOT_PREPROCESS_FUNCS:append:class-target = " provide_target_config_script" | ||
249 | SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " provide_target_config_script" | ||
250 | |||
251 | # This is installed into /usr/python-target-config/ and not /usr/bin | ||
252 | # because adding target sysroot's /usr/bin/ to PATH has unwanted side effects | ||
253 | # in components erroneously picking up other target executables from it | ||
254 | provide_target_config_script() { | ||
255 | install -d ${SYSROOT_DESTDIR}${prefix}/python-target-config/ | ||
256 | install ${D}/${bindir}/python3-config ${SYSROOT_DESTDIR}/${prefix}/python-target-config/ | ||
257 | install ${D}/${bindir}/python${PYTHON_MAJMIN}-config ${SYSROOT_DESTDIR}/${prefix}/python-target-config/ | ||
258 | } | ||
259 | SYSROOT_DIRS += "${prefix}/python-target-config/" | ||
260 | |||
261 | SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py" | ||
262 | SSTATE_HASHEQUIV_FILEMAP = " \ | ||
263 | populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \ | ||
264 | populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \ | ||
265 | populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \ | ||
266 | populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \ | ||
267 | populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \ | ||
268 | populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \ | ||
269 | " | ||
270 | PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" | ||
271 | |||
272 | py_package_preprocess () { | ||
273 | # Remove references to buildmachine paths in target Makefile and _sysconfigdata | ||
274 | sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \ | ||
275 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
276 | -e 's:${HOSTTOOLS_DIR}/::g' \ | ||
277 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | ||
278 | -e 's:${RECIPE_SYSROOT}::g' \ | ||
279 | -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ | ||
280 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \ | ||
281 | ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \ | ||
282 | ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config | ||
283 | |||
284 | # Reformat _sysconfigdata after modifying it so that it remains | ||
285 | # reproducible | ||
286 | for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do | ||
287 | python3 ${WORKDIR}/reformat_sysconfig.py $c | ||
288 | done | ||
289 | |||
290 | # Recompile _sysconfigdata after modifying it | ||
291 | cd ${PKGD} | ||
292 | sysconfigfile=`find . -name _sysconfigdata_*.py` | ||
293 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
294 | -c "from py_compile import compile; compile('$sysconfigfile')" | ||
295 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
296 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=1)" | ||
297 | ${STAGING_BINDIR_NATIVE}/python3-native/python3 \ | ||
298 | -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)" | ||
299 | cd - | ||
300 | |||
301 | mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX} | ||
302 | |||
303 | #Remove the unneeded copy of target sysconfig data | ||
304 | rm -rf ${PKGD}/${libdir}/python-sysconfigdata | ||
305 | } | ||
306 | |||
307 | # We want bytecode precompiled .py files (.pyc's) by default | ||
308 | # but the user may set it on their own conf | ||
309 | INCLUDE_PYCS ?= "1" | ||
310 | |||
311 | python(){ | ||
312 | import collections, json | ||
313 | |||
314 | filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json') | ||
315 | # This python changes the datastore based on the contents of a file, so mark | ||
316 | # that dependency. | ||
317 | bb.parse.mark_dependency(d, filename) | ||
318 | |||
319 | with open(filename) as manifest_file: | ||
320 | manifest_str = manifest_file.read() | ||
321 | json_start = manifest_str.find('# EOC') + 6 | ||
322 | manifest_file.seek(json_start) | ||
323 | manifest_str = manifest_file.read() | ||
324 | python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict) | ||
325 | |||
326 | # First set RPROVIDES for -native case | ||
327 | # Hardcoded since it cant be python3-native-foo, should be python3-foo-native | ||
328 | pn = 'python3' | ||
329 | rprovides = (d.getVar('RPROVIDES') or "").split() | ||
330 | |||
331 | # ${PN}-misc-native is not in the manifest | ||
332 | rprovides.append(pn + '-misc-native') | ||
333 | |||
334 | for key in python_manifest: | ||
335 | pypackage = pn + '-' + key + '-native' | ||
336 | if pypackage not in rprovides: | ||
337 | rprovides.append(pypackage) | ||
338 | |||
339 | d.setVar('RPROVIDES:class-native', ' '.join(rprovides)) | ||
340 | |||
341 | # Then work on the target | ||
342 | include_pycs = d.getVar('INCLUDE_PYCS') | ||
343 | |||
344 | packages = d.getVar('PACKAGES').split() | ||
345 | pn = d.getVar('PN') | ||
346 | |||
347 | newpackages=[] | ||
348 | for key in python_manifest: | ||
349 | pypackage = pn + '-' + key | ||
350 | |||
351 | if pypackage not in packages: | ||
352 | # We need to prepend, otherwise python-misc gets everything | ||
353 | # so we use a new variable | ||
354 | newpackages.append(pypackage) | ||
355 | |||
356 | # "Build" python's manifest FILES, RDEPENDS and SUMMARY | ||
357 | d.setVar('FILES:' + pypackage, '') | ||
358 | for value in python_manifest[key]['files']: | ||
359 | d.appendVar('FILES:' + pypackage, ' ' + value) | ||
360 | |||
361 | # Add cached files | ||
362 | if include_pycs == '1': | ||
363 | for value in python_manifest[key]['cached']: | ||
364 | d.appendVar('FILES:' + pypackage, ' ' + value) | ||
365 | |||
366 | for value in python_manifest[key]['rdepends']: | ||
367 | # Make it work with or without $PN | ||
368 | if '${PN}' in value: | ||
369 | value=value.split('-', 1)[1] | ||
370 | d.appendVar('RDEPENDS:' + pypackage, ' ' + pn + '-' + value) | ||
371 | |||
372 | for value in python_manifest[key].get('rrecommends', ()): | ||
373 | if '${PN}' in value: | ||
374 | value=value.split('-', 1)[1] | ||
375 | d.appendVar('RRECOMMENDS:' + pypackage, ' ' + pn + '-' + value) | ||
376 | |||
377 | d.setVar('SUMMARY:' + pypackage, python_manifest[key]['summary']) | ||
378 | |||
379 | # Prepending so to avoid python-misc getting everything | ||
380 | packages = newpackages + packages | ||
381 | d.setVar('PACKAGES', ' '.join(packages)) | ||
382 | d.setVar('ALLOW_EMPTY:${PN}-modules', '1') | ||
383 | d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1') | ||
384 | |||
385 | if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d): | ||
386 | bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine") | ||
387 | } | ||
388 | |||
389 | # Files needed to create a new manifest | ||
390 | |||
391 | do_create_manifest() { | ||
392 | # This task should be run with every new release of Python. | ||
393 | # We must ensure that PACKAGECONFIG enables everything when creating | ||
394 | # a new manifest, this is to base our new manifest on a complete | ||
395 | # native python build, containing all dependencies, otherwise the task | ||
396 | # wont be able to find the required files. | ||
397 | # e.g. BerkeleyDB is an optional build dependency so it may or may not | ||
398 | # be present, we must ensure it is. | ||
399 | |||
400 | cd ${WORKDIR} | ||
401 | # This needs to be executed by python-native and NOT by HOST's python | ||
402 | nativepython3 create_manifest3.py ${PYTHON_MAJMIN} | ||
403 | cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json | ||
404 | } | ||
405 | |||
406 | # bitbake python -c create_manifest | ||
407 | # Make sure we have native python ready when we create a new manifest | ||
408 | addtask do_create_manifest after do_patch do_prepare_recipe_sysroot | ||
409 | |||
410 | # manual dependency additions | ||
411 | RRECOMMENDS:${PN}-core:append:class-nativesdk = " nativesdk-python3-modules" | ||
412 | RRECOMMENDS:${PN}-crypt:append:class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
413 | RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" | ||
414 | |||
415 | # For historical reasons PN is empty and provided by python3-modules | ||
416 | FILES:${PN} = "" | ||
417 | RPROVIDES:${PN}-modules = "${PN}" | ||
418 | |||
419 | FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" | ||
420 | FILES:${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" | ||
421 | |||
422 | # provide python-pyvenv from python3-venv | ||
423 | RPROVIDES:${PN}-venv += "${MLPREFIX}python3-pyvenv" | ||
424 | |||
425 | # package libpython3 | ||
426 | PACKAGES =+ "libpython3 libpython3-staticdev" | ||
427 | FILES:libpython3 = "${libdir}/libpython*.so.*" | ||
428 | FILES:libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a" | ||
429 | INSANE_SKIP:${PN}-dev += "dev-elf" | ||
430 | INSANE_SKIP:${PN}-ptest = "dev-deps" | ||
431 | |||
432 | # catch all the rest (unsorted) | ||
433 | PACKAGES += "${PN}-misc" | ||
434 | RDEPENDS:${PN}-misc += "\ | ||
435 | ${PN}-audio \ | ||
436 | ${PN}-codecs \ | ||
437 | ${PN}-core \ | ||
438 | ${PN}-email \ | ||
439 | ${PN}-numbers \ | ||
440 | ${PN}-pickle \ | ||
441 | ${PN}-pydoc \ | ||
442 | " | ||
443 | RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc" | ||
444 | RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc" | ||
445 | RDEPENDS:${PN}-modules:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '${MLPREFIX}python3-gdbm', '', d)}" | ||
446 | FILES:${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" | ||
447 | |||
448 | # catch manpage | ||
449 | PACKAGES += "${PN}-man" | ||
450 | FILES:${PN}-man = "${datadir}/man" | ||
451 | |||
452 | # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 | ||
453 | RDEPENDS:libpython3:append:libc-glibc = " libgcc" | ||
454 | RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig" | ||
455 | RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev ${PN}-cgitb ${PN}-zipapp unzip bzip2 libgcc tzdata coreutils sed gcc g++ binutils \ | ||
456 | locale-base-fr-fr locale-base-en-us locale-base-de-de" | ||
457 | RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-tr-tr" | ||
458 | RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}" | ||
459 | RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}" | ||
460 | DEV_PKG_DEPENDENCY = "" | ||
461 | RDEPENDS:${PN}-pydoc += "${PN}-io" | ||
462 | |||
463 | RDEPENDS:${PN}-tests:append:class-target = " ${MLPREFIX}bash" | ||
464 | RDEPENDS:${PN}-tests:append:class-nativesdk = " ${MLPREFIX}bash" | ||
465 | |||
466 | # Python's tests contain large numbers of files we don't need in the recipe sysroots | ||
467 | SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup" | ||
468 | py3_sysroot_cleanup () { | ||
469 | rm -rf ${SYSROOT_DESTDIR}${libdir}/python${PYTHON_MAJMIN}/test | ||
470 | } | ||
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 | } | ||