Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
SUMMARY = "The Cython language"
HOMEPAGE = "https://pypi.org/project/Cython/"
DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \
It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
and the messy, low-level world of C."
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=61c3ee8961575861fa86c7e62bc9f69c"
PYPI_PACKAGE = "Cython"
BBCLASSEXTEND = "native nativesdk"
SRC_URI[sha256sum] = "8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6"
UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
inherit pypi
RDEPENDS:${PN}:class-target += "\
python3-misc \
python3-netserver \
python3-pkgutil \
python3-pyparsing \
python3-setuptools \
python3-shell \
python3-xml \
"
RDEPENDS:${PN}:class-nativesdk += "\
nativesdk-python3-misc \
nativesdk-python3-netserver \
nativesdk-python3-pkgutil \
nativesdk-python3-pyparsing \
nativesdk-python3-setuptools \
nativesdk-python3-shell \
nativesdk-python3-xml \
"
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 python3|' $PYTHSCRIPT
done
# remove build paths from generated sources
sed -i -e 's|${WORKDIR}||' ${S}/Cython/*.c ${S}/Cython/Compiler/*.c ${S}/Cython/Plex/*.c
}

View File

@@ -0,0 +1,12 @@
SUMMARY = "Useful extra bits for Python - things that should be in the standard library"
HOMEPAGE = "https://pypi.org/project/extras/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6d108f338b2f68fe48ac366c4650bd8b"
inherit pypi
SRC_URI[md5sum] = "3a63ad60cf8f0186c9e3a02f55ec5b14"
SRC_URI[sha256sum] = "132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e"
BBCLASSEXTEND = "nativesdk"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Python Build Reasonableness"
DESCRIPTION = "PBR is a library that injects some useful and sensible default behaviors into your setuptools run"
HOMEPAGE = "https://pypi.org/project/pbr"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
SRC_URI += "file://0001-change-shebang-to-python3.patch"
inherit pypi
RDEPENDS:${PN} += "python3-pip"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,31 @@
SUMMARY = "Python library implementing ASN.1 types."
HOMEPAGE = "http://pyasn1.sourceforge.net/"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=190f79253908c986e6cacf380c3a5f6d"
SRC_URI[sha256sum] = "6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"
RDEPENDS:${PN}:class-target += " \
python3-codecs \
python3-logging \
python3-math \
python3-shell \
"
BBCLASSEXTEND = "native nativesdk"
inherit ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}

View File

@@ -0,0 +1,30 @@
SUMMARY = "Cryptographic library for Python"
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=29242a70410a4eeff488a28164e7ab93"
inherit pypi
PYPI_PACKAGE_EXT = "tar.gz"
RDEPENDS:${PN} += " \
python3-cffi \
python3-ctypes \
python3-io \
python3-math \
"
RDEPENDS:${PN}-tests += " \
python3-unittest \
"
PACKAGES =+ "${PN}-tests"
FILES:${PN}-tests = " \
${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \
${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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

View File

@@ -0,0 +1,11 @@
SUMMARY = "Python 2 and 3 compatibility library"
HOMEPAGE = "https://pypi.org/project/six/"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d"
inherit pypi
RDEPENDS:${PN} = "python3-io"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
SUMMARY = "Alabaster is a visually (c)lean, responsive, configurable theme for the Sphinx documentation system."
HOMEPAGE = "https://alabaster.readthedocs.io/en/latest/"
BUGTRACKER = "https://github.com/sphinx-doc/alabaster/issues"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=21860fdb805bf4e0bfaf94b566b747fa"
SRC_URI[sha256sum] = "75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"
inherit python_flit_core pypi
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,24 @@
SUMMARY = "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=b5cda97fbd7959ad47a952651a87051a"
PYPI_PACKAGE = "asn1crypto"
SRC_URI[sha256sum] = "13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c"
inherit pypi setuptools3
RDEPENDS:${PN}:class-target += " \
python3-codecs \
python3-crypt \
python3-ctypes \
python3-datetime \
python3-io \
python3-netclient \
python3-numbers \
python3-shell \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,27 @@
SUMMARY = "Powerful Python library for atomic file writes"
HOMEPAGE = "https://github.com/untitaker/python-atomicwrites"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4"
SRC_URI[sha256sum] = "81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"
inherit pypi setuptools3 ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
python3-unixadmin \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
RDEPENDS:${PN} = "python3-misc"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,45 @@
From 41103f017f6a233ebb477dd1712fe82ea8f1c84c Mon Sep 17 00:00:00 2001
From: Tim Orling <tim.orling@konsulko.com>
Date: Thu, 29 Feb 2024 08:45:54 -0800
Subject: [PATCH] conftest.py: disable deadline
The deadline is by default 200ms, but this is intended to be useful to
the developer and not necessarily recommended for heavily loaded CI
systems. Avoid warnings by disabling the deadline completely.
https://github.com/HypothesisWorks/hypothesis/issues/3713
https://hypothesis.readthedocs.io/en/latest/settings.html#hypothesis.settings.deadline
https://lists.openembedded.org/g/openembedded-core/topic/104640034#196437
Fixes:
"""
Unreliable test timings! On an initial run, this test took 268.29ms,
which exceeded the deadline of 200.00ms, but on a subsequent run it
took 2.63 ms, which did not. If you expect this sort of variability in
your test timings, consider turning deadlines off for this test by
setting deadline=None.
"""
Upstream-Status: Submitted [https://github.com/python-attrs/attrs/pull/1252]
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
conftest.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conftest.py b/conftest.py
index 144e5f3..fdead3d 100644
--- a/conftest.py
+++ b/conftest.py
@@ -20,7 +20,7 @@ def _frozen(request):
def pytest_configure(config):
# HealthCheck.too_slow causes more trouble than good -- especially in CIs.
settings.register_profile(
- "patience", settings(suppress_health_check=[HealthCheck.too_slow])
+ "patience", settings(suppress_health_check=[HealthCheck.too_slow], deadline=None)
)
settings.load_profile("patience")
--
2.34.1

View File

@@ -0,0 +1,30 @@
From cbe95e1aa6d95195dce13406a6f0522b2964babc Mon Sep 17 00:00:00 2001
From: Tim Orling <tim.orling@konsulko.com>
Date: Fri, 16 Feb 2024 07:17:19 -0800
Subject: [PATCH] test_funcs: skip test_unknown for pytest 8
https://github.com/python-attrs/attrs/issues/1233
Upstream-Status: Inappropriate [Test case needs to be properly fixed upstream]
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
tests/test_funcs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_funcs.py b/tests/test_funcs.py
index 044aaab..0872c31 100644
--- a/tests/test_funcs.py
+++ b/tests/test_funcs.py
@@ -593,7 +593,7 @@ class TestAssoc:
for k, v in change_dict.items():
assert getattr(changed, k) == v
- @given(simple_classes())
+ @pytest.mark.skip('Broken with pytest 8. See https://github.com/python-attrs/attrs/issues/1233')
def test_unknown(self, C):
"""
Wanting to change an unknown attribute raises an
--
2.34.1

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,38 @@
SUMMARY = "Classes Without Boilerplate"
HOMEPAGE = "http://www.attrs.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
SRC_URI[sha256sum] = "935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"
inherit pypi ptest python_hatchling
SRC_URI += " \
file://0001-test_funcs-skip-test_unknown-for-pytest-8.patch \
file://0001-conftest.py-disable-deadline.patch \
file://run-ptest \
"
DEPENDS += " \
python3-hatch-vcs-native \
python3-hatch-fancy-pypi-readme-native \
"
RDEPENDS:${PN}+= " \
python3-compression \
python3-crypt \
"
RDEPENDS:${PN}-ptest += " \
python3-hypothesis \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
install ${S}/conftest.py ${D}${PTEST_PATH}/
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,26 @@
SUMMARY = "A collection of tools for internationalizing Python applications"
HOMEPAGE = "http://babel.edgewall.org/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0f97d9a63e91407b4c0d01efde91cfc0"
SRC_URI[sha256sum] = "6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"
PYPI_PACKAGE = "Babel"
inherit pypi setuptools3
CLEANBROKEN = "1"
RDEPENDS:${PN} += " \
python3-codecs \
python3-difflib \
python3-netserver \
python3-numbers \
python3-pickle \
python3-pytz \
python3-setuptools \
python3-shell \
python3-threading \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,114 @@
# Autogenerated with 'bitbake -c update_crates python3-bcrypt'
# from src/_bcrypt/Cargo.lock
SRC_URI += " \
crate://crates.io/autocfg/1.1.0 \
crate://crates.io/base64/0.21.5 \
crate://crates.io/bcrypt/0.15.0 \
crate://crates.io/bcrypt-pbkdf/0.10.0 \
crate://crates.io/bitflags/1.3.2 \
crate://crates.io/block-buffer/0.10.4 \
crate://crates.io/blowfish/0.9.1 \
crate://crates.io/byteorder/1.5.0 \
crate://crates.io/cfg-if/1.0.0 \
crate://crates.io/cipher/0.4.4 \
crate://crates.io/cpufeatures/0.2.11 \
crate://crates.io/crypto-common/0.1.6 \
crate://crates.io/digest/0.10.7 \
crate://crates.io/generic-array/0.14.7 \
crate://crates.io/getrandom/0.2.11 \
crate://crates.io/heck/0.4.1 \
crate://crates.io/indoc/2.0.4 \
crate://crates.io/inout/0.1.3 \
crate://crates.io/libc/0.2.151 \
crate://crates.io/lock_api/0.4.11 \
crate://crates.io/memoffset/0.9.0 \
crate://crates.io/once_cell/1.19.0 \
crate://crates.io/parking_lot/0.12.1 \
crate://crates.io/parking_lot_core/0.9.9 \
crate://crates.io/pbkdf2/0.12.2 \
crate://crates.io/portable-atomic/1.6.0 \
crate://crates.io/proc-macro2/1.0.70 \
crate://crates.io/pyo3/0.20.3 \
crate://crates.io/pyo3-build-config/0.20.3 \
crate://crates.io/pyo3-ffi/0.20.3 \
crate://crates.io/pyo3-macros/0.20.3 \
crate://crates.io/pyo3-macros-backend/0.20.3 \
crate://crates.io/quote/1.0.33 \
crate://crates.io/redox_syscall/0.4.1 \
crate://crates.io/scopeguard/1.2.0 \
crate://crates.io/sha2/0.10.8 \
crate://crates.io/smallvec/1.11.2 \
crate://crates.io/subtle/2.5.0 \
crate://crates.io/syn/2.0.41 \
crate://crates.io/target-lexicon/0.12.12 \
crate://crates.io/typenum/1.17.0 \
crate://crates.io/unicode-ident/1.0.12 \
crate://crates.io/unindent/0.2.3 \
crate://crates.io/version_check/0.9.4 \
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
crate://crates.io/windows-targets/0.48.5 \
crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
crate://crates.io/windows_aarch64_msvc/0.48.5 \
crate://crates.io/windows_i686_gnu/0.48.5 \
crate://crates.io/windows_i686_msvc/0.48.5 \
crate://crates.io/windows_x86_64_gnu/0.48.5 \
crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
crate://crates.io/windows_x86_64_msvc/0.48.5 \
crate://crates.io/zeroize/1.7.0 \
"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
SRC_URI[bcrypt-0.15.0.sha256sum] = "28d1c9c15093eb224f0baa400f38fcd713fc1391a6f1c389d886beef146d60a3"
SRC_URI[bcrypt-pbkdf-0.10.0.sha256sum] = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
SRC_URI[blowfish-0.9.1.sha256sum] = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[cipher-0.4.4.sha256sum] = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
SRC_URI[inout-0.1.3.sha256sum] = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
SRC_URI[libc-0.2.151.sha256sum] = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
SRC_URI[pbkdf2-0.12.2.sha256sum] = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
SRC_URI[syn-2.0.41.sha256sum] = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"

View File

@@ -0,0 +1,111 @@
From cfdd98b3215cc12e66190a9c7f0a32c052e3c2e7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 26 Feb 2024 18:26:30 -0800
Subject: [PATCH] Bump pyo3 from 0.20.0 to 0.20.3 in /src/_bcrypt (#746)
It fixes build on hosts without 64bit atomics
Upstream-Status: Backport [https://github.com/pyca/bcrypt/commit/c2ef9350798ab59b18e8a0e04a01389858578fe0]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/_bcrypt/Cargo.lock | 22 ++++++++++++++--------
src/_bcrypt/Cargo.toml | 2 +-
2 files changed, 15 insertions(+), 9 deletions(-)
--- a/src/_bcrypt/Cargo.lock
+++ b/src/_bcrypt/Cargo.lock
@@ -233,6 +233,12 @@ dependencies = [
]
[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
name = "proc-macro2"
version = "1.0.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -243,15 +249,16 @@ dependencies = [
[[package]]
name = "pyo3"
-version = "0.20.0"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b"
+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
dependencies = [
"cfg-if",
"indoc",
"libc",
"memoffset",
"parking_lot",
+ "portable-atomic",
"pyo3-build-config",
"pyo3-ffi",
"pyo3-macros",
@@ -260,9 +267,9 @@ dependencies = [
[[package]]
name = "pyo3-build-config"
-version = "0.20.0"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5"
+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
dependencies = [
"once_cell",
"target-lexicon",
@@ -270,9 +277,9 @@ dependencies = [
[[package]]
name = "pyo3-ffi"
-version = "0.20.0"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b"
+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
dependencies = [
"libc",
"pyo3-build-config",
@@ -280,9 +287,9 @@ dependencies = [
[[package]]
name = "pyo3-macros"
-version = "0.20.0"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b"
+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
dependencies = [
"proc-macro2",
"pyo3-macros-backend",
@@ -292,12 +299,13 @@ dependencies = [
[[package]]
name = "pyo3-macros-backend"
-version = "0.20.0"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424"
+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
dependencies = [
"heck",
"proc-macro2",
+ "pyo3-build-config",
"quote",
"syn",
]
--- a/src/_bcrypt/Cargo.toml
+++ b/src/_bcrypt/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2018"
publish = false
[dependencies]
-pyo3 = { version = "0.20.0", features = ["abi3"] }
+pyo3 = { version = "0.20.3", features = ["abi3"] }
bcrypt = "0.15"
bcrypt-pbkdf = "0.10.0"
base64 = "0.21.5"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,36 @@
SUMMARY = "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 += "python3-cffi-native"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', ' -fuse-ld=bfd', '', d)}"
SRC_URI[sha256sum] = "33313a1200a3ae90b75587ceac502b048b840fc69e7f7a0905b5f87fac7a1258"
inherit pypi python_setuptools3_rust ptest-cargo cargo-update-recipe-crates
SRC_URI += " \
file://0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch \
file://run-ptest \
"
CARGO_SRC_DIR = "src/_bcrypt"
require ${BPN}-crates.inc
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
RDEPENDS:${PN}:class-target += "\
python3-cffi \
python3-ctypes \
python3-shell \
"

View File

@@ -0,0 +1,11 @@
SUMMARY = "Unbearably fast runtime type checking in pure Python."
HOMEPAGE = "https://beartype.readthedocs.io"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e71f94261c1b39896cacacfeaf60560e"
SRC_URI[sha256sum] = "e911e1ae7de4bccd15745f7643609d8732f64de5c2fb844e89cbbed1c5a8d495"
inherit setuptools3 pypi
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,13 @@
SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL"
HOMEPAGE = "https://github.com/bastikr/boolean.py"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd"
SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"
PYPI_PACKAGE = "boolean.py"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,32 @@
SUMMARY = "A simple, correct PEP517 package builder"
HOMEPAGE = "https://github.com/pypa/build"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c"
SRC_URI[sha256sum] = "8eea65bb45b1aac2e734ba2cc8dad3a6d97d97901a395bd0ed3e7b46953d2a31"
inherit pypi python_flit_core
DEPENDS += "python3-pyproject-hooks-native"
DEPENDS:remove:class-native = "python3-build-native"
# Skip dependencies as we're doing a minimal build to bootstrap
PEP517_BUILD_OPTS:class-native = "--skip-dependency-check"
do_compile:prepend:class-native() {
export PYTHONPATH="${S}/src"
}
RDEPENDS:${PN} += " \
python3-compression \
python3-difflib \
python3-ensurepip \
python3-logging \
python3-packaging \
python3-pyproject-hooks \
python3-tomllib \
python3-venv \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,32 @@
From 390a233ed969f82b2ef209b23bfb523e785603f9 Mon Sep 17 00:00:00 2001
From: Trevor Gamblin <tgamblin@baylibre.com>
Date: Tue, 9 May 2023 10:19:41 -0400
Subject: [PATCH] setup.py: hard-code version
setup.py is pulling the build version from the current date rather than
a release tag or other predictable method, causing reproducibility
issues in builds. Patch this to make reproducible builds work while
discussing this with upstream maintainer (or developing a patch that can
make calver rely on a more standard pyproject.toml solution).
Upstream-Status: Inappropriate (configuration)
Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 73f6b10..2e27cf1 100644
--- a/setup.py
+++ b/setup.py
@@ -42,5 +42,5 @@ setup(
"use_calver = calver.integration:version",
],
},
- version=calver_version(True),
+ version=calver_version("2022.6.26"),
)
--
2.40.0

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,28 @@
SUMMARY = "Setuptools extension for CalVer package versions"
HOMEPAGE = "https://github.com/di/calver"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = " \
git://github.com/di/calver;branch=master;protocol=https \
file://run-ptest \
file://0001-setup.py-hard-code-version.patch \
"
SRCREV = "3268d8acf2c345f32a1c5f08ba25dc67f76cca81"
inherit python_setuptools_build_meta ptest
S = "${WORKDIR}/git"
RDEPENDS:${PN}-ptest += " \
python3-pretend \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests ${D}${PTEST_PATH}/
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,69 @@
From bd8153872e9c6fc98f4023df9c2deaffea2fa463 Mon Sep 17 00:00:00 2001
From: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 3 Jul 2024 21:34:29 -0400
Subject: [PATCH] 2024.07.04 (#295)
Co-authored-by: alex <772+alex@users.noreply.github.com>
CVE: CVE-2024-39689
Upstream-Status: Backport [https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463]
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
---
certifi/cacert.pem | 40 ----------------------------------------
1 file changed, 40 deletions(-)
diff --git a/certifi/cacert.pem b/certifi/cacert.pem
index 1bec256..6bb8cf8 100644
--- a/certifi/cacert.pem
+++ b/certifi/cacert.pem
@@ -3857,46 +3857,6 @@ DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ
+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=
-----END CERTIFICATE-----
-# Issuer: CN=GLOBALTRUST 2020 O=e-commerce monitoring GmbH
-# Subject: CN=GLOBALTRUST 2020 O=e-commerce monitoring GmbH
-# Label: "GLOBALTRUST 2020"
-# Serial: 109160994242082918454945253
-# MD5 Fingerprint: 8a:c7:6f:cb:6d:e3:cc:a2:f1:7c:83:fa:0e:78:d7:e8
-# SHA1 Fingerprint: d0:67:c1:13:51:01:0c:aa:d0:c7:6a:65:37:31:16:26:4f:53:71:a2
-# SHA256 Fingerprint: 9a:29:6a:51:82:d1:d4:51:a2:e3:7f:43:9b:74:da:af:a2:67:52:33:29:f9:0f:9a:0d:20:07:c3:34:e2:3c:9a
------BEGIN CERTIFICATE-----
-MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG
-A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw
-FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx
-MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
-aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq
-hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b
-RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z
-YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3
-QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw
-yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+
-BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ
-SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH
-r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0
-4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me
-dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw
-q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2
-nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu
-H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
-VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC
-XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd
-6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf
-+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi
-kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7
-wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB
-TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C
-MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn
-4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I
-aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
-qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
------END CERTIFICATE-----
-
# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz
# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz
# Label: "ANF Secure Server Root CA"
--
2.40.0

View File

@@ -0,0 +1,19 @@
SUMMARY = "Python package for providing Mozilla's CA Bundle."
DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \
Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \
which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set."
HOMEPAGE = " http://certifi.io/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c"
SRC_URI += "file://CVE-2024-39689.patch \
"
SRC_URI[sha256sum] = "0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "python3-io"

View File

@@ -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 python3-pycparser"
SRC_URI[sha256sum] = "bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"
inherit pypi setuptools3
RDEPENDS:${PN}:class-target = " \
python3-ctypes \
python3-io \
python3-pycparser \
python3-shell \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,24 @@
SUMMARY = "Universal encoding detector for Python 2 and 3"
HOMEPAGE = "https://pypi.org/project/chardet/"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
SRC_URI[sha256sum] = "1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"
# setup.py of chardet needs this.
DEPENDS += "python3-pytest-runner-native"
inherit pypi python_setuptools_build_meta
PACKAGES =+ "${PN}-cli"
FILES:${PN}-cli += " \
${PYTHON_SITEPACKAGES_DIR}/chardet/cli \
"
RDEPENDS:${PN}-cli = "${PN} "
RDEPENDS:${PN}:class-target += " \
python3-logging \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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}}'

View File

@@ -0,0 +1,39 @@
SUMMARY = "A simple wrapper around optparse for powerful command line utilities."
DESCRIPTION = "\
Click is a Python package for creating beautiful command line interfaces \
in a composable way with as little code as necessary. It's the "Command \
Line Interface Creation Kit". It's highly configurable but comes with \
sensible defaults out of the box."
HOMEPAGE = "http://click.pocoo.org/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
SRC_URI[sha256sum] = "ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
inherit pypi setuptools3 ptest
SRC_URI += "file://run-ptest"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-terminal \
python3-unixadmin \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/
cp -rf ${S}/docs ${D}${PTEST_PATH}/
}
UPSTREAM_CHECK_REGEX = "click/(?P<pver>\d+(\.\d+)+)/"
CLEANBROKEN = "1"
RDEPENDS:${PN} += "\
python3-io \
python3-threading \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,102 @@
# Autogenerated with 'bitbake -c update_crates python3-cryptography'
# from src/rust/Cargo.lock
SRC_URI += " \
crate://crates.io/asn1/0.15.5 \
crate://crates.io/asn1_derive/0.15.5 \
crate://crates.io/autocfg/1.1.0 \
crate://crates.io/base64/0.21.7 \
crate://crates.io/bitflags/1.3.2 \
crate://crates.io/bitflags/2.4.2 \
crate://crates.io/cc/1.0.83 \
crate://crates.io/cfg-if/1.0.0 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/heck/0.4.1 \
crate://crates.io/indoc/2.0.4 \
crate://crates.io/libc/0.2.152 \
crate://crates.io/lock_api/0.4.11 \
crate://crates.io/memoffset/0.9.0 \
crate://crates.io/once_cell/1.19.0 \
crate://crates.io/openssl/0.10.63 \
crate://crates.io/openssl-macros/0.1.1 \
crate://crates.io/openssl-sys/0.9.99 \
crate://crates.io/parking_lot/0.12.1 \
crate://crates.io/parking_lot_core/0.9.9 \
crate://crates.io/pem/3.0.3 \
crate://crates.io/pkg-config/0.3.29 \
crate://crates.io/portable-atomic/1.6.0 \
crate://crates.io/proc-macro2/1.0.78 \
crate://crates.io/pyo3/0.20.3 \
crate://crates.io/pyo3-build-config/0.20.3 \
crate://crates.io/pyo3-ffi/0.20.3 \
crate://crates.io/pyo3-macros/0.20.3 \
crate://crates.io/pyo3-macros-backend/0.20.3 \
crate://crates.io/quote/1.0.35 \
crate://crates.io/redox_syscall/0.4.1 \
crate://crates.io/scopeguard/1.2.0 \
crate://crates.io/self_cell/1.0.3 \
crate://crates.io/smallvec/1.13.1 \
crate://crates.io/syn/2.0.48 \
crate://crates.io/target-lexicon/0.12.13 \
crate://crates.io/unicode-ident/1.0.12 \
crate://crates.io/unindent/0.2.3 \
crate://crates.io/vcpkg/0.2.15 \
crate://crates.io/windows-targets/0.48.5 \
crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
crate://crates.io/windows_aarch64_msvc/0.48.5 \
crate://crates.io/windows_i686_gnu/0.48.5 \
crate://crates.io/windows_i686_msvc/0.48.5 \
crate://crates.io/windows_x86_64_gnu/0.48.5 \
crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
crate://crates.io/windows_x86_64_msvc/0.48.5 \
"
SRC_URI[asn1-0.15.5.sha256sum] = "ae3ecbce89a22627b5e8e6e11d69715617138290289e385cde773b1fe50befdb"
SRC_URI[asn1_derive-0.15.5.sha256sum] = "861af988fac460ac69a09f41e6217a8fb9178797b76fcc9478444be6a59be19c"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
SRC_URI[libc-0.2.152.sha256sum] = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
SRC_URI[openssl-0.10.63.sha256sum] = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
SRC_URI[openssl-sys-0.9.99.sha256sum] = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
SRC_URI[pem-3.0.3.sha256sum] = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
SRC_URI[pkg-config-0.3.29.sha256sum] = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
SRC_URI[self_cell-1.0.3.sha256sum] = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
SRC_URI[target-lexicon-0.12.13.sha256sum] = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"

View File

@@ -0,0 +1,31 @@
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] = "505cd5e3b0cb32da1526f07042b7fc38a4b6c356710cb73d2b5f76b037a38ed1"
PYPI_PACKAGE = "cryptography_vectors"
inherit pypi python_setuptools_build_meta
DEPENDS += " \
python3-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 = ""
RECIPE_NO_UPDATE_REASON = "Must be updated in sync with python3-cryptography."

View File

@@ -0,0 +1,43 @@
From b7dd3ce1d75d1e6255e1aca82aa7f401d4246a75 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Tue, 17 May 2022 17:22:48 +0800
Subject: [PATCH] pyproject.toml: remove --benchmark-disable option
The new version introduced below change, so remove the option
to avoid python3-pytest-benchmark rdepends to fix the gap.
496703c8 Refs #7079 -- added basic scaffholding for benchmarks (#7087)
Fixes:
# ./run-ptest
Free memory: 31.283 GB
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --benchmark-disable
inifile: /usr/lib/python3-cryptography/ptest/pyproject.toml
rootdir: /usr/lib/python3-cryptography/ptest
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Refresh for 42.02
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index c9a7979bd..dec4b7157 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -92,7 +92,7 @@ rust-version = ">=1.63.0"
[tool.pytest.ini_options]
-addopts = "-r s --capture=no --strict-markers --benchmark-disable"
+addopts = "-r s --capture=no --strict-markers"
console_output_style = "progress-even-when-capture-no"
markers = [
"skip_fips: this test is not executed in FIPS mode",
--
2.34.1

View File

@@ -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.:
print("Insufficient free memory({:.3f}): requires > 2 GB".format(mem_free))
sys.exit(1)
else:
print("Free memory: {:.3f} GB".format(mem_free))

View File

@@ -0,0 +1,9 @@
#!/bin/sh
if ./check-memfree.py; then
# Skip the bench test module, we don't yet have pytest3-benchmark in core
# and these are more benchmarks than unit tests.
pytest --automake -k 'not bench'
else
echo "SKIP: crytography.not_enough_memory"
fi

View File

@@ -0,0 +1,67 @@
SUMMARY = "Provides cryptographic recipes and primitives to python developers"
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 \
"
LDSHARED += "-pthread"
SRC_URI[sha256sum] = "6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"
SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
file://check-memfree.py \
file://run-ptest \
"
require ${BPN}-crates.inc
inherit pypi python_setuptools3_rust cargo-update-recipe-crates pkgconfig
DEPENDS += " \
python3-cffi-native \
"
RDEPENDS:${PN} += " \
python3-cffi \
"
RDEPENDS:${PN}:append:class-target = " \
python3-numbers \
python3-threading \
"
RDEPENDS:${PN}-ptest += " \
python3-bcrypt \
python3-cryptography-vectors (= ${PV}) \
python3-hypothesis \
python3-iso8601 \
python3-mmap \
python3-pretend \
python3-psutil \
python3-pytest \
python3-unittest-automake-output \
python3-pytest-subtests \
python3-pytz \
"
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/
# remove test_x509.py as it needs benchmark and we don't
# want to introduce the benchmark dependency
rm -rf ${D}${PTEST_PATH}/tests/bench/test_x509.py
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}-dbg += " \
${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,37 @@
inherit setuptools3
require python-cython.inc
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.
SETUPTOOLS_INSTALL_ARGS += "--skip-build"
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
mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
}
PACKAGESPLITFUNCS =+ "cython_fix_sources"
cython_fix_sources () {
for f in ${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/FlowControl.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/FusedNode.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/Scanning.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Compiler/Visitor.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Plex/Actions.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Plex/Scanners.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Runtime/refnanny.c \
${PKGD}${TARGET_DBGSRC_DIR}/Cython/Tempita/_tempita.c \
${PKGD}${libdir}/${PYTHON_DIR}/site-packages/Cython*/SOURCES.txt; do
if [ -e $f ]; then
sed -i -e 's#${WORKDIR}/Cython-${PV}#${TARGET_DBGSRC_DIR}#g' $f
fi
done
}

