diff options
Diffstat (limited to 'meta/recipes-devtools/python')
158 files changed, 2684 insertions, 775 deletions
diff --git a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 1082fe79be..5e2ee454da 100644 --- a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch @@ -1,4 +1,4 @@ -From f6afc18e08a6c428ce8becd114c535a6840f1b9f Mon Sep 17 00:00:00 2001 +From da88c57fe03e4474ba20325edacf519e80c1d7a8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Tue, 17 Jul 2018 10:13:38 +0800 Subject: [PATCH] conditionally do not fetch code by easy_install @@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 1 file changed, 5 insertions(+) diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 45adb6a..9ac3342 100644 +index fc848d0..c04a5de 100644 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py -@@ -636,6 +636,11 @@ class easy_install(Command): +@@ -642,6 +642,11 @@ class easy_install(Command): os.path.exists(tmpdir) and rmtree(tmpdir) def easy_install(self, spec, deps=False): diff --git a/meta/recipes-devtools/python/python-async.inc b/meta/recipes-devtools/python/python-async.inc index af887dc4e5..fde864601c 100644 --- a/meta/recipes-devtools/python/python-async.inc +++ b/meta/recipes-devtools/python/python-async.inc @@ -9,6 +9,6 @@ inherit pypi SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b" SRC_URI[sha256sum] = "ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051" -RDEPENDS_${PN} += "${PYTHON_PN}-threading" +RDEPENDS:${PN} += "${PYTHON_PN}-threading" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python-cython.inc b/meta/recipes-devtools/python/python-cython.inc index 04fd2ec2b7..5050dfd427 100644 --- a/meta/recipes-devtools/python/python-cython.inc +++ b/meta/recipes-devtools/python/python-cython.inc @@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[sha256sum] = "6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e" +SRC_URI[sha256sum] = "d6fac2342802c30e51426828fe084ff4deb1b3387367cf98976bb2e64b6f8e45" UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar" inherit pypi -RDEPENDS_${PN}_class-target += "\ +RDEPENDS:${PN}:class-target += "\ ${PYTHON_PN}-misc \ ${PYTHON_PN}-netserver \ ${PYTHON_PN}-pkgutil \ @@ -24,7 +24,7 @@ RDEPENDS_${PN}_class-target += "\ ${PYTHON_PN}-xml \ " -RDEPENDS_${PN}_class-nativesdk += "\ +RDEPENDS:${PN}:class-nativesdk += "\ nativesdk-${PYTHON_PN}-misc \ nativesdk-${PYTHON_PN}-netserver \ nativesdk-${PYTHON_PN}-pkgutil \ @@ -34,7 +34,7 @@ RDEPENDS_${PN}_class-nativesdk += "\ nativesdk-${PYTHON_PN}-xml \ " -do_install_append() { +do_install:append() { # Make sure we use /usr/bin/env python for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT diff --git a/meta/recipes-devtools/python/python-gitdb.inc b/meta/recipes-devtools/python/python-gitdb.inc index 53d925a495..9482964f30 100644 --- a/meta/recipes-devtools/python/python-gitdb.inc +++ b/meta/recipes-devtools/python/python-gitdb.inc @@ -8,11 +8,11 @@ inherit pypi PYPI_PACKAGE = "gitdb" -SRC_URI[sha256sum] = "96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005" +SRC_URI[sha256sum] = "bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa" DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap" -RDEPENDS_${PN} += "${PYTHON_PN}-async \ +RDEPENDS:${PN} += "${PYTHON_PN}-async \ ${PYTHON_PN}-compression \ ${PYTHON_PN}-crypt \ ${PYTHON_PN}-io \ 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 @@ -SUMMARY = "Extends Python unittest to make testing easier" -HOMEPAGE = "http://readthedocs.org/docs/nose/" -DESCRIPTION = "nose extends the test loading and running features of unittest, \ -making it easier to write, find and run tests." -SECTION = "devel/python" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://lgpl.txt;md5=a6f89e2100d9b6cdffcea4f398e37343" - -SRC_URI[md5sum] = "4d3ad0ff07b61373d2cefc89c5d0b20b" -SRC_URI[sha256sum] = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98" - -inherit pypi - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-unittest \ - " - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python-pbr.inc b/meta/recipes-devtools/python/python-pbr.inc index bc470e7274..59fbc6dce4 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" inherit pypi -RDEPENDS_${PN} += "${PYTHON_PN}-pip" +RDEPENDS:${PN} += "${PYTHON_PN}-pip" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python-pycryptodome.inc b/meta/recipes-devtools/python/python-pycryptodome.inc index 48481bcf9a..29fe80d224 100644 --- a/meta/recipes-devtools/python/python-pycryptodome.inc +++ b/meta/recipes-devtools/python/python-pycryptodome.inc @@ -3,22 +3,24 @@ DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\ cryptographic primitives." HOMEPAGE = "http://www.pycryptodome.org" LICENSE = "PD & BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=accfa6aeaceb3ba96676edf18e78302c" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=29242a70410a4eeff488a28164e7ab93" inherit pypi -RDEPENDS_${PN} += " \ +PYPI_PACKAGE_EXT = "tar.gz" + +RDEPENDS:${PN} += " \ ${PYTHON_PN}-io \ ${PYTHON_PN}-math \ " -RDEPENDS_${PN}-tests += " \ +RDEPENDS:${PN}-tests += " \ ${PYTHON_PN}-unittest \ " PACKAGES =+ "${PN}-tests" -FILES_${PN}-tests = " \ +FILES:${PN}-tests = " \ ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \ ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \ " 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 @@ -SUMMARY = "Python parsing module" -HOMEPAGE = "http://pyparsing.wikispaces.com/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1" - -SRC_URI[md5sum] = "f0953e47a0112f7a65aec2305ffdf7b4" -SRC_URI[sha256sum] = "c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1" -UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar" - -inherit pypi - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-debugger \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-pprint \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-threading \ -" - -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 @@ +From 3531ff73631a0d59234eb4713e7b3a7f5ea57bbb Mon Sep 17 00:00:00 2001 +From: Nicola Lunghi <nicola.lunghi@jci.com> +Date: Thu, 14 Nov 2019 12:17:51 +0000 +Subject: [PATCH] setup.py: move pytest-runner to test_requirements + +This fixes an issue with yocto build. +pytest-runner is only needed when running tests. + +Upstream-Status: Pending +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 53ebea7..ebb0de2 100644 +--- a/setup.py ++++ b/setup.py +@@ -10,9 +10,9 @@ with open('README.md') as readme_file: + + requirements = [] + +-setup_requirements = ['pytest-runner', ] ++setup_requirements = [] + +-test_requirements = ['pytest>=3', ] ++test_requirements = ['pytest>=3', 'pytest-runner'] + + setup( + author="Nicolas Aimetti", +-- +2.20.1 + diff --git a/meta/recipes-devtools/python/python-six.inc b/meta/recipes-devtools/python/python-six.inc index df97f845bc..aac6765149 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" inherit pypi -RDEPENDS_${PN} = "${PYTHON_PN}-io" +RDEPENDS:${PN} = "${PYTHON_PN}-io" 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 @@ -SUMMARY = "Python implementation of subunit test streaming protocol" -HOMEPAGE = "https://pypi.org/project/python-subunit/" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.rst;beginline=1;endline=20;md5=909c08e291647fd985fbe5d9836d51b6" - -PYPI_PACKAGE = "python-subunit" - -SRC_URI[md5sum] = "30f1ab20651d94442dd9a7f8c9e8d633" -SRC_URI[sha256sum] = "042039928120fbf392e8c983d60f3d8ae1b88f90a9f8fd7188ddd9c26cad1e48" - -inherit pypi - -BBCLASSEXTEND = "nativesdk" diff --git a/meta/recipes-devtools/python/python-testtools.inc b/meta/recipes-devtools/python/python-testtools.inc index e8d308b717..ef5e15cc3a 100644 --- a/meta/recipes-devtools/python/python-testtools.inc +++ b/meta/recipes-devtools/python/python-testtools.inc @@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a" inherit pypi -SRC_URI[md5sum] = "e8fc7185b47cfb908c641f8c4b2a6add" -SRC_URI[sha256sum] = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8" +SRC_URI[sha256sum] = "57c13433d94f9ffde3be6534177d10fb0c1507cc499319128958ca91a65cb23f" DEPENDS += " \ ${PYTHON_PN}-pbr \ @@ -18,7 +17,7 @@ DEPENDS += " \ ${PYTHON_PN}-pbr-native \ " -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ ${PYTHON_PN}-doctest \ ${PYTHON_PN}-extras \ ${PYTHON_PN}-pbr \ diff --git a/meta/recipes-devtools/python/python3-asn1crypto_1.4.0.bb b/meta/recipes-devtools/python/python3-asn1crypto_1.4.0.bb new file mode 100644 index 0000000000..c052cb8c82 --- /dev/null +++ b/meta/recipes-devtools/python/python3-asn1crypto_1.4.0.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures" +HOMEPAGE = "https://github.com/wbond/asn1crypto" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7439e38f5e04ff62fae436184786b7ca" + +PYPI_PACKAGE = "asn1crypto" + +SRC_URI[md5sum] = "00bf5b72d37778e62cc73b1d8909ae27" +SRC_URI[sha256sum] = "f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c" + +inherit pypi setuptools3 + +RDEPENDS:${PN}:class-target += " \ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb b/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb index 7edd41030f..065a2c7b4f 100644 --- a/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb +++ b/meta/recipes-devtools/python/python3-atomicwrites_1.4.0.bb @@ -12,7 +12,7 @@ SRC_URI += " \ file://run-ptest \ " -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ ${PYTHON_PN}-unixadmin \ " @@ -22,4 +22,4 @@ do_install_ptest() { cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ } -RDEPENDS_${PN} = "${PYTHON_PN}-misc" +RDEPENDS:${PN} = "${PYTHON_PN}-misc" diff --git a/meta/recipes-devtools/python/python3-attrs_21.2.0.bb b/meta/recipes-devtools/python/python3-attrs_21.4.0.bb index e89fbc96f2..20e4541f81 100644 --- a/meta/recipes-devtools/python/python3-attrs_21.2.0.bb +++ b/meta/recipes-devtools/python/python3-attrs_21.4.0.bb @@ -3,15 +3,15 @@ HOMEPAGE = "http://www.attrs.org/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" -SRC_URI[sha256sum] = "ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" +SRC_URI[sha256sum] = "626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta -RDEPENDS_${PN}_class-target += " \ +RDEPENDS:${PN}:class-target += " \ ${PYTHON_PN}-crypt \ ${PYTHON_PN}-ctypes \ " -RDEPENDS_${PN}_class-nativesdk += " \ +RDEPENDS:${PN}:class-nativesdk += " \ ${PYTHON_PN}-crypt \ ${PYTHON_PN}-ctypes \ " 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..b63c4de0d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +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-bcrypt_3.2.0.bb b/meta/recipes-devtools/python/python3-bcrypt_3.2.0.bb new file mode 100644 index 0000000000..731aff299b --- /dev/null +++ b/meta/recipes-devtools/python/python3-bcrypt_3.2.0.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Modern password hashing for your software and your servers." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" +HOMEPAGE = "https://pypi.org/project/bcrypt/" + +DEPENDS += "${PYTHON_PN}-cffi-native" + +SRC_URI[md5sum] = "fe31390dab603728f756cd3d6830c80a" +SRC_URI[sha256sum] = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29" + +inherit pypi setuptools_build_meta ptest + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +RDEPENDS:${PN}:class-target += "\ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-six \ +" diff --git a/meta/recipes-devtools/python/python3-cffi_1.15.0.bb b/meta/recipes-devtools/python/python3-cffi_1.15.0.bb new file mode 100644 index 0000000000..c36f23b3dd --- /dev/null +++ b/meta/recipes-devtools/python/python3-cffi_1.15.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Foreign Function Interface for Python calling C code" +HOMEPAGE = "http://cffi.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" +DEPENDS += "libffi ${PYTHON_PN}-pycparser" + +SRC_URI[sha256sum] = "920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954" + +inherit pypi setuptools3 + +RDEPENDS:${PN}:class-target = " \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb b/meta/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb new file mode 100644 index 0000000000..da6718fb90 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography-vectors_36.0.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "Test vectors for the cryptography package." +HOMEPAGE = "https://cryptography.io/" +SECTION = "devel/python" +LICENSE = "Apache-2.0 | BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \ + file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \ + file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b" + +# NOTE: Make sure to keep this recipe at the same version as python3-cryptography +# Upgrade both recipes at the same time + +SRC_URI[sha256sum] = "fc8490afd5424342b868215435bd174dcd76ab396b4ea9435498be5721dcd598" + +PYPI_PACKAGE = "cryptography_vectors" + +inherit pypi setuptools3 + +DEPENDS += " \ + ${PYTHON_PN}-cryptography \ +" + +do_install:append () { + # Remove the sha256 checksum lines for pycache files + sed ${D}${PYTHON_SITEPACKAGES_DIR}/cryptography_vectors-${PV}.dist-info/RECORD -e '/__pycache__/d' -i +} + +BBCLASSEXTEND = "native nativesdk" + +UPSTREAM_CHECK_REGEX = "" diff --git a/meta/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch b/meta/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch new file mode 100644 index 0000000000..d7ab757bb5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/0001-Cargo.toml-specify-pem-version.patch @@ -0,0 +1,31 @@ +From ec8d3f3c61280c8140b34ed1479baef5e706f064 Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Fri, 14 Jan 2022 22:02:25 -0800 +Subject: [PATCH] Cargo.toml: specify pem version + +pem = "1.0" is not resolving, specify the current +pem = { version: "1.0.2"} + +Upstream-Status: Pending + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> +--- + src/rust/Cargo.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml +index 617167d0..174eaa80 100644 +--- a/src/rust/Cargo.toml ++++ b/src/rust/Cargo.toml +@@ -9,7 +9,7 @@ publish = false + lazy_static = "1" + pyo3 = { version = "0.15.1" } + asn1 = { version = "0.8.7", default-features = false, features = ["derive"] } +-pem = "1.0" ++pem = { version = "1.0.2" } + chrono = { version = "0.4", default-features = false, features = ["alloc", "clock"] } + ouroboros = "0.13" + +-- +2.30.2 + diff --git a/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch b/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch new file mode 100644 index 0000000000..366e3a4d39 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch @@ -0,0 +1,28 @@ +From 4b73298b214a5b69ea6edf3c2e21dd82b2b29708 Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Fri, 14 Jan 2022 22:34:59 -0800 +Subject: [PATCH 2/2] Cargo.toml: edition 2018 -> 2021 + +Upstream-Status: Pending + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> +--- + src/rust/Cargo.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml +index 174eaa80..7ad053d9 100644 +--- a/src/rust/Cargo.toml ++++ b/src/rust/Cargo.toml +@@ -2,7 +2,7 @@ + name = "cryptography-rust" + version = "0.1.0" + authors = ["The cryptography developers <cryptography-dev@python.org>"] +-edition = "2018" ++edition = "2021" + publish = false + + [dependencies] +-- +2.30.2 + 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..c111a9074c --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/check-memfree.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 +# https://stackoverflow.com/questions/22102999/get-total-physical-memory-in-python/28161352 +import sys +meminfo = dict((i.split()[0].rstrip(':'),int(i.split()[1])) for i in open('/proc/meminfo').readlines()) +mem_free = meminfo['MemTotal']/1024./1024. +if mem_free < 2.: + raise RuntimeError("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free)) + sys.exit(1) +else: + 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..3089df8781 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/run-ptest @@ -0,0 +1,4 @@ +#!/bin/sh +if ./check-memfree.py; then + pytest -vvvv tests/ -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}}' +fi diff --git a/meta/recipes-devtools/python/python3-cryptography/skip-leaky-test.patch b/meta/recipes-devtools/python/python3-cryptography/skip-leaky-test.patch new file mode 100644 index 0000000000..64248d57bd --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography/skip-leaky-test.patch @@ -0,0 +1,19 @@ +Mark as test as expected-failure, OpenSSL is leaking memory. + +xfail not skip so we can remove this when OpenSSL doesn't leak anymore. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/tests/hazmat/backends/test_openssl_memleak.py b/tests/hazmat/backends/test_openssl_memleak.py +index 835c9256..639f6ba2 100644 +--- a/tests/hazmat/backends/test_openssl_memleak.py ++++ b/tests/hazmat/backends/test_openssl_memleak.py +@@ -466,6 +466,7 @@ class TestOpenSSLMemoryLeaks: + ) + ) + ++ @pytest.mark.xfail(reason="has memory leaks") + def test_create_certificate_with_extensions(self): + assert_no_memory_leaks( + textwrap.dedent( diff --git a/meta/recipes-devtools/python/python3-cryptography_36.0.1.bb b/meta/recipes-devtools/python/python3-cryptography_36.0.1.bb new file mode 100644 index 0000000000..e33eaa5083 --- /dev/null +++ b/meta/recipes-devtools/python/python3-cryptography_36.0.1.bb @@ -0,0 +1,123 @@ +SUMMARY = "Provides cryptographic recipes and primitives to python developers" +HOMEPAGE = "https://cryptography.io/" +SECTION = "devel/python" +LICENSE = "( Apache-2.0 | BSD-3-Clause ) & PSF-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bf405a8056a6647e7d077b0e7bc36aba \ + file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \ + file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \ + file://LICENSE.PSF;md5=43c37d21e1dbad10cddcd150ba2c0595 \ + " +LDSHARED += "-pthread" + +SRC_URI[sha256sum] = "53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638" + +SRC_URI += " \ + file://run-ptest \ + file://check-memfree.py \ + file://0001-Cargo.toml-specify-pem-version.patch \ + file://0002-Cargo.toml-edition-2018-2021.patch \ + file://skip-leaky-test.patch \ +" + +inherit pypi python_setuptools3_rust + +DEPENDS += " \ + ${PYTHON_PN}-asn1crypto-native \ + ${PYTHON_PN}-cffi-native \ + ${PYTHON_PN}-setuptools-rust-native \ + ${PYTHON_PN}-six-native \ +" + +SRC_URI += " \ + crate://crates.io/Inflector/0.11.4 \ + crate://crates.io/aliasable/0.1.3 \ + crate://crates.io/asn1/0.8.7 \ + crate://crates.io/asn1_derive/0.8.7 \ + crate://crates.io/autocfg/1.0.1 \ + crate://crates.io/base64/0.13.0 \ + crate://crates.io/bitflags/1.3.2 \ + crate://crates.io/cfg-if/1.0.0 \ + crate://crates.io/chrono/0.4.19 \ + crate://crates.io/indoc-impl/0.3.6 \ + crate://crates.io/indoc/0.3.6 \ + crate://crates.io/instant/0.1.12 \ + crate://crates.io/lazy_static/1.4.0 \ + crate://crates.io/libc/0.2.112 \ + crate://crates.io/lock_api/0.4.5 \ + crate://crates.io/num-integer/0.1.44 \ + crate://crates.io/num-traits/0.2.14 \ + crate://crates.io/once_cell/1.9.0 \ + crate://crates.io/ouroboros/0.13.0 \ + crate://crates.io/ouroboros_macro/0.13.0 \ + crate://crates.io/parking_lot/0.11.2 \ + crate://crates.io/parking_lot_core/0.8.5 \ + crate://crates.io/paste-impl/0.1.18 \ + crate://crates.io/paste/0.1.18 \ + crate://crates.io/pem/1.0.2 \ + crate://crates.io/proc-macro-error-attr/1.0.4 \ + crate://crates.io/proc-macro-error/1.0.4 \ + crate://crates.io/proc-macro-hack/0.5.19 \ + crate://crates.io/proc-macro2/1.0.36 \ + crate://crates.io/pyo3-build-config/0.15.1 \ + crate://crates.io/pyo3-macros-backend/0.15.1 \ + crate://crates.io/pyo3-macros/0.15.1 \ + crate://crates.io/pyo3/0.15.1 \ + crate://crates.io/quote/1.0.14 \ + crate://crates.io/redox_syscall/0.2.10 \ + crate://crates.io/scopeguard/1.1.0 \ + crate://crates.io/smallvec/1.7.0 \ + crate://crates.io/stable_deref_trait/1.2.0 \ + crate://crates.io/syn/1.0.85 \ + crate://crates.io/unicode-xid/0.2.2 \ + crate://crates.io/unindent/0.1.7 \ + crate://crates.io/version_check/0.9.4 \ + crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ + crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ + crate://crates.io/winapi/0.3.9 \ +" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-asn1crypto \ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-six \ +" + +RDEPENDS:${PN}:append:class-target = " \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ +" + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-bcrypt \ + ${PYTHON_PN}-cryptography-vectors \ + ${PYTHON_PN}-hypothesis \ + ${PYTHON_PN}-iso8601 \ + ${PYTHON_PN}-pretend \ + ${PYTHON_PN}-psutil \ + ${PYTHON_PN}-pytest \ + ${PYTHON_PN}-pytest-subtests \ + ${PYTHON_PN}-pytz \ + ${PYTHON_PN}-tomli \ +" + +inherit ptest + +do_install_ptest() { + install -D ${WORKDIR}/check-memfree.py ${D}${PTEST_PATH}/ + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ + install -d ${D}${PTEST_PATH}/tests/hazmat + cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/ + cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/ +} + +FILES:${PN}-ptest += " \ + ${PTEST_PATH}/check-memfree.py \ +" +FILES:${PN}-dbg += " \ + ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-cython_0.29.23.bb b/meta/recipes-devtools/python/python3-cython_0.29.28.bb index 2ec4033fa0..26333cb271 100644 --- a/meta/recipes-devtools/python/python3-cython_0.29.23.bb +++ b/meta/recipes-devtools/python/python3-cython_0.29.28.bb @@ -1,16 +1,16 @@ inherit setuptools3 require python-cython.inc -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ python3-setuptools \ " # running build_ext a second time during install fails, because Python # would then attempt to import cythonized modules built for the target # architecture. -DISTUTILS_INSTALL_ARGS += "--skip-build" +SETUPTOOLS_INSTALL_ARGS += "--skip-build" -do_install_append() { +do_install:append() { # rename scripts that would conflict with the Python 2 build of Cython mv ${D}${bindir}/cython ${D}${bindir}/cython3 mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 @@ -34,3 +34,4 @@ cython_fix_sources () { fi done } + diff --git a/meta/recipes-devtools/python/python3-dbus_1.2.16.bb b/meta/recipes-devtools/python/python3-dbus_1.2.18.bb index e1700fa869..c4687de13c 100644 --- a/meta/recipes-devtools/python/python3-dbus_1.2.16.bb +++ b/meta/recipes-devtools/python/python3-dbus_1.2.18.bb @@ -7,20 +7,19 @@ DEPENDS = "expat dbus glib-2.0 virtual/libintl" SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz" -SRC_URI[md5sum] = "51a45c973d82bedff033a4b57d69d5d8" -SRC_URI[sha256sum] = "11238f1d86c995d8aed2e22f04a1e3779f0d70e587caffeab4857f3c662ed5a4" +SRC_URI[sha256sum] = "92bdd1e68b45596c833307a5ff4b217ee6929a1502f5341bae28fd120acf7260" S = "${WORKDIR}/dbus-python-${PV}" -inherit distutils3-base autotools pkgconfig +inherit setuptools3-base autotools pkgconfig # documentation needs python3-sphinx, which is not in oe-core or meta-python for now # change to use PACKAGECONFIG when python3-sphinx is added to oe-core EXTRA_OECONF += "--disable-documentation" -RDEPENDS_${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" +RDEPENDS:${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml" -FILES_${PN}-dev += "${libdir}/pkgconfig" +FILES:${PN}-dev += "${libdir}/pkgconfig" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb b/meta/recipes-devtools/python/python3-dbusmock_0.26.1.bb index b5fa1868b8..dc98810726 100644 --- a/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb +++ b/meta/recipes-devtools/python/python3-dbusmock_0.26.1.bb @@ -1,16 +1,16 @@ SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" HOMEPAGE = "https://pypi.org/project/python-dbusmock/" -LICENSE = "GPL-3.0" +LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" -SRC_URI[sha256sum] = "b5c36a9c9935d1867cf79d8666b08ad906660e6d4d967e9fded4361ad7eef54f" +SRC_URI[sha256sum] = "0e95ef6ec1e6b58aeb0e08839a76972debea94184570f09e29e5f12551399e55" PYPI_PACKAGE = "python-dbusmock" inherit pypi setuptools3 -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ ${PYTHON_PN}-dbus \ ${PYTHON_PN}-pygobject \ ${PYTHON_PN}-unittest \ diff --git a/meta/recipes-devtools/python/python3-docutils_0.17.1.bb b/meta/recipes-devtools/python/python3-docutils_0.17.1.bb deleted file mode 100644 index 54a809847f..0000000000 --- a/meta/recipes-devtools/python/python3-docutils_0.17.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Docutils is a modular system for processing documentation into useful formats" -HOMEPAGE = "http://docutils.sourceforge.net" -SECTION = "devel/python" -LICENSE = "PSF & BSD-2-Clause & GPLv3" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=836a1950177996968a49ff477a4a61c4" - -SRC_URI[sha256sum] = "686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" diff --git a/meta/recipes-devtools/python/python3-docutils_0.18.1.bb b/meta/recipes-devtools/python/python3-docutils_0.18.1.bb new file mode 100644 index 0000000000..e4ddd01978 --- /dev/null +++ b/meta/recipes-devtools/python/python3-docutils_0.18.1.bb @@ -0,0 +1,11 @@ +SUMMARY = "Docutils is a modular system for processing documentation into useful formats" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF-2.0 & BSD-2-Clause & GPL-3.0-only" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fecee07ad8df9116e1f739e2ed2ea513" + +SRC_URI[sha256sum] = "679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-dtschema_2022.1.bb b/meta/recipes-devtools/python/python3-dtschema_2022.1.bb new file mode 100644 index 0000000000..d73e5810b8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-dtschema_2022.1.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" +HOMEPAGE = "https://github.com/devicetree-org/dt-schema" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "dtschema" + +SRC_URI[sha256sum] = "1b92b3b9a31b6e4b8b2be70dbf3065775530bc4c52e991955b67be19741114c5" + +DEPENDS += "python3-setuptools-scm-native" +RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb new file mode 100644 index 0000000000..8d107384a6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "This provides a PEP 517 build backend for packages using Flit." +DESCRIPTION = "This provides a PEP 517 build backend for packages using \ +Flit. The only public interface is the API specified by PEP 517, at \ +flit_core.buildapi." +HOMEPAGE = "https://github.com/pypa/flit" +BUGTRACKER = "https://github.com/pypa/flit/issues" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=41eb78fa8a872983a882c694a8305f08" + +SRC_URI[sha256sum] = "3c9bd9c140515bfe62dd938c6610d10d6efb9e35cc647fc614fe5fb3a5036682" + +inherit pypi python_flit_core + +# Need to install by hand as there's a dependency loop +DEPENDS:remove:class-native = " python3-installer-native" +DEPENDS:append:class-native = " unzip-native" + +# We need the full flit tarball +PYPI_PACKAGE = "flit" +PEP517_SOURCE_PATH = "${S}/flit_core" + +do_install:class-native () { + python_pep517_do_bootstrap_install +} + +PACKAGES =+ "${PN}-tests" + +FILES:${PN}-tests += "\ + ${PYTHON_SITEPACKAGES_DIR}/flit_core/tests/* \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-git_3.1.18.bb b/meta/recipes-devtools/python/python3-git_3.1.27.bb index 955418c0e4..3e7aa883f2 100644 --- a/meta/recipes-devtools/python/python3-git_3.1.18.bb +++ b/meta/recipes-devtools/python/python3-git_3.1.27.bb @@ -10,13 +10,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" PYPI_PACKAGE = "GitPython" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta -SRC_URI[sha256sum] = "b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b" +SRC_URI[sha256sum] = "1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704" DEPENDS += " ${PYTHON_PN}-gitdb" -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ ${PYTHON_PN}-datetime \ ${PYTHON_PN}-gitdb \ ${PYTHON_PN}-io \ diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb deleted file mode 100644 index 988d67b5f1..0000000000 --- a/meta/recipes-devtools/python/python3-gitdb_4.0.7.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit setuptools3 -require python-gitdb.inc - -SRC_URI[md5sum] = "3f52187435ab0b6e64a15782ffaf29ab" diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb new file mode 100644 index 0000000000..2dcd9c8aff --- /dev/null +++ b/meta/recipes-devtools/python/python3-gitdb_4.0.9.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-gitdb.inc + 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..8d44d7c49a --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis/run-ptest @@ -0,0 +1,10 @@ +#!/bin/sh + +# Upstream "fast" tests take about 5 minutes and currently do not run cleanly +# (tests/cover and tests/pytest) +# https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python/tests +# https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/scripts/basic-test.sh#L18 +# +# Instead we run two test suites imported from examples/ + +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-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 @@ +# This file is part of Hypothesis, which may be found at +# https://github.com/HypothesisWorks/hypothesis/ +# +# Most of this work is copyright (C) 2013-2021 David R. MacIver +# (david@drmaciver.com), but it contains contributions by others. See +# CONTRIBUTING.rst for a full list of people who may hold copyright, and +# consult the git log if you need to determine who owns an individual +# contribution. +# +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. +# +# END HEADER +# +# SPDX-License-Identifier: MPL-2.0 + +"""This file demonstrates testing a binary search. + +It's a useful example because the result of the binary search is so clearly +determined by the invariants it must satisfy, so we can simply test for those +invariants. + +It also demonstrates the useful testing technique of testing how the answer +should change (or not) in response to movements in the underlying data. +""" + +from hypothesis import given, strategies as st + + +def binary_search(ls, v): + """Take a list ls and a value v such that ls is sorted and v is comparable + with the elements of ls. + + Return an index i such that 0 <= i <= len(v) with the properties: + + 1. ls.insert(i, v) is sorted + 2. ls.insert(j, v) is not sorted for j < i + """ + # Without this check we will get an index error on the next line when the + # list is empty. + if not ls: + return 0 + + # Without this check we will miss the case where the insertion point should + # be zero: The invariant we maintain in the next section is that lo is + # always strictly lower than the insertion point. + if v <= ls[0]: + return 0 + + # Invariant: There is no insertion point i with i <= lo + lo = 0 + + # Invariant: There is an insertion point i with i <= hi + hi = len(ls) + while lo + 1 < hi: + mid = (lo + hi) // 2 + if v > ls[mid]: + # Inserting v anywhere below mid would result in an unsorted list + # because it's > the value at mid. Therefore mid is a valid new lo + lo = mid + # Uncommenting the following lines will cause this to return a valid + # insertion point which is not always minimal. + # elif v == ls[mid]: + # return mid + else: + # Either v == ls[mid] in which case mid is a valid insertion point + # or v < ls[mid], in which case all valid insertion points must be + # < hi. Either way, mid is a valid new hi. + hi = mid + assert lo + 1 == hi + # We now know that there is a valid insertion point <= hi and there is no + # valid insertion point < hi because hi - 1 is lo. Therefore hi is the + # answer we were seeking + return hi + + +def is_sorted(ls): + """Is this list sorted?""" + for i in range(len(ls) - 1): + if ls[i] > ls[i + 1]: + return False + return True + + +Values = st.integers() + +# We generate arbitrary lists and turn this into generating sorting lists +# by just sorting them. +SortedLists = st.lists(Values).map(sorted) + +# We could also do it this way, but that would be a bad idea: +# SortedLists = st.lists(Values).filter(is_sorted) +# The problem is that Hypothesis will only generate long sorted lists with very +# low probability, so we are much better off post-processing values into the +# form we want than filtering them out. + + +@given(ls=SortedLists, v=Values) +def test_insert_is_sorted(ls, v): + """We test the first invariant: binary_search should return an index such + that inserting the value provided at that index would result in a sorted + set.""" + ls.insert(binary_search(ls, v), v) + assert is_sorted(ls) + + +@given(ls=SortedLists, v=Values) +def test_is_minimal(ls, v): + """We test the second invariant: binary_search should return an index such + that no smaller index is a valid insertion point for v.""" + for i in range(binary_search(ls, v)): + ls2 = list(ls) + ls2.insert(i, v) + assert not is_sorted(ls2) + + +@given(ls=SortedLists, v=Values) +def test_inserts_into_same_place_twice(ls, v): + """In this we test a *consequence* of the second invariant: When we insert + a value into a list twice, the insertion point should be the same both + times. This is because we know that v is > the previous element and == the + next element. + + In theory if the former passes, this should always pass. In practice, + failures are detected by this test with much higher probability because it + deliberately puts the data into a shape that is likely to trigger a + failure. + + This is an instance of a good general category of test: Testing how the + function moves in responses to changes in the underlying data. + """ + i = binary_search(ls, v) + ls.insert(i, v) + 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 @@ +# This file is part of Hypothesis, which may be found at +# https://github.com/HypothesisWorks/hypothesis/ +# +# Most of this work is copyright (C) 2013-2021 David R. MacIver +# (david@drmaciver.com), but it contains contributions by others. See +# CONTRIBUTING.rst for a full list of people who may hold copyright, and +# consult the git log if you need to determine who owns an individual +# contribution. +# +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. +# +# END HEADER +# +# SPDX-License-Identifier: MPL-2.0 + +"""This example demonstrates testing a run length encoding scheme. That is, we +take a sequence and represent it by a shorter sequence where each 'run' of +consecutive equal elements is represented as a single element plus a count. So +e.g. + +[1, 1, 1, 1, 2, 1] is represented as [[1, 4], [2, 1], [1, 1]] + +This demonstrates the useful decode(encode(x)) == x invariant that is often +a fruitful source of testing with Hypothesis. + +It also has an example of testing invariants in response to changes in the +underlying data. +""" + +from hypothesis import assume, given, strategies as st + + +def run_length_encode(seq): + """Encode a sequence as a new run-length encoded sequence.""" + if not seq: + return [] + # By starting off the count at zero we simplify the iteration logic + # slightly. + result = [[seq[0], 0]] + for s in seq: + if ( + # If you uncomment this line this branch will be skipped and we'll + # always append a new run of length 1. Note which tests fail. + # False and + s + == result[-1][0] + # Try uncommenting this line and see what problems occur: + # and result[-1][-1] < 2 + ): + result[-1][1] += 1 + else: + result.append([s, 1]) + return result + + +def run_length_decode(seq): + """Take a previously encoded sequence and reconstruct the original from + it.""" + result = [] + for s, i in seq: + for _ in range(i): + result.append(s) + return result + + +# We use lists of a type that should have a relatively high duplication rate, +# otherwise we'd almost never get any runs. +Lists = st.lists(st.integers(0, 10)) + + +@given(Lists) +def test_decodes_to_starting_sequence(ls): + """If we encode a sequence and then decode the result, we should get the + original sequence back. + + Otherwise we've done something very wrong. + """ + assert run_length_decode(run_length_encode(ls)) == ls + + +@given(Lists, st.data()) +def test_duplicating_an_element_does_not_increase_length(ls, data): + """The previous test could be passed by simply returning the input sequence + so we need something that tests the compression property of our encoding. + + In this test we deliberately introduce or extend a run and assert + that this does not increase the length of our encoding, because they + should be part of the same run in the final result. + """ + # We use assume to get a valid index into the list. We could also have used + # e.g. flatmap, but this is relatively straightforward and will tend to + # perform better. + assume(ls) + i = data.draw(st.integers(0, len(ls) - 1)) + ls2 = list(ls) + # duplicating the value at i right next to it guarantees they are part of + # the same run in the resulting compression. + ls2.insert(i, ls2[i]) + assert len(run_length_encode(ls2)) == len(run_length_encode(ls)) diff --git a/meta/recipes-devtools/python/python3-hypothesis_6.14.3.bb b/meta/recipes-devtools/python/python3-hypothesis_6.14.3.bb deleted file mode 100644 index 83c9917a04..0000000000 --- a/meta/recipes-devtools/python/python3-hypothesis_6.14.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "A library for property-based testing" -HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" -LICENSE = "MPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" - -PYPI_PACKAGE = "hypothesis" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "1c8776d9fc8c598cf1b93b99bd87976f9d9b589fc58843d85a30090700f14a8a" - -RDEPENDS_${PN} += " \ - python3-attrs \ - python3-compression \ - python3-core \ - python3-json \ - python3-sortedcontainers \ - python3-statistics \ - python3-unittest \ - " - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-hypothesis_6.39.2.bb b/meta/recipes-devtools/python/python3-hypothesis_6.39.2.bb new file mode 100644 index 0000000000..01732d0087 --- /dev/null +++ b/meta/recipes-devtools/python/python3-hypothesis_6.39.2.bb @@ -0,0 +1,38 @@ +SUMMARY = "A library for property-based testing" +HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" + +PYPI_PACKAGE = "hypothesis" + +inherit pypi setuptools3 ptest + +SRC_URI += " \ + file://run-ptest \ + file://test_binary_search.py \ + file://test_rle.py \ + " + +SRC_URI[sha256sum] = "7a16ba804baeebdcc5dc4638c32c5fc3fc552c1be30ae21a84c5d9c802b06e31" + +RDEPENDS:${PN} += " \ + python3-attrs \ + python3-compression \ + python3-core \ + python3-json \ + python3-sortedcontainers \ + python3-statistics \ + python3-unittest \ + " + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ + " + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/examples + install -m 0755 ${WORKDIR}/test_binary_search.py ${D}${PTEST_PATH}/examples/ + install -m 0755 ${WORKDIR}/test_rle.py ${D}${PTEST_PATH}/examples/ +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-idna_3.3.bb b/meta/recipes-devtools/python/python3-idna_3.3.bb new file mode 100644 index 0000000000..ee92f44fd5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-idna_3.3.bb @@ -0,0 +1,19 @@ +SUMMARY = "Internationalised Domain Names in Applications" +HOMEPAGE = "https://github.com/kjd/idna" +LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1" + +SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + +inherit pypi setuptools3 + +# Remove bundled egg-info +do_compile:prepend() { + rm -rf ${S}/idna.egg-info +} + +RDEPENDS:${PN}:class-target = "\ + ${PYTHON_PN}-codecs \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-importlib-metadata_4.6.1.bb b/meta/recipes-devtools/python/python3-importlib-metadata_4.11.3.bb index 7e9604aaf4..b2da69b055 100644 --- a/meta/recipes-devtools/python/python3-importlib-metadata_4.6.1.bb +++ b/meta/recipes-devtools/python/python3-importlib-metadata_4.11.3.bb @@ -3,18 +3,18 @@ HOMEPAGE = "https://pypi.org/project/importlib-metadata/" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta PYPI_PACKAGE = "importlib_metadata" UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/" -SRC_URI[sha256sum] = "079ada16b7fc30dfbb5d13399a5113110dab1aa7c2bc62f66af75f0b717c8cac" +SRC_URI[sha256sum] = "ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539" S = "${WORKDIR}/importlib_metadata-${PV}" DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native" -RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" -RDEPENDS_${PN}_append_class-target = " python3-misc" -RDEPENDS_${PN}_append_class-nativesdk = " python3-misc" +RDEPENDS:${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" +RDEPENDS:${PN}:append:class-target = " python3-misc" +RDEPENDS:${PN}:append:class-nativesdk = " python3-misc" 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 index 6b3359712f..5338980e69 100644 --- a/meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb +++ b/meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb @@ -7,4 +7,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" SRC_URI[md5sum] = "0b7f3be87481211c183eae095bcea6f1" SRC_URI[sha256sum] = "bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" -inherit pypi setuptools3 +DEPENDS += "python3-setuptools-scm-native" + +inherit pypi setuptools_build_meta diff --git a/meta/recipes-devtools/python/python3-iniparse_0.5.bb b/meta/recipes-devtools/python/python3-iniparse_0.5.bb index 4ed82eab29..c18949014b 100644 --- a/meta/recipes-devtools/python/python3-iniparse_0.5.bb +++ b/meta/recipes-devtools/python/python3-iniparse_0.5.bb @@ -1,6 +1,6 @@ SUMMARY = "Accessing and Modifying INI files" HOMEPAGE = "https://pypi.org/project/iniparse/" -LICENSE = "MIT & PSF" +LICENSE = "MIT & PSF-2.0" LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \ file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54" @@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "932e5239d526e7acb504017bb707be67019ac428a6932368e685169109 inherit pypi setuptools3 -RDEPENDS_${PN} += "python3-core python3-six" +RDEPENDS:${PN} += "python3-core python3-six" DEPENDS += "python3-six" 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..ef10ef1b45 --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer/interpreter.patch @@ -0,0 +1,61 @@ +Let us override the hashbang directly (possibly upstreamable), and don't +play games with hashbangs: for now assume that even hashbangs with spaces +are simple (assume the spaces are only used to separate arguments) and +we don't have long hashbangs. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/src/installer/__main__.py b/src/installer/__main__.py +index 3357ec5..d2fd8d2 100644 +--- a/src/installer/__main__.py ++++ b/src/installer/__main__.py +@@ -23,6 +23,13 @@ def _get_main_parser() -> argparse.ArgumentParser: + type=str, + help="destination directory (prefix to prepend to each file)", + ) ++ parser.add_argument( ++ "--interpreter", ++ "-i", ++ type=str, ++ default=sys.executable, ++ help=f"interpreter (defaults to {sys.executable})", ++ ) + parser.add_argument( + "--compile-bytecode", + action="append", +@@ -73,7 +80,7 @@ def _main(cli_args: Sequence[str], program: Optional[str] = None) -> None: + with WheelFile.open(args.wheel) as source: + destination = SchemeDictionaryDestination( + scheme_dict=_get_scheme_dict(source.distribution), +- interpreter=sys.executable, ++ interpreter=args.interpreter, + script_kind=get_launcher_kind(), + bytecode_optimization_levels=bytecode_levels, + destdir=args.destdir, +diff --git a/src/installer/scripts.py b/src/installer/scripts.py +index 7e3c8fc..ba6ed5a 100644 +--- a/src/installer/scripts.py ++++ b/src/installer/scripts.py +@@ -59,20 +59,7 @@ def _build_shebang(executable: str, forlauncher: bool) -> bytes: + https://bitbucket.org/pypa/distlib/src/58cd5c6/distlib/scripts.py#lines-124 + """ + executable_bytes = executable.encode("utf-8") +- if forlauncher: # The launcher can just use the command as-is. +- return b"#!" + executable_bytes +- if _is_executable_simple(executable_bytes): +- return b"#!" + executable_bytes +- +- # Shebang support for an executable with a space in it is under-specified +- # and platform-dependent, so we use a clever hack to generate a script to +- # run in ``/bin/sh`` that should work on all reasonably modern platforms. +- # Read the following message to understand how the hack works: +- # https://github.com/pradyunsg/installer/pull/4#issuecomment-623668717 +- +- quoted = shlex.quote(executable).encode("utf-8") +- # I don't understand a lick what this is trying to do. +- return b"#!/bin/sh\n'''exec' " + quoted + b' "$0" "$@"\n' + b"' '''" ++ return b"#!" + executable_bytes + + + class InvalidScript(ValueError): diff --git a/meta/recipes-devtools/python/python3-installer_0.5.1.bb b/meta/recipes-devtools/python/python3-installer_0.5.1.bb new file mode 100644 index 0000000000..f4f9e1bde6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-installer_0.5.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "Library and tool for installing Python wheels" +DESCRIPTION = "A low-level library for installing a Python package from a wheel distribution." +HOMEPAGE = "https://installer.readthedocs.io/" +BUGTRACKER = "https://github.com/pypa/installer/issues" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5038641aec7a77451e31da828ebfae00" + +SRC_URI += "file://interpreter.patch" + +SRC_URI[sha256sum] = "f970995ec2bb815e2fdaf7977b26b2091e1e386f0f42eafd5ac811953dc5d445" + +inherit pypi python_flit_core + +DEPENDS:remove:class-native = "python3-installer-native" +DEPENDS:append:class-native = " unzip-native" + +do_install:class-native () { + python_pep517_do_bootstrap_install +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-iso8601_1.0.2.bb b/meta/recipes-devtools/python/python3-iso8601_1.0.2.bb new file mode 100644 index 0000000000..93af233d29 --- /dev/null +++ b/meta/recipes-devtools/python/python3-iso8601_1.0.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Simple module to parse ISO 8601 dates" +HOMEPAGE = "http://pyiso8601.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844" + +SRC_URI[sha256sum] = "27f503220e6845d9db954fb212b95b0362d8b7e6c1b2326a87061c3de93594b1" + +inherit pypi python_poetry_core + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-numbers \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-jinja2_3.0.1.bb b/meta/recipes-devtools/python/python3-jinja2_3.0.3.bb index b37a043ccb..c416acbf92 100644 --- a/meta/recipes-devtools/python/python3-jinja2_3.0.1.bb +++ b/meta/recipes-devtools/python/python3-jinja2_3.0.3.bb @@ -4,7 +4,7 @@ HOMEPAGE = "https://pypi.org/project/Jinja/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462" -SRC_URI[sha256sum] = "703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4" +SRC_URI[sha256sum] = "611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7" PYPI_PACKAGE = "Jinja2" @@ -24,13 +24,13 @@ do_install_ptest() { cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ } -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ ${PYTHON_PN}-toml \ ${PYTHON_PN}-unixadmin \ " -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ ${PYTHON_PN}-asyncio \ ${PYTHON_PN}-crypt \ ${PYTHON_PN}-io \ 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..51e609f4ba --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonpointer/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +python3 tests.py diff --git a/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb b/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb new file mode 100644 index 0000000000..225fde7556 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonpointer_2.2.bb @@ -0,0 +1,26 @@ +SUMMARY = "Resolve JSON Pointers in Python" +HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3" + +inherit pypi ptest setuptools3 + +SRC_URI[sha256sum] = "f09f8deecaaa5aea65b5eb4f67ca4e54e1a61f7a11c75085e360fe6feb6a48bf" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-json \ +" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + cp -f ${S}/tests.py ${D}${PTEST_PATH}/ +} diff --git a/meta/recipes-devtools/python/python3-jsonschema_4.4.0.bb b/meta/recipes-devtools/python/python3-jsonschema_4.4.0.bb new file mode 100644 index 0000000000..4c14229641 --- /dev/null +++ b/meta/recipes-devtools/python/python3-jsonschema_4.4.0.bb @@ -0,0 +1,48 @@ +SUMMARY = "An implementation of JSON Schema validation for Python" +HOMEPAGE = "https://github.com/Julian/jsonschema" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \ + file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af" + +SRC_URI[sha256sum] = "636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83" + +inherit pypi setuptools_build_meta + +DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native" + +PACKAGECONFIG ??= "format" +PACKAGECONFIG[format] = ",,,\ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-jsonpointer \ + ${PYTHON_PN}-webcolors \ + ${PYTHON_PN}-rfc3987 \ + ${PYTHON_PN}-strict-rfc3339 \ +" +PACKAGECONFIG[nongpl] = ",,,\ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-jsonpointer \ + ${PYTHON_PN}-webcolors \ + ${PYTHON_PN}-rfc3986-validator \ + ${PYTHON_PN}-rfc3339-validator \ +" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-importlib-metadata \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-pyrsistent \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-setuptools-scm \ + ${PYTHON_PN}-zipp \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb b/meta/recipes-devtools/python/python3-libarchive-c_4.0.bb index d8f7862f92..3c6bc1e1ca 100644 --- a/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb +++ b/meta/recipes-devtools/python/python3-libarchive-c_4.0.bb @@ -9,10 +9,9 @@ PYPI_PACKAGE = "libarchive-c" inherit pypi setuptools3 -SRC_URI[md5sum] = "8c62da42a8b9bd24642e5430427e6f5a" -SRC_URI[sha256sum] = "618a7ecfbfb58ca15e11e3138d4a636498da3b6bc212811af158298530fbb87e" +SRC_URI[sha256sum] = "a5b41ade94ba58b198d778e68000f6b7de41da768de7140c984f71d7fa8416e5" -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ libarchive \ ${PYTHON_PN}-ctypes \ ${PYTHON_PN}-mmap \ diff --git a/meta/recipes-devtools/python/python3-magic_0.4.24.bb b/meta/recipes-devtools/python/python3-magic_0.4.25.bb index a54bf2431c..efc8b6daaa 100644 --- a/meta/recipes-devtools/python/python3-magic_0.4.24.bb +++ b/meta/recipes-devtools/python/python3-magic_0.4.25.bb @@ -11,9 +11,9 @@ PYPI_PACKAGE = "python-magic" inherit pypi setuptools3 -SRC_URI[sha256sum] = "de800df9fb50f8ec5974761054a708af6e4246b03b4bdaee993f948947b0ebcf" +SRC_URI[sha256sum] = "21f5f542aa0330f5c8a64442528542f6215c8e18d2466b399b0d9d39356d83fc" -RDEPENDS_${PN} += "file \ +RDEPENDS:${PN} += "file \ ${PYTHON_PN}-ctypes \ ${PYTHON_PN}-io \ ${PYTHON_PN}-logging \ diff --git a/meta/recipes-devtools/python/python3-mako_1.1.4.bb b/meta/recipes-devtools/python/python3-mako_1.1.6.bb index 1645f37da4..23e13cff94 100644 --- a/meta/recipes-devtools/python/python3-mako_1.1.4.bb +++ b/meta/recipes-devtools/python/python3-mako_1.1.6.bb @@ -6,11 +6,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=943eb67718222db21d44a4ef1836675f" PYPI_PACKAGE = "Mako" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta -SRC_URI[sha256sum] = "17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab" +SRC_URI[sha256sum] = "4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2" -RDEPENDS_${PN} = "${PYTHON_PN}-html \ +RDEPENDS:${PN} = "${PYTHON_PN}-html \ ${PYTHON_PN}-netclient \ ${PYTHON_PN}-threading \ " diff --git a/meta/recipes-devtools/python/python3-markdown_3.3.4.bb b/meta/recipes-devtools/python/python3-markdown_3.3.6.bb index 47cccbe5bd..a46a9ae066 100644 --- a/meta/recipes-devtools/python/python3-markdown_3.3.4.bb +++ b/meta/recipes-devtools/python/python3-markdown_3.3.6.bb @@ -3,11 +3,11 @@ HOMEPAGE = "https://python-markdown.github.io/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta PYPI_PACKAGE = "Markdown" -SRC_URI[sha256sum] = "31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49" +SRC_URI[sha256sum] = "76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006" BBCLASSEXTEND = "native" -RDEPENDS_${PN} += "${PYTHON_PN}-logging ${PYTHON_PN}-setuptools" +RDEPENDS:${PN} += "${PYTHON_PN}-logging ${PYTHON_PN}-setuptools" diff --git a/meta/recipes-devtools/python/python3-markupsafe_2.0.1.bb b/meta/recipes-devtools/python/python3-markupsafe_2.1.0.bb index 5be43b6c56..953ea01cfe 100644 --- a/meta/recipes-devtools/python/python3-markupsafe_2.0.1.bb +++ b/meta/recipes-devtools/python/python3-markupsafe_2.1.0.bb @@ -3,13 +3,13 @@ HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" -SRC_URI[sha256sum] = "594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a" +SRC_URI[sha256sum] = "80beaf63ddfbc64a0452b841d8036ca0611e049650e20afcb882f5d3c266d65f" PYPI_PACKAGE = "MarkupSafe" inherit pypi setuptools3 inherit ${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)} -RDEPENDS_${PN} += "${PYTHON_PN}-stringold" +RDEPENDS:${PN} += "${PYTHON_PN}-stringold" BBCLASSEXTEND = "native nativesdk" @@ -17,7 +17,7 @@ SRC_URI += " \ file://run-ptest \ " -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ " diff --git a/meta/recipes-devtools/python/python3-more-itertools_8.8.0.bb b/meta/recipes-devtools/python/python3-more-itertools_8.12.0.bb index 1c0e84d27f..c1e34b205d 100644 --- a/meta/recipes-devtools/python/python3-more-itertools_8.8.0.bb +++ b/meta/recipes-devtools/python/python3-more-itertools_8.12.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/erikrose/more-itertools" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5" -SRC_URI[sha256sum] = "83f0308e05477c68f56ea3a888172c78ed5d5b3c282addb67508e7ba6c8f813a" +SRC_URI[sha256sum] = "7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064" inherit pypi setuptools3 ptest @@ -11,11 +11,11 @@ SRC_URI += " \ file://run-ptest \ " -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ ${PYTHON_PN}-asyncio \ " -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ " 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 @@ -inherit setuptools3 -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..9f5f25f9b5 --- /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,72 @@ +From 27f6687e49bf555fc494d2f14bae6ecd0fa30f14 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Thu, 10 Dec 2015 13:20:30 +0200 +Subject: [PATCH] Don't search /usr and so on for libraries by default to + + avoid host contamination. + +Upstream-Status: Inappropriate (As the code stands, this is a hack) +Signed-off-by: Ross Burton <ross.burton@intel.com> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + numpy/distutils/system_info.py | 42 +++++----------------------------- + 1 file changed, 6 insertions(+), 36 deletions(-) + +diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py +index 82e864a..135246d 100644 +--- a/numpy/distutils/system_info.py ++++ b/numpy/distutils/system_info.py +@@ -323,44 +323,14 @@ if sys.platform == 'win32': + add_system_root(os.path.join(conda_dir, 'Library')) + + else: +- default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', +- '/opt/local/lib', '/sw/lib'], platform_bits) + default_runtime_dirs = [] +- default_include_dirs = ['/usr/local/include', +- '/opt/include', +- # path of umfpack under macports +- '/opt/local/include/ufsparse', +- '/opt/local/include', '/sw/include', +- '/usr/include/suitesparse'] +- default_src_dirs = ['.', '/usr/local/src', '/opt/src', '/sw/src'] +- +- default_x11_lib_dirs = libpaths(['/usr/X11R6/lib', '/usr/X11/lib', +- '/usr/lib'], platform_bits) +- default_x11_include_dirs = ['/usr/X11R6/include', '/usr/X11/include'] +- +- if os.path.exists('/usr/lib/X11'): +- globbed_x11_dir = glob('/usr/lib/*/libX11.so') +- if globbed_x11_dir: +- x11_so_dir = os.path.split(globbed_x11_dir[0])[0] +- default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11']) +- default_x11_include_dirs.extend(['/usr/lib/X11/include', +- '/usr/include/X11']) +- +- with open(os.devnull, 'w') as tmp: +- try: +- p = subprocess.Popen(["gcc", "-print-multiarch"], stdout=subprocess.PIPE, +- stderr=tmp) +- except (OSError, DistutilsError): +- # OSError if gcc is not installed, or SandboxViolation (DistutilsError +- # subclass) if an old setuptools bug is triggered (see gh-3160). +- pass +- else: +- triplet = str(p.communicate()[0].decode().strip()) +- if p.returncode == 0: +- # gcc supports the "-print-multiarch" option +- default_x11_lib_dirs += [os.path.join("/usr/lib/", triplet)] +- default_lib_dirs += [os.path.join("/usr/lib/", triplet)] + ++ default_lib_dirs = libpaths(['/deadir/lib'], platform_bits) ++ default_include_dirs = ['/deaddir/include'] ++ default_src_dirs = ['.', '/deaddir/src'] ++ ++ default_x11_lib_dirs = libpaths(['/deaddir/lib'], platform_bits) ++ default_x11_include_dirs = ['/deaddir/include'] + + if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: + default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) +-- +2.25.1 + 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 @@ +From eb6d6579150bf4684603ce377c51e90ad3bb8109 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 15 Nov 2020 15:32:39 -0800 +Subject: [PATCH] numpy/core: Define RISCV-32 support + +Helps compile on riscv32 + +Upstream-Status: Submitted [https://github.com/numpy/numpy/pull/17780] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + numpy/core/include/numpy/npy_cpu.h | 3 +++ + numpy/core/include/numpy/npy_endian.h | 1 + + 2 files changed, 4 insertions(+) + +diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h +index 78d229e..04be511 100644 +--- a/numpy/core/include/numpy/npy_cpu.h ++++ b/numpy/core/include/numpy/npy_cpu.h +@@ -19,6 +19,7 @@ + * NPY_CPU_ARCEB + * NPY_CPU_RISCV64 + * NPY_CPU_LOONGARCH ++ * NPY_CPU_RISCV32 + * NPY_CPU_WASM + */ + #ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_CPU_H_ +@@ -104,6 +105,8 @@ + #define NPY_CPU_ARCEB + #elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 + #define NPY_CPU_RISCV64 ++#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32 ++ #define NPY_CPU_RISCV32 + #elif defined(__loongarch__) + #define NPY_CPU_LOONGARCH + #elif defined(__EMSCRIPTEN__) +diff --git a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h +index 5e58a7f..0926212 100644 +--- a/numpy/core/include/numpy/npy_endian.h ++++ b/numpy/core/include/numpy/npy_endian.h +@@ -49,6 +49,7 @@ + || defined(NPY_CPU_PPC64LE) \ + || defined(NPY_CPU_ARCEL) \ + || defined(NPY_CPU_RISCV64) \ ++ || defined(NPY_CPU_RISCV32) \ + || defined(NPY_CPU_LOONGARCH) \ + || defined(NPY_CPU_WASM) + #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN +-- +2.20.1 + 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 @@ +#!/usr/bin/env python3 + +import numpy +numpy.test(label='full', verbose=2) + diff --git a/meta/recipes-devtools/python/python3-numpy_1.22.3.bb b/meta/recipes-devtools/python/python3-numpy_1.22.3.bb new file mode 100644 index 0000000000..b5b1c4e714 --- /dev/null +++ b/meta/recipes-devtools/python/python3-numpy_1.22.3.bb @@ -0,0 +1,72 @@ +SUMMARY = "A sophisticated Numeric Processing Package for Python" +HOMEPAGE = "https://numpy.org/" +DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python." +SECTION = "devel/python" +LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8026691468924fb6ec155dadfe2a1a7f" + +SRCNAME = "numpy" + +SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ + file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ + file://0001-numpy-core-Define-RISCV-32-support.patch \ + file://run-ptest \ + " +SRC_URI[sha256sum] = "a906c0b4301a3d62ccf66d058fe779a65c1c34f6719ef2058f96e1856f48bca5" + +UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" + +DEPENDS += "python3-cython-native" + +inherit ptest setuptools3 + +S = "${WORKDIR}/numpy-${PV}" + +CLEANBROKEN = "1" + +do_compile:prepend() { + export NPY_DISABLE_SVML=1 +} + +# Unfortunately the following pyc files are non-deterministc due to 'frozenset' +# being written without strict ordering, even with PYTHONHASHSEED = 0 +# Upstream is discussing ways to solve the issue properly, until then let's +# just not install the problematic files. +# More info: http://benno.id.au/blog/2013/01/15/python-determinism +do_install:append() { + rm ${D}${PYTHON_SITEPACKAGES_DIR}/numpy/typing/tests/data/pass/__pycache__/literal.cpython* +} + +FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" + +# install what is needed for numpy.test() +RDEPENDS:${PN} = "${PYTHON_PN}-unittest \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-mmap \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pydoc \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-multiprocessing \ + ${PYTHON_PN}-json \ +" +RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest \ + ${PYTHON_PN}-hypothesis \ + ${PYTHON_PN}-sortedcontainers \ + ${PYTHON_PN}-resource \ + ldd \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-packaging_21.0.bb b/meta/recipes-devtools/python/python3-packaging_21.0.bb deleted file mode 100644 index 23ecd9df5e..0000000000 --- a/meta/recipes-devtools/python/python3-packaging_21.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "Core utilities for Python packages" -HOMEPAGE = "https://github.com/pypa/packaging" -LICENSE = "Apache-2.0 & BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91" - -SRC_URI[sha256sum] = "7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-pyparsing" diff --git a/meta/recipes-devtools/python/python3-packaging_21.3.bb b/meta/recipes-devtools/python/python3-packaging_21.3.bb new file mode 100644 index 0000000000..a81fd94d37 --- /dev/null +++ b/meta/recipes-devtools/python/python3-packaging_21.3.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Core utilities for Python packages" +HOMEPAGE = "https://github.com/pypa/packaging" +LICENSE = "Apache-2.0 | BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91" + +SRC_URI[sha256sum] = "dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb" + +inherit pypi setuptools_build_meta + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN} += "${PYTHON_PN}-pyparsing" diff --git a/meta/recipes-devtools/python/python3-pathlib2_2.3.6.bb b/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb index 8516bbe4d4..673b5c7ef0 100644 --- a/meta/recipes-devtools/python/python3-pathlib2_2.3.6.bb +++ b/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb @@ -3,10 +3,10 @@ HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2dc08586cce3ab91bfa091b655c0e440" -SRC_URI[sha256sum] = "7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f" +SRC_URI[sha256sum] = "7a4329d67beff9a712e1d3ae147e4e3e108b0bfd284ffdea03a635126c76b3c0" inherit pypi setuptools3 -RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-ctypes" +RDEPENDS:${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-ctypes" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-pbr_5.6.0.bb b/meta/recipes-devtools/python/python3-pbr_5.6.0.bb deleted file mode 100644 index 132e6e52b6..0000000000 --- a/meta/recipes-devtools/python/python3-pbr_5.6.0.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit setuptools3 -require python-pbr.inc - -SRC_URI[sha256sum] = "42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd" diff --git a/meta/recipes-devtools/python/python3-pbr_5.8.1.bb b/meta/recipes-devtools/python/python3-pbr_5.8.1.bb new file mode 100644 index 0000000000..c8664018fa --- /dev/null +++ b/meta/recipes-devtools/python/python3-pbr_5.8.1.bb @@ -0,0 +1,4 @@ +inherit setuptools3 +require python-pbr.inc + +SRC_URI[sha256sum] = "66bc5a34912f408bb3925bf21231cb6f59206267b7f63f3503ef865c1a292e25" 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 index 0187001168..d6c27b8461 100644 --- 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 @@ -1,4 +1,4 @@ -From baa85a4dab2e8d64eb25d1181b6420db25ce919a Mon Sep 17 00:00:00 2001 +From dca973830d4eee3e0f79e61237c44a9dd8201641 Mon Sep 17 00:00:00 2001 From: Trevor Gamblin <trevor.gamblin@windriver.com> Date: Tue, 22 Jun 2021 12:31:46 -0400 Subject: [PATCH] change shebang to python3 @@ -10,8 +10,8 @@ to "python" instead of "python3", so patch them as needed to ensure that they correctly reference the python3 binary. Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> + --- - src/pip/_vendor/appdirs.py | 2 +- src/pip/_vendor/chardet/langbulgarianmodel.py | 2 +- src/pip/_vendor/chardet/langgreekmodel.py | 2 +- src/pip/_vendor/chardet/langhebrewmodel.py | 2 +- @@ -21,20 +21,10 @@ Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> src/pip/_vendor/chardet/langturkishmodel.py | 2 +- src/pip/_vendor/chardet/metadata/languages.py | 2 +- src/pip/_vendor/requests/certs.py | 2 +- - 10 files changed, 10 insertions(+), 10 deletions(-) + 9 files changed, 9 insertions(+), 9 deletions(-) -diff --git a/src/pip/_vendor/appdirs.py b/src/pip/_vendor/appdirs.py -index 33a3b7741..60b9ef5f7 100644 ---- a/src/pip/_vendor/appdirs.py -+++ b/src/pip/_vendor/appdirs.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # -*- coding: utf-8 -*- - # Copyright (c) 2005-2010 ActiveState Software Inc. - # Copyright (c) 2013 Eddy Petrișor diff --git a/src/pip/_vendor/chardet/langbulgarianmodel.py b/src/pip/_vendor/chardet/langbulgarianmodel.py -index e963a5097..97ea6cea8 100644 +index e963a50..97ea6ce 100644 --- a/src/pip/_vendor/chardet/langbulgarianmodel.py +++ b/src/pip/_vendor/chardet/langbulgarianmodel.py @@ -1,4 +1,4 @@ @@ -44,7 +34,7 @@ index e963a5097..97ea6cea8 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langgreekmodel.py b/src/pip/_vendor/chardet/langgreekmodel.py -index d99528ede..4a127ea83 100644 +index d99528e..4a127ea 100644 --- a/src/pip/_vendor/chardet/langgreekmodel.py +++ b/src/pip/_vendor/chardet/langgreekmodel.py @@ -1,4 +1,4 @@ @@ -54,7 +44,7 @@ index d99528ede..4a127ea83 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langhebrewmodel.py b/src/pip/_vendor/chardet/langhebrewmodel.py -index 484c652a4..676c1a711 100644 +index 484c652..676c1a7 100644 --- a/src/pip/_vendor/chardet/langhebrewmodel.py +++ b/src/pip/_vendor/chardet/langhebrewmodel.py @@ -1,4 +1,4 @@ @@ -64,7 +54,7 @@ index 484c652a4..676c1a711 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langhungarianmodel.py b/src/pip/_vendor/chardet/langhungarianmodel.py -index bbc5cda64..042eae70a 100644 +index bbc5cda..042eae7 100644 --- a/src/pip/_vendor/chardet/langhungarianmodel.py +++ b/src/pip/_vendor/chardet/langhungarianmodel.py @@ -1,4 +1,4 @@ @@ -74,7 +64,7 @@ index bbc5cda64..042eae70a 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langrussianmodel.py b/src/pip/_vendor/chardet/langrussianmodel.py -index 5594452b5..564b02e58 100644 +index 5594452..564b02e 100644 --- a/src/pip/_vendor/chardet/langrussianmodel.py +++ b/src/pip/_vendor/chardet/langrussianmodel.py @@ -1,4 +1,4 @@ @@ -84,7 +74,7 @@ index 5594452b5..564b02e58 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langthaimodel.py b/src/pip/_vendor/chardet/langthaimodel.py -index 9a37db573..c97487959 100644 +index 9a37db5..c974879 100644 --- a/src/pip/_vendor/chardet/langthaimodel.py +++ b/src/pip/_vendor/chardet/langthaimodel.py @@ -1,4 +1,4 @@ @@ -94,7 +84,7 @@ index 9a37db573..c97487959 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/langturkishmodel.py b/src/pip/_vendor/chardet/langturkishmodel.py -index 43f4230ae..7e710c371 100644 +index 43f4230..7e710c3 100644 --- a/src/pip/_vendor/chardet/langturkishmodel.py +++ b/src/pip/_vendor/chardet/langturkishmodel.py @@ -1,4 +1,4 @@ @@ -104,7 +94,7 @@ index 43f4230ae..7e710c371 100644 from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel diff --git a/src/pip/_vendor/chardet/metadata/languages.py b/src/pip/_vendor/chardet/metadata/languages.py -index 3237d5abf..aa2ec7c35 100644 +index 3237d5a..aa2ec7c 100644 --- a/src/pip/_vendor/chardet/metadata/languages.py +++ b/src/pip/_vendor/chardet/metadata/languages.py @@ -1,4 +1,4 @@ @@ -114,7 +104,7 @@ index 3237d5abf..aa2ec7c35 100644 """ Metadata about languages used by our model training code for our diff --git a/src/pip/_vendor/requests/certs.py b/src/pip/_vendor/requests/certs.py -index 06a594e58..bfa7839a4 100644 +index 06a594e..bfa7839 100644 --- a/src/pip/_vendor/requests/certs.py +++ b/src/pip/_vendor/requests/certs.py @@ -1,4 +1,4 @@ @@ -123,6 +113,3 @@ index 06a594e58..bfa7839a4 100644 # -*- coding: utf-8 -*- """ --- -2.31.1 - 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..920e22bc02 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip/no_shebang_mangling.patch @@ -0,0 +1,28 @@ +Patch pip to disable shebang mangling and also force the python executable +to be python3 from the environment when building anything for the target +(or nativesdk). This avoids incorrect interpreter paths in the target scripts. + +Upstream-Status: Inappropriate [OE specific config] + +Index: pip-22.0.3/src/pip/_vendor/distlib/scripts.py +=================================================================== +--- pip-22.0.3.orig/src/pip/_vendor/distlib/scripts.py ++++ pip-22.0.3/src/pip/_vendor/distlib/scripts.py +@@ -135,6 +135,8 @@ class ScriptMaker(object): + See also: http://www.in-ulm.de/~mascheck/various/shebang/#length + https://hg.mozilla.org/mozilla-central/file/tip/mach + """ ++ if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ: ++ return b'#!/usr/bin/env python3' + if os.name != 'posix': + simple_shebang = True + else: +@@ -340,7 +342,7 @@ class ScriptMaker(object): + return + + match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) +- if match: ++ if False: + adjust = True + post_interp = match.group(1) or b'' + diff --git a/meta/recipes-devtools/python/python3-pip/reproducible.patch b/meta/recipes-devtools/python/python3-pip/reproducible.patch new file mode 100644 index 0000000000..538bb94f7a --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip/reproducible.patch @@ -0,0 +1,74 @@ +Pip installed wheels are not reproducible currently. The direct_url +files encode an installation path and the installed wheels compile +the python files at their location, not their final install location +which is incorrect. + +To fix this, simply disable the direct_urls and pass the "root" to +the python compile function to strip that path out of the compiled +files. + +A version of this patch, perhaps stripping root from the direct_urls +may be something that could be considered by upstream. + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Upstream-Status: Pending + +Index: pip-22.0.3/src/pip/_internal/req/req_install.py +=================================================================== +--- pip-22.0.3.orig/src/pip/_internal/req/req_install.py ++++ pip-22.0.3/src/pip/_internal/req/req_install.py +@@ -758,7 +758,9 @@ class InstallRequirement: + if self.is_wheel: + assert self.local_file_path + direct_url = None +- if self.editable: ++ if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ: ++ direct_url = None ++ elif self.editable: + direct_url = direct_url_for_editable(self.unpacked_source_directory) + elif self.original_link: + direct_url = direct_url_from_link( +@@ -775,6 +777,7 @@ class InstallRequirement: + warn_script_location=warn_script_location, + direct_url=direct_url, + requested=self.user_supplied, ++ root=root, + ) + self.install_succeeded = True + return +Index: pip-22.0.3/src/pip/_internal/operations/install/wheel.py +=================================================================== +--- pip-22.0.3.orig/src/pip/_internal/operations/install/wheel.py ++++ pip-22.0.3/src/pip/_internal/operations/install/wheel.py +@@ -436,6 +436,7 @@ def _install_wheel( + warn_script_location: bool = True, + direct_url: Optional[DirectUrl] = None, + requested: bool = False, ++ root: str = None, + ) -> None: + """Install a wheel. + +@@ -612,7 +613,7 @@ def _install_wheel( + with warnings.catch_warnings(): + warnings.filterwarnings("ignore") + for path in pyc_source_file_paths(): +- success = compileall.compile_file(path, force=True, quiet=True) ++ success = compileall.compile_file(path, force=True, quiet=True, stripdir=root) + if success: + pyc_path = pyc_output_path(path) + assert os.path.exists(pyc_path) +@@ -723,6 +724,7 @@ def install_wheel( + warn_script_location: bool = True, + direct_url: Optional[DirectUrl] = None, + requested: bool = False, ++ root: str = None, + ) -> None: + with ZipFile(wheel_path, allowZip64=True) as z: + with req_error_context(req_description): +@@ -735,4 +737,5 @@ def install_wheel( + warn_script_location=warn_script_location, + direct_url=direct_url, + requested=requested, ++ root=root, + ) diff --git a/meta/recipes-devtools/python/python3-pip_21.1.3.bb b/meta/recipes-devtools/python/python3-pip_21.1.3.bb deleted file mode 100644 index 0f105c2393..0000000000 --- a/meta/recipes-devtools/python/python3-pip_21.1.3.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "The PyPA recommended tool for installing Python packages" -HOMEPAGE = "https://pypi.org/project/pip" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c4fa2b50f55649f43060fa04b0919b9b" - -DEPENDS += "python3 python3-setuptools-native" - -inherit pypi distutils3 - -SRC_URI += "file://0001-change-shebang-to-python3.patch" - -SRC_URI[sha256sum] = "b5b1eb91b36894bd01b8e5a56a422c2f3838573da0b0a1c63a096bb454e3b23f" - -do_install_append() { - # Install as pip3 and leave pip2 as default - rm ${D}/${bindir}/pip -} - -RDEPENDS_${PN} = "\ - python3-compile \ - python3-io \ - python3-html \ - python3-json \ - python3-multiprocessing \ - python3-netserver \ - python3-setuptools \ - python3-unixadmin \ - python3-xmlrpc \ - python3-pickle \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-pip_22.0.3.bb b/meta/recipes-devtools/python/python3-pip_22.0.3.bb new file mode 100644 index 0000000000..9ca8fbc1e5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pip_22.0.3.bb @@ -0,0 +1,36 @@ +SUMMARY = "The PyPA recommended tool for installing Python packages" +HOMEPAGE = "https://pypi.org/project/pip" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=63ec52baf95163b597008bb46db68030" + +inherit pypi setuptools_build_meta + +SRC_URI += "file://0001-change-shebang-to-python3.patch" +SRC_URI += "file://no_shebang_mangling.patch" +SRC_URI += "file://reproducible.patch" + +SRC_URI[sha256sum] = "f29d589df8c8ab99c060e68ad294c4a9ed896624f6368c5349d70aa581b333d0" + +do_install:append() { + rm -f ${D}/${bindir}/pip +} + +RDEPENDS:${PN} = "\ + python3-compile \ + python3-io \ + python3-html \ + python3-json \ + python3-multiprocessing \ + python3-netserver \ + python3-setuptools \ + python3-unixadmin \ + python3-xmlrpc \ + python3-pickle \ +" + +BBCLASSEXTEND = "native nativesdk" + +# This used to use the bootstrap install which didn't compile. Until we bump the +# tmpdir version we can't compile the native otherwise the sysroot unpack fails +INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" diff --git a/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb b/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb index d3e0365ca1..73bbcb0269 100644 --- a/meta/recipes-devtools/python/python3-pluggy_0.13.1.bb +++ b/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb @@ -3,21 +3,20 @@ HOMEPAGE = "https://github.com/pytest-dev/pluggy" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2" -SRC_URI[md5sum] = "7f610e28b8b34487336b585a3dfb803d" -SRC_URI[sha256sum] = "15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0" +SRC_URI[sha256sum] = "4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -RDEPENDS_${PN} += "${PYTHON_PN}-importlib-metadata \ +RDEPENDS:${PN} += "${PYTHON_PN}-importlib-metadata \ ${PYTHON_PN}-more-itertools \ " -inherit pypi ptest setuptools3 +inherit pypi ptest setuptools_build_meta SRC_URI += " \ file://run-ptest \ " -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ " 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..99c037bb73 --- /dev/null +++ b/meta/recipes-devtools/python/python3-ply_3.11.bb @@ -0,0 +1,18 @@ +SUMMARY = "Python Lex and Yacc" +DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python" +HOMEPAGE = "https://pypi.python.org/pypi/ply" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c" + +SRC_URI[md5sum] = "6465f602e656455affcd7c5734c638f8" +SRC_URI[sha256sum] = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3" + +inherit pypi setuptools3 + +RDEPENDS:${PN}:class-target += "\ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native" diff --git a/meta/recipes-devtools/python/python3-poetry-core_1.0.8.bb b/meta/recipes-devtools/python/python3-poetry-core_1.0.8.bb new file mode 100644 index 0000000000..f3e9b05521 --- /dev/null +++ b/meta/recipes-devtools/python/python3-poetry-core_1.0.8.bb @@ -0,0 +1,44 @@ +SUMMARY = "Poetry PEP 517 Build Backend" +DESCRIPTION = "Poetry PEP 517 Build Backend" +HOMEPAGE = "https://github.com/python-poetry/poetry-core" +BUGTRACKER = "https://github.com/python-poetry/poetry-core" +CHANGELOG = "https://github.com/python-poetry/poetry-core/blob/master/CHANGELOG.md" + +LICENSE = "Apache-2.0 & BSD-2-Clause & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=104d5c3c653aeededf4076773aa4c236 \ + file://poetry/core/_vendor/attrs.LICENSE;md5=75bb9823a2778b5a2bd9b793fac93ea2 \ + file://poetry/core/_vendor/jsonschema/COPYING;md5=6554d3a51d7cb0b611891317f3c69057 \ + file://poetry/core/_vendor/jsonschema/LICENSE;md5=2ecb81765361195731a6f72a89e449fd \ + file://poetry/core/_vendor/lark-parser.LICENSE;md5=b37b83a9cf129d92ee65aaa71c01ce72 \ + file://poetry/core/_vendor/packaging/LICENSE;md5=7a6e56c9d54ecd731ab31c52de7942f0 \ + file://poetry/core/_vendor/packaging/LICENSE.APACHE;md5=29256199be2a609aac596980ffc11996 \ + file://poetry/core/_vendor/packaging/LICENSE.BSD;md5=f405810d173a1618433827928768bcd2 \ + file://poetry/core/_vendor/pyparsing.LICENSE;md5=fb46329938e6bc829b256e37d5c1e31a \ + file://poetry/core/_vendor/pyrsistent/LICENSE.mit;md5=1211a1ac6eac40020d0f99c39b4e4270 \ + file://poetry/core/_vendor/six.LICENSE;md5=6a574656da93d9ef05431b45907e35b6 \ + file://poetry/core/_vendor/tomlkit/LICENSE;md5=be329e5ef9c9fe86738c9afe6ef3c11c \ + " + +SRC_URI[sha256sum] = "951fc7c1f8d710a94cb49019ee3742125039fc659675912ea614ac2aa405b118" + +inherit python_poetry_core pypi + +RDEPENDS:${PN}:append:class-target = "\ + python3-compression \ + python3-core \ + python3-crypt \ + python3-io \ + python3-json \ + python3-logging \ + python3-netclient \ + python3-pathlib2 \ + python3-pprint \ + python3-shell \ +" + +RDEPENDS:${PN} += "\ + python3-pip \ + python3-six \ +" + +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 @@ +SUMMARY = "A library for stubbing in Python" +HOMEPAGE = "https://github.com/alex/pretend" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99" + +SRC_URI[md5sum] = "ad53883ede48aeac7ae584f0de0240e8" +SRC_URI[sha256sum] = "c90eb810cde8ebb06dafcb8796f9a95228ce796531bc806e794c2f4649aa1b10" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch b/meta/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch new file mode 100644 index 0000000000..34ea03b27f --- /dev/null +++ b/meta/recipes-devtools/python/python3-psutil/0001-fix-failure-test-cases.patch @@ -0,0 +1,197 @@ +From 8b4e38958ff8bdbb3ece4796bfa2d3b6f7536f71 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 23 Feb 2022 11:54:40 +0800 +Subject: [PATCH] fix failure test cases + +The test cases is not robust enough. skip some cases that is +not suitable for all conditions. + +* test_io_counters failed when kernel config CONFIG_TASKSTATS + and CONFIG_TASK_IO_ACCOUNTING are not enable in OE +* test_setup_script failed since oe don't install setup.py +* test_used failed since oe use git source for free, so the version + is 3.3.17-dirty +* test_weird_environ failed since gcc not installed +* test_debug failed since it is designed to run when PSUTIL_DEBUG is set +* test_against_findmnt/test_comparisons/test_disk_partitions_mocked/ + test_disk_partitions is not suitable for Linux nfs boot + +Upstream-Status: Pending + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + psutil/tests/test_contracts.py | 1 + + psutil/tests/test_linux.py | 8 ++++++-- + psutil/tests/test_misc.py | 4 ++++ + psutil/tests/test_process.py | 5 +++++ + psutil/tests/test_system.py | 1 + + psutil/tests/test_unicode.py | 4 +++- + 6 files changed, 20 insertions(+), 3 deletions(-) + +diff --git a/psutil/tests/test_contracts.py b/psutil/tests/test_contracts.py +index 7401cc1..bf0fca0 100755 +--- a/psutil/tests/test_contracts.py ++++ b/psutil/tests/test_contracts.py +@@ -172,6 +172,7 @@ class TestAvailProcessAPIs(PsutilTestCase): + def test_rlimit(self): + self.assertEqual(hasattr(psutil.Process, "rlimit"), LINUX or FREEBSD) + ++ @unittest.skip("broken on OE since kernel config maye not be enabled") + def test_io_counters(self): + hasit = hasattr(psutil.Process, "io_counters") + self.assertEqual(hasit, False if MACOS or SUNOS else True) +diff --git a/psutil/tests/test_linux.py b/psutil/tests/test_linux.py +index 20e28d2..66b6dda 100755 +--- a/psutil/tests/test_linux.py ++++ b/psutil/tests/test_linux.py +@@ -196,8 +196,9 @@ def get_free_version_info(): + out = sh(["free", "-V"]).strip() + if 'UNKNOWN' in out: + raise unittest.SkipTest("can't determine free version") +- return tuple(map(int, out.split()[-1].split('.'))) +- ++ vlist = out.split()[-1].split('.') ++ vlist[:] = [n.split('-')[0] for n in vlist] ++ return tuple(map(int, vlist)) + + @contextlib.contextmanager + def mock_open_content(for_path, content): +@@ -1289,6 +1290,7 @@ class TestRootFsDeviceFinder(PsutilTestCase): + finder.ask_sys_class_block() + + @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS") ++ @unittest.skip("Broken for oe") + def test_comparisons(self): + finder = RootFsDeviceFinder() + self.assertIsNotNone(finder.find()) +@@ -1311,11 +1313,13 @@ class TestRootFsDeviceFinder(PsutilTestCase): + + @unittest.skipIf(not which("findmnt"), "findmnt utility not available") + @unittest.skipIf(GITHUB_ACTIONS, "unsupported on GITHUB_ACTIONS") ++ @unittest.skip("Broken for oe") + def test_against_findmnt(self): + psutil_value = RootFsDeviceFinder().find() + findmnt_value = sh("findmnt -o SOURCE -rn /") + self.assertEqual(psutil_value, findmnt_value) + ++ @unittest.skip("Broken for oe") + def test_disk_partitions_mocked(self): + with mock.patch( + 'psutil._pslinux.cext.disk_partitions', +diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py +index d946eb6..121004a 100755 +--- a/psutil/tests/test_misc.py ++++ b/psutil/tests/test_misc.py +@@ -54,6 +54,8 @@ from psutil.tests import unittest + # =================================================================== + + ++PSUTIL_DEBUG = bool(os.getenv('PSUTIL_DEBUG', 0)) ++ + class TestMisc(PsutilTestCase): + + def test_process__repr__(self, func=repr): +@@ -368,6 +370,7 @@ class TestMisc(PsutilTestCase): + + # XXX: https://github.com/pypa/setuptools/pull/2896 + @unittest.skipIf(APPVEYOR, "temporarily disabled due to setuptools bug") ++ @unittest.skip("OE run this test outof source tree") + def test_setup_script(self): + setup_py = os.path.join(ROOT_DIR, 'setup.py') + if CI_TESTING and not os.path.exists(setup_py): +@@ -401,6 +404,7 @@ class TestMisc(PsutilTestCase): + reload_module(psutil) + self.assertIn("version conflict", str(cm.exception).lower()) + ++ @unittest.skipIf(not PSUTIL_DEBUG, "env PSUTIL_DEBUG not set") + def test_debug(self): + if PY3: + from io import StringIO +diff --git a/psutil/tests/test_process.py b/psutil/tests/test_process.py +index c9059e3..a34ba3d 100755 +--- a/psutil/tests/test_process.py ++++ b/psutil/tests/test_process.py +@@ -36,6 +36,7 @@ from psutil._compat import PY3 + from psutil._compat import FileNotFoundError + from psutil._compat import long + from psutil._compat import super ++from psutil._compat import which + from psutil.tests import APPVEYOR + from psutil.tests import CI_TESTING + from psutil.tests import GITHUB_ACTIONS +@@ -726,6 +727,7 @@ class TestProcess(PsutilTestCase): + self.assertEqual(' '.join(p.cmdline()), ' '.join(cmdline)) + + @unittest.skipIf(PYPY, "broken on PYPY") ++ @unittest.skipIf(not which("gcc"), "gcc not installed") + def test_long_cmdline(self): + testfn = self.get_testfn() + create_exe(testfn) +@@ -740,6 +742,7 @@ class TestProcess(PsutilTestCase): + assert pyexe.startswith(name), (pyexe, name) + + @unittest.skipIf(PYPY, "unreliable on PYPY") ++ @unittest.skipIf(not which("gcc"), "gcc not installed") + def test_long_name(self): + testfn = self.get_testfn(suffix="0123456789" * 2) + create_exe(testfn) +@@ -750,6 +753,7 @@ class TestProcess(PsutilTestCase): + @unittest.skipIf(SUNOS, "broken on SUNOS") + @unittest.skipIf(AIX, "broken on AIX") + @unittest.skipIf(PYPY, "broken on PYPY") ++ @unittest.skipIf(not which("gcc"), "gcc not installed") + def test_prog_w_funky_name(self): + # Test that name(), exe() and cmdline() correctly handle programs + # with funky chars such as spaces and ")", see: +@@ -1408,6 +1412,7 @@ class TestProcess(PsutilTestCase): + + @unittest.skipIf(not HAS_ENVIRON, "not supported") + @unittest.skipIf(not POSIX, "POSIX only") ++ @unittest.skipIf(not which("gcc"), "gcc not installed") + def test_weird_environ(self): + # environment variables can contain values without an equals sign + code = textwrap.dedent(""" +diff --git a/psutil/tests/test_system.py b/psutil/tests/test_system.py +index db2cb34..5ee519f 100755 +--- a/psutil/tests/test_system.py ++++ b/psutil/tests/test_system.py +@@ -580,6 +580,7 @@ class TestDiskAPIs(PsutilTestCase): + def test_disk_usage_bytes(self): + psutil.disk_usage(b'.') + ++ @unittest.skip("Broken for oe") + def test_disk_partitions(self): + def check_ntuple(nt): + self.assertIsInstance(nt.device, str) +diff --git a/psutil/tests/test_unicode.py b/psutil/tests/test_unicode.py +index e635726..7ba5b0f 100755 +--- a/psutil/tests/test_unicode.py ++++ b/psutil/tests/test_unicode.py +@@ -86,6 +86,7 @@ from psutil import POSIX + from psutil import WINDOWS + from psutil._compat import PY3 + from psutil._compat import u ++from psutil._compat import which + from psutil.tests import APPVEYOR + from psutil.tests import ASCII_FS + from psutil.tests import CI_TESTING +@@ -156,7 +157,7 @@ def try_unicode(suffix): + # FS APIs + # =================================================================== + +- ++@unittest.skipIf(not which("gcc"), "gcc not installed") + class BaseUnicodeTest(PsutilTestCase): + funky_suffix = None + +@@ -169,6 +170,7 @@ class BaseUnicodeTest(PsutilTestCase): + @serialrun + @unittest.skipIf(ASCII_FS, "ASCII fs") + @unittest.skipIf(PYPY and not PY3, "too much trouble on PYPY2") ++@unittest.skipIf(not which("gcc"), "gcc not installed") + class TestFSAPIs(BaseUnicodeTest): + """Test FS APIs with a funky, valid, UTF8 path name.""" + +-- +2.25.1 + diff --git a/meta/recipes-devtools/python/python3-psutil_5.9.0.bb b/meta/recipes-devtools/python/python3-psutil_5.9.0.bb new file mode 100644 index 0000000000..df304f01e6 --- /dev/null +++ b/meta/recipes-devtools/python/python3-psutil_5.9.0.bb @@ -0,0 +1,29 @@ +SUMMARY = "A cross-platform process and system utilities module for Python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b" +HOMEPAGE = "https://pypi.org/project/psutil/" + +SRC_URI[sha256sum] = "869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25" + +inherit pypi setuptools3 + +SRC_URI += "file://0001-fix-failure-test-cases.patch" + +PACKAGES =+ "${PN}-tests" + +FILES:${PN}-tests += " \ + ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \ + ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \ +" + + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-xml \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-resource \ +" + +BBCLASSEXTEND = "native nativesdk" 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..02027248f4 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/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9" -SRC_URI[sha256sum] = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3" +SRC_URI[sha256sum] = "51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta BBCLASSEXTEND = "native nativesdk" -RDEPENDS_${PN} += "${PYTHON_PN}-netclient" +RDEPENDS:${PN} += "${PYTHON_PN}-netclient" diff --git a/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb b/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb index d169a3ca79..29452c7660 100644 --- a/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb +++ b/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Python bindings for the Cairo canvas library" HOMEPAGE = "http://cairographics.org/pycairo" BUGTRACKER = "http://bugs.freedesktop.org" SECTION = "python-devel" -LICENSE = "LGPLv2.1 & MPLv1.1" +LICENSE = "LGPL-2.1-only & MPL-1.1" LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \ file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325" @@ -13,8 +13,7 @@ DEPENDS = "cairo python3" SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz" UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/" -SRC_URI[md5sum] = "fa88a28cadbfb34192fe743d32c0ee33" -SRC_URI[sha256sum] = "1ee72b035b21a475e1ed648e26541b04e5d7e753d75ca79de8c583b25785531b" +SRC_URI[sha256sum] = "251907f18a552df938aa3386657ff4b5a4937dde70e11aa042bc297957f4b74b" S = "${WORKDIR}/pycairo-${PV}" @@ -24,4 +23,4 @@ CFLAGS += "-fPIC" BBCLASSEXTEND = "native" -FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" +FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" diff --git a/meta/recipes-devtools/python/python3-pycparser_2.21.bb b/meta/recipes-devtools/python/python3-pycparser_2.21.bb new file mode 100644 index 0000000000..53b7367903 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycparser_2.21.bb @@ -0,0 +1,21 @@ +SUMMARY = "Parser of the C language, written in pure Python" +HOMEPAGE = "https://github.com/eliben/pycparser" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2c28cdeabcb88f5843d934381b4b4fea" + +SRC_URI[sha256sum] = "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN}:class-target += "\ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-ply \ + ${PYTHON_PN}-pprint \ + " + +RSUGGESTS:${PN}:class-target += "\ + cpp \ + cpp-symlinks \ + " 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 @@ -require python-pycryptodome.inc -inherit setuptools3 - -SRC_URI[sha256sum] = "3e2e3a06580c5f190df843cdb90ea28d61099cf4924334d5297a995de68e4673" - diff --git a/meta/recipes-devtools/python/python3-pycryptodome_3.14.1.bb b/meta/recipes-devtools/python/python3-pycryptodome_3.14.1.bb new file mode 100644 index 0000000000..c0324590c2 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pycryptodome_3.14.1.bb @@ -0,0 +1,5 @@ +require python-pycryptodome.inc +inherit setuptools3 + +SRC_URI[sha256sum] = "e04e40a7f8c1669195536a37979dd87da2c32dbdc73d6fe35f0077b0c17c803b" + diff --git a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb b/meta/recipes-devtools/python/python3-pycryptodomex_3.14.1.bb index a6b3b3e935..79a3fee19c 100644 --- a/meta/recipes-devtools/python/python3-pycryptodomex_3.10.1.bb +++ b/meta/recipes-devtools/python/python3-pycryptodomex_3.14.1.bb @@ -1,9 +1,9 @@ require python-pycryptodome.inc inherit setuptools3 -SRC_URI[sha256sum] = "541cd3e3e252fb19a7b48f420b798b53483302b7fe4d9954c947605d0a263d62" +SRC_URI[sha256sum] = "2ce76ed0081fd6ac8c74edc75b9d14eca2064173af79843c24fa62573263c1f2" -FILES_${PN}-tests = " \ +FILES:${PN}-tests = " \ ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ " diff --git a/meta/recipes-devtools/python/python3-pyelftools_0.27.bb b/meta/recipes-devtools/python/python3-pyelftools_0.28.bb index 0cfd99504b..0ceddcb68a 100644 --- a/meta/recipes-devtools/python/python3-pyelftools_0.27.bb +++ b/meta/recipes-devtools/python/python3-pyelftools_0.28.bb @@ -4,10 +4,12 @@ SECTION = "devel/python" LICENSE = "PD" LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc" -SRC_URI[sha256sum] = "cde854e662774c5457d688ca41615f6594187ba7067af101232df889a6b7a66b" +SRC_URI[sha256sum] = "53e5609cac016471d40bd88dc410cd90755942c25e58a61021cfdf7abdfeacff" PYPI_PACKAGE = "pyelftools" inherit pypi setuptools3 BBCLASSEXTEND = "native" + +RDEPENDS:${PN} += "${PYTHON_PN}-debugger ${PYTHON_PN}-pprint" diff --git a/meta/recipes-devtools/python/python3-pygments_2.9.0.bb b/meta/recipes-devtools/python/python3-pygments_2.11.2.bb index 7fedcb5a88..35d288c89e 100644 --- a/meta/recipes-devtools/python/python3-pygments_2.9.0.bb +++ b/meta/recipes-devtools/python/python3-pygments_2.11.2.bb @@ -5,7 +5,7 @@ LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc" inherit setuptools3 -SRC_URI[sha256sum] = "a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f" +SRC_URI[sha256sum] = "4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a" DEPENDS += "\ ${PYTHON_PN} \ diff --git a/meta/recipes-devtools/python/python3-pygobject_3.40.1.bb b/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb index f5679a4ba2..360996dbb7 100644 --- a/meta/recipes-devtools/python/python3-pygobject_3.40.1.bb +++ b/meta/recipes-devtools/python/python3-pygobject_3.42.0.bb @@ -2,11 +2,13 @@ SUMMARY = "Python GObject bindings" HOMEPAGE = "https://gitlab.gnome.org/GNOME/pygobject" DESCRIPTION = "PyGObject is a Python package which provides bindings for GObject based libraries such as GTK, GStreamer, WebKitGTK, GLib, GIO and many more." SECTION = "devel/python" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase distutils3-base gobject-introspection upstream-version-is-even +GIR_MESON_OPTION = "" + +inherit gnomebase setuptools3-base gobject-introspection upstream-version-is-even DEPENDS += "python3 glib-2.0" @@ -16,19 +18,17 @@ SRC_URI = " \ http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \ file://0001-Do-not-build-tests.patch \ " -SRC_URI[sha256sum] = "00c6d591f4cb40c335ab1fd3e8c17869ba15cfda54416fe363290af766790035" - -UNKNOWN_CONFIGURE_WHITELIST = "introspection" +SRC_URI[sha256sum] = "9b12616e32cfc792f9dc841d9c472a41a35b85ba67d3a6eb427e307a6fe4367b" S = "${WORKDIR}/${SRCNAME}-${PV}" PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" -RDEPENDS_${PN} += "python3-pkgutil" +RDEPENDS:${PN} += "python3-pkgutil" # python3-pycairo is checked on configuration -> DEPENDS # we don't link against python3-pycairo -> RDEPENDS PACKAGECONFIG[cairo] = "-Dpycairo=enabled,-Dpycairo=disabled, cairo python3-pycairo, python3-pycairo" BBCLASSEXTEND = "native" -PACKAGECONFIG_class-native = "" +PACKAGECONFIG:class-native = "" 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 @@ -inherit setuptools3 -require python-pyparsing.inc - diff --git a/meta/recipes-devtools/python/python3-pyparsing_3.0.7.bb b/meta/recipes-devtools/python/python3-pyparsing_3.0.7.bb new file mode 100644 index 0000000000..9c3896918f --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyparsing_3.0.7.bb @@ -0,0 +1,30 @@ +SUMMARY = "Python parsing module" +DESCRIPTION = "The pyparsing module is an alternative approach to creating \ +and executing simple grammars, vs. the traditional lex/yacc approach, or \ +the use of regular expressions. The pyparsing module provides a library of \ +classes that client code uses to construct the grammar directly in Python \ +code." +HOMEPAGE = "https://github.com/pyparsing/pyparsing/" +BUGTRACKER = "https://github.com/pyparsing/pyparsing/issues" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1" + +SRC_URI[sha256sum] = "18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea" + +UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb b/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb new file mode 100644 index 0000000000..ecd55672f5 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pyrsistent_0.18.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Persistent/Immutable/Functional data structures for Python" +HOMEPAGE = "https://github.com/tobgu/pyrsistent" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.mit;md5=b695eb9c6e7a6fb1b1bc2d193c42776e" + +SRC_URI[sha256sum] = "d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96" + +inherit pypi setuptools_build_meta + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-numbers \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb b/meta/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb new file mode 100644 index 0000000000..5e4847b8d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytest-subtests_0.6.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "unittest subTest() support and subtests fixture." +DESCRIPTION = "Adds support for TestCase.subTest.\ +New subtests fixture, providing similar functionality for pure pytest tests." +HOMEPAGE = "https://github.com/pytest-dev/pytest-subtests" +BUGTRACKER = "https://github.com/pytest-dev/pytest-subtests/issues" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1" + +SRC_URI[sha256sum] = "3ebd306a8dcf75133f1742f288c82f36426ebcf8a132d4ee89782d20e84fc13a" + +inherit pypi setuptools3 + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-pytest \ +" + +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 @@ -From ead04f2da75efeca3369feff6161ea4a8baecbc9 Mon Sep 17 00:00:00 2001 -From: Yuan Chao <yuanc.fnst@cn.fujitsu.com> -Date: Wed, 28 Aug 2019 16:12:27 +0900 -Subject: [PATCH] setup.py: remove the setup_requires for setuptools-scm - -The setup_requires argument forces the download of the egg file for setuptools-scm -during the do_compile phase. This download is incompatible with the typical fetch -and mirror structure. The only usage of scm is the generation of the _version.py -file and in the release tarball it is already correctly created - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Derek Straka <derek@asterius.io> - -Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com> - -Rebase for pytest 6.1.0. - -Signed-off-by: Kai Kang <kai.kang@windriver.com> - ---- - setup.cfg | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/setup.cfg b/setup.cfg -index 6ed0792..0137090 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -53,7 +53,6 @@ package_dir = - =src - setup_requires = - setuptools>=>=42.0 -- setuptools-scm>=3.4 - zip_safe = no - - [options.entry_points] diff --git a/meta/recipes-devtools/python/python3-pytest_6.2.4.bb b/meta/recipes-devtools/python/python3-pytest_7.0.1.bb index fa43e6ebf0..ea6ba80300 100644 --- a/meta/recipes-devtools/python/python3-pytest_6.2.4.bb +++ b/meta/recipes-devtools/python/python3-pytest_7.0.1.bb @@ -3,15 +3,15 @@ HOMEPAGE = "https://pypi.org/project/pytest/" DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries." LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=81eb9f71d006c6b268cf4388e3c98f7b" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c" -SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch " +SRC_URI[sha256sum] = "e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171" -SRC_URI[sha256sum] = "50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b" +DEPENDS += "python3-setuptools-scm-native" -inherit update-alternatives pypi setuptools3 +inherit update-alternatives pypi setuptools_build_meta -RDEPENDS_${PN}_class-target += " \ +RDEPENDS:${PN}:class-target += " \ ${PYTHON_PN}-atomicwrites \ ${PYTHON_PN}-attrs \ ${PYTHON_PN}-debugger \ @@ -30,7 +30,7 @@ RDEPENDS_${PN}_class-target += " \ ${PYTHON_PN}-wcwidth \ " -ALTERNATIVE_${PN} += "py.test pytest" +ALTERNATIVE:${PN} += "py.test pytest" NATIVE_LINK_NAME[pytest] = "${bindir}/pytest" ALTERNATIVE_TARGET[pytest] = "${bindir}/pytest" 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..b63c4de0d9 --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytz/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +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-pytz_2021.3.bb b/meta/recipes-devtools/python/python3-pytz_2021.3.bb new file mode 100644 index 0000000000..119342a4bd --- /dev/null +++ b/meta/recipes-devtools/python/python3-pytz_2021.3.bb @@ -0,0 +1,35 @@ +SUMMARY = "World timezone definitions, modern and historical" +HOMEPAGE = "http://pythonhosted.org/pytz" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a67fc46c1b596cce5d21209bbe75999" + +inherit pypi setuptools3 ptest + +SRC_URI[sha256sum] = "acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326" + +RDEPENDS:${PN}:class-target += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/pytz + install -d ${D}${PTEST_PATH}/pytz/tests + cp -rf ${S}/pytz/tests/* ${D}${PTEST_PATH}/pytz/tests/ + cp -f ${S}/README.rst ${D}${PTEST_PATH}/ + +} diff --git a/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.bb index dce1ad57d3..6fe726110d 100644 --- a/meta/recipes-devtools/python/python3-pyyaml_5.4.1.bb +++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.bb @@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6d8242660a8371add5fe547adf083079" PYPI_PACKAGE = "PyYAML" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta -SRC_URI[sha256sum] = "607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e" +SRC_URI[sha256sum] = "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2" -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ ${PYTHON_PN}-datetime \ ${PYTHON_PN}-netclient \ " 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..9bc5fed921 --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3339-validator_0.1.4.bb @@ -0,0 +1,21 @@ +SUMMARY = "A pure python RFC3339 validator" +HOMEPAGE = "https://github.com/naimetti/rfc3339-validator" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" + +FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3339-validator:" + +SRC_URI[sha256sum] = "138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b" + +PYPI_PACKAGE = "rfc3339_validator" +UPSTREAM_CHECK_REGEX = "/rfc3339-validator/(?P<pver>(\d+[\.\-_]*)+)/" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-six \ +" + +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..4abd181acf --- /dev/null +++ b/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "Pure python rfc3986 validator" +HOMEPAGE = "https://github.com/naimetti/rfc3986-validator" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a21b13b5a996f08f7e0b088aa38ce9c6" + +FILESEXTRAPATHS:prepend := "${THISDIR}/python-rfc3986-validator:" + +SRC_URI[md5sum] = "47f7657b790aaf6011a1ab3d86c6be95" +SRC_URI[sha256sum] = "3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" + +PYPI_PACKAGE = "rfc3986_validator" +UPSTREAM_CHECK_REGEX = "/rfc3986-validator/(?P<pver>(\d+[\.\-_]*)+)/" + +inherit pypi setuptools3 + +SRC_URI:append = " \ + file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \ +" + +RDEPENDS:${PN} += "\ + python3-core \ +" + +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 @@ +SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)" +HOMEPAGE = "https://pypi.org/project/rfc3987/" +LICENSE = "GPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d" + +SRC_URI[md5sum] = "b6c4028acdc788a9ba697e1c1d6b896c" +SRC_URI[sha256sum] = "d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.21.bb b/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.21.bb new file mode 100644 index 0000000000..7d65c4c2d8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.21.bb @@ -0,0 +1,24 @@ +SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order." +HOMEPAGE = "https://pypi.org/project/ruamel.yaml/" +AUTHOR = "Anthon van der Neut" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=034154b7344d15438bc5ed5ee9cc075f" + +PYPI_PACKAGE = "ruamel.yaml" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af" + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-netclient \ +" + +do_install:prepend() { + export RUAMEL_NO_PIP_INSTALL_CHECK=1 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb b/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb deleted file mode 100644 index 9e127304d6..0000000000 --- a/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -require python3-scons_${PV}.bb -inherit native python3native -DEPENDS = "python3-native python3-setuptools-native" - -do_install_append() { - create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' -} 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 index ff212b85ee..6dffe64809 100644 --- 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 @@ -1,4 +1,4 @@ -From 82be2b7b9758a2f62ee11931da674cd541076041 Mon Sep 17 00:00:00 2001 +From 8b482e618047e94833545dce3a26924ef4f075db Mon Sep 17 00:00:00 2001 From: Tim Orling <ticotimo@gmail.com> Date: Sat, 22 May 2021 11:20:46 -0700 Subject: [PATCH] Fix man page installation @@ -9,10 +9,10 @@ Fixes: Upstream-Status: Inappropriate [oe specific] Signed-off-by: Tim Orling <ticotimo@gmail.com> + --- MANIFEST.in | 2 +- - setup.cfg | 6 +++--- - 2 files changed, 4 insertions(+), 4 deletions(-) + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 04ec000..937f6f3 100644 @@ -27,20 +27,3 @@ index 04ec000..937f6f3 100644 -diff --git a/setup.cfg b/setup.cfg -index 37e5204..677c00a 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -56,9 +56,9 @@ console_scripts = - scons.tool.docbook = *.* - - [options.data_files] --. = build/doc/man/scons.1 -- build/doc/man/scons-time.1 -- build/doc/man/sconsign.1 -+. = scons.1 -+ scons-time.1 -+ sconsign.1 - - [sdist] - dist-dir = build/dist diff --git a/meta/recipes-devtools/python/python3-scons_4.1.0.bb b/meta/recipes-devtools/python/python3-scons_4.1.0.bb deleted file mode 100644 index 5894a5ef3f..0000000000 --- a/meta/recipes-devtools/python/python3-scons_4.1.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Software Construction tool (make/autotools replacement)" -HOMEPAGE = "https://github.com/SCons/scons" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b94c6e2be9670c62b38f7118c12866d2" - -SRC_URI += " file://0001-Fix-man-page-installation.patch" -SRC_URI[sha256sum] = "accb8035be2c9cfbab06471286eaeff86a10037a8064cf4ef4c3df04ea5a7387" - -PYPI_PACKAGE = "SCons" - -inherit pypi setuptools3 - -RDEPENDS_${PN}_class-target = "\ - python3-core \ - python3-compression \ - python3-fcntl \ - python3-importlib-metadata \ - python3-io \ - python3-json \ - python3-shell \ - python3-pickle \ - python3-pkg-resources \ - python3-pprint \ - " - -FILES_${PN}-doc += "${datadir}/scons*.1" diff --git a/meta/recipes-devtools/python/python3-scons_4.3.0.bb b/meta/recipes-devtools/python/python3-scons_4.3.0.bb new file mode 100644 index 0000000000..ae91d980fe --- /dev/null +++ b/meta/recipes-devtools/python/python3-scons_4.3.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "Software Construction tool (make/autotools replacement)" +HOMEPAGE = "https://github.com/SCons/scons" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7" + +SRC_URI += " file://0001-Fix-man-page-installation.patch" +SRC_URI[sha256sum] = "d47081587e3675cc168f1f54f0d74a69b328a2fc90ec4feb85f728677419b879" + +PYPI_PACKAGE = "SCons" + +inherit pypi setuptools3 + +RDEPENDS:${PN}:class-target = "\ + python3-core \ + python3-compression \ + python3-fcntl \ + python3-importlib-metadata \ + python3-io \ + python3-json \ + python3-shell \ + python3-pickle \ + python3-pkg-resources \ + python3-pprint \ + " + +do_install:append() { + install -d ${D}${mandir}/man1 + mv ${D}${prefix}/scons*.1 ${D}${mandir}/man1/ +} + +do_install:append:class-native() { + create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' +} + +BBCLASSEXTEND = "native" diff --git a/meta/recipes-devtools/python/python3-semantic-version_2.9.0.bb b/meta/recipes-devtools/python/python3-semantic-version_2.9.0.bb new file mode 100644 index 0000000000..ee635871bf --- /dev/null +++ b/meta/recipes-devtools/python/python3-semantic-version_2.9.0.bb @@ -0,0 +1,12 @@ +SUMMARY = "A library implementing the 'SemVer' scheme." +DESCRIPTION = "Semantic version comparison for Python (see http://semver.org/)" +HOMEPAGE = "https://github.com/rbarrois/python-semanticversion" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4fb31e3c1c7eeb8b5e8c07657cdd54e2" + +SRC_URI[sha256sum] = "abf54873553e5e07a6fd4d5f653b781f5ae41297a493666b59dcf214006a12b2" + +PYPI_PACKAGE = "semantic_version" +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb b/meta/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb new file mode 100644 index 0000000000..bac7b6434a --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools-rust-native_1.1.2.bb @@ -0,0 +1,26 @@ +SUMMARY = "Setuptools Rust extension plugin" +DESCRIPTION = "setuptools-rust is a plugin for setuptools to build Rust \ +Python extensions implemented with PyO3 or rust-cpython.\ +\ +Compile and distribute Python extensions written in Rust as easily as if they were written in C." +HOMEPAGE = "https://github.com/PyO3/setuptools-rust" +BUGTRACKER = "https://github.com/PyO3/setuptools-rust/issues" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5" + +SRC_URI = "https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz" +SRC_URI[sha256sum] = "a0adb9b503c0ffc4e8fe80b7c617898cefa78049983aaaea7f747e153a3e65d1" + +inherit cargo pypi setuptools_build_meta native + +DEPENDS += "python3-setuptools-scm-native python3-wheel-native" + +RDEPENDS:${PN}:class-native += " \ + python3-semantic-version-native \ + python3-setuptools-native \ + python3-setuptools-scm-native \ + python3-toml-native \ + python3-typing-extensions-native \ + python3-wheel-native \ +" diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb b/meta/recipes-devtools/python/python3-setuptools-scm_6.4.2.bb index 24409eddc5..182ccecbbf 100644 --- a/meta/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb +++ b/meta/recipes-devtools/python/python3-setuptools-scm_6.4.2.bb @@ -4,23 +4,23 @@ DESCRIPTION = "setuptools_scm handles managing your Python package versions in S LICENSE = "MIT" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" -SRC_URI[sha256sum] = "d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92" +SRC_URI[sha256sum] = "6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30" PYPI_PACKAGE = "setuptools_scm" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta UPSTREAM_CHECK_REGEX = "setuptools_scm-(?P<pver>.*)\.tar" -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-debugger \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-py \ +RDEPENDS:${PN} = "\ + ${PYTHON_PN}-packaging \ + ${PYTHON_PN}-pyparsing \ ${PYTHON_PN}-setuptools \ - ${PYTHON_PN}-toml \ + ${PYTHON_PN}-tomli \ " -RDEPENDS_${PN}_class-native = "\ - ${PYTHON_PN}-setuptools-native \ - ${PYTHON_PN}-toml-native \ + +RDEPENDS:${PN}:append:class-target = " \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-json \ " BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch new file mode 100644 index 0000000000..3150187951 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch @@ -0,0 +1,35 @@ +From 1ff575308248b183639c8cb14afee7c8572bd2b8 Mon Sep 17 00:00:00 2001 +From: Tim Orling <timothy.t.orling@intel.com> +Date: Wed, 20 Oct 2021 17:38:10 +0000 +Subject: [PATCH] _distutils/sysconfig: append + STAGING_LIBDIR/python-sysconfigdata to sys.path + +When python modules set SETUPTOOLS_USE_DISTULS='local', this uses the +vendored _distutils in setuptools rather than distutils in the Standard +Library. This is needed so that target configuration can be used with +python3-setuptools-native. + +Based on python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch +from Alex Kanavin <alex.kanavin@gmail.com> + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Tim Orling <timothy.t.orling@intel.com> + +--- + setuptools/_distutils/sysconfig.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py +index d36d94f..616eb91 100644 +--- a/setuptools/_distutils/sysconfig.py ++++ b/setuptools/_distutils/sysconfig.py +@@ -484,6 +484,8 @@ def _init_posix(): + multiarch=getattr(sys.implementation, '_multiarch', ''), + ), + ) ++ if 'STAGING_LIBDIR' in os.environ: ++ sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata') + try: + _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) + except ImportError: diff --git a/meta/recipes-devtools/python/python3-setuptools_57.1.0.bb b/meta/recipes-devtools/python/python3-setuptools_57.1.0.bb deleted file mode 100644 index c066d8209f..0000000000 --- a/meta/recipes-devtools/python/python3-setuptools_57.1.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" -HOMEPAGE = "https://pypi.org/project/setuptools" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6" - -inherit pypi setuptools3 - -SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" - -SRC_URI += "file://0001-change-shebang-to-python3.patch" - -SRC_URI[sha256sum] = "cfca9c97e7eebbc8abe18d5e5e962a08dcad55bb63afddd82d681de4d22a597b" - -DEPENDS += "${PYTHON_PN}" - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-2to3 \ - ${PYTHON_PN}-compile \ - ${PYTHON_PN}-compression \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-distutils \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-html \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-pkg-resources \ - ${PYTHON_PN}-pkgutil \ - ${PYTHON_PN}-plistlib \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-xml \ -" - -do_install_prepend() { - install -d ${D}${PYTHON_SITEPACKAGES_DIR} -} - -BBCLASSEXTEND = "native nativesdk" - -# The pkg-resources module can be used by itself, without the package downloader -# and easy_install. Ship it in a separate package so that it can be used by -# minimal distributions. -PACKAGES =+ "${PYTHON_PN}-pkg-resources " -FILES_${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" -RDEPENDS_${PYTHON_PN}-pkg-resources = "\ - ${PYTHON_PN}-compression \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-plistlib \ - ${PYTHON_PN}-pprint \ -" diff --git a/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb new file mode 100644 index 0000000000..35bec19e33 --- /dev/null +++ b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb @@ -0,0 +1,57 @@ +SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" +HOMEPAGE = "https://pypi.org/project/setuptools" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6" + +inherit pypi setuptools_build_meta + +SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" + +SRC_URI += "\ + file://0001-change-shebang-to-python3.patch \ + file://0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch \ +" + +SRC_URI[sha256sum] = "d144f85102f999444d06f9c0e8c737fd0194f10f2f7e5fdb77573f6e2fa4fad0" + +DEPENDS += "${PYTHON_PN}" + +RDEPENDS:${PN} = "\ + ${PYTHON_PN}-2to3 \ + ${PYTHON_PN}-compile \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pkg-resources \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-xml \ +" + +BBCLASSEXTEND = "native nativesdk" + +# The pkg-resources module can be used by itself, without the package downloader +# and easy_install. Ship it in a separate package so that it can be used by +# minimal distributions. +PACKAGES =+ "${PYTHON_PN}-pkg-resources " +FILES:${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" +RDEPENDS:${PYTHON_PN}-pkg-resources = "\ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-pprint \ +" + +# This used to use the bootstrap install which didn't compile. Until we bump the +# tmpdir version we can't compile the native otherwise the sysroot unpack fails +INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" 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 @@ +From e299bcb05405ff49450307bf3002c1fac14a866c Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Sun, 20 Feb 2022 18:55:50 -0800 +Subject: [PATCH] Change hash bang to python3 + +In setup.py, smartypants and smartypants.py set hash bang to python3. + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> + +--- + setup.py | 2 +- + smartypants | 2 +- + smartypants.py | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index ff1ea76..96a8b73 100755 +--- a/setup.py ++++ b/setup.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright (C) 2013, 2014 by Yu-Jie Lin + # For detail license information, See COPYING + +diff --git a/smartypants b/smartypants +index 189adf5..0cca568 100755 +--- a/smartypants ++++ b/smartypants +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright (c) 2013, 2014 Yu-Jie Lin + # Licensed under the BSD License, for detailed license information, see COPYING + +diff --git a/smartypants.py b/smartypants.py +index a70575b..e53bd87 100755 +--- a/smartypants.py ++++ b/smartypants.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # Copyright (c) 2013, 2014, 2016 Yu-Jie Lin + # 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 index ba3408247b..05c94c390f 100644 --- a/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb +++ b/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb @@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=977036977591ac666c728921ecc54c4f" inherit pypi setuptools3 PYPI_PACKAGE = "smartypants" +SRC_URI += "file://0001-Change-hash-bang-to-python3.patch" SRC_URI[sha256sum] = "7812353a32022699a1aa8cd5626e01c94a946dcaeedaee2d0b382bae4c4cbf36" BBCLASSEXTEND = "native" 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 @@ -inherit setuptools3 -require python-smmap.inc - diff --git a/meta/recipes-devtools/python/python-smmap.inc b/meta/recipes-devtools/python/python3-smmap_5.0.0.bb index 2a2ac76f2e..ea131ef793 100644 --- a/meta/recipes-devtools/python/python-smmap.inc +++ b/meta/recipes-devtools/python/python3-smmap_5.0.0.bb @@ -7,13 +7,13 @@ SECTION = "devel/python" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709" -inherit pypi +inherit pypi setuptools3 PYPI_PACKAGE = "smmap" -SRC_URI[sha256sum] = "7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182" +SRC_URI[sha256sum] = "c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936" -RDEPENDS_${PN} += "${PYTHON_PN}-codecs \ +RDEPENDS:${PN} += "${PYTHON_PN}-codecs \ ${PYTHON_PN}-mmap \ " BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-strict-rfc3339/0001-setup.py-use-vendored-_distutils.patch b/meta/recipes-devtools/python/python3-strict-rfc3339/0001-setup.py-use-vendored-_distutils.patch new file mode 100644 index 0000000000..ba1c3d3363 --- /dev/null +++ b/meta/recipes-devtools/python/python3-strict-rfc3339/0001-setup.py-use-vendored-_distutils.patch @@ -0,0 +1,27 @@ +From 857719e82daea0d85b734cac34cf569050724068 Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Sun, 20 Feb 2022 20:26:51 -0800 +Subject: [PATCH] setup.py: use vendored _distutils + +Deprecation warning of distutils is interferring with bdist_wheel build. + +For now, use the vendored setuptools._distutils.core. + +Upstream-Status: Pending [upstream appears unmaintained] + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 1bf87cf..a49fb8e 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,5 +1,5 @@ + import os.path +-from distutils.core import setup ++from setuptools._distutils.core import setup + + readme_file = os.path.join(os.path.dirname(__file__), 'README.md') + readme = open(readme_file).read() diff --git a/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb b/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb new file mode 100644 index 0000000000..c377c3bfb0 --- /dev/null +++ b/meta/recipes-devtools/python/python3-strict-rfc3339_0.7.bb @@ -0,0 +1,11 @@ +SUMMARY = "Strict, simple, lightweight RFC3339 function.s" +HOMEPAGE = "https://pypi.org/project/strict-rfc3339/" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +SRC_URI += "file://0001-setup.py-use-vendored-_distutils.patch" +SRC_URI[sha256sum] = "5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277" + +inherit pypi setuptools3 + +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 index 55066e2d0f..e4e3bf191d 100644 --- a/meta/recipes-devtools/python/python3-subunit_1.4.0.bb +++ b/meta/recipes-devtools/python/python3-subunit_1.4.0.bb @@ -1,4 +1,15 @@ -inherit setuptools3 -require python-subunit.inc +SUMMARY = "Python implementation of subunit test streaming protocol" +HOMEPAGE = "https://pypi.org/project/python-subunit/" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;beginline=1;endline=20;md5=909c08e291647fd985fbe5d9836d51b6" -RDEPENDS_${PN} = " python3-testtools" +PYPI_PACKAGE = "python-subunit" + +SRC_URI[sha256sum] = "042039928120fbf392e8c983d60f3d8ae1b88f90a9f8fd7188ddd9c26cad1e48" + +inherit pypi setuptools3 + +RDEPENDS:${PN} = " python3-testtools" + +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 @@ -traceback2 adds traceback for python2. Rather than depend on traceback2, we're -python3 only so just use traceback. -This caused breakage in oe-selftest -j which uses testtools on the autobuilder -using buildtools-tarball. - -Upstream-Status: Inappropriate [Our recipe is python3 specific] -(Once py2 is EOL upstream probably could/should take this) -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - -Index: testtools-2.3.0/testtools/content.py -=================================================================== ---- testtools-2.3.0.orig/testtools/content.py -+++ testtools-2.3.0/testtools/content.py -@@ -19,8 +19,7 @@ import os - import sys - - from extras import try_import --# To let setup.py work, make this a conditional import. --traceback = try_import('traceback2') -+import traceback - - from testtools.compat import ( - _b, diff --git a/meta/recipes-devtools/python/python3-testtools_2.4.0.bb b/meta/recipes-devtools/python/python3-testtools_2.5.0.bb index a254b90a75..896ecee65c 100644 --- a/meta/recipes-devtools/python/python3-testtools_2.4.0.bb +++ b/meta/recipes-devtools/python/python3-testtools_2.5.0.bb @@ -1,4 +1,2 @@ inherit setuptools3 require python-testtools.inc - -SRC_URI += "file://no_traceback2.patch" 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..be29cac798 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 BBCLASSEXTEND = "native nativesdk" -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ ${PYTHON_PN}-misc \ " 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..6118a6a9c3 --- /dev/null +++ b/meta/recipes-devtools/python/python3-tomli_2.0.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "A lil' TOML parser" +DESCRIPTION = "Tomli is a Python library for parsing TOML. Tomli is fully \ +compatible with TOML v1.0.0." +HOMEPAGE = "https://github.com/hukkin/tomli" +BUGTRACKER = "https://github.com/hukkin/tomli/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5" + +inherit pypi python_flit_core + +SRC_URI[sha256sum] = "de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb b/meta/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb new file mode 100644 index 0000000000..a5f491c770 --- /dev/null +++ b/meta/recipes-devtools/python/python3-typing-extensions_3.10.0.0.bb @@ -0,0 +1,12 @@ +HOMEPAGE = "https://github.com/python/typing" +LICENSE = "PSF-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f" + +# The name on PyPi is slightly different. +PYPI_PACKAGE = "typing_extensions" + +SRC_URI[sha256sum] = "50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342" + +inherit pypi setuptools3 + +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 index 3becb0dd8d..83e9b5eadb 100644 --- a/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb +++ b/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb @@ -10,5 +10,5 @@ SRC_URI[sha256sum] = "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed BBCLASSEXTEND = "native" -RDEPENDS_${PN} += "${PYTHON_PN}-smartypants" +RDEPENDS:${PN} += "${PYTHON_PN}-smartypants" 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 @@ +SUMMARY = "Python vcversioner, automagically update the project's version" +HOMEPAGE = "https://github.com/habnabit/vcversioner" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3" + +SRC_URI[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d" +SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native" diff --git a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb b/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb index bb4aae2e86..a532d3c5cb 100644 --- a/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb +++ b/meta/recipes-devtools/python/python3-wcwidth_0.2.5.bb @@ -13,7 +13,7 @@ SRC_URI += " \ file://run-ptest \ " -RDEPENDS_${PN}-ptest += " \ +RDEPENDS:${PN}-ptest += " \ ${PYTHON_PN}-pytest \ " 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..3385d68939 --- /dev/null +++ b/meta/recipes-devtools/python/python3-webcolors/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +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-webcolors_1.11.1.bb b/meta/recipes-devtools/python/python3-webcolors_1.11.1.bb new file mode 100644 index 0000000000..26dbe51767 --- /dev/null +++ b/meta/recipes-devtools/python/python3-webcolors_1.11.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "Simple Python module for working with HTML/CSS color definitions." +HOMEPAGE = "https://pypi.org/project/webcolors/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=25b90379a52351261c51272e7923d240" + +SRC_URI[md5sum] = "54d28a7c80b3e4d974ec2fee86768be9" +SRC_URI[sha256sum] = "76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6" + +inherit pypi setuptools3 ptest + +RDEPENDS:${PN}:class-target = "\ + ${PYTHON_PN}-stringold \ +" + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS:${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/python/python3-wheel/0001-Backport-pyproject.toml-from-flit-backend-branch.patch b/meta/recipes-devtools/python/python3-wheel/0001-Backport-pyproject.toml-from-flit-backend-branch.patch new file mode 100644 index 0000000000..023de0e6a8 --- /dev/null +++ b/meta/recipes-devtools/python/python3-wheel/0001-Backport-pyproject.toml-from-flit-backend-branch.patch @@ -0,0 +1,100 @@ +From f00dd220346773bc088d403847ee7f06f2b4c30a Mon Sep 17 00:00:00 2001 +From: Tim Orling <tim.orling@konsulko.com> +Date: Fri, 18 Feb 2022 11:09:16 -0800 +Subject: [PATCH] Backport pyproject.toml from flit-backend branch + +This allows us to bootstrap wheels and PEP-517 packaging. + +Upstream-Status: Backport from flit-backend branch +https://raw.githubusercontent.com/pypa/wheel/4f6ba78fede38a8d9e35a14e38377a121033afb3/pyproject.toml + +Signed-off-by: Tim Orling <tim.orling@konsulko.com> +--- + pyproject.toml | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 78 insertions(+) + create mode 100644 pyproject.toml + +diff --git a/pyproject.toml b/pyproject.toml +new file mode 100644 +index 0000000..749b8de +--- /dev/null ++++ b/pyproject.toml +@@ -0,0 +1,78 @@ ++[build-system] ++requires = ["flit_core >=3.2,<4"] ++build-backend = "flit_core.buildapi" ++ ++[project] ++name = "wheel" ++description = "A built-package format for Python" ++readme = "README.rst" ++classifiers = [ ++ "Development Status :: 5 - Production/Stable", ++ "Intended Audience :: Developers", ++ "Topic :: System :: Archiving :: Packaging", ++ "License :: OSI Approved :: MIT License", ++ "Programming Language :: Python", ++ "Programming Language :: Python :: 3 :: Only", ++ "Programming Language :: Python :: 3.7", ++ "Programming Language :: Python :: 3.8", ++ "Programming Language :: Python :: 3.9", ++ "Programming Language :: Python :: 3.10" ++] ++authors = [{name = "Daniel Holth", email = "dholth@fastmail.fm"}] ++maintainers = [{name = "Alex Grönholm", email = "alex.gronholm@nextday.fi"}] ++keywords = ["wheel", "packaging"] ++license = {file = "LICENSE.txt"} ++requires-python = ">=3.7" ++dependencies = [ ++ "setuptools >= 45.2.0" ++] ++dynamic = ["version"] ++ ++[project.urls] ++Documentation = "https://wheel.readthedocs.io/" ++Changelog = "https://wheel.readthedocs.io/en/stable/news.html" ++"Issue Tracker" = "https://github.com/pypa/wheel/issues" ++ ++[project.scripts] ++wheel = "wheel.cli:main" ++ ++[project.entry-points."distutils.commands"] ++bdist_wheel = "wheel.bdist_wheel:bdist_wheel" ++ ++[project.optional-dependencies] ++test = [ ++ "pytest >= 3.0.0" ++] ++ ++[tool.flit.sdist] ++exclude = [ ++ ".cirrus.yml", ++ ".github/*", ++ ".gitignore", ++ ".pre-commit-config.yaml", ++ ".readthedocs.yml" ++] ++ ++[tool.black] ++target-version = ['py37'] ++extend-exclude = ''' ++^/src/wheel/vendored/ ++''' ++ ++[tool.isort] ++src_paths = ["src"] ++profile = "black" ++skip_gitignore = true ++ ++[tool.flake8] ++max-line-length = 88 ++ ++[tool.pytest.ini_options] ++testpaths = "tests" ++ ++[tool.coverage.run] ++source = ["wheel"] ++omit = ["*/vendored/*"] ++ ++[tool.coverage.report] ++show_missing = true diff --git a/meta/recipes-devtools/python/python3-wheel_0.37.1.bb b/meta/recipes-devtools/python/python3-wheel_0.37.1.bb new file mode 100644 index 0000000000..2f7dd122ba --- /dev/null +++ b/meta/recipes-devtools/python/python3-wheel_0.37.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "The official binary distribution format for Python " +HOMEPAGE = "https://github.com/pypa/wheel" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=10;endline=10;md5=8227180126797a0148f94f483f3e1489" + +SRC_URI[sha256sum] = "e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4" + +inherit python_flit_core pypi + +SRC_URI += " file://0001-Backport-pyproject.toml-from-flit-backend-branch.patch" + +BBCLASSEXTEND = "native nativesdk" + +# This used to use the bootstrap install which didn't compile. Until we bump the +# tmpdir version we can't compile the native otherwise the sysroot unpack fails +INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" diff --git a/meta/recipes-devtools/python/python3-zipp_3.5.0.bb b/meta/recipes-devtools/python/python3-zipp_3.7.0.bb index ab12601e4e..d0f936faf7 100644 --- a/meta/recipes-devtools/python/python3-zipp_3.5.0.bb +++ b/meta/recipes-devtools/python/python3-zipp_3.7.0.bb @@ -3,15 +3,15 @@ HOMEPAGE = "https://github.com/jaraco/zipp" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6" -SRC_URI[sha256sum] = "f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4" +SRC_URI[sha256sum] = "9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d" DEPENDS += "${PYTHON_PN}-setuptools-scm-native" -inherit pypi setuptools3 +inherit pypi setuptools_build_meta DEPENDS += "${PYTHON_PN}-toml-native" -RDEPENDS_${PN} += "${PYTHON_PN}-compression \ +RDEPENDS:${PN} += "${PYTHON_PN}-compression \ ${PYTHON_PN}-math \ ${PYTHON_PN}-more-itertools" 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 index 59592821d7..62ef6efc28 100644 --- 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 @@ -1,4 +1,4 @@ -From 039c53dd5baddec3359a05be0bff46a3b32bbb84 Mon Sep 17 00:00:00 2001 +From 80f872e4573f542d33f91514538755557d566f79 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Fri, 25 Jan 2019 19:04:13 +0100 Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host @@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py -index 20d7f35..ab18ff0 100644 +index 43e807f..11b5cf5 100644 --- a/setup.py +++ b/setup.py -@@ -957,7 +957,6 @@ class PyBuildExt(build_ext): +@@ -1149,7 +1149,6 @@ class PyBuildExt(build_ext): 'termcap'): readline_libs.append('termcap') self.add(Extension('readline', ['readline.c'], 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 index 83fd52d87f..d98f243cb1 100644 --- 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 @@ -1,4 +1,4 @@ -From 148861fa16f2aaacd518770f337ea54b5182f981 Mon Sep 17 00:00:00 2001 +From 2406432449784243b7590009d42bd0e871253b2e Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Tue, 29 Jan 2019 15:03:01 +0100 Subject: [PATCH] Do not use the shell version of python-config that was @@ -9,15 +9,16 @@ outputs directories correctly. Upstream-Status: Inappropriate [oe-specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- Makefile.pre.in | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 2d2e11f..cc19942 100644 +index ee85f35..f0aedb7 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1431,12 +1431,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh +@@ -1640,12 +1640,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config 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 index a94fa0a5a9..5485020eb4 100644 --- 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 @@ -1,4 +1,4 @@ -From 9da913bf5f39c6fe737219af7419170574d6fbfb Mon Sep 17 00:00:00 2001 +From b6ead2d17ceafed47e598b6f50f3ff669deec5ab Mon Sep 17 00:00:00 2001 From: Jeremy Puhlman <jpuhlman@mvista.com> Date: Wed, 4 Mar 2020 00:06:42 +0000 Subject: [PATCH] Don't search system for headers/libraries @@ -11,10 +11,10 @@ Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py -index a0bf9ea..da099bf 100644 +index c190002..5ef368d 100644 --- a/setup.py +++ b/setup.py -@@ -674,8 +674,8 @@ class PyBuildExt(build_ext): +@@ -854,8 +854,8 @@ class PyBuildExt(build_ext): add_dir_to_list(self.compiler.include_dirs, sysconfig.get_config_var("INCLUDEDIR")) 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..df5179e877 --- /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 @@ +From 86061629f4a179e740a17e53dd2c98ab47af2fe2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Thu, 16 Sep 2021 16:35:37 +0200 +Subject: [PATCH] Lib/pty.py: handle stdin I/O errors same way as master I/O + errors + +reading stdin can throw the same I/O errors as reading from master fd does, +e.g. when running under Yocto's test harness: +====================================================================== +ERROR: test_spawn_doesnt_hang (test.test_pty.PtyTest) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/usr/lib/python3.10/test/test_pty.py", line 316, in test_spawn_doesnt_hang + pty.spawn([sys.executable, '-c', 'print("hi there")']) + File "/usr/lib/python3.10/pty.py", line 181, in spawn + _copy(master_fd, master_read, stdin_read) + File "/usr/lib/python3.10/pty.py", line 157, in _copy + data = stdin_read(STDIN_FILENO) + File "/usr/lib/python3.10/pty.py", line 132, in _read + return os.read(fd, 1024) +OSError: [Errno 5] Input/output error + +So let's treat both channels the same. + +Upstream-Status: Submitted [https://github.com/python/cpython/pull/28388] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + Lib/pty.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Lib/pty.py b/Lib/pty.py +index 8d8ce40..35439c6 100644 +--- a/Lib/pty.py ++++ b/Lib/pty.py +@@ -154,7 +154,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read): + os.write(STDOUT_FILENO, data) + + if STDIN_FILENO in rfds: +- data = stdin_read(STDIN_FILENO) ++ try: ++ data = stdin_read(STDIN_FILENO) ++ except OSError: ++ data = b"" + if not data: + fds.remove(STDIN_FILENO) + 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 @@ -From deeedd1b8799294ab276ab7dbbfdb59c1dacc9a2 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 22 Oct 2020 13:10:34 +0200 -Subject: [PATCH] Lib/sysconfig.py: use libdir values from configuration file - -This allows correctly substituting them for target installs using -native python. - -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - Lib/sysconfig.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index bf04ac5..ed0462b 100644 ---- a/Lib/sysconfig.py -+++ b/Lib/sysconfig.py -@@ -20,10 +20,10 @@ __all__ = [ - - _INSTALL_SCHEMES = { - 'posix_prefix': { -- 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', -- 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', -- 'purelib': '{base}/lib/python{py_version_short}/site-packages', -- 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', -+ 'stdlib': '{LIBDEST}', -+ 'platstdlib': '{LIBDEST}', -+ 'purelib': '{LIBDEST}/site-packages', -+ 'platlib': '{LIBDEST}/site-packages', - 'include': - '{installed_base}/include/python{py_version_short}{abiflags}', - 'platinclude': --- -2.24.0 - 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..a9240b3c8a --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch @@ -0,0 +1,32 @@ +From 01d209277e145072e478d8b9acfea3638ee16cdc Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Fri, 10 Sep 2021 12:28:31 +0200 +Subject: [PATCH] Lib/sysconfig.py: use prefix value from build configuration + file + +This allows correctly substituting them for target installs using +native python. + +Upstream-Status: Inappropriate [oe-core cross builds] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + Lib/sysconfig.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py +index e64bcdc..40c6b3e 100644 +--- a/Lib/sysconfig.py ++++ b/Lib/sysconfig.py +@@ -613,6 +613,11 @@ def get_config_vars(*args): + _init_non_posix(_CONFIG_VARS) + if os.name == 'posix': + _init_posix(_CONFIG_VARS) ++ _CONFIG_VARS['installed_base'] = _CONFIG_VARS['prefix'] ++ _CONFIG_VARS['base'] = _CONFIG_VARS['prefix'] ++ _CONFIG_VARS['installed_platbase'] = _CONFIG_VARS['prefix'] ++ _CONFIG_VARS['platbase'] = _CONFIG_VARS['prefix'] ++ _CONFIG_VARS['platlibdir'] = _CONFIG_VARS['PLATLIBDIR'] + # For backward compatibility, see issue19555 + SO = _CONFIG_VARS.get('EXT_SUFFIX') + if SO is not None: 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 index b1bceac512..2f037ecb09 100644 --- 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 @@ -1,25 +1,32 @@ -From c501e121a872cbcef8ffe626c1de173a125be9f8 Mon Sep 17 00:00:00 2001 +From c960837b8fd83074bab5148236f3d0595468cea4 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Thu, 16 Jan 2020 12:34:20 +0100 Subject: [PATCH] Makefile: do not compile .pyc in parallel -This was found to break reproducibility, and produce strange file ownership +This was found to lock up builds, break reproducibility, and produce strange file ownership races. The upstream commit introducing the change was: https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504 -Upstream-Status: Pending +The build lock up issue is reported here: +https://bugs.python.org/issue45945 + +The repro failures are documented here: +https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20211130-yr_o1a8d/packages/diff-html/ + +Upstream-Status: Inappropriate [see issues above] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- Makefile.pre.in | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 1241112..5dfdf44 100644 +index edd70d4..5e13ba2 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1457,30 +1457,30 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c +@@ -1601,30 +1601,30 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c fi -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ 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..e1dabc92a3 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,19 +1,20 @@ -From cf6a9100902484e4d028ee88742dd2487b014a98 Mon Sep 17 00:00:00 2001 +From 9f85089cc3a21d5ff235bb37c6c9758f2b70497d Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Wed, 30 Jan 2019 12:41:04 +0100 Subject: [PATCH] Makefile.pre: use qemu wrapper when gathering profile data Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- Makefile.pre.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index a3a02a7..d5503dd 100644 +index f0aedb7..edd70d4 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -507,8 +507,7 @@ build_all_generate_profile: +@@ -519,8 +519,7 @@ build_all_generate_profile: $(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)" run_profile_task: 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 index a49d603d47..96c5a3c840 100644 --- 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 @@ -1,9 +1,8 @@ -From 0b25b66d4f54bd74615c9ff10f3fae8f0d1c548d Mon Sep 17 00:00:00 2001 +From 7171aeee22a0b7ab57cdf3d1ae15530549f8f92a Mon Sep 17 00:00:00 2001 From: Yi Fan Yu <yifan.yu@windriver.com> Date: Thu, 1 Apr 2021 13:08:37 -0700 Subject: [PATCH] Skip failing tests due to load variability on YP AB - Skip these tests until AB-INT is solved. [YOCTO #14296] @@ -11,16 +10,17 @@ Skip these tests until AB-INT is solved. Upstream-Status: Inappropriate [OE-Specific] Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com> + --- Lib/test/_test_multiprocessing.py | 2 ++ Lib/test/test_time.py | 1 + 2 files changed, 3 insertions(+) diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py -index fd3b430..cda29f6 100644 +index 3bc5b8f..a6e106d 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py -@@ -568,6 +568,7 @@ def test_close(self): +@@ -568,6 +568,7 @@ class _TestProcess(BaseTestCase): close_queue(q) @@ -28,7 +28,7 @@ index fd3b430..cda29f6 100644 def test_many_processes(self): if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) -@@ -4715,6 +4716,7 @@ def signal_and_sleep(cls, sem, period): +@@ -4817,6 +4818,7 @@ class TestWait(unittest.TestCase): sem.release() time.sleep(period) @@ -37,10 +37,10 @@ index fd3b430..cda29f6 100644 from multiprocessing.connection import wait diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py -index 3258298..adcf407 100644 +index 875615a..aebaa8c 100644 --- a/Lib/test/test_time.py +++ b/Lib/test/test_time.py -@@ -474,6 +474,7 @@ def test_monotonic(self): +@@ -474,6 +474,7 @@ class TimeTestCase(unittest.TestCase): def test_perf_counter(self): time.perf_counter() @@ -48,6 +48,3 @@ index 3258298..adcf407 100644 def test_process_time(self): # process_time() should not include time spend during a sleep start = time.process_time() --- -2.17.1 - 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 index 793385de91..993ac243fc 100644 --- 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 @@ -1,4 +1,4 @@ -From 9f63e83b1cec872917647b11155edaffe399d103 Mon Sep 17 00:00:00 2001 +From d7217b79a4e125d4fcc1087743171b94d91d1121 Mon Sep 17 00:00:00 2001 From: Inada Naoki <songofacandy@gmail.com> Date: Sat, 14 Jul 2018 00:46:11 +0900 Subject: [PATCH] Use FLAG_REF always for interned strings @@ -11,7 +11,7 @@ Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Python/marshal.c b/Python/marshal.c -index c4538bd..2437160 100644 +index 4125240..341c9aa 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -298,9 +298,14 @@ w_ref(PyObject *v, char *flag, WFILE *p) 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 index c4fae09a5b..6ab335a405 100644 --- 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 @@ -1,7 +1,8 @@ -From 1ad771d86728ee2ed30e202e9768d8d825f96467 Mon Sep 17 00:00:00 2001 +From bb409432f03dd8256865292e382ad16613737829 Mon Sep 17 00:00:00 2001 From: Matthias Schoepfer <matthias.schoepfer@ithinx.io> Date: Fri, 31 May 2019 15:34:34 +0200 Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft + float When (cross) compiling for softfloat mips, __mips_hard_float will not be @@ -13,18 +14,17 @@ to do this in a more autoconf/autotools manner. Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196] Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io> -%% original patch: 0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch --- configure.ac | 175 +++++++-------------------------------------------- 1 file changed, 21 insertions(+), 154 deletions(-) diff --git a/configure.ac b/configure.ac -index ede710e..bc81b0b 100644 +index 4230ef2..ee08b1b 100644 --- a/configure.ac +++ b/configure.ac -@@ -710,160 +710,27 @@ fi - MULTIARCH=$($CC --print-multiarch 2>/dev/null) - AC_SUBST(MULTIARCH) +@@ -718,160 +718,27 @@ then + fi + -AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) -cat >> conftest.c <<EOF @@ -202,8 +202,5 @@ index ede710e..bc81b0b 100644 + ;; +esac - if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then - if test x$PLATFORM_TRIPLET != x$MULTIARCH; then --- -2.24.1 - + AC_MSG_CHECKING([for multiarch]) + AS_CASE([$ac_sys_system], 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 index b982691b36..3c62c2acb8 100644 --- 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 @@ -1,4 +1,4 @@ -From e65bfe22c858872b08366aff49119d4145a77f40 Mon Sep 17 00:00:00 2001 +From 78dd1def953e18e7cda0325bb26d27c051bb6890 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Thu, 31 Jan 2019 16:46:30 +0100 Subject: [PATCH] distutils/sysconfig: append @@ -10,28 +10,14 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> --- - Lib/distutils/sysconfig.py | 2 ++ - Lib/sysconfig.py | 2 ++ - 2 files changed, 4 insertions(+) + Lib/sysconfig.py | 2 ++ + 1 file changed, 2 insertions(+) -diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index b51629e..2df348c 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -438,6 +438,8 @@ def _init_posix(): - platform=sys.platform, - multiarch=getattr(sys.implementation, '_multiarch', ''), - )) -+ if 'STAGING_LIBDIR' in os.environ: -+ sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata') - _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) - build_time_vars = _temp.build_time_vars - global _config_vars diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index b2d790b..405273c 100644 +index 40c6b3e..ac94cc7 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py -@@ -419,6 +419,8 @@ def _init_posix(vars): +@@ -474,6 +474,8 @@ def _init_posix(vars): """Initialize the module as appropriate for POSIX systems.""" # _sysconfigdata is generated at build time, see _generate_posix_vars() name = _get_sysconfigdata_name() 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..6bb85fcb34 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 @@ -From 5f9eea2c4f8716830f6c8855a3e10872119fae32 Mon Sep 17 00:00:00 2001 +From 9f68a27eb34394a00f1011c06900c609f15fb15c Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Mon, 22 Oct 2018 15:19:51 +0800 Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler @@ -27,10 +27,10 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com> 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac -index d60f052..e491e24 100644 +index 0c06914..299786b 100644 --- a/configure.ac +++ b/configure.ac -@@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h) +@@ -61,6 +61,7 @@ AC_CONFIG_HEADER(pyconfig.h) AC_CANONICAL_HOST AC_SUBST(build) AC_SUBST(host) @@ -38,7 +38,7 @@ index d60f052..e491e24 100644 # pybuilddir.txt will be created by --generate-posix-vars in the Makefile rm -f pybuilddir.txt -@@ -689,7 +690,7 @@ AC_MSG_RESULT($with_cxx_main) +@@ -688,7 +689,7 @@ AC_MSG_RESULT($with_cxx_main) preset_cxx="$CXX" if test -z "$CXX" then @@ -47,7 +47,7 @@ index d60f052..e491e24 100644 gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;; cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;; clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;; -@@ -975,7 +976,7 @@ rmdir CaseSensitiveTestDir +@@ -976,7 +977,7 @@ rmdir CaseSensitiveTestDir case $ac_sys_system in hp*|HP*) @@ -56,7 +56,7 @@ index d60f052..e491e24 100644 cc|*/cc) CC="$CC -Ae";; esac;; esac -@@ -1366,7 +1367,7 @@ else +@@ -1374,7 +1375,7 @@ else fi], [AC_MSG_RESULT(no)]) if test "$Py_LTO" = 'true' ; then @@ -65,7 +65,7 @@ index d60f052..e491e24 100644 *clang*) AC_SUBST(LLVM_AR) AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) -@@ -1456,7 +1457,7 @@ then +@@ -1467,7 +1468,7 @@ then fi fi LLVM_PROF_ERR=no @@ -74,7 +74,7 @@ index d60f052..e491e24 100644 *clang*) # Any changes made here should be reflected in the GCC+Darwin case below PGO_PROF_GEN_FLAG="-fprofile-instr-generate" -@@ -1517,7 +1518,7 @@ esac +@@ -1528,7 +1529,7 @@ esac # compiler and platform. BASECFLAGS tweaks need to be made even if the # user set OPT. @@ -83,7 +83,7 @@ index d60f052..e491e24 100644 *clang*) cc_is_clang=1 ;; -@@ -1653,7 +1654,7 @@ yes) +@@ -1664,7 +1665,7 @@ yes) # ICC doesn't recognize the option, but only emits a warning ## XXX does it emit an unused result warning and can it be disabled? @@ -92,7 +92,7 @@ index d60f052..e491e24 100644 *icc*) ac_cv_disable_unused_result_warning=no ;; -@@ -1993,7 +1994,7 @@ yes) +@@ -2018,7 +2019,7 @@ yes) ;; esac @@ -101,7 +101,7 @@ index d60f052..e491e24 100644 *icc*) # ICC needs -fp-model strict or floats behave badly CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict" -@@ -2765,7 +2766,7 @@ then +@@ -2836,7 +2837,7 @@ then then LINKFORSHARED="-Wl,--export-dynamic" fi;; @@ -110,7 +110,7 @@ index d60f052..e491e24 100644 *gcc*) if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null then -@@ -5507,7 +5508,7 @@ if test "$have_gcc_asm_for_x87" = yes; then +@@ -5622,7 +5623,7 @@ if test "$have_gcc_asm_for_x87" = yes; then # Some versions of gcc miscompile inline asm: # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html 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 @@ -From 7019ba184b828ed7253750cf409fc5760ef90a54 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 9 Jan 2020 17:44:05 +0100 -Subject: [PATCH] setup.py: pass missing libraries to Extension for - multiprocessing module - -In the following commit: -... -commit e711cafab13efc9c1fe6c5cd75826401445eb585 -Author: Benjamin Peterson <benjamin@python.org> -Date: Wed Jun 11 16:44:04 2008 +0000 - - Merged revisions 64104,64117 via svnmerge from - svn+ssh://pythondev@svn.python.org/python/trunk -... -(see diff in setup.py) -It assigned libraries for multiprocessing module according -the host_platform, but not pass it to Extension. - -In glibc, the following commit caused two definition of -sem_getvalue are different. -https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524 -(see diff in nptl/sem_getvalue.c for detail) -`__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1 -and `__old_sem_getvalue' is to compat the old version -sem_getvalue@GLIBC_2.0. - -To build python for embedded Linux systems: -http://www.yoctoproject.org/docs/2.3.1/yocto-project-qs/yocto-project-qs.html -If not explicitly link to library pthread (-lpthread), it will -load glibc's sem_getvalue randomly at runtime. - -Such as build python on linux x86_64 host and run the python -on linux x86_32 target. If not link library pthread, it caused -multiprocessing bounded semaphore could not work correctly. -... ->>> import multiprocessing ->>> pool_sema = multiprocessing.BoundedSemaphore(value=1) ->>> pool_sema.acquire() -True ->>> pool_sema.release() -Traceback (most recent call last): - File "<stdin>", line 1, in <module> -ValueError: semaphore or lock released too many times -... - -And the semaphore issue also caused multiprocessing.Queue().put() hung. - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index ec3f2a4..b0f1541 100644 ---- a/setup.py -+++ b/setup.py -@@ -1671,7 +1671,7 @@ class PyBuildExt(build_ext): - libraries=libs, - include_dirs=["Modules/_multiprocessing"])) - -- self.add(Extension('_multiprocessing', multiprocessing_srcs, -+ self.add(Extension('_multiprocessing', multiprocessing_srcs, libraries=['pthread'], - include_dirs=["Modules/_multiprocessing"])) - - def detect_uuid(self): 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..4fb63a9b7a --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-sysconfig.py-use-platlibdir-also-for-purelib.patch @@ -0,0 +1,28 @@ +From 9162460d81ccc725fb04a14b27d0bf4afcfb69c9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Sun, 12 Sep 2021 21:44:36 +0200 +Subject: [PATCH] sysconfig.py: use platlibdir also for purelib + +This is needed in multilib configurations where hardcoding 'lib' +is not correct. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + Lib/sysconfig.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py +index daf9f00..e64bcdc 100644 +--- a/Lib/sysconfig.py ++++ b/Lib/sysconfig.py +@@ -27,7 +27,7 @@ _INSTALL_SCHEMES = { + 'posix_prefix': { + 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', + 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', +- 'purelib': '{base}/lib/python{py_version_short}/site-packages', ++ 'purelib': '{base}/{platlibdir}/python{py_version_short}/site-packages', + 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', + 'include': + '{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 index 7d684b3c43..371021c0a9 100644 --- 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 @@ -1,4 +1,4 @@ -From 7a2bddfa437be633bb6945d0e6b7d6f27da870ad Mon Sep 17 00:00:00 2001 +From 13aa6449c47980c7270dad2527c3911517bf34e6 Mon Sep 17 00:00:00 2001 From: Tim Orling <timothy.t.orling@intel.com> Date: Fri, 18 Jun 2021 11:56:50 -0700 Subject: [PATCH] test_ctypes.test_find: skip without tools-sdk @@ -10,15 +10,16 @@ easiest way to dynamically check for that is looking for Upstream-Status: Inappropriate [oe-specific] Signed-off-by: Tim Orling <timothy.t.orlign@intel.com> + --- Lib/ctypes/test/test_find.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py -index 92ac184..0d009d1 100644 +index 1ff9d01..59def26 100644 --- a/Lib/ctypes/test/test_find.py +++ b/Lib/ctypes/test/test_find.py -@@ -112,10 +112,12 @@ class FindLibraryLinux(unittest.TestCase): +@@ -113,10 +113,12 @@ class FindLibraryLinux(unittest.TestCase): # LD_LIBRARY_PATH) self.assertEqual(find_library(libname), 'lib%s.so' % libname) 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 c3d1e06d00..c762f98307 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 @@ -From b94995e0c694ec9561efec0d1a59b323340e6105 Mon Sep 17 00:00:00 2001 +From 46856e692377d21be3562f6f90c242f5c9594ae2 Mon Sep 17 00:00:00 2001 From: Mingli Yu <mingli.yu@windriver.com> Date: Mon, 5 Aug 2019 15:57:39 +0800 Subject: [PATCH] test_locale.py: correct the test output format @@ -23,19 +23,19 @@ Before this patch: Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132] - Rebased for 3.9.4, still not accepted upstream Signed-off-by: Alejandro Hernandez <alejandro@enedino.org> Signed-off-by: Mingli Yu <mingli.yu@windriver.com> + --- Lib/test/test_locale.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: Python-3.9.4/Lib/test/test_locale.py -=================================================================== ---- Python-3.9.4.orig/Lib/test/test_locale.py -+++ Python-3.9.4/Lib/test/test_locale.py -@@ -562,7 +562,7 @@ class TestMiscellaneous(unittest.TestCas +diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py +index f844e62..04df0c2 100644 +--- a/Lib/test/test_locale.py ++++ b/Lib/test/test_locale.py +@@ -564,7 +564,7 @@ class TestMiscellaneous(unittest.TestCase): self.skipTest('test needs Turkish locale') loc = locale.getlocale(locale.LC_CTYPE) if verbose: 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 index 5823273af3..0ead57e465 100644 --- 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 @@ -1,4 +1,4 @@ -From a2dd127b4163aff6cc35af0d0251321964232ad4 Mon Sep 17 00:00:00 2001 +From 246c5ffe75a2d494e415d8a7522df9fe22056d41 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Mon, 7 Oct 2019 13:22:14 +0200 Subject: [PATCH] setup.py: do not report missing dependencies for disabled @@ -14,14 +14,14 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org> --- - setup.py | 4 ++++ - 1 file changed, 4 insertions(+) + setup.py | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/setup.py b/setup.py -index 7691258..ec3f2a4 100644 +index 2be4738..62f0e18 100644 --- a/setup.py +++ b/setup.py -@@ -408,6 +408,14 @@ class PyBuildExt(build_ext): +@@ -517,6 +517,14 @@ class PyBuildExt(build_ext): print("%-*s %-*s %-*s" % (longest, e, longest, f, longest, g)) 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..30d2906439 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,4 +1,4 @@ -From 863c09f640a5dfd33ff22915b0d5fee7bc5df70a Mon Sep 17 00:00:00 2001 +From 788cd0464ee2b175493a0167ceee8c0045ce323c Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Sun, 16 Feb 2020 17:50:25 +0100 Subject: [PATCH] configure.ac, setup.py: do not add a curses include path from @@ -11,16 +11,17 @@ as dnf failures). Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- configure.ac | 6 ------ setup.py | 2 -- 2 files changed, 8 deletions(-) diff --git a/configure.ac b/configure.ac -index 915f475..c911011 100644 +index e5e3df8..bfdd987 100644 --- a/configure.ac +++ b/configure.ac -@@ -4828,12 +4828,6 @@ then +@@ -5092,12 +5092,6 @@ then [Define if you have struct stat.st_mtimensec]) fi @@ -34,10 +35,10 @@ index 915f475..c911011 100644 # On Solaris, term.h requires curses.h diff --git a/setup.py b/setup.py -index b0f1541..7208cd0 100644 +index 62f0e18..c190002 100644 --- a/setup.py +++ b/setup.py -@@ -973,8 +973,6 @@ class PyBuildExt(build_ext): +@@ -1169,8 +1169,6 @@ class PyBuildExt(build_ext): panel_library = 'panel' if curses_library == 'ncursesw': curses_defines.append(('HAVE_NCURSESW', '1')) 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 index 5a39cf8933..de4c6c4e19 100644 --- 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 @@ -1,7 +1,7 @@ -From c52fa7948ef109db1132fdc1aee0b68f8d767b4e Mon Sep 17 00:00:00 2001 +From 33b5a31df6050110f4481a24f5a0a0bf7fe80096 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Tue, 14 May 2013 15:00:26 -0700 -Subject: [PATCH 1/2] python3: Add target and native recipes +Subject: [PATCH] python3: Add target and native recipes Upstream-Status: Inappropriate [embedded specific] @@ -12,15 +12,16 @@ Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de> Signed-off-by: Phil Blundell <philb@gnu.org> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> + --- Lib/distutils/sysconfig.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 4774e12..ccf7d58 100644 +index 3414a76..361d3a1 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -95,7 +95,9 @@ def get_python_inc(plat_specific=0, prefix=None): +@@ -277,7 +277,9 @@ def get_python_inc(plat_specific=0, prefix=None): If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ @@ -31,7 +32,7 @@ index 4774e12..ccf7d58 100644 prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX if os.name == "posix": if python_build: -@@ -138,7 +140,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -320,7 +322,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ @@ -46,7 +47,7 @@ index 4774e12..ccf7d58 100644 if standard_lib: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX else: -@@ -152,7 +160,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): +@@ -334,7 +342,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): else: # Pure Python libdir = "lib" @@ -55,6 +56,3 @@ index 4774e12..ccf7d58 100644 "python" + get_python_version()) if standard_lib: return libpython --- -2.24.0 - diff --git a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch index 184540e794..2de72b7199 100644 --- a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch +++ b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch @@ -1,4 +1,4 @@ -From ba7202700578d435b07cfdfb7b57e83185752800 Mon Sep 17 00:00:00 2001 +From 6a23d52c905cd1f6a5944255903ec86ea8b904bb Mon Sep 17 00:00:00 2001 From: Andrei Gherzan <andrei@gherzan.ro> Date: Mon, 28 Jan 2019 15:57:54 +0000 Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet @@ -15,10 +15,10 @@ Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py -index ab18ff0..7691258 100644 +index 11b5cf5..2be4738 100644 --- a/setup.py +++ b/setup.py -@@ -1706,8 +1706,8 @@ class PyBuildExt(build_ext): +@@ -1895,8 +1895,8 @@ class PyBuildExt(build_ext): self.detect_decimal() self.detect_ctypes() self.detect_multiprocessing() diff --git a/meta/recipes-devtools/python/python3/cgi_py.patch b/meta/recipes-devtools/python/python3/cgi_py.patch index 6c4ba54320..81e6099cfb 100644 --- a/meta/recipes-devtools/python/python3/cgi_py.patch +++ b/meta/recipes-devtools/python/python3/cgi_py.patch @@ -1,4 +1,4 @@ -From 62336285cba38017b35cb761c03f0c7e80a671a3 Mon Sep 17 00:00:00 2001 +From 5b0d1212d661e9a8a36738279fc9109f96eebd25 Mon Sep 17 00:00:00 2001 From: Mark Hatle <mark.hatle@windriver.com> Date: Wed, 21 Sep 2011 20:55:33 -0500 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> 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Lib/cgi.py b/Lib/cgi.py -index 8cf6687..094c7b4 100755 +index 6cb8cf2..a873ff3 100755 --- a/Lib/cgi.py +++ b/Lib/cgi.py @@ -1,13 +1,4 @@ diff --git a/meta/recipes-devtools/python/python3/crosspythonpath.patch b/meta/recipes-devtools/python/python3/crosspythonpath.patch index d789ab57d4..5bb25264da 100644 --- a/meta/recipes-devtools/python/python3/crosspythonpath.patch +++ b/meta/recipes-devtools/python/python3/crosspythonpath.patch @@ -1,4 +1,8 @@ -configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD +From baa3a232e64e9bf5ae945366efdb8088ccf9b828 Mon Sep 17 00:00:00 2001 +From: Ricardo Ribalda <ricardo@ribalda.com> +Date: Tue, 18 Nov 2014 03:35:33 -0500 +Subject: [PATCH] configure.ac: add CROSSPYTHONPATH into PYTHONPATH for + PYTHON_FOR_BUILD When building x86->x86 the system will try to execute .so and related items from the default PYTHONPATH. This will fail if the target CPU contains @@ -10,11 +14,16 @@ Upstream-Status: Inappropriate [OE-Core integration specific] Credits-to: Mark Hatle <mark.hatle@windriver.com> Credits-to: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com> + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/configure.ac b/configure.ac -index 4ab19a6..7036a53 100644 +index d0db062..e5e3df8 100644 --- a/configure.ac +++ b/configure.ac -@@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then +@@ -83,7 +83,7 @@ if test "$cross_compiling" = yes; then AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) fi AC_MSG_RESULT($interp) diff --git a/meta/recipes-devtools/python/python3/makerace.patch b/meta/recipes-devtools/python/python3/makerace.patch index 96744cb557..2c06784ffc 100644 --- a/meta/recipes-devtools/python/python3/makerace.patch +++ b/meta/recipes-devtools/python/python3/makerace.patch @@ -1,3 +1,8 @@ +From 7cc02dfa593d1350a689d64a7a6f2dc6478afe24 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Tue, 13 Jul 2021 23:19:29 +0100 +Subject: [PATCH] python3: Fix make race + libainstall installs python-config.py but the .pyc cache files are generated by the libinstall target. This means some builds may not generate the pyc files for python-config.py depending on the order things happen in. This means builds @@ -8,14 +13,18 @@ Add a dependency to avoid the race. Upstream-Status: Pending Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> -Index: Python-3.9.6/Makefile.pre.in -=================================================================== ---- Python-3.9.6.orig/Makefile.pre.in -+++ Python-3.9.6/Makefile.pre.in -@@ -1486,7 +1486,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter - venv venv/scripts venv/scripts/common venv/scripts/posix \ - curses pydoc_data \ - zoneinfo +--- + Makefile.pre.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 5e13ba2..026bffd 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1527,7 +1527,7 @@ TESTSUBDIRS= ctypes/test \ + unittest/test unittest/test/testmock + + TEST_MODULES=@TEST_MODULES@ -libinstall: build_all $(srcdir)/Modules/xxmodule.c +libinstall: build_all $(srcdir)/Modules/xxmodule.c libainstall @for i in $(SCRIPTDIR) $(LIBDEST); \ diff --git a/meta/recipes-devtools/python/python3/python-config.patch b/meta/recipes-devtools/python/python3/python-config.patch index d0ddbbc7fd..4da399e46e 100644 --- a/meta/recipes-devtools/python/python3/python-config.patch +++ b/meta/recipes-devtools/python/python3/python-config.patch @@ -1,4 +1,4 @@ -From 57d073c12e7bede29919117b0141df14015eb27f Mon Sep 17 00:00:00 2001 +From 8632f25ac4e2c53a3c2c8a1b4fc97fc86e8aad5a Mon Sep 17 00:00:00 2001 From: Tyler Hall <tylerwhall@gmail.com> Date: Sun, 4 May 2014 20:06:43 -0400 Subject: [PATCH] python-config: Revert to using distutils.sysconfig @@ -14,26 +14,27 @@ as appropriate. Upstream-Status: Inappropriate [Embedded Specific] Signed-off-by: Tyler Hall <tylerwhall@gmail.com> -: --- - Misc/python-config.in | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) + Misc/python-config.in | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Misc/python-config.in b/Misc/python-config.in -index ebd99da..13e57ae 100644 +index ebd99da..0492e08 100644 --- a/Misc/python-config.in +++ b/Misc/python-config.in -@@ -6,7 +6,7 @@ +@@ -6,7 +6,9 @@ import getopt import os import sys -import sysconfig ++import warnings ++warnings.filterwarnings("ignore", category=DeprecationWarning) +from distutils import sysconfig valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir', -@@ -35,14 +35,14 @@ if '--help' in opt_flags: +@@ -35,14 +37,14 @@ if '--help' in opt_flags: for opt in opt_flags: if opt == '--prefix': diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json index d65cf49cb8..2f5dad6486 100644 --- a/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/meta/recipes-devtools/python/python3/python3-manifest.json @@ -980,7 +980,8 @@ "pprint": { "summary": "Python pretty-print support", "rdepends": [ - "core" + "core", + "profile" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/pprint.py" 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: with open(sys.argv[1], 'w') as f: for k in sorted(l.keys()): f.write('%s = ' % k) - pprint.pprint(l[k], stream=f, width=sys.maxsize) + pprint.pprint(l[k], stream=f, width=1) f.write('\n') diff --git a/meta/recipes-devtools/python/python3_3.9.6.bb b/meta/recipes-devtools/python/python3_3.10.2.bb index 986dfda83d..32da2a12c8 100644 --- a/meta/recipes-devtools/python/python3_3.9.6.bb +++ b/meta/recipes-devtools/python/python3_3.10.2.bb @@ -1,10 +1,10 @@ SUMMARY = "The Python Programming Language" HOMEPAGE = "http://www.python.org" DESCRIPTION = "Python is a programming language that lets you work more quickly and integrate your systems more effectively." -LICENSE = "PSFv2" +LICENSE = "PSF-2.0" SECTION = "devel/python" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c22d2438294c784731bf9dd224a467b7" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4b8801e752a2c70ac41a5f9aa243f766" SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://run-ptest \ @@ -25,21 +25,22 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-Use-FLAG_REF-always-for-interned-strings.patch \ file://0001-test_locale.py-correct-the-test-output-format.patch \ file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \ - file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \ file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \ file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ - file://0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch \ file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \ file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch \ file://makerace.patch \ + file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ + file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ " -SRC_URI_append_class-native = " \ +SRC_URI:append:class-native = " \ + file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \ file://12-distutils-prefix-is-inside-staging-area.patch \ file://0001-Don-t-search-system-for-headers-libraries.patch \ " -SRC_URI[sha256sum] = "397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" +SRC_URI[sha256sum] = "17de3ac7da9f2519aa9d64378c603a73a0e9ad58dffa8812e45160c086de64c7" # exclude pre-releases for both python 2.x and 3.x UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" @@ -48,14 +49,14 @@ UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/" CVE_PRODUCT = "python" # Upstream consider this expected behaviour -CVE_CHECK_WHITELIST += "CVE-2007-4559" +CVE_CHECK_IGNORE += "CVE-2007-4559" # This is not exploitable when glibc has CVE-2016-10739 fixed. -CVE_CHECK_WHITELIST += "CVE-2019-18348" +CVE_CHECK_IGNORE += "CVE-2019-18348" # This is windows only issue. -CVE_CHECK_WHITELIST += "CVE-2020-15523" +CVE_CHECK_IGNORE += "CVE-2020-15523" -PYTHON_MAJMIN = "3.9" +PYTHON_MAJMIN = "3.10" S = "${WORKDIR}/Python-${PV}" @@ -65,24 +66,27 @@ inherit autotools pkgconfig qemu ptest multilib_header update-alternatives MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" -ALTERNATIVE_${PN}-dev = "python3-config" +ALTERNATIVE:${PN}-dev = "python3-config" ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config" ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}" -DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2 autoconf-archive-native" -DEPENDS_append_class-target = " python3-native" -DEPENDS_append_class-nativesdk = " python3-native" +DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux-libuuid libtirpc libnsl2 autoconf-archive-native" +DEPENDS:append:class-target = " python3-native" +DEPENDS:append:class-nativesdk = " python3-native" + +# force to use the mutex+cond implementation (https://bugs.python.org/issue41710) +CFLAGS += "-DHAVE_BROKEN_POSIX_SEMAPHORES" EXTRA_OECONF = " --without-ensurepip --enable-shared --with-platlibdir=${baselib}" -EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}" +EXTRA_OECONF:append:class-native = " --bindir=${bindir}/${PN}" export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" EXTRANATIVEPATH += "python3-native" # LTO will be enabled via packageconfig depending upong distro features -LTO_class-target = "" +LTO:class-target = "" CACHED_CONFIGUREVARS = " \ ac_cv_file__dev_ptmx=yes \ @@ -90,17 +94,10 @@ CACHED_CONFIGUREVARS = " \ ac_cv_working_tzset=yes \ " -def possibly_include_pgo(d): - # PGO currently causes builds to not be reproducible, so disable it for - # now. See YOCTO #13407 - if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': - return 'pgo' - - return '' - -PACKAGECONFIG_class-target ??= "readline ${@possibly_include_pgo(d)} gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" -PACKAGECONFIG_class-native ??= "readline gdbm" -PACKAGECONFIG_class-nativesdk ??= "readline gdbm" +# PGO currently causes builds to not be reproducible so disable by default, see YOCTO #13407 +PACKAGECONFIG:class-target ??= "readline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto', d)}" +PACKAGECONFIG:class-native ??= "readline gdbm" +PACKAGECONFIG:class-nativesdk ??= "readline gdbm" PACKAGECONFIG[readline] = ",,readline" # Use profile guided optimisation by running PyBench inside qemu-user PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" @@ -108,7 +105,7 @@ PACKAGECONFIG[tk] = ",,tk" PACKAGECONFIG[gdbm] = ",,gdbm" PACKAGECONFIG[lto] = "--with-lto,," -do_configure_prepend () { +do_configure:prepend () { mkdir -p ${B}/Modules cat > ${B}/Modules/Setup.local << EOF *disabled* @@ -117,7 +114,7 @@ ${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)} EOF } -CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" +CPPFLAGS:append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" EXTRA_OEMAKE = '\ STAGING_LIBDIR=${STAGING_LIBDIR} \ @@ -125,7 +122,7 @@ EXTRA_OEMAKE = '\ LIB=${baselib} \ ' -do_compile_prepend_class-target() { +do_compile:prepend:class-target() { if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" cat >pgo-wrapper <<EOF @@ -137,15 +134,15 @@ EOF fi } -do_install_prepend() { +do_install:prepend() { ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile } -do_install_append_class-target() { +do_install:append:class-target() { oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h } -do_install_append_class-native() { +do_install:append:class-native() { # Make sure we use /usr/bin/env python for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT @@ -155,9 +152,24 @@ do_install_append_class-native() { # (these often end up too long for the #! parser in the kernel as the # buffer is 128 bytes long). ln -s python3-native/python3 ${D}${bindir}/nativepython3 + + # Remove the opt-1.pyc and opt-2.pyc files. There are over 3,000 of them + # and the overhead in each recipe-sysroot-native isn't worth it, particularly + # when they're only used for python called with -O or -OO. + #find ${D} -name *opt-*.pyc -delete + # Remove all pyc files. There are a ton of them and it is probably faster to let + # python create the ones it wants at runtime rather than manage in the sstate + # tarballs and sysroot creation. + find ${D} -name *.pyc -delete + } -do_install_append() { +do_install:append() { + for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do + python3 ${WORKDIR}/reformat_sysconfig.py $c + done + rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython* + mkdir -p ${D}${libdir}/python-sysconfigdata sysconfigfile=`find ${D} -name _sysconfig*.py` cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py @@ -175,11 +187,16 @@ do_install_append() { # Upstream is discussing ways to solve the issue properly, until then let's # just not install the problematic files. # More info: http://benno.id.au/blog/2013/01/15/python-determinism - rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython* - rm ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython* + rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_range.cpython* + rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/test/__pycache__/test_xml_etree.cpython* + + # Remove the opt-1.pyc and opt-2.pyc files. They effectively waste space on embedded + # style targets as they're only used when python is called with the -O or -OO options + # which is rare. + find ${D} -name *opt-*.pyc -delete } -do_install_append_class-nativesdk () { +do_install:append:class-nativesdk () { # Make sure we use /usr/bin/env python for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT @@ -188,6 +205,14 @@ do_install_append_class-nativesdk () { } SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py" +SSTATE_HASHEQUIV_FILEMAP = " \ + populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \ + populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \ + populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \ + populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \ + populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \ + populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \ + " PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess" py_package_preprocess () { @@ -257,7 +282,7 @@ python(){ if pypackage not in rprovides: rprovides.append(pypackage) - d.setVar('RPROVIDES_class-native', ' '.join(rprovides)) + d.setVar('RPROVIDES:class-native', ' '.join(rprovides)) # Then work on the target include_pycs = d.getVar('INCLUDE_PYCS') @@ -275,33 +300,36 @@ python(){ newpackages.append(pypackage) # "Build" python's manifest FILES, RDEPENDS and SUMMARY - d.setVar('FILES_' + pypackage, '') + d.setVar('FILES:' + pypackage, '') for value in python_manifest[key]['files']: - d.appendVar('FILES_' + pypackage, ' ' + value) + d.appendVar('FILES:' + pypackage, ' ' + value) # Add cached files if include_pycs == '1': for value in python_manifest[key]['cached']: - d.appendVar('FILES_' + pypackage, ' ' + value) + d.appendVar('FILES:' + pypackage, ' ' + value) for value in python_manifest[key]['rdepends']: # Make it work with or without $PN if '${PN}' in value: value=value.split('-', 1)[1] - d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value) + d.appendVar('RDEPENDS:' + pypackage, ' ' + pn + '-' + value) for value in python_manifest[key].get('rrecommends', ()): if '${PN}' in value: value=value.split('-', 1)[1] - d.appendVar('RRECOMMENDS_' + pypackage, ' ' + pn + '-' + value) + d.appendVar('RRECOMMENDS:' + pypackage, ' ' + pn + '-' + value) - d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary']) + d.setVar('SUMMARY:' + pypackage, python_manifest[key]['summary']) # Prepending so to avoid python-misc getting everything packages = newpackages + packages d.setVar('PACKAGES', ' '.join(packages)) - d.setVar('ALLOW_EMPTY_${PN}-modules', '1') - d.setVar('ALLOW_EMPTY_${PN}-pkgutil', '1') + d.setVar('ALLOW_EMPTY:${PN}-modules', '1') + d.setVar('ALLOW_EMPTY:${PN}-pkgutil', '1') + + if "pgo" in d.getVar("PACKAGECONFIG").split() and not bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d): + bb.fatal("pgo cannot be enabled as there is no qemu-usermode support for this architecture/machine") } # Files needed to create a new manifest @@ -326,30 +354,30 @@ do_create_manifest() { addtask do_create_manifest after do_patch do_prepare_recipe_sysroot # manual dependency additions -RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules" -RRECOMMENDS_${PN}-crypt_append_class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" -RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" +RRECOMMENDS:${PN}-core:append:class-nativesdk = " nativesdk-python3-modules" +RRECOMMENDS:${PN}-crypt:append:class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" +RRECOMMENDS:${PN}-crypt:append:class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates" # For historical reasons PN is empty and provided by python3-modules -FILES_${PN} = "" -RPROVIDES_${PN}-modules = "${PN}" +FILES:${PN} = "" +RPROVIDES:${PN}-modules = "${PN}" -FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" -FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" +FILES:${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3" +FILES:${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" # provide python-pyvenv from python3-venv -RPROVIDES_${PN}-venv += "${MLPREFIX}python3-pyvenv" +RPROVIDES:${PN}-venv += "${MLPREFIX}python3-pyvenv" # package libpython3 PACKAGES =+ "libpython3 libpython3-staticdev" -FILES_libpython3 = "${libdir}/libpython*.so.*" -FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a" -INSANE_SKIP_${PN}-dev += "dev-elf" -INSANE_SKIP_${PN}-ptest = "dev-deps" +FILES:libpython3 = "${libdir}/libpython*.so.*" +FILES:libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a" +INSANE_SKIP:${PN}-dev += "dev-elf" +INSANE_SKIP:${PN}-ptest = "dev-deps" # catch all the rest (unsorted) PACKAGES += "${PN}-misc" -RDEPENDS_${PN}-misc += "\ +RDEPENDS:${PN}-misc += "\ ${PN}-core \ ${PN}-email \ ${PN}-codecs \ @@ -358,26 +386,26 @@ RDEPENDS_${PN}-misc += "\ ${PN}-audio \ ${PN}-numbers \ " -RDEPENDS_${PN}-modules_append_class-target = " ${MLPREFIX}python3-misc" -RDEPENDS_${PN}-modules_append_class-nativesdk = " ${MLPREFIX}python3-misc" -FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" +RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc" +RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc" +FILES:${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" # catch manpage PACKAGES += "${PN}-man" -FILES_${PN}-man = "${datadir}/man" +FILES:${PN}-man = "${datadir}/man" # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 -RDEPENDS_libpython3_append_libc-glibc = " libgcc" -RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig" -RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata-europe coreutils sed" -RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9" -RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" -RDEPENDS_${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter tcl', '', d)}" -RDEPENDS_${PN}-dev = "" -RDEPENDS_${PN}-pydoc += "${PN}-io" - -RDEPENDS_${PN}-tests_append_class-target = " ${MLPREFIX}bash" -RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash" +RDEPENDS:libpython3:append:libc-glibc = " libgcc" +RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig" +RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata-europe coreutils sed" +RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-tr-tr.iso-8859-9" +RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}" +RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}" +RDEPENDS:${PN}-dev = "" +RDEPENDS:${PN}-pydoc += "${PN}-io" + +RDEPENDS:${PN}-tests:append:class-target = " ${MLPREFIX}bash" +RDEPENDS:${PN}-tests:append:class-nativesdk = " ${MLPREFIX}bash" # Python's tests contain large numbers of files we don't need in the recipe sysroots SYSROOT_PREPROCESS_FUNCS += " py3_sysroot_cleanup" |