* [PATCH 0/2] python3-pyyaml fix libyaml detection and enable ptest
@ 2024-02-09 2:18 Tim Orling
2024-02-09 2:18 ` [PATCH 1/2] python3-pyyaml: add PACKAGECONFIG for libyaml Tim Orling
2024-02-09 2:18 ` [PATCH 2/2] python3-pyyaml: enable ptest Tim Orling
0 siblings, 2 replies; 3+ messages in thread
From: Tim Orling @ 2024-02-09 2:18 UTC (permalink / raw)
To: openembedded-core
As pointed out by jdiez in #yocto IRC, python3-pyyaml will "helpfully" detect
libyaml in the build environment and compile with Python bindings for the C
library. This is non-deterministic and can result in host contamination (pulling
in the host's libyaml). Add a PACKAGECONFIG to make compiling with the faster
libyaml bindings as the default. Add very basic ptest to ensure the runtime is
viable.
The following changes since commit 71ac318a830b37f55cbd63794c55c6adc1904f1f:
yocto-bsp: update reference boards to v6.6.15 (2024-02-08 23:15:18 +0000)
are available in the Git repository at:
https://git.yoctoproject.org/poky-contrib timo/python3-pyyaml-libyaml-ptest
https://git.yoctoproject.org/poky-contrib/log/?h=timo/python3-pyyaml-libyaml-ptest
Tim Orling (2):
python3-pyyaml: add PACKAGECONFIG for libyaml
python3-pyyaml: enable ptest
.../distro/include/ptest-packagelists.inc | 1 +
.../python/python3-pyyaml/run-ptest | 3 +++
.../python/python3-pyyaml_6.0.1.bb | 20 +++++++++++++++++++
3 files changed, 24 insertions(+)
create mode 100644 meta/recipes-devtools/python/python3-pyyaml/run-ptest
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] python3-pyyaml: add PACKAGECONFIG for libyaml
2024-02-09 2:18 [PATCH 0/2] python3-pyyaml fix libyaml detection and enable ptest Tim Orling
@ 2024-02-09 2:18 ` Tim Orling
2024-02-09 2:18 ` [PATCH 2/2] python3-pyyaml: enable ptest Tim Orling
1 sibling, 0 replies; 3+ messages in thread
From: Tim Orling @ 2024-02-09 2:18 UTC (permalink / raw)
To: openembedded-core
For some time now, we have probably been susceptible to host contamination
or at least non-deterministic behavior when libyaml was available in the
build environment.
The symptom is:
ERROR: python3-pyyaml-6.0-r0 do_package_qa: QA Issue:
/usr/lib/python3.11/site-packages/yaml/_yaml.cpython-311-aarch64-linux-gnu.so
contained in package python3-pyyaml requires libyaml-0.so.2()(64bit), but no
providers found in RDEPENDS:python3-pyyaml? [file-rdeps]
From the documentation:
"""
By default, the setup.py script checks whether LibYAML is installed and
if so, builds and installs LibYAML bindings. To skip the check and force
installation of LibYAML bindings, use the option --with-libyaml:
python setup.py --with-libyaml install
To disable the check and skip building and installing LibYAML bindings,
use --without-libyaml:
python setup.py --without-libyaml install
"""
Instead of leaving this to chance, add PACKAGECONFIG and by default build
with the faster libyaml bindings.
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
index 61f7cbc6b36..102e2f2498b 100644
--- a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
+++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
@@ -12,6 +12,9 @@ inherit pypi python_setuptools_build_meta
SRC_URI += "file://0001-Fix-builds-with-Cython-3.patch"
SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
+PACKAGECONFIG ?= "libyaml"
+PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml"
+
RDEPENDS:${PN} += "\
${PYTHON_PN}-datetime \
${PYTHON_PN}-netclient \
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] python3-pyyaml: enable ptest
2024-02-09 2:18 [PATCH 0/2] python3-pyyaml fix libyaml detection and enable ptest Tim Orling
2024-02-09 2:18 ` [PATCH 1/2] python3-pyyaml: add PACKAGECONFIG for libyaml Tim Orling
@ 2024-02-09 2:18 ` Tim Orling
1 sibling, 0 replies; 3+ messages in thread
From: Tim Orling @ 2024-02-09 2:18 UTC (permalink / raw)
To: openembedded-core
Upstream is in the process of migrating testing to pytest, backport
test_dump_load.py (the legacy_tests were throwing Errors and Failures).
We don't really need to run upstream's test suite, but we do need to verify
that our runtime is functional.
https://github.com/yaml/pyyaml/commit/a98fd6088e81d7aca571220c966bbfe2ac43c335
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
All tests pass on qemuarm64 for core-image-ptest-python3-pyyaml via testimage
meta/conf/distro/include/ptest-packagelists.inc | 1 +
.../python/python3-pyyaml/run-ptest | 3 +++
.../python/python3-pyyaml_6.0.1.bb | 17 +++++++++++++++++
3 files changed, 21 insertions(+)
create mode 100644 meta/recipes-devtools/python/python3-pyyaml/run-ptest
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index b590640edc2..0192146dbd0 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -69,6 +69,7 @@ PTESTS_FAST = "\
python3-pluggy \
python3-pyasn1 \
python3-pytz \
+ python3-pyyaml \
python3-trove-classifiers \
python3-wcwidth \
python3-webcolors \
diff --git a/meta/recipes-devtools/python/python3-pyyaml/run-ptest b/meta/recipes-devtools/python/python3-pyyaml/run-ptest
new file mode 100644
index 00000000000..8d2017d39ce
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pyyaml/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
index 102e2f2498b..62be059df52 100644
--- a/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
+++ b/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
@@ -20,4 +20,21 @@ RDEPENDS:${PN} += "\
${PYTHON_PN}-netclient \
"
+inherit ptest
+SRC_URI += "\
+ https://raw.githubusercontent.com/yaml/pyyaml/a98fd6088e81d7aca571220c966bbfe2ac43c335/tests/test_dump_load.py;name=test \
+ file://run-ptest \
+"
+SRC_URI[test.sha256sum] = "b6a8a2825d89fdc8aee226560f66b8196e872012a0ea7118cbef1a832359434a"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${WORKDIR}/test_dump_load.py ${D}${PTEST_PATH}/tests/
+}
+
BBCLASSEXTEND = "native nativesdk"
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-02-09 2:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-09 2:18 [PATCH 0/2] python3-pyyaml fix libyaml detection and enable ptest Tim Orling
2024-02-09 2:18 ` [PATCH 1/2] python3-pyyaml: add PACKAGECONFIG for libyaml Tim Orling
2024-02-09 2:18 ` [PATCH 2/2] python3-pyyaml: enable ptest Tim Orling
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.