View File

@@ -0,0 +1,23 @@
SUMMARY = "Python bindings for the DBus inter-process communication system"
SECTION = "devel/python"
HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=97f58951300aa52a9f9e3a62bd5c846c"
DEPENDS = "expat dbus glib-2.0 virtual/libintl"
SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz"
SRC_URI[sha256sum] = "ad67819308618b5069537be237f8e68ca1c7fcc95ee4a121fe6845b1418248f8"
S = "${WORKDIR}/dbus-python-${PV}"
inherit setuptools3-base meson pkgconfig
# requires dbus-run-session
EXTRA_OEMESON += "-Dtests=false"
RDEPENDS:${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml"
FILES:${PN}-dev += "${libdir}/pkgconfig"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,22 @@
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-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
SRC_URI[sha256sum] = "b23b8e1b51fe2a9b13e617fff6b60b3ed8e536c080cf3498019d223678d5ea49"
PYPI_PACKAGE = "python-dbusmock"
inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-dbus \
python3-unittest \
python3-xml \
"
RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', '${MLPREFIX}python3-pygobject', '', d)}"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,20 @@
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=08f5f8aa6a1db2500c08a2bb558e45af"
SRC_URI[sha256sum] = "f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"
inherit pypi setuptools3
do_install:append() {
for f in rst2html rst2html4 rst2html5 rst2latex rst2man \
rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml \
rstpep2html
do
mv ${D}${bindir}/$f.py ${D}${bindir}/$f;
done
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,132 @@
From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Wed, 19 Jan 2022 12:46:42 -0500
Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb.
Upstream-Status: Inappropriate [embedded specific]
---
libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
libfdt/libfdt.h | 18 ------------------
libfdt/version.lds | 1 -
3 files changed, 22 insertions(+), 26 deletions(-)
diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
index 5c0c398..d217e79 100644
--- a/libfdt/fdt_overlay.c
+++ b/libfdt/fdt_overlay.c
@@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
return fdt32_to_cpu(*val);
}
-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
- int fragment_offset, char const **pathp)
+/**
+ * overlay_get_target - retrieves the offset of a fragment's target
+ * @fdt: Base device tree blob
+ * @fdto: Device tree overlay blob
+ * @fragment: node offset of the fragment in the overlay
+ * @pathp: pointer which receives the path of the target (or NULL)
+ *
+ * overlay_get_target() retrieves the target offset in the base
+ * device tree of a fragment, no matter how the actual targeting is
+ * done (through a phandle or a path)
+ *
+ * returns:
+ * the targeted node offset in the base device tree
+ * Negative error code on error
+ */
+static int overlay_get_target(const void *fdt, const void *fdto,
+ int fragment, char const **pathp)
{
uint32_t phandle;
const char *path = NULL;
int path_len = 0, ret;
/* Try first to do a phandle based lookup */
- phandle = overlay_get_target_phandle(fdto, fragment_offset);
+ phandle = overlay_get_target_phandle(fdto, fragment);
if (phandle == (uint32_t)-1)
return -FDT_ERR_BADPHANDLE;
/* no phandle, try path */
if (!phandle) {
/* And then a path based lookup */
- path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len);
+ path = fdt_getprop(fdto, fragment, "target-path", &path_len);
if (path)
ret = fdt_path_offset(fdt, path);
else
@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
if (overlay < 0)
return overlay;
- target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL);
+ target = overlay_get_target(fdt, fdto, fragment, NULL);
if (target < 0)
return target;
@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
return -FDT_ERR_BADOVERLAY;
/* get the target of the fragment */
- ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
+ ret = overlay_get_target(fdt, fdto, fragment, &target_path);
if (ret < 0)
return ret;
target = ret;
@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
if (!target_path) {
/* again in case setprop_placeholder changed it */
- ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
+ ret = overlay_get_target(fdt, fdto, fragment, &target_path);
if (ret < 0)
return ret;
target = ret;
diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
index a7f432c..7f117e8 100644
--- a/libfdt/libfdt.h
+++ b/libfdt/libfdt.h
@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
*/
int fdt_overlay_apply(void *fdt, void *fdto);
-/**
- * fdt_overlay_target_offset - retrieves the offset of a fragment's target
- * @fdt: Base device tree blob
- * @fdto: Device tree overlay blob
- * @fragment_offset: node offset of the fragment in the overlay
- * @pathp: pointer which receives the path of the target (or NULL)
- *
- * fdt_overlay_target_offset() retrieves the target offset in the base
- * device tree of a fragment, no matter how the actual targeting is
- * done (through a phandle or a path)
- *
- * returns:
- * the targeted node offset in the base device tree
- * Negative error code on error
- */
-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
- int fragment_offset, char const **pathp);
-
/**********************************************************************/
/* Debugging / informational functions */
/**********************************************************************/
diff --git a/libfdt/version.lds b/libfdt/version.lds
index cbce5d4..7ab85f1 100644
--- a/libfdt/version.lds
+++ b/libfdt/version.lds
@@ -77,7 +77,6 @@ LIBFDT_1.2 {
fdt_appendprop_addrrange;
fdt_setprop_inplace_namelen_partial;
fdt_create_with_flags;
- fdt_overlay_target_offset;
local:
*;
};
--
2.19.1

