The bundled liblog/libbase compat shim defines a getprogname()
fallback macro and then immediately redefines program_invocation_name
using it in a way that collides with musl's own declaration. Fix the
ordering/guard so the two definitions don't conflict.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
backtrace.cpp sets sCrashCallback but only reads it back inside a
glibc-only execinfo backtrace path, so on musl (no backtrace()) clang
flags it as -Wunused-but-set-variable under -Werror. Reference it in
the non-glibc branch too.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
spdm_emu_mctp_kernel.c uses AF_MCTP, a very recent Linux socket
family constant that musl's <sys/socket.h> doesn't define yet. Add a
guarded fallback definition.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
modbus-rtu.c uses the Linux-specific TCGETS2/TCSETS2 ioctls, which
glibc's <asm/termbits.h>/<asm/ioctls.h> chain declares transitively via
<termios.h>, but musl's don't.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
secure_execution_linux.c includes both <sys/prctl.h> and
<linux/prctl.h>; musl's <sys/prctl.h> already declares everything
needed, and including the raw uapi header afterwards redefines struct
prctl_mm_map.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Same struct ethhdr / __UAPI_DEF_ETHHDR ordering issue as xdp-tools:
common.h/txring.c pull in musl's <netinet/if_ether.h> after the raw
<linux/if_ether.h> uapi header has already defined struct ethhdr.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
musl's <netinet/if_ether.h> and the kernel's raw <linux/if_ether.h>
both define struct ethhdr, and only avoid colliding if
<netinet/if_ether.h> (or something that pulls it in) is processed
first. lib/util/params.{c,h} and xdpsock.c, xdp-filter.c and
xdp-dump/xdpdump.c all got this backwards in various ways; fix the
include order/choice in each.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
atop calls the wide-character ncurses function waddwstr(), which
needs NCURSES_WIDECHAR defined; get that (and the right include path)
from the ncursesw pkg-config module's own Cflags instead of hardcoding
plain ncurses flags.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
A test program uses pthread_setname_np(), a GNU extension that needs
_GNU_SOURCE defined before <pthread.h> is included to be declared.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The camel-provider-imapx test uses strcasestr(), a GNU extension that
needs _GNU_SOURCE defined before <string.h> is included to be
declared.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
fs-monitor.c uses __s32/__u32 without <linux/types.h>, and rw_hint.c
uses RWH_WRITE_LIFE_NOT_SET which musl's headers don't define. Add the
missing include and a guarded fallback define.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
lib/cap-cli-main.c uses htole32()/le32toh() from <endian.h> without
including it directly; pull it in via the project's own endian
compat header.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
ec.h unconditionally #defines _GNU_SOURCE without checking if it is
already defined, which trips -Werror on musl toolchains that predefine
it via the driver. Guard the define.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
dvd_filesystem.h unconditionally uses the glibc LFS64 off64_t name.
musl's off_t is already 64-bit, so typedef it the same way the other
non-glibc branches already do. This also fixes libdvdnav, which
consumes this staged header.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
bit7z's internal code uses off64_t/stat64/lstat64, which musl doesn't
provide since its off_t is already 64-bit. Use the plain POSIX names.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
sofprobeclient uses the bare 'uint' typedef, which is a glibc/BSD
extension musl doesn't provide. Use 'unsigned int' instead.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
StreamCallback.h uses int64_t without including <cstdint>, relying on
a transitive include that only exists on glibc.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
args.h uses int64_t without including <cstdint>; glibc headers pull it
in transitively via other includes, musl's don't.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
canvenient_socketcan.c uses struct timeval without pulling in a header
that declares it; glibc gets it transitively, musl doesn't.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The package name changed from Cheetah3 to ct3[1], so we didn't get any
upgrade notices from AUH. Update the PYPI_PACKAGE, and upgrade to the
latest release.
Remove the RDEPENDS on legacy-cgi, this is no longer needed[2].
License-Update: Copyright years updated.
[1] cheetah3 673259b ("The project is renamed to ``CT3`` at PyPI")
[2] cheetah3 02a4076 ("Fix(webInput): Use `parse_qs` instead of `cgi`")
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
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>