| Message ID | 20251023153459.49699-1-pratik.farkase@est.tech |
|---|---|
| State | New |
| Headers | show |
| Series | [v4] libxslt: add ptest support | expand |
On Thu Oct 23, 2025 at 5:34 PM CEST, Pratik Farkase wrote: > Add ptest support for libxslt 1.1.43 including: > - do_compile_ptest and do_install_ptest > - test data installation > - cleanup of buildpath references > - added run-ptest installation > > Enable --with-plugins only when ptest is enabled, per review feedback. > > v3: > - Remove unconditional --with-plugins (leftover from v2) > > v4: > - adapt run-ptest to emit PASS: or FAIL: lines for each test > - run-ptest installation with proper permissions > > Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> > --- Hi Pratik, Thanks for the new version. It looks like we got another issue now: ERROR: libxslt-1.1.43-r0 do_install_ptest_base: Execution of '/srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/libxslt/1.1.43/temp/run.do_install_ptest_base.9881' failed with exit code 1 ... | install: cannot stat '/srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/libxslt/1.1.43/run-ptest': No such file or directory | WARNING: /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/libxslt/1.1.43/temp/run.do_install_ptest_base.9881:209 exit 1 from 'install -m 0755 /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/libxslt/1.1.43/run-ptest /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/libxslt/1.1.43/image/usr/lib64/libxslt/ptest/' https://autobuilder.yoctoproject.org/valkyrie/#/builders/59/builds/2636 Can you have a look at this error? Thanks, Mathieu
Hi Mathieu,
The v5 patch has propsed fix for ptest installation issue in libxslt that was caught by
the autobuilder when running multilib configurations (e.g., x86-64-v3).
The problem was caused by the ptest installation step trying to access
`${WORKDIR}/run-ptest` when the file was not visible in some variants.
I have added the following changes in v5 patch :
- Uses `FILESEXTRAPATHS` with `${BPN}` instead of `${PN}` so that
both `libxslt` and `lib32-libxslt` can find the same `run-ptest`.
- Guards the `install` call in `do_install_ptest()` to avoid fatal
errors if `run-ptest` is missing.
Let me know if this works!
Best Regards,
Pratik
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 9950e46776..b295e0049f 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -47,6 +47,7 @@ PTESTS_FAST = "\ libxml-simple-perl \ libxml2 \ libxmlb \ + libxslt \ logrotate \ lua \ lzo \ diff --git a/meta/recipes-support/libxslt/files/run-ptest b/meta/recipes-support/libxslt/files/run-ptest new file mode 100755 index 0000000000..1673f933e5 --- /dev/null +++ b/meta/recipes-support/libxslt/files/run-ptest @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +PT_DIR="$(dirname "$0")" +cd "$PT_DIR/tests" + +echo "=== Running libxslt ptests ===" + +RESULT=0 + +if [ -x .libs/runtest ]; then + echo "Running .libs/runtest" + ./.libs/runtest --verbose --timing 2>&1 | tee runtest.log + RT_RET=${PIPESTATUS[0]:-0} || RT_RET=$? +elif [ -x ./runtest ]; then + echo "Running runtest" + ./runtest --verbose --timing 2>&1 | tee runtest.log + RT_RET=${PIPESTATUS[0]:-0} || RT_RET=$? +else + echo "FAIL: runtest binary not found" + exit 1 +fi + +if [ "$RT_RET" -ne 0 ]; then + echo "FAIL: runtest returned $RT_RET" + RESULT=1 +else + echo "PASS: runtest" +fi + +if [ "$RESULT" -eq 0 ]; then + echo "PASS: all libxslt tests passed" +else + echo "FAIL: some libxslt tests failed" +fi + +echo "Finished libxslt ptests" +exit "$RESULT" diff --git a/meta/recipes-support/libxslt/libxslt_1.1.43.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb index e08e92085d..2b2f45f72c 100644 --- a/meta/recipes-support/libxslt/libxslt_1.1.43.bb +++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb @@ -11,10 +11,11 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" SECTION = "libs" -DEPENDS = "libxml2" +DEPENDS = "libxml2 libxslt-native" SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz \ - file://gnome-libxslt-bug-139-apple-fix.diff" + file://gnome-libxslt-bug-139-apple-fix.diff \ + file://run-ptest" SRC_URI[sha256sum] = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a" @@ -26,7 +27,41 @@ S = "${WORKDIR}/libxslt-${PV}" BINCONFIG = "${bindir}/xslt-config" -inherit autotools pkgconfig binconfig-disabled lib_package multilib_header +inherit autotools pkgconfig binconfig-disabled lib_package multilib_header ptest + +RDEPENDS:${PN}-ptest += "${PN}-bin make libxslt-utils libxml2-utils xmlto coreutils sed grep diffutils bash libxml2-utils perl" + +do_compile_ptest() { + cp -r ${S}/tests ${B}/ + oe_runmake -C ${B}/tests runtest || true + if grep -q "run-threads" ${B}/tests/Makefile; then + oe_runmake -C ${B}/tests run-threads || true + fi +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + + if [ -d ${B}/tests/.libs ]; then + cp -a ${B}/tests/.libs ${D}${PTEST_PATH}/tests/ + fi + + for f in runtest run-threads; do + if [ -f ${B}/tests/$f ]; then + install -m 0755 ${B}/tests/$f ${D}${PTEST_PATH}/tests/ + sed -i -e "s#${TMPDIR}##g" \ + -e "s#${B}##g" \ + -e "s#${S}##g" \ + ${D}${PTEST_PATH}/tests/$f || true + fi + done + + cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ || true + find ${D}${PTEST_PATH}/tests -name 'Makefile*' -delete || true + find ${D}${PTEST_PATH}/tests -name '.deps' -type d -exec rm -rf {} + || true + + install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/ +} do_configure:prepend () { # We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header. @@ -39,6 +74,7 @@ do_configure:prepend () { } EXTRA_OECONF = "--without-python --without-debug --without-crypto" +EXTRA_OECONF:append:ptest = " --with-plugins" # older versions of this recipe had ${PN}-utils RPROVIDES:${PN}-bin += "${PN}-utils" RCONFLICTS:${PN}-bin += "${PN}-utils"
Add ptest support for libxslt 1.1.43 including: - do_compile_ptest and do_install_ptest - test data installation - cleanup of buildpath references - added run-ptest installation Enable --with-plugins only when ptest is enabled, per review feedback. v3: - Remove unconditional --with-plugins (leftover from v2) v4: - adapt run-ptest to emit PASS: or FAIL: lines for each test - run-ptest installation with proper permissions Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> --- .../distro/include/ptest-packagelists.inc | 1 + meta/recipes-support/libxslt/files/run-ptest | 38 +++++++++++++++++ .../recipes-support/libxslt/libxslt_1.1.43.bb | 42 +++++++++++++++++-- 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100755 meta/recipes-support/libxslt/files/run-ptest