View File

@@ -0,0 +1,25 @@
SUMMARY = "Python Library for the Device Tree Compiler"
HOMEPAGE = "https://devicetree.org/"
DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware."
SECTION = "bootloader"
LICENSE = "GPL-2.0-only | BSD-2-Clause"
DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc"
SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \
"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798"
S = "${WORKDIR}/git"
PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
inherit setuptools3 pkgconfig
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,20 @@
SUMMARY = "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 python_setuptools_build_meta
PYPI_PACKAGE = "dtschema"
SRC_URI[sha256sum] = "df4e5afb35bda93894209d2465e87fb7103f1a95a05909ebcb594fc4cf4fdd1e"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-dtc \
python3-jsonschema \
python3-rfc3987 \
python3-ruamel-yaml \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,15 @@
SUMMARY = "A Python library for creating editable wheels"
HOMEPAGE = "https://github.com/pfmoore/editables"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=41bc1be47b7bb8240db3ef928c7cb0bf"
SRC_URI[sha256sum] = "309627d9b5c4adc0e668d8c6fa7bac1ba7c8c5d415c2d27f60f081f8e80d1de2"
inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += "\
python3-io \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,2 @@
inherit setuptools3
require python-extras.inc

View File

@@ -0,0 +1,37 @@
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] = "d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7"
inherit pypi python_flit_core
# Need to install by hand as there's a dependency loop
DEPENDS:remove:class-native = " python3-build-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_compile:class-native () {
python_flit_core_do_manual_build
}
do_install:class-native () {
python_pep517_do_bootstrap_install
}
PACKAGES =+ "${PN}-tests"
FILES:${PN}-tests += "\
${PYTHON_SITEPACKAGES_DIR}/flit_core/tests/* \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,32 @@
SUMMARY = "Python library used to interact with Git repositories"
DESCRIPTION = "GitPython provides object model read and write access to \
a git repository. Access repository information conveniently, alter the \
index directly, handle remotes, or go down to low-level object database \
access with big-files support."
HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5279a7ab369ba336989dcf2a107e5c8e"
PYPI_PACKAGE = "GitPython"
inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "2d99869e0fef71a73cbd242528105af1d6c1b108c60dfabd994bf292f76c3ceb"
DEPENDS += " python3-gitdb"
RDEPENDS:${PN} += " \
python3-datetime \
python3-gitdb \
python3-io \
python3-logging \
python3-math \
python3-netclient \
python3-stringold \
python3-unittest \
python3-unixadmin \
git \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,22 @@
SUMMARY = "A pure-Python git object database"
HOMEPAGE = "http://github.com/gitpython-developers/gitdb"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528"
DEPENDS = "python3-smmap"
inherit pypi setuptools3
PYPI_PACKAGE = "gitdb"
SRC_URI[sha256sum] = "bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"
RDEPENDS:${PN} += "python3-compression \
python3-crypt \
python3-io \
python3-mmap \
python3-shell \
python3-smmap \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Hatch plugin for fancy PyPI readmes "
HOMEPAGE = "https://pypi.org/project/hatch-fancy-pypi-readme/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ba5633c60bd3e243091013aa83b4d807"
inherit pypi python_hatchling
PYPI_PACKAGE = "hatch_fancy_pypi_readme"
SRC_URI[sha256sum] = "44dd239f1a779b9dcf8ebc9401a611fd7f7e3e14578dcf22c265dfaf7c1514b8"
BBCLASSEXTEND = "native nativesdk"
UPSTREAM_CHECK_REGEX = "/hatch-fancy-pypi-readme/(?P<pver>(\d+[\.\-_]*)+)/"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Hatch plugin for versioning with your preferred VCS"
HOMEPAGE = "https://pypi.org/project/hatch-vcs/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26501cfd0bbddf830ee820e95551fa3d"
inherit pypi python_hatchling
PYPI_PACKAGE = "hatch_vcs"
SRC_URI[sha256sum] = "093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7"
BBCLASSEXTEND = "native nativesdk"
UPSTREAM_CHECK_REGEX = "/hatch-vcs/(?P<pver>(\d+[\.\-_]*)+)/"

View File

