The recipe builds out of tree with O=${B}, and the kernel's tools/build
writes fixdep .cmd files into ${B} that list the compiler's own headers
by absolute path, version included. When the toolchain changes (gcc
13.4 -> 13.5 here) do_compile reruns in the same ${B}, make cannot find
the old prerequisite and stops:
make[1]: *** No rule to make target '.../recipe-sysroot-native/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/13.4.0/include/stddef.h', needed by '.../spidev_test.o'. Stop.
Empty ${B} before configure, as bpftool does.
Signed-off-by: Mehmet Fide <mehmet.fide@screeningeagle.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
libgpiod 2.x has more complex licensing than its 1.x counterpart, with
multiple licenses applying to different parts of the project. Because
the recipe has no per-package LICENSE statement, a user installing just
the library (LGPL-2.1-or-later) might be led to believe it is also
subject to GPL-2.0-or-later and the other aggregate licenses, which do
not apply to that package.
Thus, to make it clear which licenses apply to which parts of the
project, split the recipe-wide LICENSE into per-package values so that
each generated package reports its actual license instead of the
aggregate expression.
Additionally, the CC0-1.0 license has been added to the recipe to cover
the 90-gpio.rules file
Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Two tests fail to compile on musl:
- conformance_resumable_tasks uses its own platform list instead of
__TBB_RESUMABLE_TASKS, which the library leaves disabled on Linux
without glibc, so tbb::task::suspend() is not declared.
- test_malloc_overload calls mallopt(), mallinfo() and pvalloc(), which
are glibc extensions musl does not provide.
Guard both on what is actually available. All 142 tbb ptests pass in
meta-oe-image-ptest-tbb on qemux86-64 musl.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 8.0.0:
- Remove Python 3.8 - 3.10 support
- Fix parameter name in documentation
- Switch from poetry to uv
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Apply minor improvements:
- Do not explicitly set PV
- Use oe.utils.trim_version('${PV}', 2) in the SRC_URI
This work was sponsored by GOVCERT.LU.
Suggested-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
kmscon only counted a GPU as primary when its PCI parent had boot_vga
set, so with gpus=primary it ignored vc4 on the Raspberry Pi 4 and never
showed a terminal. Treat DRM devices on the platform bus as primary,
except for the firmware framebuffer drivers. Tested on a Raspberry Pi 4
booting through EDK2.
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Preserve existing CMAKE_CXX_FLAGS in the cross-compilation patch so
Yocto's -ffile-prefix-map flags are not discarded, fixing the
do_package_qa buildpaths check. Replace the custom do_install with
do_install:append that only fixes the SONAME symlink layout, letting
cmake_do_install handle the standard installation. Drop the
now-unnecessary INSANE_SKIP:buildpaths overrides.
Signed-off-by: Varun Singhal <varusing@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Reference Python Varlink binding. Fetched from git as 32.1.0 was never
published to PyPI (latest there is 31.0.0 from 2021).
AI-Generated: Claude Opus 5 (Claude Code)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
asyncio Varlink binding with file-descriptor passing; interfaces are
derived from annotated Python classes.
AI-Generated: Claude Opus 5 (Claude Code)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
- ctypes.util.find_library() relies on "ldconfig -p", gcc or ld, none of
which exist on a musl target, so find_library("pcap") returns None
and scapy raises "Cannot find libpcap.so library" even with libpcap
installed. That disabled conf.use_pcap and BPF filter compilation and
failed ten ptests (offline sniff() with filters, tcpdump(), tdecode(),
traceroute). Fall back to loading libpcap.so.1/libpcap.so by name.
- The NetBSD read_routes6() test compares IPv4-compatible IPv6 prefixes
as strings, but musl's inet_ntop() prints ::127.0.0.0 as ::7f00:0.
Normalise the expected values with in6_ptop().
Tested with meta-networking-image-ptest-python3-scapy on qemux86-64
with yoe-musl-systemd-wayland: TOTAL: 1 FAIL: 0.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Three func_tests failed on musl:
- test_1_to_1_sendmsg and test_1_to_1_recvmsg died with SIGSEGV. They
pass (struct msghdr *)-1 and expect EFAULT, but on 64-bit musl the
sendmsg()/recvmsg() wrappers copy the msghdr to clear its padding
before making the syscall. Issue those two calls with syscall(2) so
they test the kernel's handling of the bad pointer.
- test_connectx reported "Association id mismatch: connectx returned 3,
notification returned:240". libsctp exports an unversioned
sctp_connectx alias of the original API next to the VERS_1..VERS_3
versions. musl's dynamic linker does not implement symbol versioning
and binds that alias, so every sctp_connectx() call on musl ran the old
API, which never returns the association id. The alias only serves
binaries linked before libsctp was versioned, so only emit it on
glibc; sctp_connectx@@VERS_3 is then the one musl resolves.
Tested with meta-networking-image-ptest-lksctp-tools on qemux86-64 with
yoe-musl-systemd-wayland: TOTAL: 1 FAIL: 0.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
signing_extract_cert_der() and signing_extract_cert_pem() read the
certificate off the token with 'extract-cert <pkcs11-uri>'. extract-cert
reaches a pkcs11 token through the OpenSSL ENGINE API, which OpenSSL 4.0
removed; meta-oe's own extract-cert now errors "PKCS#11 URIs require
OpenSSL < 4.0" on such input. Both exporters are therefore broken on
OpenSSL 4.
signing_prepare() already configures the pkcs11 provider (OPENSSL_MODULES
plus a provider openssl.cnf), so read the certificate through it with
'openssl storeutl -certs' instead. The class is provider-based on both
OpenSSL 3 and 4, so this needs no version branching. Make _pem the
primitive (storeutl emits PEM) and derive _der from it.
storeutl -certs writes every certificate the URI matches; a signing role
URI is expected to pin a single object, and _der keeps the first cert
should more than one come back.
The class no longer invokes extract-cert; drop it from DEPENDS.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
signing_prepare() signs via the pkcs11 provider only: it writes a provider
openssl.cnf and uses OSSL_STORE for native provider access. Nothing invokes
the OpenSSL ENGINE API (no -engine), so the OPENSSL_ENGINES export and the
engines-3 directory check are dead code. The check even hard-fails
(return 1) when engines-3 is absent, which OpenSSL 4.0 no longer ships
(ENGINE API removed) - breaking signing outright although the provider path
is fine. Remove the engine export and the check.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The previewer imports GstTag through GObject introspection. Its typelib is
shipped in gstreamer1.0-plugins-base, and without that package
org.gnome.NautilusPreviewer exits at startup with "Typelib file for
namespace 'GstTag', version '1.0' not found".
AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The 0.5.6 source tarball on PyPI now uses the PEP 625 name
python_gnupg-0.5.6.tar.gz.
- Set PYPI_PACKAGE to "python_gnupg"
- Set S explicitly, since the archive still unpacks to
python-gnupg-${PV}
- Set CVE_PRODUCT to "python:python-gnupg" so CVE matching still
works after the PYPI_PACKAGE change
Changelog:
https://github.com/vsajip/python-gnupg/releases/tag/0.5.6
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
test/test1.cf sets "reinitcheck 1s", added upstream only to exercise
the seconds unit. A reinit check brings back every console that is down,
including one taken down on purpose, so test #5, which expects the
console that test #4 downed ("cd") to still be down, has about a second
to attach and query it. On a loaded host, e.g. while testimage runs
several VMs, it loses:
FAIL: conserver #5 (diffs in test5.diff)
-[`shell' -- console is down]
conserver.log shows "[shell] automatic reinitialization" between the
two tests. Reproduced with 2 failures in 20 runs in qemux86-64 with the
host CPUs saturated; instrumenting group.c confirmed the reinit comes
from ReUp(pGE, 2), the reinitcheck timer.
Use "reinitcheck 60s" in the test config, so the seconds unit is still
parsed but the check cannot fire during the ~10 s test run. 40 of 40
runs passed under the same load.
Tested with meta-oe-image-ptest-conserver on qemux86-64 with
yoe-musl-systemd-wayland.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
conserver only needs crypt(). Depending on libxcrypt directly pulls it
in even on musl, whose libc already provides crypt(). Use virtual/crypt
so the libc's preferred provider is used: libxcrypt on glibc, musl
itself on musl.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>