pylint 4.0.8 passes asname=False to Import.infer(), a keyword argument
astroid 4.2 removed. With the astroid 4.3.1 in meta-python this makes
pylint crash on any import of a missing submodule:
TypeError: NodeNG.infer() got an unexpected keyword argument 'asname'
which shows up in ptest as astroid-error in three functional tests:
FAIL: tests/test_functional.py:test_functional[fallback_import_enabled]
FAIL: tests/test_functional.py:test_functional[import_error]
FAIL: tests/test_functional.py:test_functional[no_name_in_module]
Backport the pylint/ part of upstream commit 554b1d192434 ("Bump
astroid to 4.2.0b4"), which drops the argument.
meta-python-image-ptest-python3-pylint on qemux86-64 now passes
872 tests with none failing.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
test_basic_ddr_sync and test_basic_ddr_async only check that the
Internet is reachable. On networks that intercept port 53, 1.1.1.1 and
8.8.8.8 still answer ordinary queries but return NXDOMAIN for
_dns.resolver.arpa SVCB, so try_ddr() cannot upgrade the nameservers
and the tests fail:
FAIL: tests/test_ddr.py:test_basic_ddr_sync
FAIL: tests/test_ddr.py:test_basic_ddr_async
assert isinstance('1.1.1.1', dns.nameserver.Nameserver)
Add a patch to skip them unless both resolvers return DDR SVCB records.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
float_as_int_without_noise() returns early when the floored value fits
in a long, checking it with floor_val == static_cast<long>(floor_val).
For values outside the range of long the conversion is undefined
behavior; clang -O2 folds the round trip into "floor_val is integral",
which is always true, so the denoising is skipped:
FAIL: tests/test_fastnumbers_examples.py:test_try_real
FAIL: tests/test_fastnumbers_examples.py:test_try_forceint
assert 3452999999999999737856 == 3453000000000000000000
Add a patch that only does the conversion when the value is in range.
A reduced reproducer returns the wrong answer with the recipe's clang++
at -O2 and the right one with the fix (and with -O0 or gcc).
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
tests/test_core.py runs glances with ./conf/glances.conf and reads plugin
test data from ./tests-data, both relative to the ptest directory.
Neither was installed, and tests-data is not part of the pypi sdist, so
four tests failed:
test_023_get_alert: AssertionError: 'DEFAULT' != 'OK_LOG'
test_025_npu: IndexError: list index out of range
test_026_mpp: AssertionError: 0 != 3 : Expected 3 MPP engines
test_108_fs_zfs_: AssertionError: False is not true
Fetch tests-data from the v4.5.6 tag and install it, together with
conf/, next to the tests. Only tests-data/plugins is used by the tests.
With these in place tests/test_core.py passes 52/52 on qemux86-64.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
tests/integration/test_hooks.py records live https://httpbin.org
requests (no cassettes are shipped for them), so the ptest fails
whenever the service resets the connection, e.g.:
FAIL: tests/integration/test_hooks.py:TestHooks.test_post_start_hook
requests.exceptions.ConnectionError: ('Connection aborted.',
ConnectionResetError(104, 'Connection reset by peer'))
The same tests pass when the service behaves (3 out of 3 runs in a
qemux86-64 VM), so they are flaky rather than broken. Leave them out
of the ptest run.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
bcc's tools/funccount_example.txt documents tracing a binary that
upstream placed under /home/ubuntu:
# ./funccount -p 1442 /home/ubuntu/contentions:*
Tracing 15 functions for "/home/ubuntu/contentions:*"...
If /home/ubuntu is in the $PATH, then the following command will also work:
That is documentation prose, not a leaked build path, but the buildpaths
QA check flags any packaged file containing the builder's HOME, so on a
host whose HOME is /home/ubuntu it warns twice - once for the copy in
${datadir}/bcc/tools/doc and once for the copy do_install_ptest places
in ${libdir}/tools:
WARNING: bcc-0.37.0-r0 do_package_qa: QA Issue: File
/usr/share/bcc/tools/doc/funccount_example.txt in package bcc contains
a reference to the build host HOME directory. [buildpaths]
WARNING: bcc-0.37.0-r0 do_package_qa: QA Issue: File
/usr/lib/tools/funccount_example.txt in package bcc-ptest contains a
reference to the build host HOME directory. [buildpaths]
Both packaged copies are byte identical to the file in the upstream tree
and contain no reference to TMPDIR, confirming nothing is baked in at
build time. Set OEQA_BUILDPATHS_SKIP as the QA message suggests, which
suppresses only the HOME half of the check; the TMPDIR half still guards
against real build path leaks. oe-core does the same for sudo, perl,
python3-numpy and python3-pytest.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Data-HexDump 0.02 installed a "hexdump" script via EXE_FILES in
Makefile.PL, so registering ${bindir}/hexdump with update-alternatives
was correct. Upstream 0.02_01 moved that script to eg/ and dropped
EXE_FILES:
* Moved hexdump script to eg/, so it won't be installed.
Addresses RT#123224 from KENTNL.
so since the 0.02 -> 0.04 upgrade the package installs nothing but
Data/HexDump.pm and the alternative refers to a file that is never
created:
WARNING: libdata-hexdump-perl-0.04-r0 do_package: libdata-hexdump-perl:
alternative target (/usr/bin/hexdump or /usr/bin/hexdump.libdata-hexdump-perl)
does not exist, skipping...
WARNING: libdata-hexdump-perl-0.04-r0 do_package: libdata-hexdump-perl:
NOT adding alternative provide /usr/bin/hexdump:
/usr/bin/hexdump.libdata-hexdump-perl does not exist
WARNING: libdata-hexdump-perl-0.04-r0 do_package: libdata-hexdump-perl:
alt_link == alt_target: /usr/bin/hexdump == /usr/bin/hexdump
Drop the update-alternatives inherit and its settings to match what the
recipe actually ships. The eg/hexdump example is deliberately not
installed upstream, and util-linux/busybox already provide hexdump.
Packaged file lists are unchanged; the package no longer carries the
dead update-alternatives postinst/prerm.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
It only install local files from SRC_URI, so nothing is ever
unpacked into ${UNPACKDIR}/${BP} and the default S never exists, making
do_unpack warn for each of them:
WARNING: polkit-group-rule-datetime-1.0-r0 do_unpack:
polkit-group-rule-datetime: the directory ${UNPACKDIR}/${BP} pointed
to by the S variable doesn't exist - please set S within the recipe to
point to where the source has been unpacked to
Point S at ${UNPACKDIR} in the shared include, which is what oe-core
does for file-only recipes such as init-ifupdown and keymaps. This
covers polkit-group-rule-{datetime,network,udisks2} in one place; the
do_install tasks already reference ${UNPACKDIR} directly, so packaging
is unchanged.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The 1.4x releases are cut on the "develop" branch,
Add UPSTREAM_CHECK_GITTAGREGEX to keep the version check sane.
The release needs a few adjustments beyond the version bump:
* linux/DtaLinux.cpp now includes <systemd/sd-device.h> and
<nvme/types.h> unconditionally, and Makefile.am hardcodes
LDADD = -lsystemd, with no non-systemd fallback. Add the systemd and
libnvme dependencies (matching the package list in the BUILDING file)
and require the systemd distro feature.
* Makefile.am declares .INTERMEDIATE, which automake defines itself in
distdir.am, and configure.ac uses AM_INIT_AUTOMAKE([-Wall -Werror]),
so autoreconf fails with automake 1.19:
automake: warnings are treated as errors
Makefile.am:152: warning: user target '.INTERMEDIATE' defined here ...
.../am/distdir.am: ... overrides Automake target '.INTERMEDIATE' defined here
Add a patch dropping the declaration.
* Clear WERROR so that upstream's -Werror does not turn new compiler
diagnostics into build failures. clang 23 enables -Wunused-template,
which fires on the deliberately unused sd_device_new_from_devname()
SFINAE fallback.
* Generate linux/Version.h up front instead of letting Makefile.am run
"git describe --dirty", which needs git at build time and reports
"1.49.13-dirty" because do_patch leaves the tree modified.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
TLSv1_2_server_method() and TLSv1_2_client_method() were deprecated in
OpenSSL 1.1.0 and removed in OpenSSL 4.0, so do_compile fails:
SecureSocket.cpp:386:18: error: use of undeclared identifier 'TLSv1_2_server_method'; did you mean 'TLS_server_method'?
SecureSocket.cpp:389:18: error: use of undeclared identifier 'TLSv1_2_client_method'; did you mean 'TLS_client_method'?
Backport the two upstream commits that deal with this, neither of which
is in the v1.10.1 SRCREV pinned here - they first shipped in v1.11.0:
4fea67e078479cc00afe6b1201c54c997a41fc70
"#6390 Updated OpenSSL For better security with TLS1.3"
4d3cf2c6 "Preventing older insecure version of TLS/SSL"
The first swaps the removed version specific methods for the version
flexible ones; the second restores the TLS 1.2 floor with
SSL_CTX_set_options(). Both are needed: the first on its own silently
drops the minimum version the original code deliberately enforced, for
the PCI compliance reasons its comment describes. Since TLS 1.3 can now
be negotiated, the hardcoded "TLSv1.2" reported to the user is replaced
with the version actually in use, retiring k_tlsString.
Upgrading the recipe instead is not an option today. Upstream renamed the
repository to symless/synergy and the latest release, v1.20.4, is the
rebranded deskflow codebase with a different cmake layout, a Qt6 GUI and
a changed LICENSE; more importantly it hard requires the ext/synergy-extra
submodule, declared with an ssh URL and carrying no license at all, and
its cmake aborts without it. That has been true since v1.16.x. No pending
upstream pull request addresses the build failure either, since upstream
fixed it in tree back in 2019.
The backport differs from upstream in two intentional ways, both noted in
the patch: upstream's pre-1.1.0 fallback defines the client method to
SSLv23_server_method, and upstream sets the context options before
checking SSL_CTX_new() for NULL.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Two more OpenSSL 4.0 breakages on top of the ASN.1 opacity already
handled by 0012-fix-openssl-4-asn1-opaque.patch.
The ENGINE API is gone. <openssl/engine.h> is still shipped as a
source-compatibility stub, so linking fails on ENGINE_free,
ENGINE_load_builtin_engines, ENGINE_by_id, ENGINE_init, ENGINE_finish,
ENGINE_ctrl_cmd and ENGINE_load_private_key. Define OPENSSL_ENGINE_STUBS,
which OpenSSL 4 provides for exactly this case: the declarations become
inline no-ops returning failure, so the file compiles and links unchanged.
OPENSSL_SUPPRESS_DEPRECATED is already defined there, so the stubs'
deprecation attributes do not trip -Werror. That leaves ENGINE_by_id()
returning NULL, which the existing code fed straight into ENGINE_init() -
a NULL dereference predating OpenSSL 4 - so check it and report what went
wrong, mentioning OpenSSL 4 so the failure is not mistaken for a missing
module. PKCS#11 backed signing genuinely is unavailable there, as no
provider exposes an equivalent of the pkcs11 engine's LOAD_CERT_CTRL.
X509_get_subject_name() now returns const X509_NAME *, so its result can
no longer be the destination of X509_NAME_add_entry_by_txt():
src/tools/pki_tree/pki_helper.c:440:10: error: assigning to 'X509_NAME *' from 'const X509_NAME *' discards qualifiers
There is no mutable counterpart, so build the subject name standalone and
install it with X509_set_subject_name(); both setters copy it, so it is
freed once the issuer name has been set from it too.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
OpenSSL 4.0 removed the ENGINE API. <openssl/engine.h> still exists as a
source-compatibility stub, so both binaries fail to link:
ld.lld: error: undefined symbol: ENGINE_load_builtin_engines
ld.lld: error: undefined symbol: ENGINE_by_id
ld.lld: error: undefined symbol: ENGINE_init
ld.lld: error: undefined symbol: ENGINE_ctrl_cmd_string
ld.lld: error: undefined symbol: ENGINE_load_public_key
The ENGINE use is confined to the "pkcs11:" input branch of each tool, so
compile that branch out on OpenSSL 4 and diagnose the unsupported input
instead. Reading certificates and public keys from PEM files, which is
what the kernel build and most other users do, is unaffected.
Providers supersede engines, but none exposes an equivalent of the pkcs11
engine's LOAD_CERT_CTRL command, so there is nothing to port to yet.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
OpenSSL 4.0 breaks the X.509 code in two ways: struct asn1_string_st is
opaque, so ASN1_INTEGER / ASN1_OCTET_STRING / ASN1_BIT_STRING / ASN1_TIME
can no longer be dereferenced, and X509_get_ext(),
X509_EXTENSION_get_data(), X509_get0_pubkey_bitstr(),
X509_get_subject_name(), X509_get_issuer_name() and
X509_REQ_get_subject_name() all gained const.
Switch to the ASN1_STRING_get0_data() / ASN1_STRING_length() /
ASN1_STRING_type() accessors, available since OpenSSL 1.1.0, and
propagate const to the locals that only read through those pointers.
Three call sites needed a mutable X509_NAME: they fetched the existing
name, edited it in place and installed it again. The getters have no
mutable counterpart, so duplicate with X509_NAME_dup(), edit the copy and
free it once the setter has taken its own copy, preserving the previous
behaviour of merging into the existing DN.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
mutter fails to configure on a wayland-only distro configuration:
Run-time dependency gl found: NO (tried pkg-config and system)
../sources/mutter-50.4/meson.build:191:11: ERROR: Dependency "gl" not found (tried pkg-config and system)
The recipe enabled the opengl PACKAGECONFIG unconditionally, which
passes -Dopengl=true and makes meson require desktop OpenGL:
have_gl = get_option('opengl')
if have_gl
gl_dep = dependency('gl')
Desktop GL is not available here. libGL.so and gl.pc are products of
mesa's GLX library - see FILES:libgl-mesa-dev in mesa.inc - and mesa
only builds GLX when its x11 PACKAGECONFIG is on, since
PACKAGECONFIG[x11] passes -Dglx=disabled when it is off. Without x11 in
DISTRO_FEATURES mesa is therefore configured -Dopengl=true -Dglx=disabled
-Dplatforms='wayland' and stages only egl.pc, glesv1_cm.pc and
glesv2.pc, with no libGL and no gl.pc.
The dependency looked satisfied because mesa PROVIDES virtual/libgl
unconditionally, so the virtual/libgl entry in PACKAGECONFIG[opengl]
resolves at the bitbake level even though nothing ever lands in the
sysroot. mesa also installs the GL/*.h headers regardless of GLX, so
meson's 'system' fallback clears the header probe before failing on the
missing library.
mutter builds fine against GLESv2 alone - it only errors out if neither
GL nor GLES2 is enabled - and egl plus gles2 are already enabled here,
which is the usual configuration for a wayland-only compositor. Gate
opengl on x11 so it follows the same condition that decides whether
desktop GL exists at all; x11 builds are unaffected.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
gnome-disk-utility 46.1 fails to build on a wayland-only distro
configuration (no x11 in DISTRO_FEATURES) for three separate reasons,
all of them latent X11 assumptions in the GTK3 code line.
do_configure fails first:
Run-time dependency libcanberra-gtk3 found: NO (tried pkg-config)
meson.build:75:18: ERROR: Dependency "libcanberra-gtk3" not found
meson.build requires libcanberra-gtk3 unconditionally, but
libcanberra's gtk3 support is itself X11-only (its configure.ac does
PKG_CHECK_MODULES(GTK3, [gtk+-3.0 ... gdk-3.0 x11]), the sources use
gdk_x11_get_xatom_by_name_for_display()/GDK_WINDOW_XID, and
libcanberra-gtk3.pc links -lX11), so the meta-oe recipe correctly
leaves the gtk3 PACKAGECONFIG off here and the dependency can never be
satisfied. Drop it, along with the three ca_gtk_play_for_widget() sound
effect call sites; upstream removed libcanberra entirely by the same
route after 46.1 was released.
Once that is out of the way do_compile fails on the X11 backend header:
gdupasswordstrengthwidget.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gduvolumegrid.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gduestimator.c:14:10: fatal error: 'gdk/gdkx.h' file not found
gtk+3 only installs gdk/gdkx.h when its X11 backend is enabled. None of
these three files calls any X11-specific GDK API, so the include is
simply dead weight and can be dropped.
Neither fix is available upstream for this code line: the GTK4 /
libadwaita rewrite deleted or renamed the affected files rather than
fixing them, and no in-flight merge request touches the GTK3 sources
that 46.1 still builds. 46.1 remains the latest stable release.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
The 4.1.0 upgrade added two CXXFLAGS that only work with GCC, which
breaks the clang build of the testsuite (BIT7Z_WARNINGS_AS_ERRORS
defaults to BIT7Z_BUILD_TESTS, so -Werror is on whenever ptest is
enabled).
error: unknown warning option '-Wno-sfinae-incomplete'; did you mean
'-Wno-delete-incomplete'? [-Werror,-Wunknown-warning-option]
-Wsfinae-incomplete is a GCC 15+ diagnostic that clang does not have, so
only pass it when building with GCC.
cpm_cache/ghc_filesystem/include/ghc/filesystem.hpp:4090:41: error:
implicit conversion changes signedness: 'int' to 'mode_t'
(aka 'unsigned int') [-Werror,-Wsign-conversion]
Upstream declares the ghc::filesystem include directory as a SYSTEM one
(target_include_directories(ghc_filesystem SYSTEM INTERFACE ...) in
cmake/Dependencies.cmake), which keeps warnings from that header quiet.
Passing it as a plain -I undoes that, so use -isystem instead.
There is nothing to upgrade to here, 4.1.0 is the latest release and
upstream master is a single documentation commit ahead of it.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 4.1.0:
- Nested archives support: the new BitNestedArchiveReader class
lets you open and inspect archives that are embedded as items
inside another archive, without extracting them to disk first.
- Native file I/O: file streams have been rewritten to use
low-level Win32 APIs on Windows and POSIX I/O on Unix, replacing
std::fstream. This dramatically improves the performance of both
extraction and compression operations.
- New extraction callbacks: RenameCallback (dynamically rename or
skip items during extraction), RawDataCallback (stream raw bytes
directly to user code without touching the filesystem), and
BufferCallback (route each extracted file to a separate,
independently chosen buffer) unlock extraction patterns that were
previously impossible.
- Multi-volume LRU file-handle cache: when reading or creating
large multi-volume archives, bit7z now keeps only the most
recently used volume file handles open, preventing file
descriptor exhaustion on archives with many volumes.
- Timestamp control: two complementary additions give full control
over timestamps when creating archives. BitAbstractArchiveCreator
gains setStoreLastWriteTime(), setStoreCreationTime(), and
setStoreLastAccessTime() to control which timestamp types are
stored globally (format support varies: 7z has the most complete
support; TAR does not support creation/last-access timestamps).
Additionally, BitOutputArchive::addFile() now returns a
BitInputItem&, allowing per-item timestamp overrides via
setCreationTime(), setLastWriteTime(), and setLastAccessTime().
- Deferred library loading: Bit7zLibraryLoader allows constructing
a loader without immediately loading the 7-zip DLL/SO, then
loading (and unloading) it at any later point. Useful for
plugin systems and applications that need to control when the
native library is brought in.
- Self-extracting (SFX) archive support (since beta): bit7z
correctly handles SFX executables.
- Root-folder extraction (since beta): extract the contents of an
archive's single top-level folder without knowing its name in
advance.
- Locked-file compression (since beta): the new setStoreOpenFiles()
setting on BitAbstractArchiveCreator opens files with shared
read/write access on Windows, mirroring 7-Zip's -ssw switch, so
you can archive files another process holds open for writing
instead of failing with "access denied". No effect on non-Windows
platforms.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.70:
- this release changes how &, ^ and | bind against each other. If
you have expressions that mix them without parentheses, check
them: 3 ^ 1 & 2 now gives 3, the same as a C compiler, where
earlier releases gave 2.
Enhancements:
- Unary plus and minus in expressions: -5, 5 * -2 and 10 - -2
evaluate instead of being rejected. On the command line, separate
a leading minus with --: bitwise -- '-5'
- README documents the operators that actually exist, with their
precedence, and which C operators are not supported
- Added CONTRIBUTING.md, and filled in ChangeLog, NEWS and AUTHORS
Bug Fixes:
- &, ^ and | now have the C precedence order, where & and ^ used to
share a level
- Numbers that don't parse cleanly are now refused instead of
guessing: 12a used to evaluate as 12, a bare 0x or 0b as 0, and a
literal past UINT64_MAX as UINT64_MAX
- Shifts and BIT() at or past the width of the value give 0, instead
of an answer computed from a masked shift count: 1 << 64 used to
be 1, and 1 << 200 used to be 256
- Fixed a stack buffer overflow on tokens longer than 64 characters,
reachable from both the command line and the : prompt
- Radix64 output now matches the system l64a(); a fallback shim was
overriding libc and printing a different alphabet
- Parse errors no longer corrupt the curses display
- Fixed the ASCII line of the conversion output on big-endian hosts
Build and testing:
- make distcheck works; VPATH builds could not find the headers in
inc/ at all
- -Wall -Wextra are on by default, and --enable-asan, --enable-ubsan
and --enable-fuzzer join the existing options
- Tests for number parsing, shift edges and long tokens, plus a
libFuzzer harness over the expression parser
- CI builds on Linux, macOS and Windows/msys2, and runs distcheck,
the sanitizers and a bounded fuzzing run on every push
Drop 0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
because v0.70 Makefile.am already includes a similar fix to put
$(top_srcdir)/inc on the include path from git commit f4b9fa1.
Fix Big-endian and Little-endian output in ptest.out.expected.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
0.5.16 is skipped because it contains a regression that broke object
destruction in the monitor scripts; upstream recommends to avoid it.
WirePlumber 0.5.17
~~~~~~~~~~~~~~~~~~
Fixes:
- Fixed factory-created device, node and link objects to stop sharing
ownership with their registry global, fixing a regression from the
``WpClientContext`` introduced in 0.5.16 that broke proper object
destruction in the monitor scripts (#999; !890, !891)
- Improved ``default-nodes`` to also rank on the object.serial of a node's
device and on the node's own object.serial, so that route priorities are
only compared between nodes of the same card, and the election no longer
changes for no apparent reason when all other keys are equal (!893)
- Fixed ``m-lua-scripting`` to include the offending Lua type name in POD
build errors (!889)
WirePlumber 0.5.16
~~~~~~~~~~~~~~~~~~
Additions & Enhancements:
- Added ``WpClientContext``, a second PipeWire connection running on its own
thread that hosts WirePlumber's in-process media objects (loopback and
filter-chain modules, ``LocalNode()``, ``SpaDevice()``), so that slow Lua
event hooks on the main thread no longer stall their control path; the
export core is retired in favor of this new client context (!873)
- Added new ``WpDynamicRules`` class for matching rules with conditions, and
updated ``filter-graph.lua`` to use it, allowing filter-graphs to be loaded
and unloaded dynamically depending on whether other objects exist or not
(!872)
- Added ``wp_impl_module_unload()`` and ``LocalModule:unload()``, giving
scripts control to unload implemented modules at any time (!881)
- Added a ``volume-set`` action to ``module-mpris`` to allow adjusting the
volume of a remote MPRIS2 player from Lua (!860)
- Added ``--yes`` flag to ``wpctl reset`` to skip the confirmation prompt
(!850)
- Added ``device.form-factor`` ALSA node property for use in ALSA rules, and
made HDMI node descriptions include the name of the connected display when
available (!862, !874)
- Refactored the Bluetooth monitor to use event hooks for handling devices
and nodes, matching the design already used by the v4l2 and libcamera
monitors (#916; !803)
- Overhauled the documentation: filled in every stub and missing Lua API and
C API page, added a getting started guide, new ``wireplumber(1)`` and
``wpexec(1)`` man pages, and removed stale pages describing features
renamed or removed in the 0.4 to 0.5 transition (!877)
Fixes:
- Fixed monitors to always activate all device and node features, and made
monitors wait for successful device activation before storing the devices
and nodes as a managed objects (#986, #996; !883, !886, !876)
- Fixed ``find-preferred-profile`` to skip a configured preferred profile
that is not available, instead of leaving no profile selected (#993; !884)
- Fixed ``permission-manager`` to not include destroyed globals when
rebuilding the permissions array on ``objects-changed``, fixing some
pipewire warnings in the log (!882, !888)
- Fixed a memory leak in ``WpSpaDevice`` by only collecting params from our
own requests (#988; !879)
- Fixed ``filter-graph`` to correctly apply graphs defined for the same node
across multiple configuration files (!870)
- Fixed several nil-related crashes and correctness issues in Lua scripts
(#972; !861, !864, !866, !869)
- Improved ``apply-access`` to directly attach an already-active permission
manager to the client instead of wastefully re-running activation on it
(#973; !868)
- Improved ``state-stream`` change detection to avoid spurious state writes
from volume rounding and from unset or empty properties (#974; !867)
- Fixed ``default-nodes`` to ignore smart filters when selecting the best
default node (!857)
- Removed the ``node.filter.forward-format`` setting and its script, which
only worked with 0.4 and never really worked with 0.5 (!878)
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Update SRC_URI to use the 'main' branch instead of 'master' since
the upstream GitHub repository has renamed its default branch.
Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
libglycin spawns the sandboxed loader binaries from
${libexecdir}/glycin-loaders at runtime, so a rootfs that only carries
libglycin-2.so cannot decode a single image. Nothing pulled in the
loaders package, which left users of libglycin (gnome-shell wallpapers,
nautilus) without any decoder at all.
Let ${PN} rdepend on ${PN}-loaders whenever loaders are built, and make
the loaders -> thumbnailer dependency a recommendation so the runtime
dependency graph stays free of cycles.
Tested by rebuilding gnome-image: libglycin-2-loaders and
libglycin-2-thumbnailer are now part of the rootfs manifest and
/usr/libexec/glycin-loaders/ carries the image-rs, jxl and svg loaders.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
libopensc failed to link:
x86_64-yoe-linux-ld.lld: error: unable to find library -lgio-2.0
x86_64-yoe-linux-ld.lld: error: unable to find library -lgobject-2.0
libopensc_la_LINK = $(LIBTOOL) ... --tag=OBJC ... $(OBJCLD) ...
with OBJCLD = $(OBJC). The ENABLE_CRYPTOTOKENKIT conditional only keeps
the .m file out of the sources, automake still picks the linker
statically, so this happens on Linux too. AC_PROG_OBJC detects a bare
"x86_64-yoe-linux-clang" with none of the toolchain options, hence the
link ran without --sysroot:
OBJC = x86_64-yoe-linux-clang
CC = ccache x86_64-yoe-linux-clang -target x86_64-yoe-linux ... \
--sysroot=.../recipe-sysroot -std=gnu23
Point OBJC at the full CC
Also fix floating gio dependency: opensc's
--enable-notify defaults to "detect" and enables glib2 notification
support whenever gio-2.0 happens to be staged in the sysroot by some
other dependency
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
libSDL2-2.0.so.0 from sdl2-compat lists only libc.so.6 as NEEDED and
loads libSDL3.so.0 through dlopen(), so shlibs does not generate a
runtime dependency on libsdl3. An image that installs an SDL2 consumer
without pulling in libsdl3 by other means therefore gets a library that
fails to initialize at runtime. This was seen with plasma-desktop, whose
game controller KCM links against SDL2 and made systemsettings fail to
start on an image that had no other SDL user.
Tested by checking readelf -d on the installed libSDL2-2.0.so.0 and by
rebuilding the package for corei7-64.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The recipe carried a patch that commented out the i18n.merge_file()
call for org.opensuse.cupspkhelper.mechanism.policy and installed the
untranslated template in its place, so the polkit dialogs showed
English strings only and the 43 translations shipped in po/ were
discarded.
The merge failed because meson hands the data_dirs argument to its
msgfmthelper script, which replaces GETTEXTDATADIRS instead of
extending it. That hides the ITS rules polkit installs into the target
sysroot, which msgfmt needs to recognize the translatable elements of
a policy file, and which gettext.bbclass already points at.
cups-pk-helper ships no ITS rules of its own, so the argument has no
purpose beyond breaking the merge.
Replace the patch with one that drops data_dirs and keeps the merge
enabled, and remove the manual install of the template.
Tested by rebuilding for corei7-64: the installed policy file now
carries description and message elements for all 43 languages.
AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Creates a separate package for the polkit systemd
service, such that other implementations for polkit
could be used instead of polkit on systemd enabled
systems, while still keeping polkit available. This
is especially helpful for software that depends on
polkit or its libraries etc, e.g. udisks2.
Also package dbus configuration into an own package
Signed-off-by: Tillmann Severin <tillmann.severin@bmw.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 5.1.2:
- workflows: bump docker/setup-buildx-action from 4.2.0 to 4.3.0
- workflows: bump reviewdog/action-actionlint from 1.73.1 to 1.73.2
- workflows: bump github/codeql-action/upload-sarif from 4.37.6 to
4.37.7
- workflows: bump uraimo/run-on-arch-action from 3.1.0 to 3.2.0
- workflows: bump github/codeql-action/upload-sarif from 4.37.7 to
4.37.8
- in_node_exporter_metrics: Implement stat and thermal_zone for
macOS
- out_prometheus_remote_write: Add 1-hour cut-off for expiring
staled metrics
- out_splunk: add time_key support for the HEC event time
- Dockerfile: optimize layers
- config: fix startup abort when log_level set via env and config
- tests: runtime: Plug a SEGV occurrence on macOS
- out_gcs: add unify_tag option to buffer all tags into one file
- log: clamp the suppression length to what was written
- out_gcs: implement parquet compressions
- out_gcs: support application default credentials
- in_winevtlog: Plug a crash path
- in_winevtlog: fix crash when all channels are missing and
ignore_missing_channels is enabled
- log: make consistency for suppress log feature
- es: opensearch: output: task: handle partial succeeded requests
- tests: runtime: Fix errors of incompatible types for in_ebpf
tests
- filter_kubernetes: implement namespace exclude
- in_systemd: support capturing with namespace
- release: update to 5.1.2
- workflows: bump softprops/action-gh-release from 3.0.2 to 3.0.3
- workflows: bump github/codeql-action/upload-sarif from 4.37.8
to 4.37.9
- lib: cmetrics: update to v2.2.2
- input_chunk: input_log: in_storage_backlog: address underflowing
/ overflowing chunk limit size
- out_azure_blob: Plug dangling pointers on exceptions
- out_azure_kusto: stop logging federated and access tokens
- out_gcs: add Workload Identity Federation support
- wamrc: Build with LLVM-17
- reload: preserve configuration path during hot reload
- out_s3: Clean up orphaned chunks
- config: config_format: address wrongly specified parameter on
service section
- aws: compression: validate valid columnar formats
- multiline: add built-in json parser for JSON multiline objects
- engine: Plug a race on starting engine
- tests: integration: Adjust allocation patterns for Ubuntu 26.04
- workflows: bump helm/kind-action from 1.14.0 to 1.15.0
- workflows: bump reviewdog/action-actionlint from 1.73.2 to
1.73.3
- workflows: bump docker/setup-qemu-action from 4.2.0 to 4.3.0
- out_opentelemetry: support metrics max datapoints
- AGENTS: Reflect circumstance of the current commit linter
- in_node_exporter_metrics: expire metrics for networking
- in_forward: ingest all metrics contexts in payload
- out_kafka: preserve infinite shutdown grace
- out_loki: scope remove_mpa thread-local cache per instance
- log: return NULL after flb_worker_context_create failure in
flb_log_create
- in_node_exporter_metrics: plug possible overrun indexes
- packaging: stabilize Debian release images
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_configure fails with:
configure.ac:17: error: must install xorg-macros 1.8 or later before
running autoconf/autogen
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
oe-core upgraded ffmpeg 8.1.2 -> 9.0, which removed the AVCodec::pix_fmts
and AVCodec::supported_framerates fields (deprecated since FFmpeg 7.1 /
libavcodec 61.13.100). opencv's videoio ffmpeg backend still reads both
of them directly in cap_ffmpeg_hw.hpp and cap_ffmpeg_impl.hpp, so it does
not build against ffmpeg 9.
Backport the merged upstream series from opencv/opencv#29533, which reads
those lists through avcodec_get_supported_config() when building against
libavcodec 61.13.100 or newer and keeps the old field access otherwise.
The series was merged on 2026-08-11, after the 4.14.0 tag (2026-07-17),
so it is not part of the release we build.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_compile fails with:
keyraw.c:158:16: error: implicit declaration of function
'EVP_PKEY_asn1_find_str'
The GOST code needs the OpenSSL ENGINE API, which 4.0 removed. configure
cannot run its GOST test when cross compiling and answers "maybe", which
enables GOST anyway. Make it check that the API is there first.
Nothing is lost by this and no layer ships a GOST engine, so the lookup
already returned 0 at runtime. gost-engine has not been ported to
providers yet [1].
[1] https://github.com/gost-engine/engine/issues/496
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The openssl backend no longer compiles against openssl 4.x. OpenSSL 4.0
made struct asn1_string_st opaque (asn1.h only forward declares it now),
while libspdm's cryptlib_openssl still reaches into ASN1_INTEGER and
ASN1_TIME members directly:
libspdm/os_stub/cryptlib_openssl/pk/x509.c:814:51: error: incomplete
definition of type 'ASN1_INTEGER' (aka 'struct asn1_string_st')
libspdm/os_stub/cryptlib_openssl/pk/x509.c:1131:14: error: invalid
application of 'sizeof' to an incomplete type 'ASN1_TIME'
make the crypto backend a PACKAGECONFIG choice and default to mbedtls,
which builds fine. openssl stays selectable for anyone still on openssl
3.x, and the two options are marked as mutually exclusive.
While at it, update SRCREV to the current tip of main, which carries 41
commits including a build refactor, TPM support, Linux kernel MCTP stack
support and several libspdm syncs.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Fixes build with clang-23, which enables -Wunused-template in a way that
trips over openthread's parse_cmdline.hpp. With -Werror -Wfatal-errors
that is fatal:
third_party/openthread/repo/src/core/utils/parse_cmdline.hpp:240:48:
fatal error: unused function template 'ParseAsHexString'
[-Wunused-template]
Already fixed upstream in openthread commit 30c3569ac5ca ("[parse-cmdline]
make ParseAsHexString() inline"), which the openthread submodule of the
new SRCREV includes, so bump instead of carrying a backport.
Adapt the recipe to upstream changes made since the previous SRCREV:
* ot-br-posix commit cf4877d68af8 ("[mdns] remove avahi publisher option
and dependencies") deleted the avahi mDNS publisher; OTBR_MDNS=avahi
is now a configure-time FATAL_ERROR. Switch to OTBR_MDNS=openthread,
the new upstream default, and drop the avahi/avahi-daemon dependencies
the same way upstream did in their own etc/yocto/otbr_git.bb.
* The advertising and discovery proxies grew OT core implementations
(OTBR_OT_SRP_ADV_PROXY, OTBR_OT_DISCOVERY_PROXY) which default to ON
whenever OTBR_MDNS is set, and enabling both variants is now a
FATAL_ERROR ("Only one Advertising Proxy can be enabled."). Drop the
explicit OTBR_SRP_ADVERTISING_PROXY/OTBR_DNSSD_DISCOVERY_PROXY=ON so
the OT core ones are used.
* Drop 0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch.
With OTBR_MDNS=openthread src/agent/CMakeLists.txt never sets
EXEC_START_PRE, so the generated otbr-agent.service already has a bare
ExecStart= and the patch has nothing left to do.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
clang 23 added -Wunused-but-set-global, enabled by -Wall, and the build
uses -Werror -Wfatal-errors, so this is now a hard failure:
src/lib/dlt_user.c:132:20: fatal error: variable
'dlt_user_housekeeper_exit_requested' set but not used
[-Wunused-but-set-global]
132 | static atomic_bool dlt_user_housekeeper_exit_requested = false;
The diagnostic is pointing at a real bug: dlt_user_atexit_handler() sets
the flag to "Signal housekeeper thread to exit", but nothing ever reads
it, so the housekeeper thread only ever stops when dlt_stop_threads()
cancels it. Not fixed upstream, master still has the same dead store.
Add a patch checking the flag in the housekeeper loop condition. Leaving
the loop that way is equivalent to being cancelled, pthread_cleanup_pop(1)
at the end of the function runs dlt_user_cleanup_handler() either way.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
mercurial's setup.py treats ssl.HAS_TLSv1_2 as authoritative and refuses
to build at all:
The `ssl` module does not advertise support for TLS 1.2.
Please make sure that your Python installation was compiled against an
OpenSSL version enabling these features (likely this requires the
OpenSSL version to be at least 1.0.1).
ERROR: mercurial-7.2.4-r0 do_compile: Execution of .../run.do_compile
failed with exit code 1
Add a patch which only trusts the flag with OpenSSL < 4.0, in setup.py
and in sslutil.supportedprotocols (which otherwise loses b'tls1.2' and
makes `hg debuginstall` under-report the available protocols).
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_compile fails with:
OSSLUtil.cpp:188:46: error: invalid use of incomplete type
'ASN1_PRINTABLESTRING' {aka 'struct asn1_string_st'}
Backport the upstream fix. It was written for a memory leak, but it
moves to the ASN1_STRING accessors, which is also what OpenSSL 4 needs.
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_compile fails with OpenSSL 4.0:
lm-ssl-openssl.c:281:92: error: invalid use of incomplete typedef
'ASN1_IA5STRING' {aka 'struct asn1_string_st'}
This break is a three line change to the ASN1_STRING accessors, but
upstream is dead. The last release is 1.5.4 from January 2021 and the
last commit in the mcabber fork is from June 2022, so every future
toolchain or dependency change is ours to carry.
Nothing in any layer depends on it, the only reference was the meta-oe
packagegroup.
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_compile fails with:
cc1: error: include location "/usr/include/libnl3" is unsafe for
cross-compilation [-Werror=poison-system-directories]
The kernel tools Makefile gets the libnl flags from pkg-config. The
recipe does not inherit pkgconfig, so there is no PKG_CONFIG_SYSROOT_DIR
and the host pkg-config answers with the host include path.
Drop the manual CFLAGS entry, pkg-config now gives the same path.
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_configure fails with:
configure.ac:35: error: must install xorg-macros 1.8 or later before
running autoconf/autogen
xorg-app-common.inc sets DEPENDS to "util-macros-native virtual/libx11",
but the recipe overwrites it, so util-macros-native never gets into the
sysroot. Append, like the other xorg-app recipes do.
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
do_compile fails with:
alias.go:618:21: undefined: json.SkipFunc
alias.go:957:14: undefined: json.DiscardUnknownMembers
Go 1.27 turns the jsonv2 experiment on by default, so the json module
pinned by 1.98.3 builds its alias file against encoding/json/v2 and
aliases symbols that are gone. 1.102.3 pins a newer module.
- Regenerate go module dependencies and license checksums
- Manually verify and complete Unknown license entries
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
USERADD_PARAM is a semicolon separated list of complete useradd
invocations. Only the first entry carried the options, so
malcontent-timerd and malcontent-webd were created with the useradd
defaults: regular UIDs from the user range, /bin/sh as shell and
/home/malcontent-timerd and /home/malcontent-webd created in the
rootfs. Upstream declares all three as system users without a home in
its sysusers.d fragments.
Repeat the options for each user and point the home of the two daemons
at the StateDirectory their units use, so no directory shows up under
/home.
Tested on corei7-64: the rootfs of plasma-image contains only the real
user under /home and all three accounts have system UIDs, /bin/false
and no home directory.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 26.03:
- Improved support for Joliet ISO images and Compound archives.
- Some bugs and vulnerabilities were fixed.
- CVE-2026-58052 : 7-Zip failed to preserve the Mark-of-the-Web
when extracting a crafted archive.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
The LOGIN mechanism is disabled by default in the configure script,
so libsasl2 clients fail with "no mechanism available" as soon as a
peer only offers AUTH LOGIN or the client is configured to use it.
Mail servers still commonly advertise AUTH LOGIN PLAIN and clients like
KMail default to LOGIN for SMTP transports. Debian, Fedora and Gentoo
all ship the plugin.
Add an opt-in PACKAGECONFIG that builds liblogin.so, off by default to
keep the current behaviour.
Tested on corei7-64 with the option enabled, liblogin.so is packaged
into ${libdir}/sasl2 next to the other mechanism plugins.
AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch includes
gdk/gdkx.h unconditionally, which does not exist when gtk+3 is configured
without the X11 backend, as is the case on wayland only distros:
polkitgnomeauthenticator.c:29:10: fatal error: 'gdk/gdkx.h' file not found
The patch already checks GDK_IS_X11_WINDOW() at runtime, but that is not
enough: the macro is declared in gdkx.h too, so the include and the
gdk_x11_get_server_time() call have to be compiled out as well. Guard both
with GDK_WINDOWING_X11 and keep gtk_window_present() as the non-X11 path.
Include gdk/gdk.h explicitly before the guard. GDK_WINDOWING_X11 comes from
gdkconfig.h and no gdk or gtk header is pulled in earlier in that file, so
without it the guard would always be false and X11 builds would silently
lose the fresh timestamp instead of failing to build.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
clang 23 enables -Wunused-template under plain -Wall, and every test in
src/test is compiled with -pedantic -Wall -Wextra -Wshadow -Werror, so the
whole test build fails:
include/tao/pegtl/internal/match_impl.hpp:24:30: error: unused function
template 'match_no_control' [-Werror,-Wunused-template]
match_no_control() is a namespace-scope static function template in a
header, so it has internal linkage in every translation unit. It is only
ever referenced from other templates, so in a TU where none of those get
instantiated it really is unused and clang says so.
Add a patch declaring the two overloads inline instead, which is the
correct linkage for a function template defined in a header.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Release notes:
https://github.com/microsoft/GSL/releases/tag/v5.0.0
Switch to the rel/5.0 branch. New in this release is the gsl::dyn_array
container, so the -dev package gains include/gsl/dyn_array.
Fix the build with clang 22. The tests are compiled with -Weverything
-Werror, so every new clang diagnostic becomes a build failure; the newly
added lifetime-safety suggestions produce:
notnull_tests.cpp:63:19: error: parameter in intra-TU constructor should
be marked [[clang::lifetimebound]]
[-Werror,-Wlifetime-safety-intra-tu-constructor-suggestions]
Signed-off-by: Khem Raj <raj.khem@gmail.com>