@@ -0,0 +1,17 @@
SUMMARY = "The extensible, standards compliant build backend used by Hatch"
HOMEPAGE = "https://hatch.pypa.io/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbe2fd33fc9297692812fc94b7d27fd9"
inherit pypi python_hatchling
DEPENDS += "python3-pluggy-native python3-pathspec-native python3-packaging-native python3-editables-native python3-trove-classifiers-native"
DEPENDS:remove:class-native = "python3-hatchling-native"
SRC_URI[sha256sum] = "bba440453a224e7d4478457fa2e8d8c3633765bafa02975a6b53b9bf917980bc"
do_compile:prepend() {
export PYTHONPATH=src
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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 --automake

View File

@@ -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

View File

@@ -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))

View File

@@ -0,0 +1,39 @@
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] = "1e31210951511b24ce8b3b6e04d791c466385a30ac3af571bf2223954b025d77"
RDEPENDS:${PN} += " \
python3-attrs \
python3-compression \
python3-core \
python3-json \
python3-pytest \
python3-sortedcontainers \
python3-statistics \
python3-unittest \
"
RDEPENDS:${PN}-ptest += " \
python3-unittest-automake-output \
"
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"

View File

@@ -0,0 +1,14 @@
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=204c0612e40a4dd46012a78d02c80fb1"
SRC_URI[sha256sum] = "028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"
inherit pypi python_flit_core
RDEPENDS:${PN}:class-target = "\
python3-codecs \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,13 @@
SUMMARY = "Parses image files header and return image size."
HOMEPAGE = "https://github.com/shibukawa/imagesize_py"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=0c128f0f7e8a02e1b83884c0b5a41cda"
SRC_URI[sha256sum] = "69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"
inherit setuptools3 pypi
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} = "python3-xml"

View File

@@ -0,0 +1,20 @@
SUMMARY = "Read metadata from Python packages"
HOMEPAGE = "https://pypi.org/project/importlib-metadata/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "importlib_metadata"
UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
SRC_URI[sha256sum] = "f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"
S = "${WORKDIR}/importlib_metadata-${PV}"
DEPENDS += "python3-setuptools-scm-native python3-toml-native"
RDEPENDS:${PN} += "python3-zipp python3-pathlib2"
RDEPENDS:${PN}:append:class-target = " python3-misc"
RDEPENDS:${PN}:append:class-nativesdk = " python3-misc"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,13 @@
SUMMARY = "A small and simple INI-file parser module"
HOMEPAGE = "https://pypi.org/project/iniconfig/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
SRC_URI[sha256sum] = "2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"
DEPENDS += "python3-hatch-vcs-native"
inherit pypi python_hatchling
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Accessing and Modifying INI files"
HOMEPAGE = "https://pypi.org/project/iniparse/"
LICENSE = "MIT & PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \
file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54"
SRC_URI[sha256sum] = "932e5239d526e7acb504017bb707be67019ac428a6932368e6851691093aa842"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-core python3-six"
DEPENDS += "python3-six"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,71 @@
From 74fe171fa4a25c120607e9f8450cbdfee675c959 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Mon, 14 Mar 2022 14:39:22 +0000
Subject: [PATCH] python3-installer: add installer module
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>
---
src/installer/__main__.py | 9 ++++++++-
src/installer/scripts.py | 15 +--------------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/src/installer/__main__.py b/src/installer/__main__.py
index 51014b9..38de286 100644
--- a/src/installer/__main__.py
+++ b/src/installer/__main__.py
@@ -30,6 +30,13 @@ def _get_main_parser() -> argparse.ArgumentParser:
type=str,
help="override prefix to install packages to",
)
+ parser.add_argument(
+ "--interpreter",
+ "-i",
+ type=str,
+ default=sys.executable,
+ help=f"interpreter (defaults to {sys.executable})",
+ )
parser.add_argument(
"--compile-bytecode",
action="append",
@@ -86,7 +93,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, prefix=args.prefix),
- 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):

View File

@@ -0,0 +1,34 @@
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] = "a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"
inherit pypi python_flit_core
# Bootstrap the native build
DEPENDS:remove:class-native = "python3-build-native python3-installer-native"
RDEPENDS:${PN} += " \
python3-compile \
python3-compression \
python3-netclient \
"
INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode"
do_compile:class-native () {
python_flit_core_do_manual_build
}
do_install:prepend:class-native() {
export PYTHONPATH="${S}/src"
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -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=aab31f2ef7ba214a5a341eaa47a7f367"
SRC_URI[sha256sum] = "6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df"
inherit pypi python_poetry_core
RDEPENDS:${PN} += "\
python3-datetime \
python3-numbers \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,16 @@
SUMMARY = "ISO 8601 date/time parser"
HOMEPAGE = "https://github.com/gweis/isodate/"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
SRC_URI[sha256sum] = "48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
python3-numbers \
python3-six \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,51 @@
SUMMARY = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
HOMEPAGE = "https://pypi.org/project/Jinja2/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dc88300786f1c214c1e9827a5229462"
SRC_URI[sha256sum] = "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"
PYPI_PACKAGE = "jinja2"
CVE_PRODUCT = "jinja2 jinja"
CLEANBROKEN = "1"
inherit pypi python_flit_core ptest
SRC_URI += " \
file://run-ptest \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
# test_async items require trio module
rm -f ${D}${PTEST_PATH}/tests/test_async.py ${D}${PTEST_PATH}/tests/test_async_filters.py
}
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
python3-toml \
python3-unixadmin \
"
RDEPENDS:${PN} += " \
python3-asyncio \
python3-crypt \
python3-io \
python3-json \
python3-markupsafe \
python3-math \
python3-netclient \
python3-numbers\
python3-pickle \
python3-pprint \
python3-shell \
python3-threading \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
python3 -mputao.unittest tests.py

View File

@@ -0,0 +1,28 @@
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] = "585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"
RDEPENDS:${PN} += " \
python3-json \
"
BBCLASSEXTEND = "native nativesdk"
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-doctest \
python3-unittest \
python3-unittest-automake-output \
"
do_install_ptest() {
cp -f ${S}/tests.py ${D}${PTEST_PATH}/
}

View File

@@ -0,0 +1,16 @@
SUMMARY = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
DESCRIPTION = "JSON support files from the JSON Schema Specifications (metaschemas, \
vocabularies, etc.), packaged for runtime access from Python as a referencing-based Schema Registry."
HOMEPAGE = "https://pypi.org/project/jsonschema-specifications/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2"
SRC_URI[sha256sum] = "48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"
inherit pypi python_hatchling
PYPI_PACKAGE = "jsonschema_specifications"
DEPENDS += "python3-hatch-vcs-native"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,50 @@
SUMMARY = "An implementation of JSON Schema validation for Python"
HOMEPAGE = "https://github.com/python-jsonschema/jsonschema"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
SRC_URI[sha256sum] = "85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"
inherit pypi python_hatchling
PACKAGES =+ "${PN}-tests"
FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/jsonschema/tests"
DEPENDS += "python3-hatch-fancy-pypi-readme-native python3-hatch-vcs-native "
PACKAGECONFIG ??= "format"
PACKAGECONFIG[format] = ",,,\
python3-idna \
python3-jsonpointer \
python3-webcolors \
python3-rfc3987 \
python3-rfc3339-validator \
"
PACKAGECONFIG[nongpl] = ",,,\
python3-idna \
python3-jsonpointer \
python3-webcolors \
python3-rfc3986-validator \
python3-rfc3339-validator \
"
RDEPENDS:${PN} += " \
python3-attrs \
python3-core \
python3-datetime \
python3-importlib-metadata \
python3-io \
python3-json \
python3-jsonschema-specifications \
python3-netclient \
python3-numbers \
python3-pprint \
python3-pyrsistent \
python3-referencing \
python3-zipp \
"
RDEPENDS:${PN}-tests = "${PN}"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,21 @@
SUMMARY = "Python interface to libarchive"
DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \
dynamically load and access the C library."
HOMEPAGE = "https://github.com/Changaco/python-libarchive-c"
LICENSE = "CC0-1.0"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc"
PYPI_PACKAGE = "libarchive-c"
inherit pypi setuptools3
SRC_URI[sha256sum] = "d673f56673d87ec740d1a328fa205cafad1d60f5daca4685594deb039d32b159"
RDEPENDS:${PN} += "\
libarchive \
python3-ctypes \
python3-mmap \
python3-logging \
"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,38 @@
SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions"
HOMEPAGE = "https://github.com/nexB/license-expression"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI[sha256sum] = "599928edd995c43fc335e0af342076144dc71cb858afa1ed9c1c30c4e81794f5"
inherit pypi ptest python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-booleanpy \
python3-core \
python3-json \
python3-stringold \
python3-logging \
"
BBCLASSEXTEND = "native nativesdk"
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
install -d ${D}${PTEST_PATH}/src
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
cp -rf ${S}/src/* ${D}${PTEST_PATH}/src/
cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/
}

View File

@@ -0,0 +1,42 @@
SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \
libxslt libraries. It provides safe and convenient access to these \
libraries using the ElementTree API. It extends the ElementTree API \
significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
C14N and much more."
HOMEPAGE = "https://lxml.de/"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \
file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \
file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \
"
DEPENDS += "libxml2 libxslt"
SRC_URI[sha256sum] = "6399703c40ba53e2c3b72fdb56cb908d2b83c08082ecf17de839b27e68d1e598"
SRC_URI += "${PYPI_SRC_URI}"
inherit pkgconfig pypi setuptools3
# {standard input}: Assembler messages:
# {standard input}:1488805: Error: branch out of range
DEBUG_OPTIMIZATION:remove:mips = " -Og"
DEBUG_OPTIMIZATION:append:mips = " -O"
BUILD_OPTIMIZATION:remove:mips = " -Og"
BUILD_OPTIMIZATION:append:mips = " -O"
DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
DEBUG_OPTIMIZATION:append:mipsel = " -O"
BUILD_OPTIMIZATION:remove:mipsel = " -Og"
BUILD_OPTIMIZATION:append:mipsel = " -O"
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "libxml2 libxslt python3-compression"
CLEANBROKEN = "1"

View File

@@ -0,0 +1,22 @@
SUMMARY = "File type identification using libmagic"
DESCRIPTION = "This module uses ctypes to access the libmagic file type \
identification library. It makes use of the local magic database and supports \
both textual and MIME-type output."
HOMEPAGE = "http://github.com/ahupp/python-magic"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=61495c152d794e6be5799a9edca149e3"
PYPI_PACKAGE = "python-magic"
inherit pypi setuptools3
SRC_URI[sha256sum] = "c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b"
RDEPENDS:${PN} += "file \
python3-ctypes \
python3-io \
python3-logging \
python3-shell"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,20 @@
SUMMARY = "Templating library for Python"
HOMEPAGE = "http://www.makotemplates.org/"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d0995d6f7ba3f186a03118f244e88f57"
PYPI_PACKAGE = "Mako"
inherit pypi python_setuptools_build_meta
SRC_URI[sha256sum] = "2a0c8ad7f6274271b3bb7467dd37cf9cc6dab4bc19cb69a4ef10669402de698e"
RDEPENDS:${PN} = "python3-html \
python3-markupsafe \
python3-netclient \
python3-pygments \
python3-threading \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,13 @@
SUMMARY = "A Python implementation of John Gruber's Markdown."
HOMEPAGE = "https://python-markdown.github.io/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "Markdown"
SRC_URI[sha256sum] = "e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "python3-logging python3-setuptools"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,27 @@
SUMMARY = "Implements a XML/HTML/XHTML Markup safe string for Python"
HOMEPAGE = "http://github.com/mitsuhiko/markupsafe"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
SRC_URI[sha256sum] = "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"
PYPI_PACKAGE = "MarkupSafe"
inherit pypi python_setuptools_build_meta ptest
RDEPENDS:${PN} += "python3-stringold"
BBCLASSEXTEND = "native nativesdk"
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/
}

View File

@@ -0,0 +1,618 @@
# Autogenerated with 'bitbake -c update_crates python3-maturin'
# from Cargo.lock
SRC_URI += " \
crate://crates.io/adler/1.0.2 \
crate://crates.io/ahash/0.8.6 \
crate://crates.io/aho-corasick/1.1.2 \
crate://crates.io/allocator-api2/0.2.16 \
crate://crates.io/anstream/0.3.2 \
crate://crates.io/anstream/0.6.4 \
crate://crates.io/anstyle/1.0.2 \
crate://crates.io/anstyle-parse/0.2.1 \
crate://crates.io/anstyle-query/1.0.0 \
crate://crates.io/anstyle-wincon/1.0.2 \
crate://crates.io/anstyle-wincon/3.0.1 \
crate://crates.io/anyhow/1.0.75 \
crate://crates.io/autocfg/1.1.0 \
crate://crates.io/base64/0.13.1 \
crate://crates.io/base64/0.21.5 \
crate://crates.io/bitflags/1.3.2 \
crate://crates.io/bitflags/2.4.1 \
crate://crates.io/block-buffer/0.10.4 \
crate://crates.io/bstr/1.8.0 \
crate://crates.io/byteorder/1.5.0 \
crate://crates.io/bytes/1.5.0 \
crate://crates.io/bytesize/1.3.0 \
crate://crates.io/bzip2/0.4.4 \
crate://crates.io/bzip2-sys/0.1.11+1.0.8 \
crate://crates.io/cab/0.4.1 \
crate://crates.io/camino/1.1.6 \
crate://crates.io/cargo-config2/0.1.16 \
crate://crates.io/cargo-options/0.7.2 \
crate://crates.io/cargo-platform/0.1.5 \
crate://crates.io/cargo-xwin/0.16.2 \
crate://crates.io/cargo-zigbuild/0.18.0 \
crate://crates.io/cargo_metadata/0.18.1 \
crate://crates.io/cbindgen/0.26.0 \
crate://crates.io/cc/1.0.83 \
crate://crates.io/cfb/0.9.0 \
crate://crates.io/cfg-if/1.0.0 \
crate://crates.io/charset/0.1.3 \
crate://crates.io/chumsky/0.9.3 \
crate://crates.io/clap/4.3.24 \
crate://crates.io/clap_builder/4.3.24 \
crate://crates.io/clap_complete/4.3.2 \
crate://crates.io/clap_complete_command/0.5.1 \
crate://crates.io/clap_complete_fig/4.3.1 \
crate://crates.io/clap_complete_nushell/0.1.11 \
crate://crates.io/clap_derive/4.3.12 \
crate://crates.io/clap_lex/0.5.0 \
crate://crates.io/cli-table/0.4.7 \
crate://crates.io/colorchoice/1.0.0 \
crate://crates.io/configparser/3.0.3 \
crate://crates.io/console/0.15.7 \
crate://crates.io/content_inspector/0.2.4 \
crate://crates.io/core-foundation/0.9.3 \
crate://crates.io/core-foundation-sys/0.8.4 \
crate://crates.io/cpufeatures/0.2.11 \
crate://crates.io/crc32fast/1.3.2 \
crate://crates.io/crossbeam-channel/0.5.8 \
crate://crates.io/crossbeam-deque/0.8.3 \
crate://crates.io/crossbeam-epoch/0.9.15 \
crate://crates.io/crossbeam-utils/0.8.16 \
crate://crates.io/crypto-common/0.1.6 \
crate://crates.io/data-encoding/2.5.0 \
crate://crates.io/deranged/0.3.9 \
crate://crates.io/dialoguer/0.11.0 \
crate://crates.io/diff/0.1.13 \
crate://crates.io/digest/0.10.7 \
crate://crates.io/dirs/5.0.1 \
crate://crates.io/dirs-sys/0.4.1 \
crate://crates.io/dissimilar/1.0.7 \
crate://crates.io/dunce/1.0.4 \
crate://crates.io/either/1.9.0 \
crate://crates.io/encode_unicode/0.3.6 \
crate://crates.io/encoding_rs/0.8.33 \
crate://crates.io/equivalent/1.0.1 \
crate://crates.io/errno/0.3.8 \
crate://crates.io/expect-test/1.4.1 \
crate://crates.io/fastrand/2.0.1 \
crate://crates.io/fat-macho/0.4.7 \
crate://crates.io/filetime/0.2.22 \
crate://crates.io/flate2/1.0.28 \
crate://crates.io/fnv/1.0.7 \
crate://crates.io/foreign-types/0.3.2 \
crate://crates.io/foreign-types-shared/0.1.1 \
crate://crates.io/form_urlencoded/1.2.1 \
crate://crates.io/fs-err/2.11.0 \
crate://crates.io/generic-array/0.14.7 \
crate://crates.io/getrandom/0.2.11 \
crate://crates.io/glob/0.3.1 \
crate://crates.io/globset/0.4.14 \
crate://crates.io/goblin/0.7.1 \
crate://crates.io/hashbrown/0.12.3 \
crate://crates.io/hashbrown/0.14.3 \
crate://crates.io/heck/0.4.1 \
crate://crates.io/hermit-abi/0.3.3 \
crate://crates.io/home/0.5.5 \
crate://crates.io/humantime/2.1.0 \
crate://crates.io/humantime-serde/1.1.1 \
crate://crates.io/idna/0.5.0 \
crate://crates.io/ignore/0.4.20 \
crate://crates.io/indexmap/1.9.3 \
crate://crates.io/indexmap/2.1.0 \
crate://crates.io/indicatif/0.17.7 \
crate://crates.io/indoc/2.0.4 \
crate://crates.io/instant/0.1.12 \
crate://crates.io/io-lifetimes/1.0.11 \
crate://crates.io/is-terminal/0.4.9 \
crate://crates.io/itertools/0.11.0 \
crate://crates.io/itertools/0.12.0 \
crate://crates.io/itoa/1.0.9 \
crate://crates.io/keyring/2.0.5 \
crate://crates.io/lazy_static/1.4.0 \
crate://crates.io/lddtree/0.3.3 \
crate://crates.io/libc/0.2.150 \
crate://crates.io/libredox/0.0.1 \
crate://crates.io/linux-keyutils/0.2.3 \
crate://crates.io/linux-raw-sys/0.3.8 \
crate://crates.io/linux-raw-sys/0.4.11 \
crate://crates.io/lock_api/0.4.11 \
crate://crates.io/log/0.4.20 \
crate://crates.io/lzxd/0.1.4 \
crate://crates.io/mailparse/0.14.0 \
crate://crates.io/matchers/0.1.0 \
crate://crates.io/memchr/2.6.4 \
crate://crates.io/memoffset/0.9.0 \
crate://crates.io/mime/0.3.17 \
crate://crates.io/mime_guess/2.0.4 \
crate://crates.io/minijinja/1.0.10 \
crate://crates.io/minimal-lexical/0.2.1 \
crate://crates.io/miniz_oxide/0.7.1 \
crate://crates.io/msi/0.7.0 \
crate://crates.io/multipart/0.18.0 \
crate://crates.io/native-tls/0.2.11 \
crate://crates.io/nom/7.1.3 \
crate://crates.io/normalize-line-endings/0.3.0 \
crate://crates.io/normpath/1.1.1 \
crate://crates.io/nu-ansi-term/0.46.0 \
crate://crates.io/number_prefix/0.4.0 \
crate://crates.io/once_cell/1.18.0 \
crate://crates.io/openssl/0.10.60 \
crate://crates.io/openssl-macros/0.1.1 \
crate://crates.io/openssl-probe/0.1.5 \
crate://crates.io/openssl-sys/0.9.96 \
crate://crates.io/option-ext/0.2.0 \
crate://crates.io/os_pipe/1.1.4 \
crate://crates.io/overload/0.1.1 \
crate://crates.io/parking_lot/0.12.1 \
crate://crates.io/parking_lot_core/0.9.9 \
crate://crates.io/paste/1.0.14 \
crate://crates.io/path-slash/0.2.1 \
crate://crates.io/pep440_rs/0.3.12 \
crate://crates.io/pep508_rs/0.2.3 \
crate://crates.io/percent-encoding/2.3.1 \
crate://crates.io/pin-project-lite/0.2.13 \
crate://crates.io/pkg-config/0.3.27 \
crate://crates.io/plain/0.2.3 \
crate://crates.io/platform-info/2.0.2 \
crate://crates.io/portable-atomic/1.5.1 \
crate://crates.io/powerfmt/0.2.0 \
crate://crates.io/ppv-lite86/0.2.17 \
crate://crates.io/pretty_assertions/1.4.0 \
crate://crates.io/proc-macro2/1.0.70 \
crate://crates.io/psm/0.1.21 \
crate://crates.io/pyproject-toml/0.8.1 \
crate://crates.io/python-pkginfo/0.6.0 \
crate://crates.io/quote/1.0.33 \
crate://crates.io/quoted_printable/0.4.8 \
crate://crates.io/rand/0.8.5 \
crate://crates.io/rand_chacha/0.3.1 \
crate://crates.io/rand_core/0.6.4 \
crate://crates.io/rayon/1.8.0 \
crate://crates.io/rayon-core/1.12.0 \
crate://crates.io/redox_syscall/0.3.5 \
crate://crates.io/redox_syscall/0.4.1 \
crate://crates.io/redox_users/0.4.4 \
crate://crates.io/regex/1.10.2 \
crate://crates.io/regex-automata/0.1.10 \
crate://crates.io/regex-automata/0.4.3 \
crate://crates.io/regex-syntax/0.6.29 \
crate://crates.io/regex-syntax/0.8.2 \
crate://crates.io/rfc2047-decoder/0.2.2 \
crate://crates.io/ring/0.17.6 \
crate://crates.io/rustc_version/0.4.0 \
crate://crates.io/rustix/0.37.27 \
crate://crates.io/rustix/0.38.21 \
crate://crates.io/rustls/0.21.9 \
crate://crates.io/rustls-pemfile/2.0.0 \
crate://crates.io/rustls-pki-types/1.0.0 \
crate://crates.io/rustls-webpki/0.101.7 \
crate://crates.io/rustversion/1.0.14 \
crate://crates.io/ryu/1.0.15 \
crate://crates.io/same-file/1.0.6 \
crate://crates.io/schannel/0.1.22 \
crate://crates.io/scopeguard/1.2.0 \
crate://crates.io/scroll/0.11.0 \
crate://crates.io/scroll_derive/0.11.1 \
crate://crates.io/sct/0.7.1 \
crate://crates.io/security-framework/2.9.2 \
crate://crates.io/security-framework-sys/2.9.1 \
crate://crates.io/semver/1.0.20 \
crate://crates.io/serde/1.0.193 \
crate://crates.io/serde_derive/1.0.193 \
crate://crates.io/serde_json/1.0.108 \
crate://crates.io/serde_spanned/0.6.4 \
crate://crates.io/sha2/0.10.8 \
crate://crates.io/sharded-slab/0.1.7 \
crate://crates.io/shell-words/1.1.0 \
crate://crates.io/shlex/1.2.0 \
crate://crates.io/similar/2.3.0 \
crate://crates.io/smallvec/1.11.2 \
crate://crates.io/smawk/0.3.2 \
crate://crates.io/snapbox/0.4.14 \
crate://crates.io/snapbox-macros/0.3.6 \
crate://crates.io/socks/0.3.4 \
crate://crates.io/spin/0.9.8 \
crate://crates.io/stacker/0.1.15 \
crate://crates.io/static_assertions/1.1.0 \
crate://crates.io/strsim/0.10.0 \
crate://crates.io/syn/1.0.109 \
crate://crates.io/syn/2.0.39 \
crate://crates.io/tar/0.4.40 \
crate://crates.io/target-lexicon/0.12.12 \
crate://crates.io/tempfile/3.8.1 \
crate://crates.io/termcolor/1.4.0 \
crate://crates.io/terminal_size/0.2.6 \
crate://crates.io/textwrap/0.16.0 \
crate://crates.io/thiserror/1.0.50 \
crate://crates.io/thiserror-impl/1.0.50 \
crate://crates.io/thread_local/1.1.7 \
crate://crates.io/time/0.3.30 \
crate://crates.io/time-core/0.1.2 \
crate://crates.io/time-macros/0.2.15 \
crate://crates.io/tinyvec/1.6.0 \
crate://crates.io/tinyvec_macros/0.1.1 \
crate://crates.io/toml/0.5.11 \
crate://crates.io/toml/0.8.8 \
crate://crates.io/toml_datetime/0.6.5 \
crate://crates.io/toml_edit/0.20.7 \
crate://crates.io/toml_edit/0.21.0 \
crate://crates.io/tracing/0.1.40 \
crate://crates.io/tracing-attributes/0.1.27 \
crate://crates.io/tracing-core/0.1.32 \
crate://crates.io/tracing-log/0.2.0 \
crate://crates.io/tracing-serde/0.1.3 \
crate://crates.io/tracing-subscriber/0.3.18 \
crate://crates.io/trycmd/0.14.19 \
crate://crates.io/twox-hash/1.6.3 \
crate://crates.io/typenum/1.17.0 \
crate://crates.io/unicase/2.7.0 \
crate://crates.io/unicode-bidi/0.3.13 \
crate://crates.io/unicode-ident/1.0.12 \
crate://crates.io/unicode-linebreak/0.1.5 \
crate://crates.io/unicode-normalization/0.1.22 \
crate://crates.io/unicode-width/0.1.11 \
crate://crates.io/untrusted/0.9.0 \
crate://crates.io/ureq/2.9.1 \
crate://crates.io/url/2.5.0 \
crate://crates.io/utf8parse/0.2.1 \
crate://crates.io/uuid/1.6.1 \
crate://crates.io/valuable/0.1.0 \
crate://crates.io/vcpkg/0.2.15 \
crate://crates.io/version_check/0.9.4 \
crate://crates.io/versions/5.0.1 \
crate://crates.io/wait-timeout/0.2.0 \
crate://crates.io/walkdir/2.4.0 \
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
crate://crates.io/webpki-roots/0.25.3 \
crate://crates.io/which/5.0.0 \
crate://crates.io/wild/2.2.0 \
crate://crates.io/winapi/0.3.9 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-util/0.1.6 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/windows-sys/0.45.0 \
crate://crates.io/windows-sys/0.48.0 \
crate://crates.io/windows-sys/0.52.0 \
crate://crates.io/windows-targets/0.42.2 \
crate://crates.io/windows-targets/0.48.5 \
crate://crates.io/windows-targets/0.52.0 \
crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
crate://crates.io/windows_aarch64_msvc/0.42.2 \
crate://crates.io/windows_aarch64_msvc/0.48.5 \
crate://crates.io/windows_aarch64_msvc/0.52.0 \
crate://crates.io/windows_i686_gnu/0.42.2 \
crate://crates.io/windows_i686_gnu/0.48.5 \
crate://crates.io/windows_i686_gnu/0.52.0 \
crate://crates.io/windows_i686_msvc/0.42.2 \
crate://crates.io/windows_i686_msvc/0.48.5 \
crate://crates.io/windows_i686_msvc/0.52.0 \
crate://crates.io/windows_x86_64_gnu/0.42.2 \
crate://crates.io/windows_x86_64_gnu/0.48.5 \
crate://crates.io/windows_x86_64_gnu/0.52.0 \
crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
crate://crates.io/windows_x86_64_msvc/0.42.2 \
crate://crates.io/windows_x86_64_msvc/0.48.5 \
crate://crates.io/windows_x86_64_msvc/0.52.0 \
crate://crates.io/winnow/0.5.19 \
crate://crates.io/xattr/1.0.1 \
crate://crates.io/xwin/0.5.0 \
crate://crates.io/yansi/0.5.1 \
crate://crates.io/zerocopy/0.7.28 \
crate://crates.io/zerocopy-derive/0.7.28 \
crate://crates.io/zeroize/1.7.0 \
crate://crates.io/zip/0.6.6 \
"
SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
SRC_URI[ahash-0.8.6.sha256sum] = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
SRC_URI[anstream-0.6.4.sha256sum] = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
SRC_URI[anstyle-1.0.2.sha256sum] = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
SRC_URI[anstyle-wincon-1.0.2.sha256sum] = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
SRC_URI[anstyle-wincon-3.0.1.sha256sum] = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
SRC_URI[bstr-1.8.0.sha256sum] = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
SRC_URI[bzip2-0.4.4.sha256sum] = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
SRC_URI[bzip2-sys-0.1.11+1.0.8.sha256sum] = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
SRC_URI[cab-0.4.1.sha256sum] = "ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551"
SRC_URI[camino-1.1.6.sha256sum] = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
SRC_URI[cargo-config2-0.1.16.sha256sum] = "7f387366785e82c7ec7ef5b845a7f61324fbf5d467d6a878469eac30c1c44b1b"
SRC_URI[cargo-options-0.7.2.sha256sum] = "cad71bf996c8e5b9d28ef3472d7ee41f277edf4e38cd597f51ad0438d05d76ea"
SRC_URI[cargo-platform-0.1.5.sha256sum] = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff"
SRC_URI[cargo-xwin-0.16.2.sha256sum] = "02bb6bf59526935e47445f959a19c2168f151284dbf7e57f5577934334e9a61d"
SRC_URI[cargo-zigbuild-0.18.0.sha256sum] = "edc9c2fe646a29983b5f7263bd789175f2aaad7ea42525affa40e2172be93286"
SRC_URI[cargo_metadata-0.18.1.sha256sum] = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
SRC_URI[cfb-0.9.0.sha256sum] = "b390793e912300f1aa713429f7fd0c391024e6c18b988962558bc4f96a349b1f"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[charset-0.1.3.sha256sum] = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
SRC_URI[chumsky-0.9.3.sha256sum] = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
SRC_URI[clap-4.3.24.sha256sum] = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487"
SRC_URI[clap_builder-4.3.24.sha256sum] = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e"
SRC_URI[clap_complete-4.3.2.sha256sum] = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"
SRC_URI[clap_complete_command-0.5.1.sha256sum] = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
SRC_URI[clap_complete_fig-4.3.1.sha256sum] = "99fee1d30a51305a6c2ed3fc5709be3c8af626c9c958e04dd9ae94e27bcbce9f"
SRC_URI[clap_complete_nushell-0.1.11.sha256sum] = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
SRC_URI[cli-table-0.4.7.sha256sum] = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d"
SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
SRC_URI[configparser-3.0.3.sha256sum] = "e0e56e414a2a52ab2a104f85cd40933c2fbc278b83637facf646ecf451b49237"
SRC_URI[console-0.15.7.sha256sum] = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
SRC_URI[content_inspector-0.2.4.sha256sum] = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38"
SRC_URI[core-foundation-0.9.3.sha256sum] = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
SRC_URI[deranged-0.3.9.sha256sum] = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
SRC_URI[dialoguer-0.11.0.sha256sum] = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
SRC_URI[dirs-5.0.1.sha256sum] = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
SRC_URI[dirs-sys-0.4.1.sha256sum] = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
SRC_URI[dissimilar-1.0.7.sha256sum] = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
SRC_URI[expect-test-1.4.1.sha256sum] = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3"
SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
SRC_URI[fat-macho-0.4.7.sha256sum] = "63fa117c7dcabeb8c83d5c229764cfa46518545d2dba5a9a08912014711f997b"
SRC_URI[filetime-0.2.22.sha256sum] = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
SRC_URI[fs-err-2.11.0.sha256sum] = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
SRC_URI[goblin-0.7.1.sha256sum] = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134"
SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
SRC_URI[home-0.5.5.sha256sum] = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
SRC_URI[humantime-serde-1.1.1.sha256sum] = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c"
SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
SRC_URI[ignore-0.4.20.sha256sum] = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
SRC_URI[indicatif-0.17.7.sha256sum] = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
SRC_URI[itertools-0.12.0.sha256sum] = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
SRC_URI[keyring-2.0.5.sha256sum] = "9549a129bd08149e0a71b2d1ce2729780d47127991bfd0a78cc1df697ec72492"
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
SRC_URI[lddtree-0.3.3.sha256sum] = "2f5bfec46830ad3a95199ae6804dfe9f51fdad43d7a95fbb6c185efa9824c295"
SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
SRC_URI[libredox-0.0.1.sha256sum] = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
SRC_URI[linux-keyutils-0.2.3.sha256sum] = "3f27bb67f6dd1d0bb5ab582868e4f65052e58da6401188a08f0da09cf512b84b"
SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
SRC_URI[linux-raw-sys-0.4.11.sha256sum] = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
SRC_URI[lzxd-0.1.4.sha256sum] = "784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213"
SRC_URI[mailparse-0.14.0.sha256sum] = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa"
SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
SRC_URI[mime_guess-2.0.4.sha256sum] = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
SRC_URI[minijinja-1.0.10.sha256sum] = "208758577ef2c86cf5dd3e85730d161413ec3284e2d73b2ef65d9a24d9971bcb"
SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
SRC_URI[msi-0.7.0.sha256sum] = "226b2404f03d2cf47375b9715c8adfae4e388bb2377cff908e8a40f31e421514"
SRC_URI[multipart-0.18.0.sha256sum] = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
SRC_URI[native-tls-0.2.11.sha256sum] = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5"
SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
SRC_URI[openssl-0.10.60.sha256sum] = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
SRC_URI[openssl-sys-0.9.96.sha256sum] = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
SRC_URI[option-ext-0.2.0.sha256sum] = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
SRC_URI[os_pipe-1.1.4.sha256sum] = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
SRC_URI[path-slash-0.2.1.sha256sum] = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
SRC_URI[pep440_rs-0.3.12.sha256sum] = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6"
SRC_URI[pep508_rs-0.2.3.sha256sum] = "e4516b53d9ea6112ebb38b4af08d5707d30b994fb7f98ff133c5dcf7ed8fa854"
SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
SRC_URI[portable-atomic-1.5.1.sha256sum] = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
SRC_URI[pyproject-toml-0.8.1.sha256sum] = "46d4a5e69187f23a29f8aa0ea57491d104ba541bc55f76552c2a74962aa20e04"
SRC_URI[python-pkginfo-0.6.0.sha256sum] = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa"
SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
SRC_URI[quoted_printable-0.4.8.sha256sum] = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
SRC_URI[rayon-1.8.0.sha256sum] = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
SRC_URI[rayon-core-1.12.0.sha256sum] = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
SRC_URI[redox_users-0.4.4.sha256sum] = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
SRC_URI[rfc2047-decoder-0.2.2.sha256sum] = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e"
SRC_URI[ring-0.17.6.sha256sum] = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866"
SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
SRC_URI[rustix-0.38.21.sha256sum] = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
SRC_URI[rustls-0.21.9.sha256sum] = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
SRC_URI[rustls-pemfile-2.0.0.sha256sum] = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
SRC_URI[rustls-pki-types-1.0.0.sha256sum] = "eb0a1f9b9efec70d32e6d6aa3e58ebd88c3754ec98dfe9145c63cf54cc829b83"
SRC_URI[rustls-webpki-0.101.7.sha256sum] = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
SRC_URI[rustversion-1.0.14.sha256sum] = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
SRC_URI[schannel-0.1.22.sha256sum] = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
SRC_URI[scroll-0.11.0.sha256sum] = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da"
SRC_URI[scroll_derive-0.11.1.sha256sum] = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
SRC_URI[sct-0.7.1.sha256sum] = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
SRC_URI[semver-1.0.20.sha256sum] = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
SRC_URI[serde_json-1.0.108.sha256sum] = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
SRC_URI[serde_spanned-0.6.4.sha256sum] = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
SRC_URI[shlex-1.2.0.sha256sum] = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
SRC_URI[similar-2.3.0.sha256sum] = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
SRC_URI[snapbox-0.4.14.sha256sum] = "4b377c0b6e4715c116473d8e40d51e3fa5b0a2297ca9b2a931ba800667b259ed"
SRC_URI[snapbox-macros-0.3.6.sha256sum] = "ed1559baff8a696add3322b9be3e940d433e7bb4e38d79017205fd37ff28b28e"
SRC_URI[socks-0.3.4.sha256sum] = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b"
SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
SRC_URI[stacker-0.1.15.sha256sum] = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
SRC_URI[syn-2.0.39.sha256sum] = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
SRC_URI[tempfile-3.8.1.sha256sum] = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
SRC_URI[termcolor-1.4.0.sha256sum] = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
SRC_URI[toml-0.8.8.sha256sum] = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
SRC_URI[toml_edit-0.20.7.sha256sum] = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
SRC_URI[toml_edit-0.21.0.sha256sum] = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
SRC_URI[tracing-serde-0.1.3.sha256sum] = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
SRC_URI[trycmd-0.14.19.sha256sum] = "ed009372a42fb103e6f8767b9222925485e03cca032b700d203e2c5b67bee4fb"
SRC_URI[twox-hash-1.6.3.sha256sum] = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
SRC_URI[ureq-2.9.1.sha256sum] = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
SRC_URI[uuid-1.6.1.sha256sum] = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[versions-5.0.1.sha256sum] = "c73a36bc44e3039f51fbee93e39f41225f6b17b380eb70cc2aab942df06b34dd"
SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
SRC_URI[webpki-roots-0.25.3.sha256sum] = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
SRC_URI[which-5.0.0.sha256sum] = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
SRC_URI[wild-2.2.0.sha256sum] = "10d01931a94d5a115a53f95292f51d316856b68a035618eb831bbba593a30b67"
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
SRC_URI[winnow-0.5.19.sha256sum] = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
SRC_URI[xattr-1.0.1.sha256sum] = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
SRC_URI[xwin-0.5.0.sha256sum] = "c43e0202f5457b48558096cb7b36d0e473f267551a89c82ed72d73b01dfd4007"
SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
SRC_URI[zerocopy-0.7.28.sha256sum] = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e"
SRC_URI[zerocopy-derive-0.7.28.sha256sum] = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b"
SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"

View File

@@ -0,0 +1,102 @@
From a945706bd610c5400fc85a248d5e0c96ebd2e953 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 27 Feb 2024 10:38:49 -0800
Subject: [PATCH] Add 32-bit RISC-V support
Tested with qemuriscv32 and it builds fine with all tests passed on a
qemu machine.
Upstream-Status: Submitted [https://github.com/PyO3/maturin/pull/1969]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/target.rs | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/target.rs b/src/target.rs
index fbb93531..33fa9273 100644
--- a/src/target.rs
+++ b/src/target.rs
@@ -69,6 +69,7 @@ pub enum Arch {
X86_64,
S390X,
Wasm32,
+ Riscv32,
Riscv64,
Mips64el,
Mips64,
@@ -91,6 +92,7 @@ impl fmt::Display for Arch {
Arch::X86_64 => write!(f, "x86_64"),
Arch::S390X => write!(f, "s390x"),
Arch::Wasm32 => write!(f, "wasm32"),
+ Arch::Riscv32 => write!(f, "riscv32"),
Arch::Riscv64 => write!(f, "riscv64"),
Arch::Mips64el => write!(f, "mips64el"),
Arch::Mips64 => write!(f, "mips64"),
@@ -115,7 +117,7 @@ impl Arch {
Arch::Powerpc | Arch::Powerpc64Le | Arch::Powerpc64 => "powerpc",
Arch::X86 => "i386",
Arch::X86_64 => "amd64",
- Arch::Riscv64 => "riscv",
+ Arch::Riscv32 | Arch::Riscv64 => "riscv",
Arch::Mips64el | Arch::Mips64 | Arch::Mipsel | Arch::Mips => "mips",
// sparc64 is unsupported since FreeBSD 13.0
Arch::Sparc64 => "sparc64",
@@ -139,6 +141,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
Arch::S390X,
Arch::X86,
Arch::X86_64,
+ Arch::Riscv32,
Arch::Riscv64,
Arch::Mips64el,
Arch::Mips64,
@@ -158,6 +161,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
Arch::Powerpc64Le,
Arch::X86,
Arch::X86_64,
+ Arch::Riscv32,
Arch::Riscv64,
Arch::Mips64el,
Arch::Mipsel,
@@ -171,6 +175,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
Arch::Powerpc,
Arch::Powerpc64,
Arch::Powerpc64Le,
+ Arch::Riscv32,
Arch::Riscv64,
Arch::Sparc64,
],
@@ -255,6 +260,7 @@ impl Target {
Architecture::Powerpc64le => Arch::Powerpc64Le,
Architecture::S390x => Arch::S390X,
Architecture::Wasm32 => Arch::Wasm32,
+ Architecture::Riscv32(_) => Arch::Riscv32,
Architecture::Riscv64(_) => Arch::Riscv64,
Architecture::Mips64(mips64_arch) => match mips64_arch {
Mips64Architecture::Mips64el => Arch::Mips64el,
@@ -343,6 +349,7 @@ impl Target {
Arch::X86_64 => "x86_64",
Arch::S390X => "s390x",
Arch::Wasm32 => "wasm32",
+ Arch::Riscv32 => "riscv32",
Arch::Riscv64 => "riscv64",
// It's kinda surprising that Python doesn't include the `el` suffix
Arch::Mips64el | Arch::Mips64 => "mips64",
@@ -388,6 +395,7 @@ impl Target {
}
Arch::Armv6L
| Arch::Wasm32
+ | Arch::Riscv32
| Arch::Riscv64
| Arch::Mips64el
| Arch::Mips64
@@ -418,6 +426,7 @@ impl Target {
| Arch::Wasm32
| Arch::Mipsel
| Arch::Mips
+ | Arch::Riscv32
| Arch::Powerpc => 32,
}
}
--
2.44.0

View File

@@ -0,0 +1,107 @@
From 42a97ee7100ad158d4b1ba6133ea13cc864a567f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?=
<vesa.jaaskelainen@vaisala.com>
Date: Sun, 1 Sep 2024 09:23:10 +0300
Subject: [PATCH 1/5] Extract extension architecture name resolvation code as
helper
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This commit introduces helper InterpreterConfig.get_python_ext_arch() that
can be used to determine the extension architecture name python uses in
`ext_suffix` for this architecture.
Upstream-Status: Backport [https://github.com/PyO3/maturin/commit/42a97ee7100ad158d4b1ba6133ea13cc864a567f]
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
---
src/python_interpreter/config.rs | 18 ++++++------------
src/target.rs | 16 ++++++++++++++++
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/src/python_interpreter/config.rs b/src/python_interpreter/config.rs
index 912f9218..d76606f2 100644
--- a/src/python_interpreter/config.rs
+++ b/src/python_interpreter/config.rs
@@ -47,15 +47,7 @@ impl InterpreterConfig {
// Python 2 is not supported
return None;
}
- let python_arch = if matches!(target.target_arch(), Arch::Armv6L | Arch::Armv7L) {
- "arm"
- } else if matches!(target.target_arch(), Arch::Powerpc64Le) && python_impl == PyPy {
- "ppc_64"
- } else if matches!(target.target_arch(), Arch::X86) && python_impl == PyPy {
- "x86"
- } else {
- target.get_python_arch()
- };
+ let python_ext_arch = target.get_python_ext_arch(python_impl);
// See https://github.com/pypa/auditwheel/issues/349
let target_env = match python_impl {
CPython => {
@@ -77,7 +69,7 @@ impl InterpreterConfig {
let ldversion = format!("{}{}{}", major, minor, abiflags);
let ext_suffix = format!(
".cpython-{}-{}-linux-{}.so",
- ldversion, python_arch, target_env
+ ldversion, python_ext_arch, target_env
);
Some(Self {
major,
@@ -90,7 +82,8 @@ impl InterpreterConfig {
}
(Os::Linux, PyPy) => {
let abi_tag = format!("pypy{}{}-{}", major, minor, PYPY_ABI_TAG);
- let ext_suffix = format!(".{}-{}-linux-{}.so", abi_tag, python_arch, target_env);
+ let ext_suffix =
+ format!(".{}-{}-linux-{}.so", abi_tag, python_ext_arch, target_env);
Some(Self {
major,
minor,
@@ -204,7 +197,8 @@ impl InterpreterConfig {
}
(Os::Emscripten, CPython) => {
let ldversion = format!("{}{}", major, minor);
- let ext_suffix = format!(".cpython-{}-{}-emscripten.so", ldversion, python_arch);
+ let ext_suffix =
+ format!(".cpython-{}-{}-emscripten.so", ldversion, python_ext_arch);
Some(Self {
major,
minor,
diff --git a/src/target.rs b/src/target.rs
index dc7df0cf..84bae559 100644
--- a/src/target.rs
+++ b/src/target.rs
@@ -1,4 +1,5 @@
use crate::cross_compile::is_cross_compiling;
+use crate::python_interpreter::InterpreterKind;
use crate::PlatformTag;
use anyhow::{anyhow, bail, format_err, Result};
use platform_info::*;
@@ -368,6 +369,21 @@ impl Target {
}
}
+ /// Returns the extension architecture name python uses in `ext_suffix` for this architecture.
+ pub fn get_python_ext_arch(&self, python_impl: InterpreterKind) -> &str {
+ if matches!(self.target_arch(), Arch::Armv6L | Arch::Armv7L) {
+ "arm"
+ } else if matches!(self.target_arch(), Arch::Powerpc64Le)
+ && python_impl == InterpreterKind::PyPy
+ {
+ "ppc_64"
+ } else if matches!(self.target_arch(), Arch::X86) && python_impl == InterpreterKind::PyPy {
+ "x86"
+ } else {
+ self.get_python_arch()
+ }
+ }
+
/// Returns the name python uses in `sys.platform` for this os
pub fn get_python_os(&self) -> &str {
match self.os {
--
2.34.1

View File

@@ -0,0 +1,76 @@
From 0c6b8cc84eff72ed21098029aaba079b899dbee2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?=
<vesa.jaaskelainen@vaisala.com>
Date: Sun, 1 Sep 2024 09:23:40 +0300
Subject: [PATCH 2/5] Fix cross compilation issue with linux-armv7l
architecture
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When compiling under Yocto project for linux-armv7l target architecture
.so files were generated incorrectly as:
rpds.cpython-312-armv7l-linux-gnueabihf.so
Where as platform and EXT_SUFFIX are defined as:
>>> sysconfig.get_platform()
'linux-armv7l'
>>> sysconfig.get_config_vars()['EXT_SUFFIX']
'.cpython-312-arm-linux-gnueabihf.so'
Which should have caused the .so files as:
rpds.cpython-312-arm-linux-gnueabihf.so
Upstream-Status: Backport [https://github.com/PyO3/maturin/commit/0c6b8cc84eff72ed21098029aaba079b899dbee2]
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
---
src/python_interpreter/config.rs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/python_interpreter/config.rs b/src/python_interpreter/config.rs
index d76606f2..5736aedc 100644
--- a/src/python_interpreter/config.rs
+++ b/src/python_interpreter/config.rs
@@ -306,7 +306,7 @@ impl InterpreterConfig {
format!(
".cpython-{}-{}-{}-{}.{}",
abi_tag,
- target.get_python_arch(),
+ target.get_python_ext_arch(interpreter_kind),
target.get_python_os(),
target_env,
file_ext,
@@ -319,7 +319,7 @@ impl InterpreterConfig {
major,
minor,
abi_tag,
- target.get_python_arch(),
+ target.get_python_ext_arch(interpreter_kind),
target.get_python_os(),
target_env,
file_ext,
@@ -330,7 +330,7 @@ impl InterpreterConfig {
format!(
".{}-{}-{}.{}",
abi_tag.replace('_', "-"),
- target.get_python_arch(),
+ target.get_python_ext_arch(interpreter_kind),
target.get_python_os(),
file_ext,
)
@@ -341,7 +341,7 @@ impl InterpreterConfig {
format!(
".cpython-{}-{}-{}.{}",
abi_tag,
- target.get_python_arch(),
+ target.get_python_ext_arch(interpreter_kind),
target.get_python_os(),
file_ext
)
--
2.34.1

View File

@@ -0,0 +1,98 @@
From fa64426f3a98a0455721c23ec86bd2240708b45e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?=
<vesa.jaaskelainen@vaisala.com>
Date: Sun, 1 Sep 2024 15:55:07 +0300
Subject: [PATCH 3/5] Extract extension ABI name resolvation code as helper
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This commit introduces helper InterpreterConfig.get_python_target_env()
that can be used to determine the extension ABI python uses in
`ext_suffix` for this architecture.
Upstream-Status: Backport [https://github.com/PyO3/maturin/commit/fa64426f3a98a0455721c23ec86bd2240708b45e]
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
---
src/python_interpreter/config.rs | 19 ++-----------------
src/target.rs | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/src/python_interpreter/config.rs b/src/python_interpreter/config.rs
index 5736aedc..938e9955 100644
--- a/src/python_interpreter/config.rs
+++ b/src/python_interpreter/config.rs
@@ -48,17 +48,7 @@ impl InterpreterConfig {
return None;
}
let python_ext_arch = target.get_python_ext_arch(python_impl);
- // See https://github.com/pypa/auditwheel/issues/349
- let target_env = match python_impl {
- CPython => {
- if python_version >= (3, 11) {
- target.target_env().to_string()
- } else {
- target.target_env().to_string().replace("musl", "gnu")
- }
- }
- PyPy | GraalPy => "gnu".to_string(),
- };
+ let target_env = target.get_python_target_env(python_impl, python_version);
match (target.target_os(), python_impl) {
(Os::Linux, CPython) => {
let abiflags = if python_version < (3, 8) {
@@ -294,12 +284,7 @@ impl InterpreterConfig {
};
let file_ext = if target.is_windows() { "pyd" } else { "so" };
let ext_suffix = if target.is_linux() || target.is_macos() {
- // See https://github.com/pypa/auditwheel/issues/349
- let target_env = if (major, minor) >= (3, 11) {
- target.target_env().to_string()
- } else {
- target.target_env().to_string().replace("musl", "gnu")
- };
+ let target_env = target.get_python_target_env(interpreter_kind, (major, minor));
match interpreter_kind {
InterpreterKind::CPython => ext_suffix.unwrap_or_else(|| {
// Eg: .cpython-38-x86_64-linux-gnu.so
diff --git a/src/target.rs b/src/target.rs
index 84bae559..ad8ebaba 100644
--- a/src/target.rs
+++ b/src/target.rs
@@ -1,5 +1,6 @@
use crate::cross_compile::is_cross_compiling;
use crate::python_interpreter::InterpreterKind;
+use crate::python_interpreter::InterpreterKind::{CPython, GraalPy, PyPy};
use crate::PlatformTag;
use anyhow::{anyhow, bail, format_err, Result};
use platform_info::*;
@@ -384,6 +385,25 @@ impl Target {
}
}
+ /// Returns the environment python uses in `ext_suffix` for this architecture.
+ pub fn get_python_target_env(
+ &self,
+ python_impl: InterpreterKind,
+ python_version: (usize, usize),
+ ) -> String {
+ match python_impl {
+ CPython => {
+ // For musl handling see https://github.com/pypa/auditwheel/issues/349
+ if python_version >= (3, 11) {
+ self.target_env().to_string()
+ } else {
+ self.target_env().to_string().replace("musl", "gnu")
+ }
+ }
+ PyPy | GraalPy => "gnu".to_string(),
+ }
+ }
+
/// Returns the name python uses in `sys.platform` for this os
pub fn get_python_os(&self) -> &str {
match self.os {
--
2.34.1

View File

@@ -0,0 +1,68 @@
From f2c892109a05db144e8b18bcbcf9c24fe8d977c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?=
<vesa.jaaskelainen@vaisala.com>
Date: Sun, 1 Sep 2024 15:55:16 +0300
Subject: [PATCH 4/5] Fix cross compilation issue with linux-ppc architecture
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When compiling under Yocto project for linux-ppc target architecture
.so files were generated incorrectly as:
rpds.cpython-312-ppc-linux-gnu.so
Where as platform and EXT_SUFFIX are defined as:
>>> sysconfig.get_platform()
'linux-ppc'
>>> sysconfig.get_config_vars()['EXT_SUFFIX']
'.cpython-312-powerpc-linux-gnu.so'
Which should have caused the .so files as:
rpds.cpython-312-powerpc-linux-gnu.so
Upstream-Status: Backport [https://github.com/PyO3/maturin/commit/f2c892109a05db144e8b18bcbcf9c24fe8d977c4]
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
---
src/python_interpreter/config.rs | 8 ++++++++
src/target.rs | 2 ++
2 files changed, 10 insertions(+)
diff --git a/src/python_interpreter/config.rs b/src/python_interpreter/config.rs
index 938e9955..8f883887 100644
--- a/src/python_interpreter/config.rs
+++ b/src/python_interpreter/config.rs
@@ -424,6 +424,14 @@ mod test {
".cpython-310-powerpc64le-linux-gnu.so"
);
+ let sysconfig = InterpreterConfig::lookup_one(
+ &Target::from_target_triple(Some("powerpc-unknown-linux-gnu".to_string())).unwrap(),
+ InterpreterKind::CPython,
+ (3, 10),
+ )
+ .unwrap();
+ assert_eq!(sysconfig.ext_suffix, ".cpython-310-powerpc-linux-gnu.so");
+
let sysconfig = InterpreterConfig::lookup_one(
&Target::from_target_triple(Some("s390x-unknown-linux-gnu".to_string())).unwrap(),
InterpreterKind::CPython,
diff --git a/src/target.rs b/src/target.rs
index ad8ebaba..93afd9bb 100644
--- a/src/target.rs
+++ b/src/target.rs
@@ -380,6 +380,8 @@ impl Target {
"ppc_64"
} else if matches!(self.target_arch(), Arch::X86) && python_impl == InterpreterKind::PyPy {
"x86"
+ } else if matches!(self.target_arch(), Arch::Powerpc) {
+ "powerpc"
} else {
self.get_python_arch()
}
--
2.34.1

View File

@@ -0,0 +1,82 @@
From 5fe643579bcc63d824f6a0f0936fff451c622903 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?=
<vesa.jaaskelainen@vaisala.com>
Date: Sun, 1 Sep 2024 15:55:54 +0300
Subject: [PATCH 5/5] Fix cross compilation issue with linux-mips64
architecture
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When compiling under Yocto project for linux-mips64 target architecture
.so files were generated incorrectly as:
rpds.cpython-312-mips64-linux-gnu.so
Where as platform and EXT_SUFFIX are defined as:
>>> sysconfig.get_platform()
'linux-mips64'
>>> sysconfig.get_config_vars()['EXT_SUFFIX']
'.cpython-312-mips64-linux-gnuabi64.so'
Which should have caused the .so files as:
rpds.cpython-312-mips64-linux-gnuabi64.so
Upstream-Status: Backport [https://github.com/PyO3/maturin/commit/5fe643579bcc63d824f6a0f0936fff451c622903]
Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
---
src/python_interpreter/config.rs | 19 +++++++++++++++++++
src/target.rs | 4 +++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/python_interpreter/config.rs b/src/python_interpreter/config.rs
index 8f883887..ef656010 100644
--- a/src/python_interpreter/config.rs
+++ b/src/python_interpreter/config.rs
@@ -432,6 +432,25 @@ mod test {
.unwrap();
assert_eq!(sysconfig.ext_suffix, ".cpython-310-powerpc-linux-gnu.so");
+ let sysconfig = InterpreterConfig::lookup_one(
+ &Target::from_target_triple(Some("mips64-unknown-linux-gnu".to_string())).unwrap(),
+ InterpreterKind::CPython,
+ (3, 10),
+ )
+ .unwrap();
+ assert_eq!(
+ sysconfig.ext_suffix,
+ ".cpython-310-mips64-linux-gnuabi64.so"
+ );
+
+ let sysconfig = InterpreterConfig::lookup_one(
+ &Target::from_target_triple(Some("mips-unknown-linux-gnu".to_string())).unwrap(),
+ InterpreterKind::CPython,
+ (3, 10),
+ )
+ .unwrap();
+ assert_eq!(sysconfig.ext_suffix, ".cpython-310-mips-linux-gnu.so");
+
let sysconfig = InterpreterConfig::lookup_one(
&Target::from_target_triple(Some("s390x-unknown-linux-gnu".to_string())).unwrap(),
InterpreterKind::CPython,
diff --git a/src/target.rs b/src/target.rs
index 93afd9bb..25fc6c07 100644
--- a/src/target.rs
+++ b/src/target.rs
@@ -396,7 +396,9 @@ impl Target {
match python_impl {
CPython => {
// For musl handling see https://github.com/pypa/auditwheel/issues/349
- if python_version >= (3, 11) {
+ if matches!(self.target_arch(), Arch::Mips64 | Arch::Mips64el) && self.is_linux() {
+ "gnuabi64".to_string()
+ } else if python_version >= (3, 11) {
self.target_env().to_string()
} else {
self.target_env().to_string().replace("musl", "gnu")
--
2.34.1

View File

@@ -0,0 +1,50 @@
SUMMARY = "Build and publish crates with pyo3, rust-cpython, cffi bindings and rust binaries as python packages"
HOMEPAGE = "https://github.com/pyo3/maturin"
SECTION = "devel/python"
LICENSE = "MIT | Apache-2.0"
LIC_FILES_CHKSUM = "file://license-apache;md5=1836efb2eb779966696f473ee8540542 \
file://license-mit;md5=85fd3b67069cff784d98ebfc7d5c0797"
SRC_URI += "file://0001-Add-32-bit-RISC-V-support.patch"
SRC_URI[sha256sum] = "ed12e1768094a7adeafc3a74ebdb8dc2201fa64c4e7e31f14cfc70378bf93790"
SRC_URI:append = "\
file://0001-Extract-extension-architecture-name-resolvation-code.patch \
file://0002-Fix-cross-compilation-issue-with-linux-armv7l-archit.patch \
file://0003-Extract-extension-ABI-name-resolvation-code-as-helpe.patch \
file://0004-Fix-cross-compilation-issue-with-linux-ppc-architect.patch \
file://0005-Fix-cross-compilation-issue-with-linux-mips64-archit.patch \
"
S = "${WORKDIR}/maturin-${PV}"
CFLAGS:append = " -fdebug-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home"
DEPENDS += "\
python3-setuptools-rust-native \
python3-semantic-version-native \
python3-setuptools-rust \
"
require ${BPN}-crates.inc
inherit pypi cargo-update-recipe-crates python_pyo3 python_setuptools_build_meta
do_configure() {
python_pyo3_do_configure
cargo_common_do_configure
python_pep517_do_configure
}
RDEPENDS:${PN} += "\
cargo \
python3-json \
rust \
"
RRECOMMENDS:${PN} += "\
python3-ensurepip \
python3-pip \
python3-venv \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,27 @@
SUMMARY = "Meson Python build backend (PEP 517)"
HOMEPAGE = "https://github.com/mesonbuild/meson-python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d580b27e67cc0892a5b005b0be114b60"
DEPENDS = " \
meson-native \
ninja-native \
patchelf-native \
python3-pyproject-metadata-native \
"
PYPI_PACKAGE = "meson_python"
inherit pypi python_mesonpy
SRC_URI[sha256sum] = "fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f"
DEPENDS:remove:class-native = "python3-meson-python-native"
RDEPENDS:${PN} = " \
meson \
ninja \
patchelf \
python3-pyproject-metadata \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
pytest --automake

View File

@@ -0,0 +1,29 @@
SUMMARY = "More routines for operating on iterables, beyond itertools"
HOMEPAGE = "https://github.com/erikrose/more-itertools"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
SRC_URI[sha256sum] = "8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"
inherit pypi python_flit_core ptest
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN} += " \
python3-asyncio \
"
RDEPENDS:${PN}-ptest += " \
python3-statistics \
python3-pytest \
python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,31 @@
SUMMARY = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
HOMEPAGE = "https://github.com/cedadev/ndg_httpsclient/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
SRC_URI[md5sum] = "b0fc8ea38f87d2c1ab1ed79a95c078f9"
SRC_URI[sha256sum] = "d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210"
inherit pypi setuptools3 update-alternatives
PYPI_PACKAGE = "ndg_httpsclient"
DEPENDS += " \
python3-pyopenssl \
python3-pyasn1 \
"
RDEPENDS:${PN} += " \
python3-datetime \
python3-logging \
python3-pyopenssl \
python3-pyasn1 \
"
BBCLASSEXTEND = "native nativesdk"
UPSTREAM_CHECK_REGEX = ""
ALTERNATIVE:${PN} = "ndg_httpclient"
ALTERNATIVE_LINK_NAME[ndg_httpclient] = "${bindir}/ndg_httpclient"
ALTERNATIVE_PRIORITY = "30"

View File

@@ -0,0 +1,70 @@
From 46eea664cf89d0602e7ff16d587c37c045b125b7 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 feb28f6..a48d6d1 100644
--- a/numpy/distutils/system_info.py
+++ b/numpy/distutils/system_info.py
@@ -327,44 +327,14 @@ def add_system_root(library_root):
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'))

View File

@@ -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

View File

@@ -0,0 +1,33 @@
This regex decides whether to use O3 opimisation on numpy or not.
It includes "od", which happens to be a substring of "reproducible"
but not "qemux86-world".
The regex will run against all compiler options including things like:
-fmacro-prefix-map=/XXX/build/tmp/work/core2-64-poky-linux/python3-numpy/1.26.0/numpy-1.26.0=/usr/src/debug/python3-numpy/1.26.0-r0
i.e. including build paths.
Reduce the regex to something deterministic for our builds, assuming
nobody builds in /home/debug:full/
The autobuilder race depended upon whether qemux86-world or the
reproducible target ran first and won the race to populate sstate.
Upstream-Status: Inappropriate [upstream have dropped distutils and switched to meson]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Index: numpy-1.26.0/numpy/distutils/ccompiler_opt.py
===================================================================
--- numpy-1.26.0.orig/numpy/distutils/ccompiler_opt.py
+++ numpy-1.26.0/numpy/distutils/ccompiler_opt.py
@@ -990,7 +990,7 @@ class _CCompiler:
("cc_is_nocc", "", ""),
)
detect_args = (
- ("cc_has_debug", ".*(O0|Od|ggdb|coverage|debug:full).*", ""),
+ ("cc_has_debug", ".*debug:full.*", ""),
("cc_has_native",
".*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*", ""),
# in case if the class run with -DNPY_DISABLE_OPTIMIZATION

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env python3
import numpy
numpy.test(label='full', verbose=2)

View File

@@ -0,0 +1,64 @@
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=a752eb20459cf74a9d84ee4825e8317c"
SRCNAME = "numpy"
SRC_URI = "${GITHUB_BASE_URI}/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://fix_reproducibility.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"
GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
DEPENDS += "python3-cython-native"
inherit ptest setuptools3 github-releases
S = "${WORKDIR}/numpy-${PV}"
CLEANBROKEN = "1"
do_compile:prepend() {
export NPY_DISABLE_SVML=1
}
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} = "python3-unittest \
python3-difflib \
python3-pprint \
python3-pickle \
python3-shell \
python3-doctest \
python3-datetime \
python3-misc \
python3-mmap \
python3-netclient \
python3-numbers \
python3-pydoc \
python3-pkgutil \
python3-email \
python3-compression \
python3-ctypes \
python3-threading \
python3-multiprocessing \
python3-json \
"
RDEPENDS:${PN}-ptest += "python3-pytest \
python3-hypothesis \
python3-sortedcontainers \
python3-resource \
python3-typing-extensions \
ldd \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,18 @@
SUMMARY = "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] = "048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"
inherit pypi python_flit_core
BBCLASSEXTEND = "native nativesdk"
# Bootstrap the native build
DEPENDS:remove:class-native = "python3-build-native"
RDEPENDS:${PN} += "python3-profile"
do_compile:class-native () {
python_flit_core_do_manual_build
}

View File

@@ -0,0 +1,12 @@
SUMMARY = "Object-oriented filesystem paths"
HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2dc08586cce3ab91bfa091b655c0e440"
SRC_URI[sha256sum] = "7a4329d67beff9a712e1d3ae147e4e3e108b0bfd284ffdea03a635126c76b3c0"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-six python3-ctypes"
BBCLASSEXTEND = "native nativesdk"

Some files were not shown because too many files have changed in this diff Show More