summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libburn/0001-Bug-fix-Faulty-signal-handler-prototype-spoiled-comp.patch27
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libburn_1.5.8.bb (renamed from meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb)5
-rw-r--r--meta-filesystems/recipes-support/python3-pyfuse3/python3-pyfuse3_3.4.2.bb16
-rw-r--r--meta-gnome/recipes-gimp/babl/babl_0.1.126.bb (renamed from meta-gnome/recipes-gimp/babl/babl_0.1.124.bb)2
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch47
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch33
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb (renamed from meta-gnome/recipes-gimp/gimp/gimp_3.2.0.bb)7
-rw-r--r--meta-gnome/recipes-gnome/cheese/cheese_44.1.bb5
-rw-r--r--meta-gnome/recipes-gnome/eog/eog_49.3.bb (renamed from meta-gnome/recipes-gnome/eog/eog_49.1.bb)7
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit_50.0.bb2
-rw-r--r--meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.1.bb (renamed from meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.0.bb)2
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.1.bb (renamed from meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.0.bb)2
-rw-r--r--meta-gnome/recipes-gnome/gthumb/gthumb_3.12.10.bb (renamed from meta-gnome/recipes-gnome/gthumb/gthumb_3.12.7.bb)13
-rw-r--r--meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch69
-rw-r--r--meta-gnome/recipes-support/onboard/onboard_1.4.4-1.bb (renamed from meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb)5
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch44
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut_110.bb (renamed from meta-initramfs/recipes-devtools/dracut/dracut_109.bb)6
-rw-r--r--meta-multimedia/recipes-multimedia/fswebcam/fswebcam_20200725.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/libavif/libavif_1.3.0.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libavif/libavif_1.4.1.bb33
-rw-r--r--meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.24.9.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-plugins-alsa-acp-compat.h-Fix-missed-Wdiscarded-.patch28
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.3.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb)3
-rw-r--r--meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.14.bb (renamed from meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.13.bb)2
-rw-r--r--meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb2
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b8.bb (renamed from meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb)16
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/0001-configure-Check-for-string.h-system-header.patch53
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/CVE-2003-0887.patch20
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch34
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch20
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch7
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-don-t-load-legacy-provider-on-enable-fips-workaround.patch62
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0002-don-t-load-legacy-provider-on-enable-fips-workaround.patch104
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch61
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0018-update-license-1.patch175
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0019-update-license-2.patch52
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0020-update-license-3.patch101
-rw-r--r--meta-networking/recipes-connectivity/freeradius/freeradius_3.2.8.bb14
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.10.bb79
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.6.bb (renamed from meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.5.bb)2
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/mosquitto_2.1.2.bb2
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb5
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch19
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch11
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch117
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch50
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch217
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch70
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.23.5.bb (renamed from meta-networking/recipes-connectivity/samba/samba_4.19.9.bb)31
-rw-r--r--meta-networking/recipes-connectivity/tailscale/tailscale-go-mods.inc72
-rw-r--r--meta-networking/recipes-connectivity/tailscale/tailscale-licenses.inc80
-rw-r--r--meta-networking/recipes-connectivity/tailscale/tailscale_1.94.2.bb (renamed from meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb)7
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.1.bb (renamed from meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.0.bb)25
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp_0.8.1.bb (renamed from meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb)4
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap_4.3.5b.bb (renamed from meta-networking/recipes-devtools/libcoap/libcoap_4.3.5a.bb)2
-rw-r--r--meta-networking/recipes-extended/corosync/corosync/CVE-2026-35091.patch47
-rw-r--r--meta-networking/recipes-extended/corosync/corosync/CVE-2026-35092.patch57
-rw-r--r--meta-networking/recipes-extended/corosync/corosync_3.1.10.bb2
-rw-r--r--meta-networking/recipes-protocols/dante/dante_1.4.4.bb2
-rw-r--r--meta-networking/recipes-protocols/mjansson-mdns/files/0001-Bump-cmake_minimum_required-version-to-3.5-94.patch21
-rw-r--r--meta-networking/recipes-protocols/mjansson-mdns/mjansson-mdns_1.4.3.bb14
-rw-r--r--meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.1.bb (renamed from meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.0.bb)6
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow_git.bb2
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.4.3.bb7
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-Fix-build-with-gcc-15.patch34
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-fix-the-hardcoded-legacy-helper-path.patch53
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils_9.34.0.bb (renamed from meta-networking/recipes-support/drbd/drbd-utils_9.30.0.bb)11
-rw-r--r--meta-networking/recipes-support/ettercap/ettercap/CVE-2026-3606.patch48
-rw-r--r--meta-networking/recipes-support/ettercap/ettercap_0.8.4.1.bb (renamed from meta-networking/recipes-support/ettercap/ettercap_0.8.4.bb)3
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb3
-rw-r--r--meta-networking/recipes-support/nbdkit/nbdkit_1.47.7.bb (renamed from meta-networking/recipes-support/nbdkit/nbdkit_1.47.5.bb)2
-rw-r--r--meta-networking/recipes-support/netperf/files/0001-cleanup-modernize-sendfile_tcp_stream-signature-from.patch25
-rw-r--r--meta-networking/recipes-support/netperf/netperf_git.bb1
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-ITS-10011-build-fix-compatibility-with-stricter-C99-.patch102
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-colcomp-sntp-libpkgver-colcomp.c-Convert-K-R-functio.patch32
-rw-r--r--meta-networking/recipes-support/ntp/ntp_4.2.8p18.bb2
-rw-r--r--meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch25
-rw-r--r--meta-networking/recipes-support/ruli/ruli_0.36.bb2
-rw-r--r--meta-networking/recipes-support/strongswan/strongswan_6.0.5.bb2
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch14
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.78.bb (renamed from meta-networking/recipes-support/stunnel/stunnel_5.77.bb)4
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2025-63938.patch43
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-1.patch29
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-2.patch31
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.3.bb (renamed from meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.2.bb)5
-rw-r--r--meta-oe/conf/include/ptest-packagelists-meta-oe.inc4
-rw-r--r--meta-oe/conf/layer.conf2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-do-not-use-Werror.patch8
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.2.1.bb (renamed from meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.1.2.bb)5
-rw-r--r--meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch56
-rw-r--r--meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch71
-rw-r--r--meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb5
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/0001-Added-sepolicy-for-adb-service.patch76
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend5
-rw-r--r--meta-oe/licenses/LicenseRef-EEMBC-AUA100
-rw-r--r--meta-oe/recipes-benchmark/coremark/coremark_git.bb23
-rw-r--r--meta-oe/recipes-benchmark/fio/fio/0001-fix-musl-builds.patch38
-rw-r--r--meta-oe/recipes-benchmark/fio/fio/CVE-2025-10823.patch37
-rw-r--r--meta-oe/recipes-benchmark/fio/fio_3.42.bb (renamed from meta-oe/recipes-benchmark/fio/fio_3.41.bb)7
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3_3.21.bb (renamed from meta-oe/recipes-benchmark/iperf3/iperf3_3.20.bb)6
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_2.24.bb2
-rw-r--r--meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb2
-rw-r--r--meta-oe/recipes-bsp/bolt/bolt_0.9.11.bb (renamed from meta-oe/recipes-bsp/bolt/bolt_0.9.10.bb)4
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5/0001-configure.ac-replace-K5_AC_INIT-with-explicit-AC_INI.patch37
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5_1.22.2.bb1
-rw-r--r--meta-oe/recipes-connectivity/libcppconnman/libcppconnman_1.0.0.bb (renamed from meta-oe/recipes-connectivity/libcppconnman/libcppconnman_git.bb)4
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.9.bb (renamed from meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.8.bb)2
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb5
-rw-r--r--meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.9.bb (renamed from meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.8.bb)2
-rw-r--r--meta-oe/recipes-connectivity/ttyd/ttyd_1.7.7.bb11
-rw-r--r--meta-oe/recipes-core/minizip/minizip/0001-Add-dependency-to-ints.h-in-minizip-Makefile.am.patch25
-rw-r--r--meta-oe/recipes-core/minizip/minizip_1.3.2.bb (renamed from meta-oe/recipes-core/minizip/minizip_1.3.1.bb)8
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb7
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch61
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch434
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch79
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch699
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch156
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch44
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch106
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch99
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch34
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch43
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch41
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch76
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch32
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch515
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch60
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch173
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch49
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch37
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch572
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch52
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch42
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch39
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch57
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch36
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.6.bb76
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_259.5.bb45
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc388
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.8.0.bb (renamed from meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.7.0.bb)2
-rw-r--r--meta-oe/recipes-crypto/botan/botan_3.11.1.bb (renamed from meta-oe/recipes-crypto/botan/botan_3.11.0.bb)5
-rw-r--r--meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.6.bb (renamed from meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.4.bb)2
-rw-r--r--meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.2.bb (renamed from meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.0.bb)5
-rw-r--r--meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb2
-rw-r--r--meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb2
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium/0001-Fix-compilation-with-GCC-on-aarch64.patch49
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium_1.0.22.bb (renamed from meta-oe/recipes-crypto/libsodium/libsodium_1.0.21.bb)6
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_10.10.1.bb2
-rw-r--r--meta-oe/recipes-devtools/b4/b4_0.15.2.bb (renamed from meta-oe/recipes-devtools/b4/b4_0.15.1.bb)2
-rw-r--r--meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb2
-rw-r--r--meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch44
-rw-r--r--meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch53
-rw-r--r--meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch104
-rw-r--r--meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch49
-rw-r--r--meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch31
-rw-r--r--meta-oe/recipes-devtools/jq/jq_1.8.1.bb19
-rw-r--r--meta-oe/recipes-devtools/jsoncpp/files/run-ptest4
-rw-r--r--meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb34
-rw-r--r--meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch34
-rw-r--r--meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb3
-rw-r--r--meta-oe/recipes-devtools/lshw/lshw_02.20.bb4
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch86
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch27
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch34
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch86
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace_0.8.1.bb (renamed from meta-oe/recipes-devtools/ltrace/ltrace_git.bb)11
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_5.0.1.bb (renamed from meta-oe/recipes-devtools/mpich/mpich_5.0.0.bb)2
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb8
-rw-r--r--meta-oe/recipes-devtools/php/php_8.5.5.bb (renamed from meta-oe/recipes-devtools/php/php_8.5.4.bb)2
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch1446
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.2.bb (renamed from meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.1.bb)3
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb1
-rw-r--r--meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb2
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists.txt-make-CONFIGURATION_FILES_DIR-aligned.patch42
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-daemon.c-fix-wrong-len.patch37
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch15
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-warnings-Fix-clang-generated-warnings.patch1003
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/char_conversion.patch27
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb6
-rw-r--r--meta-oe/recipes-extended/enscript/enscript_1.6.6.bb2
-rw-r--r--meta-oe/recipes-extended/figlet/figlet_git.bb1
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak_1.17.6.bb (renamed from meta-oe/recipes-extended/flatpak/flatpak_1.17.3.bb)5
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch12
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch8
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0004-chunkio-Link-with-fts-library-with-musl.patch3
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit_5.0.2.bb (renamed from meta-oe/recipes-extended/fluentbit/fluentbit_4.2.3.1.bb)2
-rw-r--r--meta-oe/recipes-extended/highway/highway_1.3.0.bb5
-rwxr-xr-xmeta-oe/recipes-extended/libcbor/libcbor_0.14.0.bb (renamed from meta-oe/recipes-extended/libcbor/libcbor_0.13.0.bb)2
-rw-r--r--meta-oe/recipes-extended/lprng/lprng_3.9.0.bb1
-rw-r--r--meta-oe/recipes-extended/magic-enum/magic-enum_0.9.7.bb3
-rw-r--r--meta-oe/recipes-extended/minio/minio_git.bb2
-rw-r--r--meta-oe/recipes-extended/networking/mstpd_0.2.0.bb (renamed from meta-oe/recipes-extended/networking/mstpd_0.1.1.bb)2
-rw-r--r--meta-oe/recipes-extended/ostree/ostree/0001-trivial-httpd-Fix-const-correctness-of-slash-pointer.patch29
-rw-r--r--meta-oe/recipes-extended/ostree/ostree_2026.1.bb (renamed from meta-oe/recipes-extended/ostree/ostree_2025.7.bb)3
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.2512.0.bb1
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock_5.1.0.bb (renamed from meta-oe/recipes-extended/sanlock/sanlock_4.2.0.bb)14
-rw-r--r--meta-oe/recipes-extended/zsync/zsync-curl_git.bb2
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm4_4.20.0.bb4
-rw-r--r--meta-oe/recipes-graphics/feh/feh_3.12.1.bb (renamed from meta-oe/recipes-graphics/feh/feh_3.11.3.bb)2
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch50
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch8
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch8
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch39
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.32.bb (renamed from meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb)4
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-libgphoto2-fix-const-correctness-for-c23-builds.patch84
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40333.patch150
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40334.patch37
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40335.patch43
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40336.patch44
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40338.patch34
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40339.patch41
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40340.patch40
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40341.patch69
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.33.bb11
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz_14.1.5.bb (renamed from meta-oe/recipes-graphics/graphviz/graphviz_14.1.4.bb)2
-rw-r--r--meta-oe/recipes-graphics/libraqm/libraqm_0.10.5.bb25
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.10.bb (renamed from meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.8.bb)2
-rw-r--r--meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.2.bb (renamed from meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.0.bb)4
-rw-r--r--meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.4.bb (renamed from meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.2.bb)2
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2026-6192.patch35
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.4.bb1
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm_408.bb (renamed from meta-oe/recipes-graphics/xorg-app/xterm_407.bb)2
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb23
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-mm-pass-down-full-CC-and-CFLAGS-to-check_c.patch76
-rw-r--r--meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb2
-rw-r--r--meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb2
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb1
-rw-r--r--meta-oe/recipes-navigation/geoclue/geoclue_2.8.1.bb (renamed from meta-oe/recipes-navigation/geoclue/geoclue_2.8.0.bb)4
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-style-convert-K-R-function-definitions-to-ANSI-C-sty.patch301
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb1
-rw-r--r--meta-oe/recipes-security/audit/audit/0001-m4-update-ax_prog_cc_for_build.m4-to-latest.patch196
-rw-r--r--meta-oe/recipes-security/audit/audit_4.1.4.bb1
-rw-r--r--meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb2
-rw-r--r--meta-oe/recipes-security/spdm-emu/spdm-emu_git.bb2
-rw-r--r--meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_26.26.0404682.bb (renamed from meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_git.bb)6
-rw-r--r--meta-oe/recipes-support/atop/atop_2.12.1.bb13
-rw-r--r--meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.4.bb (renamed from meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.3.bb)5
-rw-r--r--meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb14
-rw-r--r--meta-oe/recipes-support/composefs/composefs/0001-mkcomposefs-use-const-char-for-memchr-return-values.patch45
-rw-r--r--meta-oe/recipes-support/composefs/composefs_1.0.8.bb5
-rw-r--r--meta-oe/recipes-support/crow/crow_1.3.2.bb20
-rw-r--r--meta-oe/recipes-support/enca/enca_1.19.bb2
-rw-r--r--meta-oe/recipes-support/fastfetch/fastfetch_2.61.0.bb1
-rw-r--r--meta-oe/recipes-support/freeipmi/freeipmi_1.6.17.bb1
-rw-r--r--meta-oe/recipes-support/gd/gd_2.3.3.bb25
-rw-r--r--meta-oe/recipes-support/glaze/glaze_7.3.3.bb (renamed from meta-oe/recipes-support/glaze/glaze_7.2.2.bb)2
-rw-r--r--meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.1.bb (renamed from meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.0.bb)2
-rw-r--r--meta-oe/recipes-support/htop/files/0001-configure.ac-Remove-usr-include-libnl3.patch49
-rw-r--r--meta-oe/recipes-support/htop/htop_3.5.0.bb (renamed from meta-oe/recipes-support/htop/htop_3.4.1.bb)6
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-19.bb (renamed from meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-18.bb)2
-rw-r--r--meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_1.patch28
-rw-r--r--meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_2.patch34
-rw-r--r--meta-oe/recipes-support/lcms/lcms_2.18.bb5
-rw-r--r--meta-oe/recipes-support/libcanberra/libcanberra_0.30-20.bb (renamed from meta-oe/recipes-support/libcanberra/libcanberra_0.30-19.bb)3
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch83
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb (renamed from meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb)3
-rw-r--r--meta-oe/recipes-support/liboauth2/liboauth2/0001-build-guard-coverage-linker-flag-behind-CODE_COVERAG.patch33
-rw-r--r--meta-oe/recipes-support/liboauth2/liboauth2_2.2.0.bb3
-rw-r--r--meta-oe/recipes-support/libraw/libraw_0.21.4.bb10
-rw-r--r--meta-oe/recipes-support/libraw/libraw_0.22.1.bb17
-rw-r--r--meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb3
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-14523.patch52
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-1.patch229
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-2.patch131
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1467.patch151
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1539.patch31
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1760.patch153
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1761.patch36
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1801.patch126
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2369.patch33
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2443.patch135
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb10
-rw-r--r--meta-oe/recipes-support/libtar/files/0001-compat-convert-K-R-function-definitions-to-ANSI-C-pr.patch62
-rw-r--r--meta-oe/recipes-support/libtar/libtar_1.2.20.bb1
-rw-r--r--meta-oe/recipes-support/libvarlink/libvarlink/0001-transport-tool-use-const-for-strchr-return-pointers.patch96
-rw-r--r--meta-oe/recipes-support/libvarlink/libvarlink_24.0.1.bb19
-rw-r--r--meta-oe/recipes-support/log4c/log4c/0001-sd-malloc-convert-K-R-function-declarations-to-ANSI-.patch92
-rw-r--r--meta-oe/recipes-support/log4c/log4c_1.2.4.bb1
-rw-r--r--meta-oe/recipes-support/multipath-tools/multipath-tools_0.12.2.bb1
-rw-r--r--meta-oe/recipes-support/nano/nano_9.0.bb (renamed from meta-oe/recipes-support/nano/nano_8.7.1.bb)2
-rw-r--r--meta-oe/recipes-support/openct/openct/0001-Fix-incompatible-pointer-type-error-with-gcc-option.patch65
-rw-r--r--meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch31
-rw-r--r--meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch31
-rw-r--r--meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch35
-rw-r--r--meta-oe/recipes-support/openct/openct/openct.init89
-rw-r--r--meta-oe/recipes-support/openct/openct/openct.service13
-rw-r--r--meta-oe/recipes-support/openct/openct/openct.sysconfig5
-rw-r--r--meta-oe/recipes-support/openct/openct_0.6.20.bb91
-rw-r--r--meta-oe/recipes-support/opensc/opensc_0.27.1.bb (renamed from meta-oe/recipes-support/opensc/opensc_0.26.1.bb)4
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb1
-rw-r--r--meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.2.bb (renamed from meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.1.bb)2
-rw-r--r--meta-oe/recipes-support/poco/poco/0003-quill-rdtsc-fallback-for-32-bit-powerpc.patch35
-rw-r--r--meta-oe/recipes-support/poco/poco_1.15.2.bb (renamed from meta-oe/recipes-support/poco/poco_1.15.1.bb)11
-rw-r--r--meta-oe/recipes-support/systemd-netlogd/systemd-netlogd/0001-Fix-const-correctness-for-pointer-variables-to-refer.patch60
-rw-r--r--meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.5.bb (renamed from meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.4.bb)6
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2022.3.0.bb1
-rw-r--r--meta-oe/recipes-support/upower/upower_1.91.2.bb (renamed from meta-oe/recipes-support/upower/upower_1.91.1.bb)2
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.6.bb (renamed from meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb)4
-rw-r--r--meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy/99f9b9f68664166badfdfaa7e69efcedf750f1e3.patch33
-rw-r--r--meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.7.bb (renamed from meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.6.bb)7
-rw-r--r--meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.4.bb (renamed from meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.3.bb)12
-rw-r--r--meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.20.bb (renamed from meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.19.bb)6
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp_0.10.6.bb (renamed from meta-oe/recipes-support/xrdp/xrdp_0.10.5.bb)11
-rw-r--r--meta-oe/recipes-test/catch2/catch2_3.14.0.bb (renamed from meta-oe/recipes-test/catch2/catch2_3.13.0.bb)2
-rw-r--r--meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-aiofiles_25.1.0.bb (renamed from meta-python/recipes-devtools/python/python3-aiofiles_24.1.0.bb)6
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp_3.13.5.bb (renamed from meta-python/recipes-devtools/python/python3-aiohttp_3.13.4.bb)7
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncinotify_4.4.2.bb (renamed from meta-python/recipes-devtools/python/python3-asyncinotify_4.4.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-bitarray_3.8.1.bb (renamed from meta-python/recipes-devtools/python/python3-bitarray_3.8.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyprojects-Bump-setuptools-check-to-be-82.x.patch25
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.7.bb (renamed from meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.6.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0001-Let-override-CC.patch21
-rw-r--r--meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0002-Disable-Werror.patch30
-rw-r--r--meta-python/recipes-devtools/python/python3-ckzg_2.1.7.bb (renamed from meta-python/recipes-devtools/python/python3-ckzg_2.1.1.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-cmake_4.3.1.bb (renamed from meta-python/recipes-devtools/python/python3-cmake_4.3.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-configargparse_1.7.5.bb (renamed from meta-python/recipes-devtools/python/python3-configargparse_1.7.3.bb)6
-rw-r--r--meta-python/recipes-devtools/python/python3-croniter_6.2.2.bb (renamed from meta-python/recipes-devtools/python/python3-croniter_6.0.0.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_9.1.0.bb (renamed from meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_6.2.0.bb)5
-rw-r--r--meta-python/recipes-devtools/python/python3-django_5.2.13.bb (renamed from meta-python/recipes-devtools/python/python3-django_5.2.12.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-django_6.0.4.bb (renamed from meta-python/recipes-devtools/python/python3-django_6.0.3.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-djangorestframework_3.17.1.bb (renamed from meta-python/recipes-devtools/python/python3-djangorestframework_3.16.1.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-eventlet_0.41.0.bb (renamed from meta-python/recipes-devtools/python/python3-eventlet_0.40.4.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-faker_40.13.0.bb (renamed from meta-python/recipes-devtools/python/python3-faker_40.12.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-fastapi_0.135.3.bb (renamed from meta-python/recipes-devtools/python/python3-fastapi_0.135.2.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent_26.4.0.bb (renamed from meta-python/recipes-devtools/python/python3-gevent_25.9.1.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-git-pw_2.8.0.bb (renamed from meta-python/recipes-devtools/python/python3-git-pw_2.7.1.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.1.bb (renamed from meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth_2.49.2.bb (renamed from meta-python/recipes-devtools/python/python3-google-auth_2.48.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod_2.4.2.bb (renamed from meta-python/recipes-devtools/python/python3-gpiod_2.4.1.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet_3.4.0.bb (renamed from meta-python/recipes-devtools/python/python3-greenlet_3.3.2.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio_1.78.0.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-huey_3.0.0.bb (renamed from meta-python/recipes-devtools/python/python3-huey_2.6.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-icecream_2.2.0.bb (renamed from meta-python/recipes-devtools/python/python3-icecream_2.1.10.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-icu_2.16.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-imgtool_2.4.0.bb (renamed from meta-python/recipes-devtools/python/python3-imgtool_2.3.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.6.bb (renamed from meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.5.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.4.bb (renamed from meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.2.bb)9
-rw-r--r--meta-python/recipes-devtools/python/python3-marshmallow_4.3.0.bb (renamed from meta-python/recipes-devtools/python/python3-marshmallow_4.2.3.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-moteus_0.3.100.bb (renamed from meta-python/recipes-devtools/python/python3-moteus_0.3.99.bb)6
-rw-r--r--meta-python/recipes-devtools/python/python3-orjson-crates.inc80
-rw-r--r--meta-python/recipes-devtools/python/python3-orjson_3.11.8.bb (renamed from meta-python/recipes-devtools/python/python3-orjson_3.11.7.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-pandas_3.0.2.bb (renamed from meta-python/recipes-devtools/python/python3-pandas_3.0.1.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow_12.2.0.bb (renamed from meta-python/recipes-devtools/python/python3-pillow_12.1.1.bb)6
-rw-r--r--meta-python/recipes-devtools/python/python3-platformdirs_4.9.6.bb (renamed from meta-python/recipes-devtools/python/python3-platformdirs_4.9.4.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-protobuf_6.33.6.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-pyais_3.0.0.bb (renamed from meta-python/recipes-devtools/python/python3-pyais_2.20.1.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-pyatspi_2.58.2.bb (renamed from meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb)10
-rw-r--r--meta-python/recipes-devtools/python/python3-pymodbus_3.13.0.bb (renamed from meta-python/recipes-devtools/python/python3-pymodbus_3.12.1.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2_0.9.5.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-codspeed_4.3.0.bb (renamed from meta-python/recipes-devtools/python/python3-pytest-codspeed_3.0.0.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.2.bb (renamed from meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.0.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-runner/0001-Not-use-functions-from-pkg_resources-any-more.patch77
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-runner_6.0.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-python-multipart_0.0.26.bb (renamed from meta-python/recipes-devtools/python/python3-python-multipart_0.0.22.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-regex_2026.4.4.bb (renamed from meta-python/recipes-devtools/python/python3-regex_2026.3.32.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-sentry-sdk_2.57.0.bb (renamed from meta-python/recipes-devtools/python/python3-sentry-sdk_2.56.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-setuptools-git-versioning_3.0.1.bb (renamed from meta-python/recipes-devtools/python/python3-setuptools-git-versioning_2.1.0.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus2_0.6.1.bb (renamed from meta-python/recipes-devtools/python/python3-smbus2_0.6.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-snagboot_2.6.1.bb (renamed from meta-python/recipes-devtools/python/python3-snagboot_2.6.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-soundcard_0.4.6.bb (renamed from meta-python/recipes-devtools/python/python3-soundcard_0.4.5.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve_2.8.3.bb (renamed from meta-python/recipes-devtools/python/python3-soupsieve_2.8.2.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.49.bb (renamed from meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.48.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-tox_4.52.1.bb (renamed from meta-python/recipes-devtools/python/python3-tox_4.49.0.bb)3
-rw-r--r--meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260408.bb (renamed from meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260130.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-tzdata_2026.1.bb (renamed from meta-python/recipes-devtools/python/python3-tzdata_2025.3.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-uvicorn_0.44.0.bb (renamed from meta-python/recipes-devtools/python/python3-uvicorn_0.42.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-virtualenv_21.2.1.bb (renamed from meta-python/recipes-devtools/python/python3-virtualenv_21.2.0.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-werkzeug_3.1.8.bb (renamed from meta-python/recipes-devtools/python/python3-werkzeug_3.1.7.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch3845
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi_1.7.6.bb (renamed from meta-python/recipes-devtools/python/python3-yappi_1.7.3.bb)3
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeinterface_8.3.bb (renamed from meta-python/recipes-devtools/python/python3-zopeinterface_8.2.bb)2
-rw-r--r--meta-python/recipes-devtools/python3-mlcommons-loadgen/files/source-date-epoch.patch43
-rw-r--r--meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_6.0.14.bb (renamed from meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_5.1.2.bb)2
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch35
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet_3.13.2.bb (renamed from meta-python/recipes-extended/python-blivet/python3-blivet_3.12.1.bb)17
-rw-r--r--meta-python/recipes-extended/python-pytesseract/pytesseract_0.3.13.bb2
-rw-r--r--meta-python/recipes-extended/python-rich/python3-rich_15.0.0.bb (renamed from meta-python/recipes-extended/python-rich/python3-rich_14.3.3.bb)2
-rw-r--r--meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.2.bb (renamed from meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.1.bb)2
-rw-r--r--meta-webserver/recipes-httpd/hiawatha/hiawatha_12.1.bb (renamed from meta-webserver/recipes-httpd/hiawatha/hiawatha_12.0.bb)2
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/0001-server-http-fix-malformed-request-crash-paths.patch160
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/0002-server-scheduler-guard-protocol-close-callback.patch51
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/0003-server-parser-harden-boundary-checks.patch108
-rw-r--r--meta-webserver/recipes-httpd/monkey/monkey_1.8.7.bb (renamed from meta-webserver/recipes-httpd/monkey/monkey_1.8.4.bb)14
-rw-r--r--meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb2
-rw-r--r--meta-webserver/recipes-webadmin/webmin/webmin_2.630.bb (renamed from meta-webserver/recipes-webadmin/webmin/webmin_2.621.bb)2
-rw-r--r--meta-xfce/classes/thunar-plugin.bbclass4
-rw-r--r--meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.20.2.bb2
-rw-r--r--meta-xfce/recipes-multimedia/parole/files/0001-Makefile.am-fix-compile-failure.patch31
-rw-r--r--meta-xfce/recipes-multimedia/parole/parole_4.18.2.bb3
-rw-r--r--meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.5.1.bb2
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.21.7.bb9
-rw-r--r--meta-xfce/recipes-xfce/thunar/files/0001-Properly-guard-gdkx.h-include.patch37
-rw-r--r--meta-xfce/recipes-xfce/thunar/thunar_4.21.5.bb8
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb12
-rw-r--r--meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.20.1.bb1
401 files changed, 6955 insertions, 12071 deletions
diff --git a/meta-filesystems/recipes-filesystems/burnia/libburn/0001-Bug-fix-Faulty-signal-handler-prototype-spoiled-comp.patch b/meta-filesystems/recipes-filesystems/burnia/libburn/0001-Bug-fix-Faulty-signal-handler-prototype-spoiled-comp.patch
deleted file mode 100644
index 6061352cb7..0000000000
--- a/meta-filesystems/recipes-filesystems/burnia/libburn/0001-Bug-fix-Faulty-signal-handler-prototype-spoiled-comp.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From d537f9dd35282df834a311ead5f113af67d223b3 Mon Sep 17 00:00:00 2001
2From: Thomas Schmitt <scdbackup@gmx.net>
3Date: Tue, 26 Nov 2024 23:02:03 +0100
4Subject: [PATCH] Bug fix: Faulty signal handler prototype spoiled compilation
5 under C23
6
7Upstream-Status: Backport [https://dev.lovelyhq.com/libburnia/libburn/commit/d537f9dd35282df834a311ead5f113af67d223b3]
8---
9 test/poll.c | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/test/poll.c b/test/poll.c
13index 660f384..cd5ff90 100644
14--- a/test/poll.c
15+++ b/test/poll.c
16@@ -14,7 +14,7 @@ static struct burn_drive_info *drives;
17 static unsigned int n_drives;
18 int NEXT;
19
20-static void catch_int ()
21+static void catch_int (int signum)
22 {
23 NEXT = 1;
24 }
25--
262.34.1
27
diff --git a/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb b/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.8.bb
index e84a60a543..1e84d12a03 100644
--- a/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
+++ b/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.8.bb
@@ -5,10 +5,9 @@ LICENSE = "GPL-2.0-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \ 5LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
6 file://COPYRIGHT;md5=a91b9b862895b64e68e5b321873c9111" 6 file://COPYRIGHT;md5=a91b9b862895b64e68e5b321873c9111"
7 7
8SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz \ 8SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
9 file://0001-Bug-fix-Faulty-signal-handler-prototype-spoiled-comp.patch"
10 9
11SRC_URI[sha256sum] = "7295491b4be5eeac5e7a3fb2067e236e2955ffdc6bbd45f546466edee321644b" 10SRC_URI[sha256sum] = "8e24dd99f5b7cafbecf0116d61b619ee89098e20263e6f47c793aaf4a98d6473"
12 11
13inherit autotools pkgconfig lib_package 12inherit autotools pkgconfig lib_package
14 13
diff --git a/meta-filesystems/recipes-support/python3-pyfuse3/python3-pyfuse3_3.4.2.bb b/meta-filesystems/recipes-support/python3-pyfuse3/python3-pyfuse3_3.4.2.bb
new file mode 100644
index 0000000000..8ef6780788
--- /dev/null
+++ b/meta-filesystems/recipes-support/python3-pyfuse3/python3-pyfuse3_3.4.2.bb
@@ -0,0 +1,16 @@
1SUMMARY = "Python bindings for libfuse3."
2
3LICENSE = "LGPL-2.1-or-later"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=622e3d340933e3857b7561f37a2f412b"
5
6inherit pypi python_setuptools_build_meta python_pep517 cython pkgconfig
7
8SRC_URI[sha256sum] = "0a59031969c4ba51a5ec1b67f3c5c24f641a6a3f8119a86edad56debcb9084d9"
9
10DEPENDS = " \
11 fuse3 \
12 python3-setuptools-native \
13 python3-setuptools-scm-native \
14"
15
16RDEPENDS:${PN} = "python3-trio"
diff --git a/meta-gnome/recipes-gimp/babl/babl_0.1.124.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.126.bb
index b1e9d96b79..10e2c482a5 100644
--- a/meta-gnome/recipes-gimp/babl/babl_0.1.124.bb
+++ b/meta-gnome/recipes-gimp/babl/babl_0.1.126.bb
@@ -10,7 +10,7 @@ inherit setuptools3 gnomebase gobject-introspection vala
10DEPENDS += "lcms" 10DEPENDS += "lcms"
11 11
12SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz" 12SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
13SRC_URI[sha256sum] = "1b0d544ab6f409f2b1b5f677226272d1e8c6d373f2f453ee870bfc7e5dd4f1b1" 13SRC_URI[sha256sum] = "3f090f4b2a61fecf7c8dc60a5804bbc77cefd8d778af2ded059f0e367a52930e"
14 14
15FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}" 15FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}"
16 16
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch b/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch
new file mode 100644
index 0000000000..4eb6f9553d
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch
@@ -0,0 +1,47 @@
1From d00c3c9fb8267f53cf730b8441a7d7f904af5215 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Mon, 20 Apr 2026 09:14:50 +0200
4Subject: [PATCH] meson.build: dont check for python3-pygobject gexiv2 support
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9We only provide support for gexiv2 in python3-pygobject for the target, but
10unfortunately this feature is being requested for the native version, which
11would require gexiv2-native to be compilable — something I consider quite
12hard to achieve and maybe also not desirable at all.
13
14Remove the test for this feature, since we know that our target provides it.
15
16Signed-off-by: Markus Volk <f_l_k@t-online.de>
17
18Upstream-Status: Inappropriate [oe-specific]
19---
20 meson.build | 4 ++--
21 1 file changed, 2 insertions(+), 2 deletions(-)
22
23diff --git a/meson.build b/meson.build
24index 4f6f8ce9a4..4509cd2c39 100644
25--- a/meson.build
26+++ b/meson.build
27@@ -1224,7 +1224,7 @@ foreach py : py_candidates
28 '''except (ImportError):''',
29 ''' sys.exit(1)''']),
30 check: false).returncode() == 0
31- if pygobject_found.returncode() == 0 and pygobject_found.stdout().strip().version_compare(pygobject_minver) and pygobject_gexiv2_found
32+ if pygobject_found.returncode() == 0 and pygobject_found.stdout().strip().version_compare(pygobject_minver)
33 break
34 endif
35 endif
36@@ -1235,7 +1235,7 @@ if not python.found() or not python.language_version().version_compare(python3_m
37 endif
38 message('Found Python @0@'.format(python.language_version()))
39
40-if pygobject_found.returncode() != 0 or not pygobject_found.stdout().strip().version_compare(pygobject_minver) or not pygobject_gexiv2_found
41+if pygobject_found.returncode() != 0 or not pygobject_found.stdout().strip().version_compare(pygobject_minver)
42 error('No suitable PyGObject (with GExiv2 submodule) found. Minimum supported version: @0@'.format(pygobject_minver))
43 endif
44 message('Found PyGObject: @0@'.format(pygobject_found.stdout().strip()))
45--
462.53.0
47
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch b/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch
new file mode 100644
index 0000000000..91e7f92336
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch
@@ -0,0 +1,33 @@
1From 47948d14777438ca5e8619a1f9293db28af88305 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Mon, 20 Apr 2026 09:24:38 +0200
4Subject: [PATCH] docs/meson.build: disable gimprc man build
5
6This would require a native variant of gimp-console
7
8Signed-off-by: Markus Volk <f_l_k@t-online.de>
9
10Upstream-Status: Inappropriate [oe-specific]
11---
12 docs/meson.build | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/docs/meson.build b/docs/meson.build
16index 70b57b52ef..d36e47dbb5 100644
17--- a/docs/meson.build
18+++ b/docs/meson.build
19@@ -16,9 +16,9 @@ gimprc_man = custom_target('gimprc-' + gimp_app_version + '.5',
20 command: [ gimp_exe, '--no-interface',
21 '--dump-gimprc-manpage' ],
22 capture: true,
23- build_by_default: true,
24+ build_by_default: false,
25 env: gimp_run_env,
26- install: true,
27+ install: false,
28 install_dir: get_option('mandir') / 'man5')
29
30 gimptool_man = configure_file(input : 'gimptool.1.in',
31--
322.53.0
33
diff --git a/meta-gnome/recipes-gimp/gimp/gimp_3.2.0.bb b/meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb
index 1b092eb7e5..82c68346eb 100644
--- a/meta-gnome/recipes-gimp/gimp/gimp_3.2.0.bb
+++ b/meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb
@@ -37,6 +37,7 @@ DEPENDS = " \
37 poppler \ 37 poppler \
38 poppler-data \ 38 poppler-data \
39 python3-pygobject-native \ 39 python3-pygobject-native \
40 python3-pycairo-native \
40 tiff \ 41 tiff \
41 xz \ 42 xz \
42 zlib \ 43 zlib \
@@ -62,8 +63,10 @@ SRC_URI = "https://download.gimp.org/gimp/v3.2/${BP}.tar.xz \
62 file://0001-meson.build-dont-check-for-lgi.patch \ 63 file://0001-meson.build-dont-check-for-lgi.patch \
63 file://0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch \ 64 file://0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch \
64 file://0003-meson.build-reproducibility-fix.patch \ 65 file://0003-meson.build-reproducibility-fix.patch \
66 file://0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch \
67 file://0005-docs-meson.build-disable-gimprc-man-build.patch \
65" 68"
66SRC_URI[sha256sum] = "2618391416e51be3c693df9ef90e3860ed72ab3d36363ea1f196e30b75b2e083" 69SRC_URI[sha256sum] = "7312bc53e9c6d2d0056ca7b93f1c6b98707946dd934f714c21b8746ecb601588"
67 70
68PACKAGECONFIG[aa] = "-Daa=enabled,-Daa=disabled,aalib" 71PACKAGECONFIG[aa] = "-Daa=enabled,-Daa=disabled,aalib"
69PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" 72PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
@@ -132,7 +135,7 @@ do_install:prepend() {
132 135
133FILES:${PN} += "${datadir}/metainfo" 136FILES:${PN} += "${datadir}/metainfo"
134 137
135RDEPENDS:${PN} = "mypaint-brushes glib-networking python3-pygobject" 138RDEPENDS:${PN} = "mypaint-brushes glib-networking python3-pygobject python3-pycairo"
136 139
137CVE_STATUS[CVE-2007-3741] = "not-applicable-platform: This only applies for Mandriva Linux" 140CVE_STATUS[CVE-2007-3741] = "not-applicable-platform: This only applies for Mandriva Linux"
138CVE_STATUS[CVE-2025-8672] = "not-applicable-config: the vulnerability only affects MacOS" 141CVE_STATUS[CVE-2025-8672] = "not-applicable-config: the vulnerability only affects MacOS"
diff --git a/meta-gnome/recipes-gnome/cheese/cheese_44.1.bb b/meta-gnome/recipes-gnome/cheese/cheese_44.1.bb
index 8e78162991..62073ebd13 100644
--- a/meta-gnome/recipes-gnome/cheese/cheese_44.1.bb
+++ b/meta-gnome/recipes-gnome/cheese/cheese_44.1.bb
@@ -5,7 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
5 5
6inherit gnomebase gobject-introspection vala itstool gtk-icon-cache gsettings gnome-help gtk-doc 6inherit gnomebase gobject-introspection vala itstool gtk-icon-cache gsettings gnome-help gtk-doc
7 7
8REQUIRED_DISTRO_FEATURES = "opengl" 8# x11 is needed due to libcanberra dependency which does not compile
9# gtk3 support with out it and cheese look for
10# | aarch64-yoe-linux-ld.lld: error: unable to find library -lcanberra-gtk3
11REQUIRED_DISTRO_FEATURES = "opengl x11"
9 12
10SRC_URI += "file://0001-libcheese-Add-GtkWidget-cast-to-avoid-an-incompatibl.patch" 13SRC_URI += "file://0001-libcheese-Add-GtkWidget-cast-to-avoid-an-incompatibl.patch"
11 14
diff --git a/meta-gnome/recipes-gnome/eog/eog_49.1.bb b/meta-gnome/recipes-gnome/eog/eog_49.3.bb
index 202d68700a..d67c3733af 100644
--- a/meta-gnome/recipes-gnome/eog/eog_49.1.bb
+++ b/meta-gnome/recipes-gnome/eog/eog_49.3.bb
@@ -13,7 +13,6 @@ DEPENDS = " \
13 libpeas-1 \ 13 libpeas-1 \
14 libportal \ 14 libportal \
15 libexif \ 15 libexif \
16 lcms \
17" 16"
18 17
19 18
@@ -22,7 +21,11 @@ inherit gnomebase pkgconfig gsettings gobject-introspection gettext mime-xdg fea
22# FIXME: whilst eog uses libpeas <2, g-i is needed. This can be removed when libpeas2 is used. 21# FIXME: whilst eog uses libpeas <2, g-i is needed. This can be removed when libpeas2 is used.
23REQUIRED_DISTRO_FEATURES = "opengl gobject-introspection-data" 22REQUIRED_DISTRO_FEATURES = "opengl gobject-introspection-data"
24 23
25SRC_URI[archive.sha256sum] = "fadd12e14ba9cd2be6989dfbcef40001645b63440ceed8e04867b07587b066dc" 24SRC_URI[archive.sha256sum] = "6b4e69c7a8086ae85d556ca4a24daa665b5622c4097e1ee59564bff4cc963124"
25
26PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','cms', '', d)}"
27
28PACKAGECONFIG[cms] = "-Dcms=true,-Dcms=false,lcms"
26 29
27GTKDOC_MESON_OPTION = "gtk_doc" 30GTKDOC_MESON_OPTION = "gtk_doc"
28 31
diff --git a/meta-gnome/recipes-gnome/gedit/gedit_50.0.bb b/meta-gnome/recipes-gnome/gedit/gedit_50.0.bb
index 92685f085a..d15ab8665d 100644
--- a/meta-gnome/recipes-gnome/gedit/gedit_50.0.bb
+++ b/meta-gnome/recipes-gnome/gedit/gedit_50.0.bb
@@ -23,7 +23,7 @@ inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc get
23def gnome_verdir(v): 23def gnome_verdir(v):
24 return oe.utils.trim_version(v, 1) 24 return oe.utils.trim_version(v, 1)
25 25
26SRC_URI = "git://gitlab.gnome.org/World/gedit/gedit.git;protocol=https;branch=master;tag=${PV}" 26SRC_URI = "gitsm://gitlab.gnome.org/World/gedit/gedit.git;protocol=https;branch=master;tag=${PV}"
27SRCREV = "25d0bf0c3c40b0866fc23ec875f0af6c67f728ef" 27SRCREV = "25d0bf0c3c40b0866fc23ec875f0af6c67f728ef"
28 28
29# gobject-introspection is mandatory and cannot be configured 29# gobject-introspection is mandatory and cannot be configured
diff --git a/meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.0.bb b/meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.1.bb
index 05c30a1e35..87006cc564 100644
--- a/meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.0.bb
+++ b/meta-gnome/recipes-gnome/gedit/libgedit-gfls_0.4.1.bb
@@ -8,7 +8,7 @@ DEPENDS = "glib-2.0 gtk+3"
8inherit gobject-introspection features_check gtk-doc gnomebase 8inherit gobject-introspection features_check gtk-doc gnomebase
9 9
10SRC_URI = "git://gitlab.gnome.org/World/gedit/libgedit-gfls.git;branch=main;protocol=https;tag=${PV}" 10SRC_URI = "git://gitlab.gnome.org/World/gedit/libgedit-gfls.git;branch=main;protocol=https;tag=${PV}"
11SRCREV = "b292896adfb1c371aa8db0819f4754ff3bf4a848" 11SRCREV = "ce4b836dfda4ea3f594b9ded7b60c5cb51ccbc87"
12 12
13ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 13ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
14 14
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.0.bb b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.1.bb
index 62f67460b0..6b80df7781 100644
--- a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.0.bb
+++ b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.58.1.bb
@@ -8,7 +8,7 @@ REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'goabackend',
8 8
9DEPENDS += "gdk-pixbuf dbus glib-2.0 gcr keyutils" 9DEPENDS += "gdk-pixbuf dbus glib-2.0 gcr keyutils"
10 10
11SRC_URI[archive.sha256sum] = "344d4dff9149a1adc4539417193e1eccc2f76ef40ac24e104ccf58072be55999" 11SRC_URI[archive.sha256sum] = "9ec1900cc51409c2067c07c828c10be06fe3bf68d2999bb72d7d5ed325ed9bbc"
12 12
13PACKAGECONFIG ?= "goabackend kerberos owncloud google" 13PACKAGECONFIG ?= "goabackend kerberos owncloud google"
14 14
diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.7.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.10.bb
index 8e82b86285..58aefbff2e 100644
--- a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.7.bb
+++ b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.10.bb
@@ -6,6 +6,8 @@ DEPENDS = " \
6 glib-2.0 \ 6 glib-2.0 \
7 glib-2.0-native \ 7 glib-2.0-native \
8 bison-native \ 8 bison-native \
9 desktop-file-utils-native \
10 exiv2 \
9 gtk+3 \ 11 gtk+3 \
10 gsettings-desktop-schemas \ 12 gsettings-desktop-schemas \
11 zlib \ 13 zlib \
@@ -13,21 +15,16 @@ DEPENDS = " \
13 json-glib \ 15 json-glib \
14" 16"
15 17
16PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'colord', '', d)} exiv2 gstreamer lcms libjxl libraw librsvg libwebp" 18PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'colord', '', d)} gstreamer lcms libjxl libraw librsvg libwebp"
17PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,gstreamer1.0 gstreamer1.0-plugins-base" 19PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,gstreamer1.0 gstreamer1.0-plugins-base"
18PACKAGECONFIG[libwebp] = "-Dlibwebp=true,-Dlibwebp=false,libwebp" 20PACKAGECONFIG[libwebp] = "-Dlibwebp=true,-Dlibwebp=false,libwebp"
19PACKAGECONFIG[libjxl] = "-Dlibjxl=true,-Dlibjxl=false,libjxl" 21PACKAGECONFIG[libjxl] = "-Dlibjxl=true,-Dlibjxl=false,libjxl"
20PACKAGECONFIG[lcms] = "-Dlcms2=true,-Dlcms2=false,lcms" 22PACKAGECONFIG[lcms] = "-Dlcms2=true,-Dlcms2=false,lcms"
21PACKAGECONFIG[colord] = "-Dcolord=true,-Dcolord=false,colord" 23PACKAGECONFIG[colord] = "-Dcolord=true,-Dcolord=false,colord"
22PACKAGECONFIG[exiv2] = "-Dexiv2=true,-Dexiv2=false,exiv2"
23PACKAGECONFIG[librsvg] = "-Dlibrsvg=true,-Dlibrsvg=false,librsvg" 24PACKAGECONFIG[librsvg] = "-Dlibrsvg=true,-Dlibrsvg=false,librsvg"
24PACKAGECONFIG[libraw] = "-Dlibraw=true,-Dlibraw=false,libraw" 25PACKAGECONFIG[libraw] = "-Dlibraw=true,-Dlibraw=false,libraw"
25 26
26# webservices would require libsecret and webkitgtk3 built with deprecated libsoup2 27inherit gnomebase gnome-help gsettings itstool gtk-icon-cache mime-xdg
27EXTRA_OEMESON += "-Dwebservices=false -Dlibsecret=false" 28SRC_URI[archive.sha256sum] = "3222344653cd6fb5d7981b73951ae3d90c414f74220a8b1c8665b25574284c75"
28
29inherit gnomebase gnome-help gsettings itstool mime-xdg
30
31SRC_URI[archive.sha256sum] = "ee12d24cf231010241f758d6c95b9d53a7381278fa76b6a518b3d09b371efaec"
32 29
33FILES:${PN} += "${datadir}/metainfo" 30FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
deleted file mode 100644
index 9fb2cd6814..0000000000
--- a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
+++ /dev/null
@@ -1,69 +0,0 @@
1From 71804c06c7179333f44b57e04ba268f37fe54f62 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 13 Jul 2017 09:01:04 -0700
4Subject: [PATCH] pypredict/lm: Define error API if platform does not have it
5
6error() API is not implemented across all libcs on linux
7e.g. musl does not provide it.
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 Onboard/pypredict/lm/lm.cpp | 1 -
14 Onboard/pypredict/lm/lm.h | 13 +++++++++++++
15 Onboard/pypredict/lm/lm_dynamic.cpp | 2 --
16 3 files changed, 13 insertions(+), 3 deletions(-)
17
18diff --git a/Onboard/pypredict/lm/lm.cpp b/Onboard/pypredict/lm/lm.cpp
19index 2e642965..37ae241e 100644
20--- a/Onboard/pypredict/lm/lm.cpp
21+++ b/Onboard/pypredict/lm/lm.cpp
22@@ -19,7 +19,6 @@
23
24 #include <stdlib.h>
25 #include <stdio.h>
26-#include <error.h>
27 #include <algorithm>
28 #include <cmath>
29 #include <string>
30diff --git a/Onboard/pypredict/lm/lm.h b/Onboard/pypredict/lm/lm.h
31index ed4164a4..b8b63ee8 100644
32--- a/Onboard/pypredict/lm/lm.h
33+++ b/Onboard/pypredict/lm/lm.h
34@@ -32,6 +32,19 @@
35 #include <algorithm>
36 #include <string>
37
38+#if defined(HAVE_ERROR_H)
39+#include <error.h>
40+#else
41+#include <err.h>
42+#define _onboard_error(S, E, F, ...) do { \
43+ if (E) \
44+ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \
45+ else \
46+ err(S, F, ##__VA_ARGS__); \
47+} while(0)
48+
49+#define error _onboard_error
50+#endif
51
52 // break into debugger
53 // step twice to come back out of the raise() call into known code
54diff --git a/Onboard/pypredict/lm/lm_dynamic.cpp b/Onboard/pypredict/lm/lm_dynamic.cpp
55index 7c628240..e7c7f40e 100644
56--- a/Onboard/pypredict/lm/lm_dynamic.cpp
57+++ b/Onboard/pypredict/lm/lm_dynamic.cpp
58@@ -17,8 +17,6 @@
59 * along with this program. If not, see <http://www.gnu.org/licenses/>.
60 */
61
62-#include <error.h>
63-
64 #include "lm_dynamic.h"
65
66 using namespace std;
67--
682.34.1
69
diff --git a/meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb b/meta-gnome/recipes-support/onboard/onboard_1.4.4-1.bb
index d544f169f8..a069fb692e 100644
--- a/meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb
+++ b/meta-gnome/recipes-support/onboard/onboard_1.4.4-1.bb
@@ -10,11 +10,10 @@ LIC_FILES_CHKSUM = "file://COPYING.GPL3;md5=8521fa4dd51909b407c5150498d34f4e \
10 file://COPYING.BSD3;md5=f56403ae5b2d6b82ad136d753c05a82e \ 10 file://COPYING.BSD3;md5=f56403ae5b2d6b82ad136d753c05a82e \
11 " 11 "
12 12
13SRC_URI = "git://github.com/onboard-osk/onboard.git;protocol=https;branch=main \ 13SRC_URI = "git://github.com/onboard-osk/onboard.git;protocol=https;branch=main;tag=${PV} \
14 file://0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch \
15 file://0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch \ 14 file://0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch \
16 " 15 "
17SRCREV = "350f7643576bc8c5f2cff9c6ddce0e1e7cff995d" 16SRCREV = "02b19e2aee88e4bf2cdc7094813ddd4a6c05d1e7"
18 17
19inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings mime-xdg 18inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings mime-xdg
20 19
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch
deleted file mode 100644
index e2c202a079..0000000000
--- a/meta-initramfs/recipes-devtools/dracut/dracut/0002-fix-broken-symlink-in-dracut-config-examples.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From e01991f1d55d4d1327793790bad3724b89952704 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Thu, 22 May 2025 18:07:27 +0800
4Subject: [PATCH 2/2] fix broken symlink in dracut config examples
5
6Due to commit [1], it installs dracut config examples under /usr.
7But while enable_test=no, the symlink of test in dracut config is broken
8...
9root@qemux86-64:~# ls /usr/lib/dracut/dracut.conf.d/test* -ahl
10lrwxrwxrwx 1 root root 27 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test -> ../test/dracut.conf.d/test/
11lrwxrwxrwx 1 root root 36 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-makeroot -> ../test/dracut.conf.d/test-makeroot/
12lrwxrwxrwx 1 root root 31 Apr 5 2011 /usr/lib/dracut/dracut.conf.d/test-root -> ../test/dracut.conf.d/test-root
13root@qemux86-64:~# realpath /usr/lib/dracut/dracut.conf.d/test*
14realpath: /usr/lib/dracut/dracut.conf.d/test: No such file or directory
15realpath: /usr/lib/dracut/dracut.conf.d/test-makeroot: No such file or directory
16realpath: /usr/lib/dracut/dracut.conf.d/test-root: No such file or directory
17...
18
19This commit cleans up test symlink if enable_test=no
20
21[1] https://github.com/dracut-ng/dracut-ng/commit/0d369e3e30935dffe48dfff1e90463868e7f804a
22
23Upstream-Status: Submitted [https://github.com/dracut-ng/dracut-ng/pull/1344]
24
25Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
26---
27 Makefile | 1 +
28 1 file changed, 1 insertion(+)
29
30diff --git a/Makefile b/Makefile
31index 3a40594b..df7956ab 100644
32--- a/Makefile
33+++ b/Makefile
34@@ -218,6 +218,7 @@ ifeq ($(enable_test),yes)
35 done
36 else
37 rm -rf $(DESTDIR)$(pkglibdir)/modules.d/70test*
38+ rm -rf $(DESTDIR)$(pkglibdir)/dracut.conf.d/test*
39 endif
40 ifneq ($(enable_documentation),no)
41 for i in $(man1pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man1/$${i##*/}; done
42--
432.47.3
44
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_109.bb b/meta-initramfs/recipes-devtools/dracut/dracut_110.bb
index ee6dce4576..d5ca94add8 100644
--- a/meta-initramfs/recipes-devtools/dracut/dracut_109.bb
+++ b/meta-initramfs/recipes-devtools/dracut/dracut_110.bb
@@ -7,10 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
7 7
8PE = "1" 8PE = "1"
9 9
10SRCREV = "13c5e5feee9ba86b960d351f87aa0eb25f242ff0" 10SRCREV = "25bf13842a5c55f4a5ab1523e005b3b11b9ac38e"
11SRC_URI = "git://github.com/dracut-ng/dracut-ng.git;protocol=http;branch=main;tag=${PV} \ 11SRC_URI = "git://github.com/dracut-ng/dracut-ng.git;protocol=http;branch=main;tag=${PV}"
12 file://0002-fix-broken-symlink-in-dracut-config-examples.patch \
13 "
14 12
15DEPENDS += "kmod" 13DEPENDS += "kmod"
16DEPENDS:append:libc-musl = " fts" 14DEPENDS:append:libc-musl = " fts"
diff --git a/meta-multimedia/recipes-multimedia/fswebcam/fswebcam_20200725.bb b/meta-multimedia/recipes-multimedia/fswebcam/fswebcam_20200725.bb
index bdda35df40..bc4f324da5 100644
--- a/meta-multimedia/recipes-multimedia/fswebcam/fswebcam_20200725.bb
+++ b/meta-multimedia/recipes-multimedia/fswebcam/fswebcam_20200725.bb
@@ -18,4 +18,7 @@ DEPENDS = "gd"
18SRC_URI = "git://github.com/fsphil/fswebcam.git;protocol=https;branch=master;tag=${PV}" 18SRC_URI = "git://github.com/fsphil/fswebcam.git;protocol=https;branch=master;tag=${PV}"
19SRCREV = "db35d4bbd336885a44f017ff142bc9523dbdce3c" 19SRCREV = "db35d4bbd336885a44f017ff142bc9523dbdce3c"
20 20
21# Compile gd with PACKAGECONFIG fontconfig for easier font selection
22RRECOMMENDS:${PN} = "ttf-dejavu-sans"
23
21inherit autotools-brokensep 24inherit autotools-brokensep
diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_1.3.0.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_1.3.0.bb
deleted file mode 100644
index 44f5c1819a..0000000000
--- a/meta-multimedia/recipes-multimedia/libavif/libavif_1.3.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1SUMMARY = "This library aims to be a friendly, portable C implementation of the AV1 Image File Format"
2HOMEPAGE = "https://github.com/AOMediaCodec/libavif"
3SECTION = "libs"
4# Most is the code is under BSD-2, but libyuv is under BSD-3, and iccjpeg is under IJG
5LICENSE = "BSD-2-Clause & BSD-3-Clause & IJG"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=51549db0941829faeedcc86efec2f4c0"
7
8SRC_URI = "git://github.com/AOMediaCodec/libavif.git;protocol=https;branch=main;tag=v${PV}"
9
10SRCREV = "1aadfad932c98c069a1204261b1856f81f3bc199"
11
12DEPENDS = "dav1d"
13
14inherit cmake
15
16EXTRA_OECMAKE += "-DAVIF_CODEC_DAV1D=ON -DAVIF_LIBYUV=OFF"
diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_1.4.1.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_1.4.1.bb
new file mode 100644
index 0000000000..77b81fffbf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavif/libavif_1.4.1.bb
@@ -0,0 +1,33 @@
1SUMMARY = "This library aims to be a friendly, portable C implementation of the AV1 Image File Format"
2HOMEPAGE = "https://github.com/AOMediaCodec/libavif"
3SECTION = "libs"
4# Most is the code is under BSD-2, but libyuv is under BSD-3, and iccjpeg is under IJG
5LICENSE = "BSD-2-Clause & BSD-3-Clause & IJG"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=51549db0941829faeedcc86efec2f4c0"
7
8SRC_URI = "git://github.com/AOMediaCodec/libavif.git;protocol=https;branch=main;tag=v${PV};name=libavif"
9SRC_URI += "git://github.com/kmurray/libargparse.git;protocol=https;nobranch=1;name=libargparse;subdir=${S}/ext/libargparse"
10SRC_URI += "git://chromium.googlesource.com/libyuv/libyuv;protocol=https;nobranch=1;name=libyuv;subdir=${S}/ext/libyuv"
11SRCREV_libavif = "6543b22b5bc706c53f038a16fe515f921556d9b3"
12SRCREV_libargparse = "ee74d1b53bd680748af14e737378de57e2a0a954"
13SRCREV_libyuv = "6067afde563c3946eebd94f146b3824ab7a97a9c"
14SRCREV_FORMAT = "libavif"
15
16DEPENDS = "nasm-native"
17
18inherit cmake pkgconfig
19
20EXTRA_OECMAKE += " \
21 -DAVIF_BUILD_MAN_PAGES=OFF \
22 -DAVIF_CODEC_RAV1E=OFF \
23 -DAVIF_LIBYUV=LOCAL \
24"
25
26PACKAGECONFIG ?= "dav1d gdk-pixbuf"
27PACKAGECONFIG[apps] = "-DAVIF_BUILD_APPS=ON -DAVIF_LIBXML2=SYSTEM,-DAVIF_BUILD_APPS=OFF -DAVIF_LIBXML2=OFF,zlib libjpeg-turbo libpng libwebp libxml2"
28PACKAGECONFIG[gdk-pixbuf] = "-DAVIF_BUILD_GDK_PIXBUF=ON,-DAVIF_BUILD_GDK_PIXBUF=OFF,gdk-pixbuf"
29PACKAGECONFIG[aom] = "-DAVIF_CODEC_AOM=SYSTEM,-DAVIF_CODEC_AOM=OFF,aom"
30PACKAGECONFIG[dav1d] = "-DAVIF_CODEC_DAV1D=SYSTEM,-DAVIF_CODEC_DAV1D=OFF,dav1d"
31PACKAGECONFIG[svt] = "-DAVIF_CODEC_SVT=SYSTEM,-DAVIF_CODEC_SVT=OFF,svt-av1"
32
33FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
index 766ee02ca2..cc305f4041 100644
--- a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
+++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
@@ -4,7 +4,7 @@ LICENSE = "GPL-2.0-or-later"
4LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" 4LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
5DEPENDS = "libdvdread" 5DEPENDS = "libdvdread"
6 6
7SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2" 7SRC_URI = "https://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2"
8SRC_URI[md5sum] = "46c46cb0294fbd1fcb8a0181818dad15" 8SRC_URI[md5sum] = "46c46cb0294fbd1fcb8a0181818dad15"
9SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48" 9SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48"
10 10
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.24.9.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.24.9.bb
index cb6bd1569f..0c3d672949 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.24.9.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.24.9.bb
@@ -24,7 +24,7 @@ SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=master;protocol=https;t
24SRCREV = "7a9afa059e95668c912f779219ee8fe1e44dd2aa" 24SRCREV = "7a9afa059e95668c912f779219ee8fe1e44dd2aa"
25 25
26 26
27EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)} \ 27EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_user_unitdir}', '-Dsystemd=disabled', d)} \
28 -Dadplug=disabled \ 28 -Dadplug=disabled \
29 -Dsndio=disabled \ 29 -Dsndio=disabled \
30 -Dshine=disabled \ 30 -Dshine=disabled \
@@ -93,6 +93,8 @@ do_install:append() {
93 rm -rf ${D}${datadir}/icons 93 rm -rf ${D}${datadir}/icons
94} 94}
95 95
96FILES:${PN} += "${systemd_user_unitdir}"
97
96RPROVIDES:${PN} += "${PN}-systemd" 98RPROVIDES:${PN} += "${PN}-systemd"
97RREPLACES:${PN} += "${PN}-systemd" 99RREPLACES:${PN} += "${PN}-systemd"
98RCONFLICTS:${PN} += "${PN}-systemd" 100RCONFLICTS:${PN} += "${PN}-systemd"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-plugins-alsa-acp-compat.h-Fix-missed-Wdiscarded-.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-plugins-alsa-acp-compat.h-Fix-missed-Wdiscarded-.patch
deleted file mode 100644
index 6ded1c15f8..0000000000
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-plugins-alsa-acp-compat.h-Fix-missed-Wdiscarded-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From c847b8162959c29b783585e0dcadbfb096e7cb73 Mon Sep 17 00:00:00 2001
2From: Ripley Tom <discofan420@protonmail.com>
3Date: Sat, 21 Feb 2026 19:33:11 +0100
4Subject: [PATCH] spa/plugins/alsa/acp/compat.h: Fix missed
5 -Wdiscarded-qualifiers warning
6
7Upstream-Status: Backport [https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/c847b8162959c29b783585e0dcadbfb096e7cb73]
8Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
9---
10 spa/plugins/alsa/acp/compat.h | 4 ++--
11 1 file changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/spa/plugins/alsa/acp/compat.h b/spa/plugins/alsa/acp/compat.h
14index f7592e1a6..0f7b959df 100644
15--- a/spa/plugins/alsa/acp/compat.h
16+++ b/spa/plugins/alsa/acp/compat.h
17@@ -429,9 +429,9 @@ static PA_PRINTF_FUNC(1,0) inline char *pa_vsprintf_malloc(const char *fmt, va_l
18
19 #define pa_fopen_cloexec(f,m) fopen(f,m"e")
20
21-static inline char *pa_path_get_filename(const char *p)
22+static inline const char *pa_path_get_filename(const char *p)
23 {
24- char *fn;
25+ const char *fn;
26 if (!p)
27 return NULL;
28 if ((fn = strrchr(p, PA_PATH_SEP_CHAR)))
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.3.bb
index 1e5e5f0399..82cd928b4a 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.3.bb
@@ -12,10 +12,9 @@ LIC_FILES_CHKSUM = " \
12 12
13DEPENDS = "dbus ncurses" 13DEPENDS = "dbus ncurses"
14 14
15SRCREV = "95da54a482b68475958bbc3fa572a9c20df0df74" 15SRCREV = "cc3d0d1191266b263f6d0fa03fce1d1ef57151cc"
16BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" 16BRANCH = "${@oe.utils.trim_version('${PV}', 2)}"
17SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https;tag=${PV}" 17SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https;tag=${PV}"
18SRC_URI += "file://0001-spa-plugins-alsa-acp-compat.h-Fix-missed-Wdiscarded-.patch"
19SRC_URI += "file://0002-spa-plugins-alsa-acp-compat.h-p-is-already-const-do-.patch" 18SRC_URI += "file://0002-spa-plugins-alsa-acp-compat.h-p-is-already-const-do-.patch"
20 19
21inherit meson pkgconfig systemd gettext useradd 20inherit meson pkgconfig systemd gettext useradd
diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
index 1600d9d3ef..480c132473 100644
--- a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
+++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
@@ -20,6 +20,8 @@ SRC_URI[sha256sum] = "c1d75f2e9c7b38fd4695be66eff4533395248132f3cc61f375196403c4
20 20
21inherit autotools pkgconfig 21inherit autotools pkgconfig
22 22
23CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
24
23EXTRA_OECONF += "--with-included-argv=yes --with-included-libmad=no" 25EXTRA_OECONF += "--with-included-argv=yes --with-included-libmad=no"
24EXTRA_OECONF += "\ 26EXTRA_OECONF += "\
25 --with-ogg-includes=${STAGING_INCDIR} \ 27 --with-ogg-includes=${STAGING_INCDIR} \
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
index 42c771e0ff..a8758b1e9b 100644
--- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
+++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a
3LICENSE = "GPL-2.0-only" 3LICENSE = "GPL-2.0-only"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" 4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5 5
6SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2" 6SRC_URI = "https://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2"
7 7
8inherit autotools 8inherit autotools
9 9
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.13.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.14.bb
index abd54515ca..ad05a8bc87 100644
--- a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.13.bb
+++ b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.14.bb
@@ -10,7 +10,7 @@ DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \
10 ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \ 10 ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \
11" 11"
12 12
13SRCREV = "84429b47943d789389fbde17c06b82efb197d04e" 13SRCREV = "07e730b279ac7a520699ae9f6b0797848a731b30"
14SRC_URI = " \ 14SRC_URI = " \
15 git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https;tag=${PV} \ 15 git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https;tag=${PV} \
16 file://run-ptest \ 16 file://run-ptest \
diff --git a/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb b/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
index 707eeb0e26..04fe9b9acd 100644
--- a/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
+++ b/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
@@ -39,7 +39,7 @@ BIND_EXTRA_CONFIG = "\
39 --host=${HOST_SYS} \ 39 --host=${HOST_SYS} \
40 --target=${TARGET_SYS} \ 40 --target=${TARGET_SYS} \
41" 41"
42 42CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
43EXTRA_OECONF = "--with-bind-extra-config="${BIND_EXTRA_CONFIG}" \ 43EXTRA_OECONF = "--with-bind-extra-config="${BIND_EXTRA_CONFIG}" \
44 --enable-paranoia \ 44 --enable-paranoia \
45 --disable-static \ 45 --disable-static \
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b8.bb
index 7a392b2c23..eabf4027d6 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b8.bb
@@ -4,21 +4,19 @@ HOMEPAGE = "http://sourceforge.net/projects/ez-ipupdate/"
4LICENSE = "GPL-2.0-only" 4LICENSE = "GPL-2.0-only"
5LIC_FILES_CHKSUM = "file://COPYING;md5=7783169b4be06b54e86730eb01bc3a31" 5LIC_FILES_CHKSUM = "file://COPYING;md5=7783169b4be06b54e86730eb01bc3a31"
6 6
7SRC_URI = "http://sourceforge.net/projects/ez-ipupdate/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ 7SRC_URI = "${DEBIAN_MIRROR}/main/e/${BPN}/${BPN}_${PV}.orig.tar.gz \
8 file://Makefile.am.patch \ 8 file://Makefile.am.patch \
9 file://cache_file.c.patch \
10 file://conf_file.c.patch \
11 file://wformat.patch \ 9 file://wformat.patch \
12 file://0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch \ 10 file://0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch \
13 file://CVE-2003-0887.patch \ 11 file://CVE-2003-0887.patch \
12 file://0001-configure-Check-for-string.h-system-header.patch \
14 " 13 "
15SRC_URI[md5sum] = "525be4550b4461fdf105aed8e753b020" 14SRC_URI[sha256sum] = "bf5b8d11ffe055c5891d0ab64bbfa86e99cbda645d40f346146b939fec8d962d"
16SRC_URI[sha256sum] = "a15ec0dc0b78ec7578360987c68e43a67bc8d3591cbf528a323588830ae22c20"
17 15
18inherit autotools pkgconfig 16inherit autotools pkgconfig
19 17
20do_install:append(){ 18#do_install:append(){
21 install -m 0744 -d ${D}${localstatedir}/lib/ez-ipupdate 19# install -m 0744 -d ${D}${localstatedir}/lib/ez-ipupdate
22} 20#}
23 21
24FILES:${PN} += "${localstatedir}/lib/ez-ipupdate" 22#FILES:${PN} += "${localstatedir}/lib/ez-ipupdate"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-configure-Check-for-string.h-system-header.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-configure-Check-for-string.h-system-header.patch
new file mode 100644
index 0000000000..e9995a3500
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-configure-Check-for-string.h-system-header.patch
@@ -0,0 +1,53 @@
1From 811f253c03464489d445ab6627bb4187d27e98ef Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sat, 4 Apr 2026 19:12:37 +0000
4Subject: [PATCH] configure: Check for string.h system header
5
6This is needed for functions like memcpy in md5.c but
7it only includes string.h when its detected by autotools
8however the needed check for detecting it during configure
9are missing. This patch adds them
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
14---
15 config.h.in | 3 +++
16 configure.in | 3 ++-
17 2 files changed, 5 insertions(+), 1 deletion(-)
18
19diff --git a/config.h.in b/config.h.in
20index 2ce447f..52a8d7d 100644
21--- a/config.h.in
22+++ b/config.h.in
23@@ -129,6 +129,9 @@
24 /* Define if you have the <signal.h> header file. */
25 #undef HAVE_SIGNAL_H
26
27+/* Define if you have the <string.h> header file. */
28+#undef HAVE_STRING_H
29+
30 /* Define if you have the <stdarg.h> header file. */
31 #undef HAVE_STDARG_H
32
33diff --git a/configure.in b/configure.in
34index c97b9fc..f5d0808 100644
35--- a/configure.in
36+++ b/configure.in
37@@ -62,6 +62,7 @@ AC_CHECK_HEADERS( arpa/inet.h \
38 sys/stat.h \
39 fcntl.h \
40 signal.h \
41+ string.h \
42 syslog.h \
43 pwd.h \
44 stdarg.h \
45@@ -104,7 +105,7 @@ AC_ARG_ENABLE(default-service,
46 dyndns, dyndns-static, ods, tzo, gnudip, easydns, easydns-partner, dyns, hn, zoneedit, heipv6tb],
47 [ use_SERVICE=$enableval;
48 AC_MSG_RESULT(yes) ],
49- [ AC_MSG_RESULT(no)
50+ [ AC_MSG_RESULT(no)
51 use_SERVICE=null
52 AC_MSG_WARN(not setting default service) ] )
53 case "$use_SERVICE" in
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/CVE-2003-0887.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/CVE-2003-0887.patch
index 53aa355008..14abe27c00 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/CVE-2003-0887.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/CVE-2003-0887.patch
@@ -26,8 +26,6 @@ Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
26 example-tzo.conf | 2 +- 26 example-tzo.conf | 2 +-
27 10 files changed, 10 insertions(+), 10 deletions(-) 27 10 files changed, 10 insertions(+), 10 deletions(-)
28 28
29diff --git a/example-dhs.conf b/example-dhs.conf
30index 3fe9a04..f976ae5 100755
31--- a/example-dhs.conf 29--- a/example-dhs.conf
32+++ b/example-dhs.conf 30+++ b/example-dhs.conf
33@@ -11,7 +11,7 @@ host=mydomain.whatever.com 31@@ -11,7 +11,7 @@ host=mydomain.whatever.com
@@ -39,8 +37,6 @@ index 3fe9a04..f976ae5 100755
39 37
40 # uncomment this once you have everything working how you want and you are 38 # uncomment this once you have everything working how you want and you are
41 # ready to have ez-ipupdate running in the background all the time. to stop it 39 # ready to have ez-ipupdate running in the background all the time. to stop it
42diff --git a/example-dyndns.conf b/example-dyndns.conf
43index f539dec..84b4807 100755
44--- a/example-dyndns.conf 40--- a/example-dyndns.conf
45+++ b/example-dyndns.conf 41+++ b/example-dyndns.conf
46@@ -19,7 +19,7 @@ max-interval=2073600 42@@ -19,7 +19,7 @@ max-interval=2073600
@@ -52,8 +48,6 @@ index f539dec..84b4807 100755
52 48
53 # uncomment this once you have everything working how you want and you are 49 # uncomment this once you have everything working how you want and you are
54 # ready to have ez-ipupdate running in the background all the time. to stop it 50 # ready to have ez-ipupdate running in the background all the time. to stop it
55diff --git a/example-dyns.conf b/example-dyns.conf
56index 868768d..856a4d7 100644
57--- a/example-dyns.conf 51--- a/example-dyns.conf
58+++ b/example-dyns.conf 52+++ b/example-dyns.conf
59@@ -11,7 +11,7 @@ host=myhost 53@@ -11,7 +11,7 @@ host=myhost
@@ -65,8 +59,6 @@ index 868768d..856a4d7 100644
65 59
66 # uncomment this once you have everything working how you want and you are 60 # uncomment this once you have everything working how you want and you are
67 # ready to have ez-ipupdate running in the background all the time. to stop it 61 # ready to have ez-ipupdate running in the background all the time. to stop it
68diff --git a/example-easydns.conf b/example-easydns.conf
69index 0ff20da..15d9b78 100755
70--- a/example-easydns.conf 62--- a/example-easydns.conf
71+++ b/example-easydns.conf 63+++ b/example-easydns.conf
72@@ -11,7 +11,7 @@ host=mydomain.whatever.com 64@@ -11,7 +11,7 @@ host=mydomain.whatever.com
@@ -78,8 +70,6 @@ index 0ff20da..15d9b78 100755
78 70
79 # uncomment this once you have everything working how you want and you are 71 # uncomment this once you have everything working how you want and you are
80 # ready to have ez-ipupdate running in the background all the time. to stop it 72 # ready to have ez-ipupdate running in the background all the time. to stop it
81diff --git a/example-gnudip.conf b/example-gnudip.conf
82index 3b2fb63..d09df1f 100755
83--- a/example-gnudip.conf 73--- a/example-gnudip.conf
84+++ b/example-gnudip.conf 74+++ b/example-gnudip.conf
85@@ -15,7 +15,7 @@ max-interval=2073600 75@@ -15,7 +15,7 @@ max-interval=2073600
@@ -91,8 +81,6 @@ index 3b2fb63..d09df1f 100755
91 81
92 # uncomment this once you have everything working how you want and you are 82 # uncomment this once you have everything working how you want and you are
93 # ready to have ez-ipupdate running in the background all the time. to stop it 83 # ready to have ez-ipupdate running in the background all the time. to stop it
94diff --git a/example-heipv6tb.conf b/example-heipv6tb.conf
95index e31aa9c..3ebc822 100644
96--- a/example-heipv6tb.conf 84--- a/example-heipv6tb.conf
97+++ b/example-heipv6tb.conf 85+++ b/example-heipv6tb.conf
98@@ -18,7 +18,7 @@ max-interval=2073600 86@@ -18,7 +18,7 @@ max-interval=2073600
@@ -104,8 +92,6 @@ index e31aa9c..3ebc822 100644
104 92
105 # uncomment this once you have everything working how you want and you are 93 # uncomment this once you have everything working how you want and you are
106 # ready to have ez-ipupdate running in the background all the time. to stop it 94 # ready to have ez-ipupdate running in the background all the time. to stop it
107diff --git a/example-justlinux.conf b/example-justlinux.conf
108index 0afeb2c..28b3327 100755
109--- a/example-justlinux.conf 95--- a/example-justlinux.conf
110+++ b/example-justlinux.conf 96+++ b/example-justlinux.conf
111@@ -11,7 +11,7 @@ host=mydomain.penguinpowered.com 97@@ -11,7 +11,7 @@ host=mydomain.penguinpowered.com
@@ -117,8 +103,6 @@ index 0afeb2c..28b3327 100755
117 103
118 # uncomment this once you have everything working how you want and you are 104 # uncomment this once you have everything working how you want and you are
119 # ready to have ez-ipupdate running in the background all the time. to stop it 105 # ready to have ez-ipupdate running in the background all the time. to stop it
120diff --git a/example-ods.conf b/example-ods.conf
121index d0ff889..7b16f2c 100755
122--- a/example-ods.conf 106--- a/example-ods.conf
123+++ b/example-ods.conf 107+++ b/example-ods.conf
124@@ -11,7 +11,7 @@ host=mydomain.ods.org 108@@ -11,7 +11,7 @@ host=mydomain.ods.org
@@ -130,8 +114,6 @@ index d0ff889..7b16f2c 100755
130 114
131 # uncomment this once you have everything working how you want and you are 115 # uncomment this once you have everything working how you want and you are
132 # ready to have ez-ipupdate running in the background all the time. to stop it 116 # ready to have ez-ipupdate running in the background all the time. to stop it
133diff --git a/example-pgpow.conf b/example-pgpow.conf
134index 29a92d6..81e351b 100755
135--- a/example-pgpow.conf 117--- a/example-pgpow.conf
136+++ b/example-pgpow.conf 118+++ b/example-pgpow.conf
137@@ -11,7 +11,7 @@ host=mydomain.penguinpowered.com 119@@ -11,7 +11,7 @@ host=mydomain.penguinpowered.com
@@ -143,8 +125,6 @@ index 29a92d6..81e351b 100755
143 125
144 # uncomment this once you have everything working how you want and you are 126 # uncomment this once you have everything working how you want and you are
145 # ready to have ez-ipupdate running in the background all the time. to stop it 127 # ready to have ez-ipupdate running in the background all the time. to stop it
146diff --git a/example-tzo.conf b/example-tzo.conf
147index 2a71db3..10b8dc4 100755
148--- a/example-tzo.conf 128--- a/example-tzo.conf
149+++ b/example-tzo.conf 129+++ b/example-tzo.conf
150@@ -15,7 +15,7 @@ max-interval=2073600 130@@ -15,7 +15,7 @@ max-interval=2073600
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch
deleted file mode 100644
index 0199cb1278..0000000000
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1Upstream-Status: Pending
2
3Dont assume errno type
4
5--- ez-ipupdate-3.0.11b7/cache_file.c.orig 2014-07-02 14:01:07.126029412 -0600
6+++ ez-ipupdate-3.0.11b7/cache_file.c 2014-07-02 14:08:27.422026332 -0600
7@@ -43,11 +43,11 @@
8 #include <cache_file.h>
9
10 #if HAVE_STRERROR
11-extern int errno;
12+# include <errno.h>
13 # define error_string strerror(errno)
14 #elif HAVE_SYS_ERRLIST
15 extern const char *const sys_errlist[];
16-extern int errno;
17+# include <errno.h>
18 # define error_string (sys_errlist[errno])
19 #else
20 # define error_string "error message not found"
21@@ -63,11 +63,11 @@
22 # define dprintf(x)
23 #endif
24 #if HAVE_STRERROR
25-extern int errno;
26+# include <errno.h>
27 # define error_string strerror(errno)
28 #elif HAVE_SYS_ERRLIST
29 extern const char *const sys_errlist[];
30-extern int errno;
31+# include <errno.h>
32 # define error_string (sys_errlist[errno])
33 #else
34 # define error_string "error message not found"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch
deleted file mode 100644
index 6325c1873f..0000000000
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1Upstream-Status: Pending
2
3Dont assume errno type
4
5--- ez-ipupdate-3.0.11b7/conf_file.c.orig 2014-07-02 14:01:19.174029328 -0600
6+++ ez-ipupdate-3.0.11b7/conf_file.c 2014-07-02 14:08:42.982026223 -0600
7@@ -38,11 +38,11 @@
8 #include <conf_file.h>
9
10 #if HAVE_STRERROR
11-extern int errno;
12+# include <errno.h>
13 # define error_string strerror(errno)
14 #elif HAVE_SYS_ERRLIST
15 extern const char *const sys_errlist[];
16-extern int errno;
17+# include <errno.h>
18 # define error_string (sys_errlist[errno])
19 #else
20 # define error_string "error message not found"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
index 3b791559d5..7463e3c535 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
@@ -1,4 +1,9 @@
1Upstream-Status: Pending 1
2This patch is used by Gentoo to mitigate CVE-2004-0980:
3https://bugs.gentoo.org/69658
4
5CVE: CVE-2004-0980
6Upstream-Status: Inactive-Upstream [last commit: 2002]
2 7
3Index: ez-ipupdate-3.0.11b7/ez-ipupdate.c 8Index: ez-ipupdate-3.0.11b7/ez-ipupdate.c
4=================================================================== 9===================================================================
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-don-t-load-legacy-provider-on-enable-fips-workaround.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-don-t-load-legacy-provider-on-enable-fips-workaround.patch
deleted file mode 100644
index 594286cdcf..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-don-t-load-legacy-provider-on-enable-fips-workaround.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From 2c2c6a460ae8cc655df83c8964595581389676c1 Mon Sep 17 00:00:00 2001
2From: "Alan T. DeKok" <aland@freeradius.org>
3Date: Tue, 9 Sep 2025 07:03:21 -0400
4Subject: [PATCH] don't load legacy provider on --enable-fips-workaround.
5 Fixes #5644
6
7Upstream-Status: Backport
8[https://github.com/FreeRADIUS/freeradius-server/commit/2c2c6a460ae8cc655df83c8964595581389676c1]
9
10Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
11---
12 src/main/tls.c | 7 +++++++
13 1 file changed, 7 insertions(+)
14
15diff --git a/src/main/tls.c b/src/main/tls.c
16index ba267983b1..c04f3228e4 100644
17--- a/src/main/tls.c
18+++ b/src/main/tls.c
19@@ -64,8 +64,11 @@ USES_APPLE_DEPRECATED_API /* OpenSSL API has been deprecated by Apple */
20 # include <openssl/provider.h>
21
22 static OSSL_PROVIDER *openssl_default_provider = NULL;
23+
24+#ifndef WITH_FIPS
25 static OSSL_PROVIDER *openssl_legacy_provider = NULL;
26 #endif
27+#endif
28
29 #define LOG_PREFIX "tls"
30
31@@ -3693,6 +3696,7 @@ int tls_global_init(TLS_UNUSED bool spawn_flag, TLS_UNUSED bool check)
32 return -1;
33 }
34
35+#ifndef WITH_FIPS
36 /*
37 * Needed for MD4
38 *
39@@ -3703,6 +3707,7 @@ int tls_global_init(TLS_UNUSED bool spawn_flag, TLS_UNUSED bool check)
40 ERROR("(TLS) Failed loading legacy provider");
41 return -1;
42 }
43+#endif
44 #endif
45
46 return 0;
47@@ -3777,10 +3782,12 @@ void tls_global_cleanup(void)
48 }
49 openssl_default_provider = NULL;
50
51+#ifndef WITH_FIPS
52 if (openssl_legacy_provider && !OSSL_PROVIDER_unload(openssl_legacy_provider)) {
53 ERROR("Failed unloading legacy provider");
54 }
55 openssl_legacy_provider = NULL;
56+#endif
57 #endif
58
59 CONF_modules_unload(1);
60--
612.43.0
62
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0002-don-t-load-legacy-provider-on-enable-fips-workaround.patch b/meta-networking/recipes-connectivity/freeradius/files/0002-don-t-load-legacy-provider-on-enable-fips-workaround.patch
deleted file mode 100644
index 84b78320c4..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0002-don-t-load-legacy-provider-on-enable-fips-workaround.patch
+++ /dev/null
@@ -1,104 +0,0 @@
1From 2ff8eb44bb626e9e63f9bf06c3bcf3b34291c335 Mon Sep 17 00:00:00 2001
2From: Yi Zhao <yi.zhao@windriver.com>
3Date: Tue, 31 Mar 2026 07:45:16 -0400
4Subject: [PATCH] don't load legacy provider on --enable-fips-workaround. Fixes
5 #5775
6
7Upstream-Status: Backport
8[https://github.com/FreeRADIUS/freeradius-server/commit/2ff8eb44bb626e9e63f9bf06c3bcf3b34291c335]
9
10Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
11---
12 src/main/radclient.c | 6 ++++++
13 src/modules/rlm_mschap/smbencrypt.c | 6 ++++++
14 2 files changed, 12 insertions(+)
15
16diff --git a/src/main/radclient.c b/src/main/radclient.c
17index ea64486dcf..52555603e1 100644
18--- a/src/main/radclient.c
19+++ b/src/main/radclient.c
20@@ -168,7 +168,9 @@ static int _rc_request_free(rc_request_t *request)
21 # include <openssl/provider.h>
22
23 static OSSL_PROVIDER *openssl_default_provider = NULL;
24+#ifndef WITH_FIPS
25 static OSSL_PROVIDER *openssl_legacy_provider = NULL;
26+#endif
27
28 static int openssl3_init(void)
29 {
30@@ -181,6 +183,7 @@ static int openssl3_init(void)
31 return -1;
32 }
33
34+#ifndef WITH_FIPS
35 /*
36 * Needed for MD4
37 *
38@@ -191,6 +194,7 @@ static int openssl3_init(void)
39 ERROR("(TLS) Failed loading legacy provider");
40 return -1;
41 }
42+#endif
43
44 return 0;
45 }
46@@ -202,10 +206,12 @@ static void openssl3_free(void)
47 }
48 openssl_default_provider = NULL;
49
50+#ifndef WITH_FIPS
51 if (openssl_legacy_provider && !OSSL_PROVIDER_unload(openssl_legacy_provider)) {
52 ERROR("Failed unloading legacy provider");
53 }
54 openssl_legacy_provider = NULL;
55+#endif
56 }
57 #else
58 #define openssl3_init()
59diff --git a/src/modules/rlm_mschap/smbencrypt.c b/src/modules/rlm_mschap/smbencrypt.c
60index 9a8a5ab777..531c40ec26 100644
61--- a/src/modules/rlm_mschap/smbencrypt.c
62+++ b/src/modules/rlm_mschap/smbencrypt.c
63@@ -43,7 +43,9 @@ static char const hex[] = "0123456789ABCDEF";
64 # include <openssl/provider.h>
65
66 static OSSL_PROVIDER *openssl_default_provider = NULL;
67+#ifndef WITH_FIPS
68 static OSSL_PROVIDER *openssl_legacy_provider = NULL;
69+#endif
70
71 #define ERROR(_x) fprintf(stderr, _x)
72
73@@ -58,6 +60,7 @@ static int openssl3_init(void)
74 return -1;
75 }
76
77+#ifndef WITH_FIPS
78 /*
79 * Needed for MD4
80 *
81@@ -68,6 +71,7 @@ static int openssl3_init(void)
82 ERROR("(TLS) Failed loading legacy provider");
83 return -1;
84 }
85+#endif
86
87 return 0;
88 }
89@@ -79,10 +83,12 @@ static void openssl3_free(void)
90 }
91 openssl_default_provider = NULL;
92
93+#ifndef WITH_FIPS
94 if (openssl_legacy_provider && !OSSL_PROVIDER_unload(openssl_legacy_provider)) {
95 ERROR("Failed unloading legacy provider");
96 }
97 openssl_legacy_provider = NULL;
98+#endif
99 }
100 #else
101 #define openssl3_init()
102--
1032.43.0
104
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch b/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch
deleted file mode 100644
index cae27ad3a4..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 0475d948ceab91b22172f0fae3bc01e0a1502ae8 Mon Sep 17 00:00:00 2001
2From: Yi Zhao <yi.zhao@windriver.com>
3Date: Wed, 18 Jan 2017 14:59:39 +0800
4Subject: [PATCH] fix error for expansion of macro in thread.h
5
6The parameter declaration is missing in expansion of macro
7which cause the build error:
8| In file included from src/freeradius-devel/libradius.h:80:0,
9| from src/lib/log.c:26:
10| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer':
11| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function)
12| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */
13| ^
14
15Add the missing declaration in macro.
16
17Upstream-Status: Pending
18
19Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
20---
21 src/include/threads.h | 10 +++++-----
22 1 file changed, 5 insertions(+), 5 deletions(-)
23
24diff --git a/src/include/threads.h b/src/include/threads.h
25index f2aea776d6..1c4e526797 100644
26--- a/src/include/threads.h
27+++ b/src/include/threads.h
28@@ -92,7 +92,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
29 # define fr_thread_local_get(_n) _n
30 #elif defined(HAVE_PTHREAD_H)
31 # include <pthread.h>
32-# define fr_thread_local_setup(_t, _n) \
33+# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
34 static pthread_key_t __fr_thread_local_key_##_n;\
35 static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
36 static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
37@@ -103,17 +103,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\
38 static void __fr_thread_local_key_init_##_n(void)\
39 {\
40 (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
41- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
42 }\
43 static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
44 {\
45 __fr_thread_local_destructor_##_n = func;\
46 if (_n) return _n; \
47 (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
48+ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
49 return _n;\
50 }
51-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
52-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
53-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
54+# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
55+# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
56+# define fr_thread_local_get(_n) _n
57 #endif
58 #endif
59--
602.25.1
61
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0018-update-license-1.patch b/meta-networking/recipes-connectivity/freeradius/files/0018-update-license-1.patch
deleted file mode 100644
index 8647c389ab..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0018-update-license-1.patch
+++ /dev/null
@@ -1,175 +0,0 @@
1From 82d874c638c80fbbf1eca7c51aca095fbbf40024 Mon Sep 17 00:00:00 2001
2From: "Alan T. DeKok" <aland@freeradius.org>
3Date: Mon, 27 Oct 2025 06:31:22 -0400
4Subject: [PATCH] update license
5
6Upstream-Status: Backport
7[https://github.com/FreeRADIUS/freeradius-server/commit/82d874c638c80fbbf1eca7c51aca095fbbf40024]
8
9Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
10---
11 src/modules/rlm_dpsk/rlm_dpsk.c | 25 +++++++---------
12 .../rlm_eap/types/rlm_eap_teap/eap_teap.c | 29 +++++++------------
13 .../rlm_eap/types/rlm_eap_teap/eap_teap.h | 29 +++++++------------
14 .../rlm_eap/types/rlm_eap_teap/rlm_eap_teap.c | 29 +++++++------------
15 4 files changed, 44 insertions(+), 68 deletions(-)
16
17diff --git a/src/modules/rlm_dpsk/rlm_dpsk.c b/src/modules/rlm_dpsk/rlm_dpsk.c
18index 4b818d08a5..aa07415540 100644
19--- a/src/modules/rlm_dpsk/rlm_dpsk.c
20+++ b/src/modules/rlm_dpsk/rlm_dpsk.c
21@@ -1,20 +1,17 @@
22 /*
23- * Copyright (C) 2023 Network RADIUS SARL (legal@networkradius.com)
24+ * This program is is free software; you can redistribute it and/or modify
25+ * it under the terms of the GNU General Public License as published by
26+ * the Free Software Foundation; either version 2 of the License, or (at
27+ * your option) any later version.
28 *
29- * This software may not be redistributed in any form without the prior
30- * written consent of Network RADIUS.
31+ * This program is distributed in the hope that it will be useful,
32+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
33+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34+ * GNU General Public License for more details.
35 *
36- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
37- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
39- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
40- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
41- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
42- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
44- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
45- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46- * SUCH DAMAGE.
47+ * You should have received a copy of the GNU General Public License
48+ * along with this program; if not, write to the Free Software
49+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
50 */
51
52 /**
53diff --git a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.c b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.c
54index 20646c5ba1..33512788c2 100644
55--- a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.c
56+++ b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.c
57@@ -1,24 +1,17 @@
58 /*
59- * eap_teap.c contains the interfaces that are called from the main handler
60+ * This program is is free software; you can redistribute it and/or modify
61+ * it under the terms of the GNU General Public License as published by
62+ * the Free Software Foundation; either version 2 of the License, or (at
63+ * your option) any later version.
64 *
65- * Version: $Id$
66+ * This program is distributed in the hope that it will be useful,
67+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
68+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69+ * GNU General Public License for more details.
70 *
71- * Copyright (C) 2022 Network RADIUS SARL <legal@networkradius.com>
72- *
73- * This software may not be redistributed in any form without the prior
74- * written consent of Network RADIUS.
75- *
76- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
77- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
78- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
79- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
80- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
81- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
82- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
83- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
84- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
85- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
86- * SUCH DAMAGE.
87+ * You should have received a copy of the GNU General Public License
88+ * along with this program; if not, write to the Free Software
89+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
90 */
91
92 RCSID("$Id$")
93diff --git a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.h b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.h
94index 59f7835a26..69f4b1ebba 100644
95--- a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.h
96+++ b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap.h
97@@ -1,24 +1,17 @@
98 /*
99- * eap_teap.h
100+ * This program is is free software; you can redistribute it and/or modify
101+ * it under the terms of the GNU General Public License as published by
102+ * the Free Software Foundation; either version 2 of the License, or (at
103+ * your option) any later version.
104 *
105- * Version: $Id$
106+ * This program is distributed in the hope that it will be useful,
107+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
108+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
109+ * GNU General Public License for more details.
110 *
111- * Copyright (C) 2022 Network RADIUS SARL <legal@networkradius.com>
112- *
113- * This software may not be redistributed in any form without the prior
114- * written consent of Network RADIUS.
115- *
116- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
117- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
118- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
119- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
120- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
121- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
122- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
123- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
124- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
125- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
126- * SUCH DAMAGE.
127+ * You should have received a copy of the GNU General Public License
128+ * along with this program; if not, write to the Free Software
129+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
130 */
131 #ifndef _EAP_TEAP_H
132 #define _EAP_TEAP_H
133diff --git a/src/modules/rlm_eap/types/rlm_eap_teap/rlm_eap_teap.c b/src/modules/rlm_eap/types/rlm_eap_teap/rlm_eap_teap.c
134index fcf9717257..13c709b287 100644
135--- a/src/modules/rlm_eap/types/rlm_eap_teap/rlm_eap_teap.c
136+++ b/src/modules/rlm_eap/types/rlm_eap_teap/rlm_eap_teap.c
137@@ -1,24 +1,17 @@
138 /*
139- * rlm_eap_teap.c contains the interfaces that are called from eap
140+ * This program is is free software; you can redistribute it and/or modify
141+ * it under the terms of the GNU General Public License as published by
142+ * the Free Software Foundation; either version 2 of the License, or (at
143+ * your option) any later version.
144 *
145- * Version: $Id$
146+ * This program is distributed in the hope that it will be useful,
147+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
148+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
149+ * GNU General Public License for more details.
150 *
151- * Copyright (C) 2022 Network RADIUS SARL <legal@networkradius.com>
152- *
153- * This software may not be redistributed in any form without the prior
154- * written consent of Network RADIUS.
155- *
156- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
157- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
159- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
160- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
161- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
162- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
163- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
164- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
165- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
166- * SUCH DAMAGE.
167+ * You should have received a copy of the GNU General Public License
168+ * along with this program; if not, write to the Free Software
169+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
170 */
171
172 RCSID("$Id$")
173--
1742.43.0
175
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0019-update-license-2.patch b/meta-networking/recipes-connectivity/freeradius/files/0019-update-license-2.patch
deleted file mode 100644
index 4fa3ecd265..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0019-update-license-2.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1From a46e81a7764b57983ce6724524f745a06222dc0a Mon Sep 17 00:00:00 2001
2From: "Alan T. DeKok" <aland@freeradius.org>
3Date: Tue, 28 Oct 2025 11:33:44 -0400
4Subject: [PATCH] update license
5
6Upstream-Status: Backport
7[https://github.com/FreeRADIUS/freeradius-server/commit/a46e81a7764b57983ce6724524f745a06222dc0a]
8
9Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
10---
11 .../rlm_proxy_rate_limit.c | 25 ++++++++-----------
12 1 file changed, 11 insertions(+), 14 deletions(-)
13
14diff --git a/src/modules/rlm_proxy_rate_limit/rlm_proxy_rate_limit.c b/src/modules/rlm_proxy_rate_limit/rlm_proxy_rate_limit.c
15index 744b14a448..a855273784 100644
16--- a/src/modules/rlm_proxy_rate_limit/rlm_proxy_rate_limit.c
17+++ b/src/modules/rlm_proxy_rate_limit/rlm_proxy_rate_limit.c
18@@ -1,20 +1,17 @@
19 /*
20- * Copyright (C) 2024 Network RADIUS SAS (legal@networkradius.com)
21+ * This program is is free software; you can redistribute it and/or modify
22+ * it under the terms of the GNU General Public License as published by
23+ * the Free Software Foundation; either version 2 of the License, or (at
24+ * your option) any later version.
25 *
26- * This software may not be redistributed in any form without the prior
27- * written consent of Network RADIUS.
28+ * This program is distributed in the hope that it will be useful,
29+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
30+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31+ * GNU General Public License for more details.
32 *
33- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
34- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
37- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43- * SUCH DAMAGE.
44+ * You should have received a copy of the GNU General Public License
45+ * along with this program; if not, write to the Free Software
46+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
47 */
48
49 /**
50--
512.43.0
52
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0020-update-license-3.patch b/meta-networking/recipes-connectivity/freeradius/files/0020-update-license-3.patch
deleted file mode 100644
index f77c585bda..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0020-update-license-3.patch
+++ /dev/null
@@ -1,101 +0,0 @@
1From d00440f3290871aef667f80e15f256c64f9b7cd6 Mon Sep 17 00:00:00 2001
2From: "Alan T. DeKok" <aland@freeradius.org>
3Date: Wed, 29 Oct 2025 09:45:17 -0400
4Subject: [PATCH] update license
5
6Upstream-Status: Backport
7[https://github.com/FreeRADIUS/freeradius-server/commit/d00440f3290871aef667f80e15f256c64f9b7cd6]
8
9Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
10---
11 .../types/rlm_eap_teap/eap_teap_crypto.c | 30 +++++++------------
12 .../types/rlm_eap_teap/eap_teap_crypto.h | 30 +++++++------------
13 2 files changed, 22 insertions(+), 38 deletions(-)
14
15diff --git a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.c b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.c
16index 17f49f9dfc..aaa74837a9 100644
17--- a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.c
18+++ b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.c
19@@ -1,26 +1,18 @@
20 /*
21- * teap-crypto.c Cryptographic functions for EAP-TEAP.
22+ * This program is is free software; you can redistribute it and/or modify
23+ * it under the terms of the GNU General Public License as published by
24+ * the Free Software Foundation; either version 2 of the License, or (at
25+ * your option) any later version.
26 *
27- * Version: $Id$
28+ * This program is distributed in the hope that it will be useful,
29+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
30+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31+ * GNU General Public License for more details.
32 *
33- * Copyright (C) 2022 Network RADIUS SARL <legal@networkradius.com>
34- *
35- * This software may not be redistributed in any form without the prior
36- * written consent of Network RADIUS.
37- *
38- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
39- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
40- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
41- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
42- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
43- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
44- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
46- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
47- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48- * SUCH DAMAGE.
49+ * You should have received a copy of the GNU General Public License
50+ * along with this program; if not, write to the Free Software
51+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
52 */
53-
54 RCSID("$Id$")
55 USES_APPLE_DEPRECATED_API /* OpenSSL API has been deprecated by Apple */
56
57diff --git a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.h b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.h
58index b02f2b9083..f9403dcf93 100644
59--- a/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.h
60+++ b/src/modules/rlm_eap/types/rlm_eap_teap/eap_teap_crypto.h
61@@ -1,26 +1,18 @@
62 /*
63- * eap_teap_crypto.h
64+ * This program is is free software; you can redistribute it and/or modify
65+ * it under the terms of the GNU General Public License as published by
66+ * the Free Software Foundation; either version 2 of the License, or (at
67+ * your option) any later version.
68 *
69- * Version: $Id$
70+ * This program is distributed in the hope that it will be useful,
71+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
72+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
73+ * GNU General Public License for more details.
74 *
75- * Copyright (C) 2022 Network RADIUS SARL <legal@networkradius.com>
76- *
77- * This software may not be redistributed in any form without the prior
78- * written consent of Network RADIUS.
79- *
80- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
81- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
82- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
83- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
84- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
85- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
86- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
87- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
88- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
89- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
90- * SUCH DAMAGE.
91+ * You should have received a copy of the GNU General Public License
92+ * along with this program; if not, write to the Free Software
93+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
94 */
95-
96 #ifndef _EAP_TEAP_CRYPTO_H
97 #define _EAP_TEAP_CRYPTO_H
98
99--
1002.43.0
101
diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.8.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.8.bb
index 4be127209b..d9b0bc9b1e 100644
--- a/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.8.bb
+++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.8.bb
@@ -15,7 +15,7 @@ DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
15 15
16PATCHTOOL = "git" 16PATCHTOOL = "git"
17 17
18SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0;;protocol=https \ 18SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0;protocol=https \
19 file://freeradius \ 19 file://freeradius \
20 file://volatiles.58_radiusd \ 20 file://volatiles.58_radiusd \
21 file://radiusd.service \ 21 file://radiusd.service \
@@ -29,7 +29,6 @@ SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0
29 file://0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch \ 29 file://0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch \
30 file://0008-libtool-do-not-use-jlibtool.patch \ 30 file://0008-libtool-do-not-use-jlibtool.patch \
31 file://0009-Fix-quoting-for-BUILD_WITH.patch \ 31 file://0009-Fix-quoting-for-BUILD_WITH.patch \
32 file://0010-fix-error-for-expansion-of-macro-in-thread.h.patch \
33 file://0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \ 32 file://0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
34 file://0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch \ 33 file://0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch \
35 file://0013-raddb-certs-Makefile-fix-the-occasional-verification.patch \ 34 file://0013-raddb-certs-Makefile-fix-the-occasional-verification.patch \
@@ -37,16 +36,13 @@ SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0
37 file://0015-bootstrap-check-commands-of-openssl-exist.patch \ 36 file://0015-bootstrap-check-commands-of-openssl-exist.patch \
38 file://0016-version.c-don-t-print-build-flags.patch \ 37 file://0016-version.c-don-t-print-build-flags.patch \
39 file://0017-Add-acinclude.m4-to-include-required-macros.patch \ 38 file://0017-Add-acinclude.m4-to-include-required-macros.patch \
40 file://0018-update-license-1.patch \
41 file://0019-update-license-2.patch \
42 file://0020-update-license-3.patch \
43 file://0001-don-t-load-legacy-provider-on-enable-fips-workaround.patch \
44 file://0002-don-t-load-legacy-provider-on-enable-fips-workaround.patch \
45" 39"
46 40
47raddbdir = "${sysconfdir}/${MLPREFIX}raddb" 41raddbdir = "${sysconfdir}/${MLPREFIX}raddb"
48 42
49SRCREV = "032be31bb52646171099617928ec1703335bcf73" 43SRCREV = "4e4cbbd93ff3b469a773c964c7b5b6f53d01457a"
44
45PV .= "+git"
50 46
51UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)" 47UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)"
52 48
@@ -55,6 +51,8 @@ CVE_STATUS[CVE-2011-4966] = "fixed-version: The CPE in the NVD database doesn't
55 51
56PARALLEL_MAKE = "" 52PARALLEL_MAKE = ""
57 53
54# autoconf 2.73+Clang does not detect it correctly so help out
55CFLAGS += "-DTLS_STORAGE_CLASS=__thread"
58 56
59LDFLAGS:append:powerpc = " -latomic" 57LDFLAGS:append:powerpc = " -latomic"
60LDFLAGS:append:mipsarch = " -latomic" 58LDFLAGS:append:mipsarch = " -latomic"
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.10.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.10.bb
deleted file mode 100644
index b126aee7db..0000000000
--- a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.10.bb
+++ /dev/null
@@ -1,79 +0,0 @@
1SUMMARY = "Lightweight crypto and SSL/TLS library"
2DESCRIPTION = "mbedtls is a lean open source crypto library \
3for providing SSL and TLS support in your programs. It offers \
4an intuitive API and documented header files, so you can actually \
5understand what the code does. It features: \
6 \
7 - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
8 Camellia and XTEA \
9 - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
10 - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
11 - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
12 ECDSA and ECDH \
13 - SSL v3 and TLS 1.0, 1.1 and 1.2 \
14 - Abstraction layers for ciphers, hashes, public key operations, \
15 platform abstraction and threading \
16"
17
18HOMEPAGE = "https://tls.mbed.org/"
19
20LICENSE = "Apache-2.0 | GPL-2.0-or-later"
21LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
22
23SECTION = "libs"
24
25SRCREV = "2fc8413bfcb51354c8e679141b17b3f1a5942561"
26SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=archive/mbedtls-2.28;tag=${BPN} \
27 file://run-ptest \
28 "
29
30inherit cmake update-alternatives ptest
31
32PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
33PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
34PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
35PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
36# Make X.509 and TLS calls use PSA
37# https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md
38PACKAGECONFIG[psa] = ""
39PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF"
40
41EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}"
42
43# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
44CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
45
46PROVIDES += "polarssl"
47RPROVIDES:${PN} = "polarssl"
48
49PACKAGES =+ "${PN}-programs"
50FILES:${PN}-programs = "${bindir}/"
51
52ALTERNATIVE:${PN}-programs = "${@bb.utils.contains('PACKAGECONFIG', 'programs', 'hello', '', d)}"
53ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
54
55BBCLASSEXTEND = "native nativesdk"
56
57CVE_PRODUCT = "mbed_tls"
58
59CVE_STATUS[CVE-2021-43666] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310"
60CVE_STATUS[CVE-2021-45451] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c"
61
62# Strip host paths from autogenerated test files
63do_compile:append() {
64 sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
65 sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || :
66}
67
68# Export source files/headers needed by Arm Trusted Firmware
69sysroot_stage_all:append() {
70 sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
71 sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include"
72}
73
74do_install_ptest () {
75 install -d ${D}${PTEST_PATH}/tests
76 cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/
77 find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete
78 cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/
79}
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.5.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.6.bb
index bc2ff8ffb5..23d5c0878f 100644
--- a/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.5.bb
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.6.bb
@@ -27,7 +27,7 @@ SRC_URI = "gitsm://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=mbedtls
27 file://run-ptest \ 27 file://run-ptest \
28 " 28 "
29 29
30SRCREV = "e185d7fd85499c8ce5ca2a54f5cf8fe7dbe3f8df" 30SRCREV = "0bebf8b8c7f07abe3571ded48a11aa907a1ffb20"
31 31
32UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 32UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
33 33
diff --git a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.1.2.bb b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.1.2.bb
index 6a6e554453..8bb6c9009d 100644
--- a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.1.2.bb
+++ b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.1.2.bb
@@ -57,6 +57,8 @@ do_install:append() {
57 -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ 57 -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
58 -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 58 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
59 ${D}${sysconfdir}/init.d/mosquitto 59 ${D}${sysconfdir}/init.d/mosquitto
60
61 install -m 0644 ${S}/mosquitto.conf ${D}${sysconfdir}/mosquitto/mosquitto.conf
60} 62}
61 63
62PACKAGE_BEFORE_PN = "libmosquitto1 libmosquittopp1 ${PN}-clients ${PN}-examples" 64PACKAGE_BEFORE_PN = "libmosquitto1 libmosquittopp1 ${PN}-clients ${PN}-examples"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
index f9fc9f3966..b04ad90738 100644
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb
@@ -311,4 +311,9 @@ do_install:append() {
311 if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then 311 if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then
312 install -Dm 0644 ${UNPACKDIR}/enable-dhcpcd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-dhcpcd.conf 312 install -Dm 0644 ${UNPACKDIR}/enable-dhcpcd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-dhcpcd.conf
313 fi 313 fi
314
315 # Don't ship initrd specific services into rootfs to avoid the conflict with the main services
316 rm -f ${D}${systemd_system_unitdir}/NetworkManager-config-initrd.service
317 rm -f ${D}${systemd_system_unitdir}/NetworkManager-initrd.service
318 rm -f ${D}${systemd_system_unitdir}/NetworkManager-wait-online-initrd.service
314} 319}
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
index a498348c20..afa1154827 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
@@ -9,25 +9,14 @@ Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
9 9
10Rebase to 4.14.4 10Rebase to 4.14.4
11Signed-off-by: Yi Zhao <yi.zhao@windriver.com> 11Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
12
13Rebase to 4.23.5
14Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
12--- 15---
13 lib/ldb/wscript | 2 +-
14 lib/talloc/wscript | 2 +- 16 lib/talloc/wscript | 2 +-
15 lib/tdb/wscript | 2 +- 17 lib/tdb/wscript | 2 +-
16 3 files changed, 3 insertions(+), 3 deletions(-) 18 2 files changed, 2 insertions(+), 2 deletions(-)
17 19
18diff --git a/lib/ldb/wscript b/lib/ldb/wscript
19index ed5d45f..de3c648 100644
20--- a/lib/ldb/wscript
21+++ b/lib/ldb/wscript
22@@ -144,7 +144,7 @@ def configure(conf):
23 conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2]))
24
25 if conf.env.standalone_ldb:
26- conf.CHECK_XSLTPROC_MANPAGES()
27+ #conf.CHECK_XSLTPROC_MANPAGES()
28
29 # we need this for the ldap backend
30 if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
31diff --git a/lib/talloc/wscript b/lib/talloc/wscript 20diff --git a/lib/talloc/wscript b/lib/talloc/wscript
32index 075f1ec..9bd9f73 100644 21index 075f1ec..9bd9f73 100644
33--- a/lib/talloc/wscript 22--- a/lib/talloc/wscript
diff --git a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
index 2c9d29c9fe..70e7f28cc7 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
@@ -37,10 +37,10 @@ diff --git a/wscript b/wscript
37index 95ddd9e..6d9577a 100644 37index 95ddd9e..6d9577a 100644
38--- a/wscript 38--- a/wscript
39+++ b/wscript 39+++ b/wscript
40@@ -123,6 +123,13 @@ def options(opt): 40@@ -131,6 +131,13 @@
41 help=('Disable kernely keyring support for credential storage'), 41 help=('Disable kernely keyring support for credential storage'),
42 action='store_false', dest='enable_keyring') 42 action='store_false', dest='enable_keyring')
43 43
44+ opt.add_option('--with-valgrind', 44+ opt.add_option('--with-valgrind',
45+ help=("Enable use of valgrind"), 45+ help=("Enable use of valgrind"),
46+ action="store_true", dest='enable_valgrind') 46+ action="store_true", dest='enable_valgrind')
@@ -48,9 +48,6 @@ index 95ddd9e..6d9577a 100644
48+ help=("Disable use of valgrind"), 48+ help=("Disable use of valgrind"),
49+ action="store_false", dest='enable_valgrind', default=False) 49+ action="store_false", dest='enable_valgrind', default=False)
50+ 50+
51 gr = opt.option_group('developer options') 51 opt.samba_add_onoff_option('ldap')
52
53 opt.load('python') # options for disabling pyc or pyo compilation
54--
552.25.1
56 52
53 opt.option_group('developer options')
diff --git a/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch b/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
index a96cd062cd..74ea1a7ab4 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Replace-memset_s-with-memset_explicit.patch
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 15
16--- a/lib/replace/replace.h 16--- a/lib/replace/replace.h
17+++ b/lib/replace/replace.h 17+++ b/lib/replace/replace.h
18@@ -815,50 +815,50 @@ typedef unsigned long long ptrdiff_t ; 18@@ -811,50 +811,50 @@ typedef unsigned long long ptrdiff_t ;
19 /** 19 /**
20 * Zero a structure. 20 * Zero a structure.
21 */ 21 */
@@ -74,7 +74,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
74 74
75 /** 75 /**
76 * Explicitly zero data in string. This is guaranteed to be not optimized 76 * Explicitly zero data in string. This is guaranteed to be not optimized
77@@ -867,7 +867,7 @@ typedef unsigned long long ptrdiff_t ; 77@@ -863,7 +863,7 @@ typedef unsigned long long ptrdiff_t ;
78 #define BURN_STR(x) do { \ 78 #define BURN_STR(x) do { \
79 if ((x) != NULL) { \ 79 if ((x) != NULL) { \
80 size_t s = strlen(x); \ 80 size_t s = strlen(x); \
@@ -193,116 +193,3 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
193 193
194 talloc_free(mem_ctx); 194 talloc_free(mem_ctx);
195 } 195 }
196--- a/lib/cmdline/cmdline.c
197+++ b/lib/cmdline/cmdline.c
198@@ -358,7 +358,7 @@ bool samba_cmdline_burn(int argc, char *
199 p += ulen;
200 }
201
202- memset_s(p, strlen(p), '\0', strlen(p));
203+ memset_explicit(p, '\0', strlen(p));
204 burnt = true;
205 }
206 }
207--- a/lib/util/data_blob.c
208+++ b/lib/util/data_blob.c
209@@ -1,19 +1,19 @@
210-/*
211+/*
212 Unix SMB/CIFS implementation.
213 Easy management of byte-length data
214 Copyright (C) Andrew Tridgell 2001
215 Copyright (C) Andrew Bartlett 2001
216-
217+
218 This program is free software; you can redistribute it and/or modify
219 it under the terms of the GNU General Public License as published by
220 the Free Software Foundation; either version 3 of the License, or
221 (at your option) any later version.
222-
223+
224 This program is distributed in the hope that it will be useful,
225 but WITHOUT ANY WARRANTY; without even the implied warranty of
226 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
227 GNU General Public License for more details.
228-
229+
230 You should have received a copy of the GNU General Public License
231 along with this program. If not, see <http://www.gnu.org/licenses/>.
232 */
233@@ -67,7 +67,7 @@ _PUBLIC_ DATA_BLOB data_blob_talloc_name
234 }
235
236 /**
237- construct a zero data blob, using supplied TALLOC_CTX.
238+ construct a zero data blob, using supplied TALLOC_CTX.
239 use this sparingly as it initialises data - better to initialise
240 yourself if you want specific data in the blob
241 **/
242@@ -95,7 +95,7 @@ clear a DATA_BLOB's contents
243 _PUBLIC_ void data_blob_clear(DATA_BLOB *d)
244 {
245 if (d->data) {
246- memset_s(d->data, d->length, 0, d->length);
247+ memset_explicit(d->data, 0, d->length);
248 }
249 }
250
251@@ -219,7 +219,7 @@ _PUBLIC_ DATA_BLOB data_blob_string_cons
252 }
253
254 /**
255- * Create a new data blob from const data
256+ * Create a new data blob from const data
257 */
258
259 _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
260@@ -266,7 +266,7 @@ _PUBLIC_ bool data_blob_append(TALLOC_CT
261 if ((const uint8_t *)p + length < (const uint8_t *)p) {
262 return false;
263 }
264-
265+
266 if (!data_blob_realloc(mem_ctx, blob, new_len)) {
267 return false;
268 }
269--- a/lib/util/talloc_keep_secret.c
270+++ b/lib/util/talloc_keep_secret.c
271@@ -22,27 +22,13 @@
272
273 static int talloc_keep_secret_destructor(void *ptr)
274 {
275- int ret;
276 size_t size = talloc_get_size(ptr);
277
278 if (unlikely(size == 0)) {
279 return 0;
280 }
281
282- ret = memset_s(ptr, size, 0, size);
283- if (unlikely(ret != 0)) {
284- char *msg = NULL;
285- int ret2;
286- ret2 = asprintf(&msg,
287- "talloc_keep_secret_destructor: memset_s() failed: %s",
288- strerror(ret));
289- if (ret2 != -1) {
290- smb_panic(msg);
291- } else {
292- smb_panic("talloc_keep_secret_destructor: memset_s() failed");
293- }
294- }
295-
296+ memset_explicit(ptr, 0, size);
297 return 0;
298 }
299
300--- a/librpc/ndr/util.c
301+++ b/librpc/ndr/util.c
302@@ -32,5 +32,5 @@ _PUBLIC_ void ndr_print_sockaddr_storage
303
304 _PUBLIC_ void ndr_zero_memory(void *ptr, size_t len)
305 {
306- memset_s(ptr, len, 0, len);
307+ memset_explicit(ptr, 0, len);
308 }
diff --git a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
index c72bd133ee..88acfeef07 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
@@ -19,7 +19,7 @@ diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
19index 30cb366..d167551 100644 19index 30cb366..d167551 100644
20--- a/buildtools/wafsamba/wscript 20--- a/buildtools/wafsamba/wscript
21+++ b/buildtools/wafsamba/wscript 21+++ b/buildtools/wafsamba/wscript
22@@ -145,6 +145,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''), 22@@ -155,6 +155,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''),
23 help=("Disable use of gettext"), 23 help=("Disable use of gettext"),
24 action="store_true", dest='disable_gettext', default=False) 24 action="store_true", dest='disable_gettext', default=False)
25 25
@@ -37,40 +37,60 @@ diff --git a/lib/replace/wscript b/lib/replace/wscript
37index 9dd9b48..a22ae59 100644 37index 9dd9b48..a22ae59 100644
38--- a/lib/replace/wscript 38--- a/lib/replace/wscript
39+++ b/lib/replace/wscript 39+++ b/lib/replace/wscript
40@@ -444,20 +444,21 @@ def configure(conf): 40@@ -444,31 +444,32 @@
41 41
42 strlcpy_in_bsd = False 42 strlcpy_in_bsd = False
43 43
44- # libbsd on some platforms provides strlcpy and strlcat 44- # libbsd on some platforms provides strlcpy and strlcat
45- if not conf.CHECK_FUNCS('strlcpy strlcat'): 45- if not conf.CHECK_FUNCS('strlcpy strlcat'):
46- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', 46- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
47- checklibc=True): 47- checklibc=True):
48- strlcpy_in_bsd = True 48- strlcpy_in_bsd = True
49- if not conf.CHECK_FUNCS('getpeereid'): 49- elif conf.env.enable_fuzzing:
50- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') 50- # Just to complicate it more, some versions of Honggfuzz have
51- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): 51- # got strlcpy and strlcat in libc, but not in <string.h>
52- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') 52- # (unless it is there coincidentally, on a BSD). Therefore we
53- if not conf.CHECK_FUNCS('setproctitle_init'): 53- # can't use CHECK_FUNCS alone to decide whether to add the
54- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') 54- # headers to replace.h.
55- 55- #
56- if not conf.CHECK_FUNCS('closefrom'): 56- # As this is only known to happen on a fuzzing compiler, we'll
57- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') 57- # skip the check when not in fuzzing mode.
58- conf.CHECK_HEADERS('bsd/string.h')
58+ if Options.options.enable_libbsd: 59+ if Options.options.enable_libbsd:
59+ # libbsd on some platforms provides strlcpy and strlcat 60+ # libbsd on some platforms provides strlcpy and strlcat
60+ if not conf.CHECK_FUNCS('strlcpy strlcat'): 61+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
61+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', 62+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
62+ checklibc=True): 63+ checklibc=True):
63+ strlcpy_in_bsd = True 64+ strlcpy_in_bsd = True
65+ elif conf.env.enable_fuzzing:
66+ # Just to complicate it more, some versions of Honggfuzz have
67+ # got strlcpy and strlcat in libc, but not in <string.h>
68+ # (unless it is there coincidentally, on a BSD). Therefore we
69+ # can't use CHECK_FUNCS alone to decide whether to add the
70+ # headers to replace.h.
71+ #
72+ # As this is only known to happen on a fuzzing compiler, we'll
73+ # skip the check when not in fuzzing mode.
74+ conf.CHECK_HEADERS('bsd/string.h')
75
76- if not conf.CHECK_FUNCS('getpeereid'):
77- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
78- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
79- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
80- if not conf.CHECK_FUNCS('setproctitle_init'):
81- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
64+ if not conf.CHECK_FUNCS('getpeereid'): 82+ if not conf.CHECK_FUNCS('getpeereid'):
65+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') 83+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
66+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): 84+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
67+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') 85+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
68+ if not conf.CHECK_FUNCS('setproctitle_init'): 86+ if not conf.CHECK_FUNCS('setproctitle_init'):
69+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') 87+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
70+ 88
89- if not conf.CHECK_FUNCS('closefrom'):
90- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
71+ if not conf.CHECK_FUNCS('closefrom'): 91+ if not conf.CHECK_FUNCS('closefrom'):
72+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') 92+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
73 93
74 conf.CHECK_CODE(''' 94 conf.CHECK_CODE('''
75 struct ucred cred; 95 struct ucred cred;
76diff --git a/lib/texpect/wscript b/lib/texpect/wscript 96diff --git a/lib/texpect/wscript b/lib/texpect/wscript
diff --git a/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch b/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
index 409c36da7c..6e01ae35e7 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-lib-replace-Remove-memset_s.patch
@@ -24,7 +24,7 @@ diff --git a/lib/replace/README b/lib/replace/README
24index bb9d008..d8431e7 100644 24index bb9d008..d8431e7 100644
25--- a/lib/replace/README 25--- a/lib/replace/README
26+++ b/lib/replace/README 26+++ b/lib/replace/README
27@@ -74,7 +74,6 @@ realpath 27@@ -73,7 +73,6 @@ realpath
28 poll 28 poll
29 setproctitle 29 setproctitle
30 memset_explicit 30 memset_explicit
@@ -36,219 +36,10 @@ diff --git a/lib/replace/replace.c b/lib/replace/replace.c
36index 8615899..a419837 100644 36index 8615899..a419837 100644
37--- a/lib/replace/replace.c 37--- a/lib/replace/replace.c
38+++ b/lib/replace/replace.c 38+++ b/lib/replace/replace.c
39@@ -1,4 +1,4 @@ 39@@ -965,37 +965,6 @@
40-/*
41+/*
42 Unix SMB/CIFS implementation.
43 replacement routines for broken systems
44 Copyright (C) Andrew Tridgell 1992-1998
45@@ -8,7 +8,7 @@
46 ** NOTE! The following LGPL license applies to the replace
47 ** library. This does NOT imply that all of Samba is released
48 ** under the LGPL
49-
50+
51 This library is free software; you can redistribute it and/or
52 modify it under the terms of the GNU Lesser General Public
53 License as published by the Free Software Foundation; either
54@@ -91,7 +91,7 @@ size_t rep_strlcpy(char *d, const char *s, size_t bufsize)
55 #endif
56
57 #ifndef HAVE_STRLCAT
58-/* like strncat but does not 0 fill the buffer and always null
59+/* like strncat but does not 0 fill the buffer and always null
60 terminates. bufsize is the length of the buffer, which should
61 be one more than the maximum resulting string length */
62 size_t rep_strlcat(char *d, const char *s, size_t bufsize)
63@@ -116,7 +116,7 @@ size_t rep_strlcat(char *d, const char *s, size_t bufsize)
64
65 #ifndef HAVE_MKTIME
66 /*******************************************************************
67-a mktime() replacement for those who don't have it - contributed by
68+a mktime() replacement for those who don't have it - contributed by
69 C.A. Lademann <cal@zls.com>
70 Corrections by richard.kettlewell@kewill.com
71 ********************************************************************/
72@@ -137,7 +137,7 @@ time_t rep_mktime(struct tm *t)
73 return((time_t)-1);
74
75 n = t->tm_year + 1900 - 1;
76- epoch = (t->tm_year - 70) * YEAR +
77+ epoch = (t->tm_year - 70) * YEAR +
78 ((n / 4 - n / 100 + n / 400) - (1969 / 4 - 1969 / 100 + 1969 / 400)) * DAY;
79
80 y = t->tm_year + 1900;
81@@ -147,7 +147,7 @@ time_t rep_mktime(struct tm *t)
82 epoch += mon [m] * DAY;
83 if(m == 1 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0))
84 epoch += DAY;
85-
86+
87 if(++m > 11) {
88 m = 0;
89 y++;
90@@ -156,7 +156,7 @@ time_t rep_mktime(struct tm *t)
91
92 epoch += (t->tm_mday - 1) * DAY;
93 epoch += t->tm_hour * HOUR + t->tm_min * MINUTE + t->tm_sec;
94-
95+
96 if((u = localtime(&epoch)) != NULL) {
97 t->tm_sec = u->tm_sec;
98 t->tm_min = u->tm_min;
99@@ -176,7 +176,7 @@ time_t rep_mktime(struct tm *t)
100
101 #ifndef HAVE_INITGROUPS
102 /****************************************************************************
103- some systems don't have an initgroups call
104+ some systems don't have an initgroups call
105 ****************************************************************************/
106 int rep_initgroups(char *name, gid_t id)
107 {
108@@ -194,7 +194,7 @@ int rep_initgroups(char *name, gid_t id)
109 int i,j;
110 struct group *g;
111 char *gr;
112-
113+
114 if((grouplst = malloc(sizeof(gid_t) * max_gr)) == NULL) {
115 errno = ENOMEM;
116 return -1;
117@@ -250,9 +250,9 @@ void *rep_memmove(void *dest,const void *src,int size)
118
119 if (d < s) {
120 /* we can forward copy */
121- if (s-d >= sizeof(int) &&
122- !(s%sizeof(int)) &&
123- !(d%sizeof(int)) &&
124+ if (s-d >= sizeof(int) &&
125+ !(s%sizeof(int)) &&
126+ !(d%sizeof(int)) &&
127 !(size%sizeof(int))) {
128 /* do it all as words */
129 int *idest = (int *)dest;
130@@ -267,9 +267,9 @@ void *rep_memmove(void *dest,const void *src,int size)
131 }
132 } else {
133 /* must backward copy */
134- if (d-s >= sizeof(int) &&
135- !(s%sizeof(int)) &&
136- !(d%sizeof(int)) &&
137+ if (d-s >= sizeof(int) &&
138+ !(s%sizeof(int)) &&
139+ !(d%sizeof(int)) &&
140 !(size%sizeof(int))) {
141 /* do it all as words */
142 int *idest = (int *)dest;
143@@ -281,7 +281,7 @@ void *rep_memmove(void *dest,const void *src,int size)
144 char *cdest = (char *)dest;
145 char *csrc = (char *)src;
146 for (i=size-1;i>=0;i--) cdest[i] = csrc[i];
147- }
148+ }
149 }
150 return(dest);
151 }
152@@ -334,16 +334,16 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist)
153 size_t rep_strnlen(const char *s, size_t max)
154 {
155 size_t len;
156-
157+
158 for (len = 0; len < max; len++) {
159 if (s[len] == '\0') {
160 break;
161 }
162 }
163- return len;
164+ return len;
165 } 40 }
166 #endif 41 #endif
167- 42
168+
169 #ifndef HAVE_STRNDUP
170 /**
171 Some platforms don't have strndup.
172@@ -351,7 +351,7 @@ void rep_vsyslog (int facility_priority, const char *format, va_list arglist)
173 char *rep_strndup(const char *s, size_t n)
174 {
175 char *ret;
176-
177+
178 n = strnlen(s, n);
179 ret = malloc(n+1);
180 if (!ret)
181@@ -407,7 +407,7 @@ int rep_chroot(const char *dname)
182
183 /*****************************************************************
184 Possibly replace mkstemp if it is broken.
185-*****************************************************************/
186+*****************************************************************/
187
188 #ifndef HAVE_SECURE_MKSTEMP
189 int rep_mkstemp(char *template)
190@@ -425,7 +425,7 @@ int rep_mkstemp(char *template)
191 char *rep_mkdtemp(char *template)
192 {
193 char *dname;
194-
195+
196 if ((dname = mktemp(template))) {
197 if (mkdir(dname, 0700) >= 0) {
198 return dname;
199@@ -532,7 +532,7 @@ long long int rep_strtoll(const char *str, char **endptr, int base)
200 {
201 #ifdef HAVE_STRTOQ
202 return strtoq(str, endptr, base);
203-#elif defined(HAVE___STRTOLL)
204+#elif defined(HAVE___STRTOLL)
205 return __strtoll(str, endptr, base);
206 #elif SIZEOF_LONG == SIZEOF_LONG_LONG
207 return (long long int) strtol(str, endptr, base);
208@@ -568,7 +568,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
209 {
210 #ifdef HAVE_STRTOUQ
211 return strtouq(str, endptr, base);
212-#elif defined(HAVE___STRTOULL)
213+#elif defined(HAVE___STRTOULL)
214 return __strtoull(str, endptr, base);
215 #elif SIZEOF_LONG == SIZEOF_LONG_LONG
216 return (unsigned long long int) strtoul(str, endptr, base);
217@@ -599,7 +599,7 @@ unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
218 #endif /* HAVE_STRTOULL */
219
220 #ifndef HAVE_SETENV
221-int rep_setenv(const char *name, const char *value, int overwrite)
222+int rep_setenv(const char *name, const char *value, int overwrite)
223 {
224 char *p;
225 size_t l1, l2;
226@@ -644,10 +644,10 @@ int rep_unsetenv(const char *name)
227 for (i=0;environ[i];i++) /* noop */ ;
228
229 count=i;
230-
231+
232 for (i=0;i<count;) {
233 if (strncmp(environ[i], name, len) == 0 && environ[i][len] == '=') {
234- /* note: we do _not_ free the old variable here. It is unsafe to
235+ /* note: we do _not_ free the old variable here. It is unsafe to
236 do so, as the pointer may not have come from malloc */
237 memmove(&environ[i], &environ[i+1], (count-i)*sizeof(char *));
238 count--;
239@@ -688,7 +688,7 @@ int rep_utimes(const char *filename, const struct timeval tv[2])
240 #endif
241
242 #ifndef HAVE_DUP2
243-int rep_dup2(int oldfd, int newfd)
244+int rep_dup2(int oldfd, int newfd)
245 {
246 errno = ENOSYS;
247 return -1;
248@@ -965,37 +965,6 @@ void *rep_memset_explicit(void *block, int c, size_t size)
249 }
250 #endif
251
252-#ifndef HAVE_MEMSET_S 43-#ifndef HAVE_MEMSET_S
253-# ifndef RSIZE_MAX 44-# ifndef RSIZE_MAX
254-# define RSIZE_MAX (SIZE_MAX >> 1) 45-# define RSIZE_MAX (SIZE_MAX >> 1)
@@ -267,7 +58,7 @@ index 8615899..a419837 100644
267- } 58- }
268- 59-
269-#if defined(HAVE_MEMSET_EXPLICIT) 60-#if defined(HAVE_MEMSET_EXPLICIT)
270- memset_explicit(dest, destsz, ch, count); 61- memset_explicit(dest, ch, count);
271-#else /* HAVE_MEMSET_EXPLICIT */ 62-#else /* HAVE_MEMSET_EXPLICIT */
272- memset(dest, ch, count); 63- memset(dest, ch, count);
273-# if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION) 64-# if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION)
diff --git a/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch b/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch
deleted file mode 100644
index e07e86e887..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/9aa5c43315d83c19514251a11c4fba5a137f2821.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1From 9aa5c43315d83c19514251a11c4fba5a137f2821 Mon Sep 17 00:00:00 2001
2From: Andreas Schneider <asn@samba.org>
3Date: Tue, 21 Jan 2025 17:59:27 +0100
4Subject: [PATCH] lib:replace: Don't use deprecated readline CPPFunction cast
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9HAVE_RL_COMPLETION_FUNC_T was unused and not checking for the right
10function.
11
12libcli/smbreadline/smbreadline.c: In function ‘smb_readline’:
13libcli/smbreadline/smbreadline.c:139:17: warning: ‘CPPFunction’ is deprecated [-Wdeprecated-declarations]
14 139 | rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
15 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16libcli/smbreadline/smbreadline.c:139:50: error: assignment to ‘char ** (*)(const char *, int, int)’ from incompatible pointer type ‘char ** (*)(void)’ [-Wincompatible-pointer-types]
17 139 | rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
18 | ^
19
20BUG: https://bugzilla.samba.org/show_bug.cgi?id=15788
21
22Signed-off-by: Andreas Schneider <asn@samba.org>
23Reviewed-by: Alexander Bokovoy <ab@samba.org>
24
25Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
26Autobuild-Date(master): Tue Jan 21 19:38:37 UTC 2025 on atb-devel-224
27
28Upstream-Status: Backport [https://github.com/samba-team/samba/commit/9aa5c43315d83c19514251a11c4fba5a137f2821]
29
30Signed-off-by: Markus Volk <f_l_k@t-online.de>
31---
32 lib/replace/system/readline.h | 4 +++-
33 libcli/smbreadline/wscript_configure | 8 +++++---
34 2 files changed, 8 insertions(+), 4 deletions(-)
35
36diff --git a/lib/replace/system/readline.h b/lib/replace/system/readline.h
37index 9a9af266ca6d..ac3604fc12e0 100644
38--- a/lib/replace/system/readline.h
39+++ b/lib/replace/system/readline.h
40@@ -46,7 +46,9 @@
41 #endif
42
43 #ifdef HAVE_NEW_LIBREADLINE
44-#ifdef HAVE_CPPFUNCTION
45+#if defined(HAVE_RL_COMPLETION_FUNC_T)
46+# define RL_COMPLETION_CAST (rl_completion_func_t *)
47+#elif defined(HAVE_CPPFUNCTION)
48 # define RL_COMPLETION_CAST (CPPFunction *)
49 #elif defined(HAVE_RL_COMPLETION_T)
50 # define RL_COMPLETION_CAST (rl_completion_t *)
51diff --git a/libcli/smbreadline/wscript_configure b/libcli/smbreadline/wscript_configure
52index 912ff53a150d..f5a401ebae00 100644
53--- a/libcli/smbreadline/wscript_configure
54+++ b/libcli/smbreadline/wscript_configure
55@@ -51,10 +51,12 @@ conf.CHECK_CODE('''
56 # endif
57 # endif
58 #endif
59-int main(void) {rl_completion_t f; return 0;}
60+int main(void) {rl_completion_func_t f; return 0;}
61 ''',
62-'HAVE_RL_COMPLETION_FUNC_T', execute=False, addmain=False,
63-msg='Checking for rl_completion_t')
64+ 'HAVE_RL_COMPLETION_FUNC_T',
65+ execute=False,
66+ addmain=False,
67+ msg='Checking for rl_completion_func_t')
68
69 conf.CHECK_CODE('''
70 #ifdef HAVE_READLINE_READLINE_H
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.19.9.bb b/meta-networking/recipes-connectivity/samba/samba_4.23.5.bb
index 3ed1d46754..ec3149562a 100644
--- a/meta-networking/recipes-connectivity/samba/samba_4.19.9.bb
+++ b/meta-networking/recipes-connectivity/samba/samba_4.23.5.bb
@@ -14,6 +14,10 @@ ${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
14 14
15export PYTHONHASHSEED = "1" 15export PYTHONHASHSEED = "1"
16 16
17# If XML_CATALOG_FILES env var is not defined, waf defaults
18# to build host folders looking for catalogs.
19export XML_CATALOG_FILES = ""
20
17SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ 21SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
18 file://smb.conf \ 22 file://smb.conf \
19 file://volatiles.03_samba \ 23 file://volatiles.03_samba \
@@ -24,7 +28,6 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
24 file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \ 28 file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \
25 file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \ 29 file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \
26 file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \ 30 file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \
27 file://9aa5c43315d83c19514251a11c4fba5a137f2821.patch \
28 file://0001-lib-replace-Implement-memset_explicit.patch \ 31 file://0001-lib-replace-Implement-memset_explicit.patch \
29 file://0002-lib-replace-Add-test-for-memset_explicit.patch \ 32 file://0002-lib-replace-Add-test-for-memset_explicit.patch \
30 file://0003-Replace-memset_s-with-memset_explicit.patch \ 33 file://0003-Replace-memset_s-with-memset_explicit.patch \
@@ -36,7 +39,7 @@ SRC_URI:append:libc-musl = " \
36 file://samba-4.3.9-remove-getpwent_r.patch \ 39 file://samba-4.3.9-remove-getpwent_r.patch \
37 " 40 "
38 41
39SRC_URI[sha256sum] = "71ed406444714c90bb9d36c576d807b67af15449f297e91106d42b3ca2fa5549" 42SRC_URI[sha256sum] = "593a43ddd0d57902237dfa76888f7b02cb7fc7747111369cb31e126db4836b9f"
40 43
41UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz" 44UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz"
42 45
@@ -47,7 +50,7 @@ CVE_STATUS[CVE-2011-2411] = "not-applicable-platform: vulnerable only on HP NonS
47# remove default added RDEPENDS on perl 50# remove default added RDEPENDS on perl
48RDEPENDS:${PN}:remove = "perl" 51RDEPENDS:${PN}:remove = "perl"
49 52
50DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka" 53DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka ngtcp2 bison-native"
51 54
52inherit features_check 55inherit features_check
53REQUIRED_DISTRO_FEATURES = "pam" 56REQUIRED_DISTRO_FEATURES = "pam"
@@ -62,7 +65,7 @@ INITSCRIPT_NAME = "samba"
62INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." 65INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
63 66
64SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb" 67SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb"
65SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service" 68SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service samba-bgqd.service"
66SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}" 69SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
67SYSTEMD_SERVICE:winbind = "winbind.service" 70SYSTEMD_SERVICE:winbind = "winbind.service"
68SYSTEMD_SERVICE:ctdb = "ctdb.service" 71SYSTEMD_SERVICE:ctdb = "ctdb.service"
@@ -109,7 +112,7 @@ SAMBA4_MODULES = "${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MO
109# .so files so there will not be a conflict. This is not done consistantly, so be very careful 112# .so files so there will not be a conflict. This is not done consistantly, so be very careful
110# when adding to this list. 113# when adding to this list.
111# 114#
112SAMBA4_LIBS = "heimdal,NONE" 115SAMBA4_LIBS = "heimdal,libquic,NONE"
113 116
114EXTRA_OECONF += "--enable-fhs \ 117EXTRA_OECONF += "--enable-fhs \
115 --with-piddir=/run \ 118 --with-piddir=/run \
@@ -132,6 +135,19 @@ EXTRA_OECONF += "--enable-fhs \
132 135
133LDFLAGS += "-Wl,-z,relro,-z,now" 136LDFLAGS += "-Wl,-z,relro,-z,now"
134 137
138do_configure:prepend() {
139 # The xsltproc tool is actually a wrapper script in OE, which exports its own XML_CATALOG_FILES env var
140 # However samba does that too. So here I'm trying to concatenate the variables.
141 # The original looks like this in the wrapper:
142 # export XML_CATALOG_FILES=oe-core-specific-thing
143 # and this sed prepends the value with $XML_CATALOG_FILES, and encloses it in quotes. So the end value is
144 # export XML_CATALOG_FILES="$XML_CATALOG FILES oe-core-specific-thing"
145 # The first grep just checks if it was already done, so it is not prepended multiple times.
146
147 grep \$XML_CATALOG_FILES ${STAGING_BINDIR_NATIVE}/xsltproc || \
148 sed -i 's,\(XML_CATALOG_FILES\)=\(.*\),\1="\$XML_CATALOG_FILES \2",' ${STAGING_BINDIR_NATIVE}/xsltproc
149}
150
135do_configure:append() { 151do_configure:append() {
136 cd ${S}/pidl/ 152 cd ${S}/pidl/
137 perl Makefile.PL PREFIX=${prefix} 153 perl Makefile.PL PREFIX=${prefix}
@@ -213,6 +229,9 @@ do_install:append() {
213 find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete 229 find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete
214 find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete 230 find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete
215 sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl 231 sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
232
233 sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.c
234 sed -i 's,${UNPACKDIR},,g' ${S}/bin/default/libcli/wsp/wsp_aqs_lexer.h
216} 235}
217 236
218PACKAGES =+ "${PN}-python3 ${PN}-pidl \ 237PACKAGES =+ "${PN}-python3 ${PN}-pidl \
@@ -245,7 +264,7 @@ PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
245PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*" 264PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
246 265
247RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3" 266RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
248RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb" 267RDEPENDS:${PN}-python3 += "pytalloc python3-tdb"
249 268
250FILES:${PN}-base = "${sbindir}/nmbd \ 269FILES:${PN}-base = "${sbindir}/nmbd \
251 ${sbindir}/smbd \ 270 ${sbindir}/smbd \
diff --git a/meta-networking/recipes-connectivity/tailscale/tailscale-go-mods.inc b/meta-networking/recipes-connectivity/tailscale/tailscale-go-mods.inc
index 3cfea84a55..1f9bff8c39 100644
--- a/meta-networking/recipes-connectivity/tailscale/tailscale-go-mods.inc
+++ b/meta-networking/recipes-connectivity/tailscale/tailscale-go-mods.inc
@@ -1,43 +1,54 @@
1SRC_URI += " \ 1
2# This file has been generated by go-mod-update-modules.bbclass
3#
4# Do not modify it by hand, as the contents will be replaced when
5# running the update-modules task.
6
7SRC_URI += "\
2 gomod://filippo.io/edwards25519;version=v1.1.0;sha256sum=9ac43a686d06fdebd719f7af3866c87eb069302272dfb131007adf471c308b65 \ 8 gomod://filippo.io/edwards25519;version=v1.1.0;sha256sum=9ac43a686d06fdebd719f7af3866c87eb069302272dfb131007adf471c308b65 \
9 gomod://fyne.io/systray;version=v1.11.1-0.20250812065214-4856ac3adc3c;sha256sum=7782bef2e30904a5e34477f713a4c598b1ddf3b3a70deead056549ad22248311 \
10 gomod://github.com/Kodeworks/golang-image-ico;version=v0.0.0-20141118225523-73f0f4cfade9;sha256sum=1d677069e35c4a3e4f290e68c6e2391f6237aee9ce3f39448ed09a2ddab274b0 \
3 gomod://github.com/anmitsu/go-shlex;version=v0.0.0-20200514113438-38f4b401e2be;sha256sum=2a5cf7c9a2709f649fd508cbacb2be96e4fba4d534a28a122ee4d7574af40b5e \ 11 gomod://github.com/anmitsu/go-shlex;version=v0.0.0-20200514113438-38f4b401e2be;sha256sum=2a5cf7c9a2709f649fd508cbacb2be96e4fba4d534a28a122ee4d7574af40b5e \
4 gomod://github.com/aws/aws-sdk-go-v2;version=v1.36.0;sha256sum=ec276e274bbe39c35d3c2c8c1ec5cba494d6449cd8166d741676cdf0a9d1697b \ 12 gomod://github.com/atotto/clipboard;version=v0.1.4;sha256sum=d67b2c36c662751309fd2ec351df3651584bea840bd27be9a90702c3a238b43f \
13 gomod://github.com/aws/aws-sdk-go-v2;version=v1.41.0;sha256sum=869834493118f72f9349f5493959bcd8fc951fa236eecd0095c16322f5b2f53c \
5 gomod://github.com/aws/aws-sdk-go-v2/config;version=v1.29.5;sha256sum=ce165d37c7b1dfee2047137f1176c197dc397a5553ef6fc0dba799b21908475b \ 14 gomod://github.com/aws/aws-sdk-go-v2/config;version=v1.29.5;sha256sum=ce165d37c7b1dfee2047137f1176c197dc397a5553ef6fc0dba799b21908475b \
6 gomod://github.com/aws/aws-sdk-go-v2/credentials;version=v1.17.58;sha256sum=238cc4a98dde7bc3e94dc0f0005c4d988a244daaa9fe4fda706a781ec62bf7e2 \ 15 gomod://github.com/aws/aws-sdk-go-v2/credentials;version=v1.17.58;sha256sum=238cc4a98dde7bc3e94dc0f0005c4d988a244daaa9fe4fda706a781ec62bf7e2 \
7 gomod://github.com/aws/aws-sdk-go-v2/feature/ec2/imds;version=v1.16.27;sha256sum=408958244a10036461c3a3b27fcdaf20efa3af19168bd527b6617319a754309c \ 16 gomod://github.com/aws/aws-sdk-go-v2/feature/ec2/imds;version=v1.16.27;sha256sum=408958244a10036461c3a3b27fcdaf20efa3af19168bd527b6617319a754309c \
8 gomod://github.com/aws/aws-sdk-go-v2/internal/configsources;version=v1.3.31;sha256sum=7929b44beec37b00c9ee5269b0f109d7ccc2bb26a8528ab14e0f172076a41205 \ 17 gomod://github.com/aws/aws-sdk-go-v2/internal/configsources;version=v1.4.16;sha256sum=5bd82543507e01fab6a9344a995a431682f4061770b25005f9116f43ae539ac4 \
9 gomod://github.com/aws/aws-sdk-go-v2/internal/endpoints/v2;version=v2.6.31;sha256sum=6ae31e302c828ecf80310e85059c49ce44668b8c62aa52fa964b0d745a6f62b1 \ 18 gomod://github.com/aws/aws-sdk-go-v2/internal/endpoints/v2;version=v2.7.16;sha256sum=0a4cc94f6843c9c50a1839783123b4664a07d5a67d8a49157304f8550c0c2e39 \
10 gomod://github.com/aws/aws-sdk-go-v2/internal/ini;version=v1.8.2;sha256sum=53d1a9a401283711118c91e6e9fdb8193ce6430ca4bbe6b5454bcaaa51e81de0 \ 19 gomod://github.com/aws/aws-sdk-go-v2/internal/ini;version=v1.8.2;sha256sum=53d1a9a401283711118c91e6e9fdb8193ce6430ca4bbe6b5454bcaaa51e81de0 \
11 gomod://github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding;version=v1.12.2;sha256sum=6ab252b3b962a6b34f0107583f6ff8e4a68e02dcd8df9573e895e5ca60ff139c \ 20 gomod://github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding;version=v1.13.4;sha256sum=e9b9e131812d339f4ac2b20bb504caf1cde680e048e15688bd8126ecd300e5e2 \
12 gomod://github.com/aws/aws-sdk-go-v2/service/internal/presigned-url;version=v1.12.12;sha256sum=a92f4383630fa976eeb484b051a6224a8d1d277c4b3ca93a40cce57d06cbbec2 \ 21 gomod://github.com/aws/aws-sdk-go-v2/service/internal/presigned-url;version=v1.13.16;sha256sum=1ba321f470ad6ce8673c303386f15136b8fa2f86b23e6a181dbf5c74cb84ef7b \
13 gomod://github.com/aws/aws-sdk-go-v2/service/ssm;version=v1.44.7;sha256sum=e09b97aa37ffd7c003a8a2e7574668e92eabd267d2a78d22fb440bcd93a61e46 \ 22 gomod://github.com/aws/aws-sdk-go-v2/service/ssm;version=v1.44.7;sha256sum=e09b97aa37ffd7c003a8a2e7574668e92eabd267d2a78d22fb440bcd93a61e46 \
14 gomod://github.com/aws/aws-sdk-go-v2/service/sso;version=v1.24.14;sha256sum=9196a430068584c9d1e621aff0a45b32adaf190b4363dddda8b341901e188f51 \ 23 gomod://github.com/aws/aws-sdk-go-v2/service/sso;version=v1.24.14;sha256sum=9196a430068584c9d1e621aff0a45b32adaf190b4363dddda8b341901e188f51 \
15 gomod://github.com/aws/aws-sdk-go-v2/service/ssooidc;version=v1.28.13;sha256sum=acaeca3476410d64512a4d9feefd6c8d16effa76718f72db4ba7b786c7fcc398 \ 24 gomod://github.com/aws/aws-sdk-go-v2/service/ssooidc;version=v1.28.13;sha256sum=acaeca3476410d64512a4d9feefd6c8d16effa76718f72db4ba7b786c7fcc398 \
16 gomod://github.com/aws/aws-sdk-go-v2/service/sts;version=v1.33.13;sha256sum=1800e76ad35287ca7067374b7489ebd7f1d25426c93ae9e40fd73e2a78f29e75 \ 25 gomod://github.com/aws/aws-sdk-go-v2/service/sts;version=v1.41.5;sha256sum=de6f3748c40c13e10b790a7c02023aa559b153c251856e3b3940ee47cc0bc007 \
17 gomod://github.com/aws/smithy-go;version=v1.22.2;sha256sum=e5701b5798a3ff01b7139ec07e5bc2010f76cab82523e8989602003d61d82324 \ 26 gomod://github.com/aws/smithy-go;version=v1.24.0;sha256sum=655a1e00489bcf29a94cf26878c2f0b3b74c8bfb5d3c566baa3b94e088fbf417 \
18 gomod://github.com/coder/websocket;version=v1.8.12;sha256sum=ad8d323970c04679f4566ee7db98946508c37cdd21a46a875d5257d631a9e990 \ 27 gomod://github.com/coder/websocket;version=v1.8.12;sha256sum=ad8d323970c04679f4566ee7db98946508c37cdd21a46a875d5257d631a9e990 \
19 gomod://github.com/coreos/go-iptables;version=v0.7.1-0.20240112124308-65c67c9f46e6;sha256sum=6d0ae6344f1d355f72e6aaba583ce73822861511337ca92cc1c4727fc8ba66dd \ 28 gomod://github.com/coreos/go-iptables;version=v0.7.1-0.20240112124308-65c67c9f46e6;sha256sum=6d0ae6344f1d355f72e6aaba583ce73822861511337ca92cc1c4727fc8ba66dd \
29 gomod://github.com/creachadair/msync;version=v0.7.1;sha256sum=ee8dd1d2cc8a1e555fcfaecc7407425216ee87cd4414093d9a3d8d50fc622e5d \
20 gomod://github.com/creack/pty;version=v1.1.23;sha256sum=2151b7121020954864de83eacf854634866cca0a3bfe33a2ebffa2edebc25df3 \ 30 gomod://github.com/creack/pty;version=v1.1.23;sha256sum=2151b7121020954864de83eacf854634866cca0a3bfe33a2ebffa2edebc25df3 \
21 gomod://github.com/digitalocean/go-smbios;version=v0.0.0-20180907143718-390a4f403a8e;sha256sum=2bc498a09aa55b3417bebacce448b2d2ab757981e59b6b016d08cf97e4a7bdde \ 31 gomod://github.com/digitalocean/go-smbios;version=v0.0.0-20180907143718-390a4f403a8e;sha256sum=2bc498a09aa55b3417bebacce448b2d2ab757981e59b6b016d08cf97e4a7bdde \
22 gomod://github.com/djherbis/times;version=v1.6.0;sha256sum=21d69060967bc03ea3c39ff8c0b1a95511e96eccd3749a2daef1a02af1bc0a85 \ 32 gomod://github.com/djherbis/times;version=v1.6.0;sha256sum=21d69060967bc03ea3c39ff8c0b1a95511e96eccd3749a2daef1a02af1bc0a85 \
23 gomod://github.com/fxamacker/cbor/v2;version=v2.7.0;sha256sum=b48771460405bab6896c85e21ebc5ff287d4018c6db5c8d822c55769c80dde03 \ 33 gomod://github.com/fogleman/gg;version=v1.3.0;sha256sum=792f7a3ea9eea31b7947dabaf9d5a307389245069078e4bf435d76cb0505439c \
34 gomod://github.com/fxamacker/cbor/v2;version=v2.9.0;sha256sum=5b0ec6424bd522aeeeab30cbdcad6f40bf976a9a2ddf125ab27b97826140d97a \
24 gomod://github.com/gaissmai/bart;version=v0.18.0;sha256sum=566f2401988b2536055d87f6851ea596518377ee4592176375b84a5ca791fc77 \ 35 gomod://github.com/gaissmai/bart;version=v0.18.0;sha256sum=566f2401988b2536055d87f6851ea596518377ee4592176375b84a5ca791fc77 \
25 gomod://github.com/go-json-experiment/json;version=v0.0.0-20250223041408-d3c622f1b874;sha256sum=96edf3942a5665ff2b27f0da4586e2602fe4816dc31e184d3bcd6fbf4cdb13e4 \ 36 gomod://github.com/go-json-experiment/json;version=v0.0.0-20250813024750-ebf49471dced;sha256sum=e20ad9cf462e43db906cd2dc237061d6a5b575d10bd4ece52f1857b15a107006 \
26 gomod://github.com/godbus/dbus/v5;version=v5.1.1-0.20230522191255-76236955d466;sha256sum=262f43ec87570238a0e770e7fa656dda70fe6050a7edf5addc30287cb64b21a6 \ 37 gomod://github.com/godbus/dbus/v5;version=v5.1.1-0.20230522191255-76236955d466;sha256sum=262f43ec87570238a0e770e7fa656dda70fe6050a7edf5addc30287cb64b21a6 \
27 gomod://github.com/golang/groupcache;version=v0.0.0-20210331224755-41bb18bfe9da;sha256sum=b27034e8fc013627543e1ad098cfc65329f2896df3da5cf3266cc9166f93f3a5 \ 38 gomod://github.com/golang/freetype;version=v0.0.0-20170609003504-e2365dfdc4a0;sha256sum=cdcb9e6a14933dcbf167b44dcd5083fc6a2e52c4fae8fb79747c691efeb7d84e \
28 gomod://github.com/google/btree;version=v1.1.2;sha256sum=faee8550c5fffb4ae1dadde5ccaccb13298726f9fad226bb4eed0c03c90a481d \ 39 gomod://github.com/golang/groupcache;version=v0.0.0-20241129210726-2c02b8208cf8;sha256sum=163367355442a630b12b0b452892cd98e99fcfdf7e40b68d358be73479cc1c23 \
40 gomod://github.com/google/btree;version=v1.1.3;sha256sum=11b736bc8252b52fecdf346d3707ccf3a2b6d458ba21b4f843616fc12eeb30b2 \
29 gomod://github.com/google/go-tpm;version=v0.9.4;sha256sum=a8a5e504fbd78284a50e6ab625f6248cfbb89421fafdfee71d66abc6e1dfc192 \ 41 gomod://github.com/google/go-tpm;version=v0.9.4;sha256sum=a8a5e504fbd78284a50e6ab625f6248cfbb89421fafdfee71d66abc6e1dfc192 \
30 gomod://github.com/google/nftables;version=v0.2.1-0.20240414091927-5e242ec57806;sha256sum=ceb96b39a6f9004d8c217a6ae61b91a69c250bc30fbf3a04cd87cbbfddea73c8 \ 42 gomod://github.com/google/nftables;version=v0.2.1-0.20240414091927-5e242ec57806;sha256sum=ceb96b39a6f9004d8c217a6ae61b91a69c250bc30fbf3a04cd87cbbfddea73c8 \
31 gomod://github.com/gorilla/csrf;version=v1.7.3;sha256sum=39923b0dde0b8be30d3572589a8cc2ea515ca36a3e542269645db36aff7d6842 \
32 gomod://github.com/gorilla/securecookie;version=v1.1.2;sha256sum=fd7c0de7000c2e6a123d73e1249e1dce892ba29d2d03b00dc81d5fcee41d5895 \
33 gomod://github.com/hdevalence/ed25519consensus;version=v0.2.0;sha256sum=111cafade3ba9c7c3adf66b6a424386e30829c46c60b80dabe288e1837d30e33 \ 43 gomod://github.com/hdevalence/ed25519consensus;version=v0.2.0;sha256sum=111cafade3ba9c7c3adf66b6a424386e30829c46c60b80dabe288e1837d30e33 \
44 gomod://github.com/huin/goupnp;version=v1.3.0;sha256sum=df663b90b9b3bf16e1cfa810a6c3dd904993e8c1155dbf65566ce0361f163dce \
34 gomod://github.com/illarion/gonotify/v3;version=v3.0.2;sha256sum=fef3e17f676c8ce98b60f0e2180fc4e3331e6e1604eaf96ab8791e073f96a7af \ 45 gomod://github.com/illarion/gonotify/v3;version=v3.0.2;sha256sum=fef3e17f676c8ce98b60f0e2180fc4e3331e6e1604eaf96ab8791e073f96a7af \
35 gomod://github.com/insomniacslk/dhcp;version=v0.0.0-20231206064809-8c70d406f6d2;sha256sum=be28971fb642a9c4cf9f16e07332310af05c291584b6440b32849ca058dd345d \ 46 gomod://github.com/insomniacslk/dhcp;version=v0.0.0-20231206064809-8c70d406f6d2;sha256sum=be28971fb642a9c4cf9f16e07332310af05c291584b6440b32849ca058dd345d \
36 gomod://github.com/jellydator/ttlcache/v3;version=v3.1.0;sha256sum=278dfc9b4882eaeb9b56e925b574028f3e9cc4436645b93f56ccb69de134a898 \ 47 gomod://github.com/jellydator/ttlcache/v3;version=v3.1.0;sha256sum=278dfc9b4882eaeb9b56e925b574028f3e9cc4436645b93f56ccb69de134a898 \
37 gomod://github.com/jmespath/go-jmespath;version=v0.4.0;sha256sum=d1f77b6790d7c4321a74260f3675683d3ac06b0a614b5f83e870beae0a8b2867 \ 48 gomod://github.com/jmespath/go-jmespath;version=v0.4.0;sha256sum=d1f77b6790d7c4321a74260f3675683d3ac06b0a614b5f83e870beae0a8b2867 \
38 gomod://github.com/jsimonetti/rtnetlink;version=v1.4.0;sha256sum=81625291f4d0a08718dfd2170873d1adfd8fc2248657584f520c4de6de9e2e4d \ 49 gomod://github.com/jsimonetti/rtnetlink;version=v1.4.0;sha256sum=81625291f4d0a08718dfd2170873d1adfd8fc2248657584f520c4de6de9e2e4d \
39 gomod://github.com/kballard/go-shellquote;version=v0.0.0-20180428030007-95032a82bc51;sha256sum=ae4cb7b097dc4eb0c248dff00ed3bbf0f36984c4162ad1d615266084e58bd6cc \ 50 gomod://github.com/kballard/go-shellquote;version=v0.0.0-20180428030007-95032a82bc51;sha256sum=ae4cb7b097dc4eb0c248dff00ed3bbf0f36984c4162ad1d615266084e58bd6cc \
40 gomod://github.com/klauspost/compress;version=v1.17.11;sha256sum=88dea800cc6a11ccb9dd2f0dd487f30e8701870abdfc11245e41dcfc9f3d428e \ 51 gomod://github.com/klauspost/compress;version=v1.18.2;sha256sum=f6f550ecff746f6585db9529a29109e70da0038a8e0e142959567f2207183490 \
41 gomod://github.com/kortschak/wol;version=v0.0.0-20200729010619-da482cc4850a;sha256sum=09c15500a0ef54af0796f37282dd5377d2b866e4c36c87dcb6b2894cf3114dc5 \ 52 gomod://github.com/kortschak/wol;version=v0.0.0-20200729010619-da482cc4850a;sha256sum=09c15500a0ef54af0796f37282dd5377d2b866e4c36c87dcb6b2894cf3114dc5 \
42 gomod://github.com/kr/fs;version=v0.1.0;sha256sum=d376bd98e81aea34585fc3b04bab76363e9e87cde69383964e57e9779f2af81e \ 53 gomod://github.com/kr/fs;version=v0.1.0;sha256sum=d376bd98e81aea34585fc3b04bab76363e9e87cde69383964e57e9779f2af81e \
43 gomod://github.com/mattn/go-colorable;version=v0.1.13;sha256sum=08be322dcc584a9fcfde5caf0cf878b4e11cd98f252e32bc704e92c5a4ba9d15 \ 54 gomod://github.com/mattn/go-colorable;version=v0.1.13;sha256sum=08be322dcc584a9fcfde5caf0cf878b4e11cd98f252e32bc704e92c5a4ba9d15 \
@@ -46,38 +57,39 @@ SRC_URI += " \
46 gomod://github.com/mdlayher/netlink;version=v1.7.3-0.20250113171957-fbb4dce95f42;sha256sum=b427c8c746e87c2f8033678fb87cdcf5cefb21ce16f35930eff91683661395f0 \ 57 gomod://github.com/mdlayher/netlink;version=v1.7.3-0.20250113171957-fbb4dce95f42;sha256sum=b427c8c746e87c2f8033678fb87cdcf5cefb21ce16f35930eff91683661395f0 \
47 gomod://github.com/mdlayher/sdnotify;version=v1.0.0;sha256sum=26f4efbcba73eaec323973c8ae335bad430e5d6947097976cfbe7c9547f68c90 \ 58 gomod://github.com/mdlayher/sdnotify;version=v1.0.0;sha256sum=26f4efbcba73eaec323973c8ae335bad430e5d6947097976cfbe7c9547f68c90 \
48 gomod://github.com/mdlayher/socket;version=v0.5.0;sha256sum=931626341956178fe6015b128fdda22283480d05dc964675307eb61ed39c29fe \ 59 gomod://github.com/mdlayher/socket;version=v0.5.0;sha256sum=931626341956178fe6015b128fdda22283480d05dc964675307eb61ed39c29fe \
49 gomod://github.com/miekg/dns;version=v1.1.58;sha256sum=179bd419d011fd90802355756f59fff70ddf9a5886a4db6336a6d05783552b16 \
50 gomod://github.com/mitchellh/go-ps;version=v1.0.0;sha256sum=f2f0400b1d5e136419daed275c27a930b0f5447ac12bb8acd3ddbe39547b2834 \ 60 gomod://github.com/mitchellh/go-ps;version=v1.0.0;sha256sum=f2f0400b1d5e136419daed275c27a930b0f5447ac12bb8acd3ddbe39547b2834 \
51 gomod://github.com/peterbourgon/ff/v3;version=v3.4.0;sha256sum=b49537268ce67eb755d773fdd2a3e1c9c6dec0731993a4f742080416eb9b12a6 \ 61 gomod://github.com/peterbourgon/ff/v3;version=v3.4.0;sha256sum=b49537268ce67eb755d773fdd2a3e1c9c6dec0731993a4f742080416eb9b12a6 \
52 gomod://github.com/pierrec/lz4/v4;version=v4.1.21;sha256sum=bd2e8ef13800ca42205b0d4085a927a6d012b82cfa831769be4830036e953bec \ 62 gomod://github.com/pierrec/lz4/v4;version=v4.1.21;sha256sum=bd2e8ef13800ca42205b0d4085a927a6d012b82cfa831769be4830036e953bec \
63 gomod://github.com/pires/go-proxyproto;version=v0.8.1;sha256sum=a979a2f26160bfcb6f3829dd546d5f53c8b1879e7ad84466e359cf3f6237aa4c \
53 gomod://github.com/pkg/sftp;version=v1.13.6;sha256sum=0cdf6bd0edef9db8137ce398c9bbe514713e42cf2d4d415b5025f4a3c33f249d \ 64 gomod://github.com/pkg/sftp;version=v1.13.6;sha256sum=0cdf6bd0edef9db8137ce398c9bbe514713e42cf2d4d415b5025f4a3c33f249d \
54 gomod://github.com/safchain/ethtool;version=v0.3.0;sha256sum=bfa1a3fe314a3f2ac4c4385a6c4694708e4881bfd86c34668eca92656e398590 \ 65 gomod://github.com/safchain/ethtool;version=v0.3.0;sha256sum=bfa1a3fe314a3f2ac4c4385a6c4694708e4881bfd86c34668eca92656e398590 \
55 gomod://github.com/skip2/go-qrcode;version=v0.0.0-20200617195104-da1b6568686e;sha256sum=3fc1c4d11c79001d1cc2df0de87493b324b9af141cc59ae8c212612dd2c90e90 \ 66 gomod://github.com/skip2/go-qrcode;version=v0.0.0-20200617195104-da1b6568686e;sha256sum=3fc1c4d11c79001d1cc2df0de87493b324b9af141cc59ae8c212612dd2c90e90 \
56 gomod://github.com/tailscale/goupnp;version=v1.0.1-0.20210804011211-c64d0f06ea05;sha256sum=1c7ed6ecc16b6f402c225bae88a067a8bc1574cded894638b820c5da751823cc \
57 gomod://github.com/tailscale/hujson;version=v0.0.0-20221223112325-20486734a56a;sha256sum=8e65bacebfc0a1edc067fd97f839fcfeb93c1e7b8cc0186d1773cff4e125d9d5 \ 67 gomod://github.com/tailscale/hujson;version=v0.0.0-20221223112325-20486734a56a;sha256sum=8e65bacebfc0a1edc067fd97f839fcfeb93c1e7b8cc0186d1773cff4e125d9d5 \
58 gomod://github.com/tailscale/netlink;version=v1.1.1-0.20240822203006-4d49adab4de7;sha256sum=a5195ef600f8d9a0fb8501eea85e4fe0321a74bd57dec88f07b8569d0ee4f55e \ 68 gomod://github.com/tailscale/netlink;version=v1.1.1-0.20240822203006-4d49adab4de7;sha256sum=a5195ef600f8d9a0fb8501eea85e4fe0321a74bd57dec88f07b8569d0ee4f55e \
59 gomod://github.com/tailscale/peercred;version=v0.0.0-20250107143737-35a0c7bd7edc;sha256sum=87d0f4f3b1d59ea45c9a87b775b615bebd721a5870dafedc63cc860ec4aac281 \ 69 gomod://github.com/tailscale/peercred;version=v0.0.0-20250107143737-35a0c7bd7edc;sha256sum=87d0f4f3b1d59ea45c9a87b775b615bebd721a5870dafedc63cc860ec4aac281 \
60 gomod://github.com/tailscale/web-client-prebuilt;version=v0.0.0-20250124233751-d4cd19a26976;sha256sum=1d02f0804bb41e0743b7d889b8e2dbd8466a89793f03997f4c1fd10f9e8974c3 \ 70 gomod://github.com/tailscale/web-client-prebuilt;version=v0.0.0-20250124233751-d4cd19a26976;sha256sum=1d02f0804bb41e0743b7d889b8e2dbd8466a89793f03997f4c1fd10f9e8974c3 \
61 gomod://github.com/tailscale/wireguard-go;version=v0.0.0-20250304000100-91a0587fb251;sha256sum=7b82eb990f2f3686d335cdff5e988f8d4e27e031d563fb0e37bce1a3b0c5a83f \ 71 gomod://github.com/tailscale/wireguard-go;version=v0.0.0-20250716170648-1d0488a3d7da;sha256sum=1f2957ab7cac9bc031c570ce8420b100171f5068bd5feee084bf6bccdfc9740d \
62 gomod://github.com/tailscale/xnet;version=v0.0.0-20240729143630-8497ac4dab2e;sha256sum=438abf28ce5fb03adf529c2cb57a451f9b243c4a2a181d9d06cdb61bb10960e7 \ 72 gomod://github.com/tailscale/xnet;version=v0.0.0-20240729143630-8497ac4dab2e;sha256sum=438abf28ce5fb03adf529c2cb57a451f9b243c4a2a181d9d06cdb61bb10960e7 \
63 gomod://github.com/toqueteos/webbrowser;version=v1.2.0;sha256sum=1227d3ebeab16d8232a304a10b087984a96ad30f7439b6687bab2f5747d308cf \ 73 gomod://github.com/toqueteos/webbrowser;version=v1.2.0;sha256sum=1227d3ebeab16d8232a304a10b087984a96ad30f7439b6687bab2f5747d308cf \
64 gomod://github.com/u-root/u-root;version=v0.14.0;sha256sum=a65c0a06236b10a0cea50e603fef0ced0c7e343a66ef957a45ebcd51f304d286 \ 74 gomod://github.com/u-root/u-root;version=v0.14.0;sha256sum=a65c0a06236b10a0cea50e603fef0ced0c7e343a66ef957a45ebcd51f304d286 \
65 gomod://github.com/u-root/uio;version=v0.0.0-20240224005618-d2acac8f3701;sha256sum=f6e8f912e968744999d508c3df54f0308aaf337052a8d0bd3edd72583adfd9cd \ 75 gomod://github.com/u-root/uio;version=v0.0.0-20240224005618-d2acac8f3701;sha256sum=f6e8f912e968744999d508c3df54f0308aaf337052a8d0bd3edd72583adfd9cd \
66 gomod://github.com/vishvananda/netns;version=v0.0.4;sha256sum=cdaebcd80614800a74537e59855730d42393ffc109ebd47e5b8437dcc4d7f429 \ 76 gomod://github.com/vishvananda/netns;version=v0.0.5;sha256sum=07804b88c922c2a6780efe392ffef9d126eac584384eb3eb17bcadd34cfa9422 \
67 gomod://github.com/x448/float16;version=v0.8.4;sha256sum=73b24a41037ea999ab66851e3798a0973dbb1f214925915b01f0820f7b2f1500 \ 77 gomod://github.com/x448/float16;version=v0.8.4;sha256sum=73b24a41037ea999ab66851e3798a0973dbb1f214925915b01f0820f7b2f1500 \
78 gomod://go.yaml.in/yaml/v2;version=v2.4.2;sha256sum=ed63e181cbb5a991c104639b0e6d48d45fd951f22b47d4c5d1a36156d8ed06ee \
68 gomod://go4.org/mem;version=v0.0.0-20240501181205-ae6ca9944745;sha256sum=9b5037a57122457fdc5c2c0a31e3996b44cf9dfcdee5c53ed72adfd88d077795 \ 79 gomod://go4.org/mem;version=v0.0.0-20240501181205-ae6ca9944745;sha256sum=9b5037a57122457fdc5c2c0a31e3996b44cf9dfcdee5c53ed72adfd88d077795 \
69 gomod://go4.org/netipx;version=v0.0.0-20231129151722-fdeea329fbba;sha256sum=e15f57de368c92b826010181906f26112ba3a0d7fde7d94c8a8c60c525dc4044 \ 80 gomod://go4.org/netipx;version=v0.0.0-20231129151722-fdeea329fbba;sha256sum=e15f57de368c92b826010181906f26112ba3a0d7fde7d94c8a8c60c525dc4044 \
70 gomod://golang.org/x/crypto;version=v0.37.0;sha256sum=7ce6b2be21be1ce9e04dc784830e08931f09b5903596b8017839322c9e828667 \ 81 gomod://golang.org/x/crypto;version=v0.46.0;sha256sum=5f2921ccdf7252ffbe26046948c6044ab0917e500a34710e0ba6664260d6a460 \
71 gomod://golang.org/x/exp;version=v0.0.0-20250210185358-939b2ce775ac;sha256sum=de413a97994a7b97541cb1f867439fa20b60361d79dc35e8e2faf847a2a188df \ 82 gomod://golang.org/x/exp;version=v0.0.0-20250620022241-b7579e27df2b;sha256sum=fdaae8f1b98727b49d10228492b2dee1b8c68d12f640a4f17f0fb175581bf547 \
72 gomod://golang.org/x/net;version=v0.36.0;sha256sum=e823a351657b349cd8a705079778769534d90a5c3a6c7caed174a79608257d12 \ 83 gomod://golang.org/x/image;version=v0.27.0;sha256sum=db4846c8edb8cdcb556d205840361f62382df9bd5946b756e700c5fb43d90332 \
73 gomod://golang.org/x/oauth2;version=v0.26.0;sha256sum=d4c1bfc661b8ff3ccb3d5d30babf5f67798b59e2bfa932b6f1f739e67e45dcda \ 84 gomod://golang.org/x/net;version=v0.48.0;sha256sum=cf5206797e66bbe72fc13542d53a57d069a563cebb6d045c07a870eb4fd888c9 \
74 gomod://golang.org/x/sync;version=v0.13.0;sha256sum=4bdaaffe69cc7c997cff97cd81dc9c6777777bd311175f100f76b049bbbe7ed9 \ 85 gomod://golang.org/x/oauth2;version=v0.32.0;sha256sum=64c855b335cc2e90b2d88c1fe6c3a31de53c3ca76fc9c89e6ce266c7334b768b \
75 gomod://golang.org/x/sys;version=v0.32.0;sha256sum=85d47075d21fd7ef35d9a47fc73f2356fb3cd2e7fab7f45c874b814bf312127d \ 86 gomod://golang.org/x/sync;version=v0.19.0;sha256sum=25211fe2cffd8020bb405b9adb7a90f5e06760f2818b8fb2e74aaaa21a66ed9e \
76 gomod://golang.org/x/term;version=v0.31.0;sha256sum=bdeda753791b44f6815ccf3367ff57ffaca9bb100bfe8ebe112c8da133e78aec \ 87 gomod://golang.org/x/sys;version=v0.40.0;sha256sum=d7f9fe44300fc8d47b30d06cd001d9c62c54c6119818a19a2e33a93538971669 \
77 gomod://golang.org/x/text;version=v0.24.0;sha256sum=f585335a57a6fa5fa0c0bf319b45f0909e5ff1aba91e8567187ba8e423084c00 \ 88 gomod://golang.org/x/term;version=v0.38.0;sha256sum=00cec8beae98bb5a15c9ee9e8e705b7cab9c50269e7858bff98df0533b317363 \
78 gomod://golang.org/x/time;version=v0.10.0;sha256sum=7420a12017bb47bd85ccab81f9d1f7a3ff6daf8da768256292bc1dbb3bf9ba63 \ 89 gomod://golang.org/x/text;version=v0.32.0;sha256sum=bc6c70d37c37bc625a83abd48ee32372b459a8c559a1cf5f25dfbf7c7941f81b \
90 gomod://golang.org/x/time;version=v0.12.0;sha256sum=cdcb04c43b112919c5e0d0fa1d90769124ad56918a44e6cb0747876ed7e5015c \
79 gomod://gvisor.dev/gvisor;version=v0.0.0-20250205023644-9414b50a5633;sha256sum=b373e677e77f28c095b43ed976f5d9ca885d3b1b5407a71a5691e4a47e813bd0 \ 91 gomod://gvisor.dev/gvisor;version=v0.0.0-20250205023644-9414b50a5633;sha256sum=b373e677e77f28c095b43ed976f5d9ca885d3b1b5407a71a5691e4a47e813bd0 \
80 gomod://k8s.io/client-go;version=v0.32.0;sha256sum=74ee50d42da263c0743212c17a12f16d8a3283f31f7c9209c6327b6656ac1550 \ 92 gomod://k8s.io/client-go;version=v0.34.0;sha256sum=3ede34d9df9dcb02779a631ca9c653f92db3714ee887c6fdd86a66bc4889d2c0 \
81 gomod://sigs.k8s.io/yaml;version=v1.4.0;sha256sum=ef031ff78ff9b7036e174eef49dfbd77468dc4f0afb73a639b61f8ab3a1cc425 \ 93 gomod://sigs.k8s.io/yaml;version=v1.6.0;sha256sum=cf88648a471581817b00a42ee8d24fd73eb0e3503998cf46d8e63787e11e5052 \
82 gomod://software.sslmate.com/src/go-pkcs12;version=v0.4.0;sha256sum=55019a391e5302a51ba62e98909e006224b81207866da90beaf582ec0dee036f \ 94 gomod://software.sslmate.com/src/go-pkcs12;version=v0.4.0;sha256sum=55019a391e5302a51ba62e98909e006224b81207866da90beaf582ec0dee036f \
83" 95"
diff --git a/meta-networking/recipes-connectivity/tailscale/tailscale-licenses.inc b/meta-networking/recipes-connectivity/tailscale/tailscale-licenses.inc
index 53d46dd45c..f1adacfc09 100644
--- a/meta-networking/recipes-connectivity/tailscale/tailscale-licenses.inc
+++ b/meta-networking/recipes-connectivity/tailscale/tailscale-licenses.inc
@@ -1,43 +1,60 @@
1LIC_FILES_CHKSUM += " \ 1
2# This file has been generated by go-mod-update-modules.bbclass
3#
4# Unknown licenses have been checked manually and completed.
5#
6
7LICENSE += "& Apache-2.0 & BSD-2-Clause & BSD-3-Clause & ISC & MIT"
8
9LIC_FILES_CHKSUM += "\
2 file://pkg/mod/filippo.io/edwards25519@v1.1.0/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \ 10 file://pkg/mod/filippo.io/edwards25519@v1.1.0/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \
11 file://pkg/mod/fyne.io/systray@v1.11.1-0.20250812065214-4856ac3adc3c/LICENSE;md5=a2be13cb34e811436f5388f0a19cc0b0;spdx=Apache-2.0 \
12 file://pkg/mod/github.com/!kodeworks/golang-image-ico@v0.0.0-20141118225523-73f0f4cfade9/LICENSE;md5=591778525c869cdde0ab5a1bf283cd81;spdx=BSD-3-Clause \
3 file://pkg/mod/github.com/anmitsu/go-shlex@v0.0.0-20200514113438-38f4b401e2be/LICENSE;md5=45a47c50f5b33ff9ab3347c7db1bfb6a;spdx=MIT \ 13 file://pkg/mod/github.com/anmitsu/go-shlex@v0.0.0-20200514113438-38f4b401e2be/LICENSE;md5=45a47c50f5b33ff9ab3347c7db1bfb6a;spdx=MIT \
4 file://pkg/mod/github.com/aws/aws-sdk-go-v2@v1.36.0/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 14 file://pkg/mod/github.com/atotto/clipboard@v0.1.4/LICENSE;md5=489200b65f13bcbcb890a96b99a58a6f;spdx=BSD-3-Clause \
5 file://pkg/mod/github.com/aws/aws-sdk-go-v2/config@v1.29.5/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 15 file://pkg/mod/github.com/aws/aws-sdk-go-v2/config@v1.29.5/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
6 file://pkg/mod/github.com/aws/aws-sdk-go-v2/credentials@v1.17.58/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 16 file://pkg/mod/github.com/aws/aws-sdk-go-v2/credentials@v1.17.58/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
7 file://pkg/mod/github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.27/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 17 file://pkg/mod/github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.27/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
8 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.31/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 18 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/configsources@v1.4.16/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
9 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.31/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 19 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.7.16/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
10 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/ini@v1.8.2/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 20 file://pkg/mod/github.com/aws/aws-sdk-go-v2/internal/ini@v1.8.2/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
11 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.12.2/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 21 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.13.4/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
12 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.12.12/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 22 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.13.16/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
13 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/ssm@v1.44.7/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 23 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/ssm@v1.44.7/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
14 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/sso@v1.24.14/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 24 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/sso@v1.24.14/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
15 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.28.13/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 25 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.28.13/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
16 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/sts@v1.33.13/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 26 file://pkg/mod/github.com/aws/aws-sdk-go-v2/service/sts@v1.41.5/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
17 file://pkg/mod/github.com/aws/smithy-go@v1.22.2/LICENSE;md5=34400b68072d710fecd0a2940a0d1658;spdx=Apache-2.0 \ 27 file://pkg/mod/github.com/aws/aws-sdk-go-v2@v1.41.0/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
28 file://pkg/mod/github.com/aws/aws-sdk-go-v2@v1.41.0/internal/sync/singleflight/LICENSE;md5=bdc234595bc2fe370918f5de5077c8e9;spdx=BSD-3-Clause \
29 file://pkg/mod/github.com/aws/smithy-go@v1.24.0/LICENSE;md5=34400b68072d710fecd0a2940a0d1658;spdx=Apache-2.0 \
30 file://pkg/mod/github.com/aws/smithy-go@v1.24.0/internal/sync/singleflight/LICENSE;md5=bdc234595bc2fe370918f5de5077c8e9;spdx=BSD-3-Clause \
18 file://pkg/mod/github.com/coder/websocket@v1.8.12/LICENSE.txt;md5=bc0b6f68116166556efe7184edfda3e9;spdx=ISC \ 31 file://pkg/mod/github.com/coder/websocket@v1.8.12/LICENSE.txt;md5=bc0b6f68116166556efe7184edfda3e9;spdx=ISC \
19 file://pkg/mod/github.com/coreos/go-iptables@v0.7.1-0.20240112124308-65c67c9f46e6/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \ 32 file://pkg/mod/github.com/coreos/go-iptables@v0.7.1-0.20240112124308-65c67c9f46e6/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \
33 file://pkg/mod/github.com/creachadair/msync@v0.7.1/LICENSE;md5=b8be277519c5ee121454d43de171668a;spdx=BSD-3-Clause \
20 file://pkg/mod/github.com/creack/pty@v1.1.23/LICENSE;md5=93958070863d769117fa33b129020050;spdx=MIT \ 34 file://pkg/mod/github.com/creack/pty@v1.1.23/LICENSE;md5=93958070863d769117fa33b129020050;spdx=MIT \
21 file://pkg/mod/github.com/digitalocean/go-smbios@v0.0.0-20180907143718-390a4f403a8e/LICENSE.md;md5=c1653934903ab2785c09c2bdd7344526;spdx=Apache-2.0 \ 35 file://pkg/mod/github.com/digitalocean/go-smbios@v0.0.0-20180907143718-390a4f403a8e/LICENSE.md;md5=c1653934903ab2785c09c2bdd7344526;spdx=Apache-2.0 \
22 file://pkg/mod/github.com/djherbis/times@v1.6.0/LICENSE;md5=3cafd141825e7a44b1c6a047b2320012;spdx=MIT \ 36 file://pkg/mod/github.com/djherbis/times@v1.6.0/LICENSE;md5=3cafd141825e7a44b1c6a047b2320012;spdx=MIT \
23 file://pkg/mod/github.com/fxamacker/cbor/v2@v2.7.0/LICENSE;md5=827f5a2fa861382d35a3943adf9ebb86;spdx=MIT \ 37 file://pkg/mod/github.com/fogleman/gg@v1.3.0/LICENSE.md;md5=1630f0e1bac38694fdc4dcb6a9218f4a;spdx=MIT \
38 file://pkg/mod/github.com/fxamacker/cbor/v2@v2.9.0/LICENSE;md5=827f5a2fa861382d35a3943adf9ebb86;spdx=MIT \
24 file://pkg/mod/github.com/gaissmai/bart@v0.18.0/LICENSE;md5=05779e437ec35570aca43cc66a95e056;spdx=MIT \ 39 file://pkg/mod/github.com/gaissmai/bart@v0.18.0/LICENSE;md5=05779e437ec35570aca43cc66a95e056;spdx=MIT \
25 file://pkg/mod/github.com/go-json-experiment/json@v0.0.0-20250223041408-d3c622f1b874/LICENSE;md5=9d210c7471ce08e3db5261f33bf8fce6;spdx=BSD-3-Clause \ 40 file://pkg/mod/github.com/go-json-experiment/json@v0.0.0-20250813024750-ebf49471dced/LICENSE;md5=9d210c7471ce08e3db5261f33bf8fce6;spdx=BSD-3-Clause \
26 file://pkg/mod/github.com/godbus/dbus/v5@v5.1.1-0.20230522191255-76236955d466/LICENSE;md5=09042bd5c6c96a2b9e45ddf1bc517eed;spdx=BSD-2-Clause \ 41 file://pkg/mod/github.com/godbus/dbus/v5@v5.1.1-0.20230522191255-76236955d466/LICENSE;md5=09042bd5c6c96a2b9e45ddf1bc517eed;spdx=BSD-2-Clause \
27 file://pkg/mod/github.com/golang/groupcache@v0.0.0-20210331224755-41bb18bfe9da/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \ 42 file://pkg/mod/github.com/golang/freetype@v0.0.0-20170609003504-e2365dfdc4a0/LICENSE;md5=8e050e4860234723098ceeefa49edd05;spdx=BSD-3-Clause \
28 file://pkg/mod/github.com/google/btree@v1.1.2/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 43 file://pkg/mod/github.com/golang/groupcache@v0.0.0-20241129210726-2c02b8208cf8/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \
44 file://pkg/mod/github.com/google/btree@v1.1.3/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
29 file://pkg/mod/github.com/google/go-tpm@v0.9.4/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 45 file://pkg/mod/github.com/google/go-tpm@v0.9.4/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
30 file://pkg/mod/github.com/google/nftables@v0.2.1-0.20240414091927-5e242ec57806/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 46 file://pkg/mod/github.com/google/nftables@v0.2.1-0.20240414091927-5e242ec57806/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
31 file://pkg/mod/github.com/gorilla/csrf@v1.7.3/LICENSE;md5=c30eee78985cf2584cded5f89ba3d787;spdx=BSD-3-Clause \
32 file://pkg/mod/github.com/gorilla/securecookie@v1.1.2/LICENSE;md5=c30eee78985cf2584cded5f89ba3d787;spdx=BSD-3-Clause \
33 file://pkg/mod/github.com/hdevalence/ed25519consensus@v0.2.0/LICENSE;md5=4041895a1f717acb5be52e24edb19917;spdx=BSD-3-Clause \ 47 file://pkg/mod/github.com/hdevalence/ed25519consensus@v0.2.0/LICENSE;md5=4041895a1f717acb5be52e24edb19917;spdx=BSD-3-Clause \
48 file://pkg/mod/github.com/huin/goupnp@v1.3.0/LICENSE;md5=3d7eee8afacfccb446c1ac30289c965d;spdx=BSD-2-Clause \
34 file://pkg/mod/github.com/illarion/gonotify/v3@v3.0.2/LICENSE;md5=6b631a3123c7c679195702a8a35c9f21;spdx=MIT \ 49 file://pkg/mod/github.com/illarion/gonotify/v3@v3.0.2/LICENSE;md5=6b631a3123c7c679195702a8a35c9f21;spdx=MIT \
35 file://pkg/mod/github.com/insomniacslk/dhcp@v0.0.0-20231206064809-8c70d406f6d2/LICENSE;md5=ceaf33b8b657b2d342dbd3bb59578d8a;spdx=BSD-3-Clause \ 50 file://pkg/mod/github.com/insomniacslk/dhcp@v0.0.0-20231206064809-8c70d406f6d2/LICENSE;md5=ceaf33b8b657b2d342dbd3bb59578d8a;spdx=BSD-3-Clause \
36 file://pkg/mod/github.com/jellydator/ttlcache/v3@v3.1.0/LICENSE;md5=4cea77626c625d583c98a85a8658f9d2;spdx=MIT \ 51 file://pkg/mod/github.com/jellydator/ttlcache/v3@v3.1.0/LICENSE;md5=4cea77626c625d583c98a85a8658f9d2;spdx=MIT \
37 file://pkg/mod/github.com/jmespath/go-jmespath@v0.4.0/LICENSE;md5=9abfa8353fce3f2cb28364e1e9016852;spdx=Apache-2.0 \ 52 file://pkg/mod/github.com/jmespath/go-jmespath@v0.4.0/LICENSE;md5=9abfa8353fce3f2cb28364e1e9016852;spdx=Apache-2.0 \
38 file://pkg/mod/github.com/jsimonetti/rtnetlink@v1.4.0/LICENSE.md;md5=75a8090d4c02945ad9d61c7cce77ed48;spdx=MIT \ 53 file://pkg/mod/github.com/jsimonetti/rtnetlink@v1.4.0/LICENSE.md;md5=75a8090d4c02945ad9d61c7cce77ed48;spdx=MIT \
39 file://pkg/mod/github.com/kballard/go-shellquote@v0.0.0-20180428030007-95032a82bc51/LICENSE;md5=9d95d1ad917c814c23909addb8692eeb;spdx=MIT \ 54 file://pkg/mod/github.com/kballard/go-shellquote@v0.0.0-20180428030007-95032a82bc51/LICENSE;md5=9d95d1ad917c814c23909addb8692eeb;spdx=MIT \
40 file://pkg/mod/github.com/klauspost/compress@v1.17.11/LICENSE;md5=d0fd9ebda39468b51ff4539c9fbb13a8;spdx=BSD-3-Clause \ 55 file://pkg/mod/github.com/klauspost/compress@v1.18.2/LICENSE;md5=d0fd9ebda39468b51ff4539c9fbb13a8;spdx=BSD-3-Clause \
56 file://pkg/mod/github.com/klauspost/compress@v1.18.2/internal/snapref/LICENSE;md5=b8b79c7d4cda128290b98c6a21f9aac6;spdx=BSD-3-Clause \
57 file://pkg/mod/github.com/klauspost/compress@v1.18.2/zstd/internal/xxhash/LICENSE.txt;md5=802da049c92a99b4387d3f3d91b00fa9;spdx=MIT \
41 file://pkg/mod/github.com/kortschak/wol@v0.0.0-20200729010619-da482cc4850a/LICENSE;md5=5a0acdb344844a21e2df8bc2e1fe5f2d;spdx=BSD-3-Clause \ 58 file://pkg/mod/github.com/kortschak/wol@v0.0.0-20200729010619-da482cc4850a/LICENSE;md5=5a0acdb344844a21e2df8bc2e1fe5f2d;spdx=BSD-3-Clause \
42 file://pkg/mod/github.com/kr/fs@v0.1.0/LICENSE;md5=591778525c869cdde0ab5a1bf283cd81;spdx=BSD-3-Clause \ 59 file://pkg/mod/github.com/kr/fs@v0.1.0/LICENSE;md5=591778525c869cdde0ab5a1bf283cd81;spdx=BSD-3-Clause \
43 file://pkg/mod/github.com/mattn/go-colorable@v0.1.13/LICENSE;md5=24ce168f90aec2456a73de1839037245;spdx=MIT \ 60 file://pkg/mod/github.com/mattn/go-colorable@v0.1.13/LICENSE;md5=24ce168f90aec2456a73de1839037245;spdx=MIT \
@@ -46,40 +63,39 @@ LIC_FILES_CHKSUM += " \
46 file://pkg/mod/github.com/mdlayher/netlink@v1.7.3-0.20250113171957-fbb4dce95f42/LICENSE.md;md5=e08504321a9b3e86ee07433c231b33f1;spdx=MIT \ 63 file://pkg/mod/github.com/mdlayher/netlink@v1.7.3-0.20250113171957-fbb4dce95f42/LICENSE.md;md5=e08504321a9b3e86ee07433c231b33f1;spdx=MIT \
47 file://pkg/mod/github.com/mdlayher/sdnotify@v1.0.0/LICENSE.md;md5=a57b2e272a0c75c413c784bb877cda50;spdx=MIT \ 64 file://pkg/mod/github.com/mdlayher/sdnotify@v1.0.0/LICENSE.md;md5=a57b2e272a0c75c413c784bb877cda50;spdx=MIT \
48 file://pkg/mod/github.com/mdlayher/socket@v0.5.0/LICENSE.md;md5=bdcb2fcb7aea8a34d189ef572a59ff88;spdx=MIT \ 65 file://pkg/mod/github.com/mdlayher/socket@v0.5.0/LICENSE.md;md5=bdcb2fcb7aea8a34d189ef572a59ff88;spdx=MIT \
49 file://pkg/mod/github.com/miekg/dns@v1.1.58/LICENSE;md5=b5215dfec2c591290f399a181669bef7;spdx=BSD-3-Clause \
50 file://pkg/mod/github.com/mitchellh/go-ps@v1.0.0/LICENSE.md;md5=56da355a12d4821cda57b8f23ec34bc4;spdx=MIT \ 66 file://pkg/mod/github.com/mitchellh/go-ps@v1.0.0/LICENSE.md;md5=56da355a12d4821cda57b8f23ec34bc4;spdx=MIT \
51 file://pkg/mod/github.com/peterbourgon/ff/v3@v3.4.0/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e;spdx=Apache-2.0 \ 67 file://pkg/mod/github.com/peterbourgon/ff/v3@v3.4.0/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e;spdx=Apache-2.0 \
52 file://pkg/mod/github.com/pierrec/lz4/v4@v4.1.21/LICENSE;md5=09ece85f3c312a63b522bfc6ebd44943;spdx=BSD-3-Clause \ 68 file://pkg/mod/github.com/pierrec/lz4/v4@v4.1.21/LICENSE;md5=09ece85f3c312a63b522bfc6ebd44943;spdx=BSD-3-Clause \
69 file://pkg/mod/github.com/pires/go-proxyproto@v0.8.1/LICENSE;md5=ebfe2201eab4c067477cc534908ac12f;spdx=Apache-2.0 \
53 file://pkg/mod/github.com/pkg/sftp@v1.13.6/LICENSE;md5=452fc5cc5a9127a0e828d73423d45035;spdx=BSD-2-Clause \ 70 file://pkg/mod/github.com/pkg/sftp@v1.13.6/LICENSE;md5=452fc5cc5a9127a0e828d73423d45035;spdx=BSD-2-Clause \
54 file://pkg/mod/github.com/safchain/ethtool@v0.3.0/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \ 71 file://pkg/mod/github.com/safchain/ethtool@v0.3.0/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \
55 file://pkg/mod/github.com/skip2/go-qrcode@v0.0.0-20200617195104-da1b6568686e/LICENSE;md5=515c25e1450ede2834397875c18439d4;spdx=MIT \ 72 file://pkg/mod/github.com/skip2/go-qrcode@v0.0.0-20200617195104-da1b6568686e/LICENSE;md5=515c25e1450ede2834397875c18439d4;spdx=MIT \
56 file://pkg/mod/github.com/tailscale/goupnp@v1.0.1-0.20210804011211-c64d0f06ea05/LICENSE;md5=3d7eee8afacfccb446c1ac30289c965d;spdx=BSD-2-Clause \
57 file://pkg/mod/github.com/tailscale/hujson@v0.0.0-20221223112325-20486734a56a/LICENSE;md5=073f7ac93b9172ac4e1d258584fc0271;spdx=BSD-3-Clause \ 73 file://pkg/mod/github.com/tailscale/hujson@v0.0.0-20221223112325-20486734a56a/LICENSE;md5=073f7ac93b9172ac4e1d258584fc0271;spdx=BSD-3-Clause \
58 file://pkg/mod/github.com/tailscale/netlink@v1.1.1-0.20240822203006-4d49adab4de7/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \ 74 file://pkg/mod/github.com/tailscale/netlink@v1.1.1-0.20240822203006-4d49adab4de7/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \
59 file://pkg/mod/github.com/tailscale/peercred@v0.0.0-20250107143737-35a0c7bd7edc/LICENSE;md5=94eaeed21686fd9816f57f86b9914071;spdx=BSD-3-Clause \ 75 file://pkg/mod/github.com/tailscale/peercred@v0.0.0-20250107143737-35a0c7bd7edc/LICENSE;md5=94eaeed21686fd9816f57f86b9914071;spdx=BSD-3-Clause \
60 file://pkg/mod/github.com/tailscale/web-client-prebuilt@v0.0.0-20250124233751-d4cd19a26976/LICENSE;md5=a672713a9eb730050e491c92edf7984d;spdx=BSD-3-Clause \ 76 file://pkg/mod/github.com/tailscale/web-client-prebuilt@v0.0.0-20250124233751-d4cd19a26976/LICENSE;md5=a672713a9eb730050e491c92edf7984d;spdx=BSD-3-Clause \
61 file://pkg/mod/github.com/tailscale/wireguard-go@v0.0.0-20250304000100-91a0587fb251/LICENSE;md5=995598bc9de2b4c987c2cb87fc24f341;spdx=MIT \ 77 file://pkg/mod/github.com/tailscale/wireguard-go@v0.0.0-20250716170648-1d0488a3d7da/LICENSE;md5=995598bc9de2b4c987c2cb87fc24f341;spdx=MIT \
62 file://pkg/mod/github.com/tailscale/xnet@v0.0.0-20240729143630-8497ac4dab2e/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \ 78 file://pkg/mod/github.com/tailscale/xnet@v0.0.0-20240729143630-8497ac4dab2e/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \
63 file://pkg/mod/github.com/toqueteos/webbrowser@v1.2.0/LICENSE.md;md5=6072d29ffa4b14338ff8fd68f17f6851;spdx=MIT \ 79 file://pkg/mod/github.com/toqueteos/webbrowser@v1.2.0/LICENSE.md;md5=6072d29ffa4b14338ff8fd68f17f6851;spdx=MIT \
64 file://pkg/mod/github.com/u-root/u-root@v0.14.0/LICENSE;md5=bf431bf303eaf01f17bef6624d9f2208;spdx=BSD-3-Clause \ 80 file://pkg/mod/github.com/u-root/u-root@v0.14.0/LICENSE;md5=bf431bf303eaf01f17bef6624d9f2208;spdx=BSD-3-Clause \
65 file://pkg/mod/github.com/u-root/uio@v0.0.0-20240224005618-d2acac8f3701/LICENSE;md5=52bf39fc1e426b6459f5c9a142e5bfbd;spdx=BSD-3-Clause \ 81 file://pkg/mod/github.com/u-root/uio@v0.0.0-20240224005618-d2acac8f3701/LICENSE;md5=52bf39fc1e426b6459f5c9a142e5bfbd;spdx=BSD-3-Clause \
66 file://pkg/mod/github.com/vishvananda/netns@v0.0.4/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \ 82 file://pkg/mod/github.com/vishvananda/netns@v0.0.5/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \
67 file://pkg/mod/github.com/x448/float16@v0.8.4/LICENSE;md5=de8f8e025d57fe7ee0b67f30d571323b;spdx=MIT \ 83 file://pkg/mod/github.com/x448/float16@v0.8.4/LICENSE;md5=de8f8e025d57fe7ee0b67f30d571323b;spdx=MIT \
84 file://pkg/mod/go.yaml.in/yaml/v2@v2.4.2/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e;spdx=Apache-2.0 \
68 file://pkg/mod/go4.org/mem@v0.0.0-20240501181205-ae6ca9944745/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \ 85 file://pkg/mod/go4.org/mem@v0.0.0-20240501181205-ae6ca9944745/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \
69 file://pkg/mod/go4.org/netipx@v0.0.0-20231129151722-fdeea329fbba/LICENSE;md5=628df198dc9e033b86b8eedff039ff86;spdx=BSD-3-Clause \ 86 file://pkg/mod/go4.org/netipx@v0.0.0-20231129151722-fdeea329fbba/LICENSE;md5=628df198dc9e033b86b8eedff039ff86;spdx=BSD-3-Clause \
70 file://pkg/mod/golang.org/x/crypto@v0.37.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 87 file://pkg/mod/golang.org/x/crypto@v0.46.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
71 file://pkg/mod/golang.org/x/exp@v0.0.0-20250210185358-939b2ce775ac/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 88 file://pkg/mod/golang.org/x/exp@v0.0.0-20250620022241-b7579e27df2b/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
72 file://pkg/mod/golang.org/x/net@v0.36.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 89 file://pkg/mod/golang.org/x/image@v0.27.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
73 file://pkg/mod/golang.org/x/oauth2@v0.26.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 90 file://pkg/mod/golang.org/x/net@v0.48.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
74 file://pkg/mod/golang.org/x/sync@v0.13.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 91 file://pkg/mod/golang.org/x/oauth2@v0.32.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
75 file://pkg/mod/golang.org/x/sys@v0.32.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 92 file://pkg/mod/golang.org/x/sync@v0.19.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
76 file://pkg/mod/golang.org/x/term@v0.31.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 93 file://pkg/mod/golang.org/x/sys@v0.40.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
77 file://pkg/mod/golang.org/x/text@v0.24.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 94 file://pkg/mod/golang.org/x/term@v0.38.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
78 file://pkg/mod/golang.org/x/time@v0.10.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \ 95 file://pkg/mod/golang.org/x/text@v0.32.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
96 file://pkg/mod/golang.org/x/time@v0.12.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
79 file://pkg/mod/gvisor.dev/gvisor@v0.0.0-20250205023644-9414b50a5633/LICENSE;md5=fbbaf7613c100c84b8f20701859dee2d;spdx=MIT+%26+Apache-2.0 \ 97 file://pkg/mod/gvisor.dev/gvisor@v0.0.0-20250205023644-9414b50a5633/LICENSE;md5=fbbaf7613c100c84b8f20701859dee2d;spdx=MIT+%26+Apache-2.0 \
80 file://pkg/mod/k8s.io/client-go@v0.32.0/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \ 98 file://pkg/mod/k8s.io/client-go@v0.34.0/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
81 file://pkg/mod/sigs.k8s.io/yaml@v1.4.0/LICENSE;md5=b5d30dd5bc47d1b56b678ac06dead1c7;spdx=MIT+%26+Apache-2.0+%26+BSD-3-Clause \ 99 file://pkg/mod/sigs.k8s.io/yaml@v1.6.0/LICENSE;md5=b5d30dd5bc47d1b56b678ac06dead1c7;spdx=BSD-3-Clause \
82 file://pkg/mod/software.sslmate.com/src/go-pkcs12@v0.4.0/LICENSE;md5=259f3802525423b1a33efb1b85f64e18;spdx=BSD-3-Clause \ 100 file://pkg/mod/software.sslmate.com/src/go-pkcs12@v0.4.0/LICENSE;md5=259f3802525423b1a33efb1b85f64e18;spdx=BSD-3-Clause \
83" 101"
84
85LICENSE += " & Apache-2.0 & BSD-2-Clause & BSD-3-Clause & ISC & MIT"
diff --git a/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb b/meta-networking/recipes-connectivity/tailscale/tailscale_1.94.2.bb
index 33ae1925d5..7a60d6833c 100644
--- a/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb
+++ b/meta-networking/recipes-connectivity/tailscale/tailscale_1.94.2.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://github.com/tailscale/tailscale.git;protocol=https;branch=releas
12 file://default \ 12 file://default \
13 file://tailscaled.init \ 13 file://tailscaled.init \
14 " 14 "
15SRCREV = "7648989bc54738b1e40dde74fa822984a63cbc05" 15SRCREV = "2de4d317a8c2595904f1563ebd98fdcf843da275"
16SRCREV_SHORT = "${@d.getVar('SRCREV')[:8]}" 16SRCREV_SHORT = "${@d.getVar('SRCREV')[:8]}"
17require ${BPN}-go-mods.inc 17require ${BPN}-go-mods.inc
18 18
@@ -22,7 +22,10 @@ GO_LINKSHARED = ""
22GOBUILDFLAGS:prepend = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())} " 22GOBUILDFLAGS:prepend = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())} "
23GO_EXTRA_LDFLAGS = "-X tailscale.com/version.longStamp=${PV}-${SRCREV_SHORT} -X tailscale.com/version.shortStamp=${PV}" 23GO_EXTRA_LDFLAGS = "-X tailscale.com/version.longStamp=${PV}-${SRCREV_SHORT} -X tailscale.com/version.shortStamp=${PV}"
24 24
25inherit go-mod \ 25# Pass build tags so go list in update-modules discovers all conditional deps
26export GOFLAGS = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())}"
27
28inherit go-mod go-mod-update-modules \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'update-rc.d', '', d)} \ 29 ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'update-rc.d', '', d)} \
27 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} 30 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
28 31
diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.0.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.1.bb
index a2d6455d93..2978ff1cc1 100644
--- a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.0.bb
+++ b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.9.1.bb
@@ -17,7 +17,7 @@ SRC_URI = " \
17 file://run-ptest \ 17 file://run-ptest \
18" 18"
19 19
20SRCREV = "922d04b3568c6428a9fb905ddee3ef5a68db3108" 20SRCREV = "1d363f3adceba9d1478230ede476a37b0dcdef24"
21 21
22 22
23inherit autotools ptest 23inherit autotools ptest
@@ -46,3 +46,26 @@ do_install_ptest() {
46 cp -rf ${S}/certs ${D}${PTEST_PATH} 46 cp -rf ${S}/certs ${D}${PTEST_PATH}
47 cp -rf ${S}/tests ${D}${PTEST_PATH} 47 cp -rf ${S}/tests ${D}${PTEST_PATH}
48} 48}
49
50CVE_STATUS[CVE-2026-0819] = "fixed-version: fixed in 5.9.0"
51CVE_STATUS[CVE-2026-2646] = "fixed-version: fixed in 5.9.0"
52CVE_STATUS[CVE-2026-3503] = "fixed-version: fixed in 5.9.0"
53CVE_STATUS[CVE-2026-3548] = "fixed-version: fixed in 5.9.0"
54CVE_STATUS[CVE-2026-5188] = "fixed-version: fixed in 5.9.1"
55CVE_STATUS[CVE-2026-5194] = "fixed-version: fixed in 5.9.1"
56CVE_STATUS[CVE-2026-5263] = "fixed-version: fixed in 5.9.1"
57CVE_STATUS[CVE-2026-5264] = "fixed-version: fixed in 5.9.1"
58CVE_STATUS[CVE-2026-5392] = "fixed-version: fixed in 5.9.1"
59CVE_STATUS[CVE-2026-5393] = "fixed-version: fixed in 5.9.1"
60CVE_STATUS[CVE-2026-5446] = "fixed-version: fixed in 5.9.1"
61CVE_STATUS[CVE-2026-5447] = "fixed-version: fixed in 5.9.1"
62CVE_STATUS[CVE-2026-5448] = "fixed-version: fixed in 5.9.1"
63CVE_STATUS[CVE-2026-5460] = "fixed-version: fixed in 5.9.1"
64CVE_STATUS[CVE-2026-5466] = "fixed-version: fixed in 5.9.1"
65CVE_STATUS[CVE-2026-5479] = "fixed-version: fixed in 5.9.1"
66CVE_STATUS[CVE-2026-5500] = "fixed-version: fixed in 5.9.1"
67CVE_STATUS[CVE-2026-5503] = "fixed-version: fixed in 5.9.1"
68CVE_STATUS[CVE-2026-5504] = "fixed-version: fixed in 5.9.1"
69CVE_STATUS[CVE-2026-5507] = "fixed-version: fixed in 5.9.1"
70CVE_STATUS[CVE-2026-5772] = "fixed-version: fixed in 5.9.1"
71CVE_STATUS[CVE-2026-5778] = "fixed-version: fixed in 5.9.1"
diff --git a/meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb b/meta-networking/recipes-daemons/atftp/atftp_0.8.1.bb
index 9db0aebccb..ecd55684f5 100644
--- a/meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb
+++ b/meta-networking/recipes-daemons/atftp/atftp_0.8.1.bb
@@ -2,9 +2,9 @@ SUMMARY = "Advanced TFTP server and client"
2SECTION = "net" 2SECTION = "net"
3HOMEPAGE = "http://packages.debian.org/atftp" 3HOMEPAGE = "http://packages.debian.org/atftp"
4LICENSE = "GPL-2.0-only" 4LICENSE = "GPL-2.0-only"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=f65159f73e603f89d6867d43191900e5" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=570a9b3749dd0463a1778803b12a6dce"
6 6
7SRCREV = "d5c27eb7a9695d83569767e27ef69674173db39a" 7SRCREV = "7238b7b6753157d0c4ad739df3d87a958f78d70b"
8 8
9SRC_URI = "git://git.code.sf.net/p/atftp/code;branch=master;protocol=https \ 9SRC_URI = "git://git.code.sf.net/p/atftp/code;branch=master;protocol=https \
10 file://atftpd.init \ 10 file://atftpd.init \
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.5a.bb b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.5b.bb
index 611795e17d..e7279013ed 100644
--- a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.5a.bb
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.5b.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=05d17535846895e23ea4c79b16a9e904"
10SRC_URI = "git://github.com/obgm/libcoap.git;branch=release-4.3.5-patches;protocol=https;tag=v${PV} \ 10SRC_URI = "git://github.com/obgm/libcoap.git;branch=release-4.3.5-patches;protocol=https;tag=v${PV} \
11 file://run-ptest \ 11 file://run-ptest \
12 " 12 "
13SRCREV = "e3fdcdcfbd1588754fe9dd4b754ac9397260f0f9" 13SRCREV = "851533c3cf63d16984d370ce39d586ecb3694971"
14 14
15# patch releases often use alphabetical suffixes 15# patch releases often use alphabetical suffixes
16CVE_VERSION_SUFFIX = "alphabetical" 16CVE_VERSION_SUFFIX = "alphabetical"
diff --git a/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35091.patch b/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35091.patch
new file mode 100644
index 0000000000..8afa5d6841
--- /dev/null
+++ b/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35091.patch
@@ -0,0 +1,47 @@
1From b9cb461121c8721c94a94309eb345a3c2f9ee9b4 Mon Sep 17 00:00:00 2001
2From: Jan Friesse <jfriesse@redhat.com>
3Date: Thu, 2 Apr 2026 09:00:39 +0200
4Subject: [PATCH] totemsrp: Return error if sanity check fails
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Previously, the check_memb_commit_token_sanity function correctly
10checked the minimum message length. However, if the message was too
11short, it incorrectly returned a success code (0) instead of the
12expected failure code (-1).
13
14This commit ensures the appropriate error code is returned when the
15message length sanity check fails.
16
17Fixes: CVE-2026-35091
18
19Reported-by: Sebastián Alba Vives (@Sebasteuo / 0xS4bb1) <sebasjosue84@gmail.com>
20Signed-off-by: Jan Friesse <jfriesse@redhat.com>
21Also-proposed-by: nicholasyang <nicholas.yang@suse.com>
22Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
23
24CVE: CVE-2026-35091
25Upstream-Status: Backport [https://github.com/corosync/corosync/commit/a16614accfdb3481264d7281843fadf439d9ab1b]
26Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
27---
28 exec/totemsrp.c | 4 ++--
29 1 file changed, 2 insertions(+), 2 deletions(-)
30
31diff --git a/exec/totemsrp.c b/exec/totemsrp.c
32index 35bf971..94d6c21 100644
33--- a/exec/totemsrp.c
34+++ b/exec/totemsrp.c
35@@ -3811,10 +3811,10 @@ static int check_memb_commit_token_sanity(
36 log_printf (instance->totemsrp_log_level_security,
37 "Received memb_commit_token message is too short... ignoring.");
38
39- return (0);
40+ return (-1);
41 }
42
43- addr_entries= mct_msg->addr_entries;
44+ addr_entries = mct_msg->addr_entries;
45 if (endian_conversion_needed) {
46 addr_entries = swab32(addr_entries);
47 }
diff --git a/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35092.patch b/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35092.patch
new file mode 100644
index 0000000000..8182647840
--- /dev/null
+++ b/meta-networking/recipes-extended/corosync/corosync/CVE-2026-35092.patch
@@ -0,0 +1,57 @@
1From 8f8a4747a0223b8897deda9a40a8a099c61fa80f Mon Sep 17 00:00:00 2001
2From: Jan Friesse <jfriesse@redhat.com>
3Date: Thu, 2 Apr 2026 09:44:06 +0200
4Subject: [PATCH] totemsrp: Fix integer overflow in memb_join_sanity
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9This commit addresses an integer overflow (wraparound) vulnerability
10in the check_memb_join_sanity function.
11
12Previously, the 32-bit unsigned network values proc_list_entries and
13failed_list_entries were added together before being promoted to
14size_t. This allowed the addition to wrap around in 32-bit arithmetic
15(e.g., 0x80000000 + 0x80000000 = 0), resulting in a required_len
16calculation that was incorrectly small.
17
18The solution is to cast the list entries to size_t and verify that
19neither exceeds the maximum allowed value before the addition occurs.
20
21Fixes: CVE-2026-35092
22
23Reported-by: Sebastián Alba Vives (@Sebasteuo / 0xS4bb1) <sebasjosue84@gmail.com>
24Signed-off-by: Jan Friesse <jfriesse@redhat.com>
25Also-proposed-by: nicholasyang <nicholas.yang@suse.com>
26Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
27
28CVE: CVE-2026-35092
29Upstream-Status: Backport [https://github.com/corosync/corosync/commit/4082294f5094a7591e4e00658c5a605f05d644f1]
30Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
31---
32 exec/totemsrp.c | 12 +++++++++++-
33 1 file changed, 11 insertions(+), 1 deletion(-)
34
35diff --git a/exec/totemsrp.c b/exec/totemsrp.c
36index 94d6c21..6845cec 100644
37--- a/exec/totemsrp.c
38+++ b/exec/totemsrp.c
39@@ -3786,7 +3786,17 @@ static int check_memb_join_sanity(
40 failed_list_entries = swab32(failed_list_entries);
41 }
42
43- required_len = sizeof(struct memb_join) + ((proc_list_entries + failed_list_entries) * sizeof(struct srp_addr));
44+ if (proc_list_entries > PROCESSOR_COUNT_MAX ||
45+ failed_list_entries > PROCESSOR_COUNT_MAX) {
46+ log_printf (instance->totemsrp_log_level_security,
47+ "Received memb_join message list_entries exceeds the maximum "
48+ "allowed value... ignoring.");
49+
50+ return (-1);
51+ }
52+
53+ required_len = sizeof(struct memb_join) +
54+ (((size_t)proc_list_entries + (size_t)failed_list_entries) * sizeof(struct srp_addr));
55 if (msg_len < required_len) {
56 log_printf (instance->totemsrp_log_level_security,
57 "Received memb_join message is too short... ignoring.");
diff --git a/meta-networking/recipes-extended/corosync/corosync_3.1.10.bb b/meta-networking/recipes-extended/corosync/corosync_3.1.10.bb
index 07d9333ec8..77dea16e98 100644
--- a/meta-networking/recipes-extended/corosync/corosync_3.1.10.bb
+++ b/meta-networking/recipes-extended/corosync/corosync_3.1.10.bb
@@ -9,6 +9,8 @@ inherit autotools pkgconfig systemd github-releases
9 9
10SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ 10SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
11 file://corosync.conf \ 11 file://corosync.conf \
12 file://CVE-2026-35091.patch \
13 file://CVE-2026-35092.patch \
12 " 14 "
13SRC_URI[sha256sum] = "be361c827f99b215b3bd3fa2fb071c03dac6831c2a351963d938caef62604bc8" 15SRC_URI[sha256sum] = "be361c827f99b215b3bd3fa2fb071c03dac6831c2a351963d938caef62604bc8"
14UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 16UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-networking/recipes-protocols/dante/dante_1.4.4.bb b/meta-networking/recipes-protocols/dante/dante_1.4.4.bb
index 52cfba4c5f..6a1eed3edb 100644
--- a/meta-networking/recipes-protocols/dante/dante_1.4.4.bb
+++ b/meta-networking/recipes-protocols/dante/dante_1.4.4.bb
@@ -25,6 +25,8 @@ EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}"
25DEPENDS += "flex-native bison-native libpam libtirpc" 25DEPENDS += "flex-native bison-native libpam libtirpc"
26inherit autotools-brokensep features_check 26inherit autotools-brokensep features_check
27 27
28CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
29
28CPPFLAGS += "-P" 30CPPFLAGS += "-P"
29CFLAGS += "-I${STAGING_INCDIR}/tirpc" 31CFLAGS += "-I${STAGING_INCDIR}/tirpc"
30LIBS += "-ltirpc" 32LIBS += "-ltirpc"
diff --git a/meta-networking/recipes-protocols/mjansson-mdns/files/0001-Bump-cmake_minimum_required-version-to-3.5-94.patch b/meta-networking/recipes-protocols/mjansson-mdns/files/0001-Bump-cmake_minimum_required-version-to-3.5-94.patch
new file mode 100644
index 0000000000..2afccbe463
--- /dev/null
+++ b/meta-networking/recipes-protocols/mjansson-mdns/files/0001-Bump-cmake_minimum_required-version-to-3.5-94.patch
@@ -0,0 +1,21 @@
1From ab8f4118469d7a0bb83b9fcb88fe53482c35f0cb Mon Sep 17 00:00:00 2001
2From: skrede <code@skrede.me>
3Date: Sun, 26 Oct 2025 14:35:05 +0100
4Subject: [PATCH] Bump cmake_minimum_required version to 3.5 (#94)
5
6Upstream-Status: Backport [https://github.com/mjansson/mdns/commit/ab8f4118469d7a0bb83b9fcb88fe53482c35f0cb]
7Signed-off-by: Peter Marko <peter.marko@siemens.com>
8---
9 CMakeLists.txt | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/CMakeLists.txt b/CMakeLists.txt
13index 1bce26d..50f1f05 100644
14--- a/CMakeLists.txt
15+++ b/CMakeLists.txt
16@@ -1,4 +1,4 @@
17-cmake_minimum_required(VERSION 3.0)
18+cmake_minimum_required(VERSION 3.5)
19 project(mdns VERSION 1.4.2 LANGUAGES C)
20
21 option(MDNS_BUILD_EXAMPLE "build example" ON)
diff --git a/meta-networking/recipes-protocols/mjansson-mdns/mjansson-mdns_1.4.3.bb b/meta-networking/recipes-protocols/mjansson-mdns/mjansson-mdns_1.4.3.bb
new file mode 100644
index 0000000000..5c404cbb9d
--- /dev/null
+++ b/meta-networking/recipes-protocols/mjansson-mdns/mjansson-mdns_1.4.3.bb
@@ -0,0 +1,14 @@
1SUMMARY = "Public domain mDNS/DNS-SD library in C"
2DESCRIPTION = "This library provides a header only cross-platform mDNS and DNS-DS library in C"
3SECTION = "net"
4LICENSE = "Unlicense"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
6
7SRC_URI = "git://github.com/mjansson/mdns.git;protocol=https;branch=main;tag=${PV} \
8 file://0001-Bump-cmake_minimum_required-version-to-3.5-94.patch \
9"
10SRCREV = "1727be0602941a714cb6048a737f0584b1cebf3c"
11
12inherit cmake
13
14CVE_PRODUCT = "mjansson:mdns"
diff --git a/meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.0.bb b/meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.1.bb
index f7c0ee0d4f..acff7b548b 100644
--- a/meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.0.bb
+++ b/meta-networking/recipes-protocols/ngtcp2/ngtcp2_1.22.1.bb
@@ -4,8 +4,8 @@ BUGTRACKER = "https://github.com/ngtcp2/ngtcp2/issues"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=de0966c8ff4f62661a3da92967a75434" 5LIC_FILES_CHKSUM = "file://COPYING;md5=de0966c8ff4f62661a3da92967a75434"
6 6
7SRC_URI = "gitsm://github.com/ngtcp2/ngtcp2;protocol=https;branch=main;tag=v${PV};name=ngtcp2" 7SRC_URI = "gitsm://github.com/ngtcp2/ngtcp2;protocol=https;branch=release-1.22;tag=v${PV}"
8SRCREV = "2a441e8540d192b0707989b146ce80efcae5f0d6" 8SRCREV = "716e64b05f4a3709dfc0b0522cf9fd4456d055e5"
9 9
10DEPENDS = "brotli libev nghttp3" 10DEPENDS = "brotli libev nghttp3"
11 11
@@ -18,3 +18,5 @@ PACKAGECONFIG[shared] = "-DENABLE_SHARED_LIB=ON, -DENABLE_SHARED_LIB=OFF"
18PACKAGECONFIG[build-lib-only] = "-DENABLE_LIB_ONLY=ON, -DENABLE_LIB_ONLY=OFF" 18PACKAGECONFIG[build-lib-only] = "-DENABLE_LIB_ONLY=ON, -DENABLE_LIB_ONLY=OFF"
19PACKAGECONFIG[openssl] = "-DENABLE_OPENSSL=ON, -DENABLE_OPENSSL=OFF, openssl" 19PACKAGECONFIG[openssl] = "-DENABLE_OPENSSL=ON, -DENABLE_OPENSSL=OFF, openssl"
20PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON, -DENABLE_GNUTLS=OFF, gnutls" 20PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON, -DENABLE_GNUTLS=OFF, gnutls"
21
22CVE_STATUS[CVE-2026-40170] = "fixed-version: fixed in 1.22.1"
diff --git a/meta-networking/recipes-protocols/openflow/openflow_git.bb b/meta-networking/recipes-protocols/openflow/openflow_git.bb
index 1588245f8a..d506dd4d01 100644
--- a/meta-networking/recipes-protocols/openflow/openflow_git.bb
+++ b/meta-networking/recipes-protocols/openflow/openflow_git.bb
@@ -40,6 +40,8 @@ DEPENDS:append:libc-musl = " libexecinfo"
40 40
41inherit autotools-brokensep pkgconfig 41inherit autotools-brokensep pkgconfig
42 42
43CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
44
43do_configure:prepend() { 45do_configure:prepend() {
44 ./boot.sh 46 ./boot.sh
45} 47}
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.4.3.bb b/meta-networking/recipes-support/dovecot/dovecot_2.4.3.bb
index a8930979ea..a6b78ea781 100644
--- a/meta-networking/recipes-support/dovecot/dovecot_2.4.3.bb
+++ b/meta-networking/recipes-support/dovecot/dovecot_2.4.3.bb
@@ -16,7 +16,7 @@ SRC_URI = "https://dovecot.org/releases/2.4/dovecot-${PV}.tar.gz \
16 file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \ 16 file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \
17 file://0001-adapt-lua_newstate-to-new-api.patch \ 17 file://0001-adapt-lua_newstate-to-new-api.patch \
18 " 18 "
19SRC_URI[sha256sum] = "e0b30330fe51e47ecfcf641bc16041184d91bdd0ac3db789b7cef54e3a75ac9b" 19SRC_URI[sha256sum] = "ff0be85228122f250627b19e67505fdb7fb2f72a702ef6bf35f27fce54c072e5"
20 20
21DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native" 21DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
22CFLAGS += "-I${STAGING_INCDIR}/tirpc" 22CFLAGS += "-I${STAGING_INCDIR}/tirpc"
@@ -81,3 +81,8 @@ FILES:${PN}-dev += "${libdir}/dovecot/libdovecot*.so"
81FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug" 81FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug"
82 82
83CVE_STATUS[CVE-2016-4983] = "not-applicable-platform: Affects only postinstall script on specific distribution." 83CVE_STATUS[CVE-2016-4983] = "not-applicable-platform: Affects only postinstall script on specific distribution."
84CVE_STATUS[CVE-2025-59031] = "fixed-version: fixed since v2.4.2"
85CVE_STATUS[CVE-2026-0394] = "fixed-version: fixed since v2.4.1"
86CVE_STATUS[CVE-2026-24031] = "fixed-version: fixed since v2.4.3"
87CVE_STATUS[CVE-2026-27855] = "fixed-version: fixed since v2.4.3"
88CVE_STATUS[CVE-2026-27860] = "fixed-version: fixed since v2.4.3"
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-Fix-build-with-gcc-15.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-Fix-build-with-gcc-15.patch
deleted file mode 100644
index 00105fb844..0000000000
--- a/meta-networking/recipes-support/drbd/drbd-utils/0001-Fix-build-with-gcc-15.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From b42265af87d9efcc9aac91b3a3da3df5c5c66e29 Mon Sep 17 00:00:00 2001
2From: Nguyen Dat Tho <tho3.nguyen@lge.com>
3Date: Wed, 9 Apr 2025 17:33:25 +0900
4Subject: [PATCH] Fix build with gcc-15
5
6To fix the following error:
7In file included from string_matching.cpp:1:
8./string_matching.h:10:18: error: 'uint16_t' does not name a type
9 10 | extern const uint16_t PATTERN_LIMIT;
10 | ^~~~~~~~
11./string_matching.h:7:1: note: 'uint16_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
12
13Upstream-Status: Submitted [https://github.com/LINBIT/drbd-utils/pull/50]
14
15Signed-off-by: Nguyen Dat Tho <tho3.nguyen@lge.com>
16---
17 user/drbdmon/string_matching.h | 1 +
18 1 file changed, 1 insertion(+)
19
20diff --git a/user/drbdmon/string_matching.h b/user/drbdmon/string_matching.h
21index 9b3918fe..b783ba48 100644
22--- a/user/drbdmon/string_matching.h
23+++ b/user/drbdmon/string_matching.h
24@@ -4,6 +4,7 @@
25 #include <string>
26 #include <memory>
27 #include <stdexcept>
28+#include <cstdint>
29
30 namespace string_matching
31 {
32--
332.34.1
34
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-fix-the-hardcoded-legacy-helper-path.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-fix-the-hardcoded-legacy-helper-path.patch
new file mode 100644
index 0000000000..3d7c95b4a8
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-fix-the-hardcoded-legacy-helper-path.patch
@@ -0,0 +1,53 @@
1From 301e64db17466316ac34a28e30867cc7853777b5 Mon Sep 17 00:00:00 2001
2From: Haiqing Bai <Haiqing.Bai@windriver.com>
3Date: Thu, 16 Apr 2026 10:00:19 +0000
4Subject: [PATCH] Fix the hardcoded legacy helper path
5
6Fix the below issue:
7"~# drbdadm --version
8execvp() failed to exec drbdadm-84: No such file or directory"
9
10The legacy helper path was hardcoded to "/lib/drbd", which does not exist
11on systems where LIBDIR is configured to a different location (e.g.
12/usr/lib). This caused drbdadm to fail when attempting to exec drbdadm-84.
13Use the build-configured DRBD_LEGACY_LIB_DIR (derived from LIBDIR) instead
14of the hardcoded path, so the legacy helper lookup respects the actual
15install prefix.
16
17Upstream-Status: Pending
18
19Signed-off-by: Haiqing Bai <haiqing.bai@windriver.com>
20---
21 user/v9/Makefile.in | 1 +
22 user/v9/drbdtool_common.c | 3 +--
23 2 files changed, 2 insertions(+), 2 deletions(-)
24
25diff --git a/user/v9/Makefile.in b/user/v9/Makefile.in
26index fa12f79..980c67c 100644
27--- a/user/v9/Makefile.in
28+++ b/user/v9/Makefile.in
29@@ -70,6 +70,7 @@ CFLAGS += -DKEYUTILS
30 endif
31 ifeq ($(WITH_84_SUPPORT),yes)
32 CFLAGS += -DWITH_84_SUPPORT
33+CFLAGS += -DDRBD_LEGACY_LIB_DIR=\"$(LIBDIR)\"
34 endif
35 CFLAGS += $(EXTRA_CFLAGS)
36
37diff --git a/user/v9/drbdtool_common.c b/user/v9/drbdtool_common.c
38index d07d054..ea95a16 100644
39--- a/user/v9/drbdtool_common.c
40+++ b/user/v9/drbdtool_common.c
41@@ -332,8 +332,7 @@ void add_component_to_path(const char *path)
42
43 void add_lib_drbd_to_path(void)
44 {
45- /* TODO: if exec-prefix != "/" ? */
46- add_component_to_path("/lib/drbd");
47+ add_component_to_path(DRBD_LEGACY_LIB_DIR);
48 }
49
50 /* from linux/crypto/crc32.c */
51--
522.53.0
53
diff --git a/meta-networking/recipes-support/drbd/drbd-utils_9.30.0.bb b/meta-networking/recipes-support/drbd/drbd-utils_9.34.0.bb
index 4c520e8c78..abc406b5e0 100644
--- a/meta-networking/recipes-support/drbd/drbd-utils_9.30.0.bb
+++ b/meta-networking/recipes-support/drbd/drbd-utils_9.34.0.bb
@@ -11,10 +11,10 @@ SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=master;prot
11 git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/drbd-headers;branch=master;protocol=https \ 11 git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/drbd-headers;branch=master;protocol=https \
12 file://0001-drbdmon-add-LDFLAGS-when-linking.patch \ 12 file://0001-drbdmon-add-LDFLAGS-when-linking.patch \
13 ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \ 13 ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
14 file://0001-Fix-build-with-gcc-15.patch \ 14 file://0001-fix-the-hardcoded-legacy-helper-path.patch \
15 " 15 "
16SRCREV_drbd-utils = "36ea199f38b543b2da92219109c2832e122e5bf9" 16SRCREV_drbd-utils = "7fe34d56a7264cfc92fc5270471827bb3f7773e6"
17SRCREV_drbd-headers = "94f4472513f351efba5788f783feba6ac6efe9fc" 17SRCREV_drbd-headers = "8ab631bfa8eb606e53c86f50b9f2d6f51d0f9ca5"
18 18
19SRCREV_FORMAT = "drbd-utils_drbd-headers" 19SRCREV_FORMAT = "drbd-utils_drbd-headers"
20 20
@@ -56,7 +56,9 @@ do_install:append() {
56 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-wait-promotable@.service 56 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-wait-promotable@.service
57 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd.service 57 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd.service
58 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd@.service 58 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd@.service
59 sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/ocf.ra@.service 59
60 install -D -m 0644 ${D}/50-drbd.preset ${D}${systemd_unitdir}/system-preset/50-drbd.preset
61 rm -f ${D}/50-drbd.preset
60} 62}
61 63
62RDEPENDS:${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy" 64RDEPENDS:${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy"
@@ -69,6 +71,7 @@ FILES:${PN} += "${nonarch_base_libdir}/drbd \
69 ${nonarch_libdir}/tmpfiles.d \ 71 ${nonarch_libdir}/tmpfiles.d \
70 ${nonarch_libdir}/drbdscripts/* \ 72 ${nonarch_libdir}/drbdscripts/* \
71 ${systemd_unitdir}/system/* \ 73 ${systemd_unitdir}/system/* \
74 ${systemd_unitdir}/system-preset/50-drbd.preset \
72" 75"
73FILES:${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug" 76FILES:${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
74 77
diff --git a/meta-networking/recipes-support/ettercap/ettercap/CVE-2026-3606.patch b/meta-networking/recipes-support/ettercap/ettercap/CVE-2026-3606.patch
deleted file mode 100644
index e1b19ea05b..0000000000
--- a/meta-networking/recipes-support/ettercap/ettercap/CVE-2026-3606.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1From a7347f49b928f47fc37805c9f3a70a9487d45a65 Mon Sep 17 00:00:00 2001
2From: Alexander Koeppe <alexander@koeppe.rocks>
3Date: Sun, 8 Mar 2026 17:57:39 +0100
4Subject: [PATCH] Fix heap-out-of-bounds read issue in etterfilter
5 (CVE-2026-3606)
6
7CVE: CVE-2026-3603
8Upstream-Status: Backport [https://github.com/Ettercap/ettercap/commit/41c312d4be6f6067968a275bf66b2abd2a0ba385]
9Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
10---
11 include/ec.h | 6 ++++++
12 utils/etterfilter/ef_output.c | 4 ++--
13 2 files changed, 8 insertions(+), 2 deletions(-)
14
15diff --git a/include/ec.h b/include/ec.h
16index d69de613..80c7eaba 100644
17--- a/include/ec.h
18+++ b/include/ec.h
19@@ -94,6 +94,12 @@
20 ON_ERROR(x, NULL, "virtual memory exhausted"); \
21 } while(0)
22
23+#define SAFE_RECALLOC(x, s) do { \
24+ x = realloc(x, s); \
25+ ON_ERROR(x, NULL, "virtual memory exhausted"); \
26+ memset(x, 0, s); \
27+} while(0)
28+
29 #define SAFE_STRDUP(x, s) do{ \
30 x = strdup(s); \
31 ON_ERROR(x, NULL, "virtual memory exhausted"); \
32diff --git a/utils/etterfilter/ef_output.c b/utils/etterfilter/ef_output.c
33index 2530e599..2f49177e 100644
34--- a/utils/etterfilter/ef_output.c
35+++ b/utils/etterfilter/ef_output.c
36@@ -150,10 +150,10 @@ static size_t create_data_segment(u_char** data, struct filter_header *fh, struc
37 static size_t add_data_segment(u_char **data, size_t base, u_char **string, size_t slen)
38 {
39 /* make room for the new string */
40- SAFE_REALLOC(*data, base + slen + 1);
41+ SAFE_RECALLOC(*data, base + slen + 1);
42
43 /* copy the string, NULL separated */
44- memcpy(*data + base, *string, slen + 1);
45+ memcpy(*data + base, *string, slen);
46
47 /*
48 * change the pointer to the new string location
diff --git a/meta-networking/recipes-support/ettercap/ettercap_0.8.4.bb b/meta-networking/recipes-support/ettercap/ettercap_0.8.4.1.bb
index 6fac3a0b84..a28de7b2bd 100644
--- a/meta-networking/recipes-support/ettercap/ettercap_0.8.4.bb
+++ b/meta-networking/recipes-support/ettercap/ettercap_0.8.4.1.bb
@@ -22,10 +22,9 @@ DEPENDS += "ethtool \
22RDEPENDS:${PN} += "bash ethtool libgcc" 22RDEPENDS:${PN} += "bash ethtool libgcc"
23 23
24SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https;tag=v${PV} \ 24SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https;tag=v${PV} \
25 file://CVE-2026-3606.patch \
26 " 25 "
27 26
28SRCREV = "41da65f4026a9e4cea928e61941b976d9279f508" 27SRCREV = "0dc8409779f3a09cbfff4434b9a4d7b33480d88d"
29 28
30EXTRA_OECMAKE = " \ 29EXTRA_OECMAKE = " \
31 -DCMAKE_SKIP_RPATH=TRUE \ 30 -DCMAKE_SKIP_RPATH=TRUE \
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
index b43900a94d..f87aa92932 100644
--- a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
+++ b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
@@ -4,6 +4,7 @@ SECTION = "libs"
4LICENSE = "GPL-2.0-only & LGPL-2.0-only" 4LICENSE = "GPL-2.0-only & LGPL-2.0-only"
5 5
6DEPENDS = "flex flex-native" 6DEPENDS = "flex flex-native"
7RRECOMMENDS:${PN} = "kernel-module-atm-tcp"
7 8
8SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.gz \ 9SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.gz \
9 file://link-with-ldflags.patch \ 10 file://link-with-ldflags.patch \
@@ -31,6 +32,8 @@ file://COPYING.LGPL;md5=6e29c688d912da12b66b73e32b03d812"
31 32
32inherit autotools pkgconfig 33inherit autotools pkgconfig
33 34
35CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
36
34EXTRA_OEMAKE += "ROOTPREFIX=${root_prefix}" 37EXTRA_OEMAKE += "ROOTPREFIX=${root_prefix}"
35 38
36FILES:${PN} += "${nonarch_base_libdir}/firmware" 39FILES:${PN} += "${nonarch_base_libdir}/firmware"
diff --git a/meta-networking/recipes-support/nbdkit/nbdkit_1.47.5.bb b/meta-networking/recipes-support/nbdkit/nbdkit_1.47.7.bb
index 5ec440fc18..3b64ccb439 100644
--- a/meta-networking/recipes-support/nbdkit/nbdkit_1.47.5.bb
+++ b/meta-networking/recipes-support/nbdkit/nbdkit_1.47.7.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=26250adec854bc317493f6fb98efe049"
12SRC_URI = "git://gitlab.com/nbdkit/nbdkit.git;protocol=https;branch=master;tag=v${PV} \ 12SRC_URI = "git://gitlab.com/nbdkit/nbdkit.git;protocol=https;branch=master;tag=v${PV} \
13 file://0002-plugins-Avoid-absolute-buildpaths-in-binaries.patch \ 13 file://0002-plugins-Avoid-absolute-buildpaths-in-binaries.patch \
14 " 14 "
15SRCREV = "131372494a384a2ee21b97ec9375b7a55636a417" 15SRCREV = "12ad24489c3de7b3810ae82fcffbdc113e1859ca"
16 16
17 17
18DEPENDS = "curl xz e2fsprogs zlib" 18DEPENDS = "curl xz e2fsprogs zlib"
diff --git a/meta-networking/recipes-support/netperf/files/0001-cleanup-modernize-sendfile_tcp_stream-signature-from.patch b/meta-networking/recipes-support/netperf/files/0001-cleanup-modernize-sendfile_tcp_stream-signature-from.patch
new file mode 100644
index 0000000000..4e8731fb25
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/0001-cleanup-modernize-sendfile_tcp_stream-signature-from.patch
@@ -0,0 +1,25 @@
1From ea9ce6ae6154660f2a1dc7a73aedf906cc935a72 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sun, 12 Apr 2026 16:38:28 -0700
4Subject: [PATCH] cleanup: modernize sendfile_tcp_stream signature from K&R to ANSI C style
5
6Upstream-Status: Pending
7Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
8---
9 src/nettest_bsd.c | 3 +--
10 1 file changed, 1 insertion(+), 2 deletions(-)
11
12diff --git a/src/nettest_bsd.c b/src/nettest_bsd.c
13index 36f5810..e7feb83 100644
14--- a/src/nettest_bsd.c
15+++ b/src/nettest_bsd.c
16@@ -4270,8 +4270,7 @@ Size (bytes)\n\
17 all it knows, nothig is different. */
18
19 void
20-sendfile_tcp_stream(remote_host)
21- char remote_host[];
22+sendfile_tcp_stream (char remote_host[])
23 {
24
25 char *tput_title = "\
diff --git a/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-networking/recipes-support/netperf/netperf_git.bb
index d5a717b0f6..8f49a7596b 100644
--- a/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -18,6 +18,7 @@ SRC_URI = "git://github.com/HewlettPackard/netperf.git;branch=master;protocol=ht
18 file://0001-Makefile.am-add-ACLOCAL_AMFLAGS.patch \ 18 file://0001-Makefile.am-add-ACLOCAL_AMFLAGS.patch \
19 file://0001-Fix-too-many-arguments-error-occurring-in-gcc-15.patch \ 19 file://0001-Fix-too-many-arguments-error-occurring-in-gcc-15.patch \
20 file://0001-Fix-multiple-definitions-with-enable-intervals.patch \ 20 file://0001-Fix-multiple-definitions-with-enable-intervals.patch \
21 file://0001-cleanup-modernize-sendfile_tcp_stream-signature-from.patch \
21 " 22 "
22 23
23SRCREV = "3bc455b23f901dae377ca0a558e1e32aa56b31c4" 24SRCREV = "3bc455b23f901dae377ca0a558e1e32aa56b31c4"
diff --git a/meta-networking/recipes-support/ntp/ntp/0001-ITS-10011-build-fix-compatibility-with-stricter-C99-.patch b/meta-networking/recipes-support/ntp/ntp/0001-ITS-10011-build-fix-compatibility-with-stricter-C99-.patch
new file mode 100644
index 0000000000..6558fae4ae
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/0001-ITS-10011-build-fix-compatibility-with-stricter-C99-.patch
@@ -0,0 +1,102 @@
1From 58c160ce28328f9a75d41c283ee9b94c10d6ec62 Mon Sep 17 00:00:00 2001
2From: Sam James <sam@gentoo.org>
3Date: Thu, 9 Feb 2023 23:17:53 +0000
4Subject: [PATCH] ITS#10011 build: fix compatibility with stricter C99
5 compilers
6
7Fix the following warnings:
8- -Wimplicit-int (fatal with Clang 16)
9- -Wimplicit-function-declaration (fatal with Clang 16)
10- -Wincompatible-function-pointer-types (fatal with Clang 16)
11- -Wint-conversion (fatal with Clang 15)
12- Old style prototypes (K&R, removed from C23)
13
14These warnings-now-error led to misconfigurations and failure to build
15OpenLDAP, as the tests used during configure caused the wrong results
16to be emitted.
17
18For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
19or the (new) c-std-porting mailing list [3].
20
21[0] https://lwn.net/Articles/913505/
22[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
23[2] https://wiki.gentoo.org/wiki/Modern_C_porting
24[3] hosted at lists.linux.dev.
25
26Bug: https://bugs.gentoo.org/871288
27
28Upstream-Status: Pending
29
30Signed-off-by: Sam James <sam@gentoo.org>
31Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
32---
33 sntp/m4/openldap.m4 | 16 +++++++++++++---
34 1 file changed, 13 insertions(+), 3 deletions(-)
35
36diff --git a/sntp/m4/openldap.m4 b/sntp/m4/openldap.m4
37index 49ffb87..2db6aa3 100644
38--- a/sntp/m4/openldap.m4
39+++ b/sntp/m4/openldap.m4
40@@ -154,6 +154,7 @@ fi
41 if test $ol_cv_header_stdc = yes; then
42 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
43 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h>
44+#include <stdlib.h>
45 #ifndef HAVE_EBCDIC
46 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
47 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
48@@ -610,8 +611,12 @@ AC_DEFUN([OL_PTHREAD_TEST_INCLUDES], [[
49 #define NULL (void*)0
50 #endif
51
52+#ifdef __STDC__
53+static void *task(void *p)
54+#else
55 static void *task(p)
56 void *p;
57+#endif
58 {
59 return (void *) (p == NULL);
60 }
61@@ -667,9 +672,13 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
62 AC_DEFUN([OL_PTHREAD_TEST_PROGRAM], [
63 AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
64
65+#ifdef __STDC__
66+int main(int argc, char **argv)
67+#else
68 int main(argc, argv)
69 int argc;
70 char **argv;
71+#endif
72 {
73 OL_PTHREAD_TEST_FUNCTION
74 }
75@@ -791,7 +800,7 @@ AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[
76 #include <sys/types.h>
77 #include <regex.h>
78 static char *pattern, *string;
79-main()
80+int main(void)
81 {
82 int rc;
83 regex_t re;
84@@ -818,7 +827,8 @@ AC_DEFUN([OL_C_UPPER_LOWER],
85 [AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[
86 AC_RUN_IFELSE([AC_LANG_SOURCE([[
87 #include <ctype.h>
88-main()
89+#include <stdlib.h>
90+int main(void)
91 {
92 if ('C' == toupper('C'))
93 exit(0);
94@@ -873,7 +883,7 @@ AC_DEFUN([OL_NONPOSIX_STRERROR_R],
95 ]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror_r=no])
96 else
97 AC_RUN_IFELSE([AC_LANG_SOURCE([[
98- main() {
99+ int main(void) {
100 char buf[100];
101 buf[0] = 0;
102 strerror_r( 1, buf, sizeof buf );
diff --git a/meta-networking/recipes-support/ntp/ntp/0001-colcomp-sntp-libpkgver-colcomp.c-Convert-K-R-functio.patch b/meta-networking/recipes-support/ntp/ntp/0001-colcomp-sntp-libpkgver-colcomp.c-Convert-K-R-functio.patch
new file mode 100644
index 0000000000..39f7e537c1
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/0001-colcomp-sntp-libpkgver-colcomp.c-Convert-K-R-functio.patch
@@ -0,0 +1,32 @@
1From cd54486bdced460c174fcb98680ad5ffe64f906a Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Mon, 13 Apr 2026 19:09:24 -0700
4Subject: [PATCH] colcomp: sntp/libpkgver/colcomp.c: Convert K&R function
5 definition to ANSI C style
6
7Replace old-style K&R function declaration with modern ANSI C prototype
8syntax for colcomp(). Also remove trailing whitespace after return type.
9
10Upstream-Status: Pending
11Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
12---
13 sntp/libpkgver/colcomp.c | 6 ++----
14 1 file changed, 2 insertions(+), 4 deletions(-)
15
16diff --git a/sntp/libpkgver/colcomp.c b/sntp/libpkgver/colcomp.c
17index 4b151e3..29ecb3e 100644
18--- a/sntp/libpkgver/colcomp.c
19+++ b/sntp/libpkgver/colcomp.c
20@@ -33,10 +33,8 @@
21 #endif
22
23
24-int
25-colcomp (s1, s2)
26- register char *s1;
27- register char *s2;
28+int
29+colcomp (register char *s1, register char *s2)
30 {
31 int hilo = 0; /* comparison value */
32
diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.8p18.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8p18.bb
index e59725e3e9..6f9bb01c02 100644
--- a/meta-networking/recipes-support/ntp/ntp_4.2.8p18.bb
+++ b/meta-networking/recipes-support/ntp/ntp_4.2.8p18.bb
@@ -17,6 +17,8 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.g
17 file://0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch \ 17 file://0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch \
18 file://0001-sntp-Fix-types-in-check-for-pthread_detach.patch \ 18 file://0001-sntp-Fix-types-in-check-for-pthread_detach.patch \
19 file://0001-include-fix-build-failure-with-glibc-2.43-_Generic-m.patch \ 19 file://0001-include-fix-build-failure-with-glibc-2.43-_Generic-m.patch \
20 file://0001-ITS-10011-build-fix-compatibility-with-stricter-C99-.patch \
21 file://0001-colcomp-sntp-libpkgver-colcomp.c-Convert-K-R-functio.patch \
20 file://ntpd \ 22 file://ntpd \
21 file://ntp.conf \ 23 file://ntp.conf \
22 file://ntpd.service \ 24 file://ntpd.service \
diff --git a/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch b/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
index c3ca07a390..739d7f797e 100644
--- a/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
+++ b/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
@@ -12,8 +12,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 src/Makefile | 8 ++++---- 12 src/Makefile | 8 ++++----
13 2 files changed, 14 insertions(+), 14 deletions(-) 13 2 files changed, 14 insertions(+), 14 deletions(-)
14 14
15diff --git a/sample/Makefile b/sample/Makefile
16index 15cafd9..d83641f 100644
17--- a/sample/Makefile 15--- a/sample/Makefile
18+++ b/sample/Makefile 16+++ b/sample/Makefile
19@@ -35,9 +35,9 @@ ifeq ($(PLATFORM),SunOS) 17@@ -35,9 +35,9 @@ ifeq ($(PLATFORM),SunOS)
@@ -50,13 +48,23 @@ index 15cafd9..d83641f 100644
50 48
51 %.o: %.c 49 %.o: %.c
52 $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c $< 50 $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c $<
53diff --git a/src/Makefile b/src/Makefile
54index 9b56b5e..39a5ea1 100644
55--- a/src/Makefile 51--- a/src/Makefile
56+++ b/src/Makefile 52+++ b/src/Makefile
57@@ -45,7 +45,7 @@ endif 53@@ -2,7 +2,7 @@
54 # $Id: Makefile,v 1.57 2005/06/13 16:34:53 evertonm Exp $
55 #
58 56
59 WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \ 57-#DEBUG += -DRULI_SRV_DEBUG
58+#DEBUG += -DRULI_SRV_DEBUG
59 #DEBUG += -DRULI_HOST_DEBUG
60 #DEBUG += -DRULI_RES_DEBUG
61 #DEBUG += -DRULI_TXT_COMPARE_DEBUG
62@@ -43,9 +43,9 @@ ifeq ($(PLATFORM),SunOS)
63 DEFINE_SOLARIS = -D_RULI_SOLARIS_
64 endif
65
66-WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \
67+WARN = -Wshadow -Wpointer-arith -Wcast-qual \
60 -Wcast-align -Wwrite-strings -Wredundant-decls 68 -Wcast-align -Wwrite-strings -Wredundant-decls
61-CC = gcc 69-CC = gcc
62+CC ?= gcc 70+CC ?= gcc
@@ -72,7 +80,7 @@ index 9b56b5e..39a5ea1 100644
72 LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \ 80 LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
73 ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \ 81 ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \
74 ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \ 82 ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \
75@@ -66,7 +66,7 @@ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \ 83@@ -66,7 +66,7 @@ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_ra
76 ruli_getaddrinfo.o 84 ruli_getaddrinfo.o
77 SHAREDOBJ = $(LIBOBJ:%.o=%.os) 85 SHAREDOBJ = $(LIBOBJ:%.o=%.os)
78 SONAME = libruli.so.4 86 SONAME = libruli.so.4
@@ -90,6 +98,3 @@ index 9b56b5e..39a5ea1 100644
90 @echo 98 @echo
91 @echo "REMINDER:" 99 @echo "REMINDER:"
92 @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:" 100 @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
93--
942.24.0
95
diff --git a/meta-networking/recipes-support/ruli/ruli_0.36.bb b/meta-networking/recipes-support/ruli/ruli_0.36.bb
index 0526f842a8..972184ae2c 100644
--- a/meta-networking/recipes-support/ruli/ruli_0.36.bb
+++ b/meta-networking/recipes-support/ruli/ruli_0.36.bb
@@ -20,7 +20,7 @@ SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a39
20 20
21# -shared is passed via CFLAGS, clang complains since its used during linking 21# -shared is passed via CFLAGS, clang complains since its used during linking
22# and not compiling 22# and not compiling
23CFLAGS:append:toolchain-clang = " -Wno-error=unused-command-line-argument" 23CFLAGS:append:toolchain-clang = " -std=gnu11 -Wno-error=unused-command-line-argument"
24 24
25EXTRA_OEMAKE = 'CC="${CC}" CPPFLAGS="${CFLAGS}" OOP_BASE_DIR="${STAGING_EXECPREFIXDIR}" \ 25EXTRA_OEMAKE = 'CC="${CC}" CPPFLAGS="${CFLAGS}" OOP_BASE_DIR="${STAGING_EXECPREFIXDIR}" \
26 INSTALL_BASE_DIR="${D}${exec_prefix}" \ 26 INSTALL_BASE_DIR="${D}${exec_prefix}" \
diff --git a/meta-networking/recipes-support/strongswan/strongswan_6.0.5.bb b/meta-networking/recipes-support/strongswan/strongswan_6.0.5.bb
index c3909acff2..405080070c 100644
--- a/meta-networking/recipes-support/strongswan/strongswan_6.0.5.bb
+++ b/meta-networking/recipes-support/strongswan/strongswan_6.0.5.bb
@@ -189,3 +189,5 @@ SYSTEMD_SERVICE:${PN} = " \
189 ${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}.service', '', d)} \ 189 ${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}.service', '', d)} \
190 ${@bb.utils.contains('PACKAGECONFIG', 'charon', '${BPN}-starter.service', '', d)} \ 190 ${@bb.utils.contains('PACKAGECONFIG', 'charon', '${BPN}-starter.service', '', d)} \
191" 191"
192
193CVE_STATUS[CVE-2026-25075] = "fixed-version: fixed in 6.0.5"
diff --git a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
index 3520bf429e..0e94a969c0 100644
--- a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
+++ b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
@@ -1,4 +1,4 @@
1From e08b9760d319d0334f2aad02d32d791c8ebd8564 Mon Sep 17 00:00:00 2001 1From 08b1bf417be039b097fae25708861fe8184c739c Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com> 2From: Kai Kang <kai.kang@windriver.com>
3Date: Wed, 1 Nov 2017 09:23:41 -0400 3Date: Wed, 1 Nov 2017 09:23:41 -0400
4Subject: [PATCH] stunnel: fix compile error when openssl disable des support 4Subject: [PATCH] stunnel: fix compile error when openssl disable des support
@@ -17,10 +17,10 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
17 2 files changed, 5 insertions(+), 3 deletions(-) 17 2 files changed, 5 insertions(+), 3 deletions(-)
18 18
19diff --git a/src/common.h b/src/common.h 19diff --git a/src/common.h b/src/common.h
20index c2229d0..5eaee8c 100644 20index ada7ff7..8484144 100644
21--- a/src/common.h 21--- a/src/common.h
22+++ b/src/common.h 22+++ b/src/common.h
23@@ -497,7 +497,9 @@ extern char *sys_errlist[]; 23@@ -489,7 +489,9 @@ extern char *sys_errlist[];
24 #ifndef OPENSSL_NO_MD4 24 #ifndef OPENSSL_NO_MD4
25 #include <openssl/md4.h> 25 #include <openssl/md4.h>
26 #endif /* !defined(OPENSSL_NO_MD4) */ 26 #endif /* !defined(OPENSSL_NO_MD4) */
@@ -29,9 +29,9 @@ index c2229d0..5eaee8c 100644
29+#endif 29+#endif
30 #ifndef OPENSSL_NO_DH 30 #ifndef OPENSSL_NO_DH
31 #include <openssl/dh.h> 31 #include <openssl/dh.h>
32 #if OPENSSL_VERSION_NUMBER<0x10100000L 32 #endif /* !defined(OPENSSL_NO_DH) */
33diff --git a/src/protocol.c b/src/protocol.c 33diff --git a/src/protocol.c b/src/protocol.c
34index c390a6f..7aca745 100644 34index cddc381..ae0f374 100644
35--- a/src/protocol.c 35--- a/src/protocol.c
36+++ b/src/protocol.c 36+++ b/src/protocol.c
37@@ -82,7 +82,7 @@ NOEXPORT void ldap_client_middle(CLI *); 37@@ -82,7 +82,7 @@ NOEXPORT void ldap_client_middle(CLI *);
@@ -43,7 +43,7 @@ index c390a6f..7aca745 100644
43 NOEXPORT void ntlm(CLI *); 43 NOEXPORT void ntlm(CLI *);
44 NOEXPORT char *ntlm1(void); 44 NOEXPORT char *ntlm1(void);
45 NOEXPORT char *ntlm3(char *, char *, char *, char *); 45 NOEXPORT char *ntlm3(char *, char *, char *, char *);
46@@ -1391,7 +1391,7 @@ NOEXPORT void connect_client_middle(CLI *c) { 46@@ -1392,7 +1392,7 @@ NOEXPORT void connect_client_middle(CLI *c) {
47 fd_printf(c, c->remote_fd.fd, "Host: %s", c->opt->protocol_host); 47 fd_printf(c, c->remote_fd.fd, "Host: %s", c->opt->protocol_host);
48 if(c->opt->protocol_username && c->opt->protocol_password) { 48 if(c->opt->protocol_username && c->opt->protocol_password) {
49 if(!strcasecmp(c->opt->protocol_authentication, "ntlm")) { 49 if(!strcasecmp(c->opt->protocol_authentication, "ntlm")) {
@@ -52,7 +52,7 @@ index c390a6f..7aca745 100644
52 ntlm(c); 52 ntlm(c);
53 #else 53 #else
54 s_log(LOG_ERR, "NTLM authentication is not available"); 54 s_log(LOG_ERR, "NTLM authentication is not available");
55@@ -1434,7 +1434,7 @@ NOEXPORT void connect_client_middle(CLI *c) { 55@@ -1435,7 +1435,7 @@ NOEXPORT void connect_client_middle(CLI *c) {
56 str_free(line); 56 str_free(line);
57 } 57 }
58 58
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.77.bb b/meta-networking/recipes-support/stunnel/stunnel_5.78.bb
index 954fa896ba..1740ad41f2 100644
--- a/meta-networking/recipes-support/stunnel/stunnel_5.77.bb
+++ b/meta-networking/recipes-support/stunnel/stunnel_5.78.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-sta
3HOMEPAGE = "https://www.stunnel.org/" 3HOMEPAGE = "https://www.stunnel.org/"
4SECTION = "net" 4SECTION = "net"
5LICENSE = "GPL-2.0-or-later" 5LICENSE = "GPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://COPYING.md;md5=1e4388407e163ad0cde171362f9a7b94" 6LIC_FILES_CHKSUM = "file://COPYING.md;md5=df2a0f88c5d5e3ebce922682a7b598ec"
7 7
8DEPENDS = "autoconf-archive libnsl2 openssl" 8DEPENDS = "autoconf-archive libnsl2 openssl"
9 9
@@ -11,7 +11,7 @@ SRC_URI = "https://stunnel.org/archive/5.x/${BP}.tar.gz \
11 file://fix-openssl-no-des.patch \ 11 file://fix-openssl-no-des.patch \
12" 12"
13 13
14SRC_URI[sha256sum] = "ec026f4fae4e0d25b940cc7a9451d925e359e7fd59e9edad20baea66ce45f263" 14SRC_URI[sha256sum] = "8727e53bb8b7528f850327a2a149158422c02183bc120d1d733cc65b1e2c349d"
15 15
16inherit autotools bash-completion pkgconfig 16inherit autotools bash-completion pkgconfig
17 17
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2025-63938.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2025-63938.patch
deleted file mode 100644
index e06e0d3eae..0000000000
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2025-63938.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From cee659d2ac1e4e9d1ce388338f46df6c4bae8278 Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Fri, 17 Oct 2025 22:57:39 +0000
4Subject: [PATCH] reqs: fix integer overflow in port number processing
5
6From: rofl0r <rofl0r@users.noreply.github.com>
7
8closes #586
9
10CVE: CVE-2025-63938
11Upstream-Status: Backport [https://github.com/tinyproxy/tinyproxy/commit/3c0fde94981b025271ffa1788ae425257841bf5a]
12Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
13---
14 src/reqs.c | 9 ++++++---
15 1 file changed, 6 insertions(+), 3 deletions(-)
16
17diff --git a/src/reqs.c b/src/reqs.c
18index a65ed54..1e5895c 100644
19--- a/src/reqs.c
20+++ b/src/reqs.c
21@@ -174,7 +174,7 @@ static int strip_return_port (char *host)
22 {
23 char *ptr1;
24 char *ptr2;
25- int port;
26+ unsigned port;
27
28 ptr1 = strrchr (host, ':');
29 if (ptr1 == NULL)
30@@ -186,8 +186,11 @@ static int strip_return_port (char *host)
31 return 0;
32
33 *ptr1++ = '\0';
34- if (sscanf (ptr1, "%d", &port) != 1) /* one conversion required */
35- return 0;
36+
37+ port = atoi(ptr1);
38+ /* check that port string is in the valid range 1-0xffff) */
39+ if(strlen(ptr1) > 5 || (port & 0xffff0000)) return 0;
40+
41 return port;
42 }
43
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-1.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-1.patch
new file mode 100644
index 0000000000..99c4ea705d
--- /dev/null
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-1.patch
@@ -0,0 +1,29 @@
1From 245946bb789c8fc0e4758c344f735a5d53827dce Mon Sep 17 00:00:00 2001
2From: rofl0r <rofl0r@users.noreply.github.com>
3Date: Thu, 12 Mar 2026 14:26:24 +0000
4Subject: [PATCH] reqs: check negative length values when reading chunked data
5
6this could lead to a DoS when a legitimate client reads from an
7attacker-controlled web server.
8
9closes #597
10
11CVE: CVE-2026-3945
12Upstream-Status: Backport [https://github.com/tinyproxy/tinyproxy/commit/969852ccdb1d19d7ed302f0e1d324661be641e0a]
13Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
14---
15 src/reqs.c | 1 +
16 1 file changed, 1 insertion(+)
17
18diff --git a/src/reqs.c b/src/reqs.c
19index a562c68..94ce767 100644
20--- a/src/reqs.c
21+++ b/src/reqs.c
22@@ -613,6 +613,7 @@ static int pull_client_data_chunked (struct conn_s *connptr) {
23 }
24
25 chunklen = strtol (buffer, (char**)0, 16);
26+ if (chunklen < 0) goto ERROR_EXIT;
27
28 if (pull_client_data (connptr, chunklen+2, 0) < 0)
29 goto ERROR_EXIT;
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-2.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-2.patch
new file mode 100644
index 0000000000..3da30b54eb
--- /dev/null
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2026-3945-2.patch
@@ -0,0 +1,31 @@
1From 8f12872b8e50fe22be0a65ead260ebbedde905cd Mon Sep 17 00:00:00 2001
2From: rofl0r <rofl0r@users.noreply.github.com>
3Date: Sun, 29 Mar 2026 16:48:54 +0200
4Subject: [PATCH] reqs: prevent potential int overflow when parsing chunked
5 data (#603)
6
7follow-up to 969852ccdb1d19d7ed302f0e1d324661be641e0a
8
9closes #602
10
11CVE: CVE-2026-3945
12Upstream-Status: Backport [https://github.com/tinyproxy/tinyproxy/commit/bb7edc4778041b3bc8ad7fca448b67d98039cc7d]
13Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
14---
15 src/reqs.c | 3 ++-
16 1 file changed, 2 insertions(+), 1 deletion(-)
17
18diff --git a/src/reqs.c b/src/reqs.c
19index 94ce767..7aacfd3 100644
20--- a/src/reqs.c
21+++ b/src/reqs.c
22@@ -613,7 +613,8 @@ static int pull_client_data_chunked (struct conn_s *connptr) {
23 }
24
25 chunklen = strtol (buffer, (char**)0, 16);
26- if (chunklen < 0) goto ERROR_EXIT;
27+ /* prevent negative or huge values causing overflow */
28+ if (chunklen < 0 || chunklen > 0x0fffffff) goto ERROR_EXIT;
29
30 if (pull_client_data (connptr, chunklen+2, 0) < 0)
31 goto ERROR_EXIT;
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.2.bb b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.3.bb
index 8558291c18..56e3296066 100644
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.2.bb
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.3.bb
@@ -7,10 +7,11 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz
7 file://tinyproxy.service \ 7 file://tinyproxy.service \
8 file://tinyproxy.conf \ 8 file://tinyproxy.conf \
9 file://run-ptest \ 9 file://run-ptest \
10 file://CVE-2025-63938.patch \ 10 file://CVE-2026-3945-1.patch \
11 file://CVE-2026-3945-2.patch \
11 " 12 "
12 13
13SRC_URI[sha256sum] = "2c8fe5496f2c642bfd189020504ab98d74b9edbafcdb94d9f108e157b5bdf96d" 14SRC_URI[sha256sum] = "9bcf46db1a2375ff3e3d27a41982f1efec4706cce8899ff9f33323a8218f7592"
14 15
15UPSTREAM_CHECK_URI = "https://github.com/tinyproxy/tinyproxy/releases" 16UPSTREAM_CHECK_URI = "https://github.com/tinyproxy/tinyproxy/releases"
16 17
diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index ca800f12fa..b764d5dd58 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -58,7 +58,8 @@ PTESTS_FAST_META_OE = "\
58 uriparser \ 58 uriparser \
59 utf8proc \ 59 utf8proc \
60 uthash \ 60 uthash \
61 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'xrdp', '', d)} \ 61 xdg-dbus-proxy \
62 ${@bb.utils.contains('DISTRO_FEATURES', 'pam x11', 'xrdp', '', d)} \
62 zeromq \ 63 zeromq \
63" 64"
64PTESTS_FAST_META_OE:append:x86 = " mcelog" 65PTESTS_FAST_META_OE:append:x86 = " mcelog"
@@ -73,6 +74,7 @@ PTESTS_SLOW_META_OE = "\
73 c-ares \ 74 c-ares \
74 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'freerdp', '', d)} \ 75 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'freerdp', '', d)} \
75 fftw \ 76 fftw \
77 jsoncpp \
76 libusb-compat \ 78 libusb-compat \
77 mariadb \ 79 mariadb \
78 postgresql \ 80 postgresql \
diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf
index c6974f6dfe..78df6e3c03 100644
--- a/meta-oe/conf/layer.conf
+++ b/meta-oe/conf/layer.conf
@@ -120,7 +120,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
120 120
121DEFAULT_TEST_SUITES:pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}" 121DEFAULT_TEST_SUITES:pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}"
122 122
123NON_MULTILIB_RECIPES:append = " crash pahole libbpf bpftrace bpftool" 123NON_MULTILIB_RECIPES:append = " crash pahole libbpf bpftrace bpftool bcc"
124 124
125NON_MULTILIB_RECIPES:remove:x86 = "libbpf" 125NON_MULTILIB_RECIPES:remove:x86 = "libbpf"
126NON_MULTILIB_RECIPES:remove:x86-64 = "libbpf" 126NON_MULTILIB_RECIPES:remove:x86-64 = "libbpf"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-do-not-use-Werror.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-do-not-use-Werror.patch
index 663a80ecde..8d5c3da7c0 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-do-not-use-Werror.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-do-not-use-Werror.patch
@@ -1,4 +1,4 @@
1From 668ee79f39614ad758edd44c42b8b0eff57877cf Mon Sep 17 00:00:00 2001 1From 3790a098f4905cd330234fc4d18b4d4536b360bf Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de> 2From: Alexander Kanavin <alex@linutronix.de>
3Date: Sun, 3 Oct 2021 21:52:16 +0200 3Date: Sun, 3 Oct 2021 21:52:16 +0200
4Subject: [PATCH] meson.build: do not use -Werror 4Subject: [PATCH] meson.build: do not use -Werror
@@ -12,7 +12,7 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
12 1 file changed, 1 insertion(+), 1 deletion(-) 12 1 file changed, 1 insertion(+), 1 deletion(-)
13 13
14diff --git a/meson.build b/meson.build 14diff --git a/meson.build b/meson.build
15index 30f33fe2..0b214795 100644 15index 6f517b5a..2ecb7f5d 100644
16--- a/meson.build 16--- a/meson.build
17+++ b/meson.build 17+++ b/meson.build
18@@ -4,7 +4,7 @@ project('netplan', 'c', 18@@ -4,7 +4,7 @@ project('netplan', 'c',
@@ -22,8 +22,8 @@ index 30f33fe2..0b214795 100644
22- 'werror=true', 22- 'werror=true',
23+ 'werror=false', 23+ 'werror=false',
24 ], 24 ],
25 meson_version: '>= 0.61.0', 25 meson_version: '>= 1.3.0',
26 ) 26 )
27-- 27--
282.25.1 282.34.1
29 29
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.1.2.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.2.1.bb
index ef1945b4fe..22159dbcab 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.1.2.bb
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.2.1.bb
@@ -14,13 +14,13 @@ inherit meson pkgconfig systemd python3targetconfig features_check
14 14
15REQUIRED_DISTRO_FEATURES = "systemd" 15REQUIRED_DISTRO_FEATURES = "systemd"
16 16
17SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=stable/1.1;protocol=https \ 17SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
18 file://0001-meson.build-do-not-use-Werror.patch \ 18 file://0001-meson.build-do-not-use-Werror.patch \
19 " 19 "
20 20
21SRC_URI:append:libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch" 21SRC_URI:append:libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch"
22 22
23SRCREV = "01045f683b9419beb90119497cd1b2be44e83b8e" 23SRCREV = "f758e3f6415aa68b7cf28991bc5b3e9631297d6d"
24 24
25 25
26DEPENDS = "glib-2.0 libyaml util-linux-libuuid \ 26DEPENDS = "glib-2.0 libyaml util-linux-libuuid \
@@ -43,6 +43,7 @@ PACKAGES += "${PN}-dbus libnetplan"
43 43
44FILES:libnetplan = "${libdir}/libnetplan.so.*" 44FILES:libnetplan = "${libdir}/libnetplan.so.*"
45FILES:${PN} = "${sbindir} ${libexecdir}/netplan/generate \ 45FILES:${PN} = "${sbindir} ${libexecdir}/netplan/generate \
46 ${libexecdir}/netplan/configure \
46 ${datadir}/netplan ${datadir}/bash-completion \ 47 ${datadir}/netplan ${datadir}/bash-completion \
47 ${systemd_unitdir} ${PYTHON_SITEPACKAGES_DIR} \ 48 ${systemd_unitdir} ${PYTHON_SITEPACKAGES_DIR} \
48 ${sysconfdir}/netplan \ 49 ${sysconfdir}/netplan \
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch
new file mode 100644
index 0000000000..1b37633a36
--- /dev/null
+++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch
@@ -0,0 +1,56 @@
1From d0326cd89b01600a6d8ba5e32e8e090f2ea29f2d Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Wed, 15 Apr 2026 16:28:28 -0700
4Subject: [PATCH] misc: fix discarded const qualifiers in char pointer
5 assignments
6
7These show up with glibc 2.43 + clang-22, glibc-2.43 has C23 versions
8of str* mem* functions
9
10Upstream-Status: Backport [https://github.com/taisei-project/taisei/commit/1c8f773912cbbd72b4a4df271fda1bd6d2aeb27f]
11Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
12---
13 src/log.c | 2 +-
14 src/pixmap/pixmap.c | 2 +-
15 src/vfs/pathutil.c | 2 +-
16 3 files changed, 3 insertions(+), 3 deletions(-)
17
18diff --git a/src/log.c b/src/log.c
19index 8194535a..88f34386 100644
20--- a/src/log.c
21+++ b/src/log.c
22@@ -161,7 +161,7 @@ static void add_debug_info(StringBuffer *buf) {
23 static size_t modname(const char *filename, size_t filename_len, char *mod) {
24 size_t mlen = filename_len;
25
26- char *dot = memchr(filename, '.', mlen);
27+ const char *dot = memchr(filename, '.', mlen);
28 if(dot) {
29 mlen = dot - filename;
30 }
31diff --git a/src/pixmap/pixmap.c b/src/pixmap/pixmap.c
32index 25105215..9717f22a 100644
33--- a/src/pixmap/pixmap.c
34+++ b/src/pixmap/pixmap.c
35@@ -49,7 +49,7 @@ void *pixmap_alloc_buffer_for_conversion(const Pixmap *src, PixmapFormat format,
36 }
37
38 static PixmapFileFormatHandler *pixmap_handler_for_filename(const char *file) {
39- char *ext = strrchr(file, '.');
40+ const char *ext = strrchr(file, '.');
41
42 if(!ext || !*(++ext)) {
43 return NULL;
44diff --git a/src/vfs/pathutil.c b/src/vfs/pathutil.c
45index f6bd6a80..85ccf5ee 100644
46--- a/src/vfs/pathutil.c
47+++ b/src/vfs/pathutil.c
48@@ -14,7 +14,7 @@ char *vfs_path_normalize(const char *path, char *out) {
49 const char *p = path;
50 char *o = out;
51 char *last_sep = out - 1;
52- char *path_end = strchr(path, 0);
53+ const char *path_end = strchr(path, 0);
54
55 #define IS_SEP_OR_NUL(chr) (VFS_IS_PATH_SEPARATOR(chr) || (chr == '\0'))
56
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch
new file mode 100644
index 0000000000..9f5d7a17d4
--- /dev/null
+++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei/0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch
@@ -0,0 +1,71 @@
1From c9c00a88c10db4ce93ffcc043c661727d2ec9758 Mon Sep 17 00:00:00 2001
2From: laochailan <239670+laochailan@users.noreply.github.com>
3Date: Fri, 13 Feb 2026 20:21:44 -0500
4Subject: [PATCH] vfs: avoid unnecessary recursion in vfs_mkparents
5
6Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
7Upstream-Status: Backport [https://github.com/taisei-project/taisei/commit/f2e074f4a6aecf78b980014ed98f12fc6ddfd016]
8---
9 src/vfs/public.c | 43 +++++++++++++++++--------------------------
10 1 file changed, 17 insertions(+), 26 deletions(-)
11
12diff --git a/src/vfs/public.c b/src/vfs/public.c
13index abaa050f..cfeef83a 100644
14--- a/src/vfs/public.c
15+++ b/src/vfs/public.c
16@@ -146,38 +146,29 @@ void vfs_mkdir_required(const char *path) {
17 }
18 }
19
20-static bool vfs_mkparents_recurse(const char *path) {
21- // FIXME this has stupid space complexity and is probably silly in general; optimize if you care
22-
23- char *psep = strrchr(path, VFS_PATH_SEPARATOR);
24-
25- if(!psep) {
26- // parent is root
27- return true;
28- }
29+bool vfs_mkparents(const char *path) {
30+ char p[strlen(path)+1];
31+ path = vfs_path_normalize(path, p);
32
33- char p[strlen(path) + 1];
34- strcpy(p, path);
35- psep += p - path;
36- *psep = 0;
37+ // loop over all parent directories
38+ char *psep = p;
39+ while((psep = strchr(psep, VFS_PATH_SEPARATOR))) {
40+ *psep = 0;
41
42- VFSInfo i = vfs_query(p);
43+ VFSInfo i = vfs_query(p);
44+ if(i.error) {
45+ return false;
46+ }
47
48- if(i.error) {
49- return false;
50- }
51+ if(!i.exists || !i.is_dir) {
52+ vfs_mkdir(p);
53+ }
54
55- if(i.exists) {
56- return i.is_dir;
57+ *psep = VFS_PATH_SEPARATOR;
58+ psep++;
59 }
60
61- return vfs_mkparents_recurse(p) && vfs_mkdir(p);
62-}
63-
64-bool vfs_mkparents(const char *path) {
65- char p[strlen(path)+1];
66- path = vfs_path_normalize(path, p);
67- return vfs_mkparents_recurse(p);
68+ return true;
69 }
70
71 char* vfs_repr(const char *path, bool try_syspath) {
diff --git a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb
index bb08ad4a1c..844e735b69 100644
--- a/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb
+++ b/meta-oe/dynamic-layers/multimedia-layer/recipes-graphics/taisei/taisei_1.4.4.bb
@@ -20,7 +20,10 @@ DEPENDS = "\
20DEPENDS:append:libc-musl = " libucontext" 20DEPENDS:append:libc-musl = " libucontext"
21LDFLAGS:append:libc-musl = " -lucontext" 21LDFLAGS:append:libc-musl = " -lucontext"
22 22
23SRC_URI = "gitsm://github.com/taisei-project/taisei.git;branch=v1.4.x;protocol=https;tag=v${PV}" 23SRC_URI = "gitsm://github.com/taisei-project/taisei.git;branch=v1.4.x;protocol=https;tag=v${PV} \
24 file://0001-misc-fix-discarded-const-qualifiers-in-char-pointer-.patch \
25 file://0001-vfs-avoid-unnecessary-recursion-in-vfs_mkparents.patch \
26 "
24SRCREV = "6a484e6e61cc51a22a9943762dc2ff6883914f38" 27SRCREV = "6a484e6e61cc51a22a9943762dc2ff6883914f38"
25 28
26inherit features_check meson mime mime-xdg pkgconfig 29inherit features_check meson mime mime-xdg pkgconfig
diff --git a/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/0001-Added-sepolicy-for-adb-service.patch b/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/0001-Added-sepolicy-for-adb-service.patch
deleted file mode 100644
index 62f81e4ffb..0000000000
--- a/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/0001-Added-sepolicy-for-adb-service.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1From c110d893be565ade574ee2933c6e89197f833006 Mon Sep 17 00:00:00 2001
2From: Gargi Misra <gmisra@qti.qualcomm.com>
3Date: Thu, 5 Mar 2026 12:39:42 +0530
4Subject: [PATCH] refpolicy-targeted: Added sepolicy for adb service
5
6 - Labeled adb binary
7 - Moved adb shell from initrc_t to unconfined_t
8
9Upstream-Status: Inappropriate [meta-oe Specific]
10
11Signed-off-by: Gargi Misra <gmisra@qti.qualcomm.com>
12---
13 policy/modules/services/adbd.fc | 5 +++++
14 policy/modules/services/adbd.if | 5 +++++
15 policy/modules/services/adbd.te | 25 +++++++++++++++++++++++++
16 3 files changed, 35 insertions(+)
17 create mode 100644 policy/modules/services/adbd.fc
18 create mode 100644 policy/modules/services/adbd.if
19 create mode 100644 policy/modules/services/adbd.te
20
21diff --git a/policy/modules/services/adbd.fc b/policy/modules/services/adbd.fc
22new file mode 100644
23index 000000000..6f5bb9269
24--- /dev/null
25+++ b/policy/modules/services/adbd.fc
26@@ -0,0 +1,5 @@
27+/usr/bin/adbd -- gen_context(system_u:object_r:adbd_exec_t,s0)
28+
29+
30+
31+
32diff --git a/policy/modules/services/adbd.if b/policy/modules/services/adbd.if
33new file mode 100644
34index 000000000..612fc0106
35--- /dev/null
36+++ b/policy/modules/services/adbd.if
37@@ -0,0 +1,5 @@
38+## <summary>adb service.</summary>
39+
40+
41+
42+
43diff --git a/policy/modules/services/adbd.te b/policy/modules/services/adbd.te
44new file mode 100644
45index 000000000..f7e8ac7d0
46--- /dev/null
47+++ b/policy/modules/services/adbd.te
48@@ -0,0 +1,25 @@
49+policy_module(adbd)
50+
51+########################################
52+#
53+# Declarations
54+#
55+
56+type adbd_t;
57+type adbd_exec_t;
58+
59+init_daemon_domain(adbd_t, adbd_exec_t)
60+
61+# Move adb from system_r:initrc_t to unconfined_r:unconfined_t
62+unconfined_shell_domtrans(adbd_t)
63+
64+# Minimal Rules Required for adbd service
65+allow adbd_t self:capability sys_resource;
66+
67+domain_interactive_fd(adbd_t)
68+dev_rw_usbfs(adbd_t)
69+files_read_etc_files(adbd_t)
70+files_rw_etc_runtime_files(adbd_t)
71+term_use_ptmx(adbd_t)
72+term_use_generic_ptys(adbd_t)
73+
74--
752.43.0
76
diff --git a/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend b/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend
deleted file mode 100644
index 429b3ea9b5..0000000000
--- a/meta-oe/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
1FILESEXTRAPATHS:append := "${THISDIR}/${PN}:"
2
3SRC_URI:append = " \
4 file://0001-Added-sepolicy-for-adb-service.patch \
5 "
diff --git a/meta-oe/licenses/LicenseRef-EEMBC-AUA b/meta-oe/licenses/LicenseRef-EEMBC-AUA
new file mode 100644
index 0000000000..14e53e9eec
--- /dev/null
+++ b/meta-oe/licenses/LicenseRef-EEMBC-AUA
@@ -0,0 +1,100 @@
1# COREMARK® ACCEPTABLE USE AGREEMENT
2
3This ACCEPTABLE USE AGREEMENT (this “Agreement”) is offered by Embedded Microprocessor Benchmark Consortium, a California nonprofit corporation (“Licensor”), to users of its CoreMark® software (“Licensee”) exclusively on the following terms.
4
5Licensor offers benchmarking software (“Software”) pursuant to an open source license, but carefully controls use of its benchmarks and their associated goodwill. Licensor has registered its trademark in one of the benchmarks available through the Software, COREMARK, Ser. No. 85/487,290; Reg. No. 4,179,307 (the “Trademark”), and promotes the use of a standard metric as a benchmark for assessing the performance of embedded systems. Solely on the terms described herein, Licensee may use and display the Trademark in connection with the generation of data regarding measurement and analysis of computer and embedded system benchmarking via the Software (the “Licensed Use”).
6
7## Article 1 – License Grant.
81.1. License. Subject to the terms and conditions of this Agreement, Licensor hereby grants to Licensee, and Licensee hereby accepts from Licensor, a personal, non-exclusive, royalty-free, revocable right and license to use and display the Trademark during the term of this Agreement (the “Term”), solely and exclusively in connection with the Licensed Use. During the Term, Licensee (i) shall not modify or otherwise create derivative works of the Trademark, and (ii) may use the Trademark only to the extent permitted under this License. Neither Licensee nor any affiliate or agent thereof shall otherwise use the Trademark without the prior express written consent of Licensor, which may be withheld in its sole and absolute discretion. All rights not expressly granted to Licensee hereunder shall remain the exclusive property of Licensor.
9
101.2. Modifications to the Software. Licensee shall not use the Trademark in connection with any use of a modified, derivative, or otherwise altered copy of the Software.
11
121.3. Licensor’s Use. Nothing in this Agreement shall preclude Licensor or any of its successors or assigns from using or permitting other entities to use the Trademark, whether or not such entity directly or indirectly competes or conflicts with Licensee’s Licensed Use in any manner.
13
141.4. Term and Termination. This Agreement is perpetual unless terminated by either of the parties. Licensee may terminate this Agreement for convenience, without cause or liability, for any reason or for no reason whatsoever, upon ten (10) business days written notice. Licensor may terminate this Agreement effective immediately upon notice of breach. Upon termination, Licensee shall immediately remove all implementations of the Trademark from the Licensed Use, and delete all digitals files and records of all materials related to the Trademark.
15
16## Article 2 – Ownership.
172.1. Ownership. Licensee acknowledges and agrees that Licensor is the owner of all right, title, and interest in and to the Trademark, and all such right, title, and interest shall remain with Licensor. Licensee shall not contest, dispute, challenge, oppose, or seek to cancel Licensor’s right, title, and interest in and to the Trademark. Licensee shall not prosecute any application for registration of the Trademark. Licensee shall display appropriate notices regarding ownership of the Trademark in connection with the Licensed Use.
18
192.2. Goodwill. Licensee acknowledges that Licensee shall not acquire any right, title, or interest in the Trademark by virtue of this Agreement other than the license granted hereunder, and disclaims any such right, title, interest, or ownership. All goodwill and reputation generated by Licensee’s use of the Trademark shall inure to the exclusive benefit of Licensor. Licensee shall not by any act or omission use the Trademark in any manner that disparages or reflects adversely on Licensor or its Licensed Use or reputation. Licensee shall not take any action that would interfere with or prejudice Licensor’s ownership or registration of the Trademark, the validity of the Trademark or the validity of the license granted by this Agreement. If Licensor determines and notifies Licensee that any act taken in connection with the Licensed Use (i) is inaccurate, unlawful or offensive to good taste; (ii) fails to provide for proper trademark notices, or (iii) otherwise violates Licensee’s obligations under this Agreement, the license granted under this Agreement shall terminate.
20
21## Article 3 – Indemnification.
223.1. Indemnification Generally. Licensee agrees to indemnify, defend, and hold harmless (collectively “indemnify” or “indemnification”) Licensor, including Licensor’s members, managers, officers, and employees (collectively “Related Persons”), from and against, and pay or reimburse Licensor and such Related Persons for, any and all third-party actions, claims, demands, proceedings, investigations, inquiries (collectively, “Claims”), and any and all liabilities, obligations, fines, deficiencies, costs, expenses, royalties, losses, and damages (including reasonable outside counsel fees and expenses) associated with such Claims, to the extent that such Claim arises out of (i) Licensee’s material breach of this Agreement, or (ii) any allegation(s) that Licensee’s actions infringe or violate any third-party intellectual property right, including without limitation, any U.S. copyright, patent, or trademark, or are otherwise found to be tortious or criminal (whether or not such indemnified person is a named party in a legal proceeding).
23
243.2. Notice and Defense of Claims. Licensor shall promptly notify Licensee of any Claim for which indemnification is sought, following actual knowledge of such Claim, provided however that the failure to give such notice shall not relieve Licensee of its obligations hereunder except to the extent that Licensee is materially prejudiced by such failure. In the event that any third-party Claim is brought, Licensee shall have the right and option to undertake and control the defense of such action with counsel of its choice, provided however that (i) Licensor at its own expense may participate and appear on an equal footing with Licensee in the defense of any such Claim, (ii) Licensor may undertake and control such defense in the event of the material failure of Licensee to undertake and control the same; and (iii) the defense of any Claim relating to the intellectual property rights of Licensor or its licensors and any related counterclaims shall be solely controlled by Licensor with counsel of its choice. Licensee shall not consent to judgment or concede or settle or compromise any Claim without the prior written approval of Licensor (whose approval shall not be unreasonably withheld), unless such concession or settlement or compromise includes a full and unconditional release of Licensor and any applicable Related Persons from all liabilities in respect of such Claim.
25
26## Article 4 – Miscellaneous.
274.1. Relationship of the Parties. This Agreement does not create a partnership, franchise, joint venture, agency, fiduciary, or employment relationship between the parties.
28
294.2. No Third-Party Beneficiaries. Except for the rights of Related Persons under Article 3 (Indemnification), there are no third-party beneficiaries to this Agreement.
30
314.3. Assignment. Licensee’s rights hereunder are non-assignable, and may not be sublicensed.
32
334.4. Equitable Relief. Licensee acknowledges that the remedies available at law for any breach of this Agreement will, by their nature, be inadequate. Accordingly, Licensor may obtain injunctive relief or other equitable relief to restrain a breach or threatened breach of this Agreement or to specifically enforce this Agreement, without proving that any monetary damages have been sustained, and without the requirement of posting of a bond prior to obtaining such equitable relief.
34
354.5. Governing Law. This Agreement will be interpreted, construed, and enforced in all respects in accordance with the laws of the State of California, without reference to its conflict of law principles.
36
374.6. Attorneys’ Fees. If any legal action, arbitration or other proceeding is brought for the enforcement of this Agreement, or because of an alleged dispute, breach, default, or misrepresentation in connection with any of the provisions of this Agreement, the successful or prevailing party shall be entitled to recover its reasonable attorneys’ fees and other reasonable costs incurred in that action or proceeding, in addition to any other relief to which it may be entitled.
38
394.7. Amendment; Waiver. This Agreement may not be amended, nor may any rights under it be waived, except in writing by Licensor.
40
414.8. Severability. If any provision of this Agreement is held by a court of competent jurisdiction to be contrary to law, the provision shall be modified by the court and interpreted so as best to accomplish the objectives of the original provision to the fullest extent
42permitted by law, and the remaining provisions of this Agreement shall remain in effect.
43
444.9. Entire Agreement. This Agreement constitutes the entire agreement between the parties and supersedes all prior and contemporaneous agreements, proposals or representations, written or oral, concerning its subject matter.
45
46
47# Apache License
48
49Version 2.0, January 2004
50
51http://www.apache.org/licenses/
52
53## TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
54
551. Definitions.
56
57"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
58
59"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
60
61"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
62
63"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
64
65"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
66
67"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
68
69"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
70
71"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
72
73"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
74
75"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
76
772. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
78
793. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
80
814. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
82
83 You must give any other recipients of the Work or Derivative Works a copy of this License; and
84 You must cause any modified files to carry prominent notices stating that You changed the files; and
85 You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
86 If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
87
88 You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
89
905. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
91
926. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
93
947. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
95
968. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
97
989. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
99
100END OF TERMS AND CONDITIONS
diff --git a/meta-oe/recipes-benchmark/coremark/coremark_git.bb b/meta-oe/recipes-benchmark/coremark/coremark_git.bb
new file mode 100644
index 0000000000..f4974b754f
--- /dev/null
+++ b/meta-oe/recipes-benchmark/coremark/coremark_git.bb
@@ -0,0 +1,23 @@
1SUMMARY = "EEMBC CoreMark CPU benchmark"
2DESCRIPTION = "CoreMark is a CPU benchmark program"
3HOMEPAGE = "https://www.eembc.org/coremark/"
4LICENSE = "Apache-2.0 & LicenseRef-EEMBC-AUA"
5LIC_FILES_CHKSUM = "file://LICENSE.md;md5=0a18b17ae63deaa8a595035f668aebe1"
6
7SRC_URI = "git://github.com/eembc/coremark.git;branch=main;protocol=https"
8SRCREV = "1f483d5b8316753a742cbf5590caf5bd0a4e4777"
9
10inherit pkgconfig
11
12do_configure[noexec] = "1"
13
14TARGET_CC_ARCH += "${LDFLAGS}"
15
16do_compile() {
17 oe_runmake compile
18}
19
20do_install() {
21 install -d ${D}${bindir}
22 install -m 0755 ${S}/coremark.exe ${D}${bindir}/coremark
23}
diff --git a/meta-oe/recipes-benchmark/fio/fio/0001-fix-musl-builds.patch b/meta-oe/recipes-benchmark/fio/fio/0001-fix-musl-builds.patch
deleted file mode 100644
index 6c0d69d6e8..0000000000
--- a/meta-oe/recipes-benchmark/fio/fio/0001-fix-musl-builds.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From ccce76d2850d6e52da3d7986c950af068fbfe0fd Mon Sep 17 00:00:00 2001
2From: Arthur Gautier <arthur.gautier@arista.com>
3Date: Sat, 13 Dec 2025 20:07:11 -0800
4Subject: [PATCH] fix musl builds
5
6This commit fixes the build on musl which fails with the following
7error:
8```
9oslib/linux-blkzoned.c: In function 'blkzoned_move_zone_wp':
10oslib/linux-blkzoned.c:389:37: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
11 389 | ret = fallocate(fd, FALLOC_FL_ZERO_RANGE, z->wp, length);
12 | ^~~~~~~~~~~~~~~~~~~~
13oslib/linux-blkzoned.c:389:37: note: each undeclared identifier is reported only once for each function it appears in
14make: *** [Makefile:501: oslib/linux-blkzoned.o] Error 1
15make: *** Waiting for unfinished jobs....
16```
17
18Upstream-Status: Backport [https://github.com/axboe/fio/commit/ccce76d2850d6e52da3d7986c950af068fbfe0fd]
19Signed-off-by: Arthur Gautier <arthur.gautier@arista.com>
20---
21 oslib/linux-blkzoned.c | 1 +
22 1 file changed, 1 insertion(+)
23
24diff --git a/oslib/linux-blkzoned.c b/oslib/linux-blkzoned.c
25index 78e25fca..c45ef623 100644
26--- a/oslib/linux-blkzoned.c
27+++ b/oslib/linux-blkzoned.c
28@@ -25,6 +25,7 @@
29 #ifndef BLKFINISHZONE
30 #define BLKFINISHZONE _IOW(0x12, 136, struct blk_zone_range)
31 #endif
32+#include <linux/falloc.h>
33
34 /*
35 * If the uapi headers installed on the system lacks zone capacity support,
36--
372.51.0
38
diff --git a/meta-oe/recipes-benchmark/fio/fio/CVE-2025-10823.patch b/meta-oe/recipes-benchmark/fio/fio/CVE-2025-10823.patch
deleted file mode 100644
index c5813273c7..0000000000
--- a/meta-oe/recipes-benchmark/fio/fio/CVE-2025-10823.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 6a39dfaffdb8a6c2080eec0dc7fb1ee532d54025 Mon Sep 17 00:00:00 2001
2From: Jens Axboe <axboe@kernel.dk>
3Date: Tue, 23 Sep 2025 11:50:46 -0600
4Subject: [PATCH] options: check for NULL input string and fail
5
6Waste of time busy work.
7
8Link: https://github.com/axboe/fio/issues/1982
9
10CVE: CVE-2025-10823
11
12Upstream-Status: Backport
13https://github.com/axboe/fio/commit/6a39dfaffdb8a6c2080eec0dc7fb1ee532d54025
14
15Signed-off-by: Jens Axboe <axboe@kernel.dk>
16Signed-off-by: Saravanan <saravanan.kadambathursubramaniyam@windriver.com>
17---
18 options.c | 3 +++
19 1 file changed, 3 insertions(+)
20
21diff --git a/options.c b/options.c
22index c35878f..562c5bc 100644
23--- a/options.c
24+++ b/options.c
25@@ -1616,6 +1616,9 @@ static int str_buffer_pattern_cb(void *data, const char *input)
26 struct thread_data *td = cb_data_to_td(data);
27 int ret;
28
29+ if (!input)
30+ return 1;
31+
32 /* FIXME: for now buffer pattern does not support formats */
33 ret = parse_and_fill_pattern_alloc(input, strlen(input),
34 &td->o.buffer_pattern, NULL, NULL, NULL);
35--
362.48.1
37
diff --git a/meta-oe/recipes-benchmark/fio/fio_3.41.bb b/meta-oe/recipes-benchmark/fio/fio_3.42.bb
index 3f03c41f22..dac7548d08 100644
--- a/meta-oe/recipes-benchmark/fio/fio_3.41.bb
+++ b/meta-oe/recipes-benchmark/fio/fio_3.42.bb
@@ -24,15 +24,11 @@ PACKAGECONFIG[numa] = ",--disable-numa,numactl"
24 24
25SRC_URI = " \ 25SRC_URI = " \
26 git://git.kernel.dk/fio.git;branch=master;tag=${BP} \ 26 git://git.kernel.dk/fio.git;branch=master;tag=${BP} \
27 file://0001-fix-musl-builds.patch \
28" 27"
29SRCREV = "ed675d3477a70a42d2e757b713f6c7125a27cdca" 28SRCREV = "ab77643023f5d7e3c1b71a7576a564f368bf577a"
30
31SRC_URI += "file://CVE-2025-10823.patch"
32 29
33UPSTREAM_CHECK_GITTAGREGEX = "fio-(?P<pver>\d+(\.\d+)+)" 30UPSTREAM_CHECK_GITTAGREGEX = "fio-(?P<pver>\d+(\.\d+)+)"
34 31
35
36# avoids build breaks when using no-static-libs.inc 32# avoids build breaks when using no-static-libs.inc
37DISABLE_STATIC = "" 33DISABLE_STATIC = ""
38 34
@@ -50,3 +46,4 @@ do_install() {
50} 46}
51 47
52CVE_STATUS[CVE-2025-10824] = "disputed: Maintainer could not reproduce the issue, issue is closed without change." 48CVE_STATUS[CVE-2025-10824] = "disputed: Maintainer could not reproduce the issue, issue is closed without change."
49CVE_STATUS[CVE-2026-30656] = "fixed-version: fixed in 3.42"
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.20.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.21.bb
index 7d4d6beeb8..de266551ae 100644
--- a/meta-oe/recipes-benchmark/iperf3/iperf3_3.20.bb
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.21.bb
@@ -10,14 +10,14 @@ SECTION = "console/network"
10BUGTRACKER = "https://github.com/esnet/iperf/issues" 10BUGTRACKER = "https://github.com/esnet/iperf/issues"
11 11
12LICENSE = "BSD-3-Clause" 12LICENSE = "BSD-3-Clause"
13LIC_FILES_CHKSUM = "file://LICENSE;md5=b51332d7f45357a9410daa9a14a3655f" 13LIC_FILES_CHKSUM = "file://LICENSE;md5=f2eb355b6d3b9d63b6b7a861cdc62440"
14 14
15SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \ 15SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https;tag=${PV} \
16 file://0002-Remove-pg-from-profile_CFLAGS.patch \ 16 file://0002-Remove-pg-from-profile_CFLAGS.patch \
17 file://0001-configure.ac-check-for-CPP-prog.patch \ 17 file://0001-configure.ac-check-for-CPP-prog.patch \
18 " 18 "
19 19
20SRCREV = "0711330bacfaf1c2a804be66e7ecc26f481ede5d" 20SRCREV = "d39cf41526626b4e5a130f115d931cd6cbdffc19"
21 21
22RDEPENDS:${PN} = "libgcc" 22RDEPENDS:${PN} = "libgcc"
23 23
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_2.24.bb b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_2.24.bb
index 89ce11f6e4..dd2fbbc7cd 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_2.24.bb
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_2.24.bb
@@ -31,7 +31,7 @@ SRC_URI = " \
31UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 31UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
32 32
33 33
34COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*" 34COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|riscv64|aarch64|arm).*-linux*"
35 35
36LIBARGS = "LIB32=${baselib} LIB64=${baselib}" 36LIBARGS = "LIB32=${baselib} LIB64=${baselib}"
37LIBHUGETLBFS_ARCH = "${TARGET_ARCH}" 37LIBHUGETLBFS_ARCH = "${TARGET_ARCH}"
diff --git a/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb b/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb
index 198552e5c6..3154db2705 100644
--- a/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb
+++ b/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb
@@ -15,7 +15,7 @@ SRCREV = "ebf1c90da05dea94648165e4f149abc20c979557"
15 15
16 16
17COMPATIBLE_HOST = "(arm|aarch64|i.86|x86_64).*-linux*" 17COMPATIBLE_HOST = "(arm|aarch64|i.86|x86_64).*-linux*"
18 18CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
19EXTRA_OECONF += "--enable-largefile --with-system-luajit --with-system-ck --without-gcc-arch --with-lib-prefix=no" 19EXTRA_OECONF += "--enable-largefile --with-system-luajit --with-system-ck --without-gcc-arch --with-lib-prefix=no"
20PACKAGECONFIG ??= "" 20PACKAGECONFIG ??= ""
21PACKAGECONFIG[aio] = "--enable-aio,--disable-aio,libaio," 21PACKAGECONFIG[aio] = "--enable-aio,--disable-aio,libaio,"
diff --git a/meta-oe/recipes-bsp/bolt/bolt_0.9.10.bb b/meta-oe/recipes-bsp/bolt/bolt_0.9.11.bb
index 3d1686bcf6..924964f6b6 100644
--- a/meta-oe/recipes-bsp/bolt/bolt_0.9.10.bb
+++ b/meta-oe/recipes-bsp/bolt/bolt_0.9.11.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
7DEPENDS = "udev polkit dbus" 7DEPENDS = "udev polkit dbus"
8REQUIRED_DISTRO_FEATURES = "polkit" 8REQUIRED_DISTRO_FEATURES = "polkit"
9 9
10SRC_URI = "git://gitlab.freedesktop.org/bolt/bolt.git;protocol=https;branch=master" 10SRC_URI = "git://gitlab.freedesktop.org/bolt/bolt.git;protocol=https;branch=master;tag=${PV}"
11SRCREV = "c0d4cb2f4399e86417907a37c0d8ef3bb9fb406f" 11SRCREV = "9d1d66380353dab94c28466f34adb2ba6c7e4393"
12 12
13 13
14CVE_PRODUCT = "freedesktop:bolt" 14CVE_PRODUCT = "freedesktop:bolt"
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-configure.ac-replace-K5_AC_INIT-with-explicit-AC_INI.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-configure.ac-replace-K5_AC_INIT-with-explicit-AC_INI.patch
new file mode 100644
index 0000000000..9fb9b38a63
--- /dev/null
+++ b/meta-oe/recipes-connectivity/krb5/krb5/0001-configure.ac-replace-K5_AC_INIT-with-explicit-AC_INI.patch
@@ -0,0 +1,37 @@
1From 1b54d6a42677bd4209cf5c893802c7f60dc0ad75 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 3 Apr 2026 23:43:18 -0700
4Subject: [PATCH] configure.ac: replace K5_AC_INIT with explicit AC_INIT
5
6autoreconf expects configure.ac to contain a literal AC_INIT invocation.
7krb5 currently uses the custom K5_AC_INIT wrapper, which expands to
8AC_INIT but is not recognized by autoreconf's initial sanity check,
9causing configuration to fail with:
10
11 autoreconf: error: configure.ac: AC_INIT not found
12
13Replace K5_AC_INIT([aclocal.m4]) with its explicit expansion:
14AC_INIT(...), AC_CONFIG_SRCDIR([aclocal.m4]), and build_dynobj=no.
15
16This preserves the existing behavior while allowing autoreconf-based
17builds to succeed.
18
19Upstream-Status: Pending
20
21Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
22---
23 src/configure.ac | 4 +++-
24 1 file changed, 3 insertions(+), 1 deletion(-)
25
26diff --git a/src/configure.ac b/src/configure.ac
27index 4325fae..03e224f 100644
28--- a/src/configure.ac
29+++ b/src/configure.ac
30@@ -1,4 +1,6 @@
31-K5_AC_INIT([aclocal.m4])
32+AC_INIT([Kerberos 5], m4_defn([K5_VERSION]), m4_defn([K5_BUGADDR]), [krb5])
33+AC_CONFIG_SRCDIR([aclocal.m4])
34+build_dynobj=no
35
36 # If $runstatedir isn't set by autoconf (<2.70), set it manually.
37 if test x"$runstatedir" = x; then
diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.22.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.22.2.bb
index 5d8ab2dc01..89e5502847 100644
--- a/meta-oe/recipes-connectivity/krb5/krb5_1.22.2.bb
+++ b/meta-oe/recipes-connectivity/krb5/krb5_1.22.2.bb
@@ -23,6 +23,7 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
23 file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \ 23 file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
24 file://fix-strchr-conformance-to-C23.patch;striplevel=2 \ 24 file://fix-strchr-conformance-to-C23.patch;striplevel=2 \
25 file://crosscompile_nm.patch \ 25 file://crosscompile_nm.patch \
26 file://0001-configure.ac-replace-K5_AC_INIT-with-explicit-AC_INI.patch;striplevel=2 \
26 file://etc/init.d/krb5-kdc \ 27 file://etc/init.d/krb5-kdc \
27 file://etc/init.d/krb5-admin-server \ 28 file://etc/init.d/krb5-admin-server \
28 file://etc/default/krb5-kdc \ 29 file://etc/default/krb5-kdc \
diff --git a/meta-oe/recipes-connectivity/libcppconnman/libcppconnman_git.bb b/meta-oe/recipes-connectivity/libcppconnman/libcppconnman_1.0.0.bb
index daa32a8d48..bd1686e9a9 100644
--- a/meta-oe/recipes-connectivity/libcppconnman/libcppconnman_git.bb
+++ b/meta-oe/recipes-connectivity/libcppconnman/libcppconnman_1.0.0.bb
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=a87a7059d580c45495c1218f53e3610d"
4 4
5SECTION = "libs" 5SECTION = "libs"
6 6
7SRC_URI = "git://github.com/amarula/libcppconnman.git;protocol=https;branch=main" 7SRC_URI = "git://github.com/amarula/libcppconnman.git;protocol=https;branch=main;tag=v${PV}"
8SRCREV = "d89262c2cd7336da8ba9eb06228d422847fe4b20" 8SRCREV = "84fa99d3ba0908ff9debd9191c4eddabf08079d4"
9 9
10inherit cmake pkgconfig 10inherit cmake pkgconfig
11 11
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.8.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.9.bb
index 1e9d9d74f1..63c8a0bb7d 100644
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.8.bb
+++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.16.9.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
7DEPENDS = "zlib curl libsigc++-2.0 openssl cppunit" 7DEPENDS = "zlib curl libsigc++-2.0 openssl cppunit"
8 8
9SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https;tag=v${PV}" 9SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https;tag=v${PV}"
10SRCREV = "1534b1563f464fd1636c0b55e1591b72f7d8ab6b" 10SRCREV = "e88d4e7854abacd3036a0dec11927c1276c1e6b2"
11 11
12UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 12UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
13 13
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb
index 02843be7c3..a18f88390e 100644
--- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb
+++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb
@@ -22,7 +22,7 @@ PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libeve
22PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev" 22PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
23PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv" 23PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
24PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON," 24PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
25PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl" 25PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl libcap"
26PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON," 26PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
27PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd" 27PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
28PACKAGECONFIG[examples] = "-DLWS_WITH_MINIMAL_EXAMPLES=ON,-DLWS_WITH_MINIMAL_EXAMPLES=OFF" 28PACKAGECONFIG[examples] = "-DLWS_WITH_MINIMAL_EXAMPLES=ON,-DLWS_WITH_MINIMAL_EXAMPLES=OFF"
@@ -34,6 +34,7 @@ python __anonymous() {
34 34
35EXTRA_OECMAKE += " \ 35EXTRA_OECMAKE += " \
36 -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ 36 -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
37 -DLWS_WITHOUT_TESTAPPS=ON \
37" 38"
38 39
39do_compile:prepend() { 40do_compile:prepend() {
@@ -41,6 +42,8 @@ do_compile:prepend() {
41} 42}
42 43
43do_install:append() { 44do_install:append() {
45 sed -i -e 's|${STAGING_BASELIBDIR}/libcap.so|cap|g' ${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
46 sed -i -e 's|${STAGING_BASELIBDIR}/libcap.so|cap|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
44 sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake 47 sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
45 sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake 48 sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
46 sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake 49 sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.8.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.9.bb
index 9fc6f1e5e9..7ce38e9597 100644
--- a/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.8.bb
+++ b/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.16.9.bb
@@ -7,7 +7,7 @@ DEPENDS = "autoconf-archive libsigc++-2.0 curl cppunit libtool libtorrent ncurse
7 7
8SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https;tag=v${PV}" 8SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https;tag=v${PV}"
9 9
10SRCREV = "39f186e523f6ea2e72a3715a72d6e9ae4081ed84" 10SRCREV = "b78fd9aef5d0060fe7bd8447cace38606e03f41c"
11 11
12inherit autotools pkgconfig 12inherit autotools pkgconfig
13 13
diff --git a/meta-oe/recipes-connectivity/ttyd/ttyd_1.7.7.bb b/meta-oe/recipes-connectivity/ttyd/ttyd_1.7.7.bb
new file mode 100644
index 0000000000..8f4a1d3211
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ttyd/ttyd_1.7.7.bb
@@ -0,0 +1,11 @@
1SUMMARY = "ttyd is a simple command-line tool for sharing terminal over the web."
2SECTION = "console/network"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=4fe5f001c65f923d49dc96cce96ce935"
5
6SRC_URI = "git://github.com/tsl0922/ttyd.git;protocol=https;branch=main;tag=${PV}"
7SRCREV = "40e79c706be14029b391f369bee6613c31667abb"
8
9inherit cmake
10
11DEPENDS = "libuv json-c zlib libwebsockets"
diff --git a/meta-oe/recipes-core/minizip/minizip/0001-Add-dependency-to-ints.h-in-minizip-Makefile.am.patch b/meta-oe/recipes-core/minizip/minizip/0001-Add-dependency-to-ints.h-in-minizip-Makefile.am.patch
new file mode 100644
index 0000000000..1d05989c74
--- /dev/null
+++ b/meta-oe/recipes-core/minizip/minizip/0001-Add-dependency-to-ints.h-in-minizip-Makefile.am.patch
@@ -0,0 +1,25 @@
1From cb14dc9ade3759352417a300e6c2ed73268f1d97 Mon Sep 17 00:00:00 2001
2From: Rui Chen <rui@chenrui.dev>
3Date: Tue, 17 Feb 2026 10:48:39 -0500
4Subject: [PATCH] Add dependency to ints.h in minizip Makefile.am.
5
6So that ints.h is part of the installation.
7
8Upstream-Status: Backport
9Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
10---
11 contrib/minizip/Makefile.am | 1 +
12 1 file changed, 1 insertion(+)
13
14diff --git a/contrib/minizip/Makefile.am b/contrib/minizip/Makefile.am
15index d343011..b7dea4f 100644
16--- a/contrib/minizip/Makefile.am
17+++ b/contrib/minizip/Makefile.am
18@@ -27,6 +27,7 @@ libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
19 minizip_includedir = $(includedir)/minizip
20 minizip_include_HEADERS = \
21 crypt.h \
22+ ints.h \
23 ioapi.h \
24 mztools.h \
25 unzip.h \
diff --git a/meta-oe/recipes-core/minizip/minizip_1.3.1.bb b/meta-oe/recipes-core/minizip/minizip_1.3.2.bb
index 51a74d039b..95a605ecf4 100644
--- a/meta-oe/recipes-core/minizip/minizip_1.3.1.bb
+++ b/meta-oe/recipes-core/minizip/minizip_1.3.2.bb
@@ -4,15 +4,17 @@ library which is used by many different programs."
4HOMEPAGE = "http://www.winimage.com/zLibDll/minizip.html" 4HOMEPAGE = "http://www.winimage.com/zLibDll/minizip.html"
5SECTION = "libs" 5SECTION = "libs"
6LICENSE = "Zlib" 6LICENSE = "Zlib"
7LIC_FILES_CHKSUM = "file://zip.h;beginline=14;endline=30;md5=8eaa8535a3a1a2296b303f40f75385e7" 7LIC_FILES_CHKSUM = "file://zip.h;beginline=14;endline=30;md5=b7d2930a7332b2bc68fc1a7fdc5ba775"
8 8
9GITHUB_BASE_URI ?= "https://github.com/madler/zlib/releases/" 9GITHUB_BASE_URI ?= "https://github.com/madler/zlib/releases/"
10 10
11SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/zlib-${PV}.tar.xz" 11SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/zlib-${PV}.tar.xz \
12 file://0001-Add-dependency-to-ints.h-in-minizip-Makefile.am.patch;patchdir=../.. \
13 "
12 14
13S = "${UNPACKDIR}/zlib-${PV}/contrib/minizip" 15S = "${UNPACKDIR}/zlib-${PV}/contrib/minizip"
14 16
15SRC_URI[sha256sum] = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32" 17SRC_URI[sha256sum] = "d7a0654783a4da529d1bb793b7ad9c3318020af77667bcae35f95d0e42a792f3"
16 18
17PACKAGECONFIG ??= "demos" 19PACKAGECONFIG ??= "demos"
18PACKAGECONFIG[demos] = "--enable-demos=yes,,," 20PACKAGECONFIG[demos] = "--enable-demos=yes,,,"
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index c74114ee61..7c2df00207 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -836,17 +836,15 @@ RDEPENDS:packagegroup-meta-oe-support = "\
836 nss \ 836 nss \
837 numactl \ 837 numactl \
838 onig \ 838 onig \
839 openct \
840 opencv \ 839 opencv \
841 openldap \ 840 openldap \
842 opensc \ 841 opensc \
843 p910nd \ 842 p910nd \
844 pcp \
845 pcsc-lite \ 843 pcsc-lite \
846 pcsc-tools \ 844 pcsc-tools \
847 picocom \ 845 picocom \
848 pidgin \ 846 pidgin \
849 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pidgin-otr", "", d)} \ 847 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pcp pidgin-otr", "", d)} \
850 pidgin-sipe \ 848 pidgin-sipe \
851 pngcheck \ 849 pngcheck \
852 poco \ 850 poco \
@@ -862,7 +860,6 @@ RDEPENDS:packagegroup-meta-oe-support = "\
862 rdfind \ 860 rdfind \
863 re2 \ 861 re2 \
864 read-edid \ 862 read-edid \
865 remmina \
866 rsnapshot \ 863 rsnapshot \
867 sassc \ 864 sassc \
868 satyr \ 865 satyr \
@@ -876,7 +873,7 @@ RDEPENDS:packagegroup-meta-oe-support = "\
876 srecord \ 873 srecord \
877 ssiapi \ 874 ssiapi \
878 stm32flash \ 875 stm32flash \
879 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "synergy", "", d)} \ 876 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "remmina synergy", "", d)} \
880 syslog-ng \ 877 syslog-ng \
881 tbb \ 878 tbb \
882 thin-provisioning-tools \ 879 thin-provisioning-tools \
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch
deleted file mode 100644
index 2aa5dee6b5..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 01195eb9f7d59139fb45df506ac6b3968c14a57f Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 13:55:12 +0800
4Subject: [PATCH 01/22] missing_type.h: add comparison_fn_t
5
6Make it work with musl where comparison_fn_t and is not provided.
7
8Upstream-Status: Inappropriate [musl specific]
9
10Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
11[Rebased for v244]
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13[Rebased for v242]
14Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
15[Rebased for v250, Drop __compare_fn_t]
16Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
17---
18 src/basic/missing_type.h | 4 ++++
19 src/basic/sort-util.h | 1 +
20 src/libsystemd/sd-journal/catalog.c | 1 +
21 3 files changed, 6 insertions(+)
22
23diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
24index f6233090a9..6c0456349d 100644
25--- a/src/basic/missing_type.h
26+++ b/src/basic/missing_type.h
27@@ -10,3 +10,7 @@
28 #if !HAVE_CHAR16_T
29 #define char16_t uint16_t
30 #endif
31+
32+#ifndef __GLIBC__
33+typedef int (*comparison_fn_t)(const void *, const void *);
34+#endif
35diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
36index 9c818bd747..ef10c8be2c 100644
37--- a/src/basic/sort-util.h
38+++ b/src/basic/sort-util.h
39@@ -4,6 +4,7 @@
40 #include <stdlib.h>
41
42 #include "macro.h"
43+#include "missing_type.h"
44
45 /* This is the same as glibc's internal __compar_d_fn_t type. glibc exports a public comparison_fn_t, for the
46 * external type __compar_fn_t, but doesn't do anything similar for __compar_d_fn_t. Let's hence do that
47diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
48index ae91534198..7f67eea38b 100644
49--- a/src/libsystemd/sd-journal/catalog.c
50+++ b/src/libsystemd/sd-journal/catalog.c
51@@ -28,6 +28,7 @@
52 #include "string-util.h"
53 #include "strv.h"
54 #include "tmpfile-util.h"
55+#include "missing_type.h"
56
57 const char * const catalog_file_dirs[] = {
58 "/usr/local/lib/systemd/catalog/",
59--
602.34.1
61
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch
deleted file mode 100644
index 900a931632..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch
+++ /dev/null
@@ -1,434 +0,0 @@
1From 872b72739e62123867ce6c4f82aa37de24cc3f75 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Sat, 22 May 2021 20:26:24 +0200
4Subject: [PATCH 02/22] add fallback parse_printf_format implementation
5
6Upstream-Status: Inappropriate [musl specific]
7
8Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11[rebased for systemd 243]
12Signed-off-by: Scott Murray <scott.murray@konsulko.com>
13---
14 meson.build | 1 +
15 src/basic/meson.build | 5 +
16 src/basic/parse-printf-format.c | 273 +++++++++++++++++++++++
17 src/basic/parse-printf-format.h | 57 +++++
18 src/basic/stdio-util.h | 2 +-
19 src/libsystemd/sd-journal/journal-send.c | 2 +-
20 6 files changed, 338 insertions(+), 2 deletions(-)
21 create mode 100644 src/basic/parse-printf-format.c
22 create mode 100644 src/basic/parse-printf-format.h
23
24diff --git a/meson.build b/meson.build
25index 7419e2b0b0..01fd3ffc19 100644
26--- a/meson.build
27+++ b/meson.build
28@@ -725,6 +725,7 @@ endif
29 foreach header : ['crypt.h',
30 'linux/memfd.h',
31 'linux/vm_sockets.h',
32+ 'printf.h',
33 'sys/auxv.h',
34 'threads.h',
35 'valgrind/memcheck.h',
36diff --git a/src/basic/meson.build b/src/basic/meson.build
37index d7450d8b44..c3e3daf4bd 100644
38--- a/src/basic/meson.build
39+++ b/src/basic/meson.build
40@@ -183,6 +183,11 @@ endforeach
41
42 basic_sources += generated_gperf_headers
43
44+if conf.get('HAVE_PRINTF_H') != 1
45+ basic_sources += [files('parse-printf-format.c')]
46+endif
47+
48+
49 ############################################################
50
51 arch_list = [
52diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
53new file mode 100644
54index 0000000000..49437e5445
55--- /dev/null
56+++ b/src/basic/parse-printf-format.c
57@@ -0,0 +1,273 @@
58+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
59+
60+/***
61+ This file is part of systemd.
62+
63+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
64+
65+ With parts from the musl C library
66+ Copyright 2005-2014 Rich Felker, et al.
67+
68+ systemd is free software; you can redistribute it and/or modify it
69+ under the terms of the GNU Lesser General Public License as published by
70+ the Free Software Foundation; either version 2.1 of the License, or
71+ (at your option) any later version.
72+
73+ systemd is distributed in the hope that it will be useful, but
74+ WITHOUT ANY WARRANTY; without even the implied warranty of
75+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
76+ Lesser General Public License for more details.
77+
78+ You should have received a copy of the GNU Lesser General Public License
79+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
80+***/
81+
82+#include <stddef.h>
83+#include <string.h>
84+
85+#include "parse-printf-format.h"
86+
87+static const char *consume_nonarg(const char *fmt)
88+{
89+ do {
90+ if (*fmt == '\0')
91+ return fmt;
92+ } while (*fmt++ != '%');
93+ return fmt;
94+}
95+
96+static const char *consume_num(const char *fmt)
97+{
98+ for (;*fmt >= '0' && *fmt <= '9'; fmt++)
99+ /* do nothing */;
100+ return fmt;
101+}
102+
103+static const char *consume_argn(const char *fmt, size_t *arg)
104+{
105+ const char *p = fmt;
106+ size_t val = 0;
107+
108+ if (*p < '1' || *p > '9')
109+ return fmt;
110+ do {
111+ val = 10*val + (*p++ - '0');
112+ } while (*p >= '0' && *p <= '9');
113+
114+ if (*p != '$')
115+ return fmt;
116+ *arg = val;
117+ return p+1;
118+}
119+
120+static const char *consume_flags(const char *fmt)
121+{
122+ while (1) {
123+ switch (*fmt) {
124+ case '#':
125+ case '0':
126+ case '-':
127+ case ' ':
128+ case '+':
129+ case '\'':
130+ case 'I':
131+ fmt++;
132+ continue;
133+ }
134+ return fmt;
135+ }
136+}
137+
138+enum state {
139+ BARE,
140+ LPRE,
141+ LLPRE,
142+ HPRE,
143+ HHPRE,
144+ BIGLPRE,
145+ ZTPRE,
146+ JPRE,
147+ STOP
148+};
149+
150+enum type {
151+ NONE,
152+ PTR,
153+ INT,
154+ UINT,
155+ ULLONG,
156+ LONG,
157+ ULONG,
158+ SHORT,
159+ USHORT,
160+ CHAR,
161+ UCHAR,
162+ LLONG,
163+ SIZET,
164+ IMAX,
165+ UMAX,
166+ PDIFF,
167+ UIPTR,
168+ DBL,
169+ LDBL,
170+ MAXTYPE
171+};
172+
173+static const short pa_types[MAXTYPE] = {
174+ [NONE] = PA_INT,
175+ [PTR] = PA_POINTER,
176+ [INT] = PA_INT,
177+ [UINT] = PA_INT,
178+ [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
179+ [LONG] = PA_INT | PA_FLAG_LONG,
180+ [ULONG] = PA_INT | PA_FLAG_LONG,
181+ [SHORT] = PA_INT | PA_FLAG_SHORT,
182+ [USHORT] = PA_INT | PA_FLAG_SHORT,
183+ [CHAR] = PA_CHAR,
184+ [UCHAR] = PA_CHAR,
185+ [LLONG] = PA_INT | PA_FLAG_LONG_LONG,
186+ [SIZET] = PA_INT | PA_FLAG_LONG,
187+ [IMAX] = PA_INT | PA_FLAG_LONG_LONG,
188+ [UMAX] = PA_INT | PA_FLAG_LONG_LONG,
189+ [PDIFF] = PA_INT | PA_FLAG_LONG_LONG,
190+ [UIPTR] = PA_INT | PA_FLAG_LONG,
191+ [DBL] = PA_DOUBLE,
192+ [LDBL] = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
193+};
194+
195+#define S(x) [(x)-'A']
196+#define E(x) (STOP + (x))
197+
198+static const unsigned char states[]['z'-'A'+1] = {
199+ { /* 0: bare types */
200+ S('d') = E(INT), S('i') = E(INT),
201+ S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
202+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
203+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
204+ S('c') = E(CHAR),S('C') = E(INT),
205+ S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
206+ S('m') = E(NONE),
207+ S('l') = LPRE, S('h') = HPRE, S('L') = BIGLPRE,
208+ S('z') = ZTPRE, S('j') = JPRE, S('t') = ZTPRE
209+ }, { /* 1: l-prefixed */
210+ S('d') = E(LONG), S('i') = E(LONG),
211+ S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
212+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
213+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
214+ S('c') = E(INT), S('s') = E(PTR), S('n') = E(PTR),
215+ S('l') = LLPRE
216+ }, { /* 2: ll-prefixed */
217+ S('d') = E(LLONG), S('i') = E(LLONG),
218+ S('o') = E(ULLONG),S('u') = E(ULLONG),
219+ S('x') = E(ULLONG),S('X') = E(ULLONG),
220+ S('n') = E(PTR)
221+ }, { /* 3: h-prefixed */
222+ S('d') = E(SHORT), S('i') = E(SHORT),
223+ S('o') = E(USHORT),S('u') = E(USHORT),
224+ S('x') = E(USHORT),S('X') = E(USHORT),
225+ S('n') = E(PTR),
226+ S('h') = HHPRE
227+ }, { /* 4: hh-prefixed */
228+ S('d') = E(CHAR), S('i') = E(CHAR),
229+ S('o') = E(UCHAR),S('u') = E(UCHAR),
230+ S('x') = E(UCHAR),S('X') = E(UCHAR),
231+ S('n') = E(PTR)
232+ }, { /* 5: L-prefixed */
233+ S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
234+ S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
235+ S('n') = E(PTR)
236+ }, { /* 6: z- or t-prefixed (assumed to be same size) */
237+ S('d') = E(PDIFF),S('i') = E(PDIFF),
238+ S('o') = E(SIZET),S('u') = E(SIZET),
239+ S('x') = E(SIZET),S('X') = E(SIZET),
240+ S('n') = E(PTR)
241+ }, { /* 7: j-prefixed */
242+ S('d') = E(IMAX), S('i') = E(IMAX),
243+ S('o') = E(UMAX), S('u') = E(UMAX),
244+ S('x') = E(UMAX), S('X') = E(UMAX),
245+ S('n') = E(PTR)
246+ }
247+};
248+
249+size_t parse_printf_format(const char *fmt, size_t n, int *types)
250+{
251+ size_t i = 0;
252+ size_t last = 0;
253+
254+ memset(types, 0, n);
255+
256+ while (1) {
257+ size_t arg;
258+ unsigned int state;
259+
260+ fmt = consume_nonarg(fmt);
261+ if (*fmt == '\0')
262+ break;
263+ if (*fmt == '%') {
264+ fmt++;
265+ continue;
266+ }
267+ arg = 0;
268+ fmt = consume_argn(fmt, &arg);
269+ /* flags */
270+ fmt = consume_flags(fmt);
271+ /* width */
272+ if (*fmt == '*') {
273+ size_t warg = 0;
274+ fmt = consume_argn(fmt+1, &warg);
275+ if (warg == 0)
276+ warg = ++i;
277+ if (warg > last)
278+ last = warg;
279+ if (warg <= n && types[warg-1] == NONE)
280+ types[warg-1] = INT;
281+ } else
282+ fmt = consume_num(fmt);
283+ /* precision */
284+ if (*fmt == '.') {
285+ fmt++;
286+ if (*fmt == '*') {
287+ size_t parg = 0;
288+ fmt = consume_argn(fmt+1, &parg);
289+ if (parg == 0)
290+ parg = ++i;
291+ if (parg > last)
292+ last = parg;
293+ if (parg <= n && types[parg-1] == NONE)
294+ types[parg-1] = INT;
295+ } else {
296+ if (*fmt == '-')
297+ fmt++;
298+ fmt = consume_num(fmt);
299+ }
300+ }
301+ /* length modifier and conversion specifier */
302+ state = BARE;
303+ do {
304+ unsigned char c = *fmt++;
305+
306+ if (c < 'A' || c > 'z')
307+ continue;
308+ state = states[state]S(c);
309+ if (state == 0)
310+ continue;
311+ } while (state < STOP);
312+
313+ if (state == E(NONE))
314+ continue;
315+
316+ if (arg == 0)
317+ arg = ++i;
318+ if (arg > last)
319+ last = arg;
320+ if (arg <= n)
321+ types[arg-1] = state - STOP;
322+ }
323+
324+ if (last > n)
325+ last = n;
326+ for (i = 0; i < last; i++)
327+ types[i] = pa_types[types[i]];
328+
329+ return last;
330+}
331diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
332new file mode 100644
333index 0000000000..47be7522d7
334--- /dev/null
335+++ b/src/basic/parse-printf-format.h
336@@ -0,0 +1,57 @@
337+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
338+
339+/***
340+ This file is part of systemd.
341+
342+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
343+
344+ With parts from the GNU C Library
345+ Copyright 1991-2014 Free Software Foundation, Inc.
346+
347+ systemd is free software; you can redistribute it and/or modify it
348+ under the terms of the GNU Lesser General Public License as published by
349+ the Free Software Foundation; either version 2.1 of the License, or
350+ (at your option) any later version.
351+
352+ systemd is distributed in the hope that it will be useful, but
353+ WITHOUT ANY WARRANTY; without even the implied warranty of
354+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
355+ Lesser General Public License for more details.
356+
357+ You should have received a copy of the GNU Lesser General Public License
358+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
359+***/
360+
361+#pragma once
362+
363+#include "config.h"
364+
365+#if HAVE_PRINTF_H
366+#include <printf.h>
367+#else
368+
369+#include <stddef.h>
370+
371+enum { /* C type: */
372+ PA_INT, /* int */
373+ PA_CHAR, /* int, cast to char */
374+ PA_WCHAR, /* wide char */
375+ PA_STRING, /* const char *, a '\0'-terminated string */
376+ PA_WSTRING, /* const wchar_t *, wide character string */
377+ PA_POINTER, /* void * */
378+ PA_FLOAT, /* float */
379+ PA_DOUBLE, /* double */
380+ PA_LAST
381+};
382+
383+/* Flag bits that can be set in a type returned by `parse_printf_format'. */
384+#define PA_FLAG_MASK 0xff00
385+#define PA_FLAG_LONG_LONG (1 << 8)
386+#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG
387+#define PA_FLAG_LONG (1 << 9)
388+#define PA_FLAG_SHORT (1 << 10)
389+#define PA_FLAG_PTR (1 << 11)
390+
391+size_t parse_printf_format(const char *fmt, size_t n, int *types);
392+
393+#endif /* HAVE_PRINTF_H */
394diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
395index 4e93ac90c9..f9deb6f662 100644
396--- a/src/basic/stdio-util.h
397+++ b/src/basic/stdio-util.h
398@@ -1,12 +1,12 @@
399 /* SPDX-License-Identifier: LGPL-2.1-or-later */
400 #pragma once
401
402-#include <printf.h>
403 #include <stdarg.h>
404 #include <stdio.h>
405 #include <sys/types.h>
406
407 #include "macro.h"
408+#include "parse-printf-format.h"
409
410 _printf_(3, 4)
411 static inline char *snprintf_ok(char *buf, size_t len, const char *format, ...) {
412diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
413index be23b2fe75..69a2eb6404 100644
414--- a/src/libsystemd/sd-journal/journal-send.c
415+++ b/src/libsystemd/sd-journal/journal-send.c
416@@ -2,7 +2,6 @@
417
418 #include <errno.h>
419 #include <fcntl.h>
420-#include <printf.h>
421 #include <stddef.h>
422 #include <sys/un.h>
423 #include <unistd.h>
424@@ -28,6 +27,7 @@
425 #include "stdio-util.h"
426 #include "string-util.h"
427 #include "tmpfile-util.h"
428+#include "parse-printf-format.h"
429
430 #define SNDBUF_SIZE (8*1024*1024)
431
432--
4332.34.1
434
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
deleted file mode 100644
index be231cf6b2..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ /dev/null
@@ -1,79 +0,0 @@
1From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Thu, 21 Feb 2019 16:23:24 +0800
4Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time
5 for the binfmt services
6
7use [Install] blocks so that they get created when the service is enabled
8like a traditional service.
9
10The [Install] blocks were rejected upstream as they don't have a way to
11"enable" it on install without static symlinks which can't be disabled,
12only masked. We however can do that in a postinst.
13
14Upstream-Status: Denied
15
16Signed-off-by: Ross Burton <ross.burton@intel.com>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
19[rebased for systemd 243]
20Signed-off-by: Scott Murray <scott.murray@konsulko.com>
21---
22 units/meson.build | 2 --
23 units/proc-sys-fs-binfmt_misc.automount | 3 +++
24 units/systemd-binfmt.service.in | 4 ++++
25 3 files changed, 7 insertions(+), 2 deletions(-)
26
27diff --git a/units/meson.build b/units/meson.build
28index e7bfb7f838..1d5ec4b178 100644
29--- a/units/meson.build
30+++ b/units/meson.build
31@@ -154,7 +154,6 @@ units = [
32 {
33 'file' : 'proc-sys-fs-binfmt_misc.automount',
34 'conditions' : ['ENABLE_BINFMT'],
35- 'symlinks' : ['sysinit.target.wants/'],
36 },
37 {
38 'file' : 'proc-sys-fs-binfmt_misc.mount',
39@@ -251,7 +250,6 @@ units = [
40 {
41 'file' : 'systemd-binfmt.service.in',
42 'conditions' : ['ENABLE_BINFMT'],
43- 'symlinks' : ['sysinit.target.wants/'],
44 },
45 {
46 'file' : 'systemd-bless-boot.service.in',
47diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
48index 5d212015a5..6c2900ca77 100644
49--- a/units/proc-sys-fs-binfmt_misc.automount
50+++ b/units/proc-sys-fs-binfmt_misc.automount
51@@ -22,3 +22,6 @@ Before=shutdown.target
52
53 [Automount]
54 Where=/proc/sys/fs/binfmt_misc
55+
56+[Install]
57+WantedBy=sysinit.target
58diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
59index 6861c76674..531e9fbd90 100644
60--- a/units/systemd-binfmt.service.in
61+++ b/units/systemd-binfmt.service.in
62@@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html
63 Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
64 DefaultDependencies=no
65 Conflicts=shutdown.target
66+Wants=proc-sys-fs-binfmt_misc.automount
67 After=proc-sys-fs-binfmt_misc.automount
68 After=proc-sys-fs-binfmt_misc.mount
69 After=local-fs.target
70@@ -31,3 +32,6 @@ RemainAfterExit=yes
71 ExecStart={{LIBEXECDIR}}/systemd-binfmt
72 ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister
73 TimeoutSec=90s
74+
75+[Install]
76+WantedBy=sysinit.target
77--
782.34.1
79
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch
deleted file mode 100644
index 5595b5bc23..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch
+++ /dev/null
@@ -1,699 +0,0 @@
1From 87f1d38f40c5fe9cadf2b2de442473e4e5605788 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 14:18:21 +0800
4Subject: [PATCH 03/22] src/basic/missing.h: check for missing strndupa
5
6include missing.h for definition of strndupa
7
8Upstream-Status: Inappropriate [musl specific]
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12[Rebased for v242]
13Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
14[rebased for systemd 243]
15Signed-off-by: Scott Murray <scott.murray@konsulko.com>
16Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
17[rebased for systemd 244]
18[Rebased for v247]
19Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
20[Rebased for v254]
21Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
22[Rebased for v255.1]
23---
24 meson.build | 1 +
25 src/backlight/backlight.c | 1 +
26 src/basic/cgroup-util.c | 1 +
27 src/basic/env-util.c | 1 +
28 src/basic/log.c | 1 +
29 src/basic/missing_stdlib.h | 12 ++++++++++++
30 src/basic/mkdir.c | 1 +
31 src/basic/mountpoint-util.c | 1 +
32 src/basic/parse-util.c | 1 +
33 src/basic/path-lookup.c | 1 +
34 src/basic/percent-util.c | 1 +
35 src/basic/proc-cmdline.c | 1 +
36 src/basic/procfs-util.c | 1 +
37 src/basic/time-util.c | 1 +
38 src/boot/bless-boot.c | 1 +
39 src/core/dbus-cgroup.c | 1 +
40 src/core/dbus-execute.c | 1 +
41 src/core/dbus-util.c | 1 +
42 src/core/execute.c | 1 +
43 src/core/kmod-setup.c | 1 +
44 src/core/service.c | 1 +
45 src/coredump/coredump-vacuum.c | 1 +
46 src/fstab-generator/fstab-generator.c | 1 +
47 src/journal-remote/journal-remote-main.c | 1 +
48 src/journal/journalctl.c | 1 +
49 src/libsystemd/sd-bus/bus-message.c | 1 +
50 src/libsystemd/sd-bus/bus-objects.c | 1 +
51 src/libsystemd/sd-bus/bus-socket.c | 1 +
52 src/libsystemd/sd-bus/sd-bus.c | 1 +
53 src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
54 src/libsystemd/sd-journal/sd-journal.c | 1 +
55 src/login/pam_systemd.c | 1 +
56 src/network/generator/network-generator.c | 1 +
57 src/nspawn/nspawn-settings.c | 1 +
58 src/nss-mymachines/nss-mymachines.c | 1 +
59 src/portable/portable.c | 1 +
60 src/resolve/resolvectl.c | 1 +
61 src/shared/bus-get-properties.c | 1 +
62 src/shared/bus-unit-procs.c | 1 +
63 src/shared/bus-unit-util.c | 1 +
64 src/shared/bus-util.c | 1 +
65 src/shared/dns-domain.c | 1 +
66 src/shared/journal-importer.c | 1 +
67 src/shared/logs-show.c | 1 +
68 src/shared/pager.c | 1 +
69 src/socket-proxy/socket-proxyd.c | 1 +
70 src/test/test-hexdecoct.c | 1 +
71 src/udev/udev-builtin-net_id.c | 1 +
72 src/udev/udev-builtin-path_id.c | 1 +
73 src/udev/udev-event.c | 1 +
74 src/udev/udev-rules.c | 1 +
75 51 files changed, 62 insertions(+)
76
77diff --git a/meson.build b/meson.build
78index 01fd3ffc19..61a872b753 100644
79--- a/meson.build
80+++ b/meson.build
81@@ -567,6 +567,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
82 endforeach
83
84 foreach ident : [
85+ ['strndupa' , '''#include <string.h>'''],
86 ['memfd_create', '''#include <sys/mman.h>'''],
87 ['gettid', '''#include <sys/types.h>
88 #include <unistd.h>'''],
89diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
90index 5ac9f904a9..99d5122dd7 100644
91--- a/src/backlight/backlight.c
92+++ b/src/backlight/backlight.c
93@@ -20,6 +20,7 @@
94 #include "string-util.h"
95 #include "strv.h"
96 #include "terminal-util.h"
97+#include "missing_stdlib.h"
98
99 #define PCI_CLASS_GRAPHICS_CARD 0x30000
100
101diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
102index 18b16ecc0e..d2be79622f 100644
103--- a/src/basic/cgroup-util.c
104+++ b/src/basic/cgroup-util.c
105@@ -38,6 +38,7 @@
106 #include "unit-name.h"
107 #include "user-util.h"
108 #include "xattr-util.h"
109+#include "missing_stdlib.h"
110
111 static int cg_enumerate_items(const char *controller, const char *path, FILE **ret, const char *item) {
112 _cleanup_free_ char *fs = NULL;
113diff --git a/src/basic/env-util.c b/src/basic/env-util.c
114index d3bf73385f..16b17358ca 100644
115--- a/src/basic/env-util.c
116+++ b/src/basic/env-util.c
117@@ -19,6 +19,7 @@
118 #include "string-util.h"
119 #include "strv.h"
120 #include "utf8.h"
121+#include "missing_stdlib.h"
122
123 /* We follow bash for the character set. Different shells have different rules. */
124 #define VALID_BASH_ENV_NAME_CHARS \
125diff --git a/src/basic/log.c b/src/basic/log.c
126index 1470611a75..9924ec2b9a 100644
127--- a/src/basic/log.c
128+++ b/src/basic/log.c
129@@ -40,6 +40,7 @@
130 #include "terminal-util.h"
131 #include "time-util.h"
132 #include "utf8.h"
133+#include "missing_stdlib.h"
134
135 #define SNDBUF_SIZE (8*1024*1024)
136 #define IOVEC_MAX 256U
137diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
138index 8c76f93eb2..9068bfb4f0 100644
139--- a/src/basic/missing_stdlib.h
140+++ b/src/basic/missing_stdlib.h
141@@ -11,3 +11,15 @@
142 # error "neither secure_getenv nor __secure_getenv are available"
143 # endif
144 #endif
145+
146+/* string.h */
147+#if ! HAVE_STRNDUPA
148+#define strndupa(s, n) \
149+ ({ \
150+ const char *__old = (s); \
151+ size_t __len = strnlen(__old, (n)); \
152+ char *__new = (char *)alloca(__len + 1); \
153+ __new[__len] = '\0'; \
154+ (char *)memcpy(__new, __old, __len); \
155+ })
156+#endif
157diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
158index c770e5ed32..1fd8816cd0 100644
159--- a/src/basic/mkdir.c
160+++ b/src/basic/mkdir.c
161@@ -16,6 +16,7 @@
162 #include "stat-util.h"
163 #include "stdio-util.h"
164 #include "user-util.h"
165+#include "missing_stdlib.h"
166
167 int mkdirat_safe_internal(
168 int dir_fd,
169diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c
170index bf67f7e01a..409f8d8a73 100644
171--- a/src/basic/mountpoint-util.c
172+++ b/src/basic/mountpoint-util.c
173@@ -18,6 +18,7 @@
174 #include "missing_stat.h"
175 #include "missing_syscall.h"
176 #include "mkdir.h"
177+#include "missing_stdlib.h"
178 #include "mountpoint-util.h"
179 #include "nulstr-util.h"
180 #include "parse-util.h"
181diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
182index 0430e33e40..f3728de026 100644
183--- a/src/basic/parse-util.c
184+++ b/src/basic/parse-util.c
185@@ -18,6 +18,7 @@
186 #include "stat-util.h"
187 #include "string-util.h"
188 #include "strv.h"
189+#include "missing_stdlib.h"
190
191 int parse_boolean(const char *v) {
192 if (!v)
193diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
194index 4e3d59fc56..726e240df0 100644
195--- a/src/basic/path-lookup.c
196+++ b/src/basic/path-lookup.c
197@@ -16,6 +16,7 @@
198 #include "strv.h"
199 #include "tmpfile-util.h"
200 #include "user-util.h"
201+#include "missing_stdlib.h"
202
203 int xdg_user_runtime_dir(char **ret, const char *suffix) {
204 const char *e;
205diff --git a/src/basic/percent-util.c b/src/basic/percent-util.c
206index cab9d0eaea..5f6ca258e9 100644
207--- a/src/basic/percent-util.c
208+++ b/src/basic/percent-util.c
209@@ -3,6 +3,7 @@
210 #include "percent-util.h"
211 #include "string-util.h"
212 #include "parse-util.h"
213+#include "missing_stdlib.h"
214
215 static int parse_parts_value_whole(const char *p, const char *symbol) {
216 const char *pc, *n;
217diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
218index 522d8de1f4..7c129dc0fc 100644
219--- a/src/basic/proc-cmdline.c
220+++ b/src/basic/proc-cmdline.c
221@@ -16,6 +16,7 @@
222 #include "string-util.h"
223 #include "strv.h"
224 #include "virt.h"
225+#include "missing_stdlib.h"
226
227 int proc_cmdline_filter_pid1_args(char **argv, char ***ret) {
228 enum {
229diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
230index d7cfcd9105..6cb0ddf575 100644
231--- a/src/basic/procfs-util.c
232+++ b/src/basic/procfs-util.c
233@@ -12,6 +12,7 @@
234 #include "procfs-util.h"
235 #include "stdio-util.h"
236 #include "string-util.h"
237+#include "missing_stdlib.h"
238
239 int procfs_get_pid_max(uint64_t *ret) {
240 _cleanup_free_ char *value = NULL;
241diff --git a/src/basic/time-util.c b/src/basic/time-util.c
242index f9014dc560..1d7840a5b5 100644
243--- a/src/basic/time-util.c
244+++ b/src/basic/time-util.c
245@@ -27,6 +27,7 @@
246 #include "string-util.h"
247 #include "strv.h"
248 #include "time-util.h"
249+#include "missing_stdlib.h"
250
251 static clockid_t map_clock_id(clockid_t c) {
252
253diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
254index 0c0b4f23c7..68fe5ca509 100644
255--- a/src/boot/bless-boot.c
256+++ b/src/boot/bless-boot.c
257@@ -22,6 +22,7 @@
258 #include "terminal-util.h"
259 #include "verbs.h"
260 #include "virt.h"
261+#include "missing_stdlib.h"
262
263 static char **arg_path = NULL;
264
265diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
266index 4237e694c0..05f9d9d9a9 100644
267--- a/src/core/dbus-cgroup.c
268+++ b/src/core/dbus-cgroup.c
269@@ -25,6 +25,7 @@
270 #include "parse-util.h"
271 #include "path-util.h"
272 #include "percent-util.h"
273+#include "missing_stdlib.h"
274 #include "socket-util.h"
275
276 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", CGroupTasksMax, cgroup_tasks_max_resolve);
277diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
278index 4daa1cefd3..2c77901471 100644
279--- a/src/core/dbus-execute.c
280+++ b/src/core/dbus-execute.c
281@@ -42,6 +42,7 @@
282 #include "unit-printf.h"
283 #include "user-util.h"
284 #include "utf8.h"
285+#include "missing_stdlib.h"
286
287 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
288 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
289diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
290index d680a64268..e59f48103e 100644
291--- a/src/core/dbus-util.c
292+++ b/src/core/dbus-util.c
293@@ -9,6 +9,7 @@
294 #include "unit-printf.h"
295 #include "user-util.h"
296 #include "unit.h"
297+#include "missing_stdlib.h"
298
299 int bus_property_get_triggered_unit(
300 sd_bus *bus,
301diff --git a/src/core/execute.c b/src/core/execute.c
302index ef0bf88687..bd3da0c401 100644
303--- a/src/core/execute.c
304+++ b/src/core/execute.c
305@@ -72,6 +72,7 @@
306 #include "unit-serialize.h"
307 #include "user-util.h"
308 #include "utmp-wtmp.h"
309+#include "missing_stdlib.h"
310
311 static bool is_terminal_input(ExecInput i) {
312 return IN_SET(i,
313diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
314index b8e3f7aadd..8ce8ca68d8 100644
315--- a/src/core/kmod-setup.c
316+++ b/src/core/kmod-setup.c
317@@ -13,6 +13,7 @@
318 #include "string-util.h"
319 #include "strv.h"
320 #include "virt.h"
321+#include "missing_stdlib.h"
322
323 #if HAVE_KMOD
324 #include "module-util.h"
325diff --git a/src/core/service.c b/src/core/service.c
326index b9eb40c555..268fe7573b 100644
327--- a/src/core/service.c
328+++ b/src/core/service.c
329@@ -45,6 +45,7 @@
330 #include "unit-name.h"
331 #include "unit.h"
332 #include "utf8.h"
333+#include "missing_stdlib.h"
334
335 #define service_spawn(...) service_spawn_internal(__func__, __VA_ARGS__)
336
337diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
338index 7e0c98cb7d..978a7f5874 100644
339--- a/src/coredump/coredump-vacuum.c
340+++ b/src/coredump/coredump-vacuum.c
341@@ -17,6 +17,7 @@
342 #include "string-util.h"
343 #include "time-util.h"
344 #include "user-util.h"
345+#include "missing_stdlib.h"
346
347 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
348 #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
349diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
350index 016f3baa7f..b1def81313 100644
351--- a/src/fstab-generator/fstab-generator.c
352+++ b/src/fstab-generator/fstab-generator.c
353@@ -37,6 +37,7 @@
354 #include "unit-name.h"
355 #include "virt.h"
356 #include "volatile-util.h"
357+#include "missing_stdlib.h"
358
359 typedef enum MountPointFlags {
360 MOUNT_NOAUTO = 1 << 0,
361diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
362index da0f20d3ce..f22ce41908 100644
363--- a/src/journal-remote/journal-remote-main.c
364+++ b/src/journal-remote/journal-remote-main.c
365@@ -27,6 +27,7 @@
366 #include "stat-util.h"
367 #include "string-table.h"
368 #include "strv.h"
369+#include "missing_stdlib.h"
370
371 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
372 #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
373diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
374index 7f3dcd56a4..41b7cbaaf1 100644
375--- a/src/journal/journalctl.c
376+++ b/src/journal/journalctl.c
377@@ -77,6 +77,7 @@
378 #include "unit-name.h"
379 #include "user-util.h"
380 #include "varlink.h"
381+#include "missing_stdlib.h"
382
383 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
384 #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
385diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
386index ff0228081f..9066fcb133 100644
387--- a/src/libsystemd/sd-bus/bus-message.c
388+++ b/src/libsystemd/sd-bus/bus-message.c
389@@ -19,6 +19,7 @@
390 #include "strv.h"
391 #include "time-util.h"
392 #include "utf8.h"
393+#include "missing_stdlib.h"
394
395 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
396 static int message_parse_fields(sd_bus_message *m);
397diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
398index c25c40ff37..57a5da704f 100644
399--- a/src/libsystemd/sd-bus/bus-objects.c
400+++ b/src/libsystemd/sd-bus/bus-objects.c
401@@ -11,6 +11,7 @@
402 #include "missing_capability.h"
403 #include "string-util.h"
404 #include "strv.h"
405+#include "missing_stdlib.h"
406
407 static int node_vtable_get_userdata(
408 sd_bus *bus,
409diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
410index 3c59d0d615..746922d46f 100644
411--- a/src/libsystemd/sd-bus/bus-socket.c
412+++ b/src/libsystemd/sd-bus/bus-socket.c
413@@ -29,6 +29,7 @@
414 #include "string-util.h"
415 #include "user-util.h"
416 #include "utf8.h"
417+#include "missing_stdlib.h"
418
419 #define SNDBUF_SIZE (8*1024*1024)
420
421diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
422index 4a0259f8bb..aaa90d2223 100644
423--- a/src/libsystemd/sd-bus/sd-bus.c
424+++ b/src/libsystemd/sd-bus/sd-bus.c
425@@ -46,6 +46,7 @@
426 #include "string-util.h"
427 #include "strv.h"
428 #include "user-util.h"
429+#include "missing_stdlib.h"
430
431 #define log_debug_bus_message(m) \
432 do { \
433diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
434index d988588de0..458df8df9a 100644
435--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
436+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
437@@ -14,6 +14,7 @@
438 #include "string-util.h"
439 #include "tests.h"
440 #include "time-util.h"
441+#include "missing_stdlib.h"
442
443 #define MAX_SIZE (2*1024*1024)
444
445diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c
446index 6b9ff0a4ed..4a5027ad0f 100644
447--- a/src/libsystemd/sd-journal/sd-journal.c
448+++ b/src/libsystemd/sd-journal/sd-journal.c
449@@ -44,6 +44,7 @@
450 #include "strv.h"
451 #include "syslog-util.h"
452 #include "uid-alloc-range.h"
453+#include "missing_stdlib.h"
454
455 #define JOURNAL_FILES_RECHECK_USEC (2 * USEC_PER_SEC)
456
457diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
458index b8da266e27..4bb8dd9496 100644
459--- a/src/login/pam_systemd.c
460+++ b/src/login/pam_systemd.c
461@@ -35,6 +35,7 @@
462 #include "login-util.h"
463 #include "macro.h"
464 #include "missing_syscall.h"
465+#include "missing_stdlib.h"
466 #include "pam-util.h"
467 #include "parse-util.h"
468 #include "path-util.h"
469diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
470index 48527a2c73..9777fe0561 100644
471--- a/src/network/generator/network-generator.c
472+++ b/src/network/generator/network-generator.c
473@@ -14,6 +14,7 @@
474 #include "string-table.h"
475 #include "string-util.h"
476 #include "strv.h"
477+#include "missing_stdlib.h"
478
479 /*
480 # .network
481diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
482index 161b1c1c70..ba1c459f78 100644
483--- a/src/nspawn/nspawn-settings.c
484+++ b/src/nspawn/nspawn-settings.c
485@@ -16,6 +16,7 @@
486 #include "string-util.h"
487 #include "strv.h"
488 #include "user-util.h"
489+#include "missing_stdlib.h"
490
491 Settings *settings_new(void) {
492 Settings *s;
493diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
494index c64e79bdff..eda26b0b9a 100644
495--- a/src/nss-mymachines/nss-mymachines.c
496+++ b/src/nss-mymachines/nss-mymachines.c
497@@ -21,6 +21,7 @@
498 #include "nss-util.h"
499 #include "signal-util.h"
500 #include "string-util.h"
501+#include "missing_stdlib.h"
502
503 static void setup_logging_once(void) {
504 static pthread_once_t once = PTHREAD_ONCE_INIT;
505diff --git a/src/portable/portable.c b/src/portable/portable.c
506index d4b448a627..bb26623565 100644
507--- a/src/portable/portable.c
508+++ b/src/portable/portable.c
509@@ -40,6 +40,7 @@
510 #include "strv.h"
511 #include "tmpfile-util.h"
512 #include "user-util.h"
513+#include "missing_stdlib.h"
514
515 /* Markers used in the first line of our 20-portable.conf unit file drop-in to determine, that a) the unit file was
516 * dropped there by the portable service logic and b) for which image it was dropped there. */
517diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
518index afa537f160..32ccee4ae5 100644
519--- a/src/resolve/resolvectl.c
520+++ b/src/resolve/resolvectl.c
521@@ -48,6 +48,7 @@
522 #include "varlink.h"
523 #include "verb-log-control.h"
524 #include "verbs.h"
525+#include "missing_stdlib.h"
526
527 static int arg_family = AF_UNSPEC;
528 static int arg_ifindex = 0;
529diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
530index 53e5d6b99f..851ecd5644 100644
531--- a/src/shared/bus-get-properties.c
532+++ b/src/shared/bus-get-properties.c
533@@ -4,6 +4,7 @@
534 #include "rlimit-util.h"
535 #include "stdio-util.h"
536 #include "string-util.h"
537+#include "missing_stdlib.h"
538
539 int bus_property_get_bool(
540 sd_bus *bus,
541diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
542index 8b462b5627..183ce1c18e 100644
543--- a/src/shared/bus-unit-procs.c
544+++ b/src/shared/bus-unit-procs.c
545@@ -11,6 +11,7 @@
546 #include "sort-util.h"
547 #include "string-util.h"
548 #include "terminal-util.h"
549+#include "missing_stdlib.h"
550
551 struct CGroupInfo {
552 char *cgroup_path;
553diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
554index 4ee9706847..30c8084847 100644
555--- a/src/shared/bus-unit-util.c
556+++ b/src/shared/bus-unit-util.c
557@@ -50,6 +50,7 @@
558 #include "unit-def.h"
559 #include "user-util.h"
560 #include "utf8.h"
561+#include "missing_stdlib.h"
562
563 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
564 assert(message);
565diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
566index 4123152d93..74f148c8b4 100644
567--- a/src/shared/bus-util.c
568+++ b/src/shared/bus-util.c
569@@ -24,6 +24,7 @@
570 #include "path-util.h"
571 #include "socket-util.h"
572 #include "stdio-util.h"
573+#include "missing_stdlib.h"
574
575 static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
576 sd_event *e = ASSERT_PTR(userdata);
577diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
578index b41c9b06ca..e69050a507 100644
579--- a/src/shared/dns-domain.c
580+++ b/src/shared/dns-domain.c
581@@ -18,6 +18,7 @@
582 #include "string-util.h"
583 #include "strv.h"
584 #include "utf8.h"
585+#include "missing_stdlib.h"
586
587 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
588 const char *n;
589diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
590index 83e9834bbf..74eaae6f5e 100644
591--- a/src/shared/journal-importer.c
592+++ b/src/shared/journal-importer.c
593@@ -16,6 +16,7 @@
594 #include "string-util.h"
595 #include "strv.h"
596 #include "unaligned.h"
597+#include "missing_stdlib.h"
598
599 enum {
600 IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
601diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
602index a5d04003bd..10392c132d 100644
603--- a/src/shared/logs-show.c
604+++ b/src/shared/logs-show.c
605@@ -41,6 +41,7 @@
606 #include "time-util.h"
607 #include "utf8.h"
608 #include "web-util.h"
609+#include "missing_stdlib.h"
610
611 /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
612 #define PRINT_LINE_THRESHOLD 3
613diff --git a/src/shared/pager.c b/src/shared/pager.c
614index 19deefab56..6b6d0af1a0 100644
615--- a/src/shared/pager.c
616+++ b/src/shared/pager.c
617@@ -25,6 +25,7 @@
618 #include "string-util.h"
619 #include "strv.h"
620 #include "terminal-util.h"
621+#include "missing_stdlib.h"
622
623 static pid_t pager_pid = 0;
624
625diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
626index 287fd6c181..8f8d5493da 100644
627--- a/src/socket-proxy/socket-proxyd.c
628+++ b/src/socket-proxy/socket-proxyd.c
629@@ -27,6 +27,7 @@
630 #include "set.h"
631 #include "socket-util.h"
632 #include "string-util.h"
633+#include "missing_stdlib.h"
634
635 #define BUFFER_SIZE (256 * 1024)
636
637diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
638index f884008660..987e180697 100644
639--- a/src/test/test-hexdecoct.c
640+++ b/src/test/test-hexdecoct.c
641@@ -7,6 +7,7 @@
642 #include "macro.h"
643 #include "random-util.h"
644 #include "string-util.h"
645+#include "missing_stdlib.h"
646 #include "tests.h"
647
648 TEST(hexchar) {
649diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
650index 91b40088f4..f528a46b8e 100644
651--- a/src/udev/udev-builtin-net_id.c
652+++ b/src/udev/udev-builtin-net_id.c
653@@ -39,6 +39,7 @@
654 #include "strv.h"
655 #include "strxcpyx.h"
656 #include "udev-builtin.h"
657+#include "missing_stdlib.h"
658
659 #define ONBOARD_14BIT_INDEX_MAX ((1U << 14) - 1)
660 #define ONBOARD_16BIT_INDEX_MAX ((1U << 16) - 1)
661diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
662index 467c9a6ad3..f74dae60af 100644
663--- a/src/udev/udev-builtin-path_id.c
664+++ b/src/udev/udev-builtin-path_id.c
665@@ -24,6 +24,7 @@
666 #include "sysexits.h"
667 #include "udev-builtin.h"
668 #include "udev-util.h"
669+#include "missing_stdlib.h"
670
671 _printf_(2,3)
672 static void path_prepend(char **path, const char *fmt, ...) {
673diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
674index ed22c8b679..19ebe20237 100644
675--- a/src/udev/udev-event.c
676+++ b/src/udev/udev-event.c
677@@ -16,6 +16,7 @@
678 #include "udev-util.h"
679 #include "udev-watch.h"
680 #include "user-util.h"
681+#include "missing_stdlib.h"
682
683 UdevEvent *udev_event_new(sd_device *dev, usec_t exec_delay_usec, sd_netlink *rtnl, int log_level) {
684 UdevEvent *event;
685diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
686index 5f12002394..febe345b4c 100644
687--- a/src/udev/udev-rules.c
688+++ b/src/udev/udev-rules.c
689@@ -41,6 +41,7 @@
690 #include "udev-util.h"
691 #include "user-util.h"
692 #include "virt.h"
693+#include "missing_stdlib.h"
694
695 #define RULES_DIRS ((const char* const*) CONF_PATHS_STRV("udev/rules.d"))
696
697--
6982.34.1
699
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
deleted file mode 100644
index 15877bea88..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ /dev/null
@@ -1,156 +0,0 @@
1From 5325ab5813617f35f03806ec420829dde7104387 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 14:56:21 +0800
4Subject: [PATCH 04/22] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
5 defined
6
7If the standard library doesn't provide brace
8expansion users just won't get it.
9
10Dont use GNU GLOB extentions on non-glibc systems
11
12Conditionalize use of GLOB_ALTDIRFUNC
13
14Upstream-Status: Inappropriate [musl specific]
15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
18[rebased for systemd 243]
19Signed-off-by: Scott Murray <scott.murray@konsulko.com>
20---
21 src/basic/glob-util.c | 12 ++++++++++++
22 src/test/test-glob-util.c | 16 ++++++++++++++++
23 src/tmpfiles/tmpfiles.c | 10 ++++++++++
24 3 files changed, 38 insertions(+)
25
26diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
27index 802ca8c655..23818a67c6 100644
28--- a/src/basic/glob-util.c
29+++ b/src/basic/glob-util.c
30@@ -12,6 +12,12 @@
31 #include "path-util.h"
32 #include "strv.h"
33
34+/* Don't fail if the standard library
35+ * doesn't provide brace expansion */
36+#ifndef GLOB_BRACE
37+#define GLOB_BRACE 0
38+#endif
39+
40 static void closedir_wrapper(void* v) {
41 (void) closedir(v);
42 }
43@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
44 int safe_glob(const char *path, int flags, glob_t *pglob) {
45 int k;
46
47+#ifdef GLOB_ALTDIRFUNC
48 /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
49 assert(!(flags & GLOB_ALTDIRFUNC));
50
51@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
52 pglob->gl_lstat = lstat;
53 if (!pglob->gl_stat)
54 pglob->gl_stat = stat;
55+#endif
56
57 errno = 0;
58+#ifdef GLOB_ALTDIRFUNC
59 k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob);
60+#else
61+ k = glob(path, flags, NULL, pglob);
62+#endif
63 if (k == GLOB_NOMATCH)
64 return -ENOENT;
65 if (k == GLOB_NOSPACE)
66diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
67index 9b3e73cce0..3790ba3be5 100644
68--- a/src/test/test-glob-util.c
69+++ b/src/test/test-glob-util.c
70@@ -34,6 +34,12 @@ TEST(glob_first) {
71 assert_se(first == NULL);
72 }
73
74+/* Don't fail if the standard library
75+ * doesn't provide brace expansion */
76+#ifndef GLOB_BRACE
77+#define GLOB_BRACE 0
78+#endif
79+
80 TEST(glob_exists) {
81 char name[] = "/tmp/test-glob_exists.XXXXXX";
82 int fd = -EBADF;
83@@ -61,11 +67,13 @@ TEST(glob_no_dot) {
84 const char *fn;
85
86 _cleanup_globfree_ glob_t g = {
87+#ifdef GLOB_ALTDIRFUNC
88 .gl_closedir = closedir_wrapper,
89 .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot,
90 .gl_opendir = (void *(*)(const char *)) opendir,
91 .gl_lstat = lstat,
92 .gl_stat = stat,
93+#endif
94 };
95
96 int r;
97@@ -73,11 +81,19 @@ TEST(glob_no_dot) {
98 assert_se(mkdtemp(template));
99
100 fn = strjoina(template, "/*");
101+#ifdef GLOB_ALTDIRFUNC
102 r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
103+#else
104+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
105+#endif
106 assert_se(r == GLOB_NOMATCH);
107
108 fn = strjoina(template, "/.*");
109+#ifdef GLOB_ALTDIRFUNC
110 r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
111+#else
112+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
113+#endif
114 assert_se(r == GLOB_NOMATCH);
115
116 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
117diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
118index 230ec09b97..2cc5f391d7 100644
119--- a/src/tmpfiles/tmpfiles.c
120+++ b/src/tmpfiles/tmpfiles.c
121@@ -73,6 +73,12 @@
122 #include "user-util.h"
123 #include "virt.h"
124
125+/* Don't fail if the standard library
126+ * doesn't provide brace expansion */
127+#ifndef GLOB_BRACE
128+#define GLOB_BRACE 0
129+#endif
130+
131 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
132 * them in the file system. This is intended to be used to create
133 * properly owned directories beneath /tmp, /var/tmp, /run, which are
134@@ -2434,7 +2440,9 @@ finish:
135
136 static int glob_item(Context *c, Item *i, action_t action) {
137 _cleanup_globfree_ glob_t g = {
138+#ifdef GLOB_ALTDIRFUNC
139 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
140+#endif
141 };
142 int r = 0, k;
143
144@@ -2461,7 +2469,9 @@ static int glob_item_recursively(
145 fdaction_t action) {
146
147 _cleanup_globfree_ glob_t g = {
148+#ifdef GLOB_ALTDIRFUNC
149 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
150+#endif
151 };
152 int r = 0, k;
153
154--
1552.34.1
156
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch
deleted file mode 100644
index a1dfca22cd..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From dad7f897c0de654fa5592fda3e90f874639849f9 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:00:06 +0800
4Subject: [PATCH 05/22] add missing FTW_ macros for musl
5
6This is to avoid build failures like below for musl.
7
8 locale-util.c:296:24: error: 'FTW_STOP' undeclared
9
10Upstream-Status: Inappropriate [musl specific]
11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13---
14 src/basic/missing_type.h | 4 ++++
15 src/test/test-recurse-dir.c | 1 +
16 2 files changed, 5 insertions(+)
17
18diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
19index 6c0456349d..73a5b90e3c 100644
20--- a/src/basic/missing_type.h
21+++ b/src/basic/missing_type.h
22@@ -14,3 +14,7 @@
23 #ifndef __GLIBC__
24 typedef int (*comparison_fn_t)(const void *, const void *);
25 #endif
26+
27+#ifndef FTW_CONTINUE
28+#define FTW_CONTINUE 0
29+#endif
30diff --git a/src/test/test-recurse-dir.c b/src/test/test-recurse-dir.c
31index 8684d064ec..70fc2b5376 100644
32--- a/src/test/test-recurse-dir.c
33+++ b/src/test/test-recurse-dir.c
34@@ -8,6 +8,7 @@
35 #include "recurse-dir.h"
36 #include "strv.h"
37 #include "tests.h"
38+#include "missing_type.h"
39
40 static char **list_nftw = NULL;
41
42--
432.34.1
44
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch
deleted file mode 100644
index 4be14b72ec..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch
+++ /dev/null
@@ -1,106 +0,0 @@
1From 96e975a2412a20e5f80bd3ab144057d275eb8597 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:12:41 +0800
4Subject: [PATCH 06/22] Use uintmax_t for handling rlim_t
5
6PRIu{32,64} is not right format to represent rlim_t type
7therefore use %ju and typecast the rlim_t variables to
8uintmax_t.
9
10Fixes portablility errors like
11
12execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=]
13| fprintf(f, "%s%s: " RLIM_FMT "\n",
14| ^~~~~~~~
15| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
16| ~~~~~~~~~~~~~~~~~~~~~~
17
18Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
19
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21[Rebased for v241]
22Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
23---
24 src/basic/format-util.h | 8 +-------
25 src/basic/rlimit-util.c | 12 ++++++------
26 src/core/execute.c | 4 ++--
27 3 files changed, 9 insertions(+), 15 deletions(-)
28
29diff --git a/src/basic/format-util.h b/src/basic/format-util.h
30index 8719df3e29..9becc96066 100644
31--- a/src/basic/format-util.h
32+++ b/src/basic/format-util.h
33@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
34 # error Unknown timex member size
35 #endif
36
37-#if SIZEOF_RLIM_T == 8
38-# define RLIM_FMT "%" PRIu64
39-#elif SIZEOF_RLIM_T == 4
40-# define RLIM_FMT "%" PRIu32
41-#else
42-# error Unknown rlim_t size
43-#endif
44+#define RLIM_FMT "%ju"
45
46 #if SIZEOF_DEV_T == 8
47 # define DEV_FMT "%" PRIu64
48diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
49index c1f0b2b974..61c5412582 100644
50--- a/src/basic/rlimit-util.c
51+++ b/src/basic/rlimit-util.c
52@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
53 fixed.rlim_max == highest.rlim_max)
54 return 0;
55
56- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
57+ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
58
59 return RET_NERRNO(setrlimit(resource, &fixed));
60 }
61@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
62 if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
63 r = free_and_strdup(&s, "infinity");
64 else if (rl->rlim_cur >= RLIM_INFINITY)
65- r = asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max);
66+ r = asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max);
67 else if (rl->rlim_max >= RLIM_INFINITY)
68- r = asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur);
69+ r = asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur);
70 else if (rl->rlim_cur == rl->rlim_max)
71- r = asprintf(&s, RLIM_FMT, rl->rlim_cur);
72+ r = asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur);
73 else
74- r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max);
75+ r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max);
76 if (r < 0)
77 return -ENOMEM;
78
79@@ -422,7 +422,7 @@ int rlimit_nofile_safe(void) {
80 rl.rlim_max = MIN(rl.rlim_max, (rlim_t) read_nr_open());
81 rl.rlim_cur = MIN((rlim_t) FD_SETSIZE, rl.rlim_max);
82 if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
83- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
84+ return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
85
86 return 1;
87 }
88diff --git a/src/core/execute.c b/src/core/execute.c
89index bd3da0c401..df1870fd2f 100644
90--- a/src/core/execute.c
91+++ b/src/core/execute.c
92@@ -1045,9 +1045,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
93 for (unsigned i = 0; i < RLIM_NLIMITS; i++)
94 if (c->rlimit[i]) {
95 fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
96- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
97+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max);
98 fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n",
99- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur);
100+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur);
101 }
102
103 if (c->ioprio_set) {
104--
1052.34.1
106
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
deleted file mode 100644
index 8d6084239e..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ /dev/null
@@ -1,99 +0,0 @@
1From 4842cff4f1329f0b5034b529d56f8ad1f234ac4c Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 10 Oct 2017 14:33:30 -0700
4Subject: [PATCH 07/22] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
5
6Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
7thing to do and it's not portable (not supported by musl). See:
8
9 http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
10 http://www.openwall.com/lists/musl/2015/02/05/2
11
12Note that laccess() is never passing AT_EACCESS so a lot of the
13discussion in the links above doesn't apply. Note also that
14(currently) all systemd callers of laccess() pass mode as F_OK, so
15only check for existence of a file, not access permissions.
16Therefore, in this case, the only distiction between faccessat()
17with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour
18for broken symlinks; laccess() on a broken symlink will succeed with
19(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
20
21The laccess() macros was added to systemd some time ago and it's not
22clear if or why it needs to return success for broken symlinks. Maybe
23just historical and not actually necessary or desired behaviour?
24
25Upstream-Status: Inappropriate [musl specific]
26
27Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
28---
29 src/basic/fs-util.h | 21 ++++++++++++++++++++-
30 src/shared/base-filesystem.c | 6 +++---
31 2 files changed, 23 insertions(+), 4 deletions(-)
32
33diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
34index 1023ab73ca..c78ff6f27f 100644
35--- a/src/basic/fs-util.h
36+++ b/src/basic/fs-util.h
37@@ -49,8 +49,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
38 int fd_warn_permissions(const char *path, int fd);
39 int stat_warn_permissions(const char *path, const struct stat *st);
40
41+/*
42+ Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
43+ do and it's not portable (not supported by musl). See:
44+
45+ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
46+ http://www.openwall.com/lists/musl/2015/02/05/2
47+
48+ Note that laccess() is never passing AT_EACCESS so a lot of the discussion in
49+ the links above doesn't apply. Note also that (currently) all systemd callers
50+ of laccess() pass mode as F_OK, so only check for existence of a file, not
51+ access permissions. Therefore, in this case, the only distiction between
52+ faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the
53+ behaviour for broken symlinks; laccess() on a broken symlink will succeed
54+ with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
55+
56+ The laccess() macros was added to systemd some time ago and it's not clear if
57+ or why it needs to return success for broken symlinks. Maybe just historical
58+ and not actually necessary or desired behaviour?
59+*/
60 #define laccess(path, mode) \
61- RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW))
62+ RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), 0))
63
64 int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
65
66diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
67index 569ef466c3..7ae921a113 100644
68--- a/src/shared/base-filesystem.c
69+++ b/src/shared/base-filesystem.c
70@@ -145,7 +145,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
71 /* The "root" parameter is decoration only – it's only used as part of log messages */
72
73 for (size_t i = 0; i < ELEMENTSOF(table); i++) {
74- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
75+ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
76 continue;
77
78 if (table[i].target) { /* Create as symlink? */
79@@ -153,7 +153,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
80
81 /* check if one of the targets exists */
82 NULSTR_FOREACH(s, table[i].target) {
83- if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
84+ if (faccessat(fd, s, F_OK, 0) < 0)
85 continue;
86
87 /* check if a specific file exists at the target path */
88@@ -164,7 +164,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
89 if (!p)
90 return log_oom();
91
92- if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
93+ if (faccessat(fd, p, F_OK, 0) < 0)
94 continue;
95 }
96
97--
982.34.1
99
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
deleted file mode 100644
index c1a8bb19fe..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From bab07e779ff23d5593bb118efaaa31b60a6dce87 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 27 May 2018 08:36:44 -0700
4Subject: [PATCH 08/22] Define glibc compatible basename() for non-glibc
5 systems
6
7Fixes builds with musl, even though systemd is adamant about
8using non-posix basename implementation, we have a way out
9
10Upstream-Status: Inappropriate [musl specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/basic/string-util.h | 4 ++++
15 1 file changed, 4 insertions(+)
16
17diff --git a/src/basic/string-util.h b/src/basic/string-util.h
18index b6d8be3083..0a29036c4c 100644
19--- a/src/basic/string-util.h
20+++ b/src/basic/string-util.h
21@@ -26,6 +26,10 @@
22 #define URI_UNRESERVED ALPHANUMERICAL "-._~" /* [RFC3986] */
23 #define URI_VALID URI_RESERVED URI_UNRESERVED /* [RFC3986] */
24
25+#if !defined(__GLIBC__)
26+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
27+#endif
28+
29 static inline char* strstr_ptr(const char *haystack, const char *needle) {
30 if (!haystack || !needle)
31 return NULL;
32--
332.34.1
34
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch
deleted file mode 100644
index acff18dc43..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 5712d56f1cd654d2e5d2e9117ff77fe4c299f76b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 5 Sep 2015 06:31:47 +0000
4Subject: [PATCH] implment systemd-sysv-install for OE
5
6Use update-rc.d for enabling/disabling and status command
7to check the status of the sysv service
8
9Upstream-Status: Inappropriate [OE-Specific]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/systemctl/systemd-sysv-install.SKELETON | 6 +++---
14 1 file changed, 3 insertions(+), 3 deletions(-)
15
16diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
17index cb58d8243b..000bdf6165 100755
18--- a/src/systemctl/systemd-sysv-install.SKELETON
19+++ b/src/systemctl/systemd-sysv-install.SKELETON
20@@ -34,17 +34,17 @@ case "$1" in
21 enable)
22 # call the command to enable SysV init script $NAME here
23 # (consider optional $ROOT)
24- echo "IMPLEMENT ME: enabling SysV init.d script $NAME"
25+ update-rc.d -f $NAME defaults
26 ;;
27 disable)
28 # call the command to disable SysV init script $NAME here
29 # (consider optional $ROOT)
30- echo "IMPLEMENT ME: disabling SysV init.d script $NAME"
31+ update-rc.d -f $NAME remove
32 ;;
33 is-enabled)
34 # exit with 0 if $NAME is enabled, non-zero if it is disabled
35 # (consider optional $ROOT)
36- echo "IMPLEMENT ME: checking SysV init.d script $NAME"
37+ /etc/init.d/$NAME status
38 ;;
39 *)
40 usage ;;
41--
422.39.2
43
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
deleted file mode 100644
index 3ff0177ae3..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 25093c5017725b8577c444dfea0f42ad85b43522 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 4 Jul 2018 15:00:44 +0800
4Subject: [PATCH 09/22] Do not disable buffering when writing to oom_score_adj
5
6On musl, disabling buffering when writing to oom_score_adj will
7cause the following error.
8
9 Failed to adjust OOM setting: Invalid argument
10
11This error appears for systemd-udevd.service and dbus.service.
12This is because kernel receives '-' instead of the whole '-900'
13if buffering is disabled.
14
15This is libc implementation specific, as glibc does not have this issue.
16
17Upstream-Status: Inappropriate [musl specific]
18
19Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
20[rebased for systemd 243]
21Signed-off-by: Scott Murray <scott.murray@konsulko.com>
22---
23 src/basic/process-util.c | 2 +-
24 1 file changed, 1 insertion(+), 1 deletion(-)
25
26diff --git a/src/basic/process-util.c b/src/basic/process-util.c
27index 201c5596ae..ea51595b6c 100644
28--- a/src/basic/process-util.c
29+++ b/src/basic/process-util.c
30@@ -1716,7 +1716,7 @@ int set_oom_score_adjust(int value) {
31 xsprintf(t, "%i", value);
32
33 return write_string_file("/proc/self/oom_score_adj", t,
34- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
35+ WRITE_STRING_FILE_VERIFY_ON_FAILURE);
36 }
37
38 int get_oom_score_adjust(int *ret) {
39--
402.34.1
41
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
deleted file mode 100644
index cf59ac7d06..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1From 2adbe9773cd65c48eec9df96868d4a738927c8d9 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 10 Jul 2018 15:40:17 +0800
4Subject: [PATCH 10/22] distinguish XSI-compliant strerror_r from GNU-specifi
5 strerror_r
6
7XSI-compliant strerror_r and GNU-specifi strerror_r are different.
8
9 int strerror_r(int errnum, char *buf, size_t buflen);
10 /* XSI-compliant */
11
12 char *strerror_r(int errnum, char *buf, size_t buflen);
13 /* GNU-specific */
14
15We need to distinguish between them. Otherwise, we'll get an int value
16assigned to (char *) variable, resulting in segment fault.
17
18Upstream-Status: Inappropriate [musl specific]
19
20Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
21---
22 src/libsystemd/sd-bus/bus-error.c | 11 ++++++++++-
23 src/libsystemd/sd-journal/journal-send.c | 5 +++++
24 2 files changed, 15 insertions(+), 1 deletion(-)
25
26diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
27index 77b2e1a0fd..fdba0e0142 100644
28--- a/src/libsystemd/sd-bus/bus-error.c
29+++ b/src/libsystemd/sd-bus/bus-error.c
30@@ -408,7 +408,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
31 return;
32
33 errno = 0;
34+#ifndef __GLIBC__
35+ strerror_r(error, m, k);
36+ x = m;
37+#else
38 x = strerror_r(error, m, k);
39+#endif
40 if (errno == ERANGE || strlen(x) >= k - 1) {
41 free(m);
42 k *= 2;
43@@ -593,8 +598,12 @@ const char* _bus_error_message(const sd_bus_error *e, int error, char buf[static
44
45 if (e && e->message)
46 return e->message;
47-
48+#ifndef __GLIBC__
49+ strerror_r(abs(error), buf, ERRNO_BUF_LEN);
50+ return buf;
51+#else
52 return strerror_r(abs(error), buf, ERRNO_BUF_LEN);
53+#endif
54 }
55
56 static bool map_ok(const sd_bus_error_map *map) {
57diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
58index 69a2eb6404..1561859650 100644
59--- a/src/libsystemd/sd-journal/journal-send.c
60+++ b/src/libsystemd/sd-journal/journal-send.c
61@@ -361,7 +361,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
62 char* j;
63
64 errno = 0;
65+#ifndef __GLIBC__
66+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
67+ j = buffer + 8 + k;
68+#else
69 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
70+#endif
71 if (errno == 0) {
72 char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
73
74--
752.34.1
76
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
deleted file mode 100644
index e481b2e2e4..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 49c446cfb78cf74a909bed8c3798b77a5469866a Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:44:54 +0800
4Subject: [PATCH 11/22] avoid redefinition of prctl_mm_map structure
5
6Fix the following compile failure:
7error: redefinition of 'struct prctl_mm_map'
8
9Upstream-Status: Inappropriate [musl specific]
10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12---
13 src/basic/missing_prctl.h | 2 ++
14 1 file changed, 2 insertions(+)
15
16diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
17index 7d9e395c92..88c2d7dfac 100644
18--- a/src/basic/missing_prctl.h
19+++ b/src/basic/missing_prctl.h
20@@ -1,7 +1,9 @@
21 /* SPDX-License-Identifier: LGPL-2.1-or-later */
22 #pragma once
23
24+#ifdef __GLIBC__
25 #include <linux/prctl.h>
26+#endif
27
28 /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
29 #ifndef PR_CAP_AMBIENT
30--
312.34.1
32
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch
deleted file mode 100644
index c23d9b7551..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch
+++ /dev/null
@@ -1,515 +0,0 @@
1From e4885a8e60f883d9217e26e1db3754c2906aca31 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Fri, 1 Mar 2019 15:22:15 +0800
4Subject: [PATCH 12/22] do not disable buffer in writing files
5
6Do not disable buffer in writing files, otherwise we get
7failure at boot for musl like below.
8
9 [!!!!!!] Failed to allocate manager object.
10
11And there will be other failures, critical or not critical.
12This is specific to musl.
13
14Upstream-Status: Inappropriate [musl]
15
16Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
17[Rebased for v242]
18Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
19[rebased for systemd 243]
20Signed-off-by: Scott Murray <scott.murray@konsulko.com>
21[rebased for systemd 254]
22Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
23[rebased for systemd 255.1]
24---
25 src/basic/cgroup-util.c | 12 ++++++------
26 src/basic/namespace-util.c | 4 ++--
27 src/basic/procfs-util.c | 4 ++--
28 src/basic/sysctl-util.c | 2 +-
29 src/binfmt/binfmt.c | 6 +++---
30 src/core/cgroup.c | 2 +-
31 src/core/main.c | 2 +-
32 src/core/smack-setup.c | 8 ++++----
33 src/home/homework.c | 2 +-
34 src/libsystemd/sd-device/sd-device.c | 2 +-
35 src/nspawn/nspawn-cgroup.c | 2 +-
36 src/nspawn/nspawn.c | 6 +++---
37 src/shared/binfmt-util.c | 2 +-
38 src/shared/cgroup-setup.c | 4 ++--
39 src/shared/coredump-util.c | 4 ++--
40 src/shared/hibernate-util.c | 4 ++--
41 src/shared/smack-util.c | 2 +-
42 src/shared/watchdog.c | 2 +-
43 src/sleep/sleep.c | 4 ++--
44 src/storagetm/storagetm.c | 24 ++++++++++++------------
45 src/udev/udev-rules.c | 1 -
46 src/vconsole/vconsole-setup.c | 2 +-
47 22 files changed, 50 insertions(+), 51 deletions(-)
48
49--- a/src/basic/cgroup-util.c
50+++ b/src/basic/cgroup-util.c
51@@ -417,7 +417,7 @@ int cg_kill_kernel_sigkill(const char *p
52 if (r < 0)
53 return r;
54
55- r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
56+ r = write_string_file(killfile, "1", 0);
57 if (r < 0)
58 return r;
59
60@@ -843,7 +843,7 @@ int cg_install_release_agent(const char
61
62 sc = strstrip(contents);
63 if (isempty(sc)) {
64- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
65+ r = write_string_file(fs, agent, 0);
66 if (r < 0)
67 return r;
68 } else if (!path_equal(sc, agent))
69@@ -861,7 +861,7 @@ int cg_install_release_agent(const char
70
71 sc = strstrip(contents);
72 if (streq(sc, "0")) {
73- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
74+ r = write_string_file(fs, "1", 0);
75 if (r < 0)
76 return r;
77
78@@ -888,7 +888,7 @@ int cg_uninstall_release_agent(const cha
79 if (r < 0)
80 return r;
81
82- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
83+ r = write_string_file(fs, "0", 0);
84 if (r < 0)
85 return r;
86
87@@ -898,7 +898,7 @@ int cg_uninstall_release_agent(const cha
88 if (r < 0)
89 return r;
90
91- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
92+ r = write_string_file(fs, "", 0);
93 if (r < 0)
94 return r;
95
96@@ -1814,7 +1814,7 @@ int cg_set_attribute(const char *control
97 if (r < 0)
98 return r;
99
100- return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
101+ return write_string_file(p, value, 0);
102 }
103
104 int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
105--- a/src/basic/namespace-util.c
106+++ b/src/basic/namespace-util.c
107@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map,
108 freeze();
109
110 xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
111- r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
112+ r = write_string_file(path, uid_map, 0);
113 if (r < 0)
114 return log_error_errno(r, "Failed to write UID map: %m");
115
116 xsprintf(path, "/proc/" PID_FMT "/gid_map", pid);
117- r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
118+ r = write_string_file(path, gid_map, 0);
119 if (r < 0)
120 return log_error_errno(r, "Failed to write GID map: %m");
121
122--- a/src/basic/procfs-util.c
123+++ b/src/basic/procfs-util.c
124@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limi
125 * decrease it, as threads-max is the much more relevant sysctl. */
126 if (limit > pid_max-1) {
127 sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
128- r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
129+ r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0);
130 if (r < 0)
131 return r;
132 }
133
134 sprintf(buffer, "%" PRIu64, limit);
135- r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
136+ r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0);
137 if (r < 0) {
138 uint64_t threads_max;
139
140--- a/src/basic/sysctl-util.c
141+++ b/src/basic/sysctl-util.c
142@@ -58,7 +58,7 @@ int sysctl_write(const char *property, c
143
144 log_debug("Setting '%s' to '%s'", p, value);
145
146- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
147+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
148 }
149
150 int sysctl_writef(const char *property, const char *format, ...) {
151--- a/src/binfmt/binfmt.c
152+++ b/src/binfmt/binfmt.c
153@@ -30,7 +30,7 @@ static bool arg_unregister = false;
154
155 static int delete_rule(const char *rulename) {
156 const char *fn = strjoina("/proc/sys/fs/binfmt_misc/", rulename);
157- return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
158+ return write_string_file(fn, "-1", 0);
159 }
160
161 static int apply_rule(const char *filename, unsigned line, const char *rule) {
162@@ -58,7 +58,7 @@ static int apply_rule(const char *filena
163 if (r >= 0)
164 log_debug("%s:%u: Rule '%s' deleted.", filename, line, rulename);
165
166- r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER);
167+ r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0);
168 if (r < 0)
169 return log_error_errno(r, "%s:%u: Failed to add binary format '%s': %m",
170 filename, line, rulename);
171@@ -248,7 +248,7 @@ static int run(int argc, char *argv[]) {
172 return r;
173
174 /* Flush out all rules */
175- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
176+ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
177 if (r < 0)
178 log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
179 else
180--- a/src/core/cgroup.c
181+++ b/src/core/cgroup.c
182@@ -4578,7 +4578,7 @@ int unit_cgroup_freezer_action(Unit *u,
183 u->freezer_state = FREEZER_THAWING;
184 }
185
186- r = write_string_file(path, one_zero(action == FREEZER_FREEZE), WRITE_STRING_FILE_DISABLE_BUFFER);
187+ r = write_string_file(path, one_zero(action == FREEZER_FREEZE), 0);
188 if (r < 0)
189 return r;
190
191--- a/src/core/main.c
192+++ b/src/core/main.c
193@@ -1678,7 +1678,7 @@ static void initialize_core_pattern(bool
194 if (getpid_cached() != 1)
195 return;
196
197- r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER);
198+ r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0);
199 if (r < 0)
200 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
201 arg_early_core_pattern);
202--- a/src/core/smack-setup.c
203+++ b/src/core/smack-setup.c
204@@ -321,17 +321,17 @@ int mac_smack_setup(bool *loaded_policy)
205 }
206
207 #if HAVE_SMACK_RUN_LABEL
208- r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
209+ r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0);
210 if (r < 0)
211 log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m");
212- r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
213+ r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0);
214 if (r < 0)
215 log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
216 r = write_string_file("/sys/fs/smackfs/netlabel",
217- "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
218+ "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
219 if (r < 0)
220 log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
221- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
222+ r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0);
223 if (r < 0)
224 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
225 #endif
226--- a/src/home/homework.c
227+++ b/src/home/homework.c
228@@ -278,7 +278,7 @@ static void drop_caches_now(void) {
229 * for details. We write "2" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but
230 * not more. */
231
232- r = write_string_file("/proc/sys/vm/drop_caches", "2\n", WRITE_STRING_FILE_DISABLE_BUFFER);
233+ r = write_string_file("/proc/sys/vm/drop_caches", "2\n", 0);
234 if (r < 0)
235 log_warning_errno(r, "Failed to drop caches, ignoring: %m");
236 else
237--- a/src/libsystemd/sd-device/sd-device.c
238+++ b/src/libsystemd/sd-device/sd-device.c
239@@ -2516,7 +2516,7 @@ _public_ int sd_device_set_sysattr_value
240 if (!value)
241 return -ENOMEM;
242
243- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
244+ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
245 if (r < 0) {
246 /* On failure, clear cache entry, as we do not know how it fails. */
247 device_remove_cached_sysattr_value(device, sysattr);
248--- a/src/nspawn/nspawn-cgroup.c
249+++ b/src/nspawn/nspawn-cgroup.c
250@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
251 fn = strjoina(tree, cgroup, "/cgroup.procs");
252
253 sprintf(pid_string, PID_FMT, pid);
254- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
255+ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755);
256 if (r < 0) {
257 log_error_errno(r, "Failed to move process: %m");
258 goto finish;
259--- a/src/nspawn/nspawn.c
260+++ b/src/nspawn/nspawn.c
261@@ -2690,7 +2690,7 @@ static int reset_audit_loginuid(void) {
262 if (streq(p, "4294967295"))
263 return 0;
264
265- r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER);
266+ r = write_string_file("/proc/self/loginuid", "4294967295", 0);
267 if (r < 0) {
268 log_error_errno(r,
269 "Failed to reset audit login UID. This probably means that your kernel is too\n"
270@@ -4143,7 +4143,7 @@ static int setup_uid_map(
271 return log_oom();
272
273 xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
274- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
275+ r = write_string_file(uid_map, s, 0);
276 if (r < 0)
277 return log_error_errno(r, "Failed to write UID map: %m");
278
279@@ -4153,7 +4153,7 @@ static int setup_uid_map(
280 return log_oom();
281
282 xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
283- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
284+ r = write_string_file(uid_map, s, 0);
285 if (r < 0)
286 return log_error_errno(r, "Failed to write GID map: %m");
287
288--- a/src/shared/binfmt-util.c
289+++ b/src/shared/binfmt-util.c
290@@ -46,7 +46,7 @@ int disable_binfmt(void) {
291 return 0;
292 }
293
294- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
295+ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
296 if (r < 0)
297 return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
298
299--- a/src/shared/cgroup-setup.c
300+++ b/src/shared/cgroup-setup.c
301@@ -351,7 +351,7 @@ int cg_attach(const char *controller, co
302
303 xsprintf(c, PID_FMT "\n", pid);
304
305- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
306+ r = write_string_file(fs, c, 0);
307 if (r == -EOPNOTSUPP && cg_is_threaded(path) > 0)
308 /* When the threaded mode is used, we cannot read/write the file. Let's return recognizable error. */
309 return -EUCLEAN;
310@@ -966,7 +966,7 @@ int cg_enable_everywhere(
311 return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
312 }
313
314- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
315+ r = write_string_stream(f, s, 0);
316 if (r < 0) {
317 log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
318 FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
319--- a/src/shared/coredump-util.c
320+++ b/src/shared/coredump-util.c
321@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value)
322 xsprintf(t, "0x%"PRIx64, value);
323
324 return write_string_file("/proc/self/coredump_filter", t,
325- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
326+ 0);
327 }
328
329 /* Turn off core dumps but only if we're running outside of a container. */
330@@ -173,7 +173,7 @@ void disable_coredumps(void) {
331 if (detect_container() > 0)
332 return;
333
334- r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER);
335+ r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
336 if (r < 0)
337 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
338 }
339--- a/src/shared/hibernate-util.c
340+++ b/src/shared/hibernate-util.c
341@@ -501,7 +501,7 @@ int write_resume_config(dev_t devno, uin
342
343 /* We write the offset first since it's safer. Note that this file is only available in 4.17+, so
344 * fail gracefully if it doesn't exist and we're only overwriting it with 0. */
345- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
346+ r = write_string_file("/sys/power/resume_offset", offset_str, 0);
347 if (r == -ENOENT) {
348 if (offset != 0)
349 return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
350@@ -517,7 +517,7 @@ int write_resume_config(dev_t devno, uin
351 log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.",
352 offset_str, device);
353
354- r = write_string_file("/sys/power/resume", devno_str, WRITE_STRING_FILE_DISABLE_BUFFER);
355+ r = write_string_file("/sys/power/resume", devno_str, 0);
356 if (r < 0)
357 return log_error_errno(r,
358 "Failed to write device '%s' (%s) to /sys/power/resume: %m",
359--- a/src/shared/smack-util.c
360+++ b/src/shared/smack-util.c
361@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const
362 return 0;
363
364 p = procfs_file_alloca(pid, "attr/current");
365- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
366+ r = write_string_file(p, label, 0);
367 if (r < 0)
368 return r;
369
370--- a/src/shared/watchdog.c
371+++ b/src/shared/watchdog.c
372@@ -93,7 +93,7 @@ static int set_pretimeout_governor(const
373
374 r = write_string_file(sys_fn,
375 governor,
376- WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
377+ WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
378 if (r < 0)
379 return log_error_errno(r, "Failed to set watchdog pretimeout_governor to '%s': %m", governor);
380
381--- a/src/sleep/sleep.c
382+++ b/src/sleep/sleep.c
383@@ -137,7 +137,7 @@ static int write_state(int fd, char * co
384 if (k < 0)
385 return RET_GATHER(r, k);
386
387- k = write_string_stream(f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
388+ k = write_string_stream(f, *state, 0);
389 if (k >= 0) {
390 log_debug("Using sleep state '%s'.", *state);
391 return 0;
392@@ -155,7 +155,7 @@ static int write_mode(char * const *mode
393 STRV_FOREACH(mode, modes) {
394 int k;
395
396- k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
397+ k = write_string_file("/sys/power/disk", *mode, 0);
398 if (k >= 0) {
399 log_debug("Using sleep disk mode '%s'.", *mode);
400 return 0;
401--- a/src/storagetm/storagetm.c
402+++ b/src/storagetm/storagetm.c
403@@ -186,7 +186,7 @@ static int nvme_subsystem_unlink(NvmeSub
404 if (!enable_fn)
405 return log_oom();
406
407- r = write_string_file_at(namespaces_fd, enable_fn, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
408+ r = write_string_file_at(namespaces_fd, enable_fn, "0", 0);
409 if (r < 0)
410 log_warning_errno(r, "Failed to disable namespace '%s' of NVME subsystem '%s', ignoring: %m", e->d_name, s->name);
411
412@@ -254,7 +254,7 @@ static int nvme_subsystem_write_metadata
413 _cleanup_free_ char *truncated = strndup(w, 40); /* kernel refuses more than 40 chars (as per nvme spec) */
414
415 /* The default string stored in 'attr_model' is "Linux" btw. */
416- r = write_string_file_at(subsystem_fd, "attr_model", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
417+ r = write_string_file_at(subsystem_fd, "attr_model", truncated, 0);
418 if (r < 0)
419 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", w);
420 }
421@@ -268,7 +268,7 @@ static int nvme_subsystem_write_metadata
422 return log_oom();
423
424 /* The default string stored in 'attr_firmware' is `uname -r` btw, but truncated to 8 chars. */
425- r = write_string_file_at(subsystem_fd, "attr_firmware", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
426+ r = write_string_file_at(subsystem_fd, "attr_firmware", truncated, 0);
427 if (r < 0)
428 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", truncated);
429 }
430@@ -295,7 +295,7 @@ static int nvme_subsystem_write_metadata
431 if (!truncated)
432 return log_oom();
433
434- r = write_string_file_at(subsystem_fd, "attr_serial", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
435+ r = write_string_file_at(subsystem_fd, "attr_serial", truncated, 0);
436 if (r < 0)
437 log_warning_errno(r, "Failed to set serial of subsystem to '%s', ignoring: %m", truncated);
438 }
439@@ -345,7 +345,7 @@ static int nvme_namespace_write_metadata
440 id = id128_digest(j, l);
441 }
442
443- r = write_string_file_at(namespace_fd, "device_uuid", SD_ID128_TO_UUID_STRING(id), WRITE_STRING_FILE_DISABLE_BUFFER);
444+ r = write_string_file_at(namespace_fd, "device_uuid", SD_ID128_TO_UUID_STRING(id), 0);
445 if (r < 0)
446 log_warning_errno(r, "Failed to set uuid of namespace to '%s', ignoring: %m", SD_ID128_TO_UUID_STRING(id));
447
448@@ -408,7 +408,7 @@ static int nvme_subsystem_add(const char
449 if (subsystem_fd < 0)
450 return log_error_errno(subsystem_fd, "Failed to create NVME subsystem '%s': %m", j);
451
452- r = write_string_file_at(subsystem_fd, "attr_allow_any_host", "1", WRITE_STRING_FILE_DISABLE_BUFFER);
453+ r = write_string_file_at(subsystem_fd, "attr_allow_any_host", "1", 0);
454 if (r < 0)
455 return log_error_errno(r, "Failed to set 'attr_allow_any_host' flag: %m");
456
457@@ -423,11 +423,11 @@ static int nvme_subsystem_add(const char
458
459 /* We use /proc/$PID/fd/$FD rather than /proc/self/fd/$FD, because this string is visible to others
460 * via configfs, and by including the PID it's clear to who the stuff belongs. */
461- r = write_string_file_at(namespace_fd, "device_path", FORMAT_PROC_PID_FD_PATH(0, fd), WRITE_STRING_FILE_DISABLE_BUFFER);
462+ r = write_string_file_at(namespace_fd, "device_path", FORMAT_PROC_PID_FD_PATH(0, fd), 0);
463 if (r < 0)
464 return log_error_errno(r, "Failed to write 'device_path' attribute: %m");
465
466- r = write_string_file_at(namespace_fd, "enable", "1", WRITE_STRING_FILE_DISABLE_BUFFER);
467+ r = write_string_file_at(namespace_fd, "enable", "1", 0);
468 if (r < 0)
469 return log_error_errno(r, "Failed to write 'enable' attribute: %m");
470
471@@ -557,19 +557,19 @@ static int nvme_port_add_portnr(
472 return 0;
473 }
474
475- r = write_string_file_at(port_fd, "addr_adrfam", af_to_ipv4_ipv6(ip_family), WRITE_STRING_FILE_DISABLE_BUFFER);
476+ r = write_string_file_at(port_fd, "addr_adrfam", af_to_ipv4_ipv6(ip_family), 0);
477 if (r < 0)
478 return log_error_errno(r, "Failed to set address family on NVME port %" PRIu16 ": %m", portnr);
479
480- r = write_string_file_at(port_fd, "addr_trtype", "tcp", WRITE_STRING_FILE_DISABLE_BUFFER);
481+ r = write_string_file_at(port_fd, "addr_trtype", "tcp", 0);
482 if (r < 0)
483 return log_error_errno(r, "Failed to set transport type on NVME port %" PRIu16 ": %m", portnr);
484
485- r = write_string_file_at(port_fd, "addr_trsvcid", fname, WRITE_STRING_FILE_DISABLE_BUFFER);
486+ r = write_string_file_at(port_fd, "addr_trsvcid", fname, 0);
487 if (r < 0)
488 return log_error_errno(r, "Failed to set IP port on NVME port %" PRIu16 ": %m", portnr);
489
490- r = write_string_file_at(port_fd, "addr_traddr", ip_family == AF_INET6 ? "::" : "0.0.0.0", WRITE_STRING_FILE_DISABLE_BUFFER);
491+ r = write_string_file_at(port_fd, "addr_traddr", ip_family == AF_INET6 ? "::" : "0.0.0.0", 0);
492 if (r < 0)
493 return log_error_errno(r, "Failed to set IP address on NVME port %" PRIu16 ": %m", portnr);
494
495--- a/src/udev/udev-rules.c
496+++ b/src/udev/udev-rules.c
497@@ -2711,7 +2711,6 @@ static int udev_rule_apply_token_to_even
498 log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value);
499 r = write_string_file(buf, value,
500 WRITE_STRING_FILE_VERIFY_ON_FAILURE |
501- WRITE_STRING_FILE_DISABLE_BUFFER |
502 WRITE_STRING_FILE_AVOID_NEWLINE |
503 WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
504 if (r < 0)
505--- a/src/vconsole/vconsole-setup.c
506+++ b/src/vconsole/vconsole-setup.c
507@@ -261,7 +261,7 @@ static int toggle_utf8_vc(const char *na
508 static int toggle_utf8_sysfs(bool utf8) {
509 int r;
510
511- r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER);
512+ r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0);
513 if (r < 0)
514 return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
515
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch
deleted file mode 100644
index 43f75373a6..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From 2f90f8463423cfbb7e83fcef42f1071018c3b56e Mon Sep 17 00:00:00 2001
2From: Scott Murray <scott.murray@konsulko.com>
3Date: Fri, 13 Sep 2019 19:26:27 -0400
4Subject: [PATCH 13/22] Handle __cpu_mask usage
5
6Fixes errors:
7
8src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
9src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)
10
11__cpu_mask is an internal type of glibc's cpu_set implementation, not
12part of the POSIX definition, which is problematic when building with
13musl, which does not define a matching type. From inspection of musl's
14sched.h, however, it is clear that the corresponding type would be
15unsigned long, which does match glibc's actual __CPU_MASK_TYPE. So,
16add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
17
18Upstream-Status: Inappropriate [musl specific]
19
20Signed-off-by: Scott Murray <scott.murray@konsulko.com>
21---
22 src/shared/cpu-set-util.h | 2 ++
23 src/test/test-sizeof.c | 2 +-
24 2 files changed, 3 insertions(+), 1 deletion(-)
25
26diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
27index 3c63a58826..4c2d4347fc 100644
28--- a/src/shared/cpu-set-util.h
29+++ b/src/shared/cpu-set-util.h
30@@ -6,6 +6,8 @@
31 #include "macro.h"
32 #include "missing_syscall.h"
33
34+typedef unsigned long __cpu_mask;
35+
36 /* This wraps the libc interface with a variable to keep the allocated size. */
37 typedef struct CPUSet {
38 cpu_set_t *set;
39diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
40index ea0c58770e..b65c0bd370 100644
41--- a/src/test/test-sizeof.c
42+++ b/src/test/test-sizeof.c
43@@ -1,6 +1,5 @@
44 /* SPDX-License-Identifier: LGPL-2.1-or-later */
45
46-#include <sched.h>
47 #include <stdio.h>
48 #include <string.h>
49 #include <sys/resource.h>
50@@ -12,6 +11,7 @@
51 #include <float.h>
52
53 #include "time-util.h"
54+#include "cpu-set-util.h"
55
56 /* Print information about various types. Useful when diagnosing
57 * gcc diagnostics on an unfamiliar architecture. */
58--
592.34.1
60
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch
deleted file mode 100644
index a751e1ba6f..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch
+++ /dev/null
@@ -1,173 +0,0 @@
1From b7c827bb44edbb6251c9fcdb80aa03982c0e7bf3 Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Tue, 10 Mar 2020 11:05:20 +0000
4Subject: [PATCH 14/22] Handle missing gshadow
5
6gshadow usage is now present in the userdb code. Mask all uses of it to
7allow compilation on musl
8
9Upstream-Status: Inappropriate [musl specific]
10Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
11[Rebased for v247]
12Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
13---
14 src/shared/user-record-nss.c | 20 ++++++++++++++++++++
15 src/shared/user-record-nss.h | 4 ++++
16 src/shared/userdb.c | 7 ++++++-
17 3 files changed, 30 insertions(+), 1 deletion(-)
18
19diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
20index 414a49331b..1a4e1b628c 100644
21--- a/src/shared/user-record-nss.c
22+++ b/src/shared/user-record-nss.c
23@@ -329,8 +329,10 @@ int nss_group_to_group_record(
24 if (isempty(grp->gr_name))
25 return -EINVAL;
26
27+#if ENABLE_GSHADOW
28 if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
29 return -EINVAL;
30+#endif
31
32 g = group_record_new();
33 if (!g)
34@@ -346,6 +348,7 @@ int nss_group_to_group_record(
35
36 g->gid = grp->gr_gid;
37
38+#if ENABLE_GSHADOW
39 if (sgrp) {
40 if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
41 g->hashed_password = strv_new(sgrp->sg_passwd);
42@@ -361,6 +364,7 @@ int nss_group_to_group_record(
43 if (r < 0)
44 return r;
45 }
46+#endif
47
48 r = json_build(&g->json, JSON_BUILD_OBJECT(
49 JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
50@@ -387,6 +391,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
51 assert(ret_sgrp);
52 assert(ret_buffer);
53
54+#if ENABLE_GSHADOW
55 for (;;) {
56 _cleanup_free_ char *buf = NULL;
57 struct sgrp sgrp, *result;
58@@ -415,6 +420,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
59 buflen *= 2;
60 buf = mfree(buf);
61 }
62+#else
63+ return -ESRCH;
64+#endif
65 }
66
67 int nss_group_record_by_name(
68@@ -426,7 +434,9 @@ int nss_group_record_by_name(
69 struct group grp, *result;
70 bool incomplete = false;
71 size_t buflen = 4096;
72+#if ENABLE_GSHADOW
73 struct sgrp sgrp, *sresult = NULL;
74+#endif
75 int r;
76
77 assert(name);
78@@ -455,6 +465,7 @@ int nss_group_record_by_name(
79 buf = mfree(buf);
80 }
81
82+#if ENABLE_GSHADOW
83 if (with_shadow) {
84 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
85 if (r < 0) {
86@@ -466,6 +477,9 @@ int nss_group_record_by_name(
87 incomplete = true;
88
89 r = nss_group_to_group_record(result, sresult, ret);
90+#else
91+ r = nss_group_to_group_record(result, NULL, ret);
92+#endif
93 if (r < 0)
94 return r;
95
96@@ -483,7 +497,9 @@ int nss_group_record_by_gid(
97 struct group grp, *result;
98 bool incomplete = false;
99 size_t buflen = 4096;
100+#if ENABLE_GSHADOW
101 struct sgrp sgrp, *sresult = NULL;
102+#endif
103 int r;
104
105 for (;;) {
106@@ -509,6 +525,7 @@ int nss_group_record_by_gid(
107 buf = mfree(buf);
108 }
109
110+#if ENABLE_GSHADOW
111 if (with_shadow) {
112 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
113 if (r < 0) {
114@@ -520,6 +537,9 @@ int nss_group_record_by_gid(
115 incomplete = true;
116
117 r = nss_group_to_group_record(result, sresult, ret);
118+#else
119+ r = nss_group_to_group_record(result, NULL, ret);
120+#endif
121 if (r < 0)
122 return r;
123
124diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h
125index 22ab04d6ee..4e52e7a911 100644
126--- a/src/shared/user-record-nss.h
127+++ b/src/shared/user-record-nss.h
128@@ -2,7 +2,11 @@
129 #pragma once
130
131 #include <grp.h>
132+#if ENABLE_GSHADOW
133 #include <gshadow.h>
134+#else
135+struct sgrp;
136+#endif
137 #include <pwd.h>
138 #include <shadow.h>
139
140diff --git a/src/shared/userdb.c b/src/shared/userdb.c
141index f60d48ace4..e878199a28 100644
142--- a/src/shared/userdb.c
143+++ b/src/shared/userdb.c
144@@ -1038,13 +1038,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
145 if (gr) {
146 _cleanup_free_ char *buffer = NULL;
147 bool incomplete = false;
148+#if ENABLE_GSHADOW
149 struct sgrp sgrp;
150-
151+#endif
152 if (streq_ptr(gr->gr_name, "root"))
153 iterator->synthesize_root = false;
154 if (gr->gr_gid == GID_NOBODY)
155 iterator->synthesize_nobody = false;
156
157+#if ENABLE_GSHADOW
158 if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
159 r = nss_sgrp_for_group(gr, &sgrp, &buffer);
160 if (r < 0) {
161@@ -1057,6 +1059,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
162 }
163
164 r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
165+#else
166+ r = nss_group_to_group_record(gr, NULL, ret);
167+#endif
168 if (r < 0)
169 return r;
170
171--
1722.34.1
173
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
deleted file mode 100644
index e112766a9b..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 3dc9d9d410bcce54fddfd94f43f7f77f3aa8e281 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 12 Apr 2021 23:44:53 -0700
4Subject: [PATCH 15/22] missing_syscall.h: Define MIPS ABI defines for musl
5
6musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
7unlike glibc where these are provided by libc headers, therefore define
8them here in case they are undefined
9
10Upstream-Status: Pending
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/basic/missing_syscall.h | 6 ++++++
15 src/shared/base-filesystem.c | 1 +
16 2 files changed, 7 insertions(+)
17
18diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
19index d795efd8f2..d6729d3c1d 100644
20--- a/src/basic/missing_syscall.h
21+++ b/src/basic/missing_syscall.h
22@@ -20,6 +20,12 @@
23 #include <asm/sgidefs.h>
24 #endif
25
26+#ifndef _MIPS_SIM_ABI32
27+#define _MIPS_SIM_ABI32 1
28+#define _MIPS_SIM_NABI32 2
29+#define _MIPS_SIM_ABI64 3
30+#endif
31+
32 #include "macro.h"
33 #include "missing_keyctl.h"
34 #include "missing_stat.h"
35diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
36index 7ae921a113..0ef9d1fd39 100644
37--- a/src/shared/base-filesystem.c
38+++ b/src/shared/base-filesystem.c
39@@ -20,6 +20,7 @@
40 #include "string-util.h"
41 #include "umask-util.h"
42 #include "user-util.h"
43+#include "missing_syscall.h"
44
45 typedef struct BaseFilesystem {
46 const char *dir; /* directory or symlink to create */
47--
482.34.1
49
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch
deleted file mode 100644
index 0be817e62d..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 0994b59dba9f248ad31cb7087046dc00b72cb4ea Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 21 Jan 2022 15:15:11 -0800
4Subject: [PATCH 16/22] pass correct parameters to getdents64
5
6Fixes
7../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
8 n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
9 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
11../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
12 n = getdents64(fd, &buffer, sizeof(buffer));
13 ^~~~~~~
14
15Upstream-Status: Inappropriate [musl specific]
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
18---
19 src/basic/recurse-dir.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
23index 5e98b7a5d8..aef065047b 100644
24--- a/src/basic/recurse-dir.c
25+++ b/src/basic/recurse-dir.c
26@@ -55,7 +55,7 @@ int readdir_all(int dir_fd,
27 bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
28 assert(bs > de->buffer_size);
29
30- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
31+ n = getdents64(dir_fd, (struct dirent*)((uint8_t*) de->buffer + de->buffer_size), bs - de->buffer_size);
32 if (n < 0)
33 return -errno;
34 if (n == 0)
35--
362.34.1
37
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch
deleted file mode 100644
index 4176522a1c..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch
+++ /dev/null
@@ -1,572 +0,0 @@
1From 3c094d443ca30f19114392fd8ef274af6eabc12d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 21 Jan 2022 22:19:37 -0800
4Subject: [PATCH 17/22] Adjust for musl headers
5
6Upstream-Status: Inappropriate [musl specific]
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9
10[Rebased for v255.1]
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12---
13 src/libsystemd-network/sd-dhcp6-client.c | 2 +-
14 src/network/netdev/bareudp.c | 2 +-
15 src/network/netdev/batadv.c | 2 +-
16 src/network/netdev/bond.c | 2 +-
17 src/network/netdev/bridge.c | 2 +-
18 src/network/netdev/dummy.c | 2 +-
19 src/network/netdev/geneve.c | 2 +-
20 src/network/netdev/ifb.c | 2 +-
21 src/network/netdev/ipoib.c | 2 +-
22 src/network/netdev/ipvlan.c | 2 +-
23 src/network/netdev/macsec.c | 2 +-
24 src/network/netdev/macvlan.c | 2 +-
25 src/network/netdev/netdev.c | 2 +-
26 src/network/netdev/netdevsim.c | 2 +-
27 src/network/netdev/nlmon.c | 2 +-
28 src/network/netdev/tunnel.c | 2 +-
29 src/network/netdev/vcan.c | 2 +-
30 src/network/netdev/veth.c | 2 +-
31 src/network/netdev/vlan.c | 2 +-
32 src/network/netdev/vrf.c | 2 +-
33 src/network/netdev/vxcan.c | 2 +-
34 src/network/netdev/vxlan.c | 2 +-
35 src/network/netdev/wireguard.c | 2 +-
36 src/network/netdev/xfrm.c | 2 +-
37 src/network/networkd-bridge-mdb.c | 4 ++--
38 src/network/networkd-dhcp-common.c | 3 ++-
39 src/network/networkd-dhcp-prefix-delegation.c | 3 ++-
40 src/network/networkd-dhcp-server.c | 2 +-
41 src/network/networkd-dhcp4.c | 2 +-
42 src/network/networkd-ipv6ll.c | 2 +-
43 src/network/networkd-link.c | 2 +-
44 src/network/networkd-ndisc.c | 2 +-
45 src/network/networkd-route.c | 8 ++++----
46 src/network/networkd-setlink.c | 2 +-
47 src/network/networkd-sysctl.c | 2 +-
48 src/shared/linux/ethtool.h | 3 ++-
49 src/shared/netif-util.c | 2 +-
50 src/udev/udev-builtin-net_id.c | 2 +-
51 38 files changed, 45 insertions(+), 42 deletions(-)
52
53diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
54index c20367dfc9..b8d4cd8c2a 100644
55--- a/src/libsystemd-network/sd-dhcp6-client.c
56+++ b/src/libsystemd-network/sd-dhcp6-client.c
57@@ -5,7 +5,7 @@
58
59 #include <errno.h>
60 #include <sys/ioctl.h>
61-#include <linux/if_arp.h>
62+//#include <linux/if_arp.h>
63 #include <linux/if_infiniband.h>
64
65 #include "sd-dhcp6-client.h"
66diff --git a/src/network/netdev/bareudp.c b/src/network/netdev/bareudp.c
67index 1df886573b..c8b6714726 100644
68--- a/src/network/netdev/bareudp.c
69+++ b/src/network/netdev/bareudp.c
70@@ -2,7 +2,7 @@
71 * Copyright © 2020 VMware, Inc. */
72
73 #include <netinet/in.h>
74-#include <linux/if_arp.h>
75+//#include <linux/if_arp.h>
76
77 #include "bareudp.h"
78 #include "netlink-util.h"
79diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c
80index 26da0231d4..2e8002af8c 100644
81--- a/src/network/netdev/batadv.c
82+++ b/src/network/netdev/batadv.c
83@@ -3,7 +3,7 @@
84 #include <inttypes.h>
85 #include <netinet/in.h>
86 #include <linux/genetlink.h>
87-#include <linux/if_arp.h>
88+//#include <linux/if_arp.h>
89
90 #include "batadv.h"
91 #include "fileio.h"
92diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
93index 4d75a0d6bf..985b3197e0 100644
94--- a/src/network/netdev/bond.c
95+++ b/src/network/netdev/bond.c
96@@ -1,7 +1,7 @@
97 /* SPDX-License-Identifier: LGPL-2.1-or-later */
98
99 #include <netinet/in.h>
100-#include <linux/if_arp.h>
101+//#include <linux/if_arp.h>
102
103 #include "alloc-util.h"
104 #include "bond.h"
105diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
106index 3e394edadf..f12f667687 100644
107--- a/src/network/netdev/bridge.c
108+++ b/src/network/netdev/bridge.c
109@@ -2,7 +2,7 @@
110
111 #include <net/if.h>
112 #include <netinet/in.h>
113-#include <linux/if_arp.h>
114+//#include <linux/if_arp.h>
115 #include <linux/if_bridge.h>
116
117 #include "bridge.h"
118diff --git a/src/network/netdev/dummy.c b/src/network/netdev/dummy.c
119index 00df1d2787..77b506b422 100644
120--- a/src/network/netdev/dummy.c
121+++ b/src/network/netdev/dummy.c
122@@ -1,6 +1,6 @@
123 /* SPDX-License-Identifier: LGPL-2.1-or-later */
124
125-#include <linux/if_arp.h>
126+//#include <linux/if_arp.h>
127
128 #include "dummy.h"
129
130diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c
131index bc655ec7ff..a77e8e17e4 100644
132--- a/src/network/netdev/geneve.c
133+++ b/src/network/netdev/geneve.c
134@@ -2,7 +2,7 @@
135
136 #include <net/if.h>
137 #include <netinet/in.h>
138-#include <linux/if_arp.h>
139+//#include <linux/if_arp.h>
140
141 #include "alloc-util.h"
142 #include "conf-parser.h"
143diff --git a/src/network/netdev/ifb.c b/src/network/netdev/ifb.c
144index d7ff44cb9e..e037629ae4 100644
145--- a/src/network/netdev/ifb.c
146+++ b/src/network/netdev/ifb.c
147@@ -1,7 +1,7 @@
148 /* SPDX-License-Identifier: LGPL-2.1-or-later
149 * Copyright © 2019 VMware, Inc. */
150
151-#include <linux/if_arp.h>
152+//#include <linux/if_arp.h>
153
154 #include "ifb.h"
155
156diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c
157index d5fe299b7b..c9c8002eac 100644
158--- a/src/network/netdev/ipoib.c
159+++ b/src/network/netdev/ipoib.c
160@@ -1,6 +1,6 @@
161 /* SPDX-License-Identifier: LGPL-2.1-or-later */
162
163-#include <linux/if_arp.h>
164+//#include <linux/if_arp.h>
165 #include <linux/if_link.h>
166
167 #include "ipoib.h"
168diff --git a/src/network/netdev/ipvlan.c b/src/network/netdev/ipvlan.c
169index 05d5d010f6..d440f49537 100644
170--- a/src/network/netdev/ipvlan.c
171+++ b/src/network/netdev/ipvlan.c
172@@ -2,7 +2,7 @@
173
174 #include <net/if.h>
175 #include <netinet/in.h>
176-#include <linux/if_arp.h>
177+//#include <linux/if_arp.h>
178
179 #include "conf-parser.h"
180 #include "ipvlan.h"
181diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
182index 17d6acefb6..679d0984f9 100644
183--- a/src/network/netdev/macsec.c
184+++ b/src/network/netdev/macsec.c
185@@ -1,7 +1,7 @@
186 /* SPDX-License-Identifier: LGPL-2.1-or-later */
187
188 #include <netinet/in.h>
189-#include <linux/if_arp.h>
190+//#include <linux/if_arp.h>
191 #include <linux/if_ether.h>
192 #include <linux/if_macsec.h>
193 #include <linux/genetlink.h>
194diff --git a/src/network/netdev/macvlan.c b/src/network/netdev/macvlan.c
195index 203807e3a5..8ab09a387e 100644
196--- a/src/network/netdev/macvlan.c
197+++ b/src/network/netdev/macvlan.c
198@@ -2,7 +2,7 @@
199
200 #include <net/if.h>
201 #include <netinet/in.h>
202-#include <linux/if_arp.h>
203+//#include <linux/if_arp.h>
204
205 #include "conf-parser.h"
206 #include "macvlan.h"
207diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
208index 57127a861a..7f787d0b9f 100644
209--- a/src/network/netdev/netdev.c
210+++ b/src/network/netdev/netdev.c
211@@ -2,7 +2,7 @@
212
213 #include <net/if.h>
214 #include <netinet/in.h>
215-#include <linux/if_arp.h>
216+//#include <linux/if_arp.h>
217 #include <unistd.h>
218
219 #include "alloc-util.h"
220diff --git a/src/network/netdev/netdevsim.c b/src/network/netdev/netdevsim.c
221index 15d5c132f9..a3ffa48b15 100644
222--- a/src/network/netdev/netdevsim.c
223+++ b/src/network/netdev/netdevsim.c
224@@ -1,6 +1,6 @@
225 /* SPDX-License-Identifier: LGPL-2.1-or-later */
226
227-#include <linux/if_arp.h>
228+//#include <linux/if_arp.h>
229
230 #include "netdevsim.h"
231
232diff --git a/src/network/netdev/nlmon.c b/src/network/netdev/nlmon.c
233index ff372092e6..eef66811f4 100644
234--- a/src/network/netdev/nlmon.c
235+++ b/src/network/netdev/nlmon.c
236@@ -1,6 +1,6 @@
237 /* SPDX-License-Identifier: LGPL-2.1-or-later */
238
239-#include <linux/if_arp.h>
240+//#include <linux/if_arp.h>
241
242 #include "nlmon.h"
243
244diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c
245index db84e7cf6e..93d5642962 100644
246--- a/src/network/netdev/tunnel.c
247+++ b/src/network/netdev/tunnel.c
248@@ -2,7 +2,7 @@
249
250 #include <netinet/in.h>
251 #include <linux/fou.h>
252-#include <linux/if_arp.h>
253+//#include <linux/if_arp.h>
254 #include <linux/if_tunnel.h>
255 #include <linux/ip.h>
256 #include <linux/ip6_tunnel.h>
257diff --git a/src/network/netdev/vcan.c b/src/network/netdev/vcan.c
258index 380547ee1e..137c1adf8a 100644
259--- a/src/network/netdev/vcan.c
260+++ b/src/network/netdev/vcan.c
261@@ -1,6 +1,6 @@
262 /* SPDX-License-Identifier: LGPL-2.1-or-later */
263
264-#include <linux/if_arp.h>
265+//#include <linux/if_arp.h>
266
267 #include "vcan.h"
268
269diff --git a/src/network/netdev/veth.c b/src/network/netdev/veth.c
270index e0f5b4ebb1..8a424ed03d 100644
271--- a/src/network/netdev/veth.c
272+++ b/src/network/netdev/veth.c
273@@ -3,7 +3,7 @@
274 #include <errno.h>
275 #include <net/if.h>
276 #include <netinet/in.h>
277-#include <linux/if_arp.h>
278+//#include <linux/if_arp.h>
279 #include <linux/veth.h>
280
281 #include "netlink-util.h"
282diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c
283index 2390206993..efec630e30 100644
284--- a/src/network/netdev/vlan.c
285+++ b/src/network/netdev/vlan.c
286@@ -2,7 +2,7 @@
287
288 #include <errno.h>
289 #include <net/if.h>
290-#include <linux/if_arp.h>
291+//#include <linux/if_arp.h>
292 #include <linux/if_vlan.h>
293
294 #include "parse-util.h"
295diff --git a/src/network/netdev/vrf.c b/src/network/netdev/vrf.c
296index b75ec2bcc6..6aeeea640b 100644
297--- a/src/network/netdev/vrf.c
298+++ b/src/network/netdev/vrf.c
299@@ -2,7 +2,7 @@
300
301 #include <net/if.h>
302 #include <netinet/in.h>
303-#include <linux/if_arp.h>
304+//#include <linux/if_arp.h>
305
306 #include "vrf.h"
307
308diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c
309index c0343f45b6..f9e718f40b 100644
310--- a/src/network/netdev/vxcan.c
311+++ b/src/network/netdev/vxcan.c
312@@ -1,7 +1,7 @@
313 /* SPDX-License-Identifier: LGPL-2.1-or-later */
314
315 #include <linux/can/vxcan.h>
316-#include <linux/if_arp.h>
317+//#include <linux/if_arp.h>
318
319 #include "vxcan.h"
320
321diff --git a/src/network/netdev/vxlan.c b/src/network/netdev/vxlan.c
322index b11fdbbd0d..a971a917f0 100644
323--- a/src/network/netdev/vxlan.c
324+++ b/src/network/netdev/vxlan.c
325@@ -2,7 +2,7 @@
326
327 #include <net/if.h>
328 #include <netinet/in.h>
329-#include <linux/if_arp.h>
330+//#include <linux/if_arp.h>
331
332 #include "conf-parser.h"
333 #include "alloc-util.h"
334diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c
335index 4c7d837c41..6df6dfb816 100644
336--- a/src/network/netdev/wireguard.c
337+++ b/src/network/netdev/wireguard.c
338@@ -6,7 +6,7 @@
339 #include <sys/ioctl.h>
340 #include <net/if.h>
341 #include <netinet/in.h>
342-#include <linux/if_arp.h>
343+//#include <linux/if_arp.h>
344 #include <linux/ipv6_route.h>
345
346 #include "sd-resolve.h"
347diff --git a/src/network/netdev/xfrm.c b/src/network/netdev/xfrm.c
348index 905bfc0bdf..39e34dbb3b 100644
349--- a/src/network/netdev/xfrm.c
350+++ b/src/network/netdev/xfrm.c
351@@ -1,6 +1,6 @@
352 /* SPDX-License-Identifier: LGPL-2.1-or-later */
353
354-#include <linux/if_arp.h>
355+//#include <linux/if_arp.h>
356
357 #include "missing_network.h"
358 #include "xfrm.h"
359diff --git a/src/network/networkd-bridge-mdb.c b/src/network/networkd-bridge-mdb.c
360index bd1a9745dc..949d3da029 100644
361--- a/src/network/networkd-bridge-mdb.c
362+++ b/src/network/networkd-bridge-mdb.c
363@@ -1,7 +1,5 @@
364 /* SPDX-License-Identifier: LGPL-2.1-or-later */
365
366-#include <net/if.h>
367-#include <linux/if_bridge.h>
368
369 #include "netlink-util.h"
370 #include "networkd-bridge-mdb.h"
371@@ -11,6 +9,8 @@
372 #include "networkd-queue.h"
373 #include "string-util.h"
374 #include "vlan-util.h"
375+#include <net/if.h>
376+#include <linux/if_bridge.h>
377
378 #define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
379
380diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
381index 080b15387c..efe8283957 100644
382--- a/src/network/networkd-dhcp-common.c
383+++ b/src/network/networkd-dhcp-common.c
384@@ -1,7 +1,8 @@
385 /* SPDX-License-Identifier: LGPL-2.1-or-later */
386
387 #include <netinet/in.h>
388-#include <linux/if_arp.h>
389+//#include <linux/if_arp.h>
390+#include <net/if.h>
391
392 #include "bus-error.h"
393 #include "bus-locator.h"
394diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c
395index af2fe9efcd..511565700f 100644
396--- a/src/network/networkd-dhcp-prefix-delegation.c
397+++ b/src/network/networkd-dhcp-prefix-delegation.c
398@@ -1,6 +1,5 @@
399 /* SPDX-License-Identifier: LGPL-2.1-or-later */
400
401-#include <linux/ipv6_route.h>
402
403 #include "dhcp6-lease-internal.h"
404 #include "hashmap.h"
405@@ -20,6 +19,8 @@
406 #include "strv.h"
407 #include "tunnel.h"
408
409+#include <linux/ipv6_route.h>
410+
411 bool link_dhcp_pd_is_enabled(Link *link) {
412 assert(link);
413
414diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
415index 607fe0053c..9ce4005874 100644
416--- a/src/network/networkd-dhcp-server.c
417+++ b/src/network/networkd-dhcp-server.c
418@@ -1,7 +1,7 @@
419 /* SPDX-License-Identifier: LGPL-2.1-or-later */
420
421 #include <netinet/in.h>
422-#include <linux/if_arp.h>
423+//#include <linux/if_arp.h>
424 #include <linux/if.h>
425
426 #include "sd-dhcp-server.h"
427diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
428index efbae6d868..1ea2151d50 100644
429--- a/src/network/networkd-dhcp4.c
430+++ b/src/network/networkd-dhcp4.c
431@@ -3,7 +3,7 @@
432 #include <netinet/in.h>
433 #include <netinet/ip.h>
434 #include <linux/if.h>
435-#include <linux/if_arp.h>
436+//#include <linux/if_arp.h>
437
438 #include "alloc-util.h"
439 #include "dhcp-client-internal.h"
440diff --git a/src/network/networkd-ipv6ll.c b/src/network/networkd-ipv6ll.c
441index 32229a3fc7..662a345d6e 100644
442--- a/src/network/networkd-ipv6ll.c
443+++ b/src/network/networkd-ipv6ll.c
444@@ -1,7 +1,7 @@
445 /* SPDX-License-Identifier: LGPL-2.1-or-later */
446
447 #include <linux/if.h>
448-#include <linux/if_arp.h>
449+//#include <linux/if_arp.h>
450
451 #include "in-addr-util.h"
452 #include "networkd-address.h"
453diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
454index ee5f0f2c0a..ea5269a2de 100644
455--- a/src/network/networkd-link.c
456+++ b/src/network/networkd-link.c
457@@ -3,7 +3,7 @@
458 #include <net/if.h>
459 #include <netinet/in.h>
460 #include <linux/if.h>
461-#include <linux/if_arp.h>
462+//#include <linux/if_arp.h>
463 #include <linux/if_link.h>
464 #include <linux/netdevice.h>
465 #include <sys/socket.h>
466diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
467index ab9eeb13a5..dd96fe7483 100644
468--- a/src/network/networkd-ndisc.c
469+++ b/src/network/networkd-ndisc.c
470@@ -6,7 +6,7 @@
471 #include <arpa/inet.h>
472 #include <netinet/icmp6.h>
473 #include <linux/if.h>
474-#include <linux/if_arp.h>
475+//#include <linux/if_arp.h>
476
477 #include "sd-ndisc.h"
478
479diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
480index 7218d799fc..30d5574eae 100644
481--- a/src/network/networkd-route.c
482+++ b/src/network/networkd-route.c
483@@ -1,9 +1,5 @@
484 /* SPDX-License-Identifier: LGPL-2.1-or-later */
485
486-#include <linux/icmpv6.h>
487-#include <linux/ipv6_route.h>
488-#include <linux/nexthop.h>
489-
490 #include "alloc-util.h"
491 #include "event-util.h"
492 #include "netlink-util.h"
493@@ -21,6 +17,10 @@
494 #include "vrf.h"
495 #include "wireguard.h"
496
497+#include <linux/icmpv6.h>
498+#include <linux/ipv6_route.h>
499+#include <linux/nexthop.h>
500+
501 int route_new(Route **ret) {
502 _cleanup_(route_freep) Route *route = NULL;
503
504diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c
505index 2298f9ea3a..7d5f87de53 100644
506--- a/src/network/networkd-setlink.c
507+++ b/src/network/networkd-setlink.c
508@@ -2,7 +2,7 @@
509
510 #include <netinet/in.h>
511 #include <linux/if.h>
512-#include <linux/if_arp.h>
513+//#include <linux/if_arp.h>
514 #include <linux/if_bridge.h>
515
516 #include "missing_network.h"
517diff --git a/src/network/networkd-sysctl.c b/src/network/networkd-sysctl.c
518index 2b226b2e2a..f12a474e2f 100644
519--- a/src/network/networkd-sysctl.c
520+++ b/src/network/networkd-sysctl.c
521@@ -2,7 +2,7 @@
522
523 #include <netinet/in.h>
524 #include <linux/if.h>
525-#include <linux/if_arp.h>
526+//#include <linux/if_arp.h>
527
528 #include "missing_network.h"
529 #include "networkd-link.h"
530diff --git a/src/shared/linux/ethtool.h b/src/shared/linux/ethtool.h
531index 3d1da515c0..3fca9a4faf 100644
532--- a/src/shared/linux/ethtool.h
533+++ b/src/shared/linux/ethtool.h
534@@ -16,7 +16,8 @@
535
536 #include <linux/const.h>
537 #include <linux/types.h>
538-#include <linux/if_ether.h>
539+#include <netinet/if_ether.h>
540+//#include <linux/if_ether.h>
541
542 #include <limits.h> /* for INT_MAX */
543
544diff --git a/src/shared/netif-util.c b/src/shared/netif-util.c
545index f56c5646c1..5af28ff119 100644
546--- a/src/shared/netif-util.c
547+++ b/src/shared/netif-util.c
548@@ -1,7 +1,7 @@
549 /* SPDX-License-Identifier: LGPL-2.1-or-later */
550
551 #include <linux/if.h>
552-#include <linux/if_arp.h>
553+//#include <linux/if_arp.h>
554
555 #include "arphrd-util.h"
556 #include "device-util.h"
557diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
558index f528a46b8e..830318cda5 100644
559--- a/src/udev/udev-builtin-net_id.c
560+++ b/src/udev/udev-builtin-net_id.c
561@@ -18,7 +18,7 @@
562 #include <stdarg.h>
563 #include <unistd.h>
564 #include <linux/if.h>
565-#include <linux/if_arp.h>
566+//#include <linux/if_arp.h>
567 #include <linux/netdevice.h>
568 #include <linux/pci_regs.h>
569
570--
5712.34.1
572
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
deleted file mode 100644
index 75f6b9094a..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1From be02bd0876a061728661535a709d313e39fe1ac3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 8 Nov 2022 13:31:34 -0800
4Subject: [PATCH 18/22] test-bus-error: strerror() is assumed to be GNU
5 specific version mark it so
6
7Upstream-Status: Inappropriate [Upstream systemd only supports glibc]
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 src/libsystemd/sd-bus/test-bus-error.c | 2 ++
12 src/test/test-errno-util.c | 3 ++-
13 2 files changed, 4 insertions(+), 1 deletion(-)
14
15diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c
16index a55f3f9856..4123bf3da0 100644
17--- a/src/libsystemd/sd-bus/test-bus-error.c
18+++ b/src/libsystemd/sd-bus/test-bus-error.c
19@@ -99,7 +99,9 @@ TEST(error) {
20 assert_se(!sd_bus_error_is_set(&error));
21 assert_se(sd_bus_error_set_errno(&error, EBUSY) == -EBUSY);
22 assert_se(streq(error.name, "System.Error.EBUSY"));
23+#ifdef __GLIBC__
24 assert_se(streq(error.message, STRERROR(EBUSY)));
25+#endif
26 assert_se(sd_bus_error_has_name(&error, "System.Error.EBUSY"));
27 assert_se(sd_bus_error_get_errno(&error) == EBUSY);
28 assert_se(sd_bus_error_is_set(&error));
29diff --git a/src/test/test-errno-util.c b/src/test/test-errno-util.c
30index 376d532281..967cfd4d67 100644
31--- a/src/test/test-errno-util.c
32+++ b/src/test/test-errno-util.c
33@@ -4,7 +4,7 @@
34 #include "stdio-util.h"
35 #include "string-util.h"
36 #include "tests.h"
37-
38+#ifdef __GLIBC__
39 TEST(strerror_not_threadsafe) {
40 /* Just check that strerror really is not thread-safe. */
41 log_info("strerror(%d) → %s", 200, strerror(200));
42@@ -46,6 +46,7 @@ TEST(STRERROR_OR_ELSE) {
43 log_info("STRERROR_OR_ELSE(EPERM, \"EOF\") → %s", STRERROR_OR_EOF(EPERM));
44 log_info("STRERROR_OR_ELSE(-EPERM, \"EOF\") → %s", STRERROR_OR_EOF(-EPERM));
45 }
46+#endif /* __GLIBC__ */
47
48 TEST(PROTECT_ERRNO) {
49 errno = 12;
50--
512.34.1
52
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
deleted file mode 100644
index e038b73678..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From 46d80840bfe37e67d4f18c37a77751ea1fe63a07 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Jan 2023 23:39:46 -0800
4Subject: [PATCH 19/22] errno-util: Make STRERROR portable for musl
5
6Sadly, systemd has decided to use yet another GNU extention in a macro
7lets make this such that we can use XSI compliant strerror_r() for
8non-glibc hosts
9
10Upstream-Status: Inappropriate [musl specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/basic/errno-util.h | 12 ++++++++++--
15 1 file changed, 10 insertions(+), 2 deletions(-)
16
17diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h
18index 27804e6382..274c1c6ef1 100644
19--- a/src/basic/errno-util.h
20+++ b/src/basic/errno-util.h
21@@ -15,8 +15,16 @@
22 * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks
23 *
24 * Note that we use the GNU variant of strerror_r() here. */
25-#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN)
26-
27+static inline const char * STRERROR(int errnum);
28+
29+static inline const char * STRERROR(int errnum) {
30+#ifdef __GLIBC__
31+ return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN);
32+#else
33+ static __thread char buf[ERRNO_BUF_LEN];
34+ return strerror_r(abs(errnum), buf, ERRNO_BUF_LEN) ? "unknown error" : buf;
35+#endif
36+}
37 /* A helper to print an error message or message for functions that return 0 on EOF.
38 * Note that we can't use ({ … }) to define a temporary variable, so errnum is
39 * evaluated twice. */
40--
412.34.1
42
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
deleted file mode 100644
index b83fffe793..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 9eb4867b4e2dbdb2484ae854022aff97e2f0feb3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 2 Aug 2023 12:06:27 -0700
4Subject: [PATCH 20/22] sd-event: Make malloc_trim() conditional on glibc
5
6musl does not have this API
7
8Upstream-Status: Inappropriate [musl-specific]
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 src/libsystemd/sd-event/sd-event.c | 4 +++-
12 1 file changed, 3 insertions(+), 1 deletion(-)
13
14diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
15index 288798a0dc..6419a7f216 100644
16--- a/src/libsystemd/sd-event/sd-event.c
17+++ b/src/libsystemd/sd-event/sd-event.c
18@@ -1874,7 +1874,7 @@ _public_ int sd_event_add_exit(
19 }
20
21 _public_ int sd_event_trim_memory(void) {
22- int r;
23+ int r = 0;
24
25 /* A default implementation of a memory pressure callback. Simply releases our own allocation caches
26 * and glibc's. This is automatically used when people call sd_event_add_memory_pressure() with a
27@@ -1888,7 +1888,9 @@ _public_ int sd_event_trim_memory(void) {
28
29 usec_t before_timestamp = now(CLOCK_MONOTONIC);
30 hashmap_trim_pools();
31+#ifdef __GLIBC__
32 r = malloc_trim(0);
33+#endif
34 usec_t after_timestamp = now(CLOCK_MONOTONIC);
35
36 if (r > 0)
37--
382.34.1
39
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
deleted file mode 100644
index 7eff069bb7..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
+++ /dev/null
@@ -1,57 +0,0 @@
1From 502597b9ddd6b145541b23fadca0b1d3ca9f6367 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 2 Aug 2023 12:20:40 -0700
4Subject: [PATCH 21/22] shared: Do not use malloc_info on musl
5
6Upstream-Status: Inappropriate [musl-specific]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 src/shared/bus-util.c | 5 +++--
10 src/shared/common-signal.c | 4 ++--
11 2 files changed, 5 insertions(+), 4 deletions(-)
12
13diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
14index 74f148c8b4..2d862a123d 100644
15--- a/src/shared/bus-util.c
16+++ b/src/shared/bus-util.c
17@@ -611,15 +611,16 @@ static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdat
18 _cleanup_close_ int fd = -EBADF;
19 size_t dump_size;
20 FILE *f;
21- int r;
22+ int r = 0;
23
24 assert(message);
25
26 f = memstream_init(&m);
27 if (!f)
28 return -ENOMEM;
29-
30+#ifdef __GLIBC__
31 r = RET_NERRNO(malloc_info(/* options= */ 0, f));
32+#endif
33 if (r < 0)
34 return r;
35
36diff --git a/src/shared/common-signal.c b/src/shared/common-signal.c
37index 8e70e365dd..9e782caec9 100644
38--- a/src/shared/common-signal.c
39+++ b/src/shared/common-signal.c
40@@ -65,12 +65,12 @@ int sigrtmin18_handler(sd_event_source *s, const struct signalfd_siginfo *si, vo
41 log_oom();
42 break;
43 }
44-
45+#ifdef __GLIBC__
46 if (malloc_info(0, f) < 0) {
47 log_error_errno(errno, "Failed to invoke malloc_info(): %m");
48 break;
49 }
50-
51+#endif
52 (void) memstream_dump(LOG_INFO, &m);
53 break;
54 }
55--
562.34.1
57
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch
deleted file mode 100644
index 56755ac559..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 97d3ed7834bd86615ba4acdbef984c677b7e7791 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 2 Jan 2024 11:03:27 +0800
4Subject: [PATCH] avoid missing LOCK_EX declaration
5
6This only happens on MUSL. Include sys/file.h to avoid compilation
7error about missing LOCK_EX declaration.
8
9Upstream-Status: Inappropriate [musl specific]
10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12---
13 src/core/exec-invoke.c | 1 +
14 src/shared/dev-setup.h | 1 +
15 2 files changed, 2 insertions(+)
16
17--- a/src/core/exec-invoke.c
18+++ b/src/core/exec-invoke.c
19@@ -4,6 +4,7 @@
20 #include <sys/ioctl.h>
21 #include <sys/mount.h>
22 #include <sys/prctl.h>
23+#include <sys/file.h>
24
25 #if HAVE_PAM
26 #include <security/pam_appl.h>
27--- a/src/shared/dev-setup.h
28+++ b/src/shared/dev-setup.h
29@@ -2,6 +2,7 @@
30 #pragma once
31
32 #include <sys/types.h>
33+#include <sys/file.h>
34
35 int lock_dev_console(void);
36
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.6.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.6.bb
deleted file mode 100644
index 9c39d40d23..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.6.bb
+++ /dev/null
@@ -1,76 +0,0 @@
1SUMMARY = "libsystemd static library"
2DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
3
4SECTION = "libs"
5
6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
8
9inherit meson pkgconfig
10
11DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
12
13SRCREV = "5810c25792d4268282dd3892af1a253b690423c9"
14SRCBRANCH = "v255-stable"
15SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
16 file://static-libsystemd-pkgconfig.patch \
17 "
18
19# patches needed by musl
20SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
21
22SRC_URI_MUSL = "\
23 file://0001-missing_type.h-add-comparison_fn_t.patch \
24 file://0002-add-fallback-parse_printf_format-implementation.patch \
25 file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
26 file://0003-src-basic-missing.h-check-for-missing-strndupa.patch \
27 file://0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
28 file://0005-add-missing-FTW_-macros-for-musl.patch \
29 file://0006-Use-uintmax_t-for-handling-rlim_t.patch \
30 file://0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
31 file://0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
32 file://0008-implment-systemd-sysv-install-for-OE.patch \
33 file://0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
34 file://0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
35 file://0011-avoid-redefinition-of-prctl_mm_map-structure.patch \
36 file://0012-do-not-disable-buffer-in-writing-files.patch \
37 file://0013-Handle-__cpu_mask-usage.patch \
38 file://0014-Handle-missing-gshadow.patch \
39 file://0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
40 file://0016-pass-correct-parameters-to-getdents64.patch \
41 file://0017-Adjust-for-musl-headers.patch \
42 file://0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
43 file://0019-errno-util-Make-STRERROR-portable-for-musl.patch \
44 file://0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
45 file://0021-shared-Do-not-use-malloc_info-on-musl.patch \
46 file://0022-avoid-missing-LOCK_EX-declaration.patch \
47"
48
49PACKAGECONFIG ??= "gshadow idn"
50PACKAGECONFIG:remove:libc-musl = " gshadow idn"
51PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
52PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
53
54CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
55
56EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
57
58
59RDEPENDS:${PN}-dev = ""
60
61do_compile() {
62 ninja -v ${PARALLEL_MAKE} version.h
63 ninja -v ${PARALLEL_MAKE} libsystemd.a
64 ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
65}
66
67do_install () {
68 install -d ${D}${libdir}
69 install ${B}/libsystemd.a ${D}${libdir}
70
71 install -d ${D}${includedir}/systemd
72 install ${S}/src/systemd/*.h ${D}${includedir}/systemd
73
74 install -d ${D}${libdir}/pkgconfig
75 install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
76}
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_259.5.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_259.5.bb
new file mode 100644
index 0000000000..63a7bc7c27
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_259.5.bb
@@ -0,0 +1,45 @@
1SUMMARY = "libsystemd static library"
2DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
3
4SECTION = "libs"
5
6LICENSE = "LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=be0aaf4a380f73f7e00b420a007368f2"
8
9inherit meson pkgconfig
10
11DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
12
13SRCREV = "b3d8fc43e9cb531d958c17ef2cd93b374bc14e8a"
14SRCBRANCH = "v259-stable"
15SRC_URI = "git://github.com/systemd/systemd;protocol=https;branch=${SRCBRANCH};tag=v${PV} \
16 file://static-libsystemd-pkgconfig.patch \
17 "
18
19PACKAGECONFIG ??= "gshadow idn"
20PACKAGECONFIG:remove:libc-musl = " gshadow idn"
21PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
22PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
23
24CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
25
26EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
27
28
29RDEPENDS:${PN}-dev = ""
30
31do_compile() {
32 ninja -v ${PARALLEL_MAKE} libsystemd.a
33 ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
34}
35
36do_install () {
37 install -d ${D}${libdir}
38 install ${B}/libsystemd.a ${D}${libdir}
39
40 install -d ${D}${includedir}/systemd
41 install ${S}/src/systemd/*.h ${D}${includedir}/systemd
42
43 install -d ${D}${libdir}/pkgconfig
44 install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
45}
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
index 0e842a9c91..0118cc3f32 100644
--- a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -7,9 +7,9 @@ SRC_URI += " \
7 crate://crates.io/allocator-api2/0.2.21 \ 7 crate://crates.io/allocator-api2/0.2.21 \
8 crate://crates.io/android_system_properties/0.1.5 \ 8 crate://crates.io/android_system_properties/0.1.5 \
9 crate://crates.io/ansi-width/0.1.0 \ 9 crate://crates.io/ansi-width/0.1.0 \
10 crate://crates.io/anstream/0.6.21 \ 10 crate://crates.io/anstream/1.0.0 \
11 crate://crates.io/anstyle/1.0.13 \ 11 crate://crates.io/anstyle/1.0.13 \
12 crate://crates.io/anstyle-parse/0.2.7 \ 12 crate://crates.io/anstyle-parse/1.0.0 \
13 crate://crates.io/anstyle-query/1.1.5 \ 13 crate://crates.io/anstyle-query/1.1.5 \
14 crate://crates.io/anstyle-wincon/3.0.11 \ 14 crate://crates.io/anstyle-wincon/3.0.11 \
15 crate://crates.io/anyhow/1.0.101 \ 15 crate://crates.io/anyhow/1.0.101 \
@@ -22,43 +22,47 @@ SRC_URI += " \
22 crate://crates.io/binary-heap-plus/0.5.0 \ 22 crate://crates.io/binary-heap-plus/0.5.0 \
23 crate://crates.io/bindgen/0.72.1 \ 23 crate://crates.io/bindgen/0.72.1 \
24 crate://crates.io/bitflags/1.3.2 \ 24 crate://crates.io/bitflags/1.3.2 \
25 crate://crates.io/bitflags/2.10.0 \ 25 crate://crates.io/bitflags/2.11.0 \
26 crate://crates.io/bitvec/1.0.1 \ 26 crate://crates.io/bitvec/1.0.1 \
27 crate://crates.io/blake2b_simd/1.0.4 \ 27 crate://crates.io/blake2b_simd/1.0.4 \
28 crate://crates.io/blake3/1.8.3 \ 28 crate://crates.io/blake3/1.8.4 \
29 crate://crates.io/block-buffer/0.10.4 \ 29 crate://crates.io/block-buffer/0.10.4 \
30 crate://crates.io/block-buffer/0.12.0 \
30 crate://crates.io/block2/0.6.2 \ 31 crate://crates.io/block2/0.6.2 \
31 crate://crates.io/bstr/1.12.1 \ 32 crate://crates.io/bstr/1.12.1 \
32 crate://crates.io/bumpalo/3.19.1 \ 33 crate://crates.io/bumpalo/3.19.1 \
33 crate://crates.io/bytecount/0.6.9 \ 34 crate://crates.io/bytecount/0.6.9 \
34 crate://crates.io/byteorder/1.5.0 \ 35 crate://crates.io/byteorder/1.5.0 \
35 crate://crates.io/calendrical_calculations/0.2.3 \ 36 crate://crates.io/calendrical_calculations/0.2.4 \
36 crate://crates.io/cc/1.2.55 \ 37 crate://crates.io/cc/1.2.55 \
37 crate://crates.io/cexpr/0.6.0 \ 38 crate://crates.io/cexpr/0.6.0 \
38 crate://crates.io/cfg-if/1.0.4 \ 39 crate://crates.io/cfg-if/1.0.4 \
39 crate://crates.io/cfg_aliases/0.2.1 \ 40 crate://crates.io/cfg_aliases/0.2.1 \
41 crate://crates.io/chacha20/0.10.0 \
40 crate://crates.io/chrono/0.4.43 \ 42 crate://crates.io/chrono/0.4.43 \
41 crate://crates.io/clang-sys/1.8.1 \ 43 crate://crates.io/clang-sys/1.8.1 \
42 crate://crates.io/clap/4.5.60 \ 44 crate://crates.io/clap/4.6.0 \
43 crate://crates.io/clap_builder/4.5.60 \ 45 crate://crates.io/clap_builder/4.6.0 \
44 crate://crates.io/clap_complete/4.5.66 \ 46 crate://crates.io/clap_complete/4.6.0 \
45 crate://crates.io/clap_lex/1.0.0 \ 47 crate://crates.io/clap_lex/1.0.0 \
46 crate://crates.io/clap_mangen/0.2.31 \ 48 crate://crates.io/clap_mangen/0.3.0 \
47 crate://crates.io/codspeed/4.3.0 \ 49 crate://crates.io/codspeed/4.4.1 \
48 crate://crates.io/codspeed-divan-compat/4.3.0 \ 50 crate://crates.io/codspeed-divan-compat/4.4.1 \
49 crate://crates.io/codspeed-divan-compat-macros/4.3.0 \ 51 crate://crates.io/codspeed-divan-compat-macros/4.4.1 \
50 crate://crates.io/codspeed-divan-compat-walltime/4.3.0 \ 52 crate://crates.io/codspeed-divan-compat-walltime/4.4.1 \
51 crate://crates.io/colorchoice/1.0.4 \ 53 crate://crates.io/colorchoice/1.0.4 \
52 crate://crates.io/colored/2.2.0 \ 54 crate://crates.io/colored/2.2.0 \
53 crate://crates.io/compare/0.1.0 \ 55 crate://crates.io/compare/0.1.0 \
54 crate://crates.io/condtype/1.3.0 \ 56 crate://crates.io/condtype/1.3.0 \
55 crate://crates.io/console/0.16.2 \ 57 crate://crates.io/console/0.16.3 \
58 crate://crates.io/const-oid/0.10.2 \
56 crate://crates.io/const-random/0.1.18 \ 59 crate://crates.io/const-random/0.1.18 \
57 crate://crates.io/const-random-macro/0.1.16 \ 60 crate://crates.io/const-random-macro/0.1.16 \
58 crate://crates.io/constant_time_eq/0.4.2 \ 61 crate://crates.io/constant_time_eq/0.4.2 \
59 crate://crates.io/core-foundation-sys/0.8.7 \ 62 crate://crates.io/core-foundation-sys/0.8.7 \
60 crate://crates.io/core_maths/0.1.1 \ 63 crate://crates.io/core_maths/0.1.1 \
61 crate://crates.io/cpufeatures/0.2.17 \ 64 crate://crates.io/cpufeatures/0.2.17 \
65 crate://crates.io/cpufeatures/0.3.0 \
62 crate://crates.io/crc/3.3.0 \ 66 crate://crates.io/crc/3.3.0 \
63 crate://crates.io/crc-catalog/2.4.0 \ 67 crate://crates.io/crc-catalog/2.4.0 \
64 crate://crates.io/crc-fast/1.9.0 \ 68 crate://crates.io/crc-fast/1.9.0 \
@@ -70,22 +74,24 @@ SRC_URI += " \
70 crate://crates.io/crossterm_winapi/0.9.1 \ 74 crate://crates.io/crossterm_winapi/0.9.1 \
71 crate://crates.io/crunchy/0.2.4 \ 75 crate://crates.io/crunchy/0.2.4 \
72 crate://crates.io/crypto-common/0.1.7 \ 76 crate://crates.io/crypto-common/0.1.7 \
73 crate://crates.io/ctor/0.6.3 \ 77 crate://crates.io/crypto-common/0.2.1 \
78 crate://crates.io/ctor/0.8.0 \
74 crate://crates.io/ctor-proc-macro/0.0.7 \ 79 crate://crates.io/ctor-proc-macro/0.0.7 \
75 crate://crates.io/ctrlc/3.5.1 \ 80 crate://crates.io/ctrlc/3.5.2 \
76 crate://crates.io/data-encoding/2.10.0 \ 81 crate://crates.io/data-encoding/2.10.0 \
77 crate://crates.io/data-encoding-macro/0.1.19 \ 82 crate://crates.io/data-encoding-macro/0.1.19 \
78 crate://crates.io/data-encoding-macro-internal/0.1.17 \ 83 crate://crates.io/data-encoding-macro-internal/0.1.17 \
79 crate://crates.io/deranged/0.5.5 \ 84 crate://crates.io/deranged/0.5.5 \
80 crate://crates.io/diff/0.1.13 \ 85 crate://crates.io/diff/0.1.13 \
81 crate://crates.io/digest/0.10.7 \ 86 crate://crates.io/digest/0.10.7 \
87 crate://crates.io/digest/0.11.2 \
82 crate://crates.io/dispatch2/0.3.0 \ 88 crate://crates.io/dispatch2/0.3.0 \
83 crate://crates.io/displaydoc/0.2.5 \ 89 crate://crates.io/displaydoc/0.2.5 \
84 crate://crates.io/divan-macros/0.1.17 \ 90 crate://crates.io/divan-macros/0.1.17 \
85 crate://crates.io/dlv-list/0.5.2 \ 91 crate://crates.io/dlv-list/0.5.2 \
86 crate://crates.io/dns-lookup/3.0.1 \ 92 crate://crates.io/dns-lookup/3.0.1 \
87 crate://crates.io/document-features/0.2.12 \ 93 crate://crates.io/document-features/0.2.12 \
88 crate://crates.io/dtor/0.1.1 \ 94 crate://crates.io/dtor/0.3.0 \
89 crate://crates.io/dtor-proc-macro/0.0.6 \ 95 crate://crates.io/dtor-proc-macro/0.0.6 \
90 crate://crates.io/dunce/1.0.5 \ 96 crate://crates.io/dunce/1.0.5 \
91 crate://crates.io/either/1.15.0 \ 97 crate://crates.io/either/1.15.0 \
@@ -98,7 +104,7 @@ SRC_URI += " \
98 crate://crates.io/filedescriptor/0.8.3 \ 104 crate://crates.io/filedescriptor/0.8.3 \
99 crate://crates.io/filetime/0.2.27 \ 105 crate://crates.io/filetime/0.2.27 \
100 crate://crates.io/find-msvc-tools/0.1.9 \ 106 crate://crates.io/find-msvc-tools/0.1.9 \
101 crate://crates.io/fixed_decimal/0.7.1 \ 107 crate://crates.io/fixed_decimal/0.7.2 \
102 crate://crates.io/flate2/1.1.9 \ 108 crate://crates.io/flate2/1.1.9 \
103 crate://crates.io/fluent/0.17.0 \ 109 crate://crates.io/fluent/0.17.0 \
104 crate://crates.io/fluent-bundle/0.16.0 \ 110 crate://crates.io/fluent-bundle/0.16.0 \
@@ -118,39 +124,42 @@ SRC_URI += " \
118 crate://crates.io/gcd/2.3.0 \ 124 crate://crates.io/gcd/2.3.0 \
119 crate://crates.io/generic-array/0.14.7 \ 125 crate://crates.io/generic-array/0.14.7 \
120 crate://crates.io/getrandom/0.2.17 \ 126 crate://crates.io/getrandom/0.2.17 \
121 crate://crates.io/getrandom/0.3.4 \ 127 crate://crates.io/getrandom/0.4.2 \
122 crate://crates.io/glob/0.3.3 \ 128 crate://crates.io/glob/0.3.3 \
123 crate://crates.io/half/2.7.1 \ 129 crate://crates.io/half/2.7.1 \
124 crate://crates.io/hashbrown/0.14.5 \ 130 crate://crates.io/hashbrown/0.14.5 \
125 crate://crates.io/hashbrown/0.15.5 \ 131 crate://crates.io/hashbrown/0.15.5 \
126 crate://crates.io/hashbrown/0.16.1 \ 132 crate://crates.io/hashbrown/0.16.1 \
133 crate://crates.io/heck/0.5.0 \
127 crate://crates.io/hex/0.4.3 \ 134 crate://crates.io/hex/0.4.3 \
128 crate://crates.io/hex-literal/1.1.0 \ 135 crate://crates.io/hex-literal/1.1.0 \
129 crate://crates.io/hostname/0.4.2 \ 136 crate://crates.io/hostname/0.4.2 \
137 crate://crates.io/hybrid-array/0.4.8 \
130 crate://crates.io/iana-time-zone/0.1.65 \ 138 crate://crates.io/iana-time-zone/0.1.65 \
131 crate://crates.io/iana-time-zone-haiku/0.1.2 \ 139 crate://crates.io/iana-time-zone-haiku/0.1.2 \
132 crate://crates.io/icu_calendar/2.1.1 \ 140 crate://crates.io/icu_calendar/2.2.1 \
133 crate://crates.io/icu_calendar_data/2.1.1 \ 141 crate://crates.io/icu_calendar_data/2.2.0 \
134 crate://crates.io/icu_collator/2.1.1 \ 142 crate://crates.io/icu_collator/2.2.0 \
135 crate://crates.io/icu_collator_data/2.1.1 \ 143 crate://crates.io/icu_collator_data/2.2.0 \
136 crate://crates.io/icu_collections/2.1.1 \ 144 crate://crates.io/icu_collections/2.2.0 \
137 crate://crates.io/icu_datetime/2.1.1 \ 145 crate://crates.io/icu_datetime/2.2.0 \
138 crate://crates.io/icu_datetime_data/2.1.2 \ 146 crate://crates.io/icu_datetime_data/2.2.0 \
139 crate://crates.io/icu_decimal/2.1.1 \ 147 crate://crates.io/icu_decimal/2.2.0 \
140 crate://crates.io/icu_decimal_data/2.1.1 \ 148 crate://crates.io/icu_decimal_data/2.2.0 \
141 crate://crates.io/icu_locale/2.1.1 \ 149 crate://crates.io/icu_locale/2.2.0 \
142 crate://crates.io/icu_locale_core/2.1.1 \ 150 crate://crates.io/icu_locale_core/2.2.0 \
143 crate://crates.io/icu_locale_data/2.1.2 \ 151 crate://crates.io/icu_locale_data/2.2.0 \
144 crate://crates.io/icu_normalizer/2.1.1 \ 152 crate://crates.io/icu_normalizer/2.2.0 \
145 crate://crates.io/icu_normalizer_data/2.1.1 \ 153 crate://crates.io/icu_normalizer_data/2.2.0 \
146 crate://crates.io/icu_pattern/0.4.1 \ 154 crate://crates.io/icu_pattern/0.4.2 \
147 crate://crates.io/icu_plurals/2.1.1 \ 155 crate://crates.io/icu_plurals/2.2.0 \
148 crate://crates.io/icu_plurals_data/2.1.1 \ 156 crate://crates.io/icu_plurals_data/2.2.0 \
149 crate://crates.io/icu_properties/2.1.2 \ 157 crate://crates.io/icu_properties/2.2.0 \
150 crate://crates.io/icu_properties_data/2.1.2 \ 158 crate://crates.io/icu_properties_data/2.2.0 \
151 crate://crates.io/icu_provider/2.1.1 \ 159 crate://crates.io/icu_provider/2.2.0 \
152 crate://crates.io/icu_time/2.1.1 \ 160 crate://crates.io/icu_time/2.2.0 \
153 crate://crates.io/icu_time_data/2.1.1 \ 161 crate://crates.io/icu_time_data/2.2.0 \
162 crate://crates.io/id-arena/2.3.0 \
154 crate://crates.io/indexmap/2.13.0 \ 163 crate://crates.io/indexmap/2.13.0 \
155 crate://crates.io/indicatif/0.18.4 \ 164 crate://crates.io/indicatif/0.18.4 \
156 crate://crates.io/inotify/0.11.0 \ 165 crate://crates.io/inotify/0.11.0 \
@@ -160,8 +169,7 @@ SRC_URI += " \
160 crate://crates.io/is_terminal_polyfill/1.70.2 \ 169 crate://crates.io/is_terminal_polyfill/1.70.2 \
161 crate://crates.io/itertools/0.13.0 \ 170 crate://crates.io/itertools/0.13.0 \
162 crate://crates.io/itertools/0.14.0 \ 171 crate://crates.io/itertools/0.14.0 \
163 crate://crates.io/itoa/1.0.17 \ 172 crate://crates.io/itoa/1.0.18 \
164 crate://crates.io/ixdtf/0.6.4 \
165 crate://crates.io/jiff/0.2.23 \ 173 crate://crates.io/jiff/0.2.23 \
166 crate://crates.io/jiff-icu/0.2.2 \ 174 crate://crates.io/jiff-icu/0.2.2 \
167 crate://crates.io/jiff-static/0.2.23 \ 175 crate://crates.io/jiff-static/0.2.23 \
@@ -172,10 +180,11 @@ SRC_URI += " \
172 crate://crates.io/kqueue/1.1.1 \ 180 crate://crates.io/kqueue/1.1.1 \
173 crate://crates.io/kqueue-sys/1.0.4 \ 181 crate://crates.io/kqueue-sys/1.0.4 \
174 crate://crates.io/lazy_static/1.5.0 \ 182 crate://crates.io/lazy_static/1.5.0 \
183 crate://crates.io/leb128fmt/0.1.0 \
175 crate://crates.io/libc/0.2.182 \ 184 crate://crates.io/libc/0.2.182 \
176 crate://crates.io/libloading/0.8.9 \ 185 crate://crates.io/libloading/0.8.9 \
177 crate://crates.io/libm/0.2.16 \ 186 crate://crates.io/libm/0.2.16 \
178 crate://crates.io/libredox/0.1.12 \ 187 crate://crates.io/libredox/0.1.15 \
179 crate://crates.io/linux-raw-sys/0.12.1 \ 188 crate://crates.io/linux-raw-sys/0.12.1 \
180 crate://crates.io/litemap/0.8.1 \ 189 crate://crates.io/litemap/0.8.1 \
181 crate://crates.io/litrs/1.0.0 \ 190 crate://crates.io/litrs/1.0.0 \
@@ -190,7 +199,7 @@ SRC_URI += " \
190 crate://crates.io/minimal-lexical/0.2.1 \ 199 crate://crates.io/minimal-lexical/0.2.1 \
191 crate://crates.io/miniz_oxide/0.8.9 \ 200 crate://crates.io/miniz_oxide/0.8.9 \
192 crate://crates.io/mio/1.1.1 \ 201 crate://crates.io/mio/1.1.1 \
193 crate://crates.io/nix/0.30.1 \ 202 crate://crates.io/nix/0.31.2 \
194 crate://crates.io/nom/7.1.3 \ 203 crate://crates.io/nom/7.1.3 \
195 crate://crates.io/nom/8.0.0 \ 204 crate://crates.io/nom/8.0.0 \
196 crate://crates.io/notify/8.2.0 \ 205 crate://crates.io/notify/8.2.0 \
@@ -221,7 +230,8 @@ SRC_URI += " \
221 crate://crates.io/phf_shared/0.13.1 \ 230 crate://crates.io/phf_shared/0.13.1 \
222 crate://crates.io/pin-project-lite/0.2.16 \ 231 crate://crates.io/pin-project-lite/0.2.16 \
223 crate://crates.io/pkg-config/0.3.32 \ 232 crate://crates.io/pkg-config/0.3.32 \
224 crate://crates.io/platform-info/2.0.5 \ 233 crate://crates.io/plain/0.2.3 \
234 crate://crates.io/platform-info/2.1.0 \
225 crate://crates.io/portable-atomic/1.13.1 \ 235 crate://crates.io/portable-atomic/1.13.1 \
226 crate://crates.io/portable-atomic-util/0.2.5 \ 236 crate://crates.io/portable-atomic-util/0.2.5 \
227 crate://crates.io/potential_utf/0.1.4 \ 237 crate://crates.io/potential_utf/0.1.4 \
@@ -234,14 +244,14 @@ SRC_URI += " \
234 crate://crates.io/procfs/0.18.0 \ 244 crate://crates.io/procfs/0.18.0 \
235 crate://crates.io/procfs-core/0.18.0 \ 245 crate://crates.io/procfs-core/0.18.0 \
236 crate://crates.io/quote/1.0.45 \ 246 crate://crates.io/quote/1.0.45 \
237 crate://crates.io/r-efi/5.3.0 \ 247 crate://crates.io/r-efi/6.0.0 \
238 crate://crates.io/radium/0.7.0 \ 248 crate://crates.io/radium/0.7.0 \
239 crate://crates.io/rand/0.8.5 \ 249 crate://crates.io/rand/0.8.5 \
240 crate://crates.io/rand/0.9.2 \ 250 crate://crates.io/rand/0.10.0 \
241 crate://crates.io/rand_chacha/0.3.1 \ 251 crate://crates.io/rand_chacha/0.3.1 \
242 crate://crates.io/rand_chacha/0.9.0 \ 252 crate://crates.io/rand_chacha/0.10.0 \
243 crate://crates.io/rand_core/0.6.4 \ 253 crate://crates.io/rand_core/0.6.4 \
244 crate://crates.io/rand_core/0.9.5 \ 254 crate://crates.io/rand_core/0.10.0 \
245 crate://crates.io/rayon/1.11.0 \ 255 crate://crates.io/rayon/1.11.0 \
246 crate://crates.io/rayon-core/1.13.0 \ 256 crate://crates.io/rayon-core/1.13.0 \
247 crate://crates.io/redox_syscall/0.5.18 \ 257 crate://crates.io/redox_syscall/0.5.18 \
@@ -252,11 +262,12 @@ SRC_URI += " \
252 crate://crates.io/regex-syntax/0.8.9 \ 262 crate://crates.io/regex-syntax/0.8.9 \
253 crate://crates.io/relative-path/1.9.3 \ 263 crate://crates.io/relative-path/1.9.3 \
254 crate://crates.io/rlimit/0.11.0 \ 264 crate://crates.io/rlimit/0.11.0 \
255 crate://crates.io/roff/0.2.2 \ 265 crate://crates.io/roff/1.1.0 \
256 crate://crates.io/rstest/0.26.1 \ 266 crate://crates.io/rstest/0.26.1 \
257 crate://crates.io/rstest_macros/0.26.1 \ 267 crate://crates.io/rstest_macros/0.26.1 \
268 crate://crates.io/rstest_reuse/0.7.0 \
258 crate://crates.io/rust-ini/0.21.3 \ 269 crate://crates.io/rust-ini/0.21.3 \
259 crate://crates.io/rustc-hash/2.1.1 \ 270 crate://crates.io/rustc-hash/2.1.2 \
260 crate://crates.io/rustc_version/0.4.1 \ 271 crate://crates.io/rustc_version/0.4.1 \
261 crate://crates.io/rustix/1.1.4 \ 272 crate://crates.io/rustix/1.1.4 \
262 crate://crates.io/rustversion/1.0.22 \ 273 crate://crates.io/rustversion/1.0.22 \
@@ -280,7 +291,7 @@ SRC_URI += " \
280 crate://crates.io/simd-adler32/0.3.8 \ 291 crate://crates.io/simd-adler32/0.3.8 \
281 crate://crates.io/siphasher/1.0.2 \ 292 crate://crates.io/siphasher/1.0.2 \
282 crate://crates.io/slab/0.4.12 \ 293 crate://crates.io/slab/0.4.12 \
283 crate://crates.io/sm3/0.4.2 \ 294 crate://crates.io/sm3/0.5.0 \
284 crate://crates.io/smallvec/1.15.1 \ 295 crate://crates.io/smallvec/1.15.1 \
285 crate://crates.io/smawk/0.3.2 \ 296 crate://crates.io/smawk/0.3.2 \
286 crate://crates.io/socket2/0.6.2 \ 297 crate://crates.io/socket2/0.6.2 \
@@ -292,8 +303,8 @@ SRC_URI += " \
292 crate://crates.io/syn/2.0.114 \ 303 crate://crates.io/syn/2.0.114 \
293 crate://crates.io/synstructure/0.13.2 \ 304 crate://crates.io/synstructure/0.13.2 \
294 crate://crates.io/tap/1.0.1 \ 305 crate://crates.io/tap/1.0.1 \
295 crate://crates.io/tempfile/3.26.0 \ 306 crate://crates.io/tempfile/3.27.0 \
296 crate://crates.io/terminal_size/0.4.3 \ 307 crate://crates.io/terminal_size/0.4.4 \
297 crate://crates.io/textwrap/0.16.2 \ 308 crate://crates.io/textwrap/0.16.2 \
298 crate://crates.io/thiserror/1.0.69 \ 309 crate://crates.io/thiserror/1.0.69 \
299 crate://crates.io/thiserror/2.0.18 \ 310 crate://crates.io/thiserror/2.0.18 \
@@ -303,7 +314,7 @@ SRC_URI += " \
303 crate://crates.io/time-core/0.1.8 \ 314 crate://crates.io/time-core/0.1.8 \
304 crate://crates.io/time-macros/0.2.27 \ 315 crate://crates.io/time-macros/0.2.27 \
305 crate://crates.io/tiny-keccak/2.0.2 \ 316 crate://crates.io/tiny-keccak/2.0.2 \
306 crate://crates.io/tinystr/0.8.2 \ 317 crate://crates.io/tinystr/0.8.3 \
307 crate://crates.io/toml_datetime/0.7.5+spec-1.1.0 \ 318 crate://crates.io/toml_datetime/0.7.5+spec-1.1.0 \
308 crate://crates.io/toml_edit/0.23.10+spec-1.0.0 \ 319 crate://crates.io/toml_edit/0.23.10+spec-1.0.0 \
309 crate://crates.io/toml_parser/1.0.6+spec-1.1.0 \ 320 crate://crates.io/toml_parser/1.0.6+spec-1.1.0 \
@@ -316,6 +327,7 @@ SRC_URI += " \
316 crate://crates.io/unicode-linebreak/0.1.5 \ 327 crate://crates.io/unicode-linebreak/0.1.5 \
317 crate://crates.io/unicode-width/0.1.14 \ 328 crate://crates.io/unicode-width/0.1.14 \
318 crate://crates.io/unicode-width/0.2.2 \ 329 crate://crates.io/unicode-width/0.2.2 \
330 crate://crates.io/unicode-xid/0.2.6 \
319 crate://crates.io/unindent/0.2.4 \ 331 crate://crates.io/unindent/0.2.4 \
320 crate://crates.io/unit-prefix/0.5.2 \ 332 crate://crates.io/unit-prefix/0.5.2 \
321 crate://crates.io/utf16_iter/1.0.5 \ 333 crate://crates.io/utf16_iter/1.0.5 \
@@ -324,16 +336,20 @@ SRC_URI += " \
324 crate://crates.io/utmp-classic/0.1.6 \ 336 crate://crates.io/utmp-classic/0.1.6 \
325 crate://crates.io/utmp-classic-raw/0.1.3 \ 337 crate://crates.io/utmp-classic-raw/0.1.3 \
326 crate://crates.io/uuid/1.20.0 \ 338 crate://crates.io/uuid/1.20.0 \
327 crate://crates.io/uutils_term_grid/0.7.0 \ 339 crate://crates.io/uutils_term_grid/0.8.0 \
328 crate://crates.io/version_check/0.9.5 \ 340 crate://crates.io/version_check/0.9.5 \
329 crate://crates.io/vsimd/0.8.0 \ 341 crate://crates.io/vsimd/0.8.0 \
330 crate://crates.io/walkdir/2.5.0 \ 342 crate://crates.io/walkdir/2.5.0 \
331 crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \ 343 crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \
332 crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \ 344 crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \
345 crate://crates.io/wasip3/0.4.0+wasi-0.3.0-rc-2026-01-06 \
333 crate://crates.io/wasm-bindgen/0.2.108 \ 346 crate://crates.io/wasm-bindgen/0.2.108 \
334 crate://crates.io/wasm-bindgen-macro/0.2.108 \ 347 crate://crates.io/wasm-bindgen-macro/0.2.108 \
335 crate://crates.io/wasm-bindgen-macro-support/0.2.108 \ 348 crate://crates.io/wasm-bindgen-macro-support/0.2.108 \
336 crate://crates.io/wasm-bindgen-shared/0.2.108 \ 349 crate://crates.io/wasm-bindgen-shared/0.2.108 \
350 crate://crates.io/wasm-encoder/0.244.0 \
351 crate://crates.io/wasm-metadata/0.244.0 \
352 crate://crates.io/wasmparser/0.244.0 \
337 crate://crates.io/web-time/1.1.0 \ 353 crate://crates.io/web-time/1.1.0 \
338 crate://crates.io/wild/2.2.1 \ 354 crate://crates.io/wild/2.2.1 \
339 crate://crates.io/winapi/0.3.9 \ 355 crate://crates.io/winapi/0.3.9 \
@@ -369,13 +385,18 @@ SRC_URI += " \
369 crate://crates.io/windows_x86_64_msvc/0.53.1 \ 385 crate://crates.io/windows_x86_64_msvc/0.53.1 \
370 crate://crates.io/winnow/0.7.14 \ 386 crate://crates.io/winnow/0.7.14 \
371 crate://crates.io/wit-bindgen/0.51.0 \ 387 crate://crates.io/wit-bindgen/0.51.0 \
388 crate://crates.io/wit-bindgen-core/0.51.0 \
389 crate://crates.io/wit-bindgen-rust/0.51.0 \
390 crate://crates.io/wit-bindgen-rust-macro/0.51.0 \
391 crate://crates.io/wit-component/0.244.0 \
392 crate://crates.io/wit-parser/0.244.0 \
372 crate://crates.io/write16/1.0.0 \ 393 crate://crates.io/write16/1.0.0 \
373 crate://crates.io/writeable/0.6.2 \ 394 crate://crates.io/writeable/0.6.2 \
374 crate://crates.io/wyz/0.5.1 \ 395 crate://crates.io/wyz/0.5.1 \
375 crate://crates.io/xattr/1.6.1 \ 396 crate://crates.io/xattr/1.6.1 \
376 crate://crates.io/yansi/1.0.1 \ 397 crate://crates.io/yansi/1.0.1 \
377 crate://crates.io/yoke/0.8.1 \ 398 crate://crates.io/yoke/0.8.2 \
378 crate://crates.io/yoke-derive/0.8.1 \ 399 crate://crates.io/yoke-derive/0.8.2 \
379 crate://crates.io/z85/3.0.7 \ 400 crate://crates.io/z85/3.0.7 \
380 crate://crates.io/zerocopy/0.7.35 \ 401 crate://crates.io/zerocopy/0.7.35 \
381 crate://crates.io/zerocopy/0.8.39 \ 402 crate://crates.io/zerocopy/0.8.39 \
@@ -383,10 +404,10 @@ SRC_URI += " \
383 crate://crates.io/zerocopy-derive/0.8.39 \ 404 crate://crates.io/zerocopy-derive/0.8.39 \
384 crate://crates.io/zerofrom/0.1.6 \ 405 crate://crates.io/zerofrom/0.1.6 \
385 crate://crates.io/zerofrom-derive/0.1.6 \ 406 crate://crates.io/zerofrom-derive/0.1.6 \
386 crate://crates.io/zerotrie/0.2.3 \ 407 crate://crates.io/zerotrie/0.2.4 \
387 crate://crates.io/zerovec/0.11.5 \ 408 crate://crates.io/zerovec/0.11.6 \
388 crate://crates.io/zerovec-derive/0.11.2 \ 409 crate://crates.io/zerovec-derive/0.11.3 \
389 crate://crates.io/zip/8.2.0 \ 410 crate://crates.io/zip/8.5.0 \
390 crate://crates.io/zlib-rs/0.6.0 \ 411 crate://crates.io/zlib-rs/0.6.0 \
391 crate://crates.io/zmij/1.0.19 \ 412 crate://crates.io/zmij/1.0.19 \
392 crate://crates.io/zopfli/0.8.3 \ 413 crate://crates.io/zopfli/0.8.3 \
@@ -397,9 +418,9 @@ SRC_URI[aho-corasick-1.1.4.sha256sum] = "ddd31a130427c27518df266943a5308ed92d4b2
397SRC_URI[allocator-api2-0.2.21.sha256sum] = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 418SRC_URI[allocator-api2-0.2.21.sha256sum] = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
398SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 419SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
399SRC_URI[ansi-width-0.1.0.sha256sum] = "219e3ce6f2611d83b51ec2098a12702112c29e57203a6b0a0929b2cddb486608" 420SRC_URI[ansi-width-0.1.0.sha256sum] = "219e3ce6f2611d83b51ec2098a12702112c29e57203a6b0a0929b2cddb486608"
400SRC_URI[anstream-0.6.21.sha256sum] = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" 421SRC_URI[anstream-1.0.0.sha256sum] = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
401SRC_URI[anstyle-1.0.13.sha256sum] = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 422SRC_URI[anstyle-1.0.13.sha256sum] = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
402SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" 423SRC_URI[anstyle-parse-1.0.0.sha256sum] = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
403SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 424SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
404SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 425SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
405SRC_URI[anyhow-1.0.101.sha256sum] = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" 426SRC_URI[anyhow-1.0.101.sha256sum] = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea"
@@ -412,43 +433,47 @@ SRC_URI[bigdecimal-0.4.10.sha256sum] = "4d6867f1565b3aad85681f1015055b087fcfd840
412SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296" 433SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296"
413SRC_URI[bindgen-0.72.1.sha256sum] = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" 434SRC_URI[bindgen-0.72.1.sha256sum] = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
414SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 435SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
415SRC_URI[bitflags-2.10.0.sha256sum] = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 436SRC_URI[bitflags-2.11.0.sha256sum] = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
416SRC_URI[bitvec-1.0.1.sha256sum] = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 437SRC_URI[bitvec-1.0.1.sha256sum] = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
417SRC_URI[blake2b_simd-1.0.4.sha256sum] = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" 438SRC_URI[blake2b_simd-1.0.4.sha256sum] = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3"
418SRC_URI[blake3-1.8.3.sha256sum] = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" 439SRC_URI[blake3-1.8.4.sha256sum] = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e"
419SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 440SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
441SRC_URI[block-buffer-0.12.0.sha256sum] = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be"
420SRC_URI[block2-0.6.2.sha256sum] = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 442SRC_URI[block2-0.6.2.sha256sum] = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
421SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" 443SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
422SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 444SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
423SRC_URI[bytecount-0.6.9.sha256sum] = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" 445SRC_URI[bytecount-0.6.9.sha256sum] = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
424SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 446SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
425SRC_URI[calendrical_calculations-0.2.3.sha256sum] = "3a0b39595c6ee54a8d0900204ba4c401d0ab4eb45adaf07178e8d017541529e7" 447SRC_URI[calendrical_calculations-0.2.4.sha256sum] = "5abbd6eeda6885048d357edc66748eea6e0268e3dd11f326fff5bd248d779c26"
426SRC_URI[cc-1.2.55.sha256sum] = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" 448SRC_URI[cc-1.2.55.sha256sum] = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
427SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 449SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
428SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 450SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
429SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 451SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
452SRC_URI[chacha20-0.10.0.sha256sum] = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
430SRC_URI[chrono-0.4.43.sha256sum] = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" 453SRC_URI[chrono-0.4.43.sha256sum] = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
431SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 454SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
432SRC_URI[clap-4.5.60.sha256sum] = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" 455SRC_URI[clap-4.6.0.sha256sum] = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351"
433SRC_URI[clap_builder-4.5.60.sha256sum] = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" 456SRC_URI[clap_builder-4.6.0.sha256sum] = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
434SRC_URI[clap_complete-4.5.66.sha256sum] = "c757a3b7e39161a4e56f9365141ada2a6c915a8622c408ab6bb4b5d047371031" 457SRC_URI[clap_complete-4.6.0.sha256sum] = "19c9f1dde76b736e3681f28cec9d5a61299cbaae0fce80a68e43724ad56031eb"
435SRC_URI[clap_lex-1.0.0.sha256sum] = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" 458SRC_URI[clap_lex-1.0.0.sha256sum] = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831"
436SRC_URI[clap_mangen-0.2.31.sha256sum] = "439ea63a92086df93893164221ad4f24142086d535b3a0957b9b9bea2dc86301" 459SRC_URI[clap_mangen-0.3.0.sha256sum] = "d82842b45bf9f6a3be090dd860095ac30728042c08e0d6261ca7259b5d850f07"
437SRC_URI[codspeed-4.3.0.sha256sum] = "38c2eb3388ebe26b5a0ab6bf4969d9c4840143d7f6df07caa3cc851b0606cef6" 460SRC_URI[codspeed-4.4.1.sha256sum] = "b684e94583e85a5ca7e1a6454a89d76a5121240f2fb67eb564129d9bafdb9db0"
438SRC_URI[codspeed-divan-compat-4.3.0.sha256sum] = "b2de65b7489a59709724d489070c6d05b7744039e4bf751d0a2006b90bb5593d" 461SRC_URI[codspeed-divan-compat-4.4.1.sha256sum] = "89e4bf8c7793c170fd0fcf3be97b9032b2ae39c2b9e8818aba3cc10ca0f0c6c0"
439SRC_URI[codspeed-divan-compat-macros-4.3.0.sha256sum] = "56ca01ce4fd22b8dcc6c770dcd6b74343642e842482b94e8920d14e10c57638d" 462SRC_URI[codspeed-divan-compat-macros-4.4.1.sha256sum] = "78aae02f2a278588e16e8ca62ea1915b8ab30f8230a09926671bba19ede801a4"
440SRC_URI[codspeed-divan-compat-walltime-4.3.0.sha256sum] = "720ab9d0714718afe5f5832be6e5f5eb5ce97836e24ca7bf7042eea4308b9fb8" 463SRC_URI[codspeed-divan-compat-walltime-4.4.1.sha256sum] = "59ffd32c0c59ab8b674b15be65ba7c59aebac047036cfa7fa1e11bc2c178b81f"
441SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" 464SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
442SRC_URI[colored-2.2.0.sha256sum] = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" 465SRC_URI[colored-2.2.0.sha256sum] = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
443SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3" 466SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3"
444SRC_URI[condtype-1.3.0.sha256sum] = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af" 467SRC_URI[condtype-1.3.0.sha256sum] = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af"
445SRC_URI[console-0.16.2.sha256sum] = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" 468SRC_URI[console-0.16.3.sha256sum] = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87"
469SRC_URI[const-oid-0.10.2.sha256sum] = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
446SRC_URI[const-random-0.1.18.sha256sum] = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 470SRC_URI[const-random-0.1.18.sha256sum] = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
447SRC_URI[const-random-macro-0.1.16.sha256sum] = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 471SRC_URI[const-random-macro-0.1.16.sha256sum] = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
448SRC_URI[constant_time_eq-0.4.2.sha256sum] = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" 472SRC_URI[constant_time_eq-0.4.2.sha256sum] = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
449SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 473SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
450SRC_URI[core_maths-0.1.1.sha256sum] = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" 474SRC_URI[core_maths-0.1.1.sha256sum] = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
451SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 475SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
476SRC_URI[cpufeatures-0.3.0.sha256sum] = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
452SRC_URI[crc-3.3.0.sha256sum] = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" 477SRC_URI[crc-3.3.0.sha256sum] = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675"
453SRC_URI[crc-catalog-2.4.0.sha256sum] = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 478SRC_URI[crc-catalog-2.4.0.sha256sum] = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
454SRC_URI[crc-fast-1.9.0.sha256sum] = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d" 479SRC_URI[crc-fast-1.9.0.sha256sum] = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d"
@@ -460,22 +485,24 @@ SRC_URI[crossterm-0.29.0.sha256sum] = "d8b9f2e4c67f833b660cdb0a3523065869fb35570
460SRC_URI[crossterm_winapi-0.9.1.sha256sum] = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 485SRC_URI[crossterm_winapi-0.9.1.sha256sum] = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
461SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 486SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
462SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 487SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
463SRC_URI[ctor-0.6.3.sha256sum] = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" 488SRC_URI[crypto-common-0.2.1.sha256sum] = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710"
489SRC_URI[ctor-0.8.0.sha256sum] = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98"
464SRC_URI[ctor-proc-macro-0.0.7.sha256sum] = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" 490SRC_URI[ctor-proc-macro-0.0.7.sha256sum] = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1"
465SRC_URI[ctrlc-3.5.1.sha256sum] = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" 491SRC_URI[ctrlc-3.5.2.sha256sum] = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162"
466SRC_URI[data-encoding-2.10.0.sha256sum] = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" 492SRC_URI[data-encoding-2.10.0.sha256sum] = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea"
467SRC_URI[data-encoding-macro-0.1.19.sha256sum] = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" 493SRC_URI[data-encoding-macro-0.1.19.sha256sum] = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb"
468SRC_URI[data-encoding-macro-internal-0.1.17.sha256sum] = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" 494SRC_URI[data-encoding-macro-internal-0.1.17.sha256sum] = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de"
469SRC_URI[deranged-0.5.5.sha256sum] = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 495SRC_URI[deranged-0.5.5.sha256sum] = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
470SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 496SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
471SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 497SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
498SRC_URI[digest-0.11.2.sha256sum] = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c"
472SRC_URI[dispatch2-0.3.0.sha256sum] = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 499SRC_URI[dispatch2-0.3.0.sha256sum] = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
473SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 500SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
474SRC_URI[divan-macros-0.1.17.sha256sum] = "8dc51d98e636f5e3b0759a39257458b22619cac7e96d932da6eeb052891bb67c" 501SRC_URI[divan-macros-0.1.17.sha256sum] = "8dc51d98e636f5e3b0759a39257458b22619cac7e96d932da6eeb052891bb67c"
475SRC_URI[dlv-list-0.5.2.sha256sum] = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" 502SRC_URI[dlv-list-0.5.2.sha256sum] = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
476SRC_URI[dns-lookup-3.0.1.sha256sum] = "6e39034cee21a2f5bbb66ba0e3689819c4bb5d00382a282006e802a7ffa6c41d" 503SRC_URI[dns-lookup-3.0.1.sha256sum] = "6e39034cee21a2f5bbb66ba0e3689819c4bb5d00382a282006e802a7ffa6c41d"
477SRC_URI[document-features-0.2.12.sha256sum] = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" 504SRC_URI[document-features-0.2.12.sha256sum] = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
478SRC_URI[dtor-0.1.1.sha256sum] = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" 505SRC_URI[dtor-0.3.0.sha256sum] = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4"
479SRC_URI[dtor-proc-macro-0.0.6.sha256sum] = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" 506SRC_URI[dtor-proc-macro-0.0.6.sha256sum] = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5"
480SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 507SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
481SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 508SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
@@ -488,7 +515,7 @@ SRC_URI[file_diff-1.0.0.sha256sum] = "31a7a908b8f32538a2143e59a6e4e2508988832d5d
488SRC_URI[filedescriptor-0.8.3.sha256sum] = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" 515SRC_URI[filedescriptor-0.8.3.sha256sum] = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"
489SRC_URI[filetime-0.2.27.sha256sum] = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" 516SRC_URI[filetime-0.2.27.sha256sum] = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
490SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 517SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
491SRC_URI[fixed_decimal-0.7.1.sha256sum] = "35eabf480f94d69182677e37571d3be065822acfafd12f2f085db44fbbcc8e57" 518SRC_URI[fixed_decimal-0.7.2.sha256sum] = "79c3c892f121fff406e5dd6b28c1b30096b95111c30701a899d4f2b18da6d1bd"
492SRC_URI[flate2-1.1.9.sha256sum] = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 519SRC_URI[flate2-1.1.9.sha256sum] = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
493SRC_URI[fluent-0.17.0.sha256sum] = "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477" 520SRC_URI[fluent-0.17.0.sha256sum] = "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477"
494SRC_URI[fluent-bundle-0.16.0.sha256sum] = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4" 521SRC_URI[fluent-bundle-0.16.0.sha256sum] = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4"
@@ -508,39 +535,42 @@ SRC_URI[futures-util-0.3.32.sha256sum] = "389ca41296e6190b48053de0321d02a77f32f8
508SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" 535SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
509SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 536SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
510SRC_URI[getrandom-0.2.17.sha256sum] = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 537SRC_URI[getrandom-0.2.17.sha256sum] = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
511SRC_URI[getrandom-0.3.4.sha256sum] = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 538SRC_URI[getrandom-0.4.2.sha256sum] = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
512SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 539SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
513SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 540SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
514SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 541SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
515SRC_URI[hashbrown-0.15.5.sha256sum] = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 542SRC_URI[hashbrown-0.15.5.sha256sum] = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
516SRC_URI[hashbrown-0.16.1.sha256sum] = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 543SRC_URI[hashbrown-0.16.1.sha256sum] = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
544SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
517SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 545SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
518SRC_URI[hex-literal-1.1.0.sha256sum] = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" 546SRC_URI[hex-literal-1.1.0.sha256sum] = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1"
519SRC_URI[hostname-0.4.2.sha256sum] = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" 547SRC_URI[hostname-0.4.2.sha256sum] = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd"
548SRC_URI[hybrid-array-0.4.8.sha256sum] = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1"
520SRC_URI[iana-time-zone-0.1.65.sha256sum] = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 549SRC_URI[iana-time-zone-0.1.65.sha256sum] = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
521SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 550SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
522SRC_URI[icu_calendar-2.1.1.sha256sum] = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e" 551SRC_URI[icu_calendar-2.2.1.sha256sum] = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45"
523SRC_URI[icu_calendar_data-2.1.1.sha256sum] = "527f04223b17edfe0bd43baf14a0cb1b017830db65f3950dc00224860a9a446d" 552SRC_URI[icu_calendar_data-2.2.0.sha256sum] = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d"
524SRC_URI[icu_collator-2.1.1.sha256sum] = "32eed11a5572f1088b63fa21dc2e70d4a865e5739fc2d10abc05be93bae97019" 553SRC_URI[icu_collator-2.2.0.sha256sum] = "b521b92a2666061ddda902769d8a4cf730b5c9529a845cc1b69770b12a6c9a71"
525SRC_URI[icu_collator_data-2.1.1.sha256sum] = "5ab06f0e83a613efddba3e4913e00e43ed4001fae651cb7d40fc7e66b83b6fb9" 554SRC_URI[icu_collator_data-2.2.0.sha256sum] = "038ed8e5817f2059c2f3efb0945ba78d060d3d25e8f1a1bea5139f821a21a2f0"
526SRC_URI[icu_collections-2.1.1.sha256sum] = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 555SRC_URI[icu_collections-2.2.0.sha256sum] = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c"
527SRC_URI[icu_datetime-2.1.1.sha256sum] = "1b9d49f41ded8e63761b6b4c3120dfdc289415a1ed10107db6198eb311057ca5" 556SRC_URI[icu_datetime-2.2.0.sha256sum] = "989d56ea5bbc43ae2b4e0388874b002884eaf4ed3a76c84a6c8c5ad575e04d72"
528SRC_URI[icu_datetime_data-2.1.2.sha256sum] = "46597233625417b7c8052a63d916e4fdc73df21614ac0b679492a5d6e3b01aeb" 557SRC_URI[icu_datetime_data-2.2.0.sha256sum] = "40d3cc1b690d9703202bc319692ac8a1f3a6390686f0930ff40542450fa34f0b"
529SRC_URI[icu_decimal-2.1.1.sha256sum] = "a38c52231bc348f9b982c1868a2af3195199623007ba2c7650f432038f5b3e8e" 558SRC_URI[icu_decimal-2.2.0.sha256sum] = "288247df2e32aa776ac54fdd64de552149ac43cb840f2761811f0e8d09719dd4"
530SRC_URI[icu_decimal_data-2.1.1.sha256sum] = "2905b4044eab2dd848fe84199f9195567b63ab3a93094711501363f63546fef7" 559SRC_URI[icu_decimal_data-2.2.0.sha256sum] = "6f14a5ca9e8af29eef62064f269078424283d90dbaffeac5225addf62aaabc22"
531SRC_URI[icu_locale-2.1.1.sha256sum] = "532b11722e350ab6bf916ba6eb0efe3ee54b932666afec989465f9243fe6dd60" 560SRC_URI[icu_locale-2.2.0.sha256sum] = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26"
532SRC_URI[icu_locale_core-2.1.1.sha256sum] = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 561SRC_URI[icu_locale_core-2.2.0.sha256sum] = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29"
533SRC_URI[icu_locale_data-2.1.2.sha256sum] = "1c5f1d16b4c3a2642d3a719f18f6b06070ab0aef246a6418130c955ae08aa831" 562SRC_URI[icu_locale_data-2.2.0.sha256sum] = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993"
534SRC_URI[icu_normalizer-2.1.1.sha256sum] = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 563SRC_URI[icu_normalizer-2.2.0.sha256sum] = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4"
535SRC_URI[icu_normalizer_data-2.1.1.sha256sum] = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 564SRC_URI[icu_normalizer_data-2.2.0.sha256sum] = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38"
536SRC_URI[icu_pattern-0.4.1.sha256sum] = "7a7ff8c0ff6f61cdce299dcb54f557b0a251adbc78f6f0c35a21332c452b4a1b" 565SRC_URI[icu_pattern-0.4.2.sha256sum] = "1c4c568054ffe735398a9f4c55aec37ad7c768844553cc0978f09cc9b933a1fb"
537SRC_URI[icu_plurals-2.1.1.sha256sum] = "4f9cfe49f5b1d1163cc58db451562339916a9ca5cbcaae83924d41a0bf839474" 566SRC_URI[icu_plurals-2.2.0.sha256sum] = "2a50023f1d49ad5c4333380328a0d4a19e4b9d6d842ec06639affd5ba47c8103"
538SRC_URI[icu_plurals_data-2.1.1.sha256sum] = "f018a98dccf7f0eb02ba06ac0ff67d102d8ded80734724305e924de304e12ff0" 567SRC_URI[icu_plurals_data-2.2.0.sha256sum] = "8485497155dc865f901decb93ecc20d3e467df67bfeceb91e3ba34e2b11e8e1d"
539SRC_URI[icu_properties-2.1.2.sha256sum] = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 568SRC_URI[icu_properties-2.2.0.sha256sum] = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de"
540SRC_URI[icu_properties_data-2.1.2.sha256sum] = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 569SRC_URI[icu_properties_data-2.2.0.sha256sum] = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14"
541SRC_URI[icu_provider-2.1.1.sha256sum] = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 570SRC_URI[icu_provider-2.2.0.sha256sum] = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421"
542SRC_URI[icu_time-2.1.1.sha256sum] = "8242b00da3b3b6678f731437a11c8833a43c821ae081eca60ba1b7579d45b6d8" 571SRC_URI[icu_time-2.2.0.sha256sum] = "ec3af0c141da0a61d4f6970cd1d5f4b388b17ea22f8124f8f6049d3d5147586a"
543SRC_URI[icu_time_data-2.1.1.sha256sum] = "3e10b0e5e87a2c84bd5fa407705732052edebe69291d347d0c3033785470edbf" 572SRC_URI[icu_time_data-2.2.0.sha256sum] = "6f2f8aeca682d874a5247084aa4fb7d1cef9ba45d889c21209a8818dcaaa0ec9"
573SRC_URI[id-arena-2.3.0.sha256sum] = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
544SRC_URI[indexmap-2.13.0.sha256sum] = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 574SRC_URI[indexmap-2.13.0.sha256sum] = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
545SRC_URI[indicatif-0.18.4.sha256sum] = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" 575SRC_URI[indicatif-0.18.4.sha256sum] = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb"
546SRC_URI[inotify-0.11.0.sha256sum] = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" 576SRC_URI[inotify-0.11.0.sha256sum] = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
@@ -550,8 +580,7 @@ SRC_URI[intl_pluralrules-7.0.2.sha256sum] = "078ea7b7c29a2b4df841a7f6ac8775ff607
550SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 580SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
551SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 581SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
552SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 582SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
553SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" 583SRC_URI[itoa-1.0.18.sha256sum] = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
554SRC_URI[ixdtf-0.6.4.sha256sum] = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992"
555SRC_URI[jiff-0.2.23.sha256sum] = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" 584SRC_URI[jiff-0.2.23.sha256sum] = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359"
556SRC_URI[jiff-icu-0.2.2.sha256sum] = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" 585SRC_URI[jiff-icu-0.2.2.sha256sum] = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646"
557SRC_URI[jiff-static-0.2.23.sha256sum] = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" 586SRC_URI[jiff-static-0.2.23.sha256sum] = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4"
@@ -562,10 +591,11 @@ SRC_URI[keccak-0.1.6.sha256sum] = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56d
562SRC_URI[kqueue-1.1.1.sha256sum] = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" 591SRC_URI[kqueue-1.1.1.sha256sum] = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a"
563SRC_URI[kqueue-sys-1.0.4.sha256sum] = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" 592SRC_URI[kqueue-sys-1.0.4.sha256sum] = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
564SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 593SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
594SRC_URI[leb128fmt-0.1.0.sha256sum] = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
565SRC_URI[libc-0.2.182.sha256sum] = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 595SRC_URI[libc-0.2.182.sha256sum] = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
566SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 596SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
567SRC_URI[libm-0.2.16.sha256sum] = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 597SRC_URI[libm-0.2.16.sha256sum] = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
568SRC_URI[libredox-0.1.12.sha256sum] = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" 598SRC_URI[libredox-0.1.15.sha256sum] = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08"
569SRC_URI[linux-raw-sys-0.12.1.sha256sum] = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 599SRC_URI[linux-raw-sys-0.12.1.sha256sum] = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
570SRC_URI[litemap-0.8.1.sha256sum] = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 600SRC_URI[litemap-0.8.1.sha256sum] = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
571SRC_URI[litrs-1.0.0.sha256sum] = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" 601SRC_URI[litrs-1.0.0.sha256sum] = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
@@ -580,7 +610,7 @@ SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce444
580SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 610SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
581SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 611SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
582SRC_URI[mio-1.1.1.sha256sum] = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 612SRC_URI[mio-1.1.1.sha256sum] = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
583SRC_URI[nix-0.30.1.sha256sum] = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 613SRC_URI[nix-0.31.2.sha256sum] = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3"
584SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 614SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
585SRC_URI[nom-8.0.0.sha256sum] = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 615SRC_URI[nom-8.0.0.sha256sum] = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
586SRC_URI[notify-8.2.0.sha256sum] = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" 616SRC_URI[notify-8.2.0.sha256sum] = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3"
@@ -611,7 +641,8 @@ SRC_URI[phf_generator-0.13.1.sha256sum] = "135ace3a761e564ec88c03a77317a7c6b80bb
611SRC_URI[phf_shared-0.13.1.sha256sum] = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 641SRC_URI[phf_shared-0.13.1.sha256sum] = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
612SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 642SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
613SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 643SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
614SRC_URI[platform-info-2.0.5.sha256sum] = "7539aeb3fdd8cb4f6a331307cf71a1039cee75e94e8a71725b9484f4a0d9451a" 644SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
645SRC_URI[platform-info-2.1.0.sha256sum] = "9368d62437c8cbb7c31ee37fd8c08a7d390e09a3ff75698a674953f46705ffcb"
615SRC_URI[portable-atomic-1.13.1.sha256sum] = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" 646SRC_URI[portable-atomic-1.13.1.sha256sum] = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
616SRC_URI[portable-atomic-util-0.2.5.sha256sum] = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" 647SRC_URI[portable-atomic-util-0.2.5.sha256sum] = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
617SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 648SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
@@ -624,14 +655,14 @@ SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa
624SRC_URI[procfs-0.18.0.sha256sum] = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" 655SRC_URI[procfs-0.18.0.sha256sum] = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7"
625SRC_URI[procfs-core-0.18.0.sha256sum] = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" 656SRC_URI[procfs-core-0.18.0.sha256sum] = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405"
626SRC_URI[quote-1.0.45.sha256sum] = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" 657SRC_URI[quote-1.0.45.sha256sum] = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
627SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 658SRC_URI[r-efi-6.0.0.sha256sum] = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
628SRC_URI[radium-0.7.0.sha256sum] = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 659SRC_URI[radium-0.7.0.sha256sum] = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
629SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 660SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
630SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 661SRC_URI[rand-0.10.0.sha256sum] = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
631SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 662SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
632SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 663SRC_URI[rand_chacha-0.10.0.sha256sum] = "3e6af7f3e25ded52c41df4e0b1af2d047e45896c2f3281792ed68a1c243daedb"
633SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 664SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
634SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 665SRC_URI[rand_core-0.10.0.sha256sum] = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
635SRC_URI[rayon-1.11.0.sha256sum] = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 666SRC_URI[rayon-1.11.0.sha256sum] = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
636SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 667SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
637SRC_URI[redox_syscall-0.5.18.sha256sum] = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 668SRC_URI[redox_syscall-0.5.18.sha256sum] = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
@@ -642,11 +673,12 @@ SRC_URI[regex-lite-0.1.9.sha256sum] = "cab834c73d247e67f4fae452806d17d3c7501756d
642SRC_URI[regex-syntax-0.8.9.sha256sum] = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" 673SRC_URI[regex-syntax-0.8.9.sha256sum] = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c"
643SRC_URI[relative-path-1.9.3.sha256sum] = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" 674SRC_URI[relative-path-1.9.3.sha256sum] = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
644SRC_URI[rlimit-0.11.0.sha256sum] = "f35ee2729c56bb610f6dba436bf78135f728b7373bdffae2ec815b2d3eb98cc3" 675SRC_URI[rlimit-0.11.0.sha256sum] = "f35ee2729c56bb610f6dba436bf78135f728b7373bdffae2ec815b2d3eb98cc3"
645SRC_URI[roff-0.2.2.sha256sum] = "88f8660c1ff60292143c98d08fc6e2f654d722db50410e3f3797d40baaf9d8f3" 676SRC_URI[roff-1.1.0.sha256sum] = "dbf2048e0e979efb2ca7b91c4f1a8d77c91853e9b987c94c555668a8994915ad"
646SRC_URI[rstest-0.26.1.sha256sum] = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" 677SRC_URI[rstest-0.26.1.sha256sum] = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49"
647SRC_URI[rstest_macros-0.26.1.sha256sum] = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" 678SRC_URI[rstest_macros-0.26.1.sha256sum] = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0"
679SRC_URI[rstest_reuse-0.7.0.sha256sum] = "b3a8fb4672e840a587a66fc577a5491375df51ddb88f2a2c2a792598c326fe14"
648SRC_URI[rust-ini-0.21.3.sha256sum] = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" 680SRC_URI[rust-ini-0.21.3.sha256sum] = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
649SRC_URI[rustc-hash-2.1.1.sha256sum] = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 681SRC_URI[rustc-hash-2.1.2.sha256sum] = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
650SRC_URI[rustc_version-0.4.1.sha256sum] = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 682SRC_URI[rustc_version-0.4.1.sha256sum] = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
651SRC_URI[rustix-1.1.4.sha256sum] = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 683SRC_URI[rustix-1.1.4.sha256sum] = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
652SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 684SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
@@ -670,7 +702,7 @@ SRC_URI[signal-hook-registry-1.4.8.sha256sum] = "c4db69cba1110affc0e9f7bcd48bbf8
670SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 702SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
671SRC_URI[siphasher-1.0.2.sha256sum] = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" 703SRC_URI[siphasher-1.0.2.sha256sum] = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
672SRC_URI[slab-0.4.12.sha256sum] = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 704SRC_URI[slab-0.4.12.sha256sum] = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
673SRC_URI[sm3-0.4.2.sha256sum] = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860" 705SRC_URI[sm3-0.5.0.sha256sum] = "da6a89ba31723d185fd7413b98c576a575f356d9b84729d8ecb6ead60000a5b6"
674SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 706SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
675SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 707SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
676SRC_URI[socket2-0.6.2.sha256sum] = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" 708SRC_URI[socket2-0.6.2.sha256sum] = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0"
@@ -682,8 +714,8 @@ SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70
682SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" 714SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
683SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 715SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
684SRC_URI[tap-1.0.1.sha256sum] = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 716SRC_URI[tap-1.0.1.sha256sum] = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
685SRC_URI[tempfile-3.26.0.sha256sum] = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" 717SRC_URI[tempfile-3.27.0.sha256sum] = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
686SRC_URI[terminal_size-0.4.3.sha256sum] = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 718SRC_URI[terminal_size-0.4.4.sha256sum] = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874"
687SRC_URI[textwrap-0.16.2.sha256sum] = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 719SRC_URI[textwrap-0.16.2.sha256sum] = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
688SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 720SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
689SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 721SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
@@ -693,7 +725,7 @@ SRC_URI[time-0.3.47.sha256sum] = "743bd48c283afc0388f9b8827b976905fb217ad9e647fa
693SRC_URI[time-core-0.1.8.sha256sum] = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" 725SRC_URI[time-core-0.1.8.sha256sum] = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
694SRC_URI[time-macros-0.2.27.sha256sum] = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" 726SRC_URI[time-macros-0.2.27.sha256sum] = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
695SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 727SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
696SRC_URI[tinystr-0.8.2.sha256sum] = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 728SRC_URI[tinystr-0.8.3.sha256sum] = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
697SRC_URI[toml_datetime-0.7.5+spec-1.1.0.sha256sum] = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 729SRC_URI[toml_datetime-0.7.5+spec-1.1.0.sha256sum] = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
698SRC_URI[toml_edit-0.23.10+spec-1.0.0.sha256sum] = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 730SRC_URI[toml_edit-0.23.10+spec-1.0.0.sha256sum] = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
699SRC_URI[toml_parser-1.0.6+spec-1.1.0.sha256sum] = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" 731SRC_URI[toml_parser-1.0.6+spec-1.1.0.sha256sum] = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
@@ -706,6 +738,7 @@ SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059
706SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 738SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
707SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 739SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
708SRC_URI[unicode-width-0.2.2.sha256sum] = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 740SRC_URI[unicode-width-0.2.2.sha256sum] = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
741SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
709SRC_URI[unindent-0.2.4.sha256sum] = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" 742SRC_URI[unindent-0.2.4.sha256sum] = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
710SRC_URI[unit-prefix-0.5.2.sha256sum] = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" 743SRC_URI[unit-prefix-0.5.2.sha256sum] = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3"
711SRC_URI[utf16_iter-1.0.5.sha256sum] = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 744SRC_URI[utf16_iter-1.0.5.sha256sum] = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
@@ -714,16 +747,20 @@ SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa570
714SRC_URI[utmp-classic-0.1.6.sha256sum] = "e24c654e19afaa6b8f3877ece5d3bed849c2719c56f6752b18ca7da4fcc6e85a" 747SRC_URI[utmp-classic-0.1.6.sha256sum] = "e24c654e19afaa6b8f3877ece5d3bed849c2719c56f6752b18ca7da4fcc6e85a"
715SRC_URI[utmp-classic-raw-0.1.3.sha256sum] = "22c226537a3d6e01c440c1926ca0256dbee2d19b2229ede6fc4863a6493dd831" 748SRC_URI[utmp-classic-raw-0.1.3.sha256sum] = "22c226537a3d6e01c440c1926ca0256dbee2d19b2229ede6fc4863a6493dd831"
716SRC_URI[uuid-1.20.0.sha256sum] = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" 749SRC_URI[uuid-1.20.0.sha256sum] = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f"
717SRC_URI[uutils_term_grid-0.7.0.sha256sum] = "fcba141ce511bad08e80b43f02976571072e1ff4286f7d628943efbd277c6361" 750SRC_URI[uutils_term_grid-0.8.0.sha256sum] = "382d49b39de4a115f203305057741126b09a615892d773a2d419a2b816e30e39"
718SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 751SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
719SRC_URI[vsimd-0.8.0.sha256sum] = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" 752SRC_URI[vsimd-0.8.0.sha256sum] = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
720SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 753SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
721SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 754SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
722SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 755SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
756SRC_URI[wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.sha256sum] = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
723SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" 757SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
724SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" 758SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
725SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" 759SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
726SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" 760SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
761SRC_URI[wasm-encoder-0.244.0.sha256sum] = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
762SRC_URI[wasm-metadata-0.244.0.sha256sum] = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
763SRC_URI[wasmparser-0.244.0.sha256sum] = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
727SRC_URI[web-time-1.1.0.sha256sum] = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 764SRC_URI[web-time-1.1.0.sha256sum] = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
728SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1" 765SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
729SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 766SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
@@ -759,13 +796,18 @@ SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661
759SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 796SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
760SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 797SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
761SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 798SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
799SRC_URI[wit-bindgen-core-0.51.0.sha256sum] = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
800SRC_URI[wit-bindgen-rust-0.51.0.sha256sum] = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
801SRC_URI[wit-bindgen-rust-macro-0.51.0.sha256sum] = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
802SRC_URI[wit-component-0.244.0.sha256sum] = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
803SRC_URI[wit-parser-0.244.0.sha256sum] = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
762SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 804SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
763SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 805SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
764SRC_URI[wyz-0.5.1.sha256sum] = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 806SRC_URI[wyz-0.5.1.sha256sum] = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
765SRC_URI[xattr-1.6.1.sha256sum] = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" 807SRC_URI[xattr-1.6.1.sha256sum] = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
766SRC_URI[yansi-1.0.1.sha256sum] = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 808SRC_URI[yansi-1.0.1.sha256sum] = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
767SRC_URI[yoke-0.8.1.sha256sum] = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 809SRC_URI[yoke-0.8.2.sha256sum] = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
768SRC_URI[yoke-derive-0.8.1.sha256sum] = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 810SRC_URI[yoke-derive-0.8.2.sha256sum] = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
769SRC_URI[z85-3.0.7.sha256sum] = "c6e61e59a957b7ccee15d2049f86e8bfd6f66968fcd88f018950662d9b86e675" 811SRC_URI[z85-3.0.7.sha256sum] = "c6e61e59a957b7ccee15d2049f86e8bfd6f66968fcd88f018950662d9b86e675"
770SRC_URI[zerocopy-0.7.35.sha256sum] = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 812SRC_URI[zerocopy-0.7.35.sha256sum] = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
771SRC_URI[zerocopy-0.8.39.sha256sum] = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" 813SRC_URI[zerocopy-0.8.39.sha256sum] = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a"
@@ -773,10 +815,10 @@ SRC_URI[zerocopy-derive-0.7.35.sha256sum] = "fa4f8080344d4671fb4e831a13ad1e68092
773SRC_URI[zerocopy-derive-0.8.39.sha256sum] = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" 815SRC_URI[zerocopy-derive-0.8.39.sha256sum] = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517"
774SRC_URI[zerofrom-0.1.6.sha256sum] = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 816SRC_URI[zerofrom-0.1.6.sha256sum] = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
775SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 817SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
776SRC_URI[zerotrie-0.2.3.sha256sum] = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 818SRC_URI[zerotrie-0.2.4.sha256sum] = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
777SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 819SRC_URI[zerovec-0.11.6.sha256sum] = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
778SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 820SRC_URI[zerovec-derive-0.11.3.sha256sum] = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
779SRC_URI[zip-8.2.0.sha256sum] = "b680f2a0cd479b4cff6e1233c483fdead418106eae419dc60200ae9850f6d004" 821SRC_URI[zip-8.5.0.sha256sum] = "2726508a48f38dceb22b35ecbbd2430efe34ff05c62bd3285f965d7911b33464"
780SRC_URI[zlib-rs-0.6.0.sha256sum] = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c" 822SRC_URI[zlib-rs-0.6.0.sha256sum] = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c"
781SRC_URI[zmij-1.0.19.sha256sum] = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445" 823SRC_URI[zmij-1.0.19.sha256sum] = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
782SRC_URI[zopfli-0.8.3.sha256sum] = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" 824SRC_URI[zopfli-0.8.3.sha256sum] = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249"
@@ -790,6 +832,7 @@ SRC_URI += " \
790 crate://crates.io/anstyle-parse/0.2.7 \ 832 crate://crates.io/anstyle-parse/0.2.7 \
791 crate://crates.io/anstyle-query/1.1.5 \ 833 crate://crates.io/anstyle-query/1.1.5 \
792 crate://crates.io/anstyle-wincon/3.0.11 \ 834 crate://crates.io/anstyle-wincon/3.0.11 \
835 crate://crates.io/anyhow/1.0.102 \
793 crate://crates.io/arbitrary/1.4.2 \ 836 crate://crates.io/arbitrary/1.4.2 \
794 crate://crates.io/arrayref/0.3.9 \ 837 crate://crates.io/arrayref/0.3.9 \
795 crate://crates.io/arrayvec/0.7.6 \ 838 crate://crates.io/arrayvec/0.7.6 \
@@ -801,6 +844,7 @@ SRC_URI += " \
801 crate://crates.io/blake2b_simd/1.0.4 \ 844 crate://crates.io/blake2b_simd/1.0.4 \
802 crate://crates.io/blake3/1.8.3 \ 845 crate://crates.io/blake3/1.8.3 \
803 crate://crates.io/block-buffer/0.10.4 \ 846 crate://crates.io/block-buffer/0.10.4 \
847 crate://crates.io/block-buffer/0.12.0 \
804 crate://crates.io/block2/0.6.2 \ 848 crate://crates.io/block2/0.6.2 \
805 crate://crates.io/bstr/1.12.1 \ 849 crate://crates.io/bstr/1.12.1 \
806 crate://crates.io/bumpalo/3.19.1 \ 850 crate://crates.io/bumpalo/3.19.1 \
@@ -809,19 +853,22 @@ SRC_URI += " \
809 crate://crates.io/cc/1.2.55 \ 853 crate://crates.io/cc/1.2.55 \
810 crate://crates.io/cfg-if/1.0.4 \ 854 crate://crates.io/cfg-if/1.0.4 \
811 crate://crates.io/cfg_aliases/0.2.1 \ 855 crate://crates.io/cfg_aliases/0.2.1 \
856 crate://crates.io/chacha20/0.10.0 \
812 crate://crates.io/chrono/0.4.43 \ 857 crate://crates.io/chrono/0.4.43 \
813 crate://crates.io/clap/4.5.57 \ 858 crate://crates.io/clap/4.5.57 \
814 crate://crates.io/clap_builder/4.5.57 \ 859 crate://crates.io/clap_builder/4.5.57 \
815 crate://crates.io/clap_lex/0.7.7 \ 860 crate://crates.io/clap_lex/0.7.7 \
816 crate://crates.io/colorchoice/1.0.4 \ 861 crate://crates.io/colorchoice/1.0.4 \
817 crate://crates.io/compare/0.1.0 \ 862 crate://crates.io/compare/0.1.0 \
818 crate://crates.io/console/0.16.2 \ 863 crate://crates.io/console/0.16.3 \
864 crate://crates.io/const-oid/0.10.2 \
819 crate://crates.io/const-random/0.1.18 \ 865 crate://crates.io/const-random/0.1.18 \
820 crate://crates.io/const-random-macro/0.1.16 \ 866 crate://crates.io/const-random-macro/0.1.16 \
821 crate://crates.io/constant_time_eq/0.4.2 \ 867 crate://crates.io/constant_time_eq/0.4.2 \
822 crate://crates.io/core-foundation-sys/0.8.7 \ 868 crate://crates.io/core-foundation-sys/0.8.7 \
823 crate://crates.io/core_maths/0.1.1 \ 869 crate://crates.io/core_maths/0.1.1 \
824 crate://crates.io/cpufeatures/0.2.17 \ 870 crate://crates.io/cpufeatures/0.2.17 \
871 crate://crates.io/cpufeatures/0.3.0 \
825 crate://crates.io/crc-fast/1.10.0 \ 872 crate://crates.io/crc-fast/1.10.0 \
826 crate://crates.io/crc32fast/1.5.0 \ 873 crate://crates.io/crc32fast/1.5.0 \
827 crate://crates.io/crossbeam-deque/0.8.6 \ 874 crate://crates.io/crossbeam-deque/0.8.6 \
@@ -829,17 +876,20 @@ SRC_URI += " \
829 crate://crates.io/crossbeam-utils/0.8.21 \ 876 crate://crates.io/crossbeam-utils/0.8.21 \
830 crate://crates.io/crunchy/0.2.4 \ 877 crate://crates.io/crunchy/0.2.4 \
831 crate://crates.io/crypto-common/0.1.7 \ 878 crate://crates.io/crypto-common/0.1.7 \
832 crate://crates.io/ctrlc/3.5.1 \ 879 crate://crates.io/crypto-common/0.2.1 \
880 crate://crates.io/ctrlc/3.5.2 \
833 crate://crates.io/data-encoding/2.10.0 \ 881 crate://crates.io/data-encoding/2.10.0 \
834 crate://crates.io/data-encoding-macro/0.1.19 \ 882 crate://crates.io/data-encoding-macro/0.1.19 \
835 crate://crates.io/data-encoding-macro-internal/0.1.17 \ 883 crate://crates.io/data-encoding-macro-internal/0.1.17 \
836 crate://crates.io/digest/0.10.7 \ 884 crate://crates.io/digest/0.10.7 \
885 crate://crates.io/digest/0.11.2 \
837 crate://crates.io/dispatch2/0.3.0 \ 886 crate://crates.io/dispatch2/0.3.0 \
838 crate://crates.io/displaydoc/0.2.5 \ 887 crate://crates.io/displaydoc/0.2.5 \
839 crate://crates.io/dlv-list/0.5.2 \ 888 crate://crates.io/dlv-list/0.5.2 \
840 crate://crates.io/dunce/1.0.5 \ 889 crate://crates.io/dunce/1.0.5 \
841 crate://crates.io/either/1.15.0 \ 890 crate://crates.io/either/1.15.0 \
842 crate://crates.io/encode_unicode/1.0.0 \ 891 crate://crates.io/encode_unicode/1.0.0 \
892 crate://crates.io/equivalent/1.0.2 \
843 crate://crates.io/errno/0.3.14 \ 893 crate://crates.io/errno/0.3.14 \
844 crate://crates.io/fastrand/2.3.0 \ 894 crate://crates.io/fastrand/2.3.0 \
845 crate://crates.io/find-msvc-tools/0.1.9 \ 895 crate://crates.io/find-msvc-tools/0.1.9 \
@@ -849,13 +899,19 @@ SRC_URI += " \
849 crate://crates.io/fluent-bundle/0.16.0 \ 899 crate://crates.io/fluent-bundle/0.16.0 \
850 crate://crates.io/fluent-langneg/0.13.1 \ 900 crate://crates.io/fluent-langneg/0.13.1 \
851 crate://crates.io/fluent-syntax/0.12.0 \ 901 crate://crates.io/fluent-syntax/0.12.0 \
902 crate://crates.io/foldhash/0.1.5 \
852 crate://crates.io/foldhash/0.2.0 \ 903 crate://crates.io/foldhash/0.2.0 \
853 crate://crates.io/generic-array/0.14.7 \ 904 crate://crates.io/generic-array/0.14.7 \
854 crate://crates.io/getrandom/0.2.17 \ 905 crate://crates.io/getrandom/0.2.17 \
855 crate://crates.io/getrandom/0.3.4 \ 906 crate://crates.io/getrandom/0.3.4 \
907 crate://crates.io/getrandom/0.4.1 \
856 crate://crates.io/glob/0.3.3 \ 908 crate://crates.io/glob/0.3.3 \
857 crate://crates.io/hashbrown/0.14.5 \ 909 crate://crates.io/hashbrown/0.14.5 \
910 crate://crates.io/hashbrown/0.15.5 \
911 crate://crates.io/hashbrown/0.16.1 \
912 crate://crates.io/heck/0.5.0 \
858 crate://crates.io/hex/0.4.3 \ 913 crate://crates.io/hex/0.4.3 \
914 crate://crates.io/hybrid-array/0.4.8 \
859 crate://crates.io/iana-time-zone/0.1.65 \ 915 crate://crates.io/iana-time-zone/0.1.65 \
860 crate://crates.io/iana-time-zone-haiku/0.1.2 \ 916 crate://crates.io/iana-time-zone-haiku/0.1.2 \
861 crate://crates.io/icu_calendar/2.1.1 \ 917 crate://crates.io/icu_calendar/2.1.1 \
@@ -880,11 +936,13 @@ SRC_URI += " \
880 crate://crates.io/icu_provider/2.1.1 \ 936 crate://crates.io/icu_provider/2.1.1 \
881 crate://crates.io/icu_time/2.1.1 \ 937 crate://crates.io/icu_time/2.1.1 \
882 crate://crates.io/icu_time_data/2.1.1 \ 938 crate://crates.io/icu_time_data/2.1.1 \
939 crate://crates.io/id-arena/2.3.0 \
940 crate://crates.io/indexmap/2.13.0 \
883 crate://crates.io/intl-memoizer/0.5.3 \ 941 crate://crates.io/intl-memoizer/0.5.3 \
884 crate://crates.io/intl_pluralrules/7.0.2 \ 942 crate://crates.io/intl_pluralrules/7.0.2 \
885 crate://crates.io/is_terminal_polyfill/1.70.2 \ 943 crate://crates.io/is_terminal_polyfill/1.70.2 \
886 crate://crates.io/itertools/0.14.0 \ 944 crate://crates.io/itertools/0.14.0 \
887 crate://crates.io/ixdtf/0.6.4 \ 945 crate://crates.io/itoa/1.0.17 \
888 crate://crates.io/jiff/0.2.19 \ 946 crate://crates.io/jiff/0.2.19 \
889 crate://crates.io/jiff-icu/0.2.2 \ 947 crate://crates.io/jiff-icu/0.2.2 \
890 crate://crates.io/jiff-static/0.2.19 \ 948 crate://crates.io/jiff-static/0.2.19 \
@@ -893,6 +951,7 @@ SRC_URI += " \
893 crate://crates.io/jobserver/0.1.34 \ 951 crate://crates.io/jobserver/0.1.34 \
894 crate://crates.io/js-sys/0.3.85 \ 952 crate://crates.io/js-sys/0.3.85 \
895 crate://crates.io/keccak/0.1.6 \ 953 crate://crates.io/keccak/0.1.6 \
954 crate://crates.io/leb128fmt/0.1.0 \
896 crate://crates.io/libc/0.2.182 \ 955 crate://crates.io/libc/0.2.182 \
897 crate://crates.io/libfuzzer-sys/0.4.12 \ 956 crate://crates.io/libfuzzer-sys/0.4.12 \
898 crate://crates.io/libm/0.2.16 \ 957 crate://crates.io/libm/0.2.16 \
@@ -902,7 +961,7 @@ SRC_URI += " \
902 crate://crates.io/md-5/0.10.6 \ 961 crate://crates.io/md-5/0.10.6 \
903 crate://crates.io/memchr/2.8.0 \ 962 crate://crates.io/memchr/2.8.0 \
904 crate://crates.io/miniz_oxide/0.8.9 \ 963 crate://crates.io/miniz_oxide/0.8.9 \
905 crate://crates.io/nix/0.30.1 \ 964 crate://crates.io/nix/0.31.2 \
906 crate://crates.io/nom/8.0.0 \ 965 crate://crates.io/nom/8.0.0 \
907 crate://crates.io/num-bigint/0.4.6 \ 966 crate://crates.io/num-bigint/0.4.6 \
908 crate://crates.io/num-integer/0.1.46 \ 967 crate://crates.io/num-integer/0.1.46 \
@@ -922,14 +981,17 @@ SRC_URI += " \
922 crate://crates.io/portable-atomic-util/0.2.5 \ 981 crate://crates.io/portable-atomic-util/0.2.5 \
923 crate://crates.io/potential_utf/0.1.4 \ 982 crate://crates.io/potential_utf/0.1.4 \
924 crate://crates.io/ppv-lite86/0.2.21 \ 983 crate://crates.io/ppv-lite86/0.2.21 \
984 crate://crates.io/prettyplease/0.2.37 \
925 crate://crates.io/proc-macro2/1.0.106 \ 985 crate://crates.io/proc-macro2/1.0.106 \
926 crate://crates.io/procfs/0.18.0 \ 986 crate://crates.io/procfs/0.18.0 \
927 crate://crates.io/procfs-core/0.18.0 \ 987 crate://crates.io/procfs-core/0.18.0 \
928 crate://crates.io/quote/1.0.44 \ 988 crate://crates.io/quote/1.0.44 \
929 crate://crates.io/r-efi/5.3.0 \ 989 crate://crates.io/r-efi/5.3.0 \
930 crate://crates.io/rand/0.9.2 \ 990 crate://crates.io/rand/0.9.2 \
991 crate://crates.io/rand/0.10.0 \
931 crate://crates.io/rand_chacha/0.9.0 \ 992 crate://crates.io/rand_chacha/0.9.0 \
932 crate://crates.io/rand_core/0.9.5 \ 993 crate://crates.io/rand_core/0.9.5 \
994 crate://crates.io/rand_core/0.10.0 \
933 crate://crates.io/rayon/1.11.0 \ 995 crate://crates.io/rayon/1.11.0 \
934 crate://crates.io/rayon-core/1.13.0 \ 996 crate://crates.io/rayon-core/1.13.0 \
935 crate://crates.io/regex/1.12.3 \ 997 crate://crates.io/regex/1.12.3 \
@@ -940,23 +1002,25 @@ SRC_URI += " \
940 crate://crates.io/rustix/1.1.4 \ 1002 crate://crates.io/rustix/1.1.4 \
941 crate://crates.io/rustversion/1.0.22 \ 1003 crate://crates.io/rustversion/1.0.22 \
942 crate://crates.io/self_cell/1.2.2 \ 1004 crate://crates.io/self_cell/1.2.2 \
1005 crate://crates.io/semver/1.0.27 \
943 crate://crates.io/serde/1.0.228 \ 1006 crate://crates.io/serde/1.0.228 \
944 crate://crates.io/serde_core/1.0.228 \ 1007 crate://crates.io/serde_core/1.0.228 \
945 crate://crates.io/serde_derive/1.0.228 \ 1008 crate://crates.io/serde_derive/1.0.228 \
1009 crate://crates.io/serde_json/1.0.149 \
946 crate://crates.io/sha1/0.10.6 \ 1010 crate://crates.io/sha1/0.10.6 \
947 crate://crates.io/sha2/0.10.9 \ 1011 crate://crates.io/sha2/0.10.9 \
948 crate://crates.io/sha3/0.10.8 \ 1012 crate://crates.io/sha3/0.10.8 \
949 crate://crates.io/shlex/1.3.0 \ 1013 crate://crates.io/shlex/1.3.0 \
950 crate://crates.io/simd-adler32/0.3.8 \ 1014 crate://crates.io/simd-adler32/0.3.8 \
951 crate://crates.io/similar/2.7.0 \ 1015 crate://crates.io/similar/3.0.0 \
952 crate://crates.io/sm3/0.4.2 \ 1016 crate://crates.io/sm3/0.5.0 \
953 crate://crates.io/smallvec/1.15.1 \ 1017 crate://crates.io/smallvec/1.15.1 \
954 crate://crates.io/spin/0.10.0 \ 1018 crate://crates.io/spin/0.10.0 \
955 crate://crates.io/stable_deref_trait/1.2.1 \ 1019 crate://crates.io/stable_deref_trait/1.2.1 \
956 crate://crates.io/strsim/0.11.1 \ 1020 crate://crates.io/strsim/0.11.1 \
957 crate://crates.io/syn/2.0.114 \ 1021 crate://crates.io/syn/2.0.114 \
958 crate://crates.io/synstructure/0.13.2 \ 1022 crate://crates.io/synstructure/0.13.2 \
959 crate://crates.io/tempfile/3.26.0 \ 1023 crate://crates.io/tempfile/3.27.0 \
960 crate://crates.io/terminal_size/0.4.3 \ 1024 crate://crates.io/terminal_size/0.4.3 \
961 crate://crates.io/thiserror/2.0.18 \ 1025 crate://crates.io/thiserror/2.0.18 \
962 crate://crates.io/thiserror-impl/2.0.18 \ 1026 crate://crates.io/thiserror-impl/2.0.18 \
@@ -968,6 +1032,7 @@ SRC_URI += " \
968 crate://crates.io/unic-langid-impl/0.9.6 \ 1032 crate://crates.io/unic-langid-impl/0.9.6 \
969 crate://crates.io/unicode-ident/1.0.22 \ 1033 crate://crates.io/unicode-ident/1.0.22 \
970 crate://crates.io/unicode-width/0.2.2 \ 1034 crate://crates.io/unicode-width/0.2.2 \
1035 crate://crates.io/unicode-xid/0.2.6 \
971 crate://crates.io/unit-prefix/0.5.2 \ 1036 crate://crates.io/unit-prefix/0.5.2 \
972 crate://crates.io/utf16_iter/1.0.5 \ 1037 crate://crates.io/utf16_iter/1.0.5 \
973 crate://crates.io/utf8_iter/1.0.4 \ 1038 crate://crates.io/utf8_iter/1.0.4 \
@@ -976,10 +1041,14 @@ SRC_URI += " \
976 crate://crates.io/vsimd/0.8.0 \ 1041 crate://crates.io/vsimd/0.8.0 \
977 crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \ 1042 crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \
978 crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \ 1043 crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \
1044 crate://crates.io/wasip3/0.4.0+wasi-0.3.0-rc-2026-01-06 \
979 crate://crates.io/wasm-bindgen/0.2.108 \ 1045 crate://crates.io/wasm-bindgen/0.2.108 \
980 crate://crates.io/wasm-bindgen-macro/0.2.108 \ 1046 crate://crates.io/wasm-bindgen-macro/0.2.108 \
981 crate://crates.io/wasm-bindgen-macro-support/0.2.108 \ 1047 crate://crates.io/wasm-bindgen-macro-support/0.2.108 \
982 crate://crates.io/wasm-bindgen-shared/0.2.108 \ 1048 crate://crates.io/wasm-bindgen-shared/0.2.108 \
1049 crate://crates.io/wasm-encoder/0.244.0 \
1050 crate://crates.io/wasm-metadata/0.244.0 \
1051 crate://crates.io/wasmparser/0.244.0 \
983 crate://crates.io/wild/2.2.1 \ 1052 crate://crates.io/wild/2.2.1 \
984 crate://crates.io/winapi-util/0.1.11 \ 1053 crate://crates.io/winapi-util/0.1.11 \
985 crate://crates.io/windows-core/0.62.2 \ 1054 crate://crates.io/windows-core/0.62.2 \
@@ -1001,6 +1070,11 @@ SRC_URI += " \
1001 crate://crates.io/windows_x86_64_msvc/0.53.1 \ 1070 crate://crates.io/windows_x86_64_msvc/0.53.1 \
1002 crate://crates.io/winnow/0.7.14 \ 1071 crate://crates.io/winnow/0.7.14 \
1003 crate://crates.io/wit-bindgen/0.51.0 \ 1072 crate://crates.io/wit-bindgen/0.51.0 \
1073 crate://crates.io/wit-bindgen-core/0.51.0 \
1074 crate://crates.io/wit-bindgen-rust/0.51.0 \
1075 crate://crates.io/wit-bindgen-rust-macro/0.51.0 \
1076 crate://crates.io/wit-component/0.244.0 \
1077 crate://crates.io/wit-parser/0.244.0 \
1004 crate://crates.io/write16/1.0.0 \ 1078 crate://crates.io/write16/1.0.0 \
1005 crate://crates.io/writeable/0.6.2 \ 1079 crate://crates.io/writeable/0.6.2 \
1006 crate://crates.io/yoke/0.8.1 \ 1080 crate://crates.io/yoke/0.8.1 \
@@ -1013,6 +1087,7 @@ SRC_URI += " \
1013 crate://crates.io/zerotrie/0.2.3 \ 1087 crate://crates.io/zerotrie/0.2.3 \
1014 crate://crates.io/zerovec/0.11.5 \ 1088 crate://crates.io/zerovec/0.11.5 \
1015 crate://crates.io/zerovec-derive/0.11.2 \ 1089 crate://crates.io/zerovec-derive/0.11.2 \
1090 crate://crates.io/zmij/1.0.21 \
1016" 1091"
1017 1092
1018SRC_URI[adler2-2.0.1.sha256sum] = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 1093SRC_URI[adler2-2.0.1.sha256sum] = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
@@ -1023,6 +1098,7 @@ SRC_URI[anstyle-1.0.13.sha256sum] = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfe
1023SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" 1098SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
1024SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 1099SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
1025SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 1100SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
1101SRC_URI[anyhow-1.0.102.sha256sum] = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
1026SRC_URI[arbitrary-1.4.2.sha256sum] = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" 1102SRC_URI[arbitrary-1.4.2.sha256sum] = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
1027SRC_URI[arrayref-0.3.9.sha256sum] = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 1103SRC_URI[arrayref-0.3.9.sha256sum] = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
1028SRC_URI[arrayvec-0.7.6.sha256sum] = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 1104SRC_URI[arrayvec-0.7.6.sha256sum] = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
@@ -1034,6 +1110,7 @@ SRC_URI[bitflags-2.10.0.sha256sum] = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acf
1034SRC_URI[blake2b_simd-1.0.4.sha256sum] = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" 1110SRC_URI[blake2b_simd-1.0.4.sha256sum] = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3"
1035SRC_URI[blake3-1.8.3.sha256sum] = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" 1111SRC_URI[blake3-1.8.3.sha256sum] = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d"
1036SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 1112SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
1113SRC_URI[block-buffer-0.12.0.sha256sum] = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be"
1037SRC_URI[block2-0.6.2.sha256sum] = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 1114SRC_URI[block2-0.6.2.sha256sum] = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
1038SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" 1115SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
1039SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 1116SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
@@ -1042,19 +1119,22 @@ SRC_URI[calendrical_calculations-0.2.3.sha256sum] = "3a0b39595c6ee54a8d0900204ba
1042SRC_URI[cc-1.2.55.sha256sum] = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" 1119SRC_URI[cc-1.2.55.sha256sum] = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
1043SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 1120SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
1044SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 1121SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
1122SRC_URI[chacha20-0.10.0.sha256sum] = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
1045SRC_URI[chrono-0.4.43.sha256sum] = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" 1123SRC_URI[chrono-0.4.43.sha256sum] = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
1046SRC_URI[clap-4.5.57.sha256sum] = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" 1124SRC_URI[clap-4.5.57.sha256sum] = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
1047SRC_URI[clap_builder-4.5.57.sha256sum] = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" 1125SRC_URI[clap_builder-4.5.57.sha256sum] = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
1048SRC_URI[clap_lex-0.7.7.sha256sum] = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" 1126SRC_URI[clap_lex-0.7.7.sha256sum] = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
1049SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" 1127SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
1050SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3" 1128SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3"
1051SRC_URI[console-0.16.2.sha256sum] = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" 1129SRC_URI[console-0.16.3.sha256sum] = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87"
1130SRC_URI[const-oid-0.10.2.sha256sum] = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
1052SRC_URI[const-random-0.1.18.sha256sum] = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 1131SRC_URI[const-random-0.1.18.sha256sum] = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
1053SRC_URI[const-random-macro-0.1.16.sha256sum] = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 1132SRC_URI[const-random-macro-0.1.16.sha256sum] = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
1054SRC_URI[constant_time_eq-0.4.2.sha256sum] = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" 1133SRC_URI[constant_time_eq-0.4.2.sha256sum] = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
1055SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1134SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
1056SRC_URI[core_maths-0.1.1.sha256sum] = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" 1135SRC_URI[core_maths-0.1.1.sha256sum] = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
1057SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 1136SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
1137SRC_URI[cpufeatures-0.3.0.sha256sum] = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
1058SRC_URI[crc-fast-1.10.0.sha256sum] = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" 1138SRC_URI[crc-fast-1.10.0.sha256sum] = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5"
1059SRC_URI[crc32fast-1.5.0.sha256sum] = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 1139SRC_URI[crc32fast-1.5.0.sha256sum] = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
1060SRC_URI[crossbeam-deque-0.8.6.sha256sum] = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 1140SRC_URI[crossbeam-deque-0.8.6.sha256sum] = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
@@ -1062,17 +1142,20 @@ SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5
1062SRC_URI[crossbeam-utils-0.8.21.sha256sum] = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 1142SRC_URI[crossbeam-utils-0.8.21.sha256sum] = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
1063SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 1143SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
1064SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 1144SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
1065SRC_URI[ctrlc-3.5.1.sha256sum] = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" 1145SRC_URI[crypto-common-0.2.1.sha256sum] = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710"
1146SRC_URI[ctrlc-3.5.2.sha256sum] = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162"
1066SRC_URI[data-encoding-2.10.0.sha256sum] = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" 1147SRC_URI[data-encoding-2.10.0.sha256sum] = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea"
1067SRC_URI[data-encoding-macro-0.1.19.sha256sum] = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" 1148SRC_URI[data-encoding-macro-0.1.19.sha256sum] = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb"
1068SRC_URI[data-encoding-macro-internal-0.1.17.sha256sum] = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" 1149SRC_URI[data-encoding-macro-internal-0.1.17.sha256sum] = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de"
1069SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 1150SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
1151SRC_URI[digest-0.11.2.sha256sum] = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c"
1070SRC_URI[dispatch2-0.3.0.sha256sum] = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 1152SRC_URI[dispatch2-0.3.0.sha256sum] = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
1071SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 1153SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
1072SRC_URI[dlv-list-0.5.2.sha256sum] = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" 1154SRC_URI[dlv-list-0.5.2.sha256sum] = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
1073SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 1155SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
1074SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 1156SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
1075SRC_URI[encode_unicode-1.0.0.sha256sum] = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" 1157SRC_URI[encode_unicode-1.0.0.sha256sum] = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
1158SRC_URI[equivalent-1.0.2.sha256sum] = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
1076SRC_URI[errno-0.3.14.sha256sum] = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 1159SRC_URI[errno-0.3.14.sha256sum] = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1077SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 1160SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
1078SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 1161SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
@@ -1082,13 +1165,19 @@ SRC_URI[fluent-0.17.0.sha256sum] = "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f1
1082SRC_URI[fluent-bundle-0.16.0.sha256sum] = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4" 1165SRC_URI[fluent-bundle-0.16.0.sha256sum] = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4"
1083SRC_URI[fluent-langneg-0.13.1.sha256sum] = "7eebbe59450baee8282d71676f3bfed5689aeab00b27545e83e5f14b1195e8b0" 1166SRC_URI[fluent-langneg-0.13.1.sha256sum] = "7eebbe59450baee8282d71676f3bfed5689aeab00b27545e83e5f14b1195e8b0"
1084SRC_URI[fluent-syntax-0.12.0.sha256sum] = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198" 1167SRC_URI[fluent-syntax-0.12.0.sha256sum] = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198"
1168SRC_URI[foldhash-0.1.5.sha256sum] = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
1085SRC_URI[foldhash-0.2.0.sha256sum] = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 1169SRC_URI[foldhash-0.2.0.sha256sum] = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
1086SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1170SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
1087SRC_URI[getrandom-0.2.17.sha256sum] = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 1171SRC_URI[getrandom-0.2.17.sha256sum] = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
1088SRC_URI[getrandom-0.3.4.sha256sum] = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 1172SRC_URI[getrandom-0.3.4.sha256sum] = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
1173SRC_URI[getrandom-0.4.1.sha256sum] = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
1089SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1174SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
1090SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1175SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
1176SRC_URI[hashbrown-0.15.5.sha256sum] = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1177SRC_URI[hashbrown-0.16.1.sha256sum] = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
1178SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
1091SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1179SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1180SRC_URI[hybrid-array-0.4.8.sha256sum] = "8655f91cd07f2b9d0c24137bd650fe69617773435ee5ec83022377777ce65ef1"
1092SRC_URI[iana-time-zone-0.1.65.sha256sum] = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 1181SRC_URI[iana-time-zone-0.1.65.sha256sum] = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
1093SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1182SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
1094SRC_URI[icu_calendar-2.1.1.sha256sum] = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e" 1183SRC_URI[icu_calendar-2.1.1.sha256sum] = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e"
@@ -1113,11 +1202,13 @@ SRC_URI[icu_properties_data-2.1.2.sha256sum] = "616c294cf8d725c6afcd8f55abc17c56
1113SRC_URI[icu_provider-2.1.1.sha256sum] = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 1202SRC_URI[icu_provider-2.1.1.sha256sum] = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
1114SRC_URI[icu_time-2.1.1.sha256sum] = "8242b00da3b3b6678f731437a11c8833a43c821ae081eca60ba1b7579d45b6d8" 1203SRC_URI[icu_time-2.1.1.sha256sum] = "8242b00da3b3b6678f731437a11c8833a43c821ae081eca60ba1b7579d45b6d8"
1115SRC_URI[icu_time_data-2.1.1.sha256sum] = "3e10b0e5e87a2c84bd5fa407705732052edebe69291d347d0c3033785470edbf" 1204SRC_URI[icu_time_data-2.1.1.sha256sum] = "3e10b0e5e87a2c84bd5fa407705732052edebe69291d347d0c3033785470edbf"
1205SRC_URI[id-arena-2.3.0.sha256sum] = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
1206SRC_URI[indexmap-2.13.0.sha256sum] = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
1116SRC_URI[intl-memoizer-0.5.3.sha256sum] = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f" 1207SRC_URI[intl-memoizer-0.5.3.sha256sum] = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f"
1117SRC_URI[intl_pluralrules-7.0.2.sha256sum] = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972" 1208SRC_URI[intl_pluralrules-7.0.2.sha256sum] = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
1118SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 1209SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
1119SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 1210SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
1120SRC_URI[ixdtf-0.6.4.sha256sum] = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992" 1211SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
1121SRC_URI[jiff-0.2.19.sha256sum] = "d89a5b5e10d5a9ad6e5d1f4bd58225f655d6fe9767575a5e8ac5a6fe64e04495" 1212SRC_URI[jiff-0.2.19.sha256sum] = "d89a5b5e10d5a9ad6e5d1f4bd58225f655d6fe9767575a5e8ac5a6fe64e04495"
1122SRC_URI[jiff-icu-0.2.2.sha256sum] = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646" 1213SRC_URI[jiff-icu-0.2.2.sha256sum] = "0e67c2beaae8b10a82d849b9aabb698a43a682f32b17bcdc035d5ecadb44d646"
1123SRC_URI[jiff-static-0.2.19.sha256sum] = "ff7a39c8862fc1369215ccf0a8f12dd4598c7f6484704359f0351bd617034dbf" 1214SRC_URI[jiff-static-0.2.19.sha256sum] = "ff7a39c8862fc1369215ccf0a8f12dd4598c7f6484704359f0351bd617034dbf"
@@ -1126,6 +1217,7 @@ SRC_URI[jiff-tzdb-platform-0.1.3.sha256sum] = "875a5a69ac2bab1a891711cf5eccbec1c
1126SRC_URI[jobserver-0.1.34.sha256sum] = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 1217SRC_URI[jobserver-0.1.34.sha256sum] = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
1127SRC_URI[js-sys-0.3.85.sha256sum] = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" 1218SRC_URI[js-sys-0.3.85.sha256sum] = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
1128SRC_URI[keccak-0.1.6.sha256sum] = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" 1219SRC_URI[keccak-0.1.6.sha256sum] = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653"
1220SRC_URI[leb128fmt-0.1.0.sha256sum] = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
1129SRC_URI[libc-0.2.182.sha256sum] = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 1221SRC_URI[libc-0.2.182.sha256sum] = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
1130SRC_URI[libfuzzer-sys-0.4.12.sha256sum] = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" 1222SRC_URI[libfuzzer-sys-0.4.12.sha256sum] = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d"
1131SRC_URI[libm-0.2.16.sha256sum] = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 1223SRC_URI[libm-0.2.16.sha256sum] = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
@@ -1135,7 +1227,7 @@ SRC_URI[log-0.4.29.sha256sum] = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a659083
1135SRC_URI[md-5-0.10.6.sha256sum] = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 1227SRC_URI[md-5-0.10.6.sha256sum] = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
1136SRC_URI[memchr-2.8.0.sha256sum] = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 1228SRC_URI[memchr-2.8.0.sha256sum] = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
1137SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1229SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
1138SRC_URI[nix-0.30.1.sha256sum] = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 1230SRC_URI[nix-0.31.2.sha256sum] = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3"
1139SRC_URI[nom-8.0.0.sha256sum] = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 1231SRC_URI[nom-8.0.0.sha256sum] = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
1140SRC_URI[num-bigint-0.4.6.sha256sum] = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 1232SRC_URI[num-bigint-0.4.6.sha256sum] = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
1141SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1233SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
@@ -1155,14 +1247,17 @@ SRC_URI[portable-atomic-1.13.1.sha256sum] = "c33a9471896f1c69cecef8d20cbe2f7accd
1155SRC_URI[portable-atomic-util-0.2.5.sha256sum] = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" 1247SRC_URI[portable-atomic-util-0.2.5.sha256sum] = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
1156SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 1248SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
1157SRC_URI[ppv-lite86-0.2.21.sha256sum] = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1249SRC_URI[ppv-lite86-0.2.21.sha256sum] = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
1250SRC_URI[prettyplease-0.2.37.sha256sum] = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
1158SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 1251SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
1159SRC_URI[procfs-0.18.0.sha256sum] = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" 1252SRC_URI[procfs-0.18.0.sha256sum] = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7"
1160SRC_URI[procfs-core-0.18.0.sha256sum] = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" 1253SRC_URI[procfs-core-0.18.0.sha256sum] = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405"
1161SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" 1254SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
1162SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1255SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
1163SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 1256SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
1257SRC_URI[rand-0.10.0.sha256sum] = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
1164SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1258SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1165SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 1259SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
1260SRC_URI[rand_core-0.10.0.sha256sum] = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
1166SRC_URI[rayon-1.11.0.sha256sum] = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 1261SRC_URI[rayon-1.11.0.sha256sum] = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
1167SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 1262SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
1168SRC_URI[regex-1.12.3.sha256sum] = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 1263SRC_URI[regex-1.12.3.sha256sum] = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
@@ -1173,23 +1268,25 @@ SRC_URI[rustc-hash-2.1.1.sha256sum] = "357703d41365b4b27c590e3ed91eabb1b663f07c4
1173SRC_URI[rustix-1.1.4.sha256sum] = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 1268SRC_URI[rustix-1.1.4.sha256sum] = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
1174SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1269SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1175SRC_URI[self_cell-1.2.2.sha256sum] = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" 1270SRC_URI[self_cell-1.2.2.sha256sum] = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
1271SRC_URI[semver-1.0.27.sha256sum] = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
1176SRC_URI[serde-1.0.228.sha256sum] = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1272SRC_URI[serde-1.0.228.sha256sum] = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
1177SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1273SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
1178SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1274SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
1275SRC_URI[serde_json-1.0.149.sha256sum] = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
1179SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1276SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
1180SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 1277SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
1181SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 1278SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
1182SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1279SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
1183SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 1280SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
1184SRC_URI[similar-2.7.0.sha256sum] = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" 1281SRC_URI[similar-3.0.0.sha256sum] = "26d0b06eba54f0ca0770f970a3e89823e766ca638dd940f8469fa0fa50c75396"
1185SRC_URI[sm3-0.4.2.sha256sum] = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860" 1282SRC_URI[sm3-0.5.0.sha256sum] = "da6a89ba31723d185fd7413b98c576a575f356d9b84729d8ecb6ead60000a5b6"
1186SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1283SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1187SRC_URI[spin-0.10.0.sha256sum] = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" 1284SRC_URI[spin-0.10.0.sha256sum] = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591"
1188SRC_URI[stable_deref_trait-1.2.1.sha256sum] = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1285SRC_URI[stable_deref_trait-1.2.1.sha256sum] = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1189SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1286SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
1190SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" 1287SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
1191SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1288SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
1192SRC_URI[tempfile-3.26.0.sha256sum] = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" 1289SRC_URI[tempfile-3.27.0.sha256sum] = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
1193SRC_URI[terminal_size-0.4.3.sha256sum] = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 1290SRC_URI[terminal_size-0.4.3.sha256sum] = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
1194SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 1291SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
1195SRC_URI[thiserror-impl-2.0.18.sha256sum] = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 1292SRC_URI[thiserror-impl-2.0.18.sha256sum] = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
@@ -1201,6 +1298,7 @@ SRC_URI[unic-langid-0.9.6.sha256sum] = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84c
1201SRC_URI[unic-langid-impl-0.9.6.sha256sum] = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" 1298SRC_URI[unic-langid-impl-0.9.6.sha256sum] = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658"
1202SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1299SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
1203SRC_URI[unicode-width-0.2.2.sha256sum] = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 1300SRC_URI[unicode-width-0.2.2.sha256sum] = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
1301SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
1204SRC_URI[unit-prefix-0.5.2.sha256sum] = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" 1302SRC_URI[unit-prefix-0.5.2.sha256sum] = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3"
1205SRC_URI[utf16_iter-1.0.5.sha256sum] = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 1303SRC_URI[utf16_iter-1.0.5.sha256sum] = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
1206SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1304SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
@@ -1209,10 +1307,14 @@ SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5
1209SRC_URI[vsimd-0.8.0.sha256sum] = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" 1307SRC_URI[vsimd-0.8.0.sha256sum] = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
1210SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1308SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
1211SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 1309SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
1310SRC_URI[wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.sha256sum] = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
1212SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" 1311SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
1213SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" 1312SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
1214SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" 1313SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
1215SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" 1314SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
1315SRC_URI[wasm-encoder-0.244.0.sha256sum] = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
1316SRC_URI[wasm-metadata-0.244.0.sha256sum] = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
1317SRC_URI[wasmparser-0.244.0.sha256sum] = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
1216SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1" 1318SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
1217SRC_URI[winapi-util-0.1.11.sha256sum] = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 1319SRC_URI[winapi-util-0.1.11.sha256sum] = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
1218SRC_URI[windows-core-0.62.2.sha256sum] = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 1320SRC_URI[windows-core-0.62.2.sha256sum] = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
@@ -1234,6 +1336,11 @@ SRC_URI[windows_x86_64_gnullvm-0.53.1.sha256sum] = "0ffa179e2d07eee8ad8f57493436
1234SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 1336SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
1235SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 1337SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
1236SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 1338SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
1339SRC_URI[wit-bindgen-core-0.51.0.sha256sum] = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
1340SRC_URI[wit-bindgen-rust-0.51.0.sha256sum] = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
1341SRC_URI[wit-bindgen-rust-macro-0.51.0.sha256sum] = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
1342SRC_URI[wit-component-0.244.0.sha256sum] = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
1343SRC_URI[wit-parser-0.244.0.sha256sum] = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
1237SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 1344SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
1238SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 1345SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
1239SRC_URI[yoke-0.8.1.sha256sum] = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 1346SRC_URI[yoke-0.8.1.sha256sum] = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
@@ -1246,3 +1353,4 @@ SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcb
1246SRC_URI[zerotrie-0.2.3.sha256sum] = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 1353SRC_URI[zerotrie-0.2.3.sha256sum] = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
1247SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 1354SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
1248SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 1355SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
1356SRC_URI[zmij-1.0.21.sha256sum] = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.7.0.bb b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.8.0.bb
index 5103d86e92..8b9b4dc199 100644
--- a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.7.0.bb
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.8.0.bb
@@ -11,7 +11,7 @@ SRC_URI = " \
11 git://github.com/uutils/coreutils.git;protocol=https;branch=main;tag=${PV} \ 11 git://github.com/uutils/coreutils.git;protocol=https;branch=main;tag=${PV} \
12" 12"
13 13
14SRCREV = "995c9e04a6cc34a3a95b23a26fa59ae87e7744bd" 14SRCREV = "c4093734e2ebe2efb7d65e216cd1444664bcf26a"
15 15
16require ${BPN}-crates.inc 16require ${BPN}-crates.inc
17 17
diff --git a/meta-oe/recipes-crypto/botan/botan_3.11.0.bb b/meta-oe/recipes-crypto/botan/botan_3.11.1.bb
index e60d826459..2d6b64ad64 100644
--- a/meta-oe/recipes-crypto/botan/botan_3.11.0.bb
+++ b/meta-oe/recipes-crypto/botan/botan_3.11.1.bb
@@ -6,7 +6,7 @@ SECTION = "libs"
6 6
7SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz \ 7SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz \
8 file://run-ptest" 8 file://run-ptest"
9SRC_URI[sha256sum] = "e8dd48556818da2c03a9a30932ad05db9e50b12fec90809301ecc64ea51bd11e" 9SRC_URI[sha256sum] = "c1cd7152519f4188591fa4f6ddeb116bc1004491f5f3c58aa99b00582eb8a137"
10 10
11S = "${UNPACKDIR}/Botan-${PV}" 11S = "${UNPACKDIR}/Botan-${PV}"
12 12
@@ -65,3 +65,6 @@ FILES:${PN}-test = "${bindir}/botan-test ${datadir}/${PN}/tests/data"
65COMPATIBLE_HOST:riscv32 = "null" 65COMPATIBLE_HOST:riscv32 = "null"
66 66
67BBCLASSEXTEND = "native nativesdk" 67BBCLASSEXTEND = "native nativesdk"
68
69CVE_STATUS[CVE-2026-32877] = "fixed-version: fixed since 3.11.0"
70CVE_STATUS[CVE-2026-32883] = "fixed-version: fixed since 3.11.0"
diff --git a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.4.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.6.bb
index 34755fc3ad..c74b7a1f35 100644
--- a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.4.bb
+++ b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.8.6.bb
@@ -24,7 +24,7 @@ DEPENDS:append:libc-musl = " argp-standalone"
24LDFLAGS:append:libc-musl = " -largp" 24LDFLAGS:append:libc-musl = " -largp"
25 25
26SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz" 26SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
27SRC_URI[sha256sum] = "443e46f8964c9acc780f455afbb8e23aa0e8ed7ec504cfc59e04f406fa1e8a83" 27SRC_URI[sha256sum] = "8004265fd993885d08f7b633dbe056851de1a210307613a4ebddc743fccefe5a"
28 28
29inherit autotools gettext pkgconfig 29inherit autotools gettext pkgconfig
30 30
diff --git a/meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.0.bb b/meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.2.bb
index 7c9187ab94..4c42b77490 100644
--- a/meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.0.bb
+++ b/meta-oe/recipes-crypto/leancrypto/leancrypto_1.7.2.bb
@@ -14,11 +14,12 @@ SECTION = "libs"
14SRC_URI = "git://github.com/smuellerDD/leancrypto.git;branch=master;protocol=https;tag=v${PV} \ 14SRC_URI = "git://github.com/smuellerDD/leancrypto.git;branch=master;protocol=https;tag=v${PV} \
15 file://leancrypto-tests.sh \ 15 file://leancrypto-tests.sh \
16 " 16 "
17# SRCREV tagged v1.7.0 17SRCREV = "8a3e942baa3388ec9597c35005264ef9aefbf97c"
18SRCREV = "e60fba94e8cabf1661a1da488b78b84a4fba56e9"
19 18
20inherit pkgconfig meson 19inherit pkgconfig meson
21 20
21CVE_STATUS[CVE-2026-34610] = "fixed-version: fixed since v1.7.1"
22
22EXTRA_OEMESON = "-Dstrip=false" 23EXTRA_OEMESON = "-Dstrip=false"
23TARGET_LDFLAGS:append = " ${DEBUG_PREFIX_MAP}" 24TARGET_LDFLAGS:append = " ${DEBUG_PREFIX_MAP}"
24 25
diff --git a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
index 7d27081964..532c9e29df 100644
--- a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
+++ b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
@@ -9,6 +9,8 @@ SRC_URI = "git://github.com/smuellerDD/libkcapi.git;branch=master;protocol=https
9 9
10inherit autotools 10inherit autotools
11 11
12CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
13
12PACKAGECONFIG ??= "" 14PACKAGECONFIG ??= ""
13PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash" 15PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash"
14PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,," 16PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
diff --git a/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
index c55a01d3b9..fca29eed05 100644
--- a/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
+++ b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
@@ -16,6 +16,8 @@ UPSTREAM_CHECK_REGEX = "Libmcrypt/(?P<pver>\d+(\.\d+)+)/"
16 16
17inherit autotools-brokensep gettext binconfig multilib_script 17inherit autotools-brokensep gettext binconfig multilib_script
18 18
19CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
20
19CFLAGS += "-Wno-error=implicit-int" 21CFLAGS += "-Wno-error=implicit-int"
20 22
21do_configure() { 23do_configure() {
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium/0001-Fix-compilation-with-GCC-on-aarch64.patch b/meta-oe/recipes-crypto/libsodium/libsodium/0001-Fix-compilation-with-GCC-on-aarch64.patch
deleted file mode 100644
index c5c0d12b87..0000000000
--- a/meta-oe/recipes-crypto/libsodium/libsodium/0001-Fix-compilation-with-GCC-on-aarch64.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From fc66d1bd0d3db6392424a1fd10dcf4343ce72c52 Mon Sep 17 00:00:00 2001
2From: Frank Denis <github@pureftpd.org>
3Date: Wed, 7 Jan 2026 12:00:49 +0100
4Subject: [PATCH] Fix compilation with GCC on aarch64
5
6Use unsigned NEON intrinsics everywhere
7
8Fixes #1502
9
10Upstream-Status: Backport [https://github.com/jedisct1/libsodium/commit/6702f69bef6044163acc7715e6ac7e430890ce78]
11---
12 src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c | 14 +++++++-------
13 1 file changed, 7 insertions(+), 7 deletions(-)
14
15diff --git a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
16index c5a27e92..bad4ce38 100644
17--- a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
18+++ b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
19@@ -37,7 +37,7 @@ typedef uint64x2_t BlockVec;
20 # define XOR128_3(a, b, c) veorq_u64(veorq_u64((a), (b)), (c))
21 # define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1)
22 # define BYTESHL128(a, b) \
23- vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_u64(a), 16 - (b)))
24+ vreinterpretq_u64_u8(vextq_u8(vdupq_n_u8(0), vreinterpretq_u8_u64(a), 16 - (b)))
25
26 # define AES_XENCRYPT(block_vec, rkey) \
27 vreinterpretq_u64_u8( \
28@@ -348,12 +348,12 @@ pfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_va
29 static void
30 pfx_shift_left(uint8_t ip16[16])
31 {
32- BlockVec v = LOAD128(ip16);
33- const BlockVec shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1);
34- const BlockVec msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7);
35- const BlockVec zero = vdupq_n_u8(0);
36- const BlockVec carries = vextq_u8(vreinterpretq_u8_u64(msb), zero, 1);
37- v = vreinterpretq_u64_u8(vorrq_u8(shl, carries));
38+ BlockVec v = LOAD128(ip16);
39+ const uint8x16_t shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1);
40+ const uint8x16_t msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7);
41+ const uint8x16_t zero = vdupq_n_u8(0);
42+ const uint8x16_t carries = vextq_u8(msb, zero, 1);
43+ v = vreinterpretq_u64_u8(vorrq_u8(shl, carries));
44 STORE128(ip16, v);
45 }
46
47--
482.47.3
49
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.21.bb b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.22.bb
index a1647d2a30..fbd14a8181 100644
--- a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.21.bb
+++ b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.22.bb
@@ -4,10 +4,8 @@ BUGTRACKER = "https://github.com/jedisct1/libsodium/issues"
4LICENSE = "ISC" 4LICENSE = "ISC"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=4942a8ebbbc7f2212bd68a47df264a4f" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=4942a8ebbbc7f2212bd68a47df264a4f"
6 6
7SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz \ 7SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz"
8 file://0001-Fix-compilation-with-GCC-on-aarch64.patch \ 8SRC_URI[sha256sum] = "adbdd8f16149e81ac6078a03aca6fc03b592b89ef7b5ed83841c086191be3349"
9 "
10SRC_URI[sha256sum] = "9e4285c7a419e82dedb0be63a72eea357d6943bc3e28e6735bf600dd4883feaf"
11 9
12 10
13inherit autotools 11inherit autotools
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_10.10.1.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_10.10.1.bb
index cc0e887ea5..b810911b98 100644
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_10.10.1.bb
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_10.10.1.bb
@@ -41,6 +41,7 @@ PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
41PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd" 41PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd"
42PACKAGECONFIG[liburing] = "-DWITH_LIBURING=ON,-DWITH_LIBURING=OFF,liburing" 42PACKAGECONFIG[liburing] = "-DWITH_LIBURING=ON,-DWITH_LIBURING=OFF,liburing"
43PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags" 43PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags"
44PACKAGECONFIG[rocksdb_static] = "-DROCKSDB_BUILD_STATIC=ON, -DROCKSDB_BUILD_STATIC=OFF"
44 45
45# Tools and tests currently don't compile on armv5 so we disable them 46# Tools and tests currently don't compile on armv5 so we disable them
46EXTRA_OECMAKE = "\ 47EXTRA_OECMAKE = "\
@@ -49,7 +50,6 @@ EXTRA_OECMAKE = "\
49 -DWITH_BENCHMARK_TOOLS=OFF \ 50 -DWITH_BENCHMARK_TOOLS=OFF \
50 -DWITH_TOOLS=OFF \ 51 -DWITH_TOOLS=OFF \
51 -DFAIL_ON_WARNINGS=OFF \ 52 -DFAIL_ON_WARNINGS=OFF \
52 -DROCKSDB_BUILD_STATIC=OFF \
53" 53"
54 54
55CXXFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" 55CXXFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}"
diff --git a/meta-oe/recipes-devtools/b4/b4_0.15.1.bb b/meta-oe/recipes-devtools/b4/b4_0.15.2.bb
index beb8dcbd27..002f6ccfeb 100644
--- a/meta-oe/recipes-devtools/b4/b4_0.15.1.bb
+++ b/meta-oe/recipes-devtools/b4/b4_0.15.2.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5 5
6inherit pypi python_pep517 python_setuptools_build_meta 6inherit pypi python_pep517 python_setuptools_build_meta
7 7
8SRC_URI[sha256sum] = "e48c44bb579fadabb1fc3f15bf1874afd721bc1a63fba10c96f568bc1f47ccb3" 8SRC_URI[sha256sum] = "b815f2aed2288718cfe2a14c76421a00bc4f0918ea32b45dd1645c999fdda69d"
9 9
10RDEPENDS:${PN} += " \ 10RDEPENDS:${PN} += " \
11 python3-mailbox \ 11 python3-mailbox \
diff --git a/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb b/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb
index 77f8905358..9cb2a51879 100644
--- a/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb
+++ b/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb
@@ -26,3 +26,5 @@ FILES:${PN}-utils = "${bindir}"
26BBCLASSEXTEND = "native" 26BBCLASSEXTEND = "native"
27 27
28RDEPENDS:${PN}-utils = "perl" 28RDEPENDS:${PN}-utils = "perl"
29
30CVE_STATUS[CVE-2026-23868] = "fixed-version: fixed since v6.1.2"
diff --git a/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch
new file mode 100644
index 0000000000..12a64a75ed
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch
@@ -0,0 +1,44 @@
1From 27f417f4812e688a59fc5186b7768cec004cd6e5 Mon Sep 17 00:00:00 2001
2From: Peter Kjellerstedt <peter.kjellerstedt@gmail.com>
3Date: Wed, 8 Apr 2026 05:58:49 +0200
4Subject: [PATCH] Support building with --disable-maintainer-mode and source !=
5 build dir (#3518)
6
7If --disable-maintainer-mode is enabled, then the rules for generating
8parser.[ch] and lexer.[ch] did nothing. This worked fine if the source
9and build directories are the same as the pre-generated parser.c and
10lexer.c files would suffice. However, if the build directory is not the
11same as the source directory, then the rest of the Make rules expect
12parser.[ch] and lexer.[ch] to have been created in the build directory
13if their source files (parser.y and lexer.l) are newer than the target
14files, which can happen in case the source is fetched using Git.
15
16Avoid the problem by copying the files to the build directory if needed.
17
18Co-authored-by: Peter Kjellerstedt <pkj@axis.com>
19Upstream-Status: Backport [https://github.com/jqlang/jq/commit/27f417f4812e688a59fc5186b7768cec004cd6e5]
20---
21 Makefile.am | 9 +++++++--
22 1 file changed, 7 insertions(+), 2 deletions(-)
23
24diff --git a/Makefile.am b/Makefile.am
25index 96d6038..acb9443 100644
26--- a/Makefile.am
27+++ b/Makefile.am
28@@ -41,9 +41,14 @@ src/lexer.h: src/lexer.c
29 else
30 BUILT_SOURCES = src/builtin.inc src/config_opts.inc src/version.h
31 .y.c:
32- $(AM_V_YACC) echo "NOT building parser.c!"
33+ $(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@
34+ $(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h
35+ $(AM_V_YACC) touch $@ $*.h
36+
37 .l.c:
38- $(AM_V_LEX) echo "NOT building lexer.c!"
39+ $(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@
40+ $(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h
41+ $(AM_V_LEX) touch $@ $*.h
42 endif
43
44 # Tell YACC (Bison) autoconf macros that you want a header file created.
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch
new file mode 100644
index 0000000000..1277b356d8
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch
@@ -0,0 +1,53 @@
1From 321e62b356df2d4ed47aba4f3818e447ec4d77fc Mon Sep 17 00:00:00 2001
2From: itchyny <itchyny@cybozu.co.jp>
3Date: Thu, 12 Mar 2026 20:28:43 +0900
4Subject: [PATCH] Fix heap buffer overflow in `jvp_string_append` and
5 `jvp_string_copy_replace_bad`
6
7In `jvp_string_append`, the allocation size `(currlen + len) * 2` could
8overflow `uint32_t` when `currlen + len` exceeds `INT_MAX`, causing a small
9allocation followed by a large `memcpy`.
10
11In `jvp_string_copy_replace_bad`, the output buffer size calculation
12`length * 3 + 1` could overflow `uint32_t`, again resulting in a small
13allocation followed by a large write.
14
15Add overflow checks to both functions to return an error for strings
16that would exceed `INT_MAX` in length. Fixes CVE-2026-32316.
17
18CVE: CVE-2026-32316
19Upstream-Status: Backport [https://github.com/jqlang/jq/commit/e47e56d226519635768e6aab2f38f0ab037c09e5]
20Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
21---
22 src/jv.c | 11 ++++++++++-
23 1 file changed, 10 insertions(+), 1 deletion(-)
24
25diff --git a/src/jv.c b/src/jv.c
26index e4529a4..74be05a 100644
27--- a/src/jv.c
28+++ b/src/jv.c
29@@ -1114,7 +1114,12 @@ static jv jvp_string_copy_replace_bad(const char* data, uint32_t length) {
30 const char* end = data + length;
31 const char* i = data;
32
33- uint32_t maxlength = length * 3 + 1; // worst case: all bad bytes, each becomes a 3-byte U+FFFD
34+ // worst case: all bad bytes, each becomes a 3-byte U+FFFD
35+ uint64_t maxlength = (uint64_t)length * 3 + 1;
36+ if (maxlength >= INT_MAX) {
37+ return jv_invalid_with_msg(jv_string("String too long"));
38+ }
39+
40 jvp_string* s = jvp_string_alloc(maxlength);
41 char* out = s->data;
42 int c = 0;
43@@ -1174,6 +1179,10 @@ static uint32_t jvp_string_remaining_space(jvp_string* s) {
44 static jv jvp_string_append(jv string, const char* data, uint32_t len) {
45 jvp_string* s = jvp_string_ptr(string);
46 uint32_t currlen = jvp_string_length(s);
47+ if ((uint64_t)currlen + len >= INT_MAX) {
48+ jv_free(string);
49+ return jv_invalid_with_msg(jv_string("String too long"));
50+ }
51
52 if (jvp_refcnt_unshared(string.u.ptr) &&
53 jvp_string_remaining_space(s) >= len) {
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch
new file mode 100644
index 0000000000..69a8381f06
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch
@@ -0,0 +1,104 @@
1From 5fd935884a6f5b3d8ecdcacfc5d3982140f3a478 Mon Sep 17 00:00:00 2001
2From: itchyny <itchyny@cybozu.co.jp>
3Date: Mon, 13 Apr 2026 11:23:40 +0900
4Subject: [PATCH] Limit path depth to prevent stack overflow
5
6Deeply nested path arrays can cause unbounded recursion in
7`jv_setpath`, `jv_getpath`, and `jv_delpaths`, leading to
8stack overflow. Add a depth limit of 10000 to match the
9existing `tojson` depth limit. This fixes CVE-2026-33947.
10
11CVE: CVE-2026-33947
12Upstream-Status: Backport [https://github.com/jqlang/jq/commit/fb59f1491058d58bdc3e8dd28f1773d1ac690a1f]
13Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
14---
15 src/jv_aux.c | 21 +++++++++++++++++++++
16 tests/jq.test | 25 +++++++++++++++++++++++++
17 2 files changed, 46 insertions(+)
18
19diff --git a/src/jv_aux.c b/src/jv_aux.c
20index bc1405f..594a21f 100644
21--- a/src/jv_aux.c
22+++ b/src/jv_aux.c
23@@ -375,6 +375,10 @@ static jv jv_dels(jv t, jv keys) {
24 return t;
25 }
26
27+#ifndef MAX_PATH_DEPTH
28+#define MAX_PATH_DEPTH (10000)
29+#endif
30+
31 jv jv_setpath(jv root, jv path, jv value) {
32 if (jv_get_kind(path) != JV_KIND_ARRAY) {
33 jv_free(value);
34@@ -382,6 +386,12 @@ jv jv_setpath(jv root, jv path, jv value) {
35 jv_free(path);
36 return jv_invalid_with_msg(jv_string("Path must be specified as an array"));
37 }
38+ if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) {
39+ jv_free(value);
40+ jv_free(root);
41+ jv_free(path);
42+ return jv_invalid_with_msg(jv_string("Path too deep"));
43+ }
44 if (!jv_is_valid(root)){
45 jv_free(value);
46 jv_free(path);
47@@ -434,6 +444,11 @@ jv jv_getpath(jv root, jv path) {
48 jv_free(path);
49 return jv_invalid_with_msg(jv_string("Path must be specified as an array"));
50 }
51+ if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) {
52+ jv_free(root);
53+ jv_free(path);
54+ return jv_invalid_with_msg(jv_string("Path too deep"));
55+ }
56 if (!jv_is_valid(root)) {
57 jv_free(path);
58 return root;
59@@ -511,6 +526,12 @@ jv jv_delpaths(jv object, jv paths) {
60 jv_free(elem);
61 return err;
62 }
63+ if (jv_array_length(jv_copy(elem)) > MAX_PATH_DEPTH) {
64+ jv_free(object);
65+ jv_free(paths);
66+ jv_free(elem);
67+ return jv_invalid_with_msg(jv_string("Path too deep"));
68+ }
69 jv_free(elem);
70 }
71 if (jv_array_length(jv_copy(paths)) == 0) {
72diff --git a/tests/jq.test b/tests/jq.test
73index 4ecf72f..6186d8b 100644
74--- a/tests/jq.test
75+++ b/tests/jq.test
76@@ -2507,3 +2507,28 @@ strflocaltime("" | ., @uri)
77 0
78 ""
79 ""
80+
81+# regression test for CVE-2026-33947
82+setpath([range(10000) | 0]; 0) | flatten
83+null
84+[0]
85+
86+try setpath([range(10001) | 0]; 0) catch .
87+null
88+"Path too deep"
89+
90+getpath([range(10000) | 0])
91+null
92+null
93+
94+try getpath([range(10001) | 0]) catch .
95+null
96+"Path too deep"
97+
98+delpaths([[range(10000) | 0]])
99+null
100+null
101+
102+try delpaths([[range(10001) | 0]]) catch .
103+null
104+"Path too deep"
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch
new file mode 100644
index 0000000000..8625429c74
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch
@@ -0,0 +1,49 @@
1From 19a792c4cdb6b91c056eac033ac3367af6e67755 Mon Sep 17 00:00:00 2001
2From: itchyny <itchyny@cybozu.co.jp>
3Date: Mon, 13 Apr 2026 08:46:11 +0900
4Subject: [PATCH] Fix NUL truncation in the JSON parser
5
6This fixes CVE-2026-33948.
7
8CVE: CVE-2026-33948
9Upstream-Status: Backport [https://github.com/jqlang/jq/commit/6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b]
10Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
11---
12 src/util.c | 8 +-------
13 tests/shtest | 6 ++++++
14 2 files changed, 7 insertions(+), 7 deletions(-)
15
16diff --git a/src/util.c b/src/util.c
17index bcb86da..60ec4d5 100644
18--- a/src/util.c
19+++ b/src/util.c
20@@ -309,13 +309,7 @@ static int jq_util_input_read_more(jq_util_input_state *state) {
21 if (p != NULL)
22 state->current_line++;
23
24- if (p == NULL && state->parser != NULL) {
25- /*
26- * There should be no NULs in JSON texts (but JSON text
27- * sequences are another story).
28- */
29- state->buf_valid_len = strlen(state->buf);
30- } else if (p == NULL && feof(state->current_input)) {
31+ if (p == NULL && feof(state->current_input)) {
32 size_t i;
33
34 /*
35diff --git a/tests/shtest b/tests/shtest
36index 887a6bb..a046afe 100755
37--- a/tests/shtest
38+++ b/tests/shtest
39@@ -842,4 +842,10 @@ if ! $msys && ! $mingw; then
40 fi
41 fi
42
43+# CVE-2026-33948: No NUL truncation in the JSON parser
44+if printf '{}\x00{}' | $JQ >/dev/null 2> /dev/null; then
45+ printf 'Error expected but jq exited successfully\n' 1>&2
46+ exit 1
47+fi
48+
49 exit 0
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch
new file mode 100644
index 0000000000..40c57a46a0
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch
@@ -0,0 +1,31 @@
1From ac09f274b6c029a23e3dffc38afac819b5daacc4 Mon Sep 17 00:00:00 2001
2From: itchyny <itchyny@cybozu.co.jp>
3Date: Mon, 13 Apr 2026 11:04:52 +0900
4Subject: [PATCH] Fix out-of-bounds read in jv_parse_sized()
5
6This fixes CVE-2026-39979.
7
8Co-authored-by: Mattias Wadman <mattias.wadman@gmail.com>
9
10CVE: CVE-2026-39979
11Upstream-Status: Backport [https://github.com/jqlang/jq/commit/2f09060afab23fe9390cce7cb860b10416e1bf5f]
12Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
13---
14 src/jv_parse.c | 3 ++-
15 1 file changed, 2 insertions(+), 1 deletion(-)
16
17diff --git a/src/jv_parse.c b/src/jv_parse.c
18index ffcf51f..e6b8aa9 100644
19--- a/src/jv_parse.c
20+++ b/src/jv_parse.c
21@@ -892,8 +892,9 @@ jv jv_parse_sized_custom_flags(const char* string, int length, int flags) {
22
23 if (!jv_is_valid(value) && jv_invalid_has_msg(jv_copy(value))) {
24 jv msg = jv_invalid_get_msg(value);
25- value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%s')",
26+ value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%.*s')",
27 jv_string_value(msg),
28+ length,
29 string));
30 jv_free(msg);
31 }
diff --git a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
index b9383c76f7..026f6bfa71 100644
--- a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
+++ b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb
@@ -8,15 +8,20 @@ SECTION = "utils"
8LICENSE = "MIT & BSD-2-Clause" 8LICENSE = "MIT & BSD-2-Clause"
9LIC_FILES_CHKSUM = "file://COPYING;md5=cf7fcb0a1def4a7ad62c028f7d0dca47" 9LIC_FILES_CHKSUM = "file://COPYING;md5=cf7fcb0a1def4a7ad62c028f7d0dca47"
10 10
11GITHUB_BASE_URI = "https://github.com/jqlang/${BPN}/releases/" 11SRCREV = "4467af7068b1bcd7f882defff6e7ea674c5357f4"
12SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
13 file://run-ptest \
14 "
15SRC_URI[sha256sum] = "2be64e7129cecb11d5906290eba10af694fb9e3e7f9fc208a311dc33ca837eb0"
16 12
17inherit autotools github-releases ptest 13SRC_URI = "git://github.com/jqlang/jq.git;protocol=https;branch=master;tag=jq-${PV} \
14 file://run-ptest \
15 file://0001-Support-building-with-disable-maintainer-mode-and-so.patch \
16 file://CVE-2026-32316.patch \
17 file://CVE-2026-33947.patch \
18 file://CVE-2026-33948.patch \
19 file://CVE-2026-39979.patch \
20 "
18 21
19UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)" 22inherit autotools ptest
23
24UPSTREAM_CHECK_GITTAGREGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
20 25
21PACKAGECONFIG ?= "oniguruma" 26PACKAGECONFIG ?= "oniguruma"
22 27
diff --git a/meta-oe/recipes-devtools/jsoncpp/files/run-ptest b/meta-oe/recipes-devtools/jsoncpp/files/run-ptest
new file mode 100644
index 0000000000..2cb892b187
--- /dev/null
+++ b/meta-oe/recipes-devtools/jsoncpp/files/run-ptest
@@ -0,0 +1,4 @@
1#!/bin/sh
2
3cd src
4ctest --force-new-ctest-process | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb
index b70a84304f..797f093f33 100644
--- a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb
+++ b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb
@@ -14,11 +14,33 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926"
14PE = "1" 14PE = "1"
15 15
16SRCREV = "3455302847cf1e4671f1d8f5fa953fd46a7b1404" 16SRCREV = "3455302847cf1e4671f1d8f5fa953fd46a7b1404"
17SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https;tag=${PV}" 17SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https;tag=${PV} \
18 18 file://run-ptest \
19 19 "
20inherit cmake 20
21 21inherit cmake ptest
22EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF -DJSONCPP_WITH_TESTS=OFF" 22
23EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF \
24 ${@bb.utils.contains('PTEST_ENABLED', '1', '-DJSONCPP_WITH_TESTS=ON -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF', '-DJSONCPP_WITH_TESTS=OFF', d)} \
25 "
26
27DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}"
28RDEPENDS:${PN}-ptest += "cmake python3-core"
29
30do_install_ptest () {
31 cp -r ${B}/bin ${D}${PTEST_PATH}
32 cp -r ${S}/test ${D}${PTEST_PATH}
33
34 rsync -a ${B}/src ${D}${PTEST_PATH} \
35 --exclude CMakeFiles \
36 --exclude cmake_install.cmake \
37 --exclude Makefile \
38 --exclude generated
39 sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
40 sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
41 sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
42 sed -i -e 's#${PYTHON}#/usr/bin/python3#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
43 sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
44}
23 45
24BBCLASSEXTEND = "native nativesdk" 46BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch b/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch
new file mode 100644
index 0000000000..5bff81eaf6
--- /dev/null
+++ b/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch
@@ -0,0 +1,34 @@
1From 6af7de3d5eaae59c53c42aab8eca1e1e9a365da5 Mon Sep 17 00:00:00 2001
2From: Steffen Winter <steffen.winter@proton.me>
3Date: Thu, 25 Dec 2025 20:48:02 +0100
4Subject: [PATCH] Remove more whitespaces after operator""
5
6Upstream-Status: Submitted [https://github.com/ToruNiina/toml11/pull/306]
7Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
8---
9 include/toml11/fwd/literal_fwd.hpp | 4 ++--
10 include/toml11/impl/literal_impl.hpp | 4 ++--
11 2 files changed, 4 insertions(+), 4 deletions(-)
12
13--- a/include/toml11/fwd/literal_fwd.hpp
14+++ b/include/toml11/fwd/literal_fwd.hpp
15@@ -24,7 +24,7 @@ inline namespace toml_literals
16 #if defined(TOML11_HAS_CHAR8_T)
17 // value of u8"" literal has been changed from char to char8_t and char8_t is
18 // NOT compatible to char
19-::toml::value operator"" _toml(const char8_t* str, std::size_t len);
20+::toml::value operator""_toml(const char8_t* str, std::size_t len);
21 #endif
22
23 } // toml_literals
24--- a/include/toml11/impl/literal_impl.hpp
25+++ b/include/toml11/impl/literal_impl.hpp
26@@ -146,7 +146,7 @@ operator""_toml(const char* str, std::si
27 // value of u8"" literal has been changed from char to char8_t and char8_t is
28 // NOT compatible to char
29 TOML11_INLINE ::toml::value
30-operator"" _toml(const char8_t* str, std::size_t len)
31+operator""_toml(const char8_t* str, std::size_t len)
32 {
33 if(len == 0)
34 {
diff --git a/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb b/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb
index 7e097e4612..49f9840f06 100644
--- a/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb
+++ b/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb
@@ -16,12 +16,15 @@ PE = "1"
16SRC_URI = "\ 16SRC_URI = "\
17 gitsm://github.com/ToruNiina/toml11.git;protocol=https;branch=main;tag=v${PV} \ 17 gitsm://github.com/ToruNiina/toml11.git;protocol=https;branch=main;tag=v${PV} \
18 file://0001-Remove-whitespace-in-operator.patch \ 18 file://0001-Remove-whitespace-in-operator.patch \
19 file://0001-Remove-more-whitespaces-after-operator.patch \
19 file://run-ptest \ 20 file://run-ptest \
20" 21"
21SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" 22SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286"
22 23
23inherit cmake ptest 24inherit cmake ptest
24 25
26CXXFLAGS:append:toolchain-clang = " -Wno-error=c2y-extensions"
27
25EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \ 28EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \
26 -DTOML11_BUILD_TESTS=${@bb.utils.contains("PTEST_ENABLED", "1", "ON", "OFF", d)} \ 29 -DTOML11_BUILD_TESTS=${@bb.utils.contains("PTEST_ENABLED", "1", "ON", "OFF", d)} \
27" 30"
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.20.bb b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb
index 95e2084255..2f1367341a 100644
--- a/meta-oe/recipes-devtools/lshw/lshw_02.20.bb
+++ b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb
@@ -32,11 +32,11 @@ EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} RPM_OPT_FLAGS='${CFLAGS}'"
32 32
33do_compile() { 33do_compile() {
34 # build core only - don't ship gui 34 # build core only - don't ship gui
35 oe_runmake -C src core 35 oe_runmake -C src SBINDIR=${sbindir} core
36} 36}
37 37
38do_install() { 38do_install() {
39 oe_runmake install DESTDIR=${D} 39 oe_runmake install DESTDIR=${D} SBINDIR=${sbindir}
40} 40}
41 41
42BBCLASSEXTEND = "native" 42BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
deleted file mode 100644
index 61932269bd..0000000000
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
+++ /dev/null
@@ -1,86 +0,0 @@
1From 491b3b153f6b5cbf2d23a9778e5676eb29a6705f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 6 Feb 2023 16:37:19 -0800
4Subject: [PATCH] Fix type of single bit bitfields
5
6clang16 warns
7trace.c:311:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
8
9quash the warning by using an unsigned type to allow
10an assignment of 0 or 1 without implicit conversion.
11
12Upstream-Status: Pending
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 library.h | 6 +++---
16 prototype.h | 2 +-
17 sysdeps/linux-gnu/trace.h | 10 +++++-----
18 3 files changed, 9 insertions(+), 9 deletions(-)
19
20--- a/library.h
21+++ b/library.h
22@@ -71,20 +71,20 @@ struct library_symbol {
23 * looking up one in LIB->protolib. */
24 struct prototype *proto;
25
26- int own_name : 1;
27+ unsigned int own_name : 1;
28
29 /* This is relevant for PLT symbols. Latent PLT symbols are
30 * those that don't match any of the -e rules, but that might
31 * potentially become active if a library implementing them
32 * appears that matches a -l rule. Ltrace core is responsible
33 * for clearing latent flag. */
34- int latent : 1;
35+ unsigned latent : 1;
36
37 /* Delayed symbols are those for which a breakpoint shouldn't
38 * be enabled yet. They are similar to latent symbols, but
39 * backend is responsible for clearing the delayed flag. See
40 * proc_activate_delayed_symbol. */
41- int delayed : 1;
42+ unsigned int delayed : 1;
43
44 struct arch_library_symbol_data arch;
45 struct os_library_symbol_data os;
46--- a/prototype.h
47+++ b/prototype.h
48@@ -162,7 +162,7 @@ struct protolib_cache {
49
50 /* For tracking uses of cache during cache's own
51 * initialization. */
52- int bootstrap : 1;
53+ unsigned int bootstrap : 1;
54 };
55
56 /* Initialize CACHE. Returns 0 on success or a negative value on
57--- a/sysdeps/linux-gnu/trace.h
58+++ b/sysdeps/linux-gnu/trace.h
59@@ -33,11 +33,11 @@
60 struct pid_task {
61 pid_t pid; /* This may be 0 for tasks that exited
62 * mid-handling. */
63- int sigstopped : 1;
64- int got_event : 1;
65- int delivered : 1;
66- int vforked : 1;
67- int sysret : 1;
68+ unsigned int sigstopped : 1;
69+ unsigned int got_event : 1;
70+ unsigned int delivered : 1;
71+ unsigned int vforked : 1;
72+ unsigned int sysret : 1;
73 };
74
75 struct pid_set {
76--- a/sysdeps/linux-gnu/trace.c
77+++ b/sysdeps/linux-gnu/trace.c
78@@ -1043,7 +1043,7 @@ ltrace_exiting_install_handler(struct pr
79 struct process_vfork_handler
80 {
81 struct event_handler super;
82- int vfork_bp_refd:1;
83+ unsigned int vfork_bp_refd:1;
84 };
85
86 static Event *
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch
deleted file mode 100644
index f3a6d9e599..0000000000
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From c1d3aaf5ec810c2594938438c7b4ccd20943f255 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 7 Jul 2017 10:20:52 -0700
4Subject: [PATCH] configure: Recognise linux-musl as a host OS
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 configure.ac | 1 +
11 1 file changed, 1 insertion(+)
12
13diff --git a/configure.ac b/configure.ac
14index 3e8667f..95d6642 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -35,6 +35,7 @@ AC_CANONICAL_HOST
18 case "${host_os}" in
19 linux-gnu*) HOST_OS="linux-gnu" ;;
20 linux-uclibc*) HOST_OS="linux-gnu" ;;
21+ linux-musl*) HOST_OS="linux-gnu" ;;
22 *) AC_MSG_ERROR([unkown host-os ${host_os}]) ;;
23 esac
24 AC_SUBST(HOST_OS)
25--
262.13.2
27
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch
new file mode 100644
index 0000000000..e7aa0fdabe
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch
@@ -0,0 +1,34 @@
1From d568c0cbdecf31a7020f2a0574470d014f447a86 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sun, 12 Apr 2026 00:07:06 -0700
4Subject: [PATCH] dwarf_prototypes: return NULL from NEXT_SIBLING on error
5
6NEXT_SIBLING is used in functions that return pointers, so returning
7false on error is misleading and relies on implicit conversion.
8Return (void *)0 instead to make the failure value explicit and match
9the surrounding function return type.
10
11This is flagged by clang-22 due to
12Replacing return false with return (void *)0
13avoids clang's -Wbool-conversion error when the macro expands
14inside functions returning a pointer type.
15
16Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/30]
17Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
18---
19 dwarf_prototypes.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/dwarf_prototypes.c b/dwarf_prototypes.c
23index bfac177..e7ea1bc 100644
24--- a/dwarf_prototypes.c
25+++ b/dwarf_prototypes.c
26@@ -36,7 +36,7 @@
27 #define NEXT_SIBLING(die) \
28 int res = dwarf_siblingof(die, die); \
29 if (res == 0) continue; /* sibling exists */ \
30- if (res < 0) return false; /* error */ \
31+ if (res < 0) return (void *)0; /* error */ \
32 break /* no sibling exists */
33
34 static struct arg_type_info *get_type(int *newly_allocated_info,
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch
new file mode 100644
index 0000000000..0f8a9766f4
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch
@@ -0,0 +1,86 @@
1From 65c5a621a366a25b8572cd29c01b4aa92c02903a Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sun, 12 Apr 2026 00:46:20 -0700
4Subject: [PATCH] trace: fix 1-bit bitfield assignments for clang
5 -Wsingle-bit-bitfield-constant-conversion
6
7Replace '1' with 'true' for all 1-bit signed bitfield assignments.
8Assigning integer 1 to a 1-bit signed bitfield truncates to -1; using
9'true' which is a bool is well-defined and avoids the clang error.
10
11Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/30]
12Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
13---
14 ltrace-elf.c | 2 +-
15 sysdeps/linux-gnu/trace.c | 12 ++++++------
16 2 files changed, 7 insertions(+), 7 deletions(-)
17
18diff --git a/ltrace-elf.c b/ltrace-elf.c
19index beaf69f..2be609c 100644
20--- a/ltrace-elf.c
21+++ b/ltrace-elf.c
22@@ -819,7 +819,7 @@ mark_chain_latent(struct library_symbol *libsym)
23 {
24 for (; libsym != NULL; libsym = libsym->next) {
25 debug(DEBUG_FUNCTION, "marking %s latent", libsym->name);
26- libsym->latent = 1;
27+ libsym->latent = true;
28 }
29 }
30
31diff --git a/sysdeps/linux-gnu/trace.c b/sysdeps/linux-gnu/trace.c
32index 12c8747..b7f4c57 100644
33--- a/sysdeps/linux-gnu/trace.c
34+++ b/sysdeps/linux-gnu/trace.c
35@@ -310,13 +310,13 @@ send_sigstop(struct process *task, void *data)
36 * weed out unnecessary looping. */
37 if (st == PS_SLEEPING
38 && is_vfork_parent(task)) {
39- task_info->vforked = 1;
40+ task_info->vforked = true;
41 return CBS_CONT;
42 }
43
44 if (task_kill(task->pid, SIGSTOP) >= 0) {
45 debug(DEBUG_PROCESS, "send SIGSTOP to %d", task->pid);
46- task_info->sigstopped = 1;
47+ task_info->sigstopped = true;
48 } else
49 fprintf(stderr,
50 "Warning: couldn't send SIGSTOP to %d\n", task->pid);
51@@ -442,7 +442,7 @@ handle_stopping_event(struct pid_task *task_info, Event **eventp)
52 {
53 /* Mark all events, so that we know whom to SIGCONT later. */
54 if (task_info != NULL)
55- task_info->got_event = 1;
56+ task_info->got_event = true;
57
58 Event *event = *eventp;
59
60@@ -454,7 +454,7 @@ handle_stopping_event(struct pid_task *task_info, Event **eventp)
61 debug(DEBUG_PROCESS, "SIGSTOP delivered to %d", task_info->pid);
62 if (task_info->sigstopped
63 && !task_info->delivered) {
64- task_info->delivered = 1;
65+ task_info->delivered = true;
66 *eventp = NULL; // sink the event
67 } else
68 fprintf(stderr, "suspicious: %d got SIGSTOP, but "
69@@ -748,7 +748,7 @@ process_stopping_on_event(struct event_handler *super, Event *event)
70 debug(1, "%d LT_EV_SYSRET", event->proc->pid);
71 event_to_queue = 0;
72 if (task_info != NULL)
73- task_info->sysret = 1;
74+ task_info->sysret = true;
75 }
76
77 switch (state) {
78@@ -1070,7 +1070,7 @@ process_vfork_on_event(struct event_handler *super, Event *event)
79 &event->e_un.brk_addr, &sbp);
80 assert(sbp != NULL);
81 breakpoint_turn_on(sbp, proc->leader);
82- self->vfork_bp_refd = 1;
83+ self->vfork_bp_refd = true;
84 }
85 break;
86
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-oe/recipes-devtools/ltrace/ltrace_0.8.1.bb
index f84d989eef..77bb61830b 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-oe/recipes-devtools/ltrace/ltrace_0.8.1.bb
@@ -9,25 +9,24 @@ HOMEPAGE = "http://ltrace.org/"
9LICENSE = "GPL-2.0-only" 9LICENSE = "GPL-2.0-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" 10LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
11 11
12PE = "1" 12PE = "2"
13PV = "7.91+git" 13SRCREV = "7ef6e6097586b751cce298c256a919404dab259d"
14SRCREV = "8eabf684ba6b11ae7a1a843aca3c0657c6329d73"
15 14
16DEPENDS = "elfutils" 15DEPENDS = "elfutils"
17SRC_URI = "git://gitlab.com/cespedes/ltrace.git;protocol=https;branch=main \ 16SRC_URI = "git://gitlab.com/cespedes/ltrace.git;protocol=https;branch=main;tag=${PV} \
18 file://configure-allow-to-disable-selinux-support.patch \ 17 file://configure-allow-to-disable-selinux-support.patch \
19 file://0001-Use-correct-enum-type.patch \ 18 file://0001-Use-correct-enum-type.patch \
20 file://0002-Fix-const-qualifier-error.patch \ 19 file://0002-Fix-const-qualifier-error.patch \
21 file://0001-Add-support-for-mips64-n32-n64.patch \ 20 file://0001-Add-support-for-mips64-n32-n64.patch \
22 file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \
23 file://0001-mips-plt.c-Delete-include-error.h.patch \ 21 file://0001-mips-plt.c-Delete-include-error.h.patch \
24 file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ 22 file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \
25 file://0001-hook-Do-not-append-int-to-std-string.patch \ 23 file://0001-hook-Do-not-append-int-to-std-string.patch \
26 file://0001-Bug-fix-for-data-type-length-judgment.patch \ 24 file://0001-Bug-fix-for-data-type-length-judgment.patch \
27 file://0001-ppc-Remove-unused-host_powerpc64-function.patch \ 25 file://0001-ppc-Remove-unused-host_powerpc64-function.patch \
28 file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \ 26 file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \
29 file://0001-Fix-type-of-single-bit-bitfields.patch \
30 file://0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch \ 27 file://0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch \
28 file://0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch \
29 file://0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch \
31 " 30 "
32SRC_URI:append:libc-musl = " file://add_ppc64le.patch" 31SRC_URI:append:libc-musl = " file://add_ppc64le.patch"
33 32
diff --git a/meta-oe/recipes-devtools/mpich/mpich_5.0.0.bb b/meta-oe/recipes-devtools/mpich/mpich_5.0.1.bb
index 505fc6f92b..55f6cde82f 100644
--- a/meta-oe/recipes-devtools/mpich/mpich_5.0.0.bb
+++ b/meta-oe/recipes-devtools/mpich/mpich_5.0.1.bb
@@ -6,7 +6,7 @@ LICENSE = "BSD-2-Clause"
6LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3a296dfb961b957b0e8adf67d8478d3d" 6LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3a296dfb961b957b0e8adf67d8478d3d"
7 7
8SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz" 8SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
9SRC_URI[sha256sum] = "e9350e32224283e95311f22134f36c98e3cd1c665d17fae20a6cc92ed3cffe11" 9SRC_URI[sha256sum] = "8c1832a13ddacf071685069f5fadfd1f2877a29e1a628652892c65211b1f3327"
10 10
11RDEPENDS:${PN} += "bash perl libxml2" 11RDEPENDS:${PN} += "bash perl libxml2"
12 12
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb b/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb
index 8bd5f008af..3a1385f70a 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb
@@ -214,3 +214,11 @@ python __anonymous () {
214} 214}
215 215
216BBCLASSEXTEND = "native" 216BBCLASSEXTEND = "native"
217
218CVE_STATUS[CVE-2026-21710] = "fixed-version: fixed since v22.22.2"
219CVE_STATUS[CVE-2026-21712] = "cpe-incorrect: only v24 and v25 are affected"
220CVE_STATUS[CVE-2026-21713] = "fixed-version: fixed since v22.22.2"
221CVE_STATUS[CVE-2026-21714] = "fixed-version: fixed since v22.22.2"
222CVE_STATUS[CVE-2026-21715] = "fixed-version: fixed since v22.22.2"
223CVE_STATUS[CVE-2026-21716] = "fixed-version: fixed since v22.22.2"
224CVE_STATUS[CVE-2026-21717] = "fixed-version: fixed since v22.22.2"
diff --git a/meta-oe/recipes-devtools/php/php_8.5.4.bb b/meta-oe/recipes-devtools/php/php_8.5.5.bb
index efa778b6d8..2924b478ad 100644
--- a/meta-oe/recipes-devtools/php/php_8.5.4.bb
+++ b/meta-oe/recipes-devtools/php/php_8.5.5.bb
@@ -32,7 +32,7 @@ UPSTREAM_CHECK_REGEX = "releases/tag/php-(?P<pver>\d+(\.\d+)+)"
32 32
33S = "${UNPACKDIR}/php-${PV}" 33S = "${UNPACKDIR}/php-${PV}"
34 34
35SRC_URI[sha256sum] = "2ac929a29a6b7ef4b8acec981a417b91bdf7f548f597df665cc56ab9ea95fc75" 35SRC_URI[sha256sum] = "ee262beff61c431965d1f97192854b36208adeac38983c3498bb3500ae87283c"
36 36
37CVE_STATUS_GROUPS += "CVE_STATUS_PHP" 37CVE_STATUS_GROUPS += "CVE_STATUS_PHP"
38CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored." 38CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored."
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch
deleted file mode 100644
index 1aae1f17b0..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch
+++ /dev/null
@@ -1,1446 +0,0 @@
1From b28683f8027bf1e886b748b5603eb16d203b5a92 Mon Sep 17 00:00:00 2001
2From: Robert Edmonds <edmonds@users.noreply.github.com>
3Date: Sat, 8 Feb 2025 18:18:33 -0500
4Subject: [PATCH 01/11] protoc-gen-c/c_helpers.h: Move compat defines into new
5 header file compat.h
6
7Upstream-Status: Backport [https://gitlab.archlinux.org/archlinux/packaging/packages/protobuf-c/-/blob/main/protobuf-30.patch]
8Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
9
10---
11 protoc-gen-c/c_field.cc | 1 +
12 protoc-gen-c/c_helpers.cc | 1 +
13 protoc-gen-c/c_helpers.h | 10 -------
14 protoc-gen-c/c_message.cc | 1 +
15 protoc-gen-c/c_primitive_field.cc | 1 +
16 protoc-gen-c/compat.h | 46 +++++++++++++++++++++++++++++++
17 protoc-gen-c/main.cc | 1 +
18 7 files changed, 51 insertions(+), 10 deletions(-)
19 create mode 100644 protoc-gen-c/compat.h
20
21diff --git a/protoc-gen-c/c_field.cc b/protoc-gen-c/c_field.cc
22index 5e79967b..d6d8597e 100644
23--- a/protoc-gen-c/c_field.cc
24+++ b/protoc-gen-c/c_field.cc
25@@ -74,6 +74,7 @@
26 #include "c_message_field.h"
27 #include "c_primitive_field.h"
28 #include "c_string_field.h"
29+#include "compat.h"
30
31 namespace protobuf_c {
32
33diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc
34index 5edcf904..c38843f8 100644
35--- a/protoc-gen-c/c_helpers.cc
36+++ b/protoc-gen-c/c_helpers.cc
37@@ -73,6 +73,7 @@
38 #include <google/protobuf/stubs/common.h>
39
40 #include "c_helpers.h"
41+#include "compat.h"
42
43 namespace protobuf_c {
44
45diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h
46index 943676e9..e69504bb 100644
47--- a/protoc-gen-c/c_helpers.h
48+++ b/protoc-gen-c/c_helpers.h
49@@ -186,16 +186,6 @@ inline int FieldSyntax(const google::protobuf::FieldDescriptor* field) {
50 return 2;
51 }
52
53-// Work around changes in protobuf >= 22.x without breaking compilation against
54-// older protobuf versions.
55-#if GOOGLE_PROTOBUF_VERSION >= 4022000
56-# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
57-# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
58-# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
59-# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE
60-# define GOOGLE_LOG ABSL_LOG
61-#endif
62-
63 } // namespace protobuf_c
64
65 #endif // PROTOBUF_C_PROTOC_GEN_C_C_HELPERS_H__
66diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc
67index d4a9a01e..46413873 100644
68--- a/protoc-gen-c/c_message.cc
69+++ b/protoc-gen-c/c_message.cc
70@@ -78,6 +78,7 @@
71 #include "c_extension.h"
72 #include "c_helpers.h"
73 #include "c_message.h"
74+#include "compat.h"
75
76 namespace protobuf_c {
77
78diff --git a/protoc-gen-c/c_primitive_field.cc b/protoc-gen-c/c_primitive_field.cc
79index 253b00bd..588f60e6 100644
80--- a/protoc-gen-c/c_primitive_field.cc
81+++ b/protoc-gen-c/c_primitive_field.cc
82@@ -67,6 +67,7 @@
83
84 #include "c_helpers.h"
85 #include "c_primitive_field.h"
86+#include "compat.h"
87
88 namespace protobuf_c {
89
90diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h
91new file mode 100644
92index 00000000..2ee78281
93--- /dev/null
94+++ b/protoc-gen-c/compat.h
95@@ -0,0 +1,46 @@
96+// Copyright (c) 2008-2025, Dave Benson and the protobuf-c authors.
97+// All rights reserved.
98+//
99+// Redistribution and use in source and binary forms, with or without
100+// modification, are permitted provided that the following conditions are
101+// met:
102+//
103+// * Redistributions of source code must retain the above copyright
104+// notice, this list of conditions and the following disclaimer.
105+//
106+// * Redistributions in binary form must reproduce the above
107+// copyright notice, this list of conditions and the following disclaimer
108+// in the documentation and/or other materials provided with the
109+// distribution.
110+//
111+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
112+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
113+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
114+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
115+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
116+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
117+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
118+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
119+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
120+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
121+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
122+
123+#ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
124+#define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
125+
126+#if GOOGLE_PROTOBUF_VERSION >= 4022000
127+# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
128+# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
129+# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE
130+# define GOOGLE_LOG ABSL_LOG
131+#endif
132+
133+namespace protobuf_c {
134+
135+namespace compat {
136+
137+} // namespace compat
138+
139+} // namespace protobuf_c
140+
141+#endif // PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
142diff --git a/protoc-gen-c/main.cc b/protoc-gen-c/main.cc
143index 0656c113..5ab929d3 100644
144--- a/protoc-gen-c/main.cc
145+++ b/protoc-gen-c/main.cc
146@@ -32,6 +32,7 @@
147
148 #include "c_generator.h"
149 #include "c_helpers.h"
150+#include "compat.h"
151
152 int main(int argc, char* argv[]) {
153 protobuf_c::CGenerator c_generator;
154
155From 1678f1fba6f2d3e5c1db2817495ddcd72bd4e87b Mon Sep 17 00:00:00 2001
156From: Robert Edmonds <edmonds@users.noreply.github.com>
157Date: Sat, 8 Feb 2025 20:09:03 -0500
158Subject: [PATCH 02/11] protoc-gen-c/compat.h: Add `compat::StringView` type
159
160protobuf >= 30.x replaces `const std::string&` in various APIs with
161its own string view type that may actually be a `absl::string_view`.
162Introduce our own `compat::StringView` type that we can use instead
163of `const std::string&` in order to support compiling across multiple
164protobuf versions.
165---
166 protoc-gen-c/compat.h | 8 ++++++++
167 1 file changed, 8 insertions(+)
168
169diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h
170index 2ee78281..fe8041b5 100644
171--- a/protoc-gen-c/compat.h
172+++ b/protoc-gen-c/compat.h
173@@ -28,6 +28,8 @@
174 #ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
175 #define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
176
177+#include <string>
178+
179 #if GOOGLE_PROTOBUF_VERSION >= 4022000
180 # define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
181 # define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
182@@ -39,6 +41,12 @@ namespace protobuf_c {
183
184 namespace compat {
185
186+#if GOOGLE_PROTOBUF_VERSION >= 6030000
187+typedef google::protobuf::internal::DescriptorStringView StringView;
188+#else
189+typedef const std::string& StringView;
190+#endif
191+
192 } // namespace compat
193
194 } // namespace protobuf_c
195
196From db5252c131c82fb48ee599179b6989a577b7fbc8 Mon Sep 17 00:00:00 2001
197From: Robert Edmonds <edmonds@users.noreply.github.com>
198Date: Sat, 8 Feb 2025 20:13:44 -0500
199Subject: [PATCH 03/11] Remove some unused functions
200
201---
202 protoc-gen-c/c_helpers.cc | 64 ---------------------------------------
203 protoc-gen-c/c_helpers.h | 3 --
204 2 files changed, 67 deletions(-)
205
206diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc
207index c38843f8..bbb4a615 100644
208--- a/protoc-gen-c/c_helpers.cc
209+++ b/protoc-gen-c/c_helpers.cc
210@@ -90,14 +90,6 @@ namespace protobuf_c {
211 #pragma warning(disable:4996)
212 #endif
213
214-std::string DotsToUnderscores(const std::string& name) {
215- return StringReplace(name, ".", "_", true);
216-}
217-
218-std::string DotsToColons(const std::string& name) {
219- return StringReplace(name, ".", "::", true);
220-}
221-
222 std::string SimpleFtoa(float f) {
223 char buf[100];
224 snprintf(buf,sizeof(buf),"%.*g", FLT_DIG, f);
225@@ -333,11 +325,6 @@ std::string FilenameIdentifier(const std::string& filename) {
226 return result;
227 }
228
229-// Return the name of the BuildDescriptors() function for a given file.
230-std::string GlobalBuildDescriptorsName(const std::string& filename) {
231- return "proto_BuildDescriptors_" + FilenameIdentifier(filename);
232-}
233-
234 std::string GetLabelName(google::protobuf::FieldDescriptor::Label label) {
235 switch (label) {
236 case google::protobuf::FieldDescriptor::LABEL_OPTIONAL: return "optional";
237@@ -392,57 +379,6 @@ WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *
238 }
239 }
240
241-
242-
243-// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
244-// XXXXXXXXX this stuff is copied from strutils.cc !!!! XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
245-// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
246-// ----------------------------------------------------------------------
247-// StringReplace()
248-// Replace the "old" pattern with the "new" pattern in a string,
249-// and append the result to "res". If replace_all is false,
250-// it only replaces the first instance of "old."
251-// ----------------------------------------------------------------------
252-
253-void StringReplace(const std::string& s, const std::string& oldsub,
254- const std::string& newsub, bool replace_all,
255- std::string* res) {
256- if (oldsub.empty()) {
257- res->append(s); // if empty, append the given string.
258- return;
259- }
260-
261- std::string::size_type start_pos = 0;
262- std::string::size_type pos;
263- do {
264- pos = s.find(oldsub, start_pos);
265- if (pos == std::string::npos) {
266- break;
267- }
268- res->append(s, start_pos, pos - start_pos);
269- res->append(newsub);
270- start_pos = pos + oldsub.size(); // start searching again after the "old"
271- } while (replace_all);
272- res->append(s, start_pos, s.length() - start_pos);
273-}
274-
275-
276-// ----------------------------------------------------------------------
277-// StringReplace()
278-// Give me a string and two patterns "old" and "new", and I replace
279-// the first instance of "old" in the string with "new", if it
280-// exists. If "global" is true; call this repeatedly until it
281-// fails. RETURN a new string, regardless of whether the replacement
282-// happened or not.
283-// ----------------------------------------------------------------------
284-
285-std::string StringReplace(const std::string& s, const std::string& oldsub,
286- const std::string& newsub, bool replace_all) {
287- std::string ret;
288- StringReplace(s, oldsub, newsub, replace_all, &ret);
289- return ret;
290-}
291-
292 // ----------------------------------------------------------------------
293 // SplitStringUsing()
294 // Split a string using a character delimiter. Append the components
295diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h
296index e69504bb..377d4272 100644
297--- a/protoc-gen-c/c_helpers.h
298+++ b/protoc-gen-c/c_helpers.h
299@@ -150,9 +150,6 @@ const char* DeclaredTypeMethodName(google::protobuf::FieldDescriptor::Type type)
300 // Convert a file name into a valid identifier.
301 std::string FilenameIdentifier(const std::string& filename);
302
303-// Return the name of the BuildDescriptors() function for a given file.
304-std::string GlobalBuildDescriptorsName(const std::string& filename);
305-
306 // return 'required', 'optional', or 'repeated'
307 std::string GetLabelName(google::protobuf::FieldDescriptor::Label label);
308
309
310From bc2cb66d908f016dd3f7082c8a6ad7c58bc03412 Mon Sep 17 00:00:00 2001
311From: Robert Edmonds <edmonds@users.noreply.github.com>
312Date: Sat, 8 Feb 2025 20:18:05 -0500
313Subject: [PATCH 04/11] Use `compat::StringView` type across various function
314 signatures
315
316---
317 protoc-gen-c/c_helpers.cc | 44 +++++++++++++++++++++------------------
318 protoc-gen-c/c_helpers.h | 36 ++++++++++++++++----------------
319 2 files changed, 42 insertions(+), 38 deletions(-)
320
321diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc
322index bbb4a615..c759c8c2 100644
323--- a/protoc-gen-c/c_helpers.cc
324+++ b/protoc-gen-c/c_helpers.cc
325@@ -96,6 +96,7 @@ std::string SimpleFtoa(float f) {
326 buf[sizeof(buf)-1] = 0; /* should NOT be necessary */
327 return buf;
328 }
329+
330 std::string SimpleDtoa(double d) {
331 char buf[100];
332 snprintf(buf,sizeof(buf),"%.*g", DBL_DIG, d);
333@@ -103,7 +104,7 @@ std::string SimpleDtoa(double d) {
334 return buf;
335 }
336
337-std::string CamelToUpper(const std::string &name) {
338+std::string CamelToUpper(compat::StringView name) {
339 bool was_upper = true; // suppress initial _
340 std::string rv = "";
341 int len = name.length();
342@@ -120,7 +121,8 @@ std::string CamelToUpper(const std::string &name) {
343 }
344 return rv;
345 }
346-std::string CamelToLower(const std::string &name) {
347+
348+std::string CamelToLower(compat::StringView name) {
349 bool was_upper = true; // suppress initial _
350 std::string rv = "";
351 int len = name.length();
352@@ -138,8 +140,7 @@ std::string CamelToLower(const std::string &name) {
353 return rv;
354 }
355
356-
357-std::string ToUpper(const std::string &name) {
358+std::string ToUpper(compat::StringView name) {
359 std::string rv = "";
360 int len = name.length();
361 for (int i = 0; i < len; i++) {
362@@ -147,7 +148,8 @@ std::string ToUpper(const std::string &name) {
363 }
364 return rv;
365 }
366-std::string ToLower(const std::string &name) {
367+
368+std::string ToLower(compat::StringView name) {
369 std::string rv = "";
370 int len = name.length();
371 for (int i = 0; i < len; i++) {
372@@ -155,7 +157,8 @@ std::string ToLower(const std::string &name) {
373 }
374 return rv;
375 }
376-std::string ToCamel(const std::string &name) {
377+
378+std::string ToCamel(compat::StringView name) {
379 std::string rv = "";
380 int len = name.length();
381 bool next_is_upper = true;
382@@ -172,7 +175,7 @@ std::string ToCamel(const std::string &name) {
383 return rv;
384 }
385
386-std::string OverrideFullName(const std::string &full_name, const google::protobuf::FileDescriptor* file) {
387+std::string OverrideFullName(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
388 const ProtobufCFileOptions opt = file->options().GetExtension(pb_c_file);
389 if (!opt.has_c_package())
390 return full_name;
391@@ -184,7 +187,7 @@ std::string OverrideFullName(const std::string &full_name, const google::protobu
392 return new_name + full_name.substr(file->package().length());
393 }
394
395-std::string FullNameToLower(const std::string &full_name, const google::protobuf::FileDescriptor* file) {
396+std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
397 std::vector<std::string> pieces;
398 SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces);
399 std::string rv = "";
400@@ -195,7 +198,8 @@ std::string FullNameToLower(const std::string &full_name, const google::protobuf
401 }
402 return rv;
403 }
404-std::string FullNameToUpper(const std::string &full_name, const google::protobuf::FileDescriptor* file) {
405+
406+std::string FullNameToUpper(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
407 std::vector<std::string> pieces;
408 SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces);
409 std::string rv = "";
410@@ -206,7 +210,8 @@ std::string FullNameToUpper(const std::string &full_name, const google::protobuf
411 }
412 return rv;
413 }
414-std::string FullNameToC(const std::string &full_name, const google::protobuf::FileDescriptor* file) {
415+
416+std::string FullNameToC(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
417 std::vector<std::string> pieces;
418 SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces);
419 std::string rv = "";
420@@ -248,7 +253,7 @@ void PrintComment(google::protobuf::io::Printer* printer, std::string comment)
421 }
422 }
423
424-std::string ConvertToSpaces(const std::string &input) {
425+std::string ConvertToSpaces(compat::StringView input) {
426 return std::string(input.size(), ' ');
427 }
428
429@@ -259,8 +264,7 @@ int compare_name_indices_by_name(const void *a, const void *b)
430 return strcmp (ni_a->name, ni_b->name);
431 }
432
433-
434-std::string CEscape(const std::string& src);
435+std::string CEscape(compat::StringView src);
436
437 const char* const kKeywordList[] = {
438 "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case",
439@@ -300,7 +304,7 @@ std::string FieldDeprecated(const google::protobuf::FieldDescriptor* field) {
440 return "";
441 }
442
443-std::string StripProto(const std::string& filename) {
444+std::string StripProto(compat::StringView filename) {
445 if (HasSuffixString(filename, ".protodevel")) {
446 return StripSuffixString(filename, ".protodevel");
447 } else {
448@@ -309,7 +313,7 @@ std::string StripProto(const std::string& filename) {
449 }
450
451 // Convert a file name into a valid identifier.
452-std::string FilenameIdentifier(const std::string& filename) {
453+std::string FilenameIdentifier(compat::StringView filename) {
454 std::string result;
455 for (unsigned i = 0; i < filename.size(); i++) {
456 if (isalnum(filename[i])) {
457@@ -335,7 +339,7 @@ std::string GetLabelName(google::protobuf::FieldDescriptor::Label label) {
458 }
459
460 unsigned
461-WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, const std::string &name)
462+WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, compat::StringView name)
463 {
464 std::map<std::string, std::string> vars;
465 vars["name"] = name;
466@@ -389,7 +393,7 @@ WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *
467 // ----------------------------------------------------------------------
468 template <typename ITR>
469 static inline
470-void SplitStringToIteratorUsing(const std::string& full,
471+void SplitStringToIteratorUsing(compat::StringView full,
472 const char* delim,
473 ITR& result) {
474 // Optimize the common case where delim is a single character.
475@@ -422,7 +426,7 @@ void SplitStringToIteratorUsing(const std::string& full,
476 }
477 }
478
479-void SplitStringUsing(const std::string& full,
480+void SplitStringUsing(compat::StringView full,
481 const char* delim,
482 std::vector<std::string>* result) {
483 std::back_insert_iterator< std::vector<std::string> > it(*result);
484@@ -435,7 +439,6 @@ char* FastHexToBuffer(int i, char* buffer)
485 return buffer;
486 }
487
488-
489 static int CEscapeInternal(const char* src, int src_len, char* dest,
490 int dest_len, bool use_hex) {
491 const char* src_end = src + src_len;
492@@ -478,7 +481,8 @@ static int CEscapeInternal(const char* src, int src_len, char* dest,
493 dest[used] = '\0'; // doesn't count towards return value though
494 return used;
495 }
496-std::string CEscape(const std::string& src) {
497+
498+std::string CEscape(compat::StringView src) {
499 const int dest_length = src.size() * 4 + 1; // Maximum possible expansion
500 std::unique_ptr<char[]> dest(new char[dest_length]);
501 const int len = CEscapeInternal(src.data(), src.size(),
502diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h
503index 377d4272..ccd39ca2 100644
504--- a/protoc-gen-c/c_helpers.h
505+++ b/protoc-gen-c/c_helpers.h
506@@ -73,6 +73,8 @@
507
508 #include <protobuf-c/protobuf-c.pb.h>
509
510+#include "compat.h"
511+
512 namespace protobuf_c {
513
514 // --- Borrowed from stubs. ---
515@@ -84,11 +86,10 @@ template <typename T> std::string SimpleItoa(T n) {
516
517 std::string SimpleFtoa(float f);
518 std::string SimpleDtoa(double f);
519-void SplitStringUsing(const std::string &str, const char *delim, std::vector<std::string> *out);
520-std::string CEscape(const std::string& src);
521-std::string StringReplace(const std::string& s, const std::string& oldsub, const std::string& newsub, bool replace_all);
522-inline bool HasSuffixString(const std::string& str, const std::string& suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; }
523-inline std::string StripSuffixString(const std::string& str, const std::string& suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } }
524+void SplitStringUsing(compat::StringView str, const char *delim, std::vector<std::string> *out);
525+std::string CEscape(compat::StringView src);
526+inline bool HasSuffixString(compat::StringView str, compat::StringView suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; }
527+inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } }
528 char* FastHexToBuffer(int i, char* buffer);
529
530
531@@ -110,31 +111,31 @@ inline const google::protobuf::Descriptor* FieldScope(const google::protobuf::Fi
532
533 // convert a CamelCase class name into an all uppercase affair
534 // with underscores separating words, e.g. MyClass becomes MY_CLASS.
535-std::string CamelToUpper(const std::string &class_name);
536-std::string CamelToLower(const std::string &class_name);
537+std::string CamelToUpper(compat::StringView class_name);
538+std::string CamelToLower(compat::StringView class_name);
539
540 // lowercased, underscored name to camel case
541-std::string ToCamel(const std::string &name);
542+std::string ToCamel(compat::StringView name);
543
544 // lowercase the string
545-std::string ToLower(const std::string &class_name);
546-std::string ToUpper(const std::string &class_name);
547+std::string ToLower(compat::StringView class_name);
548+std::string ToUpper(compat::StringView class_name);
549
550 // full_name() to lowercase with underscores
551-std::string FullNameToLower(const std::string &full_name, const google::protobuf::FileDescriptor *file);
552-std::string FullNameToUpper(const std::string &full_name, const google::protobuf::FileDescriptor *file);
553+std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor *file);
554+std::string FullNameToUpper(compat::StringView full_name, const google::protobuf::FileDescriptor *file);
555
556 // full_name() to c-typename (with underscores for packages, otherwise camel case)
557-std::string FullNameToC(const std::string &class_name, const google::protobuf::FileDescriptor *file);
558+std::string FullNameToC(compat::StringView class_name, const google::protobuf::FileDescriptor *file);
559
560 // Splits, indents, formats, and prints comment lines
561 void PrintComment(google::protobuf::io::Printer* printer, std::string comment);
562
563 // make a string of spaces as long as input
564-std::string ConvertToSpaces(const std::string &input);
565+std::string ConvertToSpaces(compat::StringView input);
566
567 // Strips ".proto" or ".protodevel" from the end of a filename.
568-std::string StripProto(const std::string& filename);
569+std::string StripProto(compat::StringView filename);
570
571 // Get the C++ type name for a primitive type (e.g. "double", "::google::protobuf::int32", etc.).
572 // Note: non-built-in type names will be qualified, meaning they will start
573@@ -148,15 +149,14 @@ const char* PrimitiveTypeName(google::protobuf::FieldDescriptor::CppType type);
574 const char* DeclaredTypeMethodName(google::protobuf::FieldDescriptor::Type type);
575
576 // Convert a file name into a valid identifier.
577-std::string FilenameIdentifier(const std::string& filename);
578+std::string FilenameIdentifier(compat::StringView filename);
579
580 // return 'required', 'optional', or 'repeated'
581 std::string GetLabelName(google::protobuf::FieldDescriptor::Label label);
582
583-
584 // write IntRanges entries for a bunch of sorted values.
585 // returns the number of ranges there are to bsearch.
586-unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, const std::string &name);
587+unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, compat::StringView name);
588
589 struct NameIndex
590 {
591
592From 75f1c32cc429233a3726358c999009f9ea373b45 Mon Sep 17 00:00:00 2001
593From: Robert Edmonds <edmonds@users.noreply.github.com>
594Date: Sat, 8 Feb 2025 20:25:43 -0500
595Subject: [PATCH 05/11] Convert string views to owned strings where necessary
596
597---
598 protoc-gen-c/c_enum.cc | 2 +-
599 protoc-gen-c/c_enum_field.cc | 2 +-
600 protoc-gen-c/c_helpers.cc | 8 ++++----
601 protoc-gen-c/c_helpers.h | 3 +--
602 4 files changed, 7 insertions(+), 8 deletions(-)
603
604diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc
605index 9212ab82..311e4c86 100644
606--- a/protoc-gen-c/c_enum.cc
607+++ b/protoc-gen-c/c_enum.cc
608@@ -152,7 +152,7 @@ void EnumGenerator::GenerateValueInitializer(google::protobuf::io::Printer *prin
609 descriptor_->file()->options().optimize_for() ==
610 google::protobuf::FileOptions_OptimizeMode_CODE_SIZE;
611 vars["enum_value_name"] = vd->name();
612- vars["c_enum_value_name"] = FullNameToUpper(descriptor_->full_name(), descriptor_->file()) + "__" + vd->name();
613+ vars["c_enum_value_name"] = FullNameToUpper(descriptor_->full_name(), descriptor_->file()) + "__" + std::string(vd->name());
614 vars["value"] = SimpleItoa(vd->number());
615 if (optimize_code_size)
616 printer->Print(vars, " { NULL, NULL, $value$ }, /* CODE_SIZE */\n");
617diff --git a/protoc-gen-c/c_enum_field.cc b/protoc-gen-c/c_enum_field.cc
618index 0926ae59..c3111f50 100644
619--- a/protoc-gen-c/c_enum_field.cc
620+++ b/protoc-gen-c/c_enum_field.cc
621@@ -78,7 +78,7 @@ void SetEnumVariables(const google::protobuf::FieldDescriptor* descriptor,
622 (*variables)["type"] = FullNameToC(descriptor->enum_type()->full_name(), descriptor->enum_type()->file());
623 const google::protobuf::EnumValueDescriptor* default_value = descriptor->default_value_enum();
624 (*variables)["default"] = FullNameToUpper(default_value->type()->full_name(), default_value->type()->file())
625- + "__" + default_value->name();
626+ + "__" + std::string(default_value->name());
627 (*variables)["deprecated"] = FieldDeprecated(descriptor);
628 }
629
630diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc
631index c759c8c2..1aecef93 100644
632--- a/protoc-gen-c/c_helpers.cc
633+++ b/protoc-gen-c/c_helpers.cc
634@@ -178,13 +178,13 @@ std::string ToCamel(compat::StringView name) {
635 std::string OverrideFullName(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
636 const ProtobufCFileOptions opt = file->options().GetExtension(pb_c_file);
637 if (!opt.has_c_package())
638- return full_name;
639+ return std::string(full_name);
640
641 std::string new_name = opt.c_package();
642 if (file->package().empty())
643 new_name += ".";
644
645- return new_name + full_name.substr(file->package().length());
646+ return new_name + std::string(full_name.substr(file->package().length()));
647 }
648
649 std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor* file) {
650@@ -418,10 +418,10 @@ void SplitStringToIteratorUsing(compat::StringView full,
651 while (begin_index != std::string::npos) {
652 end_index = full.find_first_of(delim, begin_index);
653 if (end_index == std::string::npos) {
654- *result++ = full.substr(begin_index);
655+ *result++ = std::string(full.substr(begin_index));
656 return;
657 }
658- *result++ = full.substr(begin_index, (end_index - begin_index));
659+ *result++ = std::string(full.substr(begin_index, (end_index - begin_index)));
660 begin_index = full.find_first_not_of(delim, end_index);
661 }
662 }
663diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h
664index ccd39ca2..985e4db6 100644
665--- a/protoc-gen-c/c_helpers.h
666+++ b/protoc-gen-c/c_helpers.h
667@@ -89,10 +89,9 @@ std::string SimpleDtoa(double f);
668 void SplitStringUsing(compat::StringView str, const char *delim, std::vector<std::string> *out);
669 std::string CEscape(compat::StringView src);
670 inline bool HasSuffixString(compat::StringView str, compat::StringView suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; }
671-inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } }
672+inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return std::string(str.substr(0, str.size() - suffix.size())); } else { return std::string(str); } }
673 char* FastHexToBuffer(int i, char* buffer);
674
675-
676 // Get the (unqualified) name that should be used for this field in C code.
677 // The name is coerced to lower-case to emulate proto1 behavior. People
678 // should be using lowercase-with-underscores style for proto field names
679
680From 0edca93db369fb84f01cc0d4e3ee4cd6c2ad7f4f Mon Sep 17 00:00:00 2001
681From: Robert Edmonds <edmonds@users.noreply.github.com>
682Date: Sat, 8 Feb 2025 20:39:11 -0500
683Subject: [PATCH 06/11] Convert various uses of `const char *` to
684 `compat::StringView`
685
686Also replace some uses of arrays manually allocated with new/delete with
687uses of `std::vector`.
688---
689 protoc-gen-c/c_enum.cc | 35 ++++++++++++++++++-----------------
690 protoc-gen-c/c_helpers.cc | 2 +-
691 protoc-gen-c/c_helpers.h | 2 +-
692 protoc-gen-c/c_message.cc | 28 ++++++++++++----------------
693 protoc-gen-c/c_service.cc | 19 +++++++++----------
694 5 files changed, 41 insertions(+), 45 deletions(-)
695
696diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc
697index 311e4c86..c7839edd 100644
698--- a/protoc-gen-c/c_enum.cc
699+++ b/protoc-gen-c/c_enum.cc
700@@ -142,7 +142,7 @@ struct ValueIndex
701 int value;
702 unsigned index;
703 unsigned final_index; /* index in uniqified array of values */
704- const char *name;
705+ compat::StringView name;
706 };
707 void EnumGenerator::GenerateValueInitializer(google::protobuf::io::Printer *printer, int index)
708 {
709@@ -176,7 +176,7 @@ static int compare_value_indices_by_name(const void *a, const void *b)
710 {
711 const ValueIndex *vi_a = (const ValueIndex *) a;
712 const ValueIndex *vi_b = (const ValueIndex *) b;
713- return strcmp (vi_a->name, vi_b->name);
714+ return vi_a->name.compare(vi_b->name);
715 }
716
717 void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printer) {
718@@ -194,18 +194,20 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe
719
720 // Sort by name and value, dropping duplicate values if they appear later.
721 // TODO: use a c++ paradigm for this!
722- NameIndex *name_index = new NameIndex[descriptor_->value_count()];
723- ValueIndex *value_index = new ValueIndex[descriptor_->value_count()];
724- for (int j = 0; j < descriptor_->value_count(); j++) {
725+ std::vector<ValueIndex> value_index;
726+ for (unsigned j = 0; j < descriptor_->value_count(); j++) {
727 const google::protobuf::EnumValueDescriptor *vd = descriptor_->value(j);
728- name_index[j].index = j;
729- name_index[j].name = vd->name().c_str();
730- value_index[j].index = j;
731- value_index[j].value = vd->number();
732- value_index[j].name = vd->name().c_str();
733+ value_index.push_back({
734+ .value = vd->number(),
735+ .index = j,
736+ .final_index = 0,
737+ .name = vd->name(),
738+ });
739 }
740- qsort(value_index, descriptor_->value_count(),
741- sizeof(ValueIndex), compare_value_indices_by_value_then_index);
742+ qsort(&value_index[0],
743+ value_index.size(),
744+ sizeof(ValueIndex),
745+ compare_value_indices_by_value_then_index);
746
747 // only record unique values
748 int n_unique_values;
749@@ -275,8 +277,10 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe
750 vars["n_ranges"] = SimpleItoa(n_ranges);
751
752 if (!optimize_code_size) {
753- qsort(value_index, descriptor_->value_count(),
754- sizeof(ValueIndex), compare_value_indices_by_name);
755+ qsort(&value_index[0],
756+ value_index.size(),
757+ sizeof(ValueIndex),
758+ compare_value_indices_by_name);
759 printer->Print(vars,
760 "static const ProtobufCEnumValueIndex $lcclassname$__enum_values_by_name[$value_count$] =\n"
761 "{\n");
762@@ -319,9 +323,6 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe
763 " NULL,NULL,NULL,NULL /* reserved[1234] */\n"
764 "};\n");
765 }
766-
767- delete[] value_index;
768- delete[] name_index;
769 }
770
771 } // namespace protobuf_c
772diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc
773index 1aecef93..dec9ce28 100644
774--- a/protoc-gen-c/c_helpers.cc
775+++ b/protoc-gen-c/c_helpers.cc
776@@ -261,7 +261,7 @@ int compare_name_indices_by_name(const void *a, const void *b)
777 {
778 const NameIndex *ni_a = (const NameIndex *) a;
779 const NameIndex *ni_b = (const NameIndex *) b;
780- return strcmp (ni_a->name, ni_b->name);
781+ return ni_a->name.compare(ni_b->name);
782 }
783
784 std::string CEscape(compat::StringView src);
785diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h
786index 985e4db6..69369997 100644
787--- a/protoc-gen-c/c_helpers.h
788+++ b/protoc-gen-c/c_helpers.h
789@@ -160,7 +160,7 @@ unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, co
790 struct NameIndex
791 {
792 unsigned index;
793- const char *name;
794+ compat::StringView name;
795 };
796 int compare_name_indices_by_name(const void*, const void*);
797
798diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc
799index 46413873..7252923c 100644
800--- a/protoc-gen-c/c_message.cc
801+++ b/protoc-gen-c/c_message.cc
802@@ -567,27 +567,26 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init)
803 "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n"
804 "{\n");
805 printer->Indent();
806- const google::protobuf::FieldDescriptor **sorted_fields = new const google::protobuf::FieldDescriptor *[descriptor_->field_count()];
807+
808+ std::vector<const google::protobuf::FieldDescriptor*> sorted_fields;
809 for (int i = 0; i < descriptor_->field_count(); i++) {
810- sorted_fields[i] = descriptor_->field(i);
811+ sorted_fields.push_back(descriptor_->field(i));
812 }
813- qsort (sorted_fields, descriptor_->field_count(),
814+ qsort(&sorted_fields[0], sorted_fields.size(),
815 sizeof(const google::protobuf::FieldDescriptor*),
816 compare_pfields_by_number);
817- for (int i = 0; i < descriptor_->field_count(); i++) {
818- const google::protobuf::FieldDescriptor* field = sorted_fields[i];
819+ for (auto field : sorted_fields) {
820 field_generators_.get(field).GenerateDescriptorInitializer(printer);
821 }
822 printer->Outdent();
823 printer->Print(vars, "};\n");
824
825 if (!optimize_code_size) {
826- NameIndex *field_indices = new NameIndex [descriptor_->field_count()];
827- for (int i = 0; i < descriptor_->field_count(); i++) {
828- field_indices[i].name = sorted_fields[i]->name().c_str();
829- field_indices[i].index = i;
830+ std::vector<NameIndex> field_indices;
831+ for (unsigned i = 0; i < descriptor_->field_count(); i++) {
832+ field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() });
833 }
834- qsort (field_indices, descriptor_->field_count(), sizeof (NameIndex),
835+ qsort(&field_indices[0], field_indices.size(), sizeof(NameIndex),
836 compare_name_indices_by_name);
837 printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n");
838 for (int i = 0; i < descriptor_->field_count(); i++) {
839@@ -596,19 +595,16 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init)
840 printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n");
841 }
842 printer->Print("};\n");
843- delete[] field_indices;
844 }
845
846 // create range initializers
847- int *values = new int[descriptor_->field_count()];
848+ std::vector<int> values;
849 for (int i = 0; i < descriptor_->field_count(); i++) {
850- values[i] = sorted_fields[i]->number();
851+ values.push_back(sorted_fields[i]->number());
852 }
853 int n_ranges = WriteIntRanges(printer,
854- descriptor_->field_count(), values,
855+ descriptor_->field_count(), &values[0],
856 vars["lcclassname"] + "__number_ranges");
857- delete [] values;
858- delete [] sorted_fields;
859
860 vars["n_ranges"] = SimpleItoa(n_ranges);
861 } else {
862diff --git a/protoc-gen-c/c_service.cc b/protoc-gen-c/c_service.cc
863index ee4d4a95..2c3ddcf3 100644
864--- a/protoc-gen-c/c_service.cc
865+++ b/protoc-gen-c/c_service.cc
866@@ -184,19 +184,19 @@ void ServiceGenerator::GenerateInit(google::protobuf::io::Printer* printer)
867 "}\n");
868 }
869
870-struct MethodIndexAndName { unsigned i; const char *name; };
871+struct MethodIndexAndName { unsigned i; compat::StringView name; };
872 static int
873 compare_method_index_and_name_by_name (const void *a, const void *b)
874 {
875 const MethodIndexAndName *ma = (const MethodIndexAndName *) a;
876 const MethodIndexAndName *mb = (const MethodIndexAndName *) b;
877- return strcmp (ma->name, mb->name);
878+ return ma->name.compare(mb->name);
879 }
880
881 void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer* printer)
882 {
883 int n_methods = descriptor_->method_count();
884- MethodIndexAndName *mi_array = new MethodIndexAndName[n_methods];
885+ std::vector<MethodIndexAndName> mi_array;
886
887 bool optimize_code_size = descriptor_->file()->options().has_optimize_for() &&
888 descriptor_->file()->options().optimize_for() ==
889@@ -205,7 +205,7 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer*
890 vars_["n_methods"] = SimpleItoa(n_methods);
891 printer->Print(vars_, "static const ProtobufCMethodDescriptor $lcfullname$__method_descriptors[$n_methods$] =\n"
892 "{\n");
893- for (int i = 0; i < n_methods; i++) {
894+ for (unsigned i = 0; i < n_methods; i++) {
895 const google::protobuf::MethodDescriptor* method = descriptor_->method(i);
896 vars_["method"] = method->name();
897 vars_["input_descriptor"] = "&" + FullNameToLower(method->input_type()->full_name(), method->input_type()->file()) + "__descriptor";
898@@ -217,14 +217,15 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer*
899 printer->Print(vars_,
900 " { \"$method$\", $input_descriptor$, $output_descriptor$ },\n");
901 }
902- mi_array[i].i = i;
903- mi_array[i].name = method->name().c_str();
904+ mi_array.push_back({i, method->name()});
905 }
906 printer->Print(vars_, "};\n");
907
908 if (!optimize_code_size) {
909- qsort ((void*)mi_array, n_methods, sizeof (MethodIndexAndName),
910- compare_method_index_and_name_by_name);
911+ qsort(&mi_array[0],
912+ mi_array.size(),
913+ sizeof(MethodIndexAndName),
914+ compare_method_index_and_name_by_name);
915 printer->Print(vars_, "const unsigned $lcfullname$__method_indices_by_name[] = {\n");
916 for (int i = 0; i < n_methods; i++) {
917 vars_["i"] = SimpleItoa(mi_array[i].i);
918@@ -258,8 +259,6 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer*
919 " $lcfullname$__method_indices_by_name\n"
920 "};\n");
921 }
922-
923- delete[] mi_array;
924 }
925
926 void ServiceGenerator::GenerateCallersImplementations(google::protobuf::io::Printer* printer)
927
928From ebeddac1a746393a16d9ba4cf80e3d12c3ab7d7f Mon Sep 17 00:00:00 2001
929From: Robert Edmonds <edmonds@users.noreply.github.com>
930Date: Sat, 8 Feb 2025 20:56:48 -0500
931Subject: [PATCH 07/11] Fix indentation of
932 MessageGenerator::GenerateMessageDescriptor()
933
934---
935 protoc-gen-c/c_message.cc | 321 +++++++++++++++++++-------------------
936 1 file changed, 159 insertions(+), 162 deletions(-)
937
938diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc
939index 7252923c..2a3b2a2f 100644
940--- a/protoc-gen-c/c_message.cc
941+++ b/protoc-gen-c/c_message.cc
942@@ -461,199 +461,196 @@ GenerateHelperFunctionDefinitions(google::protobuf::io::Printer* printer,
943
944 void MessageGenerator::
945 GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init) {
946- std::map<std::string, std::string> vars;
947- vars["fullname"] = descriptor_->full_name();
948- vars["classname"] = FullNameToC(descriptor_->full_name(), descriptor_->file());
949- vars["lcclassname"] = FullNameToLower(descriptor_->full_name(), descriptor_->file());
950- vars["shortname"] = ToCamel(descriptor_->name());
951- vars["n_fields"] = SimpleItoa(descriptor_->field_count());
952- vars["packagename"] = descriptor_->file()->package();
953-
954- bool optimize_code_size = descriptor_->file()->options().has_optimize_for() &&
955- descriptor_->file()->options().optimize_for() ==
956- google::protobuf::FileOptions_OptimizeMode_CODE_SIZE;
957-
958- const ProtobufCMessageOptions opt =
959- descriptor_->options().GetExtension(pb_c_msg);
960- // Override parent settings, if needed
961- if (opt.has_gen_init_helpers())
962- gen_init = opt.gen_init_helpers();
963-
964- for (int i = 0; i < descriptor_->nested_type_count(); i++) {
965- nested_generators_[i]->GenerateMessageDescriptor(printer, gen_init);
966- }
967+ std::map<std::string, std::string> vars;
968+ vars["fullname"] = descriptor_->full_name();
969+ vars["classname"] = FullNameToC(descriptor_->full_name(), descriptor_->file());
970+ vars["lcclassname"] = FullNameToLower(descriptor_->full_name(), descriptor_->file());
971+ vars["shortname"] = ToCamel(descriptor_->name());
972+ vars["n_fields"] = SimpleItoa(descriptor_->field_count());
973+ vars["packagename"] = descriptor_->file()->package();
974
975- for (int i = 0; i < descriptor_->enum_type_count(); i++) {
976- enum_generators_[i]->GenerateEnumDescriptor(printer);
977- }
978+ bool optimize_code_size = descriptor_->file()->options().has_optimize_for() &&
979+ descriptor_->file()->options().optimize_for() ==
980+ google::protobuf::FileOptions_OptimizeMode_CODE_SIZE;
981
982- for (int i = 0; i < descriptor_->field_count(); i++) {
983- const google::protobuf::FieldDescriptor* fd = descriptor_->field(i);
984- if (fd->has_default_value()) {
985- field_generators_.get(fd).GenerateDefaultValueImplementations(printer);
986- }
987- }
988+ const ProtobufCMessageOptions opt = descriptor_->options().GetExtension(pb_c_msg);
989+ // Override parent settings, if needed
990+ if (opt.has_gen_init_helpers()) {
991+ gen_init = opt.gen_init_helpers();
992+ }
993
994- for (int i = 0; i < descriptor_->field_count(); i++) {
995- const google::protobuf::FieldDescriptor* fd = descriptor_->field(i);
996- const ProtobufCFieldOptions opt = fd->options().GetExtension(pb_c_field);
997- if (fd->has_default_value()) {
998-
999- bool already_defined = false;
1000- vars["name"] = fd->name();
1001- vars["lcname"] = CamelToLower(fd->name());
1002- vars["maybe_static"] = "static ";
1003- vars["field_dv_ctype_suffix"] = "";
1004- vars["default_value"] = field_generators_.get(fd).GetDefaultValue();
1005- switch (fd->cpp_type()) {
1006- case google::protobuf::FieldDescriptor::CPPTYPE_INT32:
1007- vars["field_dv_ctype"] = "int32_t";
1008- break;
1009- case google::protobuf::FieldDescriptor::CPPTYPE_INT64:
1010- vars["field_dv_ctype"] = "int64_t";
1011- break;
1012- case google::protobuf::FieldDescriptor::CPPTYPE_UINT32:
1013- vars["field_dv_ctype"] = "uint32_t";
1014- break;
1015- case google::protobuf::FieldDescriptor::CPPTYPE_UINT64:
1016- vars["field_dv_ctype"] = "uint64_t";
1017- break;
1018- case google::protobuf::FieldDescriptor::CPPTYPE_FLOAT:
1019- vars["field_dv_ctype"] = "float";
1020- break;
1021- case google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE:
1022- vars["field_dv_ctype"] = "double";
1023- break;
1024- case google::protobuf::FieldDescriptor::CPPTYPE_BOOL:
1025- vars["field_dv_ctype"] = "protobuf_c_boolean";
1026- break;
1027-
1028- case google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE:
1029- // NOTE: not supported by protobuf
1030- vars["maybe_static"] = "";
1031- vars["field_dv_ctype"] = "{ ... }";
1032- GOOGLE_LOG(FATAL) << "Messages can't have default values!";
1033- break;
1034- case google::protobuf::FieldDescriptor::CPPTYPE_STRING:
1035- if (fd->type() == google::protobuf::FieldDescriptor::TYPE_BYTES || opt.string_as_bytes())
1036- {
1037- vars["field_dv_ctype"] = "ProtobufCBinaryData";
1038- }
1039- else /* STRING type */
1040- {
1041- already_defined = true;
1042- vars["maybe_static"] = "";
1043- vars["field_dv_ctype"] = "char";
1044- vars["field_dv_ctype_suffix"] = "[]";
1045- }
1046- break;
1047- case google::protobuf::FieldDescriptor::CPPTYPE_ENUM:
1048- {
1049- const google::protobuf::EnumValueDescriptor* vd = fd->default_value_enum();
1050- vars["field_dv_ctype"] = FullNameToC(vd->type()->full_name(), vd->type()->file());
1051- break;
1052- }
1053- default:
1054- GOOGLE_LOG(FATAL) << "Unknown CPPTYPE";
1055- break;
1056- }
1057- if (!already_defined)
1058- printer->Print(vars, "$maybe_static$const $field_dv_ctype$ $lcclassname$__$lcname$__default_value$field_dv_ctype_suffix$ = $default_value$;\n");
1059- }
1060- }
1061+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
1062+ nested_generators_[i]->GenerateMessageDescriptor(printer, gen_init);
1063+ }
1064
1065- if ( descriptor_->field_count() ) {
1066- printer->Print(vars,
1067- "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n"
1068- "{\n");
1069- printer->Indent();
1070+ for (int i = 0; i < descriptor_->enum_type_count(); i++) {
1071+ enum_generators_[i]->GenerateEnumDescriptor(printer);
1072+ }
1073
1074- std::vector<const google::protobuf::FieldDescriptor*> sorted_fields;
1075 for (int i = 0; i < descriptor_->field_count(); i++) {
1076- sorted_fields.push_back(descriptor_->field(i));
1077- }
1078- qsort(&sorted_fields[0], sorted_fields.size(),
1079- sizeof(const google::protobuf::FieldDescriptor*),
1080- compare_pfields_by_number);
1081- for (auto field : sorted_fields) {
1082- field_generators_.get(field).GenerateDescriptorInitializer(printer);
1083+ const google::protobuf::FieldDescriptor* fd = descriptor_->field(i);
1084+ if (fd->has_default_value()) {
1085+ field_generators_.get(fd).GenerateDefaultValueImplementations(printer);
1086+ }
1087 }
1088- printer->Outdent();
1089- printer->Print(vars, "};\n");
1090
1091- if (!optimize_code_size) {
1092- std::vector<NameIndex> field_indices;
1093- for (unsigned i = 0; i < descriptor_->field_count(); i++) {
1094- field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() });
1095+ for (int i = 0; i < descriptor_->field_count(); i++) {
1096+ const google::protobuf::FieldDescriptor* fd = descriptor_->field(i);
1097+ const ProtobufCFieldOptions opt = fd->options().GetExtension(pb_c_field);
1098+ if (fd->has_default_value()) {
1099+ bool already_defined = false;
1100+ vars["name"] = fd->name();
1101+ vars["lcname"] = CamelToLower(fd->name());
1102+ vars["maybe_static"] = "static ";
1103+ vars["field_dv_ctype_suffix"] = "";
1104+ vars["default_value"] = field_generators_.get(fd).GetDefaultValue();
1105+ switch (fd->cpp_type()) {
1106+ case google::protobuf::FieldDescriptor::CPPTYPE_INT32:
1107+ vars["field_dv_ctype"] = "int32_t";
1108+ break;
1109+ case google::protobuf::FieldDescriptor::CPPTYPE_INT64:
1110+ vars["field_dv_ctype"] = "int64_t";
1111+ break;
1112+ case google::protobuf::FieldDescriptor::CPPTYPE_UINT32:
1113+ vars["field_dv_ctype"] = "uint32_t";
1114+ break;
1115+ case google::protobuf::FieldDescriptor::CPPTYPE_UINT64:
1116+ vars["field_dv_ctype"] = "uint64_t";
1117+ break;
1118+ case google::protobuf::FieldDescriptor::CPPTYPE_FLOAT:
1119+ vars["field_dv_ctype"] = "float";
1120+ break;
1121+ case google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE:
1122+ vars["field_dv_ctype"] = "double";
1123+ break;
1124+ case google::protobuf::FieldDescriptor::CPPTYPE_BOOL:
1125+ vars["field_dv_ctype"] = "protobuf_c_boolean";
1126+ break;
1127+ case google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE:
1128+ // NOTE: not supported by protobuf
1129+ vars["maybe_static"] = "";
1130+ vars["field_dv_ctype"] = "{ ... }";
1131+ GOOGLE_LOG(FATAL) << "Messages can't have default values!";
1132+ break;
1133+ case google::protobuf::FieldDescriptor::CPPTYPE_STRING:
1134+ if (fd->type() == google::protobuf::FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) {
1135+ vars["field_dv_ctype"] = "ProtobufCBinaryData";
1136+ } else {
1137+ /* STRING type */
1138+ already_defined = true;
1139+ vars["maybe_static"] = "";
1140+ vars["field_dv_ctype"] = "char";
1141+ vars["field_dv_ctype_suffix"] = "[]";
1142+ }
1143+ break;
1144+ case google::protobuf::FieldDescriptor::CPPTYPE_ENUM: {
1145+ const google::protobuf::EnumValueDescriptor* vd = fd->default_value_enum();
1146+ vars["field_dv_ctype"] = FullNameToC(vd->type()->full_name(), vd->type()->file());
1147+ break;
1148+ }
1149+ default:
1150+ GOOGLE_LOG(FATAL) << "Unknown CPPTYPE";
1151+ break;
1152+ }
1153+ if (!already_defined) {
1154+ printer->Print(vars, "$maybe_static$const $field_dv_ctype$ $lcclassname$__$lcname$__default_value$field_dv_ctype_suffix$ = $default_value$;\n");
1155+ }
1156 }
1157- qsort(&field_indices[0], field_indices.size(), sizeof(NameIndex),
1158- compare_name_indices_by_name);
1159- printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n");
1160+ }
1161+
1162+ if (descriptor_->field_count()) {
1163+ printer->Print(vars,
1164+ "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n"
1165+ "{\n");
1166+ printer->Indent();
1167+
1168+ std::vector<const google::protobuf::FieldDescriptor*> sorted_fields;
1169 for (int i = 0; i < descriptor_->field_count(); i++) {
1170- vars["index"] = SimpleItoa(field_indices[i].index);
1171- vars["name"] = field_indices[i].name;
1172- printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n");
1173+ sorted_fields.push_back(descriptor_->field(i));
1174 }
1175- printer->Print("};\n");
1176- }
1177+ qsort(&sorted_fields[0],
1178+ sorted_fields.size(),
1179+ sizeof(const google::protobuf::FieldDescriptor*),
1180+ compare_pfields_by_number);
1181+ for (auto field : sorted_fields) {
1182+ field_generators_.get(field).GenerateDescriptorInitializer(printer);
1183+ }
1184+ printer->Outdent();
1185+ printer->Print(vars, "};\n");
1186
1187- // create range initializers
1188- std::vector<int> values;
1189- for (int i = 0; i < descriptor_->field_count(); i++) {
1190- values.push_back(sorted_fields[i]->number());
1191- }
1192- int n_ranges = WriteIntRanges(printer,
1193- descriptor_->field_count(), &values[0],
1194- vars["lcclassname"] + "__number_ranges");
1195+ if (!optimize_code_size) {
1196+ std::vector<NameIndex> field_indices;
1197+ for (unsigned i = 0; i < descriptor_->field_count(); i++) {
1198+ field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() });
1199+ }
1200+ qsort(&field_indices[0],
1201+ field_indices.size(),
1202+ sizeof(NameIndex),
1203+ compare_name_indices_by_name);
1204+ printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n");
1205+ for (int i = 0; i < descriptor_->field_count(); i++) {
1206+ vars["index"] = SimpleItoa(field_indices[i].index);
1207+ vars["name"] = field_indices[i].name;
1208+ printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n");
1209+ }
1210+ printer->Print("};\n");
1211+ }
1212
1213- vars["n_ranges"] = SimpleItoa(n_ranges);
1214- } else {
1215- /* MS compiler can't handle arrays with zero size and empty
1216- * initialization list. Furthermore it is an extension of GCC only but
1217- * not a standard. */
1218- vars["n_ranges"] = "0";
1219- printer->Print(vars,
1220- "#define $lcclassname$__field_descriptors NULL\n"
1221- "#define $lcclassname$__field_indices_by_name NULL\n"
1222- "#define $lcclassname$__number_ranges NULL\n");
1223+ // create range initializers
1224+ std::vector<int> values;
1225+ for (int i = 0; i < descriptor_->field_count(); i++) {
1226+ values.push_back(sorted_fields[i]->number());
1227 }
1228+ int n_ranges = WriteIntRanges(printer,
1229+ descriptor_->field_count(),
1230+ &values[0],
1231+ vars["lcclassname"] + "__number_ranges");
1232+
1233+ vars["n_ranges"] = SimpleItoa(n_ranges);
1234+ } else {
1235+ /* MS compiler can't handle arrays with zero size and empty
1236+ * initialization list. Furthermore it is an extension of GCC only but
1237+ * not a standard. */
1238+ vars["n_ranges"] = "0";
1239+ printer->Print(vars,
1240+ "#define $lcclassname$__field_descriptors NULL\n"
1241+ "#define $lcclassname$__field_indices_by_name NULL\n"
1242+ "#define $lcclassname$__number_ranges NULL\n");
1243+ }
1244
1245 printer->Print(vars,
1246- "const ProtobufCMessageDescriptor $lcclassname$__descriptor =\n"
1247- "{\n"
1248- " PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,\n");
1249+ "const ProtobufCMessageDescriptor $lcclassname$__descriptor =\n"
1250+ "{\n"
1251+ " PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,\n");
1252 if (optimize_code_size) {
1253 printer->Print(" NULL,NULL,NULL,NULL, /* CODE_SIZE */\n");
1254 } else {
1255 printer->Print(vars,
1256- " \"$fullname$\",\n"
1257- " \"$shortname$\",\n"
1258- " \"$classname$\",\n"
1259- " \"$packagename$\",\n");
1260+ " \"$fullname$\",\n"
1261+ " \"$shortname$\",\n"
1262+ " \"$classname$\",\n"
1263+ " \"$packagename$\",\n");
1264 }
1265 printer->Print(vars,
1266- " sizeof($classname$),\n"
1267- " $n_fields$,\n"
1268- " $lcclassname$__field_descriptors,\n");
1269+ " sizeof($classname$),\n"
1270+ " $n_fields$,\n"
1271+ " $lcclassname$__field_descriptors,\n");
1272 if (optimize_code_size) {
1273 printer->Print(" NULL, /* CODE_SIZE */\n");
1274 } else {
1275- printer->Print(vars,
1276- " $lcclassname$__field_indices_by_name,\n");
1277+ printer->Print(vars, " $lcclassname$__field_indices_by_name,\n");
1278 }
1279 printer->Print(vars,
1280- " $n_ranges$,"
1281- " $lcclassname$__number_ranges,\n");
1282+ " $n_ranges$,"
1283+ " $lcclassname$__number_ranges,\n");
1284 if (gen_init) {
1285- printer->Print(vars,
1286- " (ProtobufCMessageInit) $lcclassname$__init,\n");
1287+ printer->Print(vars, " (ProtobufCMessageInit) $lcclassname$__init,\n");
1288 } else {
1289- printer->Print(vars,
1290- " NULL, /* gen_init_helpers = false */\n");
1291+ printer->Print(vars, " NULL, /* gen_init_helpers = false */\n");
1292 }
1293 printer->Print(vars,
1294- " NULL,NULL,NULL /* reserved[123] */\n"
1295- "};\n");
1296+ " NULL,NULL,NULL /* reserved[123] */\n"
1297+ "};\n");
1298 }
1299
1300 int MessageGenerator::GetOneofUnionOrder(const google::protobuf::FieldDescriptor* fd)
1301
1302From c59b146aee2d97091ca2adeecd3f2741cb7f0082 Mon Sep 17 00:00:00 2001
1303From: Robert Edmonds <edmonds@users.noreply.github.com>
1304Date: Sat, 8 Feb 2025 21:10:37 -0500
1305Subject: [PATCH 08/11] compat: Use absl::string_view instead of
1306 google::protobuf::internal::DescriptorStringView
1307
1308Even though google::protobuf::internal::DescriptorStringView is exposed
1309in public protobuf headers, it's probably not a good idea to rely on an
1310"internal" typedef.
1311
1312According to https://protobuf.dev/news/2024-10-02/#descriptor-apis:
1313
1314 v30 will update return types in descriptor (such as full_name) to be
1315 absl::string_view.
1316
1317So `absl::string_view` is probably the right type to use here.
1318---
1319 protoc-gen-c/compat.h | 6 +++++-
1320 1 file changed, 5 insertions(+), 1 deletion(-)
1321
1322diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h
1323index fe8041b5..a70cef34 100644
1324--- a/protoc-gen-c/compat.h
1325+++ b/protoc-gen-c/compat.h
1326@@ -37,12 +37,16 @@
1327 # define GOOGLE_LOG ABSL_LOG
1328 #endif
1329
1330+#if GOOGLE_PROTOBUF_VERSION >= 6030000
1331+# include <absl/strings/string_view.h>
1332+#endif
1333+
1334 namespace protobuf_c {
1335
1336 namespace compat {
1337
1338 #if GOOGLE_PROTOBUF_VERSION >= 6030000
1339-typedef google::protobuf::internal::DescriptorStringView StringView;
1340+typedef absl::string_view StringView;
1341 #else
1342 typedef const std::string& StringView;
1343 #endif
1344
1345From 9c56038fd9d3cc2552c297457d7a66efe5cbd2c7 Mon Sep 17 00:00:00 2001
1346From: Robert Edmonds <edmonds@users.noreply.github.com>
1347Date: Sat, 8 Feb 2025 21:37:30 -0500
1348Subject: [PATCH 09/11] Makefile.am: Add compat.h to
1349 protoc_gen_c_protoc_gen_c_SOURCES
1350
1351---
1352 Makefile.am | 1 +
1353 1 file changed, 1 insertion(+)
1354
1355diff --git a/Makefile.am b/Makefile.am
1356index 77aa9d99..26d19f16 100644
1357--- a/Makefile.am
1358+++ b/Makefile.am
1359@@ -102,6 +102,7 @@ protoc_gen_c_protoc_gen_c_SOURCES = \
1360 protoc-gen-c/c_service.h \
1361 protoc-gen-c/c_string_field.cc \
1362 protoc-gen-c/c_string_field.h \
1363+ protoc-gen-c/compat.h \
1364 protobuf-c/protobuf-c.pb.cc \
1365 protobuf-c/protobuf-c.pb.h \
1366 protoc-gen-c/main.cc
1367
1368From 4ebd5cd8238d1f2ac6291b8c8925f34e16ce2123 Mon Sep 17 00:00:00 2001
1369From: Robert Edmonds <edmonds@users.noreply.github.com>
1370Date: Sat, 8 Feb 2025 21:38:07 -0500
1371Subject: [PATCH 10/11] compat: Conditionalize the include of <string>
1372
1373It is only needed on older protobuf versions where absl::string_view is
1374not being used.
1375---
1376 protoc-gen-c/compat.h | 4 ++--
1377 1 file changed, 2 insertions(+), 2 deletions(-)
1378
1379diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h
1380index a70cef34..f6ace7cb 100644
1381--- a/protoc-gen-c/compat.h
1382+++ b/protoc-gen-c/compat.h
1383@@ -28,8 +28,6 @@
1384 #ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
1385 #define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__
1386
1387-#include <string>
1388-
1389 #if GOOGLE_PROTOBUF_VERSION >= 4022000
1390 # define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
1391 # define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
1392@@ -39,6 +37,8 @@
1393
1394 #if GOOGLE_PROTOBUF_VERSION >= 6030000
1395 # include <absl/strings/string_view.h>
1396+#else
1397+# include <string>
1398 #endif
1399
1400 namespace protobuf_c {
1401
1402From 9a6b35e1e6956fb5cb044910448049b7a5339244 Mon Sep 17 00:00:00 2001
1403From: Robert Edmonds <edmonds@users.noreply.github.com>
1404Date: Sat, 8 Feb 2025 21:44:42 -0500
1405Subject: [PATCH 11/11] Cater to Microsoft Visual C++
1406
1407Apparently MSVC doesn't support designated initializers for some reason.
1408---
1409 protoc-gen-c/c_enum.cc | 9 ++-------
1410 protoc-gen-c/c_message.cc | 2 +-
1411 2 files changed, 3 insertions(+), 8 deletions(-)
1412
1413diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc
1414index c7839edd..1940ba9d 100644
1415--- a/protoc-gen-c/c_enum.cc
1416+++ b/protoc-gen-c/c_enum.cc
1417@@ -195,14 +195,9 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe
1418 // Sort by name and value, dropping duplicate values if they appear later.
1419 // TODO: use a c++ paradigm for this!
1420 std::vector<ValueIndex> value_index;
1421- for (unsigned j = 0; j < descriptor_->value_count(); j++) {
1422+ for (int j = 0; j < descriptor_->value_count(); j++) {
1423 const google::protobuf::EnumValueDescriptor *vd = descriptor_->value(j);
1424- value_index.push_back({
1425- .value = vd->number(),
1426- .index = j,
1427- .final_index = 0,
1428- .name = vd->name(),
1429- });
1430+ value_index.push_back({ vd->number(), (unsigned)j, 0, vd->name() });
1431 }
1432 qsort(&value_index[0],
1433 value_index.size(),
1434diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc
1435index 2a3b2a2f..94889179 100644
1436--- a/protoc-gen-c/c_message.cc
1437+++ b/protoc-gen-c/c_message.cc
1438@@ -581,7 +581,7 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init)
1439 if (!optimize_code_size) {
1440 std::vector<NameIndex> field_indices;
1441 for (unsigned i = 0; i < descriptor_->field_count(); i++) {
1442- field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() });
1443+ field_indices.push_back({ i, sorted_fields[i]->name() });
1444 }
1445 qsort(&field_indices[0],
1446 field_indices.size(),
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.2.bb
index 30c9e19b16..7fe514fe07 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.1.bb
+++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.2.bb
@@ -13,11 +13,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=bd8de4f63e06b1ccc06e9f8dc5b1aa97"
13DEPENDS = "protobuf-native protobuf" 13DEPENDS = "protobuf-native protobuf"
14 14
15SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ 15SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \
16 file://protobuf-30.patch \
17" 16"
18SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch" 17SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch"
19 18
20SRCREV = "185beed28e65494be7505b30c1afeaf199e19b23" 19SRCREV = "4719fdd7760624388c2c5b9d6759eb6a47490626"
21 20
22 21
23inherit autotools pkgconfig 22inherit autotools pkgconfig
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb b/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb
index 4af48b0b99..880dd82b1d 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb
+++ b/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb
@@ -29,6 +29,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d\.\d+\.\d+)"
29CVE_PRODUCT = "google:protobuf protobuf:protobuf google-protobuf protobuf-cpp" 29CVE_PRODUCT = "google:protobuf protobuf:protobuf google-protobuf protobuf-cpp"
30 30
31CVE_STATUS[CVE-2026-0994] = "cpe-incorrect: the vulnerability affects only python3-protobuf recipe" 31CVE_STATUS[CVE-2026-0994] = "cpe-incorrect: the vulnerability affects only python3-protobuf recipe"
32CVE_STATUS[CVE-2026-6409] = "cpe-incorrect: the vulnerability affects only the php library"
32 33
33inherit cmake pkgconfig ptest 34inherit cmake pkgconfig ptest
34 35
diff --git a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb
index 102e329878..0a3fbf5b93 100644
--- a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb
+++ b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb
@@ -9,7 +9,7 @@ SECTION = "libs"
9LICENSE = "Apache-2.0" 9LICENSE = "Apache-2.0"
10LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 10LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
11 11
12CVE_PRODUCT = "xerces-c\+\+" 12CVE_PRODUCT = "xerces-c++"
13 13
14SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2 \ 14SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2 \
15 file://0001-aclocal.m4-don-t-use-full-path-of-with_curl-in-xerce.patch \ 15 file://0001-aclocal.m4-don-t-use-full-path-of-with_curl-in-xerce.patch \
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists.txt-make-CONFIGURATION_FILES_DIR-aligned.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists.txt-make-CONFIGURATION_FILES_DIR-aligned.patch
new file mode 100644
index 0000000000..2d51253e69
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists.txt-make-CONFIGURATION_FILES_DIR-aligned.patch
@@ -0,0 +1,42 @@
1From bad5d689a69dca3d1dc3e7653946f1205661afbf Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Fri, 10 Apr 2026 13:25:39 +0800
4Subject: [PATCH 1/2] CMakeLists.txt: make CONFIGURATION_FILES_DIR aligned
5
6Commit [723e90e dlt: Adaptation for QNX build system with SDP 7.x
7(#609)], refer [1], make CONFIGURATION_FILES_DIR not aligned. the CMake
8variable CONFIGURATION_FILES_DIR set to CMAKE_INSTALL_SYSCONFDIR, but
9the tell the compiler to define macro CONFIGURATION_FILES_DIR as
10${CMAKE_INSTALL_PREFIX}/${CONFIGURATION_FILES_DIR}.
11
12At least for linux, this will cause failure of the systemd service. Eg:
13if CMAKE_INSTALL_PREFIX is /usr, then the configuration file is
14installed under ${CONFIGURATION_FILES_DIR}, usually is /etc. But the
15application like dlt-daemon/dlt-system will find the default
16configuration file under /usr/etc. This makes service start failed.
17
18[1] https://github.com/COVESA/dlt-daemon/commit/723e90e77db91130375238a592b9a292302a32bb
19
20Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/issues/848]
21
22Signed-off-by: Changqing Li <changqing.li@windriver.com>
23---
24 CMakeLists.txt | 2 +-
25 1 file changed, 1 insertion(+), 1 deletion(-)
26
27diff --git a/CMakeLists.txt b/CMakeLists.txt
28index bb9250f..821730a 100644
29--- a/CMakeLists.txt
30+++ b/CMakeLists.txt
31@@ -289,7 +289,7 @@ endif()
32
33 set(CONFIGURATION_FILES_DIR ${CMAKE_INSTALL_SYSCONFDIR})
34
35-add_definitions(-DCONFIGURATION_FILES_DIR="${CMAKE_INSTALL_PREFIX}/${CONFIGURATION_FILES_DIR}")
36+add_definitions(-DCONFIGURATION_FILES_DIR="${CONFIGURATION_FILES_DIR}")
37
38 add_subdirectory(cmake)
39
40--
412.34.1
42
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-daemon.c-fix-wrong-len.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-daemon.c-fix-wrong-len.patch
new file mode 100644
index 0000000000..bac7691c32
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-daemon.c-fix-wrong-len.patch
@@ -0,0 +1,37 @@
1From 7e94c281563ff0eb67e521cf0a6fc3049f732214 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Wed, 15 Apr 2026 16:52:19 +0800
4Subject: [PATCH] dlt-daemon.c: fix wrong len
5
6Set len to 0 makes the application description always empty.
7One of the failure case:
8Running "dlt-example-user 'test'",
9Check "dlt-control -j localhost", will not get application description:
10APID:LOG-
11
12Expected:
13APID:LOG- Test Application for Logging
14
15Upstream-Status: Backport [https://github.com/COVESA/dlt-daemon/pull/852]
16
17Signed-off-by: Changqing Li <changqing.li@windriver.com>
18---
19 src/daemon/dlt-daemon.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
23index 8c318a4..38fe824 100644
24--- a/src/daemon/dlt-daemon.c
25+++ b/src/daemon/dlt-daemon.c
26@@ -4110,7 +4110,7 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
27 to_remove = (uint32_t) temp;
28 }
29
30- len = 0;
31+ len = userapp.description_length;
32
33 if (len > DLT_DAEMON_DESCSIZE) {
34 len = DLT_DAEMON_DESCSIZE;
35--
362.34.1
37
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch
index d19a23cd9c..b1ba08a7d3 100644
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch
@@ -1,4 +1,4 @@
1From 28322f951bb8510ddb4cf767426a67c81ce826ab Mon Sep 17 00:00:00 2001 1From 6a95cc20d3c5adfc5c16f269f6dca9f7e2305b4e Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com> 2From: Changqing Li <changqing.li@windriver.com>
3Date: Tue, 17 Mar 2026 13:04:11 +0800 3Date: Tue, 17 Mar 2026 13:04:11 +0800
4Subject: [PATCH] fix build failure when systemd is enabled 4Subject: [PATCH] fix build failure when systemd is enabled
@@ -42,10 +42,10 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
42 src/system/dlt-system-logfile.c | 4 +-- 42 src/system/dlt-system-logfile.c | 4 +--
43 src/system/dlt-system-process-handling.c | 2 +- 43 src/system/dlt-system-process-handling.c | 2 +-
44 src/system/dlt-system-processes.c | 2 +- 44 src/system/dlt-system-processes.c | 2 +-
45 src/system/dlt-system-syslog.c | 6 ++-- 45 src/system/dlt-system-syslog.c | 8 ++---
46 src/system/dlt-system-watchdog.c | 8 ++--- 46 src/system/dlt-system-watchdog.c | 8 ++---
47 systemd/3rdparty/sd-daemon.c | 5 +-- 47 systemd/3rdparty/sd-daemon.c | 5 +--
48 10 files changed, 40 insertions(+), 42 deletions(-) 48 10 files changed, 41 insertions(+), 43 deletions(-)
49 49
50diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c 50diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
51index ef42f89..8c318a4 100644 51index ef42f89..8c318a4 100644
@@ -329,10 +329,10 @@ index c35596c..b17b8ee 100644
329 329
330 /* go through all process files in directory */ 330 /* go through all process files in directory */
331diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c 331diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c
332index 59e9d3f..d6b1b8a 100644 332index 59e9d3f..f0bf3dc 100644
333--- a/src/system/dlt-system-syslog.c 333--- a/src/system/dlt-system-syslog.c
334+++ b/src/system/dlt-system-syslog.c 334+++ b/src/system/dlt-system-syslog.c
335@@ -88,7 +88,7 @@ int init_socket(SyslogOptions opts) 335@@ -88,11 +88,11 @@ int init_socket(SyslogOptions opts)
336 #ifdef DLT_USE_IPv6 336 #ifdef DLT_USE_IPv6
337 syslog_addr.sin6_family = AF_INET6; 337 syslog_addr.sin6_family = AF_INET6;
338 syslog_addr.sin6_addr = in6addr_any; 338 syslog_addr.sin6_addr = in6addr_any;
@@ -341,6 +341,11 @@ index 59e9d3f..d6b1b8a 100644
341 #else 341 #else
342 syslog_addr.sin_family = AF_INET; 342 syslog_addr.sin_family = AF_INET;
343 syslog_addr.sin_addr.s_addr = INADDR_ANY; 343 syslog_addr.sin_addr.s_addr = INADDR_ANY;
344- syslog_addr.sin_port = htons(opts.Port);
345+ syslog_addr.sin_port = htons((uint16_t)opts.Port);
346 memset(&(syslog_addr.sin_zero), 0, 8);
347 #endif
348
344@@ -117,7 +117,7 @@ int read_socket(int sock) 349@@ -117,7 +117,7 @@ int read_socket(int sock)
345 struct sockaddr_in client_addr; 350 struct sockaddr_in client_addr;
346 socklen_t addr_len = sizeof(struct sockaddr_in); 351 socklen_t addr_len = sizeof(struct sockaddr_in);
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-warnings-Fix-clang-generated-warnings.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-warnings-Fix-clang-generated-warnings.patch
new file mode 100644
index 0000000000..208e433e53
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-warnings-Fix-clang-generated-warnings.patch
@@ -0,0 +1,1003 @@
1From 74b36fab6e7e66ca470b7b2ca2a494edd8c673d5 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 10 Apr 2026 23:42:05 -0700
4Subject: [PATCH] warnings: Fix clang generated warnings
5
6This patch ensures that it can compile with clang-22
7
8Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/850]
9Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
10---
11 CMakeLists.txt | 3 +
12 examples/example1/example1.c | 2 +-
13 examples/example1_v2/example1.c | 2 +-
14 examples/example2/example2.c | 2 +-
15 examples/example2_v2/example2.c | 2 +-
16 examples/example3/example3.c | 2 +-
17 examples/example3_v2/example3.c | 2 +-
18 examples/example4/example4.c | 2 +-
19 examples/example4_v2/example4.c | 2 +-
20 src/console/dlt-control-v2.c | 2 +-
21 src/console/dlt-passive-node-ctrl.c | 8 +--
22 src/console/dlt-receive-v2.c | 2 +-
23 src/console/dlt-sortbytimestamp.c | 2 +-
24 src/console/logstorage/dlt-logstorage-ctrl.c | 2 +-
25 src/daemon/dlt-daemon.c | 6 +-
26 src/daemon/dlt-daemon.h | 2 +-
27 src/daemon/dlt_daemon_client.c | 6 +-
28 src/examples/dlt-example-filetransfer.c | 8 ++-
29 .../dlt-example-multicast-clientmsg-view.c | 4 +-
30 src/examples/dlt-example-user-common-api.c | 2 +-
31 src/examples/dlt-example-user-func-v2.c | 2 +-
32 src/examples/dlt-example-user-func.c | 2 +-
33 src/examples/dlt-example-user-v2.c | 4 +-
34 src/examples/dlt-example-user.c | 2 +-
35 src/lib/dlt_env_ll.c | 3 +-
36 src/lib/dlt_user.c | 70 +++++++++----------
37 .../dlt_offline_logstorage.c | 2 +-
38 src/shared/dlt_log.c | 8 +--
39 src/system/dlt-system-journal.c | 8 ++-
40 src/system/dlt-system-process-handling.c | 2 +-
41 src/system/dlt-system-shell.c | 2 +-
42 src/system/dlt-system.h | 4 +-
43 src/tests/dlt-test-client-v2.c | 2 +-
44 src/tests/dlt-test-fork-handler-v2.c | 2 +-
45 src/tests/dlt-test-fork-handler.c | 2 +-
46 src/tests/dlt-test-multi-process-v2.c | 8 +--
47 src/tests/dlt-test-multi-process.c | 8 +--
48 src/tests/dlt-test-non-verbose.c | 4 +-
49 src/tests/dlt-test-preregister-context-v2.c | 2 +-
50 src/tests/dlt-test-preregister-context.c | 2 +-
51 src/tests/dlt-test-qnx-slogger.c | 2 +-
52 src/tests/dlt-test-stress-client-v2.c | 2 +-
53 src/tests/dlt-test-stress-user-v2.c | 2 +-
54 src/tests/dlt-test-stress-v2.c | 2 +-
55 src/tests/dlt-test-stress.c | 2 +-
56 src/tests/dlt-test-user-v2.c | 2 +-
57 src/tests/dlt-test-user.c | 2 +-
58 tests/dlt_test_receiver.c | 2 +-
59 48 files changed, 110 insertions(+), 108 deletions(-)
60
61--- a/CMakeLists.txt
62+++ b/CMakeLists.txt
63@@ -261,7 +261,11 @@ add_compile_options(
64 -Wcast-qual
65 -Wno-system-headers
66 -Wno-unused-function
67- -Wno-stringop-truncation
68+ $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:-Wno-gnu-statement-expression-from-macro-expansion>
69+ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Clang>>:-Wno-gnu-statement-expression-from-macro-expansion>
70+ $<$<CXX_COMPILER_ID:Clang>:-Wno-gnu-zero-variadic-macro-arguments>
71+ $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:GNU>>:-Wno-stringop-truncation>
72+ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:GNU>>:-Wno-stringop-truncation>
73 )
74
75 if(WITH_DOC STREQUAL "OFF")
76--- a/examples/example1/example1.c
77+++ b/examples/example1/example1.c
78@@ -50,7 +50,7 @@
79
80 DLT_DECLARE_CONTEXT(con_exa1);
81
82-int main()
83+int main(void)
84 {
85 struct timespec ts;
86
87--- a/examples/example1_v2/example1.c
88+++ b/examples/example1_v2/example1.c
89@@ -50,7 +50,7 @@
90
91 DLT_DECLARE_CONTEXT(con_exa1);
92
93-int main()
94+int main(void)
95 {
96 struct timespec ts;
97
98--- a/examples/example2/example2.c
99+++ b/examples/example2/example2.c
100@@ -52,7 +52,7 @@
101
102 DLT_DECLARE_CONTEXT(con_exa2);
103
104-int main()
105+int main(void)
106 {
107 int num;
108 struct timespec ts;
109--- a/examples/example2_v2/example2.c
110+++ b/examples/example2_v2/example2.c
111@@ -52,7 +52,7 @@
112
113 DLT_DECLARE_CONTEXT(con_exa2);
114
115-int main()
116+int main(void)
117 {
118 int num;
119 struct timespec ts;
120--- a/examples/example3/example3.c
121+++ b/examples/example3/example3.c
122@@ -52,7 +52,7 @@
123
124 DLT_DECLARE_CONTEXT(con_exa3);
125
126-int main()
127+int main(void)
128 {
129 int num;
130 struct timespec ts;
131--- a/examples/example3_v2/example3.c
132+++ b/examples/example3_v2/example3.c
133@@ -52,7 +52,7 @@
134
135 DLT_DECLARE_CONTEXT(con_exa3);
136
137-int main()
138+int main(void)
139 {
140 int num;
141 struct timespec ts;
142--- a/examples/example4/example4.c
143+++ b/examples/example4/example4.c
144@@ -50,7 +50,7 @@
145
146 DLT_DECLARE_CONTEXT(con_exa1);
147
148-int main()
149+int main(void)
150 {
151 unsigned char buffer[256];
152 int num;
153--- a/examples/example4_v2/example4.c
154+++ b/examples/example4_v2/example4.c
155@@ -50,7 +50,7 @@
156
157 DLT_DECLARE_CONTEXT(con_exa1);
158
159-int main()
160+int main(void)
161 {
162 unsigned char buffer[256];
163 int num;
164--- a/src/console/dlt-control-v2.c
165+++ b/src/console/dlt-control-v2.c
166@@ -129,7 +129,7 @@ typedef struct {
167 /**
168 * Print usage information of tool.
169 */
170-void usage()
171+void usage(void)
172 {
173 char version[255];
174
175--- a/src/console/dlt-passive-node-ctrl.c
176+++ b/src/console/dlt-passive-node-ctrl.c
177@@ -118,7 +118,7 @@ void set_node_id(char *id)
178 }
179 }
180
181-char *get_node_id()
182+char *get_node_id(void)
183 {
184 return g_options.node_id;
185 }
186@@ -211,7 +211,7 @@ static int dlt_passive_node_analyze_resp
187 *
188 * @return Pointer ot DltControlMsgBody, NULL otherwise
189 */
190-DltControlMsgBody *dlt_passive_node_prepare_message_body()
191+DltControlMsgBody *dlt_passive_node_prepare_message_body(void)
192 {
193 DltControlMsgBody *mb = calloc(1, sizeof(DltControlMsgBody));
194 char *ecuid = get_node_id();
195@@ -271,7 +271,7 @@ void dlt_passive_node_destroy_message_bo
196 *
197 * @return 0 on success, -1 on error
198 */
199-static int dlt_passive_node_ctrl_single_request()
200+static int dlt_passive_node_ctrl_single_request(void)
201 {
202 int ret = -1;
203
204@@ -301,7 +301,7 @@ static int dlt_passive_node_ctrl_single_
205 return ret;
206 }
207
208-static void usage()
209+static void usage(void)
210 {
211 printf("Usage: dlt-passive-node-ctrl [options]\n");
212 printf("Send a trigger to DLT daemon to (dis)connect a passive node "
213--- a/src/console/dlt-receive-v2.c
214+++ b/src/console/dlt-receive-v2.c
215@@ -144,7 +144,7 @@ typedef struct {
216 /**
217 * Print usage information of tool.
218 */
219-void usage()
220+void usage(void)
221 {
222 char version[255];
223
224--- a/src/console/dlt-sortbytimestamp.c
225+++ b/src/console/dlt-sortbytimestamp.c
226@@ -194,7 +194,7 @@ void write_messages(int ohandle, DltFile
227 /**
228 * Print usage information of tool.
229 */
230-void usage() {
231+void usage(void) {
232 char version[DLT_VERBUFSIZE];
233
234 dlt_get_version(version, DLT_VERBUFSIZE);
235--- a/src/console/logstorage/dlt-logstorage-ctrl.c
236+++ b/src/console/logstorage/dlt-logstorage-ctrl.c
237@@ -354,7 +354,7 @@ static int dlt_logstorage_ctrl_setup_eve
238 *
239 * @return 0 on success, -1 otherwise.
240 */
241-static int dlt_logstorage_ctrl_single_request()
242+static int dlt_logstorage_ctrl_single_request(void)
243 {
244 int ret = 0;
245
246--- a/src/daemon/dlt-daemon.c
247+++ b/src/daemon/dlt-daemon.c
248@@ -207,7 +207,7 @@ void close_pipes(int fds[2])
249 /**
250 * Print usage information of tool.
251 */
252-void usage()
253+void usage(void)
254 {
255 char version[DLT_DAEMON_TEXTBUFSIZE];
256 dlt_get_version(version, DLT_DAEMON_TEXTBUFSIZE);
257@@ -2489,7 +2489,7 @@ void dlt_daemon_local_cleanup(DltDaemon
258 free(daemon_local->flags.ipNodes);
259 }
260
261-void dlt_daemon_exit_trigger()
262+void dlt_daemon_exit_trigger(void)
263 {
264 /* stop event loop */
265 g_exit = -1;
266@@ -2655,7 +2655,7 @@ int dlt_daemon_log_internal(DltDaemon *d
267
268 msg.storageheadersizev2 = (uint32_t)(STORAGE_HEADER_V2_FIXED_SIZE + strlen(DLT_DAEMON_ECU_ID));
269 msg.baseheadersizev2 = BASE_HEADER_V2_FIXED_SIZE;
270- msg.baseheaderextrasizev2 = (int32_t)dlt_message_get_extraparameters_size_v2(msgcontent);
271+ msg.baseheaderextrasizev2 = (uint32_t)dlt_message_get_extraparameters_size_v2(msgcontent);
272 /* Ecu Id, App Id, Ctx Id and Session Id*/
273 msg.extendedheadersizev2 = (uint32_t)(1 + strlen(DLT_DAEMON_ECU_ID) + 1 + strlen(app_id) + 1 + strlen(ctx_id) + sizeof(uint32_t));
274
275--- a/src/daemon/dlt-daemon.h
276+++ b/src/daemon/dlt-daemon.h
277@@ -217,7 +217,7 @@ int dlt_daemon_local_connection_init(Dlt
278 int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose);
279
280 void dlt_daemon_daemonize(int verbose);
281-void dlt_daemon_exit_trigger();
282+void dlt_daemon_exit_trigger(void);
283 void dlt_daemon_signal_handler(int sig);
284 #ifdef __QNX__
285 void dlt_daemon_cleanup_timers();
286--- a/src/daemon/dlt_daemon_client.c
287+++ b/src/daemon/dlt_daemon_client.c
288@@ -817,7 +817,7 @@ int dlt_daemon_client_send_control_messa
289
290 msg->storageheadersizev2 = (uint32_t)(STORAGE_HEADER_V2_FIXED_SIZE + (daemon->ecuid2len));
291 msg->baseheadersizev2 = BASE_HEADER_V2_FIXED_SIZE;
292- msg->baseheaderextrasizev2 = (int32_t)dlt_message_get_extraparameters_size_v2(DLT_CONTROL_MSG);
293+ msg->baseheaderextrasizev2 = (uint32_t)dlt_message_get_extraparameters_size_v2(DLT_CONTROL_MSG);
294 msg->extendedheadersizev2 = (uint32_t)((daemon->ecuid2len) + 1 + appidlen + 1 + ctxidlen + 1);
295
296 msg->headersizev2 = (int32_t)(msg->storageheadersizev2 + msg->baseheadersizev2 +
297@@ -5388,7 +5388,7 @@ void dlt_daemon_control_passive_node_con
298
299 con = &daemon_local->pGateway.connections[i];
300
301- resp->connection_status[i] = con->status;
302+ resp->connection_status[i] = (uint8_t)con->status;
303 //TBD: Review node_id[i * con->ecuid2len]
304 memcpy(&resp->node_id[i * con->ecuid2len], con->ecuid2, con->ecuid2len);
305 }
306@@ -5471,7 +5471,7 @@ void dlt_daemon_control_passive_node_con
307
308 con = &daemon_local->pGateway.connections[i];
309
310- resp->connection_status[i] = con->status;
311+ resp->connection_status[i] = (uint8_t)con->status;
312 memcpy(&resp->node_id[i * DLT_ID_SIZE], con->ecuid, DLT_ID_SIZE);
313 }
314
315--- a/src/examples/dlt-example-filetransfer.c
316+++ b/src/examples/dlt-example-filetransfer.c
317@@ -84,9 +84,10 @@ bool shutdownStatus = false;
318 * The function will set the flag (shutdownStatus) to true after .2 sec
319 * @return Null to stop thread
320 */
321-void *cancel_filetransfer()
322+void *cancel_filetransfer(void* arg)
323 {
324 // wait 200msec once a filetransfer is started and then set the flag to true
325+ (void)arg;
326 struct timespec ts;
327 ts.tv_sec = 0;
328 ts.tv_nsec = 200000000; // 200 ms
329@@ -99,8 +100,9 @@ void *cancel_filetransfer()
330 * The function will start dlt filetransfer and will throw error if status of shutdownStatus is high
331 * @return Null to stop thread
332 */
333-void *filetransfer()
334+void *filetransfer(void* arg)
335 {
336+ (void)arg;
337 int transferResult;
338
339 transferResult = dlt_user_log_file_header(&fileContext, file);
340@@ -125,7 +127,7 @@ void *filetransfer()
341 /**
342 * Print usage information of tool.
343 */
344-void usage()
345+void usage(void)
346 {
347 char version[255];
348
349--- a/src/examples/dlt-example-multicast-clientmsg-view.c
350+++ b/src/examples/dlt-example-multicast-clientmsg-view.c
351@@ -96,7 +96,7 @@ int dlt_receive_message_callback_udp(Dlt
352 {
353 static char text[DLT_RECEIVE_TEXTBUFSIZE];
354
355- if ((message == NULL)) {
356+ if (message == NULL) {
357 printf("NULL message in dlt_receive_message_callback_udp\n");
358 return -1;
359 }
360@@ -119,7 +119,7 @@ int dlt_receive_message_callback_udp(Dlt
361 }
362
363
364-int main()
365+int main(void)
366 {
367 struct clientinfostruct clientinfo;
368 struct ip_mreq mreq;
369--- a/src/examples/dlt-example-user-common-api.c
370+++ b/src/examples/dlt-example-user-common-api.c
371@@ -66,7 +66,7 @@ DLT_DECLARE_CONTEXT(mycontext)
372 /**
373 * Print usage information of tool.
374 */
375-void usage()
376+void usage(void)
377 {
378 char version[255];
379
380--- a/src/examples/dlt-example-user-func-v2.c
381+++ b/src/examples/dlt-example-user-func-v2.c
382@@ -84,7 +84,7 @@ DltContextData mycontextdata;
383 /**
384 * Print usage information of tool.
385 */
386-void usage()
387+void usage(void)
388 {
389 char version[255];
390
391--- a/src/examples/dlt-example-user-func.c
392+++ b/src/examples/dlt-example-user-func.c
393@@ -82,7 +82,7 @@ DltContextData mycontextdata;
394 /**
395 * Print usage information of tool.
396 */
397-void usage()
398+void usage(void)
399 {
400 char version[255];
401
402--- a/src/examples/dlt-example-user-v2.c
403+++ b/src/examples/dlt-example-user-v2.c
404@@ -88,7 +88,7 @@ DLT_DECLARE_CONTEXT(mycontext3)
405 /**
406 * Print usage information of tool.
407 */
408-void usage()
409+void usage(void)
410 {
411 char version[255];
412
413@@ -458,4 +458,4 @@ int dlt_user_injection_callback_with_spe
414 void dlt_user_log_level_changed_callback_v2(char *context_id, uint8_t log_level, uint8_t trace_status)
415 {
416 printf("Log level changed of context %s, LogLevel=%u, TraceState=%u\n", context_id, log_level, trace_status);
417-}
418\ No newline at end of file
419+}
420--- a/src/examples/dlt-example-user.c
421+++ b/src/examples/dlt-example-user.c
422@@ -86,7 +86,7 @@ DLT_DECLARE_CONTEXT(mycontext3)
423 /**
424 * Print usage information of tool.
425 */
426-void usage()
427+void usage(void)
428 {
429 char version[255];
430
431--- a/src/lib/dlt_env_ll.c
432+++ b/src/lib/dlt_env_ll.c
433@@ -125,7 +125,8 @@ int dlt_env_helper_to_lower(char **const
434
435 int dlt_env_extract_symbolic_ll(char **const env, int8_t *ll)
436 {
437- char result[strlen("verbose") + 1];
438+ char result[sizeof("verbose")];
439+
440
441 if (!env || !ll) {
442 return -1;
443--- a/src/lib/dlt_user.c
444+++ b/src/lib/dlt_user.c
445@@ -545,7 +545,7 @@ DltReturnValue dlt_init(void)
446
447 /* Check logging mode and internal log file is opened or not*/
448 if (logging_mode == DLT_LOG_TO_FILE && logging_handle == NULL) {
449- dlt_log_init(logging_mode);
450+ dlt_log_init((int)logging_mode);
451 }
452
453 /* Initialize common part of dlt_init()/dlt_init_file() */
454@@ -2391,14 +2391,14 @@ DltReturnValue dlt_set_application_ll_ts
455
456 /* Update local structures */
457 for (i = 0; i < dlt_user.dlt_ll_ts_num_entries; i++) {
458- dlt_user.dlt_ll_ts[i].log_level = loglevel;
459- dlt_user.dlt_ll_ts[i].trace_status = tracestatus;
460+ dlt_user.dlt_ll_ts[i].log_level = (int8_t)loglevel;
461+ dlt_user.dlt_ll_ts[i].trace_status = (int8_t)tracestatus;
462
463 if (dlt_user.dlt_ll_ts[i].log_level_ptr)
464- *(dlt_user.dlt_ll_ts[i].log_level_ptr) = loglevel;
465+ *(dlt_user.dlt_ll_ts[i].log_level_ptr) = (int8_t)loglevel;
466
467 if (dlt_user.dlt_ll_ts[i].trace_status_ptr)
468- *(dlt_user.dlt_ll_ts[i].trace_status_ptr) = tracestatus;
469+ *(dlt_user.dlt_ll_ts[i].trace_status_ptr) = (int8_t)tracestatus;
470 }
471
472 dlt_mutex_unlock();
473@@ -2413,7 +2413,7 @@ DltReturnValue dlt_set_application_ll_ts
474 }
475 }
476
477-int dlt_get_log_state()
478+int dlt_get_log_state(void)
479 {
480 return dlt_user.log_state;
481 }
482@@ -2500,25 +2500,6 @@ DltReturnValue dlt_user_log_write_start_
483 return DLT_RETURN_TRUE;
484 }
485
486-static DltReturnValue dlt_user_log_write_start_internal(DltContext *handle,
487- DltContextData *log,
488- DltLogLevelType loglevel,
489- uint32_t messageid,
490- bool is_verbose);
491-
492-inline DltReturnValue dlt_user_log_write_start(DltContext *handle, DltContextData *log, DltLogLevelType loglevel)
493-{
494- return dlt_user_log_write_start_internal(handle, log, loglevel, DLT_USER_DEFAULT_MSGID, true);
495-}
496-
497-DltReturnValue dlt_user_log_write_start_id(DltContext *handle,
498- DltContextData *log,
499- DltLogLevelType loglevel,
500- uint32_t messageid)
501-{
502- return dlt_user_log_write_start_internal(handle, log, loglevel, messageid, false);
503-}
504-
505 DltReturnValue dlt_user_log_write_start_internal(DltContext *handle,
506 DltContextData *log,
507 DltLogLevelType loglevel,
508@@ -2587,6 +2568,19 @@ DltReturnValue dlt_user_log_write_start_
509 return ret;
510 }
511
512+inline DltReturnValue dlt_user_log_write_start(DltContext *handle, DltContextData *log, DltLogLevelType loglevel)
513+{
514+ return dlt_user_log_write_start_internal(handle, log, loglevel, DLT_USER_DEFAULT_MSGID, true);
515+}
516+
517+DltReturnValue dlt_user_log_write_start_id(DltContext *handle,
518+ DltContextData *log,
519+ DltLogLevelType loglevel,
520+ uint32_t messageid)
521+{
522+ return dlt_user_log_write_start_internal(handle, log, loglevel, messageid, false);
523+}
524+
525 DltReturnValue dlt_user_log_write_start_w_given_buffer(DltContext *handle,
526 DltContextData *log,
527 DltLogLevelType loglevel,
528@@ -3746,7 +3740,7 @@ DltReturnValue dlt_user_trace_network_se
529 }
530
531 log.args_num = 0;
532- log.trace_status = nw_trace_type;
533+ log.trace_status = (int32_t)nw_trace_type;
534 log.size = 0;
535
536 gettimeofday(&tv, NULL);
537@@ -3848,7 +3842,7 @@ DltReturnValue dlt_user_trace_network_se
538 }
539
540 log.args_num = 0;
541- log.trace_status = nw_trace_type;
542+ log.trace_status = (int32_t)nw_trace_type;
543 log.size = 0;
544
545 /* Write identifier */
546@@ -3917,7 +3911,7 @@ DltReturnValue dlt_user_trace_network_se
547 }
548
549 log.args_num = 0;
550- log.trace_status = nw_trace_type;
551+ log.trace_status = (int32_t)nw_trace_type;
552 log.size = 0;
553
554 /* Write identifier */
555@@ -4184,7 +4178,7 @@ DltReturnValue dlt_user_trace_network_tr
556 }
557
558 log.args_num = 0;
559- log.trace_status = nw_trace_type;
560+ log.trace_status = (int32_t)nw_trace_type;
561 log.size = 0;
562
563 if (header == NULL)
564@@ -4556,7 +4550,7 @@ DltReturnValue dlt_log_raw_v2(DltContext
565 return DLT_RETURN_OK;
566 }
567
568-DltReturnValue dlt_log_marker()
569+DltReturnValue dlt_log_marker(void)
570 {
571 if (!DLT_USER_INITIALIZED) {
572 if (dlt_init() < DLT_RETURN_OK) {
573@@ -6299,8 +6293,8 @@ DltReturnValue dlt_send_app_ll_ts_limit(
574
575 /* set usercontext */
576 dlt_set_id(usercontext.apid, apid); /* application id */
577- usercontext.log_level = loglevel;
578- usercontext.trace_status = tracestatus;
579+ usercontext.log_level = (uint8_t)loglevel;
580+ usercontext.trace_status = (uint8_t)tracestatus;
581
582 if (dlt_user.dlt_is_file)
583 return DLT_RETURN_OK;
584@@ -6354,8 +6348,8 @@ DltReturnValue dlt_send_app_ll_ts_limit_
585 }
586 usercontext.apidlen = (uint8_t)apidlen_sz;
587 dlt_set_id_v2(usercontext.apid, apid, usercontext.apidlen); /* application id */
588- usercontext.log_level = loglevel;
589- usercontext.trace_status = tracestatus;
590+ usercontext.log_level = (uint8_t)loglevel;
591+ usercontext.trace_status = (uint8_t)tracestatus;
592
593 size_t buffersize = sizeof(uint8_t) + usercontext.apidlen + sizeof(uint8_t) + sizeof(uint8_t);
594 uint8_t buffer[DLT_ID_SIZE + 3];
595@@ -6435,7 +6429,7 @@ DltReturnValue dlt_user_log_send_log_mod
596 return DLT_RETURN_OK;
597 }
598
599-DltReturnValue dlt_user_log_send_marker()
600+DltReturnValue dlt_user_log_send_marker(void)
601 {
602 DltUserHeader userheader;
603 DltReturnValue ret;
604@@ -7349,7 +7343,7 @@ void dlt_user_test_corrupt_message_size(
605 #endif
606
607
608-int dlt_start_threads()
609+int dlt_start_threads(void)
610 {
611 struct timespec time_to_wait, single_wait;
612 struct timespec now;
613@@ -7438,7 +7432,7 @@ int dlt_start_threads()
614 return 0;
615 }
616
617-void dlt_stop_threads()
618+void dlt_stop_threads(void)
619 {
620 int dlt_housekeeperthread_result = 0;
621 int joined = 0;
622@@ -7510,7 +7504,7 @@ void dlt_stop_threads()
623 #endif /* DLT_NETWORK_TRACE_ENABLE */
624 }
625
626-static void dlt_fork_child_fork_handler()
627+static void dlt_fork_child_fork_handler(void)
628 {
629 g_dlt_is_child = 1;
630 dlt_user_init_state = INIT_UNITIALIZED;
631--- a/src/offlinelogstorage/dlt_offline_logstorage.c
632+++ b/src/offlinelogstorage/dlt_offline_logstorage.c
633@@ -1732,7 +1732,7 @@ DLT_STATIC int dlt_daemon_offline_setup_
634 continue;
635
636 /* check value and store temporary */
637- ret = dlt_logstorage_check_param(&tmp_data, i, value);
638+ ret = dlt_logstorage_check_param(&tmp_data, (DltLogstorageFilterConfType)i, value);
639
640 if (ret != 0) {
641 if (tmp_data.apids != NULL) {
642--- a/src/shared/dlt_log.c
643+++ b/src/shared/dlt_log.c
644@@ -113,7 +113,7 @@ DltReturnValue dlt_log_init_multiple_log
645 return result;
646 }
647
648-DltReturnValue dlt_log_init_single_logfile()
649+DltReturnValue dlt_log_init_single_logfile(void)
650 {
651 /* internal logging to file */
652 errno = 0;
653@@ -333,14 +333,14 @@ void dlt_log_free(void)
654 }
655 }
656
657-void dlt_log_free_single_logfile()
658+void dlt_log_free_single_logfile(void)
659 {
660 if (logging_handle != NULL) {
661 fclose(logging_handle);
662 }
663 }
664
665-void dlt_log_free_multiple_logfiles()
666+void dlt_log_free_multiple_logfiles(void)
667 {
668 if (DLT_RETURN_ERROR == multiple_files_buffer_free(&multiple_files_ring_buffer)) return;
669
670@@ -348,7 +348,7 @@ void dlt_log_free_multiple_logfiles()
671 multiple_files_ring_buffer.ohandle = -1;
672 }
673
674-bool dlt_is_log_in_multiple_files_active()
675+bool dlt_is_log_in_multiple_files_active(void)
676 {
677 return multiple_files_ring_buffer.ohandle > -1;
678 }
679--- a/src/system/dlt-system-journal.c
680+++ b/src/system/dlt-system-journal.c
681@@ -73,7 +73,7 @@ typedef struct
682 DLT_IMPORT_CONTEXT(dltsystem)
683 DLT_DECLARE_CONTEXT(journalContext)
684
685-int journal_checkUserBufferForFreeSpace()
686+int journal_checkUserBufferForFreeSpace(void)
687 {
688 int total_size, used_size;
689
690@@ -87,7 +87,7 @@ int journal_checkUserBufferForFreeSpace(
691
692 int dlt_system_journal_get(sd_journal *j, char *target, const char *field, size_t max_size)
693 {
694- char *data;
695+ const char *data;
696 size_t length;
697 int error_code;
698 size_t field_size;
699@@ -100,7 +100,9 @@ int dlt_system_journal_get(sd_journal *j
700 target[0] = 0;
701
702 /* get data from journal */
703- error_code = sd_journal_get_data(j, field, (const void **)&data, &length);
704+ const void *tmp;
705+ error_code = sd_journal_get_data(j, field, &tmp, &length);
706+ data = (const char *)tmp;
707
708 /* check if an error */
709 if (error_code)
710--- a/src/system/dlt-system-process-handling.c
711+++ b/src/system/dlt-system-process-handling.c
712@@ -72,7 +72,7 @@ volatile uint8_t quit = 0;
713 extern s_ft_inotify ino;
714 #endif
715
716-int daemonize()
717+int daemonize(void)
718 {
719 DLT_LOG(dltsystem, DLT_LOG_DEBUG,
720 DLT_STRING("dlt-system-process-handling, daemonize"));
721--- a/src/system/dlt-system-shell.c
722+++ b/src/system/dlt-system-shell.c
723@@ -112,7 +112,7 @@ int dlt_shell_injection_callback(uint32_
724 return 0;
725 }
726
727-void init_shell()
728+void init_shell(void)
729 {
730 DLT_LOG(dltsystem, DLT_LOG_DEBUG,
731 DLT_STRING("dlt-system-shell, register callback"));
732--- a/src/system/dlt-system.h
733+++ b/src/system/dlt-system.h
734@@ -193,8 +193,8 @@ int read_configuration_file(DltSystemCon
735 void cleanup_config(DltSystemConfiguration *config, DltSystemCliOptions *options);
736
737 /* For dlt-process-handling.c */
738-int daemonize();
739-void init_shell();
740+int daemonize(void);
741+void init_shell(void);
742 void dlt_system_signal_handler(int sig);
743
744 /* Main function for creating/registering all needed file descriptors and starting the poll for all of them. */
745--- a/src/tests/dlt-test-client-v2.c
746+++ b/src/tests/dlt-test-client-v2.c
747@@ -125,7 +125,7 @@ typedef struct
748 /**
749 * Print usage information of tool.
750 */
751-void usage()
752+void usage(void)
753 {
754 char version[255];
755
756--- a/src/tests/dlt-test-fork-handler-v2.c
757+++ b/src/tests/dlt-test-fork-handler-v2.c
758@@ -91,7 +91,7 @@ void dlt_log_message(DltContext *context
759 /**
760 * @brief sample code for using at_fork-handler
761 */
762-int main()
763+int main(void)
764 {
765 DltContext mainContext;
766 struct timespec timeout, r;
767--- a/src/tests/dlt-test-fork-handler.c
768+++ b/src/tests/dlt-test-fork-handler.c
769@@ -49,7 +49,7 @@ void dlt_log_message(DltContext *context
770 /**
771 * @brief sample code for using at_fork-handler
772 */
773-int main()
774+int main(void)
775 {
776 DltContext mainContext;
777 struct timespec timeout, r;
778--- a/src/tests/dlt-test-multi-process-v2.c
779+++ b/src/tests/dlt-test-multi-process-v2.c
780@@ -112,11 +112,11 @@ typedef struct {
781 /* Forward declarations */
782 void init_params(s_parameters *params);
783 void quit_handler(int signum);
784-void cleanup();
785+void cleanup(void);
786 void do_forks(s_parameters params);
787 void run_threads(s_parameters params);
788 void *do_logging(void *data);
789-int wait_for_death();
790+int wait_for_death(void);
791
792 /* State information */
793 volatile sig_atomic_t in_handler = 0;
794@@ -323,7 +323,7 @@ void quit_handler(int signum)
795 /**
796 * Ask the child processes to die
797 */
798-void cleanup()
799+void cleanup(void)
800 {
801 unsigned int i;
802
803@@ -458,7 +458,7 @@ void run_threads(s_parameters params)
804 /**
805 * Wait for child processes to complete their work.
806 */
807-int wait_for_death()
808+int wait_for_death(void)
809 {
810 int pids_left = (int) pidcount;
811
812--- a/src/tests/dlt-test-multi-process.c
813+++ b/src/tests/dlt-test-multi-process.c
814@@ -89,11 +89,11 @@ typedef struct {
815 /* Forward declarations */
816 void init_params(s_parameters *params);
817 void quit_handler(int signum);
818-void cleanup();
819+void cleanup(void);
820 void do_forks(s_parameters params);
821 void run_threads(s_parameters params);
822 void *do_logging(void *arg);
823-int wait_for_death();
824+int wait_for_death(void);
825
826 /* State information */
827 volatile sig_atomic_t in_handler = 0;
828@@ -300,7 +300,7 @@ void quit_handler(int signum)
829 /**
830 * Ask the child processes to die
831 */
832-void cleanup()
833+void cleanup(void)
834 {
835 unsigned int i;
836
837@@ -435,7 +435,7 @@ void run_threads(s_parameters params)
838 /**
839 * Wait for child processes to complete their work.
840 */
841-int wait_for_death()
842+int wait_for_death(void)
843 {
844 int pids_left = (int) pidcount;
845
846--- a/src/tests/dlt-test-non-verbose.c
847+++ b/src/tests/dlt-test-non-verbose.c
848@@ -58,7 +58,7 @@ DltContextData context_data;
849
850 void dlt_user_log_level_changed_callback(char context_id[DLT_ID_SIZE],uint8_t log_level,uint8_t trace_status);
851
852-void usage()
853+void usage(void)
854 {
855 char version[DLT_COMMON_BUFFER_LENGTH];
856
857@@ -84,7 +84,7 @@ void usage()
858 /******************/
859 /* The test cases */
860 /******************/
861-int test_logstorage()
862+int test_logstorage(void)
863 {
864 int delay = LOG_DELAY;
865 int i;
866--- a/src/tests/dlt-test-preregister-context-v2.c
867+++ b/src/tests/dlt-test-preregister-context-v2.c
868@@ -72,7 +72,7 @@
869 /**
870 * @brief sample code for using pre-registered contexts
871 */
872-int main()
873+int main(void)
874 {
875 DltContext mainContext;
876 struct timespec ts;
877--- a/src/tests/dlt-test-preregister-context.c
878+++ b/src/tests/dlt-test-preregister-context.c
879@@ -30,7 +30,7 @@
880 /**
881 * @brief sample code for using pre-registered contexts
882 */
883-int main()
884+int main(void)
885 {
886 DltContext mainContext;
887 struct timespec ts;
888--- a/src/tests/dlt-test-qnx-slogger.c
889+++ b/src/tests/dlt-test-qnx-slogger.c
890@@ -28,7 +28,7 @@
891 #define DELAY 500
892 #define LENGTH 100
893
894-void usage()
895+void usage(void)
896 {
897 char version[255];
898
899--- a/src/tests/dlt-test-stress-client-v2.c
900+++ b/src/tests/dlt-test-stress-client-v2.c
901@@ -127,7 +127,7 @@ typedef struct
902 /**
903 * Print usage information of tool.
904 */
905-void usage()
906+void usage(void)
907 {
908 char version[255];
909
910--- a/src/tests/dlt-test-stress-user-v2.c
911+++ b/src/tests/dlt-test-stress-user-v2.c
912@@ -86,7 +86,7 @@ DltContextData context_data;
913 /**
914 * Print usage information of tool.
915 */
916-void usage()
917+void usage(void)
918 {
919 char version[255];
920
921--- a/src/tests/dlt-test-stress-v2.c
922+++ b/src/tests/dlt-test-stress-v2.c
923@@ -104,7 +104,7 @@ char *env_manual_interruption = 0;
924 /**
925 * Print usage information of tool.
926 */
927-void usage()
928+void usage(void)
929 {
930 char version[255];
931
932--- a/src/tests/dlt-test-stress.c
933+++ b/src/tests/dlt-test-stress.c
934@@ -105,7 +105,7 @@ char *env_manual_interruption = 0;
935 /**
936 * Print usage information of tool.
937 */
938-void usage()
939+void usage(void)
940 {
941 char version[255];
942
943--- a/src/tests/dlt-test-user-v2.c
944+++ b/src/tests/dlt-test-user-v2.c
945@@ -142,7 +142,7 @@ DltContextData context_data;
946 /**
947 * Print usage information of tool.
948 */
949-void usage()
950+void usage(void)
951 {
952 char version[255];
953
954--- a/src/tests/dlt-test-user.c
955+++ b/src/tests/dlt-test-user.c
956@@ -144,7 +144,7 @@ DltContextData context_data;
957 /**
958 * Print usage information of tool.
959 */
960-void usage()
961+void usage(void)
962 {
963 char version[255];
964
965--- a/tests/dlt_test_receiver.c
966+++ b/tests/dlt_test_receiver.c
967@@ -107,7 +107,7 @@ int result = 0;
968 /**
969 * Print usage information of tool.
970 */
971-void usage()
972+void usage(void)
973 {
974 char version[255];
975
976--- a/src/shared/dlt_common.c
977+++ b/src/shared/dlt_common.c
978@@ -6108,7 +6108,7 @@ DltReturnValue dlt_message_argument_prin
979 return DLT_RETURN_OK;
980 }
981
982-void dlt_check_envvar()
983+void dlt_check_envvar(void)
984 {
985 char *env_log_filename = getenv("DLT_LOG_FILENAME");
986
987--- a/src/system/dlt-system-filetransfer.c
988+++ b/src/system/dlt-system-filetransfer.c
989@@ -724,10 +724,14 @@ int process_files(FiletransferOptions co
990 }
991
992 char *tosend = malloc(length);
993+#ifndef __clang__
994 #pragma GCC diagnostic push
995 #pragma GCC diagnostic ignored "-Wformat-truncation="
996+#endif
997 snprintf(tosend, length, "%s/%s", opts->Directory[j], ie->name);
998+#ifndef __clang__
999 #pragma GCC diagnostic pop
1000+#endif
1001 send_one(tosend, opts, j);
1002 free(tosend);
1003 }
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/char_conversion.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/char_conversion.patch
new file mode 100644
index 0000000000..8d943b9764
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/char_conversion.patch
@@ -0,0 +1,27 @@
1daemon: fix sign-conversion warning in dlt_timer_conn_types array type
2
3Change dlt_timer_conn_types from char[] to DltConnectionType[] to match
4the actual type of values stored in the array.
5
6This was silently working on arm64 because char is unsigned by default on
7that architecture, making it compatible with DltConnectionType (an unsigned
8enum). On x86_64, char is signed by default, causing an implicit signed-to-
9unsigned conversion when passing array elements to dlt_connection_create(),
10which triggered -Wsign-conversion and broke the build.
11
12The fix corrects the array's declared type to match its contents, making the
13code portable regardless of the platform's char signedness.
14
15Upstream-Status: Pending
16Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
17--- a/src/daemon/dlt-daemon.c
18+++ b/src/daemon/dlt-daemon.c
19@@ -140,7 +140,7 @@ int g_signo = 0;
20 /* used for value from conf file */
21 static int value_length = 1024;
22
23-static char dlt_timer_conn_types[DLT_TIMER_UNKNOWN + 1] = {
24+static DltConnectionType dlt_timer_conn_types[DLT_TIMER_UNKNOWN + 1] = {
25 [DLT_TIMER_PACKET] = DLT_CONNECTION_ONE_S_TIMER,
26 [DLT_TIMER_ECU] = DLT_CONNECTION_SIXTY_S_TIMER,
27 #ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb
index 431e9f3067..6de62c2a3d 100644
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb
@@ -22,6 +22,10 @@ SRC_URI = "git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \
22 file://0001-Fix-build-failures.patch \ 22 file://0001-Fix-build-failures.patch \
23 file://0001-fix-build-failure-when-systemd-is-enabled.patch \ 23 file://0001-fix-build-failure-when-systemd-is-enabled.patch \
24 file://0001-Fix-build-failure-with-glibc-2.43.patch \ 24 file://0001-Fix-build-failure-with-glibc-2.43.patch \
25 file://0001-CMakeLists.txt-make-CONFIGURATION_FILES_DIR-aligned.patch \
26 file://0001-warnings-Fix-clang-generated-warnings.patch \
27 file://0001-dlt-daemon.c-fix-wrong-len.patch \
28 file://char_conversion.patch \
25 " 29 "
26SRCREV = "f595ea29d1007ca1c3b2d1fd3a88adf7d3db6320" 30SRCREV = "f595ea29d1007ca1c3b2d1fd3a88adf7d3db6320"
27 31
@@ -53,7 +57,7 @@ inherit autotools gettext cmake pkgconfig systemd
53 57
54# -DWITH_DLT_COREDUMPHANDLER=ON this feature is too experimental, disable for now 58# -DWITH_DLT_COREDUMPHANDLER=ON this feature is too experimental, disable for now
55#FILES:${PN} += "${libdir}/sysctl.d" 59#FILES:${PN} += "${libdir}/sysctl.d"
56EXTRA_OECMAKE += "-DWITH_DLT_LOGSTORAGE_GZIP=ON -DWITH_EXTENDED_FILTERING=ON -DSYSTEMD_UNITDIR=${systemd_system_unitdir}" 60EXTRA_OECMAKE += "-DWITH_DLT_LOGSTORAGE_GZIP=ON -DWITH_EXTENDED_FILTERING=ON -DSYSTEMD_UNITDIR=${systemd_system_unitdir} -DWITH_DLT_USE_IPv6=OFF"
57 61
58PACKAGES += "${PN}-systemd" 62PACKAGES += "${PN}-systemd"
59SYSTEMD_PACKAGES = "${PN} ${PN}-systemd" 63SYSTEMD_PACKAGES = "${PN} ${PN}-systemd"
diff --git a/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb b/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
index 4ca7c081ea..d1480e836a 100644
--- a/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
+++ b/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
@@ -19,6 +19,8 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
19 19
20inherit autotools gettext 20inherit autotools gettext
21 21
22CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
23
22EXTRA_OECONF += "PERL='${USRBINPATH}/env perl'" 24EXTRA_OECONF += "PERL='${USRBINPATH}/env perl'"
23 25
24SRC_URI[sha256sum] = "6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb" 26SRC_URI[sha256sum] = "6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb"
diff --git a/meta-oe/recipes-extended/figlet/figlet_git.bb b/meta-oe/recipes-extended/figlet/figlet_git.bb
index d226806050..6a8bb42699 100644
--- a/meta-oe/recipes-extended/figlet/figlet_git.bb
+++ b/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -10,5 +10,6 @@ SRCREV = "5bbcd7383a8c3a531299b216b0c734e1495c6db3"
10PV = "2.2.5+git" 10PV = "2.2.5+git"
11 11
12inherit autotools 12inherit autotools
13CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
13 14
14BBCLASSEXTEND = "native nativesdk" 15BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/flatpak/flatpak_1.17.3.bb b/meta-oe/recipes-extended/flatpak/flatpak_1.17.6.bb
index cd461e2632..1512b7239f 100644
--- a/meta-oe/recipes-extended/flatpak/flatpak_1.17.3.bb
+++ b/meta-oe/recipes-extended/flatpak/flatpak_1.17.6.bb
@@ -8,7 +8,7 @@ SRC_URI = " \
8 file://0001-flatpak-pc-add-pc_sysrootdir.patch \ 8 file://0001-flatpak-pc-add-pc_sysrootdir.patch \
9" 9"
10 10
11SRCREV = "13b26a94a3bd6fec309a16982a3a80d83776d7ac" 11SRCREV = "9b21874f1a175a9b7c79175a221fa043e202ca73"
12 12
13 13
14inherit meson pkgconfig gettext systemd gtk-doc gobject-introspection python3native mime features_check useradd 14inherit meson pkgconfig gettext systemd gtk-doc gobject-introspection python3native mime features_check useradd
@@ -76,3 +76,6 @@ USERADD_PACKAGES = "${PN}"
76USERADD_PARAM:${PN} = "--system --no-create-home --user-group --shell /sbin/nologin flatpak" 76USERADD_PARAM:${PN} = "--system --no-create-home --user-group --shell /sbin/nologin flatpak"
77 77
78FILES:${PN} += "${libdir} ${datadir}" 78FILES:${PN} += "${libdir} ${datadir}"
79
80CVE_STATUS[CVE-2026-34078] = "fixed-version: fixed in v1.17.4"
81CVE_STATUS[CVE-2026-34079] = "fixed-version: fixed in v1.17.4"
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch
index 1756d74560..55fb0c7414 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch
@@ -1,4 +1,4 @@
1From 4b47a8f0e3d1d429356cdda8efa7682ab88d344a Mon Sep 17 00:00:00 2001 1From 8d93bb7c866f88dd7f2cac81d2acfcffae9d555d Mon Sep 17 00:00:00 2001
2From: Niko Mauno <niko.mauno@vaisala.com> 2From: Niko Mauno <niko.mauno@vaisala.com>
3Date: Sun, 29 Sep 2024 12:00:00 +0000 3Date: Sun, 29 Sep 2024 12:00:00 +0000
4Subject: [PATCH] lib: Do not use private makefile targets in CMakelists.txt 4Subject: [PATCH] lib: Do not use private makefile targets in CMakelists.txt
@@ -48,7 +48,7 @@ index 489570026..06d99cbbe 100644
48 48
49 49
50diff --git a/lib/cmetrics/CMakeLists.txt b/lib/cmetrics/CMakeLists.txt 50diff --git a/lib/cmetrics/CMakeLists.txt b/lib/cmetrics/CMakeLists.txt
51index 5421f8c80..0dcf7645c 100644 51index a3385a8ba..80170f8e7 100644
52--- a/lib/cmetrics/CMakeLists.txt 52--- a/lib/cmetrics/CMakeLists.txt
53+++ b/lib/cmetrics/CMakeLists.txt 53+++ b/lib/cmetrics/CMakeLists.txt
54@@ -60,12 +60,8 @@ if(NOT MSVC) 54@@ -60,12 +60,8 @@ if(NOT MSVC)
@@ -67,11 +67,11 @@ index 5421f8c80..0dcf7645c 100644
67 # Configuration options 67 # Configuration options
68 option(CMT_DEV "Enable development mode" No) 68 option(CMT_DEV "Enable development mode" No)
69diff --git a/lib/ctraces/CMakeLists.txt b/lib/ctraces/CMakeLists.txt 69diff --git a/lib/ctraces/CMakeLists.txt b/lib/ctraces/CMakeLists.txt
70index 73723433d..9f60699d5 100644 70index bb2c54fa6..7d59dd834 100644
71--- a/lib/ctraces/CMakeLists.txt 71--- a/lib/ctraces/CMakeLists.txt
72+++ b/lib/ctraces/CMakeLists.txt 72+++ b/lib/ctraces/CMakeLists.txt
73@@ -30,12 +30,8 @@ set(CTR_VERSION_MINOR 6) 73@@ -30,12 +30,8 @@ set(CTR_VERSION_MINOR 7)
74 set(CTR_VERSION_PATCH 6) 74 set(CTR_VERSION_PATCH 1)
75 set(CTR_VERSION_STR "${CTR_VERSION_MAJOR}.${CTR_VERSION_MINOR}.${CTR_VERSION_PATCH}") 75 set(CTR_VERSION_STR "${CTR_VERSION_MAJOR}.${CTR_VERSION_MINOR}.${CTR_VERSION_PATCH}")
76 76
77-# Define __FILENAME__ consistently across Operating Systems 77-# Define __FILENAME__ consistently across Operating Systems
@@ -86,7 +86,7 @@ index 73723433d..9f60699d5 100644
86 # Configuration options 86 # Configuration options
87 option(CTR_DEV "Enable development mode" No) 87 option(CTR_DEV "Enable development mode" No)
88diff --git a/lib/monkey/CMakeLists.txt b/lib/monkey/CMakeLists.txt 88diff --git a/lib/monkey/CMakeLists.txt b/lib/monkey/CMakeLists.txt
89index 3fbace595..1c6ad031c 100644 89index 3dc1ef28a..2d08fc5fd 100644
90--- a/lib/monkey/CMakeLists.txt 90--- a/lib/monkey/CMakeLists.txt
91+++ b/lib/monkey/CMakeLists.txt 91+++ b/lib/monkey/CMakeLists.txt
92@@ -15,10 +15,8 @@ include(GNUInstallDirs) 92@@ -15,10 +15,8 @@ include(GNUInstallDirs)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
index 4c6cac0cbd..51f48544b1 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
@@ -1,4 +1,4 @@
1From 596a53c35166e6cc5c20fb1d28bb5c92a248f695 Mon Sep 17 00:00:00 2001 1From e7b98c452343a43b924bca684e5ec423eae5d644 Mon Sep 17 00:00:00 2001
2From: Paulo Neves <ptsneves@gmail.com> 2From: Paulo Neves <ptsneves@gmail.com>
3Date: Thu, 28 Jul 2022 11:42:31 +0200 3Date: Thu, 28 Jul 2022 11:42:31 +0200
4Subject: [PATCH] flb_info.h.in: Do not hardcode compilation directories 4Subject: [PATCH] flb_info.h.in: Do not hardcode compilation directories
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
index 6bd4c6bbb6..2e0e988c19 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-CMakeLists.txt-Revise-init-manager-deduction.patch
@@ -1,4 +1,4 @@
1From 5cc79bdede89e75d713e23cf0fde26634320bc3e Mon Sep 17 00:00:00 2001 1From fef234a565d5150dc3d3d1374843024381e4f4de Mon Sep 17 00:00:00 2001
2From: Niko Mauno <niko.mauno@vaisala.com> 2From: Niko Mauno <niko.mauno@vaisala.com>
3Date: Mon, 21 Oct 2024 16:02:46 +0000 3Date: Mon, 21 Oct 2024 16:02:46 +0000
4Subject: [PATCH] CMakeLists.txt: Revise init manager deduction 4Subject: [PATCH] CMakeLists.txt: Revise init manager deduction
@@ -15,10 +15,10 @@ Upstream-Status: Inappropriate [configuration]
15 1 file changed, 2 insertions(+), 2 deletions(-) 15 1 file changed, 2 insertions(+), 2 deletions(-)
16 16
17diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 17diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
18index ac5fe5ef8..f47a01b82 100644 18index a47a5d9d6..ddc93827c 100644
19--- a/src/CMakeLists.txt 19--- a/src/CMakeLists.txt
20+++ b/src/CMakeLists.txt 20+++ b/src/CMakeLists.txt
21@@ -600,7 +600,7 @@ if(FLB_BINARY) 21@@ -627,7 +627,7 @@ if(FLB_BINARY)
22 set(SYSTEMD_UNITDIR /lib/systemd/system) 22 set(SYSTEMD_UNITDIR /lib/systemd/system)
23 endif() 23 endif()
24 24
@@ -27,7 +27,7 @@ index ac5fe5ef8..f47a01b82 100644
27 if (FLB_AMAZON_LINUX2) 27 if (FLB_AMAZON_LINUX2)
28 set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service") 28 set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
29 configure_file( 29 configure_file(
30@@ -625,7 +625,7 @@ if(FLB_BINARY) 30@@ -652,7 +652,7 @@ if(FLB_BINARY)
31 install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR}) 31 install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
32 install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary) 32 install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
33 endif() 33 endif()
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-chunkio-Link-with-fts-library-with-musl.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-chunkio-Link-with-fts-library-with-musl.patch
index 6df53613c3..1192449909 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-chunkio-Link-with-fts-library-with-musl.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-chunkio-Link-with-fts-library-with-musl.patch
@@ -1,4 +1,4 @@
1From cc688b91c02df9a45ca8816a1d09649fadb9dc4a Mon Sep 17 00:00:00 2001 1From 26431b786b4c703bc2dcdb57d59487a3fef4a139 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 10 Aug 2022 01:27:16 -0700 3Date: Wed, 10 Aug 2022 01:27:16 -0700
4Subject: [PATCH] chunkio: Link with fts library with musl 4Subject: [PATCH] chunkio: Link with fts library with musl
@@ -10,7 +10,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
10 10
11Upstream-Status: Pending 11Upstream-Status: Pending
12--- 12---
13
14 lib/chunkio/src/CMakeLists.txt | 1 + 13 lib/chunkio/src/CMakeLists.txt | 1 +
15 1 file changed, 1 insertion(+) 14 1 file changed, 1 insertion(+)
16 15
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_4.2.3.1.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_5.0.2.bb
index 03f9e0e003..3f3299459c 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit_4.2.3.1.bb
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit_5.0.2.bb
@@ -17,7 +17,7 @@ DEPENDS = "\
17" 17"
18DEPENDS:append:libc-musl = " fts" 18DEPENDS:append:libc-musl = " fts"
19 19
20SRCREV = "fca8b5bf46416267a4c8de185e4044da09cf0f16" 20SRCREV = "66ffbe43bd0b393ec418e6f5851a23461fa478d4"
21SRC_URI = "\ 21SRC_URI = "\
22 git://github.com/fluent/fluent-bit.git;nobranch=1;protocol=https;tag=v${PV} \ 22 git://github.com/fluent/fluent-bit.git;nobranch=1;protocol=https;tag=v${PV} \
23 file://0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch \ 23 file://0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch \
diff --git a/meta-oe/recipes-extended/highway/highway_1.3.0.bb b/meta-oe/recipes-extended/highway/highway_1.3.0.bb
index d279994301..ddd684bb45 100644
--- a/meta-oe/recipes-extended/highway/highway_1.3.0.bb
+++ b/meta-oe/recipes-extended/highway/highway_1.3.0.bb
@@ -2,14 +2,15 @@ SUMMARY = "Highway is a C++ library for SIMD (Single Instruction, Multiple Data)
2HOMEPAGE = "https://github.com/google/highway/" 2HOMEPAGE = "https://github.com/google/highway/"
3 3
4LICENSE = "Apache-2.0" 4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=2b42edef8fa55315f34f2370b4715ca9" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=e583f1fc1c22da0f388b23a31df5b591"
6 6
7inherit cmake 7inherit cmake
8 8
9SRC_URI = "git://github.com/google/highway.git;protocol=https;branch=master \ 9SRC_URI = "git://github.com/google/highway.git;protocol=https;branch=master \
10 file://0001-Add-cmake-check-for-deducing-32bit-or-64bit-RISCV.patch" 10 file://0001-Add-cmake-check-for-deducing-32bit-or-64bit-RISCV.patch"
11 11
12SRCREV = "ac0d5d297b13ab1b89f48484fc7911082d76a93f" 12SRCREV = "c34a36fb145de0a922a6e719b217033e1ff2eece"
13PV .= "+git"
13 14
14EXTRA_OECMAKE = "-DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=Release" 15EXTRA_OECMAKE = "-DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=Release"
15 16
diff --git a/meta-oe/recipes-extended/libcbor/libcbor_0.13.0.bb b/meta-oe/recipes-extended/libcbor/libcbor_0.14.0.bb
index 3bed8a6e72..7d65688384 100755
--- a/meta-oe/recipes-extended/libcbor/libcbor_0.13.0.bb
+++ b/meta-oe/recipes-extended/libcbor/libcbor_0.14.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f3b3881df62ca763a02d359a6e94071"
6 6
7SRC_URI = "git://github.com/PJK/libcbor.git;protocol=https;branch=master;tag=v${PV}" 7SRC_URI = "git://github.com/PJK/libcbor.git;protocol=https;branch=master;tag=v${PV}"
8 8
9SRCREV = "9826a4315116a588f7416912db9da6fcecd8da11" 9SRCREV = "6730c20ab487c0b4dc5fb3fea918937085355bac"
10 10
11inherit cmake 11inherit cmake
12 12
diff --git a/meta-oe/recipes-extended/lprng/lprng_3.9.0.bb b/meta-oe/recipes-extended/lprng/lprng_3.9.0.bb
index 04376b66ed..0f427a7d05 100644
--- a/meta-oe/recipes-extended/lprng/lprng_3.9.0.bb
+++ b/meta-oe/recipes-extended/lprng/lprng_3.9.0.bb
@@ -10,6 +10,7 @@ UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lprng/files/lprng/"
10UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" 10UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
11 11
12inherit autotools gettext 12inherit autotools gettext
13CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
13 14
14EXTRA_OECONF = "--disable-ssl --disable-kerberos --enable-force_localhost \ 15EXTRA_OECONF = "--disable-ssl --disable-kerberos --enable-force_localhost \
15 CHOWN=${base_bindir}/chown CHGRP=${base_bindir}/chgrp \ 16 CHOWN=${base_bindir}/chown CHGRP=${base_bindir}/chgrp \
diff --git a/meta-oe/recipes-extended/magic-enum/magic-enum_0.9.7.bb b/meta-oe/recipes-extended/magic-enum/magic-enum_0.9.7.bb
index 6d5399c8d0..958ae21065 100644
--- a/meta-oe/recipes-extended/magic-enum/magic-enum_0.9.7.bb
+++ b/meta-oe/recipes-extended/magic-enum/magic-enum_0.9.7.bb
@@ -16,7 +16,8 @@ SRC_URI = " \
16 file://run-ptest \ 16 file://run-ptest \
17" 17"
18 18
19SRCREV = "e046b69a3736d314fad813e159b1c192eaef92cd" 19SRCREV = "7d87efb4a3dddbbe8caa9ca14eff05ede1102ab8"
20PV .= "+git"
20 21
21inherit cmake ptest 22inherit cmake ptest
22 23
diff --git a/meta-oe/recipes-extended/minio/minio_git.bb b/meta-oe/recipes-extended/minio/minio_git.bb
index 511dd4d869..d08b5e754d 100644
--- a/meta-oe/recipes-extended/minio/minio_git.bb
+++ b/meta-oe/recipes-extended/minio/minio_git.bb
@@ -169,4 +169,4 @@ CVE_STATUS_GROUPS += "CVE_STATUS_WRONG_CPE"
169CVE_STATUS_WRONG_CPE[status] = "cpe-incorrect: The vulnerability is in minio server, not in minio client-tools" 169CVE_STATUS_WRONG_CPE[status] = "cpe-incorrect: The vulnerability is in minio server, not in minio client-tools"
170CVE_STATUS_WRONG_CPE = "CVE-2018-1000538 CVE-2020-11012 CVE-2021-21287 CVE-2021-21362 \ 170CVE_STATUS_WRONG_CPE = "CVE-2018-1000538 CVE-2020-11012 CVE-2021-21287 CVE-2021-21362 \
171 CVE-2021-21390 CVE-2021-43858 CVE-2022-35919 CVE-2023-28433 \ 171 CVE-2021-21390 CVE-2021-43858 CVE-2022-35919 CVE-2023-28433 \
172 CVE-2023-28434 CVE-2024-36107" 172 CVE-2023-28434 CVE-2024-36107 CVE-2026-33419 CVE-2026-34204"
diff --git a/meta-oe/recipes-extended/networking/mstpd_0.1.1.bb b/meta-oe/recipes-extended/networking/mstpd_0.2.0.bb
index 3ac4d5b1fe..0d60111554 100644
--- a/meta-oe/recipes-extended/networking/mstpd_0.1.1.bb
+++ b/meta-oe/recipes-extended/networking/mstpd_0.2.0.bb
@@ -6,7 +6,7 @@ SRC_URI = " \
6 file://bridge-stp \ 6 file://bridge-stp \
7 file://mstpd.service \ 7 file://mstpd.service \
8" 8"
9SRCREV = "d7dd987b101f277bfef8ac71de7c1d962a424e8e" 9SRCREV = "8995e5d11ee89f2251734e34cea711bb5a5bb911"
10 10
11UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+){2,})" 11UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+){2,})"
12 12
diff --git a/meta-oe/recipes-extended/ostree/ostree/0001-trivial-httpd-Fix-const-correctness-of-slash-pointer.patch b/meta-oe/recipes-extended/ostree/ostree/0001-trivial-httpd-Fix-const-correctness-of-slash-pointer.patch
new file mode 100644
index 0000000000..cc0c3d1318
--- /dev/null
+++ b/meta-oe/recipes-extended/ostree/ostree/0001-trivial-httpd-Fix-const-correctness-of-slash-pointer.patch
@@ -0,0 +1,29 @@
1From 3b8255e24d0785d6049d473471da53b0c5fd52c1 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Thu, 9 Apr 2026 16:28:07 -0700
4Subject: [PATCH] trivial-httpd: Fix const-correctness of slash pointer
5
6strrchr() returns a 'const char *' when passed a 'const char *'
7argument. Declare the local 'slash' variable as 'const char *'
8to match, fixing a build failure with clang when
9-Werror,-Wincompatible-pointer-types-discards-qualifiers is active.
10
11Upstream-Status: Submitted [https://github.com/ostreedev/ostree/pull/3579]
12Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
13---
14 src/ostree/ostree-trivial-httpd.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/src/ostree/ostree-trivial-httpd.c b/src/ostree/ostree-trivial-httpd.c
18index 4a0c6b00..b5a52e61 100644
19--- a/src/ostree/ostree-trivial-httpd.c
20+++ b/src/ostree/ostree-trivial-httpd.c
21@@ -281,7 +281,7 @@ do_get (OtTrivialHttpd *self, SoupServer *server, SoupServerMessage *msg, const
22 do_get (OtTrivialHttpd *self, SoupServer *server, SoupServerMessage *msg, const char *path)
23 #endif
24 {
25- char *slash;
26+ const char *slash;
27 int ret;
28 struct stat stbuf;
29
diff --git a/meta-oe/recipes-extended/ostree/ostree_2025.7.bb b/meta-oe/recipes-extended/ostree/ostree_2026.1.bb
index a2094f68c3..af726fff12 100644
--- a/meta-oe/recipes-extended/ostree/ostree_2025.7.bb
+++ b/meta-oe/recipes-extended/ostree/ostree_2026.1.bb
@@ -21,8 +21,9 @@ DEPENDS = " \
21GITHUB_BASE_URI = "https://github.com/ostreedev/ostree/releases" 21GITHUB_BASE_URI = "https://github.com/ostreedev/ostree/releases"
22SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libostree-${PV}.tar.xz \ 22SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libostree-${PV}.tar.xz \
23 file://run-ptest \ 23 file://run-ptest \
24 file://0001-trivial-httpd-Fix-const-correctness-of-slash-pointer.patch \
24 " 25 "
25SRC_URI[sha256sum] = "af8d080b9585e7fd1faba8f022967e1c268ae62e20ecf32ee7b364c1e307570b" 26SRC_URI[sha256sum] = "8e77c285dd6fa5ec5fb063130390977be727fe11107335ed8778a40385069e95"
26 27
27S = "${UNPACKDIR}/libostree-${PV}" 28S = "${UNPACKDIR}/libostree-${PV}"
28 29
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2512.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2512.0.bb
index c50a7a3f7a..186e1ccf24 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2512.0.bb
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2512.0.bb
@@ -40,6 +40,7 @@ CVE_STATUS[CVE-2015-3243] = "fix-file-included: The shipped default rsyslog.conf
40 40
41inherit autotools pkgconfig systemd update-rc.d ptest 41inherit autotools pkgconfig systemd update-rc.d ptest
42 42
43CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
43EXTRA_OECONF += "--enable-imfile-tests ${ATOMICS}" 44EXTRA_OECONF += "--enable-imfile-tests ${ATOMICS}"
44ATOMICS = "ap_cv_atomic_builtins_64=yes ap_cv_atomic_builtins=yes" 45ATOMICS = "ap_cv_atomic_builtins_64=yes ap_cv_atomic_builtins=yes"
45ATOMICS:mipsarch = "" 46ATOMICS:mipsarch = ""
diff --git a/meta-oe/recipes-extended/sanlock/sanlock_4.2.0.bb b/meta-oe/recipes-extended/sanlock/sanlock_5.1.0.bb
index 8babaf8017..72242946c1 100644
--- a/meta-oe/recipes-extended/sanlock/sanlock_4.2.0.bb
+++ b/meta-oe/recipes-extended/sanlock/sanlock_5.1.0.bb
@@ -11,22 +11,18 @@ SECTION = "utils"
11LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later" 11LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
12LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22" 12LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
13 13
14PV .= "+git" 14SRC_URI = "git://codeberg.org/sanlock/sanlock.git;protocol=https;branch=master;tag=${BPN}-${PV} \
15
16SRC_URI = "git://pagure.io/sanlock.git;protocol=http;branch=master \
17 file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \ 15 file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \
18 file://0001-add-missing-system-header-string.h.patch \ 16 file://0001-add-missing-system-header-string.h.patch \
19 " 17 "
20SRCREV = "efe86d2e691383da07942fe9a4bccab13046f3d4" 18SRCREV = "995685ac3ad8909cb7562e74dd13e3b450833d9c"
21
22 19
23CVE_STATUS[CVE-2012-5638] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions." 20CVE_STATUS[CVE-2012-5638] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
24 21
25DEPENDS = "libaio util-linux" 22DEPENDS = "libaio util-linux libdevmapper"
26 23RDEPENDS:${PN} += "libdevmapper"
27inherit setuptools3 useradd
28 24
29SETUPTOOLS_SETUP_PATH = "${S}/python" 25inherit useradd
30 26
31do_compile:prepend () { 27do_compile:prepend () {
32 oe_runmake -C ${S}/wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}" 28 oe_runmake -C ${S}/wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
diff --git a/meta-oe/recipes-extended/zsync/zsync-curl_git.bb b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
index e624b26941..79b8ee18e7 100644
--- a/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
+++ b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
@@ -15,6 +15,8 @@ UPSTREAM_CHECK_COMMITS = "1"
15 15
16inherit autotools 16inherit autotools
17 17
18CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
19
18AUTOTOOLS_SCRIPT_PATH = "${S}/src" 20AUTOTOOLS_SCRIPT_PATH = "${S}/src"
19 21
20BBCLASSEXTEND = "native nativesdk" 22BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm4_4.20.0.bb b/meta-oe/recipes-gnome/gtk+/gtkmm4_4.20.0.bb
index 0e08bed8a1..e0b91f02a9 100644
--- a/meta-oe/recipes-gnome/gtk+/gtkmm4_4.20.0.bb
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm4_4.20.0.bb
@@ -8,13 +8,13 @@ LIC_FILES_CHKSUM = " \
8 file://COPYING.tools;md5=570a9b3749dd0463a1778803b12a6dce \ 8 file://COPYING.tools;md5=570a9b3749dd0463a1778803b12a6dce \
9" 9"
10 10
11DEPENDS = "glib-2.0-native atkmm pangomm-2.48 glibmm gtk4 cairomm-1.16 gdk-pixbuf-native" 11DEPENDS = "glib-2.0-native pangomm-2.48 glibmm gtk4 cairomm-1.16 gdk-pixbuf-native"
12 12
13GNOMEBN = "gtkmm" 13GNOMEBN = "gtkmm"
14 14
15inherit gnomebase features_check 15inherit gnomebase features_check
16 16
17REQUIRED_DISTRO_FEATURES = "opengl x11" 17REQUIRED_DISTRO_FEATURES = "opengl"
18 18
19SRC_URI[archive.sha256sum] = "daad9bf9b70f90975f91781fc7a656c923a91374261f576c883cd3aebd59c833" 19SRC_URI[archive.sha256sum] = "daad9bf9b70f90975f91781fc7a656c923a91374261f576c883cd3aebd59c833"
20 20
diff --git a/meta-oe/recipes-graphics/feh/feh_3.11.3.bb b/meta-oe/recipes-graphics/feh/feh_3.12.1.bb
index c79ad488ba..2ac504a551 100644
--- a/meta-oe/recipes-graphics/feh/feh_3.11.3.bb
+++ b/meta-oe/recipes-graphics/feh/feh_3.12.1.bb
@@ -9,7 +9,7 @@ DEPENDS = "\
9" 9"
10 10
11SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2" 11SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2"
12SRC_URI[sha256sum] = "f2cca3592a433922c0db7a9365fd63e5402c121d932a9327e279c71be6501063" 12SRC_URI[sha256sum] = "6772f48e7956a16736e4c165a8367f357efc413b895f5b04133366e01438f95d"
13 13
14inherit mime-xdg features_check 14inherit mime-xdg features_check
15# depends on virtual/libx11 15# depends on virtual/libx11
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch
deleted file mode 100644
index e0c3de469a..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From 366930ccc1a261c3eb883da2bf3c655162ccd75f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 1 Mar 2023 22:58:37 -0800
4Subject: [PATCH] Match prototypes of callbacks with libgphoto
5
6In https://github.com/gphoto/gphoto2/pull/535/commits/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e
7we tried to fix by using pthread_t but it also needs to make changes in
8libgphoto and these changes can be invasive, therefore lets revert to
9older types and to fix musl problem fix it via type casts
10
11Upstream-Status: Backport [https://github.com/gphoto/gphoto2/pull/569]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 gphoto2/main.c | 8 ++++----
15 1 file changed, 4 insertions(+), 4 deletions(-)
16
17diff --git a/gphoto2/main.c b/gphoto2/main.c
18index 0dac947..cd3c990 100644
19--- a/gphoto2/main.c
20+++ b/gphoto2/main.c
21@@ -1198,7 +1198,7 @@ thread_func (void *data)
22 pthread_cleanup_pop (1);
23 }
24
25-static pthread_t
26+static unsigned int
27 start_timeout_func (Camera *camera, unsigned int timeout,
28 CameraTimeoutFunc func, void __unused__ *data)
29 {
30@@ -1215,14 +1215,14 @@ start_timeout_func (Camera *camera, unsigned int timeout,
31
32 pthread_create (&tid, NULL, thread_func, td);
33
34- return (tid);
35+ return (unsigned int)tid;
36 }
37
38 static void
39-stop_timeout_func (Camera __unused__ *camera, pthread_t id,
40+stop_timeout_func (Camera __unused__ *camera, unsigned int id,
41 void __unused__ *data)
42 {
43- pthread_t tid = id;
44+ pthread_t tid = (pthread_t)id;
45
46 pthread_cancel (tid);
47 pthread_join (tid, NULL);
48--
492.39.2
50
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch
index 3d54d58e18..bd916e339a 100644
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch
@@ -14,13 +14,13 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14--- a/configure.ac 14--- a/configure.ac
15+++ b/configure.ac 15+++ b/configure.ac
16@@ -26,7 +26,9 @@ AC_PROG_INSTALL 16@@ -26,7 +26,9 @@ AC_PROG_INSTALL
17 AC_SYS_LARGEFILE 17 ])
18 18
19 GP_CONFIG_MSG([Compiler],[${CC}]) 19 GP_CONFIG_MSG([Compiler], [${CC}])
20-AC_DEFINE_UNQUOTED([HAVE_CC],"$CC",[The C compiler we're using]) 20-AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC"], [The C compiler we are using])
21+CC_NO_SYSROOT=`echo $CC | sed -e \ 21+CC_NO_SYSROOT=`echo $CC | sed -e \
22+ 's|--sysroot=.*\b||g'` 22+ 's|--sysroot=.*\b||g'`
23+AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"], [The C compiler we're using]) 23+AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"], [The C compiler we are using])
24 24
25 dnl AC_STRUCT_TIMEZONE 25 dnl AC_STRUCT_TIMEZONE
26 26
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
index 14976ffb72..358dbbb51a 100644
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
@@ -14,10 +14,10 @@ Upstream-Status: Pending
14--- a/configure.ac 14--- a/configure.ac
15+++ b/configure.ac 15+++ b/configure.ac
16@@ -46,7 +46,6 @@ dnl i18n support 16@@ -46,7 +46,6 @@ dnl i18n support
17 dnl --------------------------------------------------------------------------- 17 GP_GETTEXT_SETUP([GETTEXT_PACKAGE_GPHOTO2],
18 GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}]) 18 [gphoto2],
19 ALL_LINGUAS="az cs da de en_GB es eu fi fr hu id is it ja nl pa pl pt_BR ro ru rw sk sr sv uk vi zh_CN zh_TW" 19 [po])
20-AM_PO_SUBDIRS() 20-AM_PO_SUBDIRS()
21 AM_GNU_GETTEXT_VERSION([0.14.1]) 21 AM_GNU_GETTEXT_VERSION([0.19.1])
22 AM_GNU_GETTEXT([external]) 22 AM_GNU_GETTEXT([external])
23 AM_ICONV() 23 AM_ICONV()
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch
deleted file mode 100644
index a27c02cefc..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 23c67e93e51f700d0aeecfc08277e39f51201fc3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 2 Sep 2022 12:59:46 -0700
4Subject: [PATCH] gphoto2: Use pthread_t abstract type for thead IDs
5
6This is not a plain old datatype in every libc, e.g. with musl this
7would fail in type conversion
8
9Upstream-Status: Submitted [https://github.com/gphoto/gphoto2/pull/535]
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 gphoto2/main.c | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/gphoto2/main.c b/gphoto2/main.c
16index 2bf5964..9a6b05d 100644
17--- a/gphoto2/main.c
18+++ b/gphoto2/main.c
19@@ -1198,7 +1198,7 @@ thread_func (void *data)
20 pthread_cleanup_pop (1);
21 }
22
23-static unsigned int
24+static pthread_t
25 start_timeout_func (Camera *camera, unsigned int timeout,
26 CameraTimeoutFunc func, void __unused__ *data)
27 {
28@@ -1219,7 +1219,7 @@ start_timeout_func (Camera *camera, unsigned int timeout,
29 }
30
31 static void
32-stop_timeout_func (Camera __unused__ *camera, unsigned int id,
33+stop_timeout_func (Camera __unused__ *camera, pthread_t id,
34 void __unused__ *data)
35 {
36 pthread_t tid = id;
37--
382.37.3
39
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.32.bb
index 40409ed388..e5e7c6926f 100644
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.32.bb
@@ -8,11 +8,9 @@ RDEPENDS:gphoto2 = "libgphoto2"
8 8
9SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/${BP}.tar.bz2;name=gphoto2 \ 9SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/${BP}.tar.bz2;name=gphoto2 \
10 file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \ 10 file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
11 file://0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch \
12 file://0001-Match-prototypes-of-callbacks-with-libgphoto.patch \
13 file://0001-configure-Filter-out-buildpaths-from-CC.patch \ 11 file://0001-configure-Filter-out-buildpaths-from-CC.patch \
14" 12"
15SRC_URI[gphoto2.sha256sum] = "2a648dcdf12da19e208255df4ebed3e7d2a02f905be4165f2443c984cf887375" 13SRC_URI[gphoto2.sha256sum] = "4e379a0f12f72b49ee5ee2283ffd806b5d12d099939d75197a3f4bbc7f27a1a1"
16 14
17inherit autotools pkgconfig gettext 15inherit autotools pkgconfig gettext
18 16
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-libgphoto2-fix-const-correctness-for-c23-builds.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-libgphoto2-fix-const-correctness-for-c23-builds.patch
new file mode 100644
index 0000000000..9ded174095
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-libgphoto2-fix-const-correctness-for-c23-builds.patch
@@ -0,0 +1,84 @@
1From bfa786a260bfd4660e8186ebad8778718e85e8cd Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sat, 4 Apr 2026 14:56:01 -0700
4Subject: [PATCH] libgphoto2: fix const-correctness for c23 builds
5
6C23 treats the return values of strrchr() and strchr() as const char *
7when the input string is const-qualified. Update local variables to use
8const char * where appropriate to avoid discarded-qualifier warnings and
9build failures with -std=gnu23.
10
11No functional change intended.
12
13Upstream-Status: Submitted [https://github.com/gphoto/libgphoto2/pull/1235]
14Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
15---
16 camlibs/directory/directory.c | 2 +-
17 libgphoto2/gphoto2-file.c | 6 +++---
18 libgphoto2/gphoto2-filesys.c | 2 +-
19 packaging/generic/print-camera-list.c | 2 +-
20 4 files changed, 6 insertions(+), 6 deletions(-)
21
22diff --git a/camlibs/directory/directory.c b/camlibs/directory/directory.c
23index 790405d54..cc63c6684 100644
24--- a/camlibs/directory/directory.c
25+++ b/camlibs/directory/directory.c
26@@ -125,7 +125,7 @@ static const char *
27 get_mime_type (const char *filename)
28 {
29
30- char *dot;
31+ const char *dot;
32 int x=0;
33
34 dot = strrchr(filename, '.');
35diff --git a/libgphoto2/gphoto2-file.c b/libgphoto2/gphoto2-file.c
36index 04d4d5e3e..1a9dbc193 100644
37--- a/libgphoto2/gphoto2-file.c
38+++ b/libgphoto2/gphoto2-file.c
39@@ -610,7 +610,7 @@ int
40 gp_file_open (CameraFile *file, const char *filename)
41 {
42 FILE *fp;
43- char *name, *dot;
44+ const char *name, *dot;
45 long size, size_read;
46 int i;
47 struct stat s;
48@@ -906,8 +906,8 @@ gp_file_get_name (CameraFile *file, const char **name)
49 int
50 gp_file_get_name_by_type (CameraFile *file, const char *basename, CameraFileType type, char **newname)
51 {
52- char *prefix = NULL, *s, *new, *slash = NULL;
53- const char *suffix = NULL;
54+ char *prefix = NULL, *new;
55+ const char *suffix = NULL, *s, *slash = NULL;
56 int i;
57
58 C_PARAMS (file && basename && newname);
59diff --git a/libgphoto2/gphoto2-filesys.c b/libgphoto2/gphoto2-filesys.c
60index 45f957292..07decff24 100644
61--- a/libgphoto2/gphoto2-filesys.c
62+++ b/libgphoto2/gphoto2-filesys.c
63@@ -521,7 +521,7 @@ append_to_folder (CameraFilesystemFolder *folder,
64 CameraFilesystemFolder **newfolder
65 ) {
66 CameraFilesystemFolder *f;
67- char *s;
68+ const char *s;
69
70 GP_LOG_D ("Append to folder %p/%s - %s", folder, folder->name, foldername);
71 /* Handle multiple slashes, and slashes at the end */
72diff --git a/packaging/generic/print-camera-list.c b/packaging/generic/print-camera-list.c
73index 1707b4e87..44530b4ae 100644
74--- a/packaging/generic/print-camera-list.c
75+++ b/packaging/generic/print-camera-list.c
76@@ -1138,7 +1138,7 @@ escape_html(const char *str) {
77 newstr = malloc(strlen(str)+1+inc);
78 s = str; ns = newstr;
79 do {
80- char *x;
81+ const char *x;
82 x = strchr(s,'&');
83 if (x) {
84 memcpy (ns, s, x-s);
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40333.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40333.patch
new file mode 100644
index 0000000000..77c307e88d
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40333.patch
@@ -0,0 +1,150 @@
1From 8fefd2da7b9e2c7c448086cd251b108c0ebf1262 Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 15:18:42 +0200
4Subject: [PATCH] Fixed EOS ImageFormat/CustomFuncEx Parsers Lack Length
5 Parameter
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10ptp_unpack_EOS_ImageFormat() and ptp_unpack_EOS_CustomFuncEx() accept
11const unsigned char** data but no length/size parameter. They perform
12unbounded reads via dtoh32o calls (up to 36 bytes for ImageFormat,
13up to 1024 bytes for CustomFuncEx). Callers in ptp_unpack_EOS_events()
14have xsize available but never pass it.
15
16 CVE-2026-40333
17
18Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
19
20CVE: CVE-2026-40333
21Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/1817ecead20c2aafa7549dac9619fe38f47b2f53]
22Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
23---
24 camlibs/ptp2/ptp-pack.c | 53 ++++++++++++++++++++++++++++++++++-------
25 1 file changed, 44 insertions(+), 9 deletions(-)
26
27diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
28index 09421b7..09dcc24 100644
29--- a/camlibs/ptp2/ptp-pack.c
30+++ b/camlibs/ptp2/ptp-pack.c
31@@ -1448,7 +1448,7 @@ ptp_unpack_Canon_EOS_FE (PTPParams *params, const unsigned char* data, unsigned
32
33
34 static inline uint16_t
35-ptp_unpack_EOS_ImageFormat (PTPParams* params, const unsigned char** data )
36+ptp_unpack_EOS_ImageFormat (PTPParams* params, const unsigned char** data, unsigned int *size )
37 {
38 /*
39 EOS ImageFormat entries look are a sequence of u32 values:
40@@ -1492,30 +1492,57 @@ ptp_unpack_EOS_ImageFormat (PTPParams* params, const unsigned char** data )
41
42 const uint8_t* d = *data;
43 uint32_t offset = 0;
44- uint32_t n = dtoh32o (d, offset);
45+ uint32_t n;
46 uint32_t l, t1, s1, c1, t2 = 0, s2 = 0, c2 = 0;
47
48+ if (*size < sizeof(uint32_t)) {
49+ ptp_debug (params, "parsing EOS ImageFormat property failed 1 (size %d)", *size);
50+ return 0;
51+ }
52+ n = dtoh32o (d, offset);
53+ *size -= sizeof(uint32_t);
54+
55 if (n != 1 && n !=2) {
56 ptp_debug (params, "parsing EOS ImageFormat property failed (n != 1 && n != 2: %d)", n);
57 return 0;
58 }
59-
60+ if (*size < sizeof(uint32_t)) {
61+ ptp_debug (params, "parsing EOS ImageFormat property failed 2 (size %d)", *size);
62+ return 0;
63+ }
64 l = dtoh32o (d, offset);
65+ *size -= sizeof(uint32_t);
66+
67 if (l != 0x10) {
68 ptp_debug (params, "parsing EOS ImageFormat property failed (l != 0x10: 0x%x)", l);
69 return 0;
70 }
71
72+ if (*size < 3*sizeof(uint32_t)) {
73+ ptp_debug (params, "parsing EOS ImageFormat property failed 3 (size %d)", *size);
74+ return 0;
75+ }
76 t1 = dtoh32o (d, offset);
77 s1 = dtoh32o (d, offset);
78 c1 = dtoh32o (d, offset);
79+ *size -= 3*sizeof(uint32_t);
80
81 if (n == 2) {
82+ if (*size < sizeof(uint32_t)) {
83+ ptp_debug (params, "parsing EOS ImageFormat property failed 4 (size %d)", *size);
84+ return 0;
85+ }
86 l = dtoh32o (d, offset);
87+ *size -= sizeof(uint32_t);
88+
89 if (l != 0x10) {
90 ptp_debug (params, "parsing EOS ImageFormat property failed (l != 0x10: 0x%x)", l);
91 return 0;
92 }
93+ if (*size < 3*sizeof(uint32_t)) {
94+ ptp_debug (params, "parsing EOS ImageFormat property failed 5 (size %d)", *size);
95+ return 0;
96+ }
97 t2 = dtoh32o (d, offset);
98 s2 = dtoh32o (d, offset);
99 c2 = dtoh32o (d, offset);
100@@ -1668,12 +1695,20 @@ ptp_unpack_EOS_FocusInfoEx (PTPParams* params, const unsigned char** data, uint3
101
102
103 static inline char*
104-ptp_unpack_EOS_CustomFuncEx (PTPParams* params, const unsigned char** data )
105+ptp_unpack_EOS_CustomFuncEx (PTPParams* params, const unsigned char** data, unsigned int *size )
106 {
107- uint32_t s = dtoh32a( *data );
108- uint32_t n = s/4, i;
109+ uint32_t s, n, i;
110 char *str, *p;
111
112+ if (*size < sizeof(uint32_t))
113+ return strdup("bad length");
114+
115+ s = dtoh32a( *data );
116+ n = s/4;
117+
118+ if (*size < 4+s)
119+ return strdup("bad length");
120+
121 if (s > 1024) {
122 ptp_debug (params, "customfuncex data is larger than 1k / %d... unexpected?", s);
123 return strdup("bad length");
124@@ -1962,7 +1997,7 @@ ptp_unpack_EOS_events (PTPParams *params, const unsigned char* data, unsigned in
125 case PTP_DPC_CANON_EOS_ImageFormatExtHD:
126 /* special handling of ImageFormat properties */
127 for (j=0;j<dpd_count;j++) {
128- dpd->FORM.Enum.SupportedValue[j].u16 = ptp_unpack_EOS_ImageFormat( params, &xdata );
129+ dpd->FORM.Enum.SupportedValue[j].u16 = ptp_unpack_EOS_ImageFormat( params, &xdata, &xsize );
130 ptp_debug (params, INDENT "prop %x option[%2d] == 0x%04x", dpc, j, dpd->FORM.Enum.SupportedValue[j].u16);
131 }
132 break;
133@@ -2267,7 +2302,7 @@ ptp_unpack_EOS_events (PTPParams *params, const unsigned char* data, unsigned in
134 case PTP_DPC_CANON_EOS_ImageFormatSD:
135 case PTP_DPC_CANON_EOS_ImageFormatExtHD:
136 dpd->DataType = PTP_DTC_UINT16;
137- dpd->DefaultValue.u16 = ptp_unpack_EOS_ImageFormat( params, &xdata );
138+ dpd->DefaultValue.u16 = ptp_unpack_EOS_ImageFormat( params, &xdata, &xsize );
139 dpd->CurrentValue.u16 = dpd->DefaultValue.u16;
140 ptp_debug (params, INDENT "prop %x value == 0x%04x (u16)", dpc, dpd->CurrentValue.u16);
141 break;
142@@ -2275,7 +2310,7 @@ ptp_unpack_EOS_events (PTPParams *params, const unsigned char* data, unsigned in
143 dpd->DataType = PTP_DTC_STR;
144 free (dpd->DefaultValue.str);
145 free (dpd->CurrentValue.str);
146- dpd->DefaultValue.str = ptp_unpack_EOS_CustomFuncEx( params, &xdata );
147+ dpd->DefaultValue.str = ptp_unpack_EOS_CustomFuncEx( params, &xdata, &xsize );
148 dpd->CurrentValue.str = strdup( (char*)dpd->DefaultValue.str );
149 ptp_debug (params, INDENT "prop %x value == %s", dpc, dpd->CurrentValue.str);
150 break;
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40334.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40334.patch
new file mode 100644
index 0000000000..883582dff0
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40334.patch
@@ -0,0 +1,37 @@
1From 20b33a26b2efdbf2c35c5cacc54a041855ec764b Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 15:15:54 +0200
4Subject: [PATCH] Fixed Canon FolderEntry Missing Null Termination
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9ptp_unpack_Canon_FE() copies filename with strncpy into a 13-byte
10buffer without explicit null termination. The EOS variant at line
111451–1452 correctly adds fe->Filename[PTP_CANON_FilenameBufferLen-1]
12= 0; confirming this was recognized as necessary but not applied to the
13original Canon path.
14
15 CVE-2026-40334
16
17Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
18
19CVE: CVE-2026-40334
20Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/259fc7d3bfe534ce4b114c464f55b448670ab873]
21Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
22---
23 camlibs/ptp2/ptp-pack.c | 1 +
24 1 file changed, 1 insertion(+)
25
26diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
27index 09dcc24..982b4f4 100644
28--- a/camlibs/ptp2/ptp-pack.c
29+++ b/camlibs/ptp2/ptp-pack.c
30@@ -1369,6 +1369,7 @@ ptp_unpack_Canon_FE (PTPParams *params, const unsigned char* data, PTPCANONFolde
31 fe->ObjectSize = dtoh32a(data + PTP_cfe_ObjectSize);
32 fe->Time = (time_t)dtoh32a(data + PTP_cfe_Time);
33 strncpy(fe->Filename, (char*)data + PTP_cfe_Filename, PTP_CANON_FilenameBufferLen);
34+ fe->Filename[PTP_CANON_FilenameBufferLen-1] = '\0';
35 }
36
37 /*
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40335.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40335.patch
new file mode 100644
index 0000000000..dfe832e6c8
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40335.patch
@@ -0,0 +1,43 @@
1From edcdf804662eb4340fdc371af4853d6579e969ab Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 15:07:38 +0200
4Subject: [PATCH] =?UTF-8?q?Fixed=20UINT128/INT128=20Unchecked=20Offset=20A?=
5 =?UTF-8?q?dvance=20(CWE-125)=20=E2=80=94=20MEDIUM?=
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10Finding 5: UINT128/INT128 Unchecked Offset Advance (CWE-125) — MEDIUM
11
12In ptp_unpack_DPV(), the PTP_DTC_UINT128 and PTP_DTC_INT128 cases advance *offset += 16 without verifying 16 bytes remain. The entry check at line 609 only guarantees *offset < total (at least 1 byte available). After the unchecked advance, *offset can exceed total, and the CTVAL macro's bounds check (total - *offset < sizeof(target)) wraps due to unsigned arithmetic.
13
14CVE-2026-40335
15
16Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
17
18CVE: CVE-2026-40335
19Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/433bde9888d70aa726e32744cd751d7dbe94379a]
20Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
21---
22 camlibs/ptp2/ptp-pack.c | 4 ++++
23 1 file changed, 4 insertions(+)
24
25diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
26index 982b4f4..7fc120d 100644
27--- a/camlibs/ptp2/ptp-pack.c
28+++ b/camlibs/ptp2/ptp-pack.c
29@@ -614,10 +614,14 @@ ptp_unpack_DPV (
30 case PTP_DTC_UINT64: CTVAL(value->u64,dtoh64a); break;
31
32 case PTP_DTC_UINT128:
33+ if (total - *offset < 16)
34+ return 0;
35 *offset += 16;
36 /*fprintf(stderr,"unhandled unpack of uint128n");*/
37 break;
38 case PTP_DTC_INT128:
39+ if (total - *offset < 16)
40+ return 0;
41 *offset += 16;
42 /*fprintf(stderr,"unhandled unpack of int128n");*/
43 break;
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40336.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40336.patch
new file mode 100644
index 0000000000..1a809b4f25
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40336.patch
@@ -0,0 +1,44 @@
1From e19c45d3530f1585805711e14aa4ea788e499f46 Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 15:13:51 +0200
4Subject: [PATCH] Fixed Sony DPD Secondary Enum List Memory Leak
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Finding 4: Sony DPD Secondary Enum List Memory Leak (CWE-401) — LOW
10
11File: ptp-pack.c:884-885
12
13When processing a secondary enumeration list (2024+ Sony cameras), line
14884–885 overwrites dpd->FORM.Enum.SupportedValue with a new calloc()
15without freeing the previous allocation from line 857. The original
16array and any string values it contains are leaked.
17
18CVE-2026-40336
19
20Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
21
22CVE: CVE-2026-40336
23Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/404ff02c75f3cb280196fc260a63c4d26cf1a8f6]
24Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
25---
26 camlibs/ptp2/ptp-pack.c | 5 +++++
27 1 file changed, 5 insertions(+)
28
29diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
30index 7fc120d..fc51d77 100644
31--- a/camlibs/ptp2/ptp-pack.c
32+++ b/camlibs/ptp2/ptp-pack.c
33@@ -879,6 +879,11 @@ ptp_unpack_Sony_DPD (PTPParams *params, const unsigned char* data, PTPDeviceProp
34 /* check if we have a secondary list of items, this is for newer Sonys (2024) */
35 if (val < 0x200) { /* if a secondary list is not provided, this will be the next property code - 0x5XXX or 0xDxxx */
36 if (dpd->FormFlag == PTP_DPFF_Enumeration) {
37+ /* free old enum variables */
38+ for (i=0;i<dpd->FORM.Enum.NumberOfValues;i++)
39+ ptp_free_propvalue (dpd->DataType, dpd->FORM.Enum.SupportedValue+i);
40+ free (dpd->FORM.Enum.SupportedValue);
41+
42 N = dtoh16o(data, *poffset);
43 dpd->FORM.Enum.SupportedValue = calloc(N,sizeof(dpd->FORM.Enum.SupportedValue[0]));
44 if (!dpd->FORM.Enum.SupportedValue)
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40338.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40338.patch
new file mode 100644
index 0000000000..9f233f2ec9
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40338.patch
@@ -0,0 +1,34 @@
1From 43cc20e807cd2935869617a7d8b9488070712c0e Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Sat, 11 Apr 2026 10:47:52 +0200
4Subject: [PATCH] =?UTF-8?q?Fixed=20Sony=20DPD=20Enum=20Count=20OOB=20Read?=
5 =?UTF-8?q?=20(CWE-125)=20=E2=80=94=20MEDIUM?=
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10In the PTP_DPFF_Enumeration case of ptp_unpack_Sony_DPD(), dtoh16o(data, *poffset) reads 2 bytes for enumeration count N without verifying 2 bytes remain. The standard parser at line 704 has this check.
11
12CVE-2026-40338
13
14Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
15
16CVE: CVE-2026-40338
17Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/3b9f9696be76ae51dca983d9dd8ce586a2561845]
18Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
19---
20 camlibs/ptp2/ptp-pack.c | 1 +
21 1 file changed, 1 insertion(+)
22
23diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
24index fc51d77..f90d2a5 100644
25--- a/camlibs/ptp2/ptp-pack.c
26+++ b/camlibs/ptp2/ptp-pack.c
27@@ -851,6 +851,7 @@ ptp_unpack_Sony_DPD (PTPParams *params, const unsigned char* data, PTPDeviceProp
28 break;
29 case PTP_DPFF_Enumeration: {
30 #define N dpd->FORM.Enum.NumberOfValues
31+ if (*poffset + sizeof(uint16_t) > dpdlen) goto outofmemory;
32 N = dtoh16o(data, *poffset);
33 dpd->FORM.Enum.SupportedValue = calloc(N,sizeof(dpd->FORM.Enum.SupportedValue[0]));
34 if (!dpd->FORM.Enum.SupportedValue)
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40339.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40339.patch
new file mode 100644
index 0000000000..b00ac72772
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40339.patch
@@ -0,0 +1,41 @@
1From 585e8113b541469347d09c341c2e8b468b431adb Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Sat, 11 Apr 2026 10:50:47 +0200
4Subject: [PATCH] =?UTF-8?q?Fixed=20Sony=20DPD=20FormFlag=20OOB=20Read=20(C?=
5 =?UTF-8?q?WE-125)=20=E2=80=94=20MEDIUM?=
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10ptp_unpack_Sony_DPD() reads the FormFlag byte via dtoh8o(data, *poffset)
11without a prior bounds check. The standard ptp_unpack_DPD() at line
12686–687 correctly validates *offset + sizeof(uint8_t) > dpdlen before
13this same read, but the Sony variant omits this check.
14
15CVE-2026-40339
16
17Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
18
19CVE: CVE-2026-40339
20Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/09f8a940b1e418b5693f5c11e3016a1ad2cea62d]
21Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
22---
23 camlibs/ptp2/ptp-pack.c | 3 ++-
24 1 file changed, 2 insertions(+), 1 deletion(-)
25
26diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
27index f90d2a5..28648a5 100644
28--- a/camlibs/ptp2/ptp-pack.c
29+++ b/camlibs/ptp2/ptp-pack.c
30@@ -833,9 +833,10 @@ ptp_unpack_Sony_DPD (PTPParams *params, const unsigned char* data, PTPDeviceProp
31 code or the Data Type is a string (with two empty strings as
32 values). In both cases Form Flag should be set to 0x00 and FORM is
33 not present. */
34-
35 if (*poffset==PTP_dpd_Sony_DefaultValue)
36 return 1;
37+ if (*poffset + sizeof(uint8_t) > dpdlen)
38+ return 1;
39
40 dpd->FormFlag = dtoh8o(data, *poffset);
41 ptp_debug (params, "formflag 0x%04x", dpd->FormFlag);
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40340.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40340.patch
new file mode 100644
index 0000000000..a0852692b0
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40340.patch
@@ -0,0 +1,40 @@
1From fd9f234df894caec6c65144b5a4f0264aadf0989 Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 16:01:48 +0200
4Subject: [PATCH] Fixed ObjectInfo Parser OOB Read
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9ptp_unpack_OI() validates len < PTP_oi_SequenceNumber (i.e., len < 48) but then accesses:
10
11 Offsets 48–51: dtoh32a(data + PTP_oi_SequenceNumber) at line 563 (4 bytes OOB)
12 Offset 52: data[PTP_oi_filenamelen] at line 547 (5 bytes OOB)
13 Offset 56: data[PTP_oi_filenamelen+4] at line 547 (9 bytes OOB)
14
15The Samsung Galaxy 64-bit objectsize detection heuristic reads up to 9 bytes beyond the validated boundary.
16
17 CVE-2026-40340
18
19Reported-By: Sebastián Alba <sebasjosue84@gmail.com>
20
21CVE: CVE-2026-40340
22Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/7c7f515bc88c3d0c4098ac965d313518e0ccbe33]
23Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
24---
25 camlibs/ptp2/ptp-pack.c | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
29index 28648a5..9eba06f 100644
30--- a/camlibs/ptp2/ptp-pack.c
31+++ b/camlibs/ptp2/ptp-pack.c
32@@ -526,7 +526,7 @@ ptp_unpack_OI (PTPParams *params, const unsigned char* data, PTPObjectInfo *oi,
33 {
34 char *capture_date;
35
36- if (!data || len < PTP_oi_SequenceNumber)
37+ if (!data || len < PTP_oi_filenamelen + 5)
38 return;
39
40 oi->Filename = oi->Keywords = NULL;
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40341.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40341.patch
new file mode 100644
index 0000000000..b71792c185
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/CVE-2026-40341.patch
@@ -0,0 +1,69 @@
1From 3674dbeafa5157a264ca5e562ffdbef159a2185f Mon Sep 17 00:00:00 2001
2From: Marcus Meissner <marcus@jet.franken.de>
3Date: Wed, 8 Apr 2026 15:28:52 +0200
4Subject: [PATCH] Fixed OOB read in ptp_unpack_EOS_FocusInfoEx
5
6Do not read out values before checking there is sufficient size
7
8CVE-2026-40341
9
10CVE: CVE-2026-40341
11Upstream-Status: Backport [https://github.com/gphoto/libgphoto2/commit/c385b34af260595dfbb5f9329526be5158985987]
12Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
13---
14 camlibs/ptp2/ptp-pack.c | 34 +++++++++++++++++++++++++---------
15 1 file changed, 25 insertions(+), 9 deletions(-)
16
17diff --git a/camlibs/ptp2/ptp-pack.c b/camlibs/ptp2/ptp-pack.c
18index 9eba06f..11428ab 100644
19--- a/camlibs/ptp2/ptp-pack.c
20+++ b/camlibs/ptp2/ptp-pack.c
21@@ -1629,23 +1629,39 @@ ptp_pack_EOS_ImageFormat (PTPParams* params, unsigned char* data, uint16_t value
22 static inline char*
23 ptp_unpack_EOS_FocusInfoEx (PTPParams* params, const unsigned char** data, uint32_t datasize)
24 {
25- uint32_t size = dtoh32a( *data );
26- uint32_t halfsize = dtoh16a( (*data) + 4);
27- uint32_t version = dtoh16a( (*data) + 6);
28- uint32_t focus_points_in_struct = dtoh16a( (*data) + 8);
29- uint32_t focus_points_in_use = dtoh16a( (*data) + 10);
30- uint32_t sizeX = dtoh16a( (*data) + 12);
31- uint32_t sizeY = dtoh16a( (*data) + 14);
32- uint32_t size2X = dtoh16a( (*data) + 16);
33- uint32_t size2Y = dtoh16a( (*data) + 18);
34+ uint32_t size;
35+ uint32_t halfsize;
36+ uint32_t version;
37+ uint32_t focus_points_in_struct;
38+ uint32_t focus_points_in_use;
39+ uint32_t sizeX;
40+ uint32_t sizeY;
41+ uint32_t size2X;
42+ uint32_t size2Y;
43 uint32_t i;
44 uint32_t maxlen;
45 char *str, *p;
46
47+ if (datasize<4) {
48+ ptp_error(params, "FocusInfoEx has invalid size (%d)", datasize);
49+ return strdup("bad size 0");
50+ }
51+
52+ size = dtoh32a( *data );
53 if ((size > datasize) || (size < 20)) {
54 ptp_error(params, "FocusInfoEx has invalid size (%d) vs datasize (%d)", size, datasize);
55 return strdup("bad size 1");
56 }
57+
58+ halfsize = dtoh16a( (*data) + 4);
59+ version = dtoh16a( (*data) + 6);
60+ focus_points_in_struct = dtoh16a( (*data) + 8);
61+ focus_points_in_use = dtoh16a( (*data) + 10);
62+ sizeX = dtoh16a( (*data) + 12);
63+ sizeY = dtoh16a( (*data) + 14);
64+ size2X = dtoh16a( (*data) + 16);
65+ size2Y = dtoh16a( (*data) + 18);
66+
67 /* If data is zero-filled, then it is just a placeholder, so nothing
68 useful, but also not an error */
69 if (!focus_points_in_struct || !focus_points_in_use) {
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.33.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.33.bb
index 6b5e6c21b9..04c4786f84 100644
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.33.bb
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.33.bb
@@ -12,7 +12,16 @@ DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
12SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/${BP}.tar.xz;name=libgphoto2 \ 12SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/${BP}.tar.xz;name=libgphoto2 \
13 file://40-libgphoto2.rules \ 13 file://40-libgphoto2.rules \
14 file://0001-configure-Filter-out-buildpaths-from-CC.patch \ 14 file://0001-configure-Filter-out-buildpaths-from-CC.patch \
15" 15 file://0001-libgphoto2-fix-const-correctness-for-c23-builds.patch \
16 file://CVE-2026-40333.patch \
17 file://CVE-2026-40334.patch \
18 file://CVE-2026-40335.patch \
19 file://CVE-2026-40336.patch \
20 file://CVE-2026-40338.patch \
21 file://CVE-2026-40339.patch \
22 file://CVE-2026-40340.patch \
23 file://CVE-2026-40341.patch \
24 "
16SRC_URI[libgphoto2.sha256sum] = "28825f767a85544cb58f6e15028f8e53a5bb37a62148b3f1708b524781c3bef2" 25SRC_URI[libgphoto2.sha256sum] = "28825f767a85544cb58f6e15028f8e53a5bb37a62148b3f1708b524781c3bef2"
17 26
18UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gphoto/files/libgphoto/" 27UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gphoto/files/libgphoto/"
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_14.1.4.bb b/meta-oe/recipes-graphics/graphviz/graphviz_14.1.5.bb
index a5f08d0c85..388de9b452 100644
--- a/meta-oe/recipes-graphics/graphviz/graphviz_14.1.4.bb
+++ b/meta-oe/recipes-graphics/graphviz/graphviz_14.1.5.bb
@@ -23,7 +23,7 @@ SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-re
23SRC_URI:append:class-nativesdk = "\ 23SRC_URI:append:class-nativesdk = "\
24 file://graphviz-setup.sh \ 24 file://graphviz-setup.sh \
25" 25"
26SRC_URI[sha256sum] = "043877c0857d8d46067cd2f18809d54fc876c399f0ecd438f60ea7f4d8037451" 26SRC_URI[sha256sum] = "b017378835f7ca12f1a3f1db5c338d7e7af16b284b7007ad73ccec960c1b45b3"
27 27
28UPSTREAM_CHECK_URI = "https://graphviz.org/download/" 28UPSTREAM_CHECK_URI = "https://graphviz.org/download/"
29UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" 29UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-oe/recipes-graphics/libraqm/libraqm_0.10.5.bb b/meta-oe/recipes-graphics/libraqm/libraqm_0.10.5.bb
new file mode 100644
index 0000000000..8eaaee4492
--- /dev/null
+++ b/meta-oe/recipes-graphics/libraqm/libraqm_0.10.5.bb
@@ -0,0 +1,25 @@
1SUMMARY = "A library for complex text layout"
2DESCRIPTION = "\
3 Raqm is a small library that encapsulates the logic for complex text \
4 layout and provides a convenient API. It currently provides bidirectional \
5 text support (using FriBiDi or SheenBidi), shaping (using HarfBuzz), and \
6 proper script itemization. As a result, Raqm can support most writing \
7 systems covered by Unicode. \
8"
9HOMEPAGE = "https://github.com/HOST-Oman/libraqm"
10BUGTRACKER = "https://github.com/HOST-Oman/libraqm/issues"
11SECTION = "graphics"
12
13LICENSE = "MIT"
14LIC_FILES_CHKSUM = "file://COPYING;md5=7dc444a99e2824eac906383266fe4fa6"
15
16SRC_URI = "git://github.com/HOST-Oman/libraqm.git;protocol=https;branch=main;tag=v${PV}"
17SRCREV = "3a6b891a3db0e0db1364aa38088422f68d8d81e6"
18
19DEPENDS = "freetype fribidi harfbuzz"
20
21inherit meson pkgconfig
22
23PACKAGECONFIG ?= ""
24
25PACKAGECONFIG[sheenbidi] = "-Dsheenbidi=true,-Dsheenbidi=false,sheenbidi"
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.8.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.10.bb
index c15e986dc3..27ddc35381 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.8.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.8.10.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbb0010b2f7cf6e8a13bcac1ef4d2455"
7DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" 7DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp"
8 8
9SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" 9SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
10SRC_URI[sha256sum] = "2213b56fdaff2220d0e38c8e420cbe1a83c87374190cba8c70af2156097ce30a" 10SRC_URI[sha256sum] = "ebc059d01c007a62f4b04f10cf858527c875062532296943174df9a80264fd65"
11 11
12S = "${UNPACKDIR}/SDL2_image-${PV}" 12S = "${UNPACKDIR}/SDL2_image-${PV}"
13 13
diff --git a/meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.0.bb b/meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.2.bb
index 324332eb84..0f7ce92efd 100644
--- a/meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.0.bb
+++ b/meta-oe/recipes-graphics/libsdl3/libsdl3-image_3.4.2.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=df8f4d887d3997f6e9cf81bb7f43dbf7"
6 6
7DEPENDS = "tiff zlib libpng jpeg libsdl3 libwebp libjxl" 7DEPENDS = "tiff zlib libpng jpeg libsdl3 libwebp libjxl"
8 8
9SRC_URI = "git://github.com/libsdl-org/SDL_image.git;protocol=https;branch=release-3.4.x" 9SRC_URI = "git://github.com/libsdl-org/SDL_image.git;protocol=https;branch=release-3.4.x;tag=release-${PV}"
10SRCREV = "ad58ecfc27a1bd09e510ceff8bbbdb1094806476" 10SRCREV = "96a73a551a857b7c8d0ca3cc553a266eabbab6a7"
11 11
12EXTRA_OECMAKE += "-DSDLIMAGE_JXL=ON" 12EXTRA_OECMAKE += "-DSDLIMAGE_JXL=ON"
13 13
diff --git a/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.2.bb b/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.4.bb
index d6501f855c..0159021280 100644
--- a/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.2.bb
+++ b/meta-oe/recipes-graphics/libsdl3/libsdl3_3.4.4.bb
@@ -18,7 +18,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL3-${PV}.tar.gz"
18 18
19S = "${UNPACKDIR}/SDL3-${PV}" 19S = "${UNPACKDIR}/SDL3-${PV}"
20 20
21SRC_URI[sha256sum] = "ef39a2e3f9a8a78296c40da701967dd1b0d0d6e267e483863ce70f8a03b4050c" 21SRC_URI[sha256sum] = "ee712dbe6a89bb140bbfc2ce72358fb5ee5cc2240abeabd54855012db30b3864"
22 22
23inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even 23inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
24 24
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2026-6192.patch b/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2026-6192.patch
new file mode 100644
index 0000000000..49be9bd0a6
--- /dev/null
+++ b/meta-oe/recipes-graphics/openjpeg/openjpeg/CVE-2026-6192.patch
@@ -0,0 +1,35 @@
1From 776b00ff792a3c54b65f3bd92dbe7476a5a54106 Mon Sep 17 00:00:00 2001
2From: Even Rouault <even.rouault@spatialys.com>
3Date: Sun, 5 Apr 2026 13:25:27 +0200
4Subject: [PATCH] opj_pi_initialise_encode() (write code path): avoid potential
5 integer overflow leading to insufficient memory allocation
6
7Fixes #1619
8
9CVE: CVE-2026-6192
10Upstream-Status: Backport [https://github.com/uclouvain/openjpeg/commit/839936aa33eb8899bbbd80fda02796bb65068951]
11Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
12---
13 src/lib/openjp2/pi.c | 9 ++++++---
14 1 file changed, 6 insertions(+), 3 deletions(-)
15
16diff --git a/src/lib/openjp2/pi.c b/src/lib/openjp2/pi.c
17index 15ac3314..4abb87af 100644
18--- a/src/lib/openjp2/pi.c
19+++ b/src/lib/openjp2/pi.c
20@@ -1694,9 +1694,12 @@ opj_pi_iterator_t *opj_pi_initialise_encode(const opj_image_t *p_image,
21 l_current_pi = l_pi;
22
23 /* memory allocation for include*/
24- l_current_pi->include_size = l_tcp->numlayers * l_step_l;
25- l_current_pi->include = (OPJ_INT16*) opj_calloc(l_current_pi->include_size,
26- sizeof(OPJ_INT16));
27+ l_current_pi->include = NULL;
28+ if (l_step_l <= UINT_MAX / l_tcp->numlayers) {
29+ l_current_pi->include_size = l_tcp->numlayers * l_step_l;
30+ l_current_pi->include = (OPJ_INT16*) opj_calloc(l_current_pi->include_size,
31+ sizeof(OPJ_INT16));
32+ }
33 if (!l_current_pi->include) {
34 opj_free(l_tmp_data);
35 opj_free(l_tmp_ptr);
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.4.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.4.bb
index 33dc48b2ea..968b7a0a5c 100644
--- a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.4.bb
+++ b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.4.bb
@@ -8,6 +8,7 @@ DEPENDS = "libpng tiff lcms zlib"
8SRC_URI = "git://github.com/uclouvain/openjpeg.git;branch=master;protocol=https \ 8SRC_URI = "git://github.com/uclouvain/openjpeg.git;branch=master;protocol=https \
9 file://0001-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \ 9 file://0001-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
10 file://CVE-2023-39327.patch \ 10 file://CVE-2023-39327.patch \
11 file://CVE-2026-6192.patch \
11 " 12 "
12SRCREV = "6c4a29b00211eb0430fa0e5e890f1ce5c80f409f" 13SRCREV = "6c4a29b00211eb0430fa0e5e890f1ce5c80f409f"
13 14
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_407.bb b/meta-oe/recipes-graphics/xorg-app/xterm_408.bb
index 4aecd77f98..0f76bc1209 100644
--- a/meta-oe/recipes-graphics/xorg-app/xterm_407.bb
+++ b/meta-oe/recipes-graphics/xorg-app/xterm_408.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=413ff95100710d7a81
7SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \ 7SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
8 file://0001-include-missing-pty.h-header-for-openpty.patch \ 8 file://0001-include-missing-pty.h-header-for-openpty.patch \
9 " 9 "
10SRC_URI[sha256sum] = "2136eba530068a1b7565abbf17823274f5cefb7fe3618355cbc89dc55c8b7b6a" 10SRC_URI[sha256sum] = "27dc9e770885f98fbd0b5b40bcda959dc11ec9ba21f0a33b12aafffcc7f9b813"
11 11
12PACKAGECONFIG ?= "" 12PACKAGECONFIG ?= ""
13PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native" 13PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
index 430b5974b3..5c001696d0 100644
--- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -12,12 +12,17 @@ S = "${UNPACKDIR}"
12SRC_URI:append:libc-musl = "\ 12SRC_URI:append:libc-musl = "\
13 file://userfaultfd.patch \ 13 file://userfaultfd.patch \
14 " 14 "
15
16# Fix liburing detection (from Linux v7.0)
17MM_PATCH = "file://0001-selftests-mm-pass-down-full-CC-and-CFLAGS-to-check_c.patch"
18
15SRC_URI += "file://run-ptest \ 19SRC_URI += "file://run-ptest \
16 file://COPYING \ 20 file://COPYING \
17 file://0001-selftests-timers-Fix-clock_adjtime-for-newer-32-bit-.patch \ 21 file://0001-selftests-timers-Fix-clock_adjtime-for-newer-32-bit-.patch \
22 ${@bb.utils.contains('PACKAGECONFIG', 'mm', '${MM_PATCH}', '', d)} \
18 " 23 "
19 24
20# now we just test bpf and vm 25# now we just test bpf and mm (formerly known as vm)
21# we will append other kernel selftest in the future 26# we will append other kernel selftest in the future
22# bpf was added in 4.10 with: https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d 27# bpf was added in 4.10 with: https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d
23# if you have older kernel than that you need to remove it from PACKAGECONFIG 28# if you have older kernel than that you need to remove it from PACKAGECONFIG
@@ -25,20 +30,17 @@ PACKAGECONFIG ??= "firmware"
25# bpf needs working clang compiler anyway 30# bpf needs working clang compiler anyway
26PACKAGECONFIG:append:toolchain-clang:x86-64 = " bpf" 31PACKAGECONFIG:append:toolchain-clang:x86-64 = " bpf"
27PACKAGECONFIG:remove:x86 = "bpf" 32PACKAGECONFIG:remove:x86 = "bpf"
28PACKAGECONFIG:remove:arm = "bpf vm" 33PACKAGECONFIG:remove:arm = "bpf mm"
29# host ptrace.h is used to compile BPF target but mips ptrace.h is needed 34# host ptrace.h is used to compile BPF target but mips ptrace.h is needed
30# progs/loop1.c:21:9: error: incomplete definition of type 'struct user_pt_regs' 35# progs/loop1.c:21:9: error: incomplete definition of type 'struct user_pt_regs'
31# m = PT_REGS_RC(ctx); 36# m = PT_REGS_RC(ctx);
32# vm tests need libhugetlbfs starting 5.8+ (https://lkml.org/lkml/2020/4/22/1654) 37PACKAGECONFIG:remove:qemumips = "bpf"
33PACKAGECONFIG:remove:qemumips = "bpf vm" 38PACKAGECONFIG:remove:riscv64 = "bpf"
34 39PACKAGECONFIG:remove:riscv32 = "bpf"
35# riscv does not support libhugetlbfs yet
36PACKAGECONFIG:remove:riscv64 = "bpf vm"
37PACKAGECONFIG:remove:riscv32 = "bpf vm"
38 40
39PACKAGECONFIG[bpf] = ",,elfutils elfutils-native libcap libcap-ng rsync-native python3-docutils-native," 41PACKAGECONFIG[bpf] = ",,elfutils elfutils-native libcap libcap-ng rsync-native python3-docutils-native,"
40PACKAGECONFIG[firmware] = ",,libcap, bash" 42PACKAGECONFIG[firmware] = ",,libcap, bash"
41PACKAGECONFIG[vm] = ",,libcap libhugetlbfs,libgcc bash" 43PACKAGECONFIG[mm] = ",,libcap liburing numactl, libgcc bash"
42 44
43do_patch[depends] += "virtual/kernel:do_shared_workdir" 45do_patch[depends] += "virtual/kernel:do_shared_workdir"
44do_compile[depends] += "virtual/kernel:do_install" 46do_compile[depends] += "virtual/kernel:do_install"
@@ -48,7 +50,7 @@ inherit linux-kernel-base module-base kernel-arch ptest siteinfo
48DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map" 50DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
49 51
50TEST_LIST = "\ 52TEST_LIST = "\
51 ${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware vm', d)} \ 53 ${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware mm', d)} \
52 cpufreq \ 54 cpufreq \
53 cpu-hotplug \ 55 cpu-hotplug \
54 rtc \ 56 rtc \
@@ -78,6 +80,7 @@ KERNEL_SELFTEST_SRC ?= "Makefile \
78 tools \ 80 tools \
79 scripts \ 81 scripts \
80 arch \ 82 arch \
83 ${@bb.utils.filter('PACKAGECONFIG', 'mm', d)} \
81 LICENSES \ 84 LICENSES \
82" 85"
83do_compile() { 86do_compile() {
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-mm-pass-down-full-CC-and-CFLAGS-to-check_c.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-mm-pass-down-full-CC-and-CFLAGS-to-check_c.patch
new file mode 100644
index 0000000000..a115d56dd1
--- /dev/null
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/0001-selftests-mm-pass-down-full-CC-and-CFLAGS-to-check_c.patch
@@ -0,0 +1,76 @@
1From 8f9e6395f1f8121b577eeb4cb54f671a9088bddd Mon Sep 17 00:00:00 2001
2From: Kevin Brodsky <kevin.brodsky@arm.com>
3Date: Thu, 22 Jan 2026 17:02:18 +0000
4Subject: [PATCH] selftests/mm: pass down full CC and CFLAGS to check_config.sh
5
6check_config.sh checks that liburing is available by running the compiler
7provided as its first argument. This makes two assumptions:
8
91. CC consists of only one word
102. No extra flag is required
11
12Unfortunately, there are many situations where these assumptions don't
13hold. For instance:
14
15- When using Clang, CC consists of multiple words
16- When cross-compiling, extra flags may be required to allow the
17 compiler to find headers
18
19Remove these assumptions by passing down CC and CFLAGS as-is from the
20Makefile, so that the same command line is used as when actually building
21the tests.
22
23Link: https://lkml.kernel.org/r/20260122170224.4056513-4-kevin.brodsky@arm.com
24Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
25Reviewed-by: Mark Brown <broonie@kernel.org>
26Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
27Cc: Jason Gunthorpe <jgg@nvidia.com>
28Cc: John Hubbard <jhubbard@nvidia.com>
29Cc: Dev Jain <dev.jain@arm.com>
30Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
31Cc: Paolo Abeni <pabeni@redhat.com>
32Cc: Ryan Roberts <ryan.roberts@arm.com>
33Cc: SeongJae Park <sj@kernel.org>
34Cc: Shuah Khan <shuah@kernel.org>
35Cc: Usama Anjum <Usama.Anjum@arm.com>
36Cc: wang lian <lianux.mm@gmail.com>
37Cc: Yunsheng Lin <linyunsheng@huawei.com>
38Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
39
40Upstream-Status: Backport [from commit 7f532d19c8be7, in tag v7.0]
41
42---
43 tools/testing/selftests/mm/Makefile | 2 +-
44 tools/testing/selftests/mm/check_config.sh | 3 +--
45 2 files changed, 2 insertions(+), 3 deletions(-)
46
47diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile
48index ae6f994d3add..fc9b9ec367c3 100644
49--- a/tools/testing/selftests/mm/Makefile
50+++ b/tools/testing/selftests/mm/Makefile
51@@ -228,7 +228,7 @@ $(OUTPUT)/ksm_tests: LDLIBS += -lnuma
52 $(OUTPUT)/migration: LDLIBS += -lnuma
53
54 local_config.mk local_config.h: check_config.sh
55- /bin/sh ./check_config.sh $(CC)
56+ CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
57
58 EXTRA_CLEAN += local_config.mk local_config.h
59
60diff --git a/tools/testing/selftests/mm/check_config.sh b/tools/testing/selftests/mm/check_config.sh
61index 3954f4746161..b84c82bbf875 100755
62--- a/tools/testing/selftests/mm/check_config.sh
63+++ b/tools/testing/selftests/mm/check_config.sh
64@@ -16,8 +16,7 @@ echo "#include <sys/types.h>" > $tmpfile_c
65 echo "#include <liburing.h>" >> $tmpfile_c
66 echo "int func(void) { return 0; }" >> $tmpfile_c
67
68-CC=${1:?"Usage: $0 <compiler> # example compiler: gcc"}
69-$CC -c $tmpfile_c -o $tmpfile_o >/dev/null 2>&1
70+$CC $CFLAGS -c $tmpfile_c -o $tmpfile_o
71
72 if [ -f $tmpfile_o ]; then
73 echo "#define LOCAL_CONFIG_HAVE_LIBURING 1" > $OUTPUT_H_FILE
74--
752.47.0
76
diff --git a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
index 6ebb54e261..c837dad87c 100644
--- a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
+++ b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
@@ -30,7 +30,7 @@ SRC_URI[sha256sum] = "ea2449ad3f201ec590d811db9da6d02ffc5e87a677d06b92ab15363d8c
30 30
31inherit autotools lib_package pkgconfig ptest 31inherit autotools lib_package pkgconfig ptest
32 32
33CXXFLAGS += "-std=c++14" 33CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
34 34
35DEPENDS = " \ 35DEPENDS = " \
36 asciidoc-native \ 36 asciidoc-native \
diff --git a/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb b/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb
index 9090cabb12..463e9a3dd7 100644
--- a/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb
+++ b/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb
@@ -3,7 +3,7 @@ SECTION = "libs/multimedia"
3LICENSE = "GPL-2.0-or-later" 3LICENSE = "GPL-2.0-or-later"
4LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" 4LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27"
5 5
6SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2" 6SRC_URI = "https://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2"
7SRC_URI[sha256sum] = "ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369" 7SRC_URI[sha256sum] = "ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369"
8 8
9inherit autotools lib_package binconfig pkgconfig 9inherit autotools lib_package binconfig pkgconfig
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb
index 9e54f49dcb..b6b9a068a9 100644
--- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb
+++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_6.2.bb
@@ -9,7 +9,6 @@ DEPENDS = "gtkmm4 pulseaudio json-glib"
9inherit meson features_check pkgconfig gettext 9inherit meson features_check pkgconfig gettext
10 10
11ANY_OF_DISTRO_FEATURES = "opengl vulkan" 11ANY_OF_DISTRO_FEATURES = "opengl vulkan"
12REQUIRED_DISTRO_FEATURES = "x11"
13 12
14SRC_URI = "http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" 13SRC_URI = "http://www.freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz"
15SRC_URI[sha256sum] = "e93a7836c7307dcbc989e95fc7ec0878322514c475fabd90e89ed52fd4f15d32" 14SRC_URI[sha256sum] = "e93a7836c7307dcbc989e95fc7ec0878322514c475fabd90e89ed52fd4f15d32"
diff --git a/meta-oe/recipes-navigation/geoclue/geoclue_2.8.0.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.8.1.bb
index 54c938c908..4769ed033a 100644
--- a/meta-oe/recipes-navigation/geoclue/geoclue_2.8.0.bb
+++ b/meta-oe/recipes-navigation/geoclue/geoclue_2.8.1.bb
@@ -12,8 +12,8 @@ DEPENDS = "glib-2.0 dbus json-glib libsoup-3.0 intltool-native"
12 12
13inherit meson pkgconfig gtk-doc gobject-introspection vala 13inherit meson pkgconfig gtk-doc gobject-introspection vala
14 14
15SRCREV = "f59a42a9fbbcfcb341708e5efd6edfe72a9da768" 15SRCREV = "81ddcb11208a59328a04bf022542504ac80602f5"
16SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;branch=master \ 16SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;branch=master;tag=${PV} \
17 file://0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch \ 17 file://0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch \
18" 18"
19 19
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-style-convert-K-R-function-definitions-to-ANSI-C-sty.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-style-convert-K-R-function-definitions-to-ANSI-C-sty.patch
new file mode 100644
index 0000000000..d8efc9b5d7
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-style-convert-K-R-function-definitions-to-ANSI-C-sty.patch
@@ -0,0 +1,301 @@
1From 80bc0c1bfff769728d18ac5d9e22755e60fc23d8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 10 Apr 2026 13:08:52 -0700
4Subject: [PATCH] style: convert K&R function definitions to ANSI C style in
5 md5.c
6
7Replace old-style K&R function parameter declarations with modern ANSI
8C prototypes across all functions in lib/md5.c. Also strip trailing
9whitespace throughout the file. No functional changes.
10
11Upstream-Status: Inappropriate [md5 does not exist in master branch]
12Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
13---
14 lib/md5.c | 231 +++++++++++++++++++++++++-----------------------
15 saslauthd/md5.c | 77 +++++++++-------
16 2 files changed, 163 insertions(+), 145 deletions(-)
17
18--- a/saslauthd/md5.c
19+++ b/saslauthd/md5.c
20@@ -98,8 +98,9 @@ Rotation is separate from addition to pr
21 /* MD5 initialization. Begins an MD5 operation, writing a new context.
22 */
23
24-void _saslauthd_MD5Init (context)
25-MD5_CTX *context; /* context */
26+void _saslauthd_MD5Init (
27+MD5_CTX *context /* context */
28+)
29 {
30 context->count[0] = context->count[1] = 0;
31
32@@ -114,10 +115,11 @@ MD5_CTX *context; /* context */
33 operation, processing another message block, and updating the context.
34 */
35
36-void _saslauthd_MD5Update (context, input, inputLen)
37-MD5_CTX *context; /* context */
38-unsigned char *input; /* input block */
39-unsigned int inputLen; /* length of input block */
40+void _saslauthd_MD5Update (
41+MD5_CTX *context, /* context */
42+unsigned char *input, /* input block */
43+unsigned int inputLen /* length of input block */
44+)
45 {
46 unsigned int i, index, partLen;
47
48@@ -159,9 +161,10 @@ unsigned int inputLen; /* length of inpu
49 the message digest and zeroizing the context.
50 */
51
52-void _saslauthd_MD5Final (digest, context)
53-unsigned char digest[16]; /* message digest */
54-MD5_CTX *context; /* context */
55+void _saslauthd_MD5Final (
56+unsigned char digest[16], /* message digest */
57+MD5_CTX *context /* context */
58+)
59 {
60 unsigned char bits[8];
61 unsigned int index, padLen;
62@@ -186,9 +189,10 @@ MD5_CTX *context; /* context */
63
64 /* MD5 basic transformation. Transforms state based on block. */
65
66-static void MD5Transform (state, block)
67-UINT4 state[4];
68-unsigned char block[64];
69+static void MD5Transform (
70+UINT4 state[4],
71+unsigned char block[64]
72+)
73 {
74 UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
75
76@@ -281,10 +285,11 @@ unsigned char block[64];
77
78 */
79
80-static void Encode (output, input, len)
81-unsigned char *output;
82-UINT4 *input;
83-unsigned int len;
84+static void Encode (
85+unsigned char *output,
86+UINT4 *input,
87+unsigned int len
88+)
89 {
90 unsigned int i, j;
91
92@@ -301,10 +306,11 @@ unsigned int len;
93
94 */
95
96-static void Decode (output, input, len)
97-UINT4 *output;
98-unsigned char *input;
99-unsigned int len;
100+static void Decode (
101+UINT4 *output,
102+unsigned char *input,
103+unsigned int len
104+)
105 {
106 unsigned int i, j;
107
108@@ -317,10 +323,11 @@ unsigned int len;
109
110 */
111
112-static void MD5_memcpy (output, input, len)
113-POINTER output;
114-POINTER input;
115-unsigned int len;
116+static void MD5_memcpy (
117+POINTER output,
118+POINTER input,
119+unsigned int len
120+)
121 {
122 unsigned int i;
123
124@@ -331,10 +338,11 @@ unsigned int len;
125 /* Note: Replace "for loop" with standard memset if possible.
126 */
127
128-static void MD5_memset (output, value, len)
129-POINTER output;
130-int value;
131-unsigned int len;
132+static void MD5_memset (
133+POINTER output,
134+int value,
135+unsigned int len
136+)
137 {
138 unsigned int i;
139
140@@ -452,12 +460,13 @@ void _saslauthd_hmac_md5_final(unsigned
141 }
142
143
144-void _saslauthd_hmac_md5(text, text_len, key, key_len, digest)
145-const unsigned char* text; /* pointer to data stream */
146-int text_len; /* length of data stream */
147-const unsigned char* key; /* pointer to authentication key */
148-int key_len; /* length of authentication key */
149-unsigned char *digest; /* caller digest to be filled in */
150+void _saslauthd_hmac_md5(
151+const unsigned char* text, /* pointer to data stream */
152+int text_len, /* length of data stream */
153+const unsigned char* key, /* pointer to authentication key */
154+int key_len, /* length of authentication key */
155+unsigned char *digest /* caller digest to be filled in */
156+)
157 {
158 MD5_CTX context;
159
160--- a/lib/md5.c
161+++ b/lib/md5.c
162@@ -98,8 +98,9 @@ Rotation is separate from addition to pr
163 /* MD5 initialization. Begins an MD5 operation, writing a new context.
164 */
165
166-void _sasl_MD5Init (context)
167-MD5_CTX *context; /* context */
168+void _sasl_MD5Init (
169+MD5_CTX *context /* context */
170+)
171 {
172 context->count[0] = context->count[1] = 0;
173
174@@ -114,10 +115,11 @@ MD5_CTX *context; /* context */
175 operation, processing another message block, and updating the context.
176 */
177
178-void _sasl_MD5Update (context, input, inputLen)
179-MD5_CTX *context; /* context */
180-const unsigned char *input; /* input block */
181-unsigned int inputLen; /* length of input block */
182+void _sasl_MD5Update (
183+MD5_CTX *context, /* context */
184+const unsigned char *input, /* input block */
185+unsigned int inputLen /* length of input block */
186+)
187 {
188 unsigned int i, index, partLen;
189
190@@ -159,9 +161,10 @@ unsigned int inputLen; /* length of inpu
191 the message digest and zeroizing the context.
192 */
193
194-void _sasl_MD5Final (digest, context)
195-unsigned char digest[16]; /* message digest */
196-MD5_CTX *context; /* context */
197+void _sasl_MD5Final (
198+unsigned char digest[16], /* message digest */
199+MD5_CTX *context /* context */
200+)
201 {
202 unsigned char bits[8];
203 unsigned int index, padLen;
204@@ -186,9 +189,10 @@ MD5_CTX *context; /* context */
205
206 /* MD5 basic transformation. Transforms state based on block. */
207
208-static void MD5Transform (state, block)
209-UINT4 state[4];
210-const unsigned char block[64];
211+static void MD5Transform (
212+UINT4 state[4],
213+const unsigned char block[64]
214+)
215 {
216 UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
217
218@@ -281,10 +285,11 @@ const unsigned char block[64];
219
220 */
221
222-static void Encode (output, input, len)
223-unsigned char *output;
224-UINT4 *input;
225-unsigned int len;
226+static void Encode (
227+unsigned char *output,
228+UINT4 *input,
229+unsigned int len
230+)
231 {
232 unsigned int i, j;
233
234@@ -301,10 +306,11 @@ unsigned int len;
235
236 */
237
238-static void Decode (output, input, len)
239-UINT4 *output;
240-const unsigned char *input;
241-unsigned int len;
242+static void Decode (
243+UINT4 *output,
244+const unsigned char *input,
245+unsigned int len
246+)
247 {
248 unsigned int i, j;
249
250@@ -317,10 +323,11 @@ unsigned int len;
251
252 */
253
254-static void MD5_memcpy (output, input, len)
255-POINTER output;
256-POINTER input;
257-unsigned int len;
258+static void MD5_memcpy (
259+POINTER output,
260+POINTER input,
261+unsigned int len
262+)
263 {
264 unsigned int i;
265
266@@ -331,10 +338,11 @@ unsigned int len;
267 /* Note: Replace "for loop" with standard memset if possible.
268 */
269
270-static void MD5_memset (output, value, len)
271-POINTER output;
272-int value;
273-unsigned int len;
274+static void MD5_memset (
275+POINTER output,
276+int value,
277+unsigned int len
278+)
279 {
280 unsigned int i;
281
282@@ -452,12 +460,13 @@ void _sasl_hmac_md5_final(unsigned char
283 }
284
285
286-void _sasl_hmac_md5(text, text_len, key, key_len, digest)
287-const unsigned char* text; /* pointer to data stream */
288-int text_len; /* length of data stream */
289-const unsigned char* key; /* pointer to authentication key */
290-int key_len; /* length of authentication key */
291-unsigned char *digest; /* caller digest to be filled in */
292+void _sasl_hmac_md5(
293+const unsigned char* text, /* pointer to data stream */
294+int text_len, /* length of data stream */
295+const unsigned char* key, /* pointer to authentication key */
296+int key_len, /* length of authentication key */
297+unsigned char *digest /* caller digest to be filled in */
298+)
299 {
300 MD5_CTX context;
301
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
index bd15b0bda8..26ec8a71a1 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
@@ -20,6 +20,7 @@ SRC_URI = " \
20 file://0001-configure-prototypes.patch \ 20 file://0001-configure-prototypes.patch \
21 file://0002-Fix-incompatible-pointer-types-error-with-gcc-15.patch \ 21 file://0002-Fix-incompatible-pointer-types-error-with-gcc-15.patch \
22 file://0003-Add-compatibility-for-gcc-15-869.patch \ 22 file://0003-Add-compatibility-for-gcc-15-869.patch \
23 file://0001-style-convert-K-R-function-definitions-to-ANSI-C-sty.patch \
23" 24"
24 25
25UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives" 26UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives"
diff --git a/meta-oe/recipes-security/audit/audit/0001-m4-update-ax_prog_cc_for_build.m4-to-latest.patch b/meta-oe/recipes-security/audit/audit/0001-m4-update-ax_prog_cc_for_build.m4-to-latest.patch
new file mode 100644
index 0000000000..cf322b8e1a
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/0001-m4-update-ax_prog_cc_for_build.m4-to-latest.patch
@@ -0,0 +1,196 @@
1From 3da79b330527b5f9d6e6243c8ba12968810965a3 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <martin.jansa@gmail.com>
3Date: Fri, 10 Apr 2026 14:53:41 +0200
4Subject: [PATCH] m4: update ax_prog_cc_for_build.m4 to latest
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9After the autoconf update to 2.73 this was using -std=gnu23
10even on hosts with gcc-13 which doesn't support it:
11
12ac_cv_prog_ac_ct_CC_FOR_BUILD='gcc '
13ac_cv_prog_cc_c23=-std=gnu23
14ac_cv_prog_cc_g=yes
15ac_cv_prog_cc_stdc=-std=gnu23
16
17Leading to:
18gcc -std=gnu23 -DHAVE_CONFIG_H -I. -I../../sources/audit-4.1.4/lib -I.. -I. -I../../sources/audit-4.1.4 -I../../sources/audit-4.1.4/auparse -I../../sources/audit-4.1.4/common -isystem/audit/4.1.4/recipe-sysroot-native/usr/include '-DTABLE_H="fieldtab.h"' -isystem/audit/4.1.4/recipe-sysroot-native/usr/include -O2 -pipe -c -o gen_fieldtabs_h-gen_tables.o `test -f 'gen_tables.c' || echo '../../sources/audit-4.1.4/lib/'`gen_tables.c
19gcc: error: unrecognized command-line option ‘-std=gnu23’; did you mean ‘-std=gnu2x’?
20
21Needs the updated ac_cv_prog_cc_c23 from:
22https://github.com/autoconf-archive/autoconf-archive/commit/8a970ce96721f516fef4226e5eca8da341159765
23
24Upstream-Status: Submitted [https://github.com/linux-audit/audit-userspace/pull/524]
25Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
26---
27 m4/ax_prog_cc_for_build.m4 | 100 +++++++++++++++++++++++++++----------
28 1 file changed, 75 insertions(+), 25 deletions(-)
29
30diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
31index 77fd346a..4d1de993 100644
32--- a/m4/ax_prog_cc_for_build.m4
33+++ b/m4/ax_prog_cc_for_build.m4
34@@ -1,5 +1,5 @@
35 # ===========================================================================
36-# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
37+# https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
38 # ===========================================================================
39 #
40 # SYNOPSIS
41@@ -32,28 +32,32 @@
42 # and this notice are preserved. This file is offered as-is, without any
43 # warranty.
44
45-#serial 8
46+#serial 26
47
48 AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
49 AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
50 AC_REQUIRE([AC_PROG_CC])dnl
51 AC_REQUIRE([AC_PROG_CPP])dnl
52-AC_REQUIRE([AC_EXEEXT])dnl
53-AC_REQUIRE([AC_CANONICAL_HOST])dnl
54+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
55
56 dnl Use the standard macros, but make them use other variable names
57 dnl
58 pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
59 pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
60+pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
61+pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl
62+pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl
63+pushdef([ac_cv_prog_cc_c23], ac_cv_build_prog_cc_c23)dnl
64+pushdef([ac_cv_prog_cc_stdc], ac_cv_build_prog_cc_stdc)dnl
65 pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
66 pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
67 pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
68-pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
69-pushdef([ac_cv_objext], ac_cv_build_objext)dnl
70+pushdef([ac_prog_cc_stdc], ac_build_prog_cc_stdc)dnl
71 pushdef([ac_exeext], ac_build_exeext)dnl
72 pushdef([ac_objext], ac_build_objext)dnl
73 pushdef([CC], CC_FOR_BUILD)dnl
74 pushdef([CPP], CPP_FOR_BUILD)dnl
75+pushdef([GCC], GCC_FOR_BUILD)dnl
76 pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
77 pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
78 pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
79@@ -67,27 +71,58 @@ pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
80 pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
81 pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
82 pushdef([ac_cv_host_os], ac_cv_build_os)dnl
83-pushdef([ac_cpp], ac_build_cpp)dnl
84-pushdef([ac_compile], ac_build_compile)dnl
85-pushdef([ac_link], ac_build_link)dnl
86+pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
87+pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl
88+pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl
89+pushdef([cross_compiling], cross_compiling_build)dnl
90+dnl
91+dnl These variables are problematic to rename by M4 macros, so we save
92+dnl their values in alternative names, and restore the values later.
93+dnl
94+dnl _AC_COMPILER_EXEEXT and _AC_COMPILER_OBJEXT internally call
95+dnl AC_SUBST which prevents the renaming of EXEEXT and OBJEXT
96+dnl variables. It's not a good idea to rename ac_cv_exeext and
97+dnl ac_cv_objext either as they're related.
98+dnl Renaming ac_exeext and ac_objext is safe though.
99+dnl
100+ac_cv_host_exeext=$ac_cv_exeext
101+AS_VAR_SET_IF([ac_cv_build_exeext],
102+ [ac_cv_exeext=$ac_cv_build_exeext],
103+ [AS_UNSET([ac_cv_exeext])])
104+ac_cv_host_objext=$ac_cv_objext
105+AS_VAR_SET_IF([ac_cv_build_objext],
106+ [ac_cv_objext=$ac_cv_build_objext],
107+ [AS_UNSET([ac_cv_objext])])
108+dnl
109+dnl ac_cv_c_compiler_gnu is used in _AC_LANG_COMPILER_GNU (called by
110+dnl AC_PROG_CC) indirectly.
111+dnl
112+ac_cv_host_c_compiler_gnu=$ac_cv_c_compiler_gnu
113+AS_VAR_SET_IF([ac_cv_build_c_compiler_gnu],
114+ [ac_cv_c_compiler_gnu=$ac_cv_build_c_compiler_gnu],
115+ [AS_UNSET([ac_cv_c_compiler_gnu])])
116+
117+cross_compiling_build=no
118
119-save_cross_compiling=$cross_compiling
120-save_ac_tool_prefix=$ac_tool_prefix
121-cross_compiling=no
122-ac_tool_prefix=
123+ac_build_tool_prefix=
124+AS_IF([test -n "$build"], [ac_build_tool_prefix="$build-"],
125+ [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
126
127+AC_LANG_PUSH([C])
128 AC_PROG_CC
129+_AC_COMPILER_EXEEXT
130+_AC_COMPILER_OBJEXT
131 AC_PROG_CPP
132-AC_EXEEXT
133
134-ac_tool_prefix=$save_ac_tool_prefix
135-cross_compiling=$save_cross_compiling
136+BUILD_EXEEXT=$ac_cv_exeext
137+BUILD_OBJEXT=$ac_cv_objext
138
139 dnl Restore the old definitions
140 dnl
141-popdef([ac_link])dnl
142-popdef([ac_compile])dnl
143-popdef([ac_cpp])dnl
144+popdef([cross_compiling])dnl
145+popdef([am_cv_prog_cc_c_o])dnl
146+popdef([am_cv_CC_dependencies_compiler_type])dnl
147+popdef([ac_tool_prefix])dnl
148 popdef([ac_cv_host_os])dnl
149 popdef([ac_cv_host_vendor])dnl
150 popdef([ac_cv_host_cpu])dnl
151@@ -101,24 +136,39 @@ popdef([host])dnl
152 popdef([LDFLAGS])dnl
153 popdef([CPPFLAGS])dnl
154 popdef([CFLAGS])dnl
155+popdef([GCC])dnl
156 popdef([CPP])dnl
157 popdef([CC])dnl
158 popdef([ac_objext])dnl
159 popdef([ac_exeext])dnl
160-popdef([ac_cv_objext])dnl
161-popdef([ac_cv_exeext])dnl
162+popdef([ac_prog_cc_stdc])dnl
163 popdef([ac_cv_prog_cc_g])dnl
164 popdef([ac_cv_prog_cc_cross])dnl
165 popdef([ac_cv_prog_cc_works])dnl
166+popdef([ac_cv_prog_cc_stdc])dnl
167+popdef([ac_cv_prog_cc_c23])dnl
168+popdef([ac_cv_prog_cc_c11])dnl
169+popdef([ac_cv_prog_cc_c99])dnl
170+popdef([ac_cv_prog_cc_c89])dnl
171 popdef([ac_cv_prog_gcc])dnl
172 popdef([ac_cv_prog_CPP])dnl
173+dnl
174+ac_cv_exeext=$ac_cv_host_exeext
175+EXEEXT=$ac_cv_host_exeext
176+ac_cv_objext=$ac_cv_host_objext
177+OBJEXT=$ac_cv_host_objext
178+ac_cv_c_compiler_gnu=$ac_cv_host_c_compiler_gnu
179+ac_compiler_gnu=$ac_cv_host_c_compiler_gnu
180+
181+dnl restore global variables ac_ext, ac_cpp, ac_compile,
182+dnl ac_link, ac_compiler_gnu (dependent on the current
183+dnl language after popping):
184+AC_LANG_POP([C])
185
186 dnl Finally, set Makefile variables
187 dnl
188-BUILD_EXEEXT=$ac_build_exeext
189-BUILD_OBJEXT=$ac_build_objext
190-AC_SUBST(BUILD_EXEEXT)dnl
191-AC_SUBST(BUILD_OBJEXT)dnl
192+AC_SUBST([BUILD_EXEEXT])dnl
193+AC_SUBST([BUILD_OBJEXT])dnl
194 AC_SUBST([CFLAGS_FOR_BUILD])dnl
195 AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
196 AC_SUBST([LDFLAGS_FOR_BUILD])dnl
diff --git a/meta-oe/recipes-security/audit/audit_4.1.4.bb b/meta-oe/recipes-security/audit/audit_4.1.4.bb
index 05d6f1d277..e349ee76d0 100644
--- a/meta-oe/recipes-security/audit/audit_4.1.4.bb
+++ b/meta-oe/recipes-security/audit/audit_4.1.4.bb
@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
9 9
10SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https;tag=v${PV} \ 10SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https;tag=v${PV} \
11 file://0001-Fixed-swig-host-contamination-issue.patch \ 11 file://0001-Fixed-swig-host-contamination-issue.patch \
12 file://0001-m4-update-ax_prog_cc_for_build.m4-to-latest.patch \
12 file://auditd \ 13 file://auditd \
13 " 14 "
14 15
diff --git a/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb b/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
index 86f45656f6..2e7503cd42 100644
--- a/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
+++ b/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
@@ -44,6 +44,8 @@ EXTRA_OEMAKE = "'CFLAGS=${CFLAGS} -Wall' \
44 NO_GLIBC_KEYERR=1 \ 44 NO_GLIBC_KEYERR=1 \
45 " 45 "
46 46
47LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}"
48
47do_install () { 49do_install () {
48 oe_runmake DESTDIR=${D} install 50 oe_runmake DESTDIR=${D} install
49} 51}
diff --git a/meta-oe/recipes-security/spdm-emu/spdm-emu_git.bb b/meta-oe/recipes-security/spdm-emu/spdm-emu_git.bb
index ae196946d9..662519d5b2 100644
--- a/meta-oe/recipes-security/spdm-emu/spdm-emu_git.bb
+++ b/meta-oe/recipes-security/spdm-emu/spdm-emu_git.bb
@@ -34,7 +34,7 @@ def get_spdm_multiarch(d):
34 if target_arch in multiarch_options: 34 if target_arch in multiarch_options:
35 return multiarch_options[target_arch] 35 return multiarch_options[target_arch]
36 36
37 bb.fatal("unsupported architecture '%s'" % target_arch) 37 bb.parse.SkipRecipe("unsupported architecture '%s'" % target_arch)
38 38
39EXTRA_OECMAKE += "\ 39EXTRA_OECMAKE += "\
40 -DARCH=${@get_spdm_multiarch(d)} \ 40 -DARCH=${@get_spdm_multiarch(d)} \
diff --git a/meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_git.bb b/meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_26.26.0404682.bb
index e239770584..454e702e66 100644
--- a/meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_git.bb
+++ b/meta-oe/recipes-security/spectre-meltdown-checker/spectre-meltdown-checker_26.26.0404682.bb
@@ -8,10 +8,8 @@ BUGTRACKER = "https://github.com/speed47/spectre-meltdown-checker/issues"
8LICENSE = "GPL-3.0-only" 8LICENSE = "GPL-3.0-only"
9LIC_FILES_CHKSUM = "file://spectre-meltdown-checker.sh;beginline=2;endline=2;md5=3ae5399e70af7be9b93f72568069e2f4" 9LIC_FILES_CHKSUM = "file://spectre-meltdown-checker.sh;beginline=2;endline=2;md5=3ae5399e70af7be9b93f72568069e2f4"
10 10
11PV = "0.46+git" 11SRC_URI = "git://github.com/speed47/spectre-meltdown-checker;protocol=https;branch=master;tag=v${PV}"
12 12SRCREV = "8a6f9d5d638c601d2a875669015a6cb217e40f49"
13SRC_URI = "git://github.com/speed47/spectre-meltdown-checker;protocol=https;branch=master"
14SRCREV = "a20641fbad57f37da6093203484ca28769e5bb64"
15 13
16# binutils: readelf,objdump might be used for deeper analysis 14# binutils: readelf,objdump might be used for deeper analysis
17# coreutils: dd with iflag=skip_bytes oflag=seek_bytes in some cases 15# coreutils: dd with iflag=skip_bytes oflag=seek_bytes in some cases
diff --git a/meta-oe/recipes-support/atop/atop_2.12.1.bb b/meta-oe/recipes-support/atop/atop_2.12.1.bb
index 4ca74edbaf..d40b95ce6c 100644
--- a/meta-oe/recipes-support/atop/atop_2.12.1.bb
+++ b/meta-oe/recipes-support/atop/atop_2.12.1.bb
@@ -7,7 +7,7 @@ etc. At regular intervals, it shows system-level activity related to the CPU, \
7memory, swap, disks (including LVM) and network layers, and for every process \ 7memory, swap, disks (including LVM) and network layers, and for every process \
8(and thread) it shows e.g. the CPU utilization, memory growth, disk \ 8(and thread) it shows e.g. the CPU utilization, memory growth, disk \
9utilization, priority, username, state, and exit code." 9utilization, priority, username, state, and exit code."
10HOMEPAGE = "http://www.atoptool.nl" 10HOMEPAGE = "https://www.atoptool.nl"
11SECTION = "console/utils" 11SECTION = "console/utils"
12 12
13LICENSE = "GPL-2.0-only" 13LICENSE = "GPL-2.0-only"
@@ -37,7 +37,7 @@ do_compile() {
37do_install() { 37do_install() {
38 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 38 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
39 make DESTDIR=${D} VERS=${PV} SYSDPATH=${systemd_system_unitdir} \ 39 make DESTDIR=${D} VERS=${PV} SYSDPATH=${systemd_system_unitdir} \
40 PMPATHD=${systemd_unitdir}/system-sleep install 40 PMPATHD=${systemd_unitdir}/system-sleep SBINPATH=${sbindir} install
41 install -d ${D}${sysconfdir}/tmpfiles.d 41 install -d ${D}${sysconfdir}/tmpfiles.d
42 install -m 644 ${UNPACKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf 42 install -m 644 ${UNPACKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
43 rm -f ${D}${systemd_system_unitdir}/atopacct.service 43 rm -f ${D}${systemd_system_unitdir}/atopacct.service
@@ -51,16 +51,19 @@ do_install() {
51 # /var/log/atop will be created in runtime 51 # /var/log/atop will be created in runtime
52 rm -rf ${D}${localstatedir}/log 52 rm -rf ${D}${localstatedir}/log
53 rmdir --ignore-fail-on-non-empty ${D}${localstatedir} 53 rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
54
55 # remove atopacct related files
56 rm -rf ${D}${sbindir} ${D}${mandir}/man8
57} 54}
58 55
59inherit systemd 56inherit systemd
60 57
58PACKAGES =+ "${PN}-acctd ${PN}-gpud"
59
61SYSTEMD_SERVICE:${PN} = "atop.service atopgpu.service atop-rotate.service" 60SYSTEMD_SERVICE:${PN} = "atop.service atopgpu.service atop-rotate.service"
62SYSTEMD_AUTO_ENABLE = "disable" 61SYSTEMD_AUTO_ENABLE = "disable"
63 62
64FILES:${PN} += "${systemd_unitdir}/system-sleep ${systemd_system_unitdir}/atop-rotate.timer" 63FILES:${PN} += "${systemd_unitdir}/system-sleep ${systemd_system_unitdir}/atop-rotate.timer"
64FILES:${PN}-acctd += "${sbindir}/atopacctd ${mandir}/man8/atopacctd.8"
65FILES:${PN}-gpud += "${sbindir}/atopgpud ${mandir}/man8/atopgpud.8"
65 66
66RDEPENDS:${PN} = "procps" 67RDEPENDS:${PN} = "procps"
68RDEPENDS:${PN}-gpud = "python3-core"
69RRECOMMENDS:${PN} = "${PN}-acctd ${PN}-gpud"
diff --git a/meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.3.bb b/meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.4.bb
index e08525b1c9..657ba60e1d 100644
--- a/meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.3.bb
+++ b/meta-oe/recipes-support/bmap-writer/bmap-writer_1.0.4.bb
@@ -9,11 +9,14 @@ LICENSE = "GPL-3.0-only"
9LIC_FILES_CHKSUM = "file://LICENSE;md5=e49f4652534af377a713df3d9dec60cb" 9LIC_FILES_CHKSUM = "file://LICENSE;md5=e49f4652534af377a713df3d9dec60cb"
10 10
11SRC_URI = "git://github.com/embetrix/${BPN};branch=master;protocol=https;tag=${PV}" 11SRC_URI = "git://github.com/embetrix/${BPN};branch=master;protocol=https;tag=${PV}"
12SRCREV = "991e2c4264b843f61e502712f497103472a1b6e7" 12SRCREV = "52919b145d04953a91cf846f3db3d8cee8d989ac"
13 13
14DEPENDS = "libtinyxml2 libarchive" 14DEPENDS = "libtinyxml2 libarchive"
15inherit cmake pkgconfig 15inherit cmake pkgconfig
16 16
17PACKAGECONFIG ?= ""
18PACKAGECONFIG[libkcapi] = "-DUSE_KERNEL_CRYPTO_API=ON, -DUSE_KERNEL_CRYPTO_API=OFF, libkcapi"
19
17FILES:${PN} = "${bindir}" 20FILES:${PN} = "${bindir}"
18 21
19BBCLASSEXTEND = "native nativesdk" 22BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb
index 0a8f237180..5368bdeeb4 100644
--- a/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb
+++ b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb
@@ -3,12 +3,11 @@ HOMEPAGE = "http://ceres-solver.org/"
3LICENSE = "BSD-3-Clause" 3LICENSE = "BSD-3-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=3585a26c9cd9ec0cb36a7d65542878ca" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=3585a26c9cd9ec0cb36a7d65542878ca"
5 5
6DEPENDS = "libeigen glog" 6DEPENDS = "libeigen"
7 7
8SRC_URI = "git://github.com/ceres-solver/ceres-solver.git;branch=master;protocol=https" 8SRC_URI = "git://github.com/ceres-solver/ceres-solver.git;branch=master;protocol=https"
9SRCREV = "85331393dc0dff09f6fb9903ab0c4bfa3e134b01" 9SRCREV = "85331393dc0dff09f6fb9903ab0c4bfa3e134b01"
10 10
11
12inherit cmake 11inherit cmake
13 12
14do_configure:prepend() { 13do_configure:prepend() {
@@ -19,6 +18,14 @@ do_configure:prepend() {
19 touch ${S}/.git/hooks/commit-msg 2>/dev/null || : 18 touch ${S}/.git/hooks/commit-msg 2>/dev/null || :
20} 19}
21 20
21EXTRA_OECMAKE += " \
22 -DBUILD_BENCHMARKS=OFF \
23 -DBUILD_EXAMPLES=OFF \
24 -DBUILD_TESTING=OFF \
25 -DGFLAGS=OFF \
26 -DUSE_CUDA=OFF \
27"
28
22# We don't want path to eigen3 in ceres-solver RSS to be 29# We don't want path to eigen3 in ceres-solver RSS to be
23# used by components which use CeresConfig.cmake from their 30# used by components which use CeresConfig.cmake from their
24# own RSS 31# own RSS
@@ -27,11 +34,12 @@ do_configure:prepend() {
27# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(glog_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/lib/cmake/glog) 34# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(glog_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/lib/cmake/glog)
28SSTATE_SCAN_FILES += "*.cmake" 35SSTATE_SCAN_FILES += "*.cmake"
29 36
30PACKAGECONFIG ??= "" 37PACKAGECONFIG ??= "glog"
31 38
32# suitesparse* recipes will be in meta-ros layer 39# suitesparse* recipes will be in meta-ros layer
33PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-metis suitesparse-spqr" 40PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-metis suitesparse-spqr"
34PACKAGECONFIG[cxsparse] = "-DCXSPARSE=ON,-DCXSPARSE=OFF,suitesparse-cxsparse" 41PACKAGECONFIG[cxsparse] = "-DCXSPARSE=ON,-DCXSPARSE=OFF,suitesparse-cxsparse"
42PACKAGECONFIG[glog] = "-DMINIGLOG=OFF,-DMINIGLOG=ON,glog"
35PACKAGECONFIG[lapack] = "-DLAPACK=ON,-DLAPACK=OFF,lapack" 43PACKAGECONFIG[lapack] = "-DLAPACK=ON,-DLAPACK=OFF,lapack"
36 44
37# Only a static library and headers are created 45# Only a static library and headers are created
diff --git a/meta-oe/recipes-support/composefs/composefs/0001-mkcomposefs-use-const-char-for-memchr-return-values.patch b/meta-oe/recipes-support/composefs/composefs/0001-mkcomposefs-use-const-char-for-memchr-return-values.patch
new file mode 100644
index 0000000000..9c45d4fcc0
--- /dev/null
+++ b/meta-oe/recipes-support/composefs/composefs/0001-mkcomposefs-use-const-char-for-memchr-return-values.patch
@@ -0,0 +1,45 @@
1From 9d82303c7a3a780d481469cd8eafa016dcbff86f Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Thu, 16 Apr 2026 08:25:28 -0700
4Subject: [PATCH] mkcomposefs: use const char* for memchr return values
5
6memchr returns void*, which when assigned to char* discards the
7const qualifier of the input pointer. Cast to const char* to
8preserve const'ness.
9
10Fixes build with clang-22/glibc-2.43
11
12tools/mkcomposefs.c
13../sources/composefs-1.0.8/tools/mkcomposefs.c:413:8: error: initializing 'char *' with an expression of type 'const void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
14 413 | char *embedded_nul_offset = memchr(line, 0, line_len);
15 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
161 error generated.
17
18Upstream-Status: Submitted [https://github.com/composefs/composefs/pull/435]
19Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
20---
21 tools/mkcomposefs.c | 4 ++--
22 1 file changed, 2 insertions(+), 2 deletions(-)
23
24diff --git a/tools/mkcomposefs.c b/tools/mkcomposefs.c
25index 13b505d..e14d8d0 100644
26--- a/tools/mkcomposefs.c
27+++ b/tools/mkcomposefs.c
28@@ -63,7 +63,7 @@ static __attribute__((format(printf, 1, 2))) char *make_error(const char *fmt, .
29 static size_t split_at(const char **start, size_t *length, char split_char,
30 bool *partial)
31 {
32- char *end = memchr(*start, split_char, *length);
33+ const char *end = (const char*)memchr(*start, split_char, *length);
34 if (end == NULL) {
35 size_t part_len = *length;
36 *start = *start + *length;
37@@ -410,7 +410,7 @@ static char *tree_from_dump_line(dump_info *info, const char *line,
38 * We didn't document support for embedded NULs, and it only introduces
39 * ambiguity in parsing, so let's just reject this early on.
40 */
41- char *embedded_nul_offset = memchr(line, 0, line_len);
42+ const char *embedded_nul_offset = (const char*)memchr(line, 0, line_len);
43 if (embedded_nul_offset != NULL) {
44 size_t off = embedded_nul_offset - line;
45 return make_error("Invalid embedded NUL character at position %lld",
diff --git a/meta-oe/recipes-support/composefs/composefs_1.0.8.bb b/meta-oe/recipes-support/composefs/composefs_1.0.8.bb
index f2bae91f44..3450f9a339 100644
--- a/meta-oe/recipes-support/composefs/composefs_1.0.8.bb
+++ b/meta-oe/recipes-support/composefs/composefs_1.0.8.bb
@@ -14,8 +14,9 @@ LIC_FILES_CHKSUM = "\
14" 14"
15 15
16SRCREV = "858ce1b38e1534c2602eb431124b5dca706bc746" 16SRCREV = "858ce1b38e1534c2602eb431124b5dca706bc746"
17SRC_URI = "git://github.com/containers/composefs.git;protocol=https;branch=main" 17SRC_URI = "git://github.com/containers/composefs.git;protocol=https;branch=main;tag=v${PV} \
18 18 file://0001-mkcomposefs-use-const-char-for-memchr-return-values.patch \
19 "
19 20
20inherit meson 21inherit meson
21 22
diff --git a/meta-oe/recipes-support/crow/crow_1.3.2.bb b/meta-oe/recipes-support/crow/crow_1.3.2.bb
new file mode 100644
index 0000000000..09970fcfc2
--- /dev/null
+++ b/meta-oe/recipes-support/crow/crow_1.3.2.bb
@@ -0,0 +1,20 @@
1SUMMARY = "A Fast and Easy to use microframework for the web"
2HOMEPAGE = "https://crowcpp.org/"
3DESCRIPTION = "Crow is a C++ framework for creating HTTP or Websocket web services. \
4It uses routing similar to Python's Flask which makes it easy to use. \
5It is also extremely fast, beating multiple existing C++ frameworks as well as non-C++ frameworks."
6SECTION = "libs"
7LICENSE = "BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=e08502e395a6f7c037ddfe7d2915f58e"
9
10SRC_URI = "git://github.com/CrowCpp/Crow.git;protocol=https;branch=v1.3;tag=v${PV}"
11SRCREV = "f8c060c51feeca2c65828fb6f538603db4392d55"
12
13inherit cmake
14
15DEPENDS = "asio"
16
17EXTRA_OECMAKE = "\
18 -DCROW_BUILD_EXAMPLES=OFF \
19 -DCROW_BUILD_TESTS=OFF \
20"
diff --git a/meta-oe/recipes-support/enca/enca_1.19.bb b/meta-oe/recipes-support/enca/enca_1.19.bb
index 61da50ba52..395d7abe70 100644
--- a/meta-oe/recipes-support/enca/enca_1.19.bb
+++ b/meta-oe/recipes-support/enca/enca_1.19.bb
@@ -17,4 +17,6 @@ SRC_URI[sha256sum] = "4c305cc59f3e57f2cfc150a6ac511690f43633595760e1cb266bf23362
17 17
18inherit autotools 18inherit autotools
19 19
20CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
21
20EXTRA_OECONF += "MKTEMP_PROG=mktemp" 22EXTRA_OECONF += "MKTEMP_PROG=mktemp"
diff --git a/meta-oe/recipes-support/fastfetch/fastfetch_2.61.0.bb b/meta-oe/recipes-support/fastfetch/fastfetch_2.61.0.bb
index 8d2daeb24f..8db0b608f1 100644
--- a/meta-oe/recipes-support/fastfetch/fastfetch_2.61.0.bb
+++ b/meta-oe/recipes-support/fastfetch/fastfetch_2.61.0.bb
@@ -17,7 +17,6 @@ inherit cmake pkgconfig
17 17
18EXTRA_OECMAKE += "\ 18EXTRA_OECMAKE += "\
19 -DENABLE_SYSTEM_YYJSON=ON \ 19 -DENABLE_SYSTEM_YYJSON=ON \
20 -DENABLE_DIRECTX_HEADERS=OFF \
21" 20"
22 21
23PACKAGECONFIG ??= "\ 22PACKAGECONFIG ??= "\
diff --git a/meta-oe/recipes-support/freeipmi/freeipmi_1.6.17.bb b/meta-oe/recipes-support/freeipmi/freeipmi_1.6.17.bb
index 50a1877c0e..7970e0f563 100644
--- a/meta-oe/recipes-support/freeipmi/freeipmi_1.6.17.bb
+++ b/meta-oe/recipes-support/freeipmi/freeipmi_1.6.17.bb
@@ -23,3 +23,4 @@ inherit pkgconfig autotools
23 23
24EXTRA_OECONF = "--without-random-device" 24EXTRA_OECONF = "--without-random-device"
25 25
26CVE_STATUS[CVE-2026-33554] = "fixed-version: fixed since 1.6.17"
diff --git a/meta-oe/recipes-support/gd/gd_2.3.3.bb b/meta-oe/recipes-support/gd/gd_2.3.3.bb
index 0d7a6d34f9..062c4b4a8f 100644
--- a/meta-oe/recipes-support/gd/gd_2.3.3.bb
+++ b/meta-oe/recipes-support/gd/gd_2.3.3.bb
@@ -23,14 +23,23 @@ SRCREV = "b5319a41286107b53daa0e08e402aa1819764bdc"
23 23
24inherit autotools binconfig gettext pkgconfig 24inherit autotools binconfig gettext pkgconfig
25 25
26EXTRA_OECONF += " --disable-rpath \ 26PACKAGECONFIG ?= "jpeg freetype"
27 --with-jpeg=${STAGING_LIBDIR}/.. \ 27
28 --with-freetype=yes \ 28PACKAGECONFIG[avif] = "--with-avif,--without-avif"
29 --without-fontconfig \ 29PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig"
30 --without-webp \ 30PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype"
31 --without-xpm \ 31PACKAGECONFIG[heif] = "--with-heif,--without-heif"
32 --without-x \ 32PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg"
33 " 33PACKAGECONFIG[liq] = "--with-liq,--without-liq"
34PACKAGECONFIG[png] = "--with-png,--without-png"
35PACKAGECONFIG[raqm] = "--with-raqm,--without-raqm,libraqm"
36PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff"
37PACKAGECONFIG[webp] = "--with-webp,--without-webp"
38PACKAGECONFIG[x] = "--with-x,--without-x"
39PACKAGECONFIG[xpm] = "--with-xpm,--without-xpm"
40PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib"
41
42EXTRA_OECONF += "--disable-rpath"
34 43
35EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"' 44EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
36 45
diff --git a/meta-oe/recipes-support/glaze/glaze_7.2.2.bb b/meta-oe/recipes-support/glaze/glaze_7.3.3.bb
index 807f8811d1..e733d166b2 100644
--- a/meta-oe/recipes-support/glaze/glaze_7.2.2.bb
+++ b/meta-oe/recipes-support/glaze/glaze_7.3.3.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4d29875d83fbbf50485c846dbbbed8"
5 5
6SRC_URI = "git://github.com/stephenberry/glaze;protocol=https;branch=main;tag=v${PV}" 6SRC_URI = "git://github.com/stephenberry/glaze;protocol=https;branch=main;tag=v${PV}"
7 7
8SRCREV = "959c50207aa552a8de5aabfcbb6801d08fa6fb9d" 8SRCREV = "dbf6caec935b768546587a413e45d033480c4483"
9 9
10inherit cmake 10inherit cmake
11 11
diff --git a/meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.0.bb b/meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.1.bb
index 2bfe9b0e77..46a0562d2c 100644
--- a/meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.0.bb
+++ b/meta-oe/recipes-support/gtk-layer-shell/gtk-layer-shell_0.10.1.bb
@@ -18,7 +18,7 @@ DEPENDS += " \
18SRC_URI = " \ 18SRC_URI = " \
19 git://github.com/wmww/gtk-layer-shell.git;protocol=https;branch=master;tag=v${PV} \ 19 git://github.com/wmww/gtk-layer-shell.git;protocol=https;branch=master;tag=v${PV} \
20" 20"
21SRCREV = "3964966d72ea3359f4ff748081493e979c080b7e" 21SRCREV = "fd88ba666c18ff65ea786bf7b2e270d840030817"
22 22
23inherit meson pkgconfig features_check gobject-introspection vala 23inherit meson pkgconfig features_check gobject-introspection vala
24 24
diff --git a/meta-oe/recipes-support/htop/files/0001-configure.ac-Remove-usr-include-libnl3.patch b/meta-oe/recipes-support/htop/files/0001-configure.ac-Remove-usr-include-libnl3.patch
index f00f3ac4db..c1f763ce17 100644
--- a/meta-oe/recipes-support/htop/files/0001-configure.ac-Remove-usr-include-libnl3.patch
+++ b/meta-oe/recipes-support/htop/files/0001-configure.ac-Remove-usr-include-libnl3.patch
@@ -1,6 +1,6 @@
1From 87d66b3b60176197e785670214b0bbc5bedd6552 Mon Sep 17 00:00:00 2001 1From 652b208b8c3038934fb55169f44068bbdf399b69 Mon Sep 17 00:00:00 2001
2From: Leon Anavi <leon.anavi@konsulko.com> 2From: Liu Yiding <liuyd.fnst@fujitsu.com>
3Date: Mon, 8 Dec 2025 11:06:01 +0000 3Date: Wed, 15 Apr 2026 01:34:56 +0000
4Subject: [PATCH] configure.ac: Remove /usr/include/libnl3 4Subject: [PATCH] configure.ac: Remove /usr/include/libnl3
5 5
6Fixes: 6Fixes:
@@ -11,40 +11,35 @@ netlink/attr.h, netlink/handlers.h, netlink/msg.h
11Upstream-Status: Inappropriate [OE-specific] 11Upstream-Status: Inappropriate [OE-specific]
12 12
13Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> 13Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
14
15Update for 3.5.0.
16Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
14--- 17---
15 configure.ac | 6 +++--- 18 configure.ac | 4 ++--
16 1 file changed, 3 insertions(+), 3 deletions(-) 19 1 file changed, 2 insertions(+), 2 deletions(-)
17 20
18diff --git a/configure.ac b/configure.ac 21diff --git a/configure.ac b/configure.ac
19index 9f2f46b3..f3906692 100644 22index 2d174d73..ee8b29ca 100644
20--- a/configure.ac 23--- a/configure.ac
21+++ b/configure.ac 24+++ b/configure.ac
22@@ -980,14 +980,14 @@ case "$enable_delayacct" in 25@@ -1638,7 +1638,7 @@ case "$enable_delayacct" in
23 enable_delayacct=no 26
24 else 27 htop_save_CFLAGS=$CFLAGS
25 old_CFLAGS="$CFLAGS" 28 # New include path searched after what user has specified
26- CFLAGS="$CFLAGS -I/usr/include/libnl3" 29- CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
27+ CFLAGS="$CFLAGS"
28 AC_CHECK_HEADERS([netlink/attr.h netlink/handlers.h netlink/msg.h], [enable_delayacct=yes], [enable_delayacct=no])
29 CFLAGS="$old_CFLAGS"
30 fi
31 ;;
32 yes)
33 old_CFLAGS="$CFLAGS"
34- CFLAGS="$CFLAGS -I/usr/include/libnl3"
35+ CFLAGS="$CFLAGS" 30+ CFLAGS="$CFLAGS"
36 AC_CHECK_HEADERS([netlink/attr.h netlink/handlers.h netlink/msg.h], [], [AC_MSG_ERROR([can not find required header files netlink/attr.h, netlink/handlers.h, netlink/msg.h])]) 31 AC_CHECK_HEADERS(
37 CFLAGS="$old_CFLAGS" 32 [netlink/attr.h netlink/handlers.h netlink/msg.h],
38 ;; 33 [],
39@@ -997,7 +997,7 @@ case "$enable_delayacct" in 34@@ -1681,7 +1681,7 @@ case "$enable_delayacct" in
40 esac 35 esac
41 if test "$enable_delayacct" = yes; then 36 if test "$enable_delayacct" = yes; then
42 AC_DEFINE([HAVE_DELAYACCT], [1], [Define if delay accounting support should be enabled.]) 37 AC_DEFINE([HAVE_DELAYACCT], [1], [Define if delay accounting support should be enabled.])
43- AM_CFLAGS="$AM_CFLAGS -I/usr/include/libnl3" 38- AM_CFLAGS="$AM_CFLAGS $LIBNL3_CFLAGS"
44+ AM_CFLAGS="$AM_CFLAGS" 39+ AM_CFLAGS="$AM_CFLAGS"
45 fi 40 fi
46 AM_CONDITIONAL([HAVE_DELAYACCT], [test "$enable_delayacct" = yes]) 41 AM_CONDITIONAL([HAVE_DELAYACCT], [test "$enable_delayacct" = yes])
47 42
48-- 43--
492.47.3 442.43.0
50 45
diff --git a/meta-oe/recipes-support/htop/htop_3.4.1.bb b/meta-oe/recipes-support/htop/htop_3.5.0.bb
index e3f8a7fdb4..961a87097b 100644
--- a/meta-oe/recipes-support/htop/htop_3.4.1.bb
+++ b/meta-oe/recipes-support/htop/htop_3.5.0.bb
@@ -6,10 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6 6
7DEPENDS = "ncurses libnl" 7DEPENDS = "ncurses libnl"
8 8
9SRC_URI = "git://github.com/htop-dev/htop.git;branch=main;protocol=https \ 9SRC_URI = "git://github.com/htop-dev/htop.git;branch=main;protocol=https;tag=${PV} \
10 file://0001-configure.ac-Remove-usr-include-libnl3.patch \ 10 file://0001-configure.ac-Remove-usr-include-libnl3.patch \
11" 11"
12SRCREV = "348c0a6bf4f33571835a0b6a1a0f5deb15132128" 12SRCREV = "a21f043b253a6dfa89df1ff4130fe7d2e505000f"
13 13
14 14
15inherit autotools pkgconfig 15inherit autotools pkgconfig
@@ -23,7 +23,7 @@ PACKAGECONFIG ??= " \
23" 23"
24PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode" 24PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
25PACKAGECONFIG[affinity] = "--enable-affinity,--disable-affinity,,,,hwloc" 25PACKAGECONFIG[affinity] = "--enable-affinity,--disable-affinity,,,,hwloc"
26PACKAGECONFIG[unwind] = "--enable-unwind,--disable-unwind,libunwind" 26PACKAGECONFIG[unwind] = "--with-libunwind,--without-libunwind,libunwind"
27PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc,,,affinity" 27PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc,,,affinity"
28PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz" 28PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
29PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver" 29PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-18.bb b/meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-19.bb
index 49bf257cd3..18c23cb0d4 100644
--- a/meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-18.bb
+++ b/meta-oe/recipes-support/imagemagick/imagemagick_7.1.2-19.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=htt
17 file://imagemagick-ptest.sh \ 17 file://imagemagick-ptest.sh \
18" 18"
19 19
20SRCREV = "d4e4b2b35a573fb7d96bc64ff1a417415bbe0f4c" 20SRCREV = "9fbd2b79450e930edb95e8158d412e57a7b27e83"
21 21
22inherit autotools pkgconfig update-alternatives ptest 22inherit autotools pkgconfig update-alternatives ptest
23export ac_cv_sys_file_offset_bits = "64" 23export ac_cv_sys_file_offset_bits = "64"
diff --git a/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_1.patch b/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_1.patch
new file mode 100644
index 0000000000..2ed8e9f587
--- /dev/null
+++ b/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_1.patch
@@ -0,0 +1,28 @@
1From c83cfcd249d06950a307cee8d1e22b7f6a78a8a7 Mon Sep 17 00:00:00 2001
2From: Marti Maria <marti.maria@littlecms.com>
3Date: Thu, 19 Feb 2026 09:07:20 +0100
4Subject: [PATCH] Fix integer overflow in CubeSize()
5
6Thanks to @zerojackyi for reporting
7
8CVE: CVE-2026-41254
9Upstream-Status: Backport [https://github.com/mm2/Little-CMS/commit/da6110b1d14abc394633a388209abd5ebedd7ab0]
10Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
11---
12 src/cmslut.c | 3 ++-
13 1 file changed, 2 insertions(+), 1 deletion(-)
14
15diff --git a/src/cmslut.c b/src/cmslut.c
16index 1089148..b245209 100644
17--- a/src/cmslut.c
18+++ b/src/cmslut.c
19@@ -460,7 +460,8 @@ void EvaluateCLUTfloatIn16(const cmsFloat32Number In[], cmsFloat32Number Out[],
20 static
21 cmsUInt32Number CubeSize(const cmsUInt32Number Dims[], cmsUInt32Number b)
22 {
23- cmsUInt32Number rv, dim;
24+ cmsUInt32Number dim;
25+ cmsUInt64Number rv;
26
27 _cmsAssert(Dims != NULL);
28
diff --git a/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_2.patch b/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_2.patch
new file mode 100644
index 0000000000..be8c759a6f
--- /dev/null
+++ b/meta-oe/recipes-support/lcms/lcms/CVE-2026-41254_2.patch
@@ -0,0 +1,34 @@
1From f5994aea02d5620f3182cafdcf116ffe9d6c9fd2 Mon Sep 17 00:00:00 2001
2From: Marti Maria <marti.maria@littlecms.com>
3Date: Thu, 12 Mar 2026 22:57:35 +0100
4Subject: [PATCH] check for overflow
5
6Thanks to Guanni Qu for detecting & reporting the issue
7
8CVE: CVE-2026-41254
9Upstream-Status: Backport [https://github.com/mm2/Little-CMS/commit/e0641b1828d0a1af5ecb1b11fe22f24fceefd4bc]
10Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
11---
12 src/cmslut.c | 6 +++---
13 1 file changed, 3 insertions(+), 3 deletions(-)
14
15diff --git a/src/cmslut.c b/src/cmslut.c
16index b245209..c1dbb32 100644
17--- a/src/cmslut.c
18+++ b/src/cmslut.c
19@@ -468,12 +468,12 @@ cmsUInt32Number CubeSize(const cmsUInt32Number Dims[], cmsUInt32Number b)
20 for (rv = 1; b > 0; b--) {
21
22 dim = Dims[b-1];
23- if (dim <= 1) return 0; // Error
24-
25- rv *= dim;
26+ if (dim <= 1) return 0;
27
28 // Check for overflow
29 if (rv > UINT_MAX / dim) return 0;
30+
31+ rv *= dim;
32 }
33
34 // Again, prevent overflow
diff --git a/meta-oe/recipes-support/lcms/lcms_2.18.bb b/meta-oe/recipes-support/lcms/lcms_2.18.bb
index 79e4a6f694..1ff3b3908f 100644
--- a/meta-oe/recipes-support/lcms/lcms_2.18.bb
+++ b/meta-oe/recipes-support/lcms/lcms_2.18.bb
@@ -3,7 +3,10 @@ SECTION = "libs"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=e9ce323c4b71c943a785db90142b228a" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=e9ce323c4b71c943a785db90142b228a"
5 5
6SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz" 6SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz \
7 file://CVE-2026-41254_1.patch \
8 file://CVE-2026-41254_2.patch \
9 "
7SRC_URI[sha256sum] = "ee67be3566f459362c1ee094fde2c159d33fa0390aa4ed5f5af676f9e5004347" 10SRC_URI[sha256sum] = "ee67be3566f459362c1ee094fde2c159d33fa0390aa4ed5f5af676f9e5004347"
8 11
9DEPENDS = "tiff" 12DEPENDS = "tiff"
diff --git a/meta-oe/recipes-support/libcanberra/libcanberra_0.30-19.bb b/meta-oe/recipes-support/libcanberra/libcanberra_0.30-20.bb
index 2c063fd995..2f10a10931 100644
--- a/meta-oe/recipes-support/libcanberra/libcanberra_0.30-19.bb
+++ b/meta-oe/recipes-support/libcanberra/libcanberra_0.30-20.bb
@@ -12,13 +12,14 @@ SRC_URI = " \
12 git://salsa.debian.org/gnome-team/libcanberra;protocol=https;branch=debian/latest;tag=debian/${PV} \ 12 git://salsa.debian.org/gnome-team/libcanberra;protocol=https;branch=debian/latest;tag=debian/${PV} \
13 file://0001-Determine-audio-buffer-size-for-a-time-of-500ms.patch \ 13 file://0001-Determine-audio-buffer-size-for-a-time-of-500ms.patch \
14" 14"
15SRCREV = "d1ed1ac0c9950ed3908c04abb7c4a6de5c51ed94" 15SRCREV = "47d67f43c58af36143060888fc8e69a9cb0eddea"
16 16
17EXTRA_OECONF = "\ 17EXTRA_OECONF = "\
18 --enable-null \ 18 --enable-null \
19 --disable-oss \ 19 --disable-oss \
20 --disable-tdb \ 20 --disable-tdb \
21 --disable-lynx \ 21 --disable-lynx \
22 --disable-gtk-doc \
22" 23"
23 24
24PACKAGECONFIG ??= " \ 25PACKAGECONFIG ??= " \
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch
deleted file mode 100644
index 7fe06b9882..0000000000
--- a/meta-oe/recipes-support/libgpiod/libgpiod-2.x/0001-tools-tests-remove-SIGINT-test-cases.patch
+++ /dev/null
@@ -1,83 +0,0 @@
1From 3c38c5f9ab49384039f35408656a88f87619dd03 Mon Sep 17 00:00:00 2001
2From: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
3Date: Wed, 18 Mar 2026 14:07:06 +0100
4Subject: [libgpiod][PATCH] tools: tests: remove SIGINT test cases
5
6In coreutils v9.10 (specifically with commit 8c2461933411 ("timeout:
7honor ignored signal dispositions")) the behavior of timeout changed and
8it will no longer propagate SIGINT or SIGQUIT in shell background jobs.
9This breaks the test cases checking the behavior of tools after SIGINT.
10We have to assume that if exit after SIGTERM works, then so does it
11after SIGINT and remove the failing tests.
12
13Upstream-Status: Submitted [https://lore.kernel.org/all/20260318131413.56575-1-bartosz.golaszewski@oss.qualcomm.com/]
14Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
15---
16 tools/gpio-tools-test.bash | 37 -------------------------------------
17 1 file changed, 37 deletions(-)
18
19diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash
20index 71d6e3d..62f6836 100755
21--- a/tools/gpio-tools-test.bash
22+++ b/tools/gpio-tools-test.bash
23@@ -1415,17 +1415,6 @@ test_gpioset_with_lines_strictly_by_name() {
24 gpiosim_check_value sim0 6 0
25 }
26
27-test_gpioset_interactive_after_SIGINT() {
28- gpiosim_chip sim0 num_lines=8 line_name=1:foo
29-
30- dut_run gpioset -i foo=1
31-
32- dut_kill -SIGINT
33- dut_wait
34-
35- status_is 130
36-}
37-
38 test_gpioset_interactive_after_SIGTERM() {
39 gpiosim_chip sim0 num_lines=8 line_name=1:foo
40
41@@ -1907,20 +1896,6 @@ test_gpiomon_multiple_lines_across_multiple_chips() {
42 assert_fail dut_readable
43 }
44
45-test_gpiomon_exit_after_SIGINT() {
46- gpiosim_chip sim0 num_lines=8
47-
48- local sim0=${GPIOSIM_CHIP_NAME[sim0]}
49-
50- dut_run gpiomon --banner --chip "$sim0" 4
51- dut_regex_match "Monitoring line .*"
52-
53- dut_kill -SIGINT
54- dut_wait
55-
56- status_is 130
57-}
58-
59 test_gpiomon_exit_after_SIGTERM() {
60 gpiosim_chip sim0 num_lines=8
61
62@@ -2503,18 +2478,6 @@ test_gpionotify_multiple_lines_across_multiple_chips() {
63 assert_fail dut_readable
64 }
65
66-test_gpionotify_exit_after_SIGINT() {
67- gpiosim_chip sim0 num_lines=8
68-
69- dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4
70- dut_regex_match "Watching line .*"
71-
72- dut_kill -SIGINT
73- dut_wait
74-
75- status_is 130
76-}
77-
78 test_gpionotify_exit_after_SIGTERM() {
79 gpiosim_chip sim0 num_lines=8
80
81--
822.47.3
83
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb b/meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb
index 38829a620f..2c8d9f1873 100644
--- a/meta-oe/recipes-support/libgpiod/libgpiod_2.2.3.bb
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_2.2.4.bb
@@ -13,10 +13,9 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}-2.x:"
13 13
14SRC_URI += " \ 14SRC_URI += " \
15 file://gpio-manager.init \ 15 file://gpio-manager.init \
16 file://0001-tools-tests-remove-SIGINT-test-cases.patch \
17" 16"
18 17
19SRC_URI[sha256sum] = "70012b0262e4b90f140431efa841ca89643b02ea6c09f507e23cec664a51b71a" 18SRC_URI[sha256sum] = "13207176b0eb9b3e0f02552d5f49f5a6a449343ce47416158bb484d9d3019592"
20 19
21# Enable all project features for ptest 20# Enable all project features for ptest
22PACKAGECONFIG[tests] = " \ 21PACKAGECONFIG[tests] = " \
diff --git a/meta-oe/recipes-support/liboauth2/liboauth2/0001-build-guard-coverage-linker-flag-behind-CODE_COVERAG.patch b/meta-oe/recipes-support/liboauth2/liboauth2/0001-build-guard-coverage-linker-flag-behind-CODE_COVERAG.patch
new file mode 100644
index 0000000000..f234cbd50b
--- /dev/null
+++ b/meta-oe/recipes-support/liboauth2/liboauth2/0001-build-guard-coverage-linker-flag-behind-CODE_COVERAG.patch
@@ -0,0 +1,33 @@
1From 7c70315f7f6b4305d761804fb03f8f90ad7572eb Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 17 Apr 2026 14:01:46 -0700
4Subject: [PATCH] build: guard --coverage linker flag behind
5 CODE_COVERAGE_ENABLED
6
7AM_LDFLAGS passes --coverage to the linker unconditionally,
8it causes coverage instrumentation to be enabled even when
9configured with --disable-code-coverage. Wrap it in the
10automake conditional provided by AX_CODE_COVERAGE.
11
12Upstream-Status: Submitted [https://github.com/OpenIDC/liboauth2/pull/74]
13Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
14---
15 Makefile.am | 5 ++++-
16 1 file changed, 4 insertions(+), 1 deletion(-)
17
18diff --git a/Makefile.am b/Makefile.am
19index a079dcc..a3f991d 100644
20--- a/Makefile.am
21+++ b/Makefile.am
22@@ -8,7 +8,10 @@ EXTRA_DIST = autogen.sh ChangeLog README.md LICENSE
23
24 AM_CPPFLAGS = -Wall -Werror -Wno-error=deprecated-declarations -I${srcdir}/include -I${srcdir}/src @JANSSON_CFLAGS@ @OPENSSL_CFLAGS@
25 AM_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS) $(CODE_COVERAGE_CFLAGS)
26-AM_LDFLAGS = --coverage
27+AM_LDFLAGS =
28+if CODE_COVERAGE_ENABLED
29+AM_LDFLAGS += --coverage
30+endif
31
32 LDADD = @JANSSON_LIBS@ @OPENSSL_LIBS@
33 LDADD += $(CODE_COVERAGE_LIBS)
diff --git a/meta-oe/recipes-support/liboauth2/liboauth2_2.2.0.bb b/meta-oe/recipes-support/liboauth2/liboauth2_2.2.0.bb
index 5b1ecd23dd..83825c69a5 100644
--- a/meta-oe/recipes-support/liboauth2/liboauth2_2.2.0.bb
+++ b/meta-oe/recipes-support/liboauth2/liboauth2_2.2.0.bb
@@ -7,6 +7,7 @@ SRC_URI = " \
7 git://github.com/OpenIDC/liboauth2;protocol=https;branch=master;tag=v${PV} \ 7 git://github.com/OpenIDC/liboauth2;protocol=https;branch=master;tag=v${PV} \
8 file://0001-fix-clang-curl_easy_setopt-takes-a-long-not-an-int.patch \ 8 file://0001-fix-clang-curl_easy_setopt-takes-a-long-not-an-int.patch \
9 file://0002-Fix-use-of-strchr-with-new-GCC.patch \ 9 file://0002-Fix-use-of-strchr-with-new-GCC.patch \
10 file://0001-build-guard-coverage-linker-flag-behind-CODE_COVERAG.patch \
10 " 11 "
11 12
12SRCREV = "12571b6d6568c2db7d5f080f60ecb55795c0db19" 13SRCREV = "12571b6d6568c2db7d5f080f60ecb55795c0db19"
@@ -20,4 +21,4 @@ PACKAGECONFIG[memcache] = "--with-memcache,--without-memcache,libmemcached"
20PACKAGECONFIG[redis] = "--with-redis,--without-redis,hiredis" 21PACKAGECONFIG[redis] = "--with-redis,--without-redis,hiredis"
21PACKAGECONFIG[jq] = "--with-jq,--without-jq,jq" 22PACKAGECONFIG[jq] = "--with-jq,--without-jq,jq"
22PACKAGECONFIG[apache] = "--with-apache,--without-apache,apache2" 23PACKAGECONFIG[apache] = "--with-apache,--without-apache,apache2"
23 24PACKAGECONFIG[ccov] = "--enable-code-coverage,--disable-code-coverage,"
diff --git a/meta-oe/recipes-support/libraw/libraw_0.21.4.bb b/meta-oe/recipes-support/libraw/libraw_0.21.4.bb
deleted file mode 100644
index ef0a0255d9..0000000000
--- a/meta-oe/recipes-support/libraw/libraw_0.21.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1SUMMARY = "raw image decoder"
2LICENSE = "LGPL-2.1-only | CDDL-1.0"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=1501ae0aa3c8544e63f08d6f7bf88a6f"
4
5SRC_URI = "git://github.com/LibRaw/LibRaw.git;branch=0.21-stable;protocol=https;tag=${PV}"
6SRCREV = "9646d776c7c61976080a8f2be67928df0750493e"
7
8inherit autotools pkgconfig
9
10DEPENDS = "jpeg jasper lcms"
diff --git a/meta-oe/recipes-support/libraw/libraw_0.22.1.bb b/meta-oe/recipes-support/libraw/libraw_0.22.1.bb
new file mode 100644
index 0000000000..e99f0e46b6
--- /dev/null
+++ b/meta-oe/recipes-support/libraw/libraw_0.22.1.bb
@@ -0,0 +1,17 @@
1SUMMARY = "raw image decoder"
2LICENSE = "LGPL-2.1-only | CDDL-1.0"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=1d66195044cfbe4327c055d1c9c1a229"
4
5SRC_URI = "git://github.com/LibRaw/LibRaw.git;branch=0.22-stable;protocol=https;tag=${PV}"
6SRCREV = "b860248a89d9082b8e0a1e202e516f46af9adb29"
7
8inherit autotools pkgconfig
9
10DEPENDS = "jpeg jasper lcms"
11
12CVE_STATUS[CVE-2026-5318] = "fixed-version: fixed since 0.22.1"
13CVE_STATUS[CVE-2026-5342] = "fixed-version: fixed since 0.22.1"
14CVE_STATUS[CVE-2026-20884] = "fixed-version: fixed since 0.22.1"
15CVE_STATUS[CVE-2026-24450] = "fixed-version: fixed since 0.22.1"
16CVE_STATUS[CVE-2026-20911] = "fixed-version: fixed since 0.22.1"
17CVE_STATUS[CVE-2026-21413] = "fixed-version: fixed since 0.22.1"
diff --git a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
index 85eac33369..99d0939b34 100644
--- a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
+++ b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -20,6 +20,9 @@ UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
20DEPENDS += "bison-native flex-native wget-native gawk-native" 20DEPENDS += "bison-native flex-native wget-native gawk-native"
21 21
22inherit autotools-brokensep update-alternatives 22inherit autotools-brokensep update-alternatives
23
24CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
25
23ALTERNATIVE_PRIORITY = "50" 26ALTERNATIVE_PRIORITY = "50"
24ALTERNATIVE:${PN}-yang = " ietf-interfaces ietf-netconf-acm ietf-netconf-with-defaults ietf-netconf" 27ALTERNATIVE:${PN}-yang = " ietf-interfaces ietf-netconf-acm ietf-netconf-with-defaults ietf-netconf"
25ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang" 28ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang"
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-14523.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-14523.patch
new file mode 100644
index 0000000000..7815dba55a
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-14523.patch
@@ -0,0 +1,52 @@
1From d6028a6e6a8417b7fb6c89f6c10fb94781435ee6 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Wed, 4 Feb 2026 15:08:50 +0800
4Subject: [PATCH] Reject duplicate Host headers (for libsoup 2)
5
6This is a simplified version of my patch for libsoup 3:
7
8!491
9
10Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/d3db5a6f8f03e1f0133754872877c92c0284c472]
11CVE: CVE-2025-14523
12
13This patch is a MR for branch 2-74, but not merged yet, maybe it will
14not be merged.
15
16Signed-off-by: Changqing Li <changqing.li@windriver.com>
17---
18 libsoup/soup-headers.c | 3 +++
19 libsoup/soup-message-headers.c | 3 +++
20 2 files changed, 6 insertions(+)
21
22diff --git a/libsoup/soup-headers.c b/libsoup/soup-headers.c
23index ea2f986..6cd3dad 100644
24--- a/libsoup/soup-headers.c
25+++ b/libsoup/soup-headers.c
26@@ -138,6 +138,9 @@ soup_headers_parse (const char *str, int len, SoupMessageHeaders *dest)
27 for (p = strchr (value, '\r'); p; p = strchr (p, '\r'))
28 *p = ' ';
29
30+ if (g_ascii_strcasecmp (name, "Host") == 0 && soup_message_headers_get_one (dest, "Host"))
31+ goto done;
32+
33 soup_message_headers_append (dest, name, value);
34 }
35 success = TRUE;
36diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
37index f612bff..bb20bbb 100644
38--- a/libsoup/soup-message-headers.c
39+++ b/libsoup/soup-message-headers.c
40@@ -220,6 +220,9 @@ soup_message_headers_append (SoupMessageHeaders *hdrs,
41 }
42 #endif
43
44+ if (g_ascii_strcasecmp (name, "Host") == 0 && soup_message_headers_get_one (hdrs, "Host"))
45+ return;
46+
47 header.name = intern_header_name (name, &setter);
48 header.value = g_strdup (value);
49 g_array_append_val (hdrs->array, header);
50--
512.34.1
52
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-1.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-1.patch
new file mode 100644
index 0000000000..64e87cb1ec
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-1.patch
@@ -0,0 +1,229 @@
1From c574e659c41c18fad3973bbaa3b3ec75664b3137 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 5 Feb 2026 16:20:02 +0800
4Subject: [PATCH 1/2] websocket: add a way to restrict the total message size
5
6Otherwise a client could send small packages smaller than
7total-incoming-payload-size but still to break the server
8with a big allocation
9
10Fixes: #390
11
12Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/db87805ab565d67533dfed2cb409dbfd63c7fdce]
13CVE: CVE-2025-32049
14
15libsoup2 is not maintained, the patch is backported from libsoup3, and
16change accordingly
17
18Signed-off-by: Changqing Li <changqing.li@windriver.com>
19---
20 libsoup/soup-websocket-connection.c | 104 ++++++++++++++++++++++++++--
21 libsoup/soup-websocket-connection.h | 7 ++
22 2 files changed, 107 insertions(+), 4 deletions(-)
23
24diff --git a/libsoup/soup-websocket-connection.c b/libsoup/soup-websocket-connection.c
25index 9d5f4f8..3dad477 100644
26--- a/libsoup/soup-websocket-connection.c
27+++ b/libsoup/soup-websocket-connection.c
28@@ -85,7 +85,8 @@ enum {
29 PROP_STATE,
30 PROP_MAX_INCOMING_PAYLOAD_SIZE,
31 PROP_KEEPALIVE_INTERVAL,
32- PROP_EXTENSIONS
33+ PROP_EXTENSIONS,
34+ PROP_MAX_TOTAL_MESSAGE_SIZE,
35 };
36
37 enum {
38@@ -120,6 +121,7 @@ struct _SoupWebsocketConnectionPrivate {
39 char *origin;
40 char *protocol;
41 guint64 max_incoming_payload_size;
42+ guint64 max_total_message_size;
43 guint keepalive_interval;
44
45 gushort peer_close_code;
46@@ -152,6 +154,7 @@ struct _SoupWebsocketConnectionPrivate {
47 };
48
49 #define MAX_INCOMING_PAYLOAD_SIZE_DEFAULT 128 * 1024
50+#define MAX_TOTAL_MESSAGE_SIZE_DEFAULT 128 * 1024
51 #define READ_BUFFER_SIZE 1024
52 #define MASK_LENGTH 4
53
54@@ -664,7 +667,7 @@ bad_data_error_and_close (SoupWebsocketConnection *self)
55 }
56
57 static void
58-too_big_error_and_close (SoupWebsocketConnection *self,
59+too_big_incoming_payload_error_and_close (SoupWebsocketConnection *self,
60 guint64 payload_len)
61 {
62 GError *error;
63@@ -680,6 +683,23 @@ too_big_error_and_close (SoupWebsocketConnection *self,
64 emit_error_and_close (self, error, TRUE);
65 }
66
67+static void
68+too_big_message_error_and_close (SoupWebsocketConnection *self,
69+ guint64 len)
70+{
71+ GError *error;
72+
73+ error = g_error_new_literal (SOUP_WEBSOCKET_ERROR,
74+ SOUP_WEBSOCKET_CLOSE_TOO_BIG,
75+ self->pv->connection_type == SOUP_WEBSOCKET_CONNECTION_SERVER ?
76+ "Received WebSocket payload from the client larger than configured max-total-message-size" :
77+ "Received WebSocket payload from the server larger than configured max-total-message-size");
78+ g_debug ("%s received message of size %" G_GUINT64_FORMAT " or greater, but max supported size is %" G_GUINT64_FORMAT,
79+ self->pv->connection_type == SOUP_WEBSOCKET_CONNECTION_SERVER ? "server" : "client",
80+ len, self->pv->max_total_message_size);
81+ emit_error_and_close (self, error, TRUE);
82+}
83+
84 static void
85 close_connection (SoupWebsocketConnection *self,
86 gushort code,
87@@ -913,6 +933,12 @@ process_contents (SoupWebsocketConnection *self,
88 switch (pv->message_opcode) {
89 case 0x01:
90 case 0x02:
91+ /* Safety valve */
92+ if (pv->max_total_message_size > 0 &&
93+ (pv->message_data->len + payload_len) > pv->max_total_message_size) {
94+ too_big_message_error_and_close (self, (pv->message_data->len + payload_len));
95+ return;
96+ }
97 g_byte_array_append (pv->message_data, payload, payload_len);
98 break;
99 default:
100@@ -1050,7 +1076,7 @@ process_frame (SoupWebsocketConnection *self)
101 /* Safety valve */
102 if (self->pv->max_incoming_payload_size > 0 &&
103 payload_len >= self->pv->max_incoming_payload_size) {
104- too_big_error_and_close (self, payload_len);
105+ too_big_incoming_payload_error_and_close (self, payload_len);
106 return FALSE;
107 }
108
109@@ -1357,6 +1383,10 @@ soup_websocket_connection_get_property (GObject *object,
110 g_value_set_pointer (value, pv->extensions);
111 break;
112
113+ case PROP_MAX_TOTAL_MESSAGE_SIZE:
114+ g_value_set_uint64 (value, pv->max_total_message_size);
115+ break;
116+
117 default:
118 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
119 break;
120@@ -1410,6 +1440,10 @@ soup_websocket_connection_set_property (GObject *object,
121 pv->extensions = g_value_get_pointer (value);
122 break;
123
124+ case PROP_MAX_TOTAL_MESSAGE_SIZE:
125+ pv->max_total_message_size = g_value_get_uint64 (value);
126+ break;
127+
128 default:
129 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
130 break;
131@@ -1631,7 +1665,24 @@ soup_websocket_connection_class_init (SoupWebsocketConnectionClass *klass)
132 G_PARAM_READWRITE |
133 G_PARAM_CONSTRUCT_ONLY |
134 G_PARAM_STATIC_STRINGS));
135-
136+ /**
137+ * SoupWebsocketConnection:max-total-message-size:
138+ *
139+ * The total message size for incoming packets.
140+ *
141+ * The protocol expects or 0 to not limit it.
142+ *
143+ */
144+ g_object_class_install_property (gobject_class, PROP_MAX_TOTAL_MESSAGE_SIZE,
145+ g_param_spec_uint64 ("max-total-message-size",
146+ "Max total message size",
147+ "Max total message size ",
148+ 0,
149+ G_MAXUINT64,
150+ MAX_TOTAL_MESSAGE_SIZE_DEFAULT,
151+ G_PARAM_READWRITE |
152+ G_PARAM_CONSTRUCT |
153+ G_PARAM_STATIC_STRINGS));
154 /**
155 * SoupWebsocketConnection::message:
156 * @self: the WebSocket
157@@ -2145,6 +2196,51 @@ soup_websocket_connection_set_max_incoming_payload_size (SoupWebsocketConnection
158 }
159 }
160
161+/**
162+ * soup_websocket_connection_get_max_total_message_size:
163+ * @self: the WebSocket
164+ *
165+ * Gets the maximum total message size allowed for packets.
166+ *
167+ * Returns: the maximum total message size.
168+ *
169+ */
170+guint64
171+soup_websocket_connection_get_max_total_message_size (SoupWebsocketConnection *self)
172+{
173+ SoupWebsocketConnectionPrivate *pv;
174+
175+ g_return_val_if_fail (SOUP_IS_WEBSOCKET_CONNECTION (self), MAX_TOTAL_MESSAGE_SIZE_DEFAULT);
176+ pv = self->pv;
177+
178+ return pv->max_total_message_size;
179+}
180+
181+/**
182+ * soup_websocket_connection_set_max_total_message_size:
183+ * @self: the WebSocket
184+ * @max_total_message_size: the maximum total message size
185+ *
186+ * Sets the maximum total message size allowed for packets.
187+ *
188+ * It does not limit the outgoing packet size.
189+ *
190+ */
191+void
192+soup_websocket_connection_set_max_total_message_size (SoupWebsocketConnection *self,
193+ guint64 max_total_message_size)
194+{
195+ SoupWebsocketConnectionPrivate *pv;
196+
197+ g_return_if_fail (SOUP_IS_WEBSOCKET_CONNECTION (self));
198+ pv = self->pv;
199+
200+ if (pv->max_total_message_size != max_total_message_size) {
201+ pv->max_total_message_size = max_total_message_size;
202+ g_object_notify (G_OBJECT (self), "max-total-message-size");
203+ }
204+}
205+
206 /**
207 * soup_websocket_connection_get_keepalive_interval:
208 * @self: the WebSocket
209diff --git a/libsoup/soup-websocket-connection.h b/libsoup/soup-websocket-connection.h
210index f82d723..d2a60e9 100644
211--- a/libsoup/soup-websocket-connection.h
212+++ b/libsoup/soup-websocket-connection.h
213@@ -136,6 +136,13 @@ SOUP_AVAILABLE_IN_2_58
214 void soup_websocket_connection_set_keepalive_interval (SoupWebsocketConnection *self,
215 guint interval);
216
217+SOUP_AVAILABLE_IN_2_72
218+guint64 soup_websocket_connection_get_max_total_message_size (SoupWebsocketConnection *self);
219+
220+SOUP_AVAILABLE_IN_2_72
221+void soup_websocket_connection_set_max_total_message_size (SoupWebsocketConnection *self,
222+ guint64 max_total_message_size);
223+
224 G_END_DECLS
225
226 #endif /* __SOUP_WEBSOCKET_CONNECTION_H__ */
227--
2282.34.1
229
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-2.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-2.patch
new file mode 100644
index 0000000000..f9c894aaec
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-32049-2.patch
@@ -0,0 +1,131 @@
1From 0bfc66f1082f5d47df99b6fc03f742ef7fa1051e Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 5 Feb 2026 17:19:51 +0800
4Subject: [PATCH] Set message size limit in SoupServer rather than
5 SoupWebsocketConnection
6
7We're not sure about the compatibility implications of having a default
8size limit for clients.
9
10Also not sure whether the server limit is actually set appropriately,
11but there is probably very little server usage of
12SoupWebsocketConnection in the wild, so it's not so likely to break
13things.
14
15Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/2df34d9544cabdbfdedd3b36f098cf69233b1df7]
16CVE: CVE-2025-32049
17
18Signed-off-by: Changqing Li <changqing.li@windriver.com>
19---
20 libsoup/soup-server.c | 24 +++++++++++++++++++-----
21 libsoup/soup-websocket-connection.c | 23 ++++++++++++++++-------
22 2 files changed, 35 insertions(+), 12 deletions(-)
23
24diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
25index 63875f3..a3f8597 100644
26--- a/libsoup/soup-server.c
27+++ b/libsoup/soup-server.c
28@@ -216,6 +216,16 @@ enum {
29
30 G_DEFINE_TYPE_WITH_PRIVATE (SoupServer, soup_server, G_TYPE_OBJECT)
31
32+/* SoupWebsocketConnection by default limits only maximum packet size. But a
33+ * message may consist of multiple packets, so SoupServer additionally restricts
34+ * total message size to mitigate denial of service attacks on the server.
35+ * SoupWebsocketConnection does not do this by default because I don't know
36+ * whether that would or would not cause compatibility problems for websites.
37+ *
38+ * This size is in bytes and it is arbitrary.
39+ */
40+#define MAX_TOTAL_MESSAGE_SIZE_DEFAULT 128 * 1024
41+
42 static SoupClientContext *soup_client_context_ref (SoupClientContext *client);
43 static void soup_client_context_unref (SoupClientContext *client);
44
45@@ -1445,11 +1455,15 @@ complete_websocket_upgrade (SoupMessage *msg, gpointer user_data)
46
47 soup_client_context_ref (client);
48 stream = soup_client_context_steal_connection (client);
49- conn = soup_websocket_connection_new_with_extensions (stream, uri,
50- SOUP_WEBSOCKET_CONNECTION_SERVER,
51- soup_message_headers_get_one (msg->request_headers, "Origin"),
52- soup_message_headers_get_one (msg->response_headers, "Sec-WebSocket-Protocol"),
53- handler->websocket_extensions);
54+ conn = SOUP_WEBSOCKET_CONNECTION (g_object_new (SOUP_TYPE_WEBSOCKET_CONNECTION,
55+ "io-stream", stream,
56+ "uri", uri,
57+ "connection-type", SOUP_WEBSOCKET_CONNECTION_SERVER,
58+ "origin", soup_message_headers_get_one (msg->request_headers, "Origin"),
59+ "protocol", soup_message_headers_get_one (msg->response_headers, "Sec-WebSocket-Protocol"),
60+ "extensions", handler->websocket_extensions,
61+ "max-total-message-size", (guint64)MAX_TOTAL_MESSAGE_SIZE_DEFAULT,
62+ NULL));
63 handler->websocket_extensions = NULL;
64 g_object_unref (stream);
65 soup_client_context_unref (client);
66diff --git a/libsoup/soup-websocket-connection.c b/libsoup/soup-websocket-connection.c
67index 3dad477..e7fa9b7 100644
68--- a/libsoup/soup-websocket-connection.c
69+++ b/libsoup/soup-websocket-connection.c
70@@ -154,7 +154,6 @@ struct _SoupWebsocketConnectionPrivate {
71 };
72
73 #define MAX_INCOMING_PAYLOAD_SIZE_DEFAULT 128 * 1024
74-#define MAX_TOTAL_MESSAGE_SIZE_DEFAULT 128 * 1024
75 #define READ_BUFFER_SIZE 1024
76 #define MASK_LENGTH 4
77
78@@ -1615,8 +1614,9 @@ soup_websocket_connection_class_init (SoupWebsocketConnectionClass *klass)
79 /**
80 * SoupWebsocketConnection:max-incoming-payload-size:
81 *
82- * The maximum payload size for incoming packets the protocol expects
83- * or 0 to not limit it.
84+ * The maximum payload size for incoming packets, or 0 to not limit it.
85+ * Each message may consist of multiple packets, so also refer to
86+ * [property@WebSocketConnection:max-total-message-size].
87 *
88 * Since: 2.56
89 */
90@@ -1668,9 +1668,18 @@ soup_websocket_connection_class_init (SoupWebsocketConnectionClass *klass)
91 /**
92 * SoupWebsocketConnection:max-total-message-size:
93 *
94- * The total message size for incoming packets.
95+ * The maximum size for incoming messages.
96+ * Set to a value to limit the total message size, or 0 to not
97+ * limit it.
98 *
99- * The protocol expects or 0 to not limit it.
100+ * [method@Server.add_websocket_handler] will set this to a nonzero
101+ * default value to mitigate denial of service attacks. Clients must
102+ * choose their own default if they need to mitigate denial of service
103+ * attacks. You also need to set your own default if creating your own
104+ * server SoupWebsocketConnection without using SoupServer.
105+ *
106+ * Each message may consist of multiple packets, so also refer to
107+ *[property@WebSocketConnection:max-incoming-payload-size].
108 *
109 */
110 g_object_class_install_property (gobject_class, PROP_MAX_TOTAL_MESSAGE_SIZE,
111@@ -1679,7 +1688,7 @@ soup_websocket_connection_class_init (SoupWebsocketConnectionClass *klass)
112 "Max total message size ",
113 0,
114 G_MAXUINT64,
115- MAX_TOTAL_MESSAGE_SIZE_DEFAULT,
116+ 0,
117 G_PARAM_READWRITE |
118 G_PARAM_CONSTRUCT |
119 G_PARAM_STATIC_STRINGS));
120@@ -2210,7 +2219,7 @@ soup_websocket_connection_get_max_total_message_size (SoupWebsocketConnection *s
121 {
122 SoupWebsocketConnectionPrivate *pv;
123
124- g_return_val_if_fail (SOUP_IS_WEBSOCKET_CONNECTION (self), MAX_TOTAL_MESSAGE_SIZE_DEFAULT);
125+ g_return_val_if_fail (SOUP_IS_WEBSOCKET_CONNECTION (self), 0);
126 pv = self->pv;
127
128 return pv->max_total_message_size;
129--
1302.34.1
131
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1467.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1467.patch
new file mode 100644
index 0000000000..a1a130ee3a
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1467.patch
@@ -0,0 +1,151 @@
1From b4f1dcb89a552fc03bfd0e65830b4f76fdc4a232 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Tue, 21 Apr 2026 17:10:37 +0800
4Subject: [PATCH] Fix CVE-2026-1467
5
6CVE: CVE-2026-1467
7Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/6dfe506618d2d5856618e5c0f85bd93386dc8012]
8
9The original backport patch targets libsoup3. This patch has been
10adapted accordingly for libsoup2, refer the openSUSE patch, see [1]
11
12[1] https://www.suse.com/security/cve/CVE-2026-1467.html
13
14Signed-off-by: Changqing Li <changqing.li@windriver.com>
15---
16 libsoup/soup-auth.c | 2 +-
17 libsoup/soup-message.c | 5 +++-
18 libsoup/soup-uri.c | 60 ++++++++++++++++++++++++++++++++++++++++++
19 libsoup/soup-uri.h | 2 ++
20 4 files changed, 67 insertions(+), 2 deletions(-)
21
22diff --git a/libsoup/soup-auth.c b/libsoup/soup-auth.c
23index 1896aab..e205fe3 100644
24--- a/libsoup/soup-auth.c
25+++ b/libsoup/soup-auth.c
26@@ -535,7 +535,7 @@ GSList *
27 soup_auth_get_protection_space (SoupAuth *auth, SoupURI *source_uri)
28 {
29 g_return_val_if_fail (SOUP_IS_AUTH (auth), NULL);
30- g_return_val_if_fail (source_uri != NULL, NULL);
31+ g_return_val_if_fail (soup_uri_is_valid (source_uri), NULL);
32
33 return SOUP_AUTH_GET_CLASS (auth)->get_protection_space (auth, source_uri);
34 }
35diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
36index da32b42..cc4f22b 100644
37--- a/libsoup/soup-message.c
38+++ b/libsoup/soup-message.c
39@@ -1044,7 +1044,7 @@ soup_message_new (const char *method, const char *uri_string)
40 uri = soup_uri_new (uri_string);
41 if (!uri)
42 return NULL;
43- if (!uri->host) {
44+ if (!soup_uri_is_valid (uri)) {
45 soup_uri_free (uri);
46 return NULL;
47 }
48@@ -1066,6 +1066,8 @@ soup_message_new (const char *method, const char *uri_string)
49 SoupMessage *
50 soup_message_new_from_uri (const char *method, SoupURI *uri)
51 {
52+ g_return_val_if_fail (soup_uri_is_valid (uri), NULL);
53+
54 return g_object_new (SOUP_TYPE_MESSAGE,
55 SOUP_MESSAGE_METHOD, method,
56 SOUP_MESSAGE_URI, uri,
57@@ -1676,6 +1678,7 @@ soup_message_set_uri (SoupMessage *msg, SoupURI *uri)
58 SoupMessagePrivate *priv;
59
60 g_return_if_fail (SOUP_IS_MESSAGE (msg));
61+ g_return_if_fail (soup_uri_is_valid (uri));
62 priv = soup_message_get_instance_private (msg);
63
64 if (priv->uri)
65diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c
66index bdb7a17..d781ff1 100644
67--- a/libsoup/soup-uri.c
68+++ b/libsoup/soup-uri.c
69@@ -1342,6 +1342,66 @@ soup_uri_host_equal (gconstpointer v1, gconstpointer v2)
70 return g_ascii_strcasecmp (one->host, two->host) == 0;
71 }
72
73+static gboolean
74+is_valid_character_for_host (char c)
75+{
76+ static const char forbidden_chars[] = { '\t', '\n', '\r', ' ', '#', '/', ':', '<', '>', '?', '@', '[', '\\', ']', '^', '|' };
77+ int i;
78+
79+ for (i = 0; i < G_N_ELEMENTS (forbidden_chars); ++i) {
80+ if (c == forbidden_chars[i])
81+ return FALSE;
82+ }
83+
84+ return TRUE;
85+}
86+
87+static gboolean
88+is_host_valid (const char* host)
89+{
90+ int i;
91+ gboolean is_valid;
92+ char *ascii_host = NULL;
93+
94+ if (!host || !host[0])
95+ return FALSE;
96+
97+ if (g_hostname_is_non_ascii (host)) {
98+ ascii_host = g_hostname_to_ascii (host);
99+ if (!ascii_host)
100+ return FALSE;
101+
102+ host = ascii_host;
103+ }
104+
105+ if ((g_ascii_isdigit (host[0]) || strchr (host, ':')) && g_hostname_is_ip_address (host)) {
106+ g_free (ascii_host);
107+ return TRUE;
108+ }
109+ is_valid = TRUE;
110+ for (i = 0; host[i] && is_valid; i++)
111+ is_valid = is_valid_character_for_host (host[i]);
112+
113+ g_free (ascii_host);
114+
115+ return is_valid;
116+}
117+
118+gboolean
119+soup_uri_is_valid (SoupURI *uri)
120+{
121+ if (!uri)
122+ return FALSE;
123+
124+ if (!is_host_valid (soup_uri_get_host (uri)))
125+ return FALSE;
126+
127+ /* FIXME: validate other URI components? */
128+
129+ return TRUE;
130+}
131+
132+
133 gboolean
134 soup_uri_is_http (SoupURI *uri, char **aliases)
135 {
136diff --git a/libsoup/soup-uri.h b/libsoup/soup-uri.h
137index 8015e4f..64099c3 100644
138--- a/libsoup/soup-uri.h
139+++ b/libsoup/soup-uri.h
140@@ -133,6 +133,8 @@ guint soup_uri_host_hash (gconstpointer key);
141 SOUP_AVAILABLE_IN_2_28
142 gboolean soup_uri_host_equal (gconstpointer v1,
143 gconstpointer v2);
144+SOUP_AVAILABLE_IN_2_68
145+gboolean soup_uri_is_valid (SoupURI *uri);
146
147 #define SOUP_URI_IS_VALID(uri) ((uri) && (uri)->scheme && (uri)->path)
148 #define SOUP_URI_VALID_FOR_HTTP(uri) ((uri) && ((uri)->scheme == SOUP_URI_SCHEME_HTTP || (uri)->scheme == SOUP_URI_SCHEME_HTTPS) && (uri)->host && (uri)->path)
149--
1502.34.1
151
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1539.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1539.patch
new file mode 100644
index 0000000000..c6b813a98f
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1539.patch
@@ -0,0 +1,31 @@
1From 285faea567e1e2a95226201175dbf745a64a2439 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Fri, 20 Mar 2026 15:04:22 +0800
4Subject: [PATCH 4/4] Also remove Proxy-Authorization header on cross origin
5 redirect
6
7Closes #489
8
9Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/98c1285d9d78662c38bf14b4a128af01ccfdb446]
10CVE: CVE-2026-1539
11
12Signed-off-by: Changqing Li <changqing.li@windriver.com>
13---
14 libsoup/soup-session.c | 1 +
15 1 file changed, 1 insertion(+)
16
17diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
18index cc0d04c..0361856 100644
19--- a/libsoup/soup-session.c
20+++ b/libsoup/soup-session.c
21@@ -1190,6 +1190,7 @@ soup_session_redirect_message (SoupSession *session, SoupMessage *msg)
22 /* Strip all credentials on cross-origin redirect. */
23 if (!soup_uri_host_equal (soup_message_get_uri (msg), new_uri)) {
24 soup_message_headers_remove (msg->request_headers, "Authorization");
25+ soup_message_headers_remove (msg->request_headers, "Proxy-Authorization");
26 soup_message_set_auth (msg, NULL);
27 }
28
29--
302.34.1
31
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1760.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1760.patch
new file mode 100644
index 0000000000..a5547132a2
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1760.patch
@@ -0,0 +1,153 @@
1From 0fca37e0fce479284e62091ffb9b7d6caff1c7e4 Mon Sep 17 00:00:00 2001
2From: Carlos Garcia Campos <cgarcia@igalia.com>
3Date: Thu, 29 Jan 2026 16:43:28 +0100
4Subject: [PATCH] server: close the connection after responsing a request
5 containing Content-Length and Transfer-Encoding
6
7Closes #475
8
9Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/6224df5a471e9040a99dd3dc2e91817a701b1bf6]
10CVE: CVE-2026-1760
11
12Signed-off-by: Changqing Li <changqing.li@windriver.com>
13---
14 libsoup/soup-message-headers.c | 86 +++++++++++++++-----------------
15 libsoup/soup-message-server-io.c | 8 +++
16 2 files changed, 49 insertions(+), 45 deletions(-)
17
18diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
19index 535cf14..06d9600 100644
20--- a/libsoup/soup-message-headers.c
21+++ b/libsoup/soup-message-headers.c
22@@ -666,38 +666,13 @@ clear_special_headers (SoupMessageHeaders *hdrs)
23 static void
24 transfer_encoding_setter (SoupMessageHeaders *hdrs, const char *value)
25 {
26- if (value) {
27- /* "identity" is a wrong value according to RFC errata 408,
28- * and RFC 7230 does not list it as valid transfer-coding.
29- * Nevertheless, the obsolete RFC 2616 stated "identity"
30- * as valid, so we can't handle it as unrecognized here
31- * for compatibility reasons.
32- */
33- if (g_ascii_strcasecmp (value, "chunked") == 0)
34- hdrs->encoding = SOUP_ENCODING_CHUNKED;
35- else if (g_ascii_strcasecmp (value, "identity") != 0)
36- hdrs->encoding = SOUP_ENCODING_UNRECOGNIZED;
37- } else
38- hdrs->encoding = -1;
39+ hdrs->encoding = -1;
40 }
41
42 static void
43 content_length_setter (SoupMessageHeaders *hdrs, const char *value)
44 {
45- /* Transfer-Encoding trumps Content-Length */
46- if (hdrs->encoding == SOUP_ENCODING_CHUNKED)
47- return;
48-
49- if (value) {
50- char *end;
51-
52- hdrs->content_length = g_ascii_strtoull (value, &end, 10);
53- if (*end)
54- hdrs->encoding = SOUP_ENCODING_UNRECOGNIZED;
55- else
56- hdrs->encoding = SOUP_ENCODING_CONTENT_LENGTH;
57- } else
58- hdrs->encoding = -1;
59+ hdrs->encoding = -1;
60 }
61
62 /**
63@@ -730,29 +705,50 @@ SoupEncoding
64 soup_message_headers_get_encoding (SoupMessageHeaders *hdrs)
65 {
66 const char *header;
67+ const char *content_length;
68+ const char *transfer_encoding;
69
70 if (hdrs->encoding != -1)
71 return hdrs->encoding;
72
73- /* If Transfer-Encoding was set, hdrs->encoding would already
74- * be set. So we don't need to check that possibility.
75- */
76- header = soup_message_headers_get_one (hdrs, "Content-Length");
77- if (header) {
78- content_length_setter (hdrs, header);
79- if (hdrs->encoding != -1)
80- return hdrs->encoding;
81- }
82+ /* Transfer-Encoding is checked first because it overrides the Content-Length */
83+ transfer_encoding = soup_message_headers_get_one (hdrs, "Transfer-Encoding");
84+ if (transfer_encoding) {
85+ /* "identity" is a wrong value according to RFC errata 408,
86+ * and RFC 7230 does not list it as valid transfer-coding.
87+ * Nevertheless, the obsolete RFC 2616 stated "identity"
88+ * as valid, so we can't handle it as unrecognized here
89+ * for compatibility reasons.
90+ */
91+ if (g_ascii_strcasecmp (transfer_encoding, "chunked") == 0)
92+ hdrs->encoding = SOUP_ENCODING_CHUNKED;
93+ else if (g_ascii_strcasecmp (transfer_encoding, "identity") != 0)
94+ hdrs->encoding = SOUP_ENCODING_UNRECOGNIZED;
95+ } else {
96+ content_length = soup_message_headers_get_one (hdrs, "Content-Length");
97+ if (content_length) {
98+ char *end;
99+
100+ hdrs->content_length = g_ascii_strtoull (content_length, &end, 10);
101+ if (*end)
102+ hdrs->encoding = SOUP_ENCODING_UNRECOGNIZED;
103+ else
104+ hdrs->encoding = SOUP_ENCODING_CONTENT_LENGTH;
105+ }
106+ }
107+
108+ if (hdrs->encoding == -1) {
109+ /* Per RFC 2616 4.4, a response body that doesn't indicate its
110+ * encoding otherwise is terminated by connection close, and a
111+ * request that doesn't indicate otherwise has no body. Note
112+ * that SoupMessage calls soup_message_headers_set_encoding()
113+ * to override the response body default for our own
114+ * server-side messages.
115+ */
116+ hdrs->encoding = (hdrs->type == SOUP_MESSAGE_HEADERS_RESPONSE) ?
117+ SOUP_ENCODING_EOF : SOUP_ENCODING_NONE;
118+ }
119
120- /* Per RFC 2616 4.4, a response body that doesn't indicate its
121- * encoding otherwise is terminated by connection close, and a
122- * request that doesn't indicate otherwise has no body. Note
123- * that SoupMessage calls soup_message_headers_set_encoding()
124- * to override the response body default for our own
125- * server-side messages.
126- */
127- hdrs->encoding = (hdrs->type == SOUP_MESSAGE_HEADERS_RESPONSE) ?
128- SOUP_ENCODING_EOF : SOUP_ENCODING_NONE;
129 return hdrs->encoding;
130 }
131
132diff --git a/libsoup/soup-message-server-io.c b/libsoup/soup-message-server-io.c
133index 71e943b..df5eafc 100644
134--- a/libsoup/soup-message-server-io.c
135+++ b/libsoup/soup-message-server-io.c
136@@ -80,6 +80,14 @@ parse_request_headers (SoupMessage *msg, char *headers, guint headers_len,
137 return SOUP_STATUS_BAD_REQUEST;
138 }
139
140+ /* A server MAY reject a request that contains both Content-Length and
141+ * Transfer-Encoding or process such a request in accordance with the
142+ * Transfer-Encoding alone. Regardless, the server MUST close the connection
143+ * after responding to such a request to avoid the potential attacks
144+ */
145+ if (*encoding == SOUP_ENCODING_CHUNKED && soup_message_headers_get_one (msg->request_headers, "Content-Length"))
146+ soup_message_headers_replace (msg->request_headers, "Connection", "close");
147+
148 /* Generate correct context for request */
149 req_host = soup_message_headers_get_one (msg->request_headers, "Host");
150 if (req_host && strchr (req_host, '/')) {
151--
1522.34.1
153
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1761.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1761.patch
new file mode 100644
index 0000000000..573e3e1dd0
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1761.patch
@@ -0,0 +1,36 @@
1From 07757b7feacfc660c6c463ff2b773c13bc42d2c9 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 19 Mar 2026 17:21:32 +0800
4Subject: [PATCH 3/4] multipart: check length of bytes read
5 soup_filter_input_stream_read_until()
6
7We do make sure the read length is smaller than the buffer length when
8the boundary is not found, but we should do the same when the boundary
9is found.
10
11Spotted in #YWH-PGM9867-149
12Closes #493
13
14Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/cfa9d90d1a5c274233554a264c56551c13d6a6f0]
15CVE: CVE-2026-1761
16
17Signed-off-by: Changqing Li <changqing.li@windriver.com>
18---
19 libsoup/soup-filter-input-stream.c | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/libsoup/soup-filter-input-stream.c b/libsoup/soup-filter-input-stream.c
23index 2c30bf9..c34510b 100644
24--- a/libsoup/soup-filter-input-stream.c
25+++ b/libsoup/soup-filter-input-stream.c
26@@ -272,6 +272,6 @@ soup_filter_input_stream_read_until (SoupFilterInputStream *fstream,
27 if (eof && !*got_boundary)
28 read_length = MIN (fstream->priv->buf->len, length);
29 else
30- read_length = p - buf;
31+ read_length = MIN ((gsize)(p - buf), length);
32 return read_from_buf (fstream, buffer, read_length);
33 }
34--
352.34.1
36
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1801.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1801.patch
new file mode 100644
index 0000000000..5f445f7354
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-1801.patch
@@ -0,0 +1,126 @@
1From f9c933e258e9ef2f221cca6395f8092a1c4b93dd Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 19 Mar 2026 17:10:36 +0800
4Subject: [PATCH 2/4] Fix CVE-2026-1801
5
6This patch merges 3 upstream patches
7
8Chery-pick the first two patches to make the context is the same as the
9third patch that fix CVE-2026-1801
10
11Upstream-Status: Backport
12[https://gitlab.gnome.org/GNOME/libsoup/-/commit/1e32b5e123aa1689505472bdbfcbd897eac41977,
13https://gitlab.gnome.org/GNOME/libsoup/-/commit/8a2e15c88512ae4517d2c2c887d39299725b22da,
14https://gitlab.gnome.org/GNOME/libsoup/-/commit/b9a1c0663ff8ab6e79715db4b35b54f560416ddd]
15CVE: CVE-2026-1801
16
17Signed-off-by: Changqing Li <changqing.li@windriver.com>
18---
19 libsoup/soup-body-input-stream.c | 66 ++++++++++++++++++++------------
20 1 file changed, 41 insertions(+), 25 deletions(-)
21
22diff --git a/libsoup/soup-body-input-stream.c b/libsoup/soup-body-input-stream.c
23index 6b95884..25d9312 100644
24--- a/libsoup/soup-body-input-stream.c
25+++ b/libsoup/soup-body-input-stream.c
26@@ -159,15 +159,18 @@ soup_body_input_stream_read_chunked (SoupBodyInputStream *bistream,
27 again:
28 switch (bistream->priv->chunked_state) {
29 case SOUP_BODY_INPUT_STREAM_STATE_CHUNK_SIZE:
30- nread = soup_filter_input_stream_read_line (
31- fstream, metabuf, sizeof (metabuf), blocking,
32- &got_line, cancellable, error);
33- if (nread <= 0)
34+ nread = soup_filter_input_stream_read_until (
35+ fstream, metabuf, sizeof (metabuf),
36+ "\r\n", 2, blocking, TRUE,
37+ &got_line, cancellable, error);
38+ if (nread < 0)
39 return nread;
40- if (!got_line) {
41- g_set_error_literal (error, G_IO_ERROR,
42- G_IO_ERROR_PARTIAL_INPUT,
43- _("Connection terminated unexpectedly"));
44+ if (nread == 0 || !got_line) {
45+ if (error && *error == NULL) {
46+ g_set_error_literal (error, G_IO_ERROR,
47+ G_IO_ERROR_PARTIAL_INPUT,
48+ ("Connection terminated unexpectedly"));
49+ }
50 return -1;
51 }
52
53@@ -180,9 +183,9 @@ again:
54
55 case SOUP_BODY_INPUT_STREAM_STATE_CHUNK:
56 nread = soup_body_input_stream_read_raw (
57- bistream, buffer,
58- MIN (count, bistream->priv->read_length),
59- blocking, cancellable, error);
60+ bistream, buffer,
61+ MIN (count, bistream->priv->read_length),
62+ blocking, cancellable, error);
63 if (nread > 0) {
64 bistream->priv->read_length -= nread;
65 if (bistream->priv->read_length == 0)
66@@ -191,16 +194,19 @@ again:
67 return nread;
68
69 case SOUP_BODY_INPUT_STREAM_STATE_CHUNK_END:
70- nread = soup_filter_input_stream_read_line (
71- SOUP_FILTER_INPUT_STREAM (bistream->priv->base_stream),
72- metabuf, sizeof (metabuf), blocking,
73- &got_line, cancellable, error);
74- if (nread <= 0)
75+ nread = soup_filter_input_stream_read_until (
76+ SOUP_FILTER_INPUT_STREAM (bistream->priv->base_stream),
77+ metabuf, sizeof (metabuf),
78+ "\r\n", 2, blocking, TRUE,
79+ &got_line, cancellable, error);
80+ if (nread < 0)
81 return nread;
82- if (!got_line) {
83- g_set_error_literal (error, G_IO_ERROR,
84- G_IO_ERROR_PARTIAL_INPUT,
85- _("Connection terminated unexpectedly"));
86+ if (nread == 0 || !got_line) {
87+ if (error && *error == NULL) {
88+ g_set_error_literal (error, G_IO_ERROR,
89+ G_IO_ERROR_PARTIAL_INPUT,
90+ _("Connection terminated unexpectedly"));
91+ }
92 return -1;
93 }
94
95@@ -208,13 +214,23 @@ again:
96 break;
97
98 case SOUP_BODY_INPUT_STREAM_STATE_TRAILERS:
99- nread = soup_filter_input_stream_read_line (
100- fstream, buffer, count, blocking,
101- &got_line, cancellable, error);
102- if (nread <= 0)
103+ nread = soup_filter_input_stream_read_until (
104+ fstream, metabuf, sizeof (metabuf),
105+ "\r\n", 2, blocking, TRUE,
106+ &got_line, cancellable, error);
107+ if (nread < 0)
108 return nread;
109
110- if (strncmp (buffer, "\r\n", nread) || strncmp (buffer, "\n", nread)) {
111+ if (nread == 0) {
112+ if (error && *error == NULL) {
113+ g_set_error_literal (error, G_IO_ERROR,
114+ G_IO_ERROR_PARTIAL_INPUT,
115+ _("Connection terminated unexpectedly"));
116+ }
117+ return -1;
118+ }
119+
120+ if (nread == 2 && strncmp (metabuf, "\r\n", nread) == 0) {
121 bistream->priv->chunked_state = SOUP_BODY_INPUT_STREAM_STATE_DONE;
122 bistream->priv->eof = TRUE;
123 }
124--
1252.34.1
126
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2369.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2369.patch
new file mode 100644
index 0000000000..814672caca
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2369.patch
@@ -0,0 +1,33 @@
1From 5c4e65fd99ff4e3ae76c7985c5e160bb07ea0f92 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Wed, 25 Mar 2026 11:24:36 +0800
4Subject: [PATCH] sniffer: Handle potential underflow
5
6Closes #498
7
8Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/commit/b91bbd7d7888c85b17a8b33173caa806dff51681]
9CVE: CVE-2026-2369
10
11Signed-off-by: Changqing Li <changqing.li@windriver.com>
12---
13 libsoup/soup-content-sniffer.c | 4 ++++
14 1 file changed, 4 insertions(+)
15
16diff --git a/libsoup/soup-content-sniffer.c b/libsoup/soup-content-sniffer.c
17index 3edc568..b091bca 100644
18--- a/libsoup/soup-content-sniffer.c
19+++ b/libsoup/soup-content-sniffer.c
20@@ -504,6 +504,10 @@ sniff_unknown (SoupContentSniffer *sniffer, SoupBuffer *buffer,
21 if (!sniff_scriptable && type_row->scriptable)
22 continue;
23
24+ /* Ensure we have data to sniff - prevents underflow in resource_length - 1 */
25+ if (resource_length == 0)
26+ continue;
27+
28 if (type_row->has_ws) {
29 guint index_stream = 0;
30 guint index_pattern = 0;
31--
322.34.1
33
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2443.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2443.patch
new file mode 100644
index 0000000000..99d42acb1e
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2026-2443.patch
@@ -0,0 +1,135 @@
1From 7bb3115a296154e3f465900ea5c984a493385a7f Mon Sep 17 00:00:00 2001
2From: Philip Withnall <pwithnall@gnome.org>
3Date: Fri, 19 Dec 2025 23:49:05 +0000
4Subject: [PATCH] Fix CVE-2026-2443
5
6Upstream-Status: Backport [
7c1796442 soup-message-headers: Rework Range response statuses to match Apache
8191ef313 soup-message-headers: Fix rejection of Range headers with trailing garbage
9be677bea soup-message-headers: Fix parsing of invalid Range suffix lengths
102bbfdfe8 soup-message-headers: Reject ranges where end is before start
11739bf7cb soup-message-headers: Reject invalid Range ends longer than the content
12]
13CVE: CVE-2026-2443
14
15Signed-off-by: Changqing Li <changqing.li@windriver.com>
16---
17 libsoup/soup-message-headers.c | 62 ++++++++++++++++++++++++----------
18 1 file changed, 44 insertions(+), 18 deletions(-)
19
20diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
21index bb20bbb..535cf14 100644
22--- a/libsoup/soup-message-headers.c
23+++ b/libsoup/soup-message-headers.c
24@@ -943,10 +943,16 @@ sort_ranges (gconstpointer a, gconstpointer b)
25 }
26
27 /* like soup_message_headers_get_ranges(), except it returns:
28- * SOUP_STATUS_OK if there is no Range or it should be ignored.
29- * SOUP_STATUS_PARTIAL_CONTENT if there is at least one satisfiable range.
30- * SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE if @check_satisfiable
31- * is %TRUE and the request is not satisfiable given @total_length.
32+ * - SOUP_STATUS_OK if there is no Range or it should be ignored due to being
33+ * entirely invalid.
34+ * - SOUP_STATUS_PARTIAL_CONTENT if there is at least one satisfiable range.
35+ * - SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE if @check_satisfiable
36+ * is %TRUE, the Range is valid, but no part of the request is satisfiable
37+ * given @total_length.
38+ *
39+ * @ranges and @length are only set if SOUP_STATUS_PARTIAL_CONTENT is returned.
40+ *
41+ * See https://httpwg.org/specs/rfc9110.html#field.range
42 */
43 guint
44 soup_message_headers_get_ranges_internal (SoupMessageHeaders *hdrs,
45@@ -960,22 +966,28 @@ soup_message_headers_get_ranges_internal (SoupMessageHeaders *hdrs,
46 GArray *array;
47 char *spec, *end;
48 guint status = SOUP_STATUS_OK;
49+ gboolean is_all_valid = TRUE;
50
51 if (!range || strncmp (range, "bytes", 5) != 0)
52- return status;
53+ return SOUP_STATUS_OK; /* invalid header or unknown range unit */
54
55 range += 5;
56 while (g_ascii_isspace (*range))
57 range++;
58 if (*range++ != '=')
59- return status;
60+ return SOUP_STATUS_OK; /* invalid header */
61 while (g_ascii_isspace (*range))
62 range++;
63
64 range_list = soup_header_parse_list (range);
65 if (!range_list)
66- return status;
67+ return SOUP_STATUS_OK; /* invalid list */
68
69+ /* Loop through the ranges and modify the status accordingly. Default to
70+ * status 200 (OK, ignoring the ranges). Switch to status 206 (Partial
71+ * Content) if there is at least one partially valid range. Switch to
72+ * status 416 (Range Not Satisfiable) if there are no partially valid
73+ * ranges at all. */
74 array = g_array_new (FALSE, FALSE, sizeof (SoupRange));
75 for (r = range_list; r; r = r->next) {
76 SoupRange cur;
77@@ -988,30 +1000,44 @@ soup_message_headers_get_ranges_internal (SoupMessageHeaders *hdrs,
78 cur.start = g_ascii_strtoull (spec, &end, 10);
79 if (*end == '-')
80 end++;
81- if (*end) {
82+ if (*end)
83 cur.end = g_ascii_strtoull (end, &end, 10);
84- if (cur.end < cur.start) {
85- status = SOUP_STATUS_OK;
86- break;
87- }
88- } else
89+ else
90 cur.end = total_length - 1;
91 }
92+
93 if (*end) {
94- status = SOUP_STATUS_OK;
95- break;
96- } else if (check_satisfiable && cur.start >= total_length) {
97- if (status == SOUP_STATUS_OK)
98- status = SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE;
99+ /* Junk after the range */
100+ is_all_valid = FALSE;
101+ continue;
102+ }
103+
104+ if (cur.end < cur.start) {
105+ is_all_valid = FALSE;
106+ continue;
107+ }
108+
109+ g_assert (cur.start >= 0);
110+ if (cur.end >= total_length)
111+ cur.end = total_length - 1;
112+
113+ if (cur.start >= total_length) {
114+ /* Range is valid, but unsatisfiable */
115 continue;
116 }
117
118+ /* We have at least one (at least partially) satisfiable range */
119 g_array_append_val (array, cur);
120 status = SOUP_STATUS_PARTIAL_CONTENT;
121 }
122 soup_header_free_list (range_list);
123
124 if (status != SOUP_STATUS_PARTIAL_CONTENT) {
125+ g_assert (status == SOUP_STATUS_OK);
126+
127+ if (is_all_valid && check_satisfiable)
128+ status = SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE;
129+
130 g_array_free (array, TRUE);
131 return status;
132 }
133--
1342.34.1
135
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
index 68ec576d9b..e588e60cd5 100644
--- a/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
@@ -40,6 +40,16 @@ SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \
40 file://CVE-2025-4948.patch \ 40 file://CVE-2025-4948.patch \
41 file://CVE-2025-4969.patch \ 41 file://CVE-2025-4969.patch \
42 file://CVE-2025-4945.patch \ 42 file://CVE-2025-4945.patch \
43 file://CVE-2025-14523.patch \
44 file://CVE-2025-32049-1.patch \
45 file://CVE-2025-32049-2.patch \
46 file://CVE-2026-2443.patch \
47 file://CVE-2026-1801.patch \
48 file://CVE-2026-1761.patch \
49 file://CVE-2026-1539.patch \
50 file://CVE-2026-2369.patch \
51 file://CVE-2026-1760.patch \
52 file://CVE-2026-1467.patch \
43" 53"
44SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" 54SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13"
45 55
diff --git a/meta-oe/recipes-support/libtar/files/0001-compat-convert-K-R-function-definitions-to-ANSI-C-pr.patch b/meta-oe/recipes-support/libtar/files/0001-compat-convert-K-R-function-definitions-to-ANSI-C-pr.patch
new file mode 100644
index 0000000000..4585c586b4
--- /dev/null
+++ b/meta-oe/recipes-support/libtar/files/0001-compat-convert-K-R-function-definitions-to-ANSI-C-pr.patch
@@ -0,0 +1,62 @@
1From 5ea04d70221a18cbd711a9d570c81ef0b9be6765 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 10 Apr 2026 18:41:04 -0700
4Subject: [PATCH] compat: convert K&R function definitions to ANSI C prototypes
5
6Replace old-style K&R parameter declarations with modern ANSI C
7function prototypes in basename.c, dirname.c, and strmode.c.
8
9Required for compatibility with clang 22 under -std=gnu23, which
10no longer supports K&R-style function definitions.
11
12Upstream-Status: Pending
13Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
14---
15 compat/basename.c | 3 +--
16 compat/dirname.c | 3 +--
17 compat/strmode.c | 4 +---
18 3 files changed, 3 insertions(+), 7 deletions(-)
19
20diff --git a/compat/basename.c b/compat/basename.c
21index 2ac1e13..7b0384a 100644
22--- a/compat/basename.c
23+++ b/compat/basename.c
24@@ -36,8 +36,7 @@ static char rcsid[] = "$OpenBSD: basename.c,v 1.4 1999/05/30 17:10:30 espie Exp
25 #include <sys/param.h>
26
27 char *
28-openbsd_basename(path)
29- const char *path;
30+openbsd_basename(const char *path)
31 {
32 static char bname[MAXPATHLEN];
33 register const char *endp, *startp;
34diff --git a/compat/dirname.c b/compat/dirname.c
35index 986db4a..6c1231d 100644
36--- a/compat/dirname.c
37+++ b/compat/dirname.c
38@@ -36,8 +36,7 @@ static char rcsid[] = "$OpenBSD: dirname.c,v 1.4 1999/05/30 17:10:30 espie Exp $
39 #include <sys/param.h>
40
41 char *
42-openbsd_dirname(path)
43- const char *path;
44+openbsd_dirname (const char *path)
45 {
46 static char bname[MAXPATHLEN];
47 register const char *endp;
48diff --git a/compat/strmode.c b/compat/strmode.c
49index 5e7f15e..2ffab61 100644
50--- a/compat/strmode.c
51+++ b/compat/strmode.c
52@@ -40,9 +40,7 @@ static char *rcsid = "$OpenBSD: strmode.c,v 1.3 1997/06/13 13:57:20 deraadt Exp
53 #include <string.h>
54
55 void
56-strmode(mode, p)
57- register mode_t mode;
58- register char *p;
59+strmode (register mode_t mode, register char *p)
60 {
61 /* print type */
62 switch (mode & S_IFMT) {
diff --git a/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
index a17509d2e5..39d410064e 100644
--- a/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
+++ b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
@@ -20,6 +20,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz \
20 file://CVE-2021-33643-CVE-2021-33644.patch \ 20 file://CVE-2021-33643-CVE-2021-33644.patch \
21 file://CVE-2021-33640-CVE-2021-33645-CVE-2021-33646.patch \ 21 file://CVE-2021-33640-CVE-2021-33645-CVE-2021-33646.patch \
22 file://CVE-2013-4420.patch \ 22 file://CVE-2013-4420.patch \
23 file://0001-compat-convert-K-R-function-definitions-to-ANSI-C-pr.patch \
23 " 24 "
24 25
25S = "${UNPACKDIR}/${BPN}" 26S = "${UNPACKDIR}/${BPN}"
diff --git a/meta-oe/recipes-support/libvarlink/libvarlink/0001-transport-tool-use-const-for-strchr-return-pointers.patch b/meta-oe/recipes-support/libvarlink/libvarlink/0001-transport-tool-use-const-for-strchr-return-pointers.patch
new file mode 100644
index 0000000000..348dc88838
--- /dev/null
+++ b/meta-oe/recipes-support/libvarlink/libvarlink/0001-transport-tool-use-const-for-strchr-return-pointers.patch
@@ -0,0 +1,96 @@
1From 27e4f4504b3c60356b9507e926aae2b82ba47275 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Wed, 15 Apr 2026 11:10:01 -0700
4Subject: [PATCH] transport,tool: use const for strchr return pointers
5
6Fixes errors seen after c23 implemented in glibc
7
8lib/transport-device.c:13:14: error: assigning to 'char *' from 'const char *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
9 13 | parm = strchr(address, ';');
10 | ^ ~~~~~~~~~~~~~~~~~~~~
111 error generated.
12
13Upstream-Status: Submitted [https://github.com/varlink/libvarlink/pull/85]
14Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
15---
16 lib/transport-device.c | 2 +-
17 lib/transport-tcp.c | 4 ++--
18 lib/transport-unix.c | 2 +-
19 tool/command-format.c | 2 +-
20 tool/command-info.c | 2 +-
21 5 files changed, 6 insertions(+), 6 deletions(-)
22
23diff --git a/lib/transport-device.c b/lib/transport-device.c
24index 0b8cec5..205eac4 100644
25--- a/lib/transport-device.c
26+++ b/lib/transport-device.c
27@@ -7,7 +7,7 @@
28 #include <fcntl.h>
29
30 static int strip_parameters(const char *address, char **devicep) {
31- char *parm;
32+ const char *parm;
33 _cleanup_(freep) char *device = NULL;
34
35 parm = strchr(address, ';');
36diff --git a/lib/transport-tcp.c b/lib/transport-tcp.c
37index 92a0e7b..fff2379 100644
38--- a/lib/transport-tcp.c
39+++ b/lib/transport-tcp.c
40@@ -10,7 +10,7 @@
41 #include <sys/socket.h>
42
43 static int strip_parameters(const char *address, char **hostp) {
44- char *parm;
45+ const char *parm;
46 _cleanup_(freep) char *host = NULL;
47
48 parm = strchr(address, ';');
49@@ -34,7 +34,7 @@ static void freeaddrinfop(struct addrinfo **ai) {
50 static int resolve_addrinfo(const char *address, struct addrinfo **resultp) {
51 _cleanup_(freep) char *host = NULL;
52 char *endptr;
53- char *port;
54+ const char *port;
55 struct addrinfo hints = {
56 .ai_family = AF_UNSPEC,
57 .ai_socktype = SOCK_STREAM,
58diff --git a/lib/transport-unix.c b/lib/transport-unix.c
59index 5dc3853..2414b29 100644
60--- a/lib/transport-unix.c
61+++ b/lib/transport-unix.c
62@@ -10,7 +10,7 @@
63 #include <unistd.h>
64
65 static int strip_parameters(const char *address, char **pathp) {
66- char *parm;
67+ const char *parm;
68 _cleanup_(freep) char *path = NULL;
69
70 parm = strchr(address, ';');
71diff --git a/tool/command-format.c b/tool/command-format.c
72index 6932bc4..0f5ef8c 100644
73--- a/tool/command-format.c
74+++ b/tool/command-format.c
75@@ -155,7 +155,7 @@ static long format_run(Cli *UNUSED(cli), int argc, char **argv) {
76 static long format_complete(Cli *cli, int argc, char **UNUSED(argv), const char *current) {
77 _cleanup_(freep) char *prefix = NULL;
78 DIR *dir;
79- char *p;
80+ const char *p;
81
82 if (argc != 1)
83 return 0;
84diff --git a/tool/command-info.c b/tool/command-info.c
85index 571b6fd..9d252f7 100644
86--- a/tool/command-info.c
87+++ b/tool/command-info.c
88@@ -137,7 +137,7 @@ static long info_run(Cli *cli, int argc, char **argv) {
89 static long info_complete(Cli *UNUSED(cli), int argc, char **UNUSED(argv), const char *current) {
90 _cleanup_(freep) char *prefix = NULL;
91 DIR *dir;
92- char *p;
93+ const char *p;
94
95 if (argc != 1)
96 return 0;
diff --git a/meta-oe/recipes-support/libvarlink/libvarlink_24.0.1.bb b/meta-oe/recipes-support/libvarlink/libvarlink_24.0.1.bb
new file mode 100644
index 0000000000..1d1419a878
--- /dev/null
+++ b/meta-oe/recipes-support/libvarlink/libvarlink_24.0.1.bb
@@ -0,0 +1,19 @@
1SUMMARY = "Varlink C library and command line tool"
2HOMEPAGE = "https://varlink.org/"
3DESCRIPTION = "Varlink is an interface description format and protocol that aims \
4to make services accessible to both humans and machines in the simplest feasible way."
5SECION = "devel"
6LICENSE = "Apache-2.0"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
8
9SRC_URI = "git://github.com/varlink/libvarlink.git;protocol=https;branch=master;tag=v${PV} \
10 file://0001-transport-tool-use-const-for-strchr-return-pointers.patch \
11 "
12SRCREV = "2ad4ec7ca62e148dbf0ad98646ec68c2e7e8a88e"
13
14inherit meson bash-completion lib_package
15
16do_install:append() {
17 # vim integration is not needed
18 rm -rf ${D}${datadir}/vim
19}
diff --git a/meta-oe/recipes-support/log4c/log4c/0001-sd-malloc-convert-K-R-function-declarations-to-ANSI-.patch b/meta-oe/recipes-support/log4c/log4c/0001-sd-malloc-convert-K-R-function-declarations-to-ANSI-.patch
new file mode 100644
index 0000000000..fae1a2d0c2
--- /dev/null
+++ b/meta-oe/recipes-support/log4c/log4c/0001-sd-malloc-convert-K-R-function-declarations-to-ANSI-.patch
@@ -0,0 +1,92 @@
1From b0ecadec662a8e35b017e16e92c5b1a04ed72598 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Sat, 11 Apr 2026 00:24:17 -0700
4Subject: [PATCH] sd/malloc: convert K&R function declarations to ANSI C
5 prototypes
6
7Replace old-style K&R parameter declarations with modern ANSI C
8(C89/C90) function prototypes across all functions in malloc.c.
9Also remove trailing whitespace in fixup_null_alloc().
10
11Upstream-Status: Pending
12Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
13---
14 src/sd/malloc.c | 23 ++++++++---------------
15 1 file changed, 8 insertions(+), 15 deletions(-)
16
17diff --git a/src/sd/malloc.c b/src/sd/malloc.c
18index 7d241ad..43dd460 100644
19--- a/src/sd/malloc.c
20+++ b/src/sd/malloc.c
21@@ -41,8 +41,7 @@ typedef void (*sd_malloc_handler_t)();
22 static sd_malloc_handler_t handler = NULL;
23
24 static void *
25-fixup_null_alloc (n)
26- size_t n;
27+fixup_null_alloc (size_t n)
28 {
29 void* p = 0;
30
31@@ -62,8 +61,8 @@ fixup_null_alloc (n)
32 allocated = (char *) sbrk (0) - (char *) &environ;
33 sd_error("\nCannot allocate %lu bytes after allocating %lu bytes\n",
34 (unsigned long) n, (unsigned long) allocated);
35-
36- if (handler)
37+
38+ if (handler)
39 handler();
40 else {
41 sd_error("\n\tMemory exhausted !! Aborting.\n");
42@@ -75,8 +74,7 @@ fixup_null_alloc (n)
43 }
44
45 sd_malloc_handler_t
46-sd_malloc_set_handler(a_handler)
47- sd_malloc_handler_t a_handler;
48+sd_malloc_set_handler(sd_malloc_handler_t a_handler)
49 {
50 sd_malloc_handler_t previous = handler;
51
52@@ -87,8 +85,7 @@ sd_malloc_set_handler(a_handler)
53 /* Allocate N bytes of memory dynamically, with error checking. */
54
55 void *
56-sd_malloc (n)
57- size_t n;
58+sd_malloc (size_t n)
59 {
60 void *p;
61
62@@ -101,8 +98,7 @@ sd_malloc (n)
63 /* Allocate memory for N elements of S bytes, with error checking. */
64
65 void *
66-sd_calloc (n, s)
67- size_t n, s;
68+sd_calloc (size_t n, size_t s)
69 {
70 void *p;
71
72@@ -117,9 +113,7 @@ sd_calloc (n, s)
73 If P is NULL, run sd_malloc. */
74
75 void *
76-sd_realloc (p, n)
77- void *p;
78- size_t n;
79+sd_realloc (void *p, size_t n)
80 {
81 if (p == 0)
82 return sd_malloc (n);
83@@ -132,8 +126,7 @@ sd_realloc (p, n)
84 /* Return a newly allocated copy of STRING. */
85
86 char *
87-sd_strdup (string)
88- const char *string;
89+sd_strdup (const char *string)
90 {
91 return strcpy (sd_malloc (strlen (string) + 1), string);
92 }
diff --git a/meta-oe/recipes-support/log4c/log4c_1.2.4.bb b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
index a0bd40b03a..eca800dc5e 100644
--- a/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
+++ b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
6SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ 6SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
7 file://fix_configure_with-expat.patch \ 7 file://fix_configure_with-expat.patch \
8 file://0001-Use-the-API-properly-in-the-example-format-security-.patch \ 8 file://0001-Use-the-API-properly-in-the-example-format-security-.patch \
9 file://0001-sd-malloc-convert-K-R-function-declarations-to-ANSI-.patch \
9 " 10 "
10 11
11SRC_URI[sha256sum] = "5991020192f52cc40fa852fbf6bbf5bd5db5d5d00aa9905c67f6f0eadeed48ea" 12SRC_URI[sha256sum] = "5991020192f52cc40fa852fbf6bbf5bd5db5d5d00aa9905c67f6f0eadeed48ea"
diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.12.2.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.12.2.bb
index bfb75718f2..0c572d1bd3 100644
--- a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.12.2.bb
+++ b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.12.2.bb
@@ -110,6 +110,7 @@ PACKAGES =+ "${PN}-libs"
110FILES:${PN}-libs = "${base_libdir}/lib*.so.* \ 110FILES:${PN}-libs = "${base_libdir}/lib*.so.* \
111 ${base_libdir}/multipath/lib*.so*" 111 ${base_libdir}/multipath/lib*.so*"
112RDEPENDS:${PN} += "${PN}-libs bash libgcc" 112RDEPENDS:${PN} += "${PN}-libs bash libgcc"
113RRECOMMENDS:${PN} = "kernel-module-dm-multipath"
113 114
114PROVIDES += "device-mapper-multipath" 115PROVIDES += "device-mapper-multipath"
115RPROVIDES:${PN} += "device-mapper-multipath" 116RPROVIDES:${PN} += "device-mapper-multipath"
diff --git a/meta-oe/recipes-support/nano/nano_8.7.1.bb b/meta-oe/recipes-support/nano/nano_9.0.bb
index e62529ff9b..06bb7a63ce 100644
--- a/meta-oe/recipes-support/nano/nano_8.7.1.bb
+++ b/meta-oe/recipes-support/nano/nano_9.0.bb
@@ -13,7 +13,7 @@ RDEPENDS:${PN} = "ncurses-terminfo-base"
13PV_MAJOR = "${@d.getVar('PV').split('.')[0]}" 13PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
14 14
15SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz" 15SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
16SRC_URI[sha256sum] = "76f0dcb248f2e2f1251d4ecd20fd30fb400a360a3a37c6c340e0a52c2d1cdedf" 16SRC_URI[sha256sum] = "9f384374b496110a25b73ad5a5febb384783c6e3188b37063f677ac908013fde"
17 17
18UPSTREAM_CHECK_URI = "${GNU_MIRROR}/nano" 18UPSTREAM_CHECK_URI = "${GNU_MIRROR}/nano"
19 19
diff --git a/meta-oe/recipes-support/openct/openct/0001-Fix-incompatible-pointer-type-error-with-gcc-option.patch b/meta-oe/recipes-support/openct/openct/0001-Fix-incompatible-pointer-type-error-with-gcc-option.patch
deleted file mode 100644
index 73c9d06667..0000000000
--- a/meta-oe/recipes-support/openct/openct/0001-Fix-incompatible-pointer-type-error-with-gcc-option.patch
+++ /dev/null
@@ -1,65 +0,0 @@
1From c4351058da555e1e6a2b4b15d913baee80f55865 Mon Sep 17 00:00:00 2001
2From: Wang Mingyu <wangmy@fujitsu.com>
3Date: Thu, 27 Jun 2024 06:27:18 +0000
4Subject: Fix incompatible pointer type error with gcc option
5 -Wincompatible-pointer-types
6
7| ../../../openct-0.6.20/src/ifd/ifdhandler.c: In function 'ifdhandler_run':
8| ../../../openct-0.6.20/src/ifd/ifdhandler.c:239:52: error: passing argument 2 of 'ifd_get_eventfd' from incompatible pointer type [-Wincompatible-pointer-types]
9| 239 | sock->fd = ifd_get_eventfd(reader, &sock->events);
10| | ^~~~~~~~~~~~~
11| | |
12| | int *
13| In file included from ../../../openct-0.6.20/src/ifd/internal.h:17,
14| from ../../../openct-0.6.20/src/ifd/ifdhandler.c:7:
15| ../../../openct-0.6.20/src/include/openct/ifd.h:182:65: note: expected 'short int *' but argument is of type 'int *'
16| 182 | extern int ifd_get_eventfd(ifd_reader_t *, short *);
17| | ^~~~~~~
18
19| ../../../openct-0.6.20/src/ifd/process.c: In function 'do_memory_write':
20| ../../../openct-0.6.20/src/ifd/process.c:461:61: error: passing argument 4 of 'ct_tlv_get_opaque' from incompatible pointer type [-Wincompatible-pointer-types]
21| 461 | || !ct_tlv_get_opaque(args, CT_TAG_DATA, &data, &data_len))
22| | ^~~~~~~~~
23| | |
24| | unsigned int *
25| In file included from ../../../openct-0.6.20/src/ifd/process.c:20:
26| ../../../openct-0.6.20/src/include/openct/tlv.h:40:62: note: expected 'size_t *' {aka 'long unsigned int *'} but argument is of type 'unsigned int *'
27| 40 | ifd_tag_t, unsigned char **, size_t *);
28
29Upstream-Status: Submitted
30
31Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
32---
33 src/ifd/ifdhandler.c | 2 +-
34 src/ifd/process.c | 2 +-
35 2 files changed, 2 insertions(+), 2 deletions(-)
36
37diff --git a/src/ifd/ifdhandler.c b/src/ifd/ifdhandler.c
38index 12686c9..ebd1b53 100644
39--- a/src/ifd/ifdhandler.c
40+++ b/src/ifd/ifdhandler.c
41@@ -236,7 +236,7 @@ static void ifdhandler_run(ifd_reader_t * reader)
42 sock->fd = -1;
43 }
44 else {
45- sock->fd = ifd_get_eventfd(reader, &sock->events);
46+ sock->fd = ifd_get_eventfd(reader, (short int *)&sock->events);
47 }
48 if (sock->fd == -1) {
49 ifd_debug(1, "events inactive for reader %s", reader->name);
50diff --git a/src/ifd/process.c b/src/ifd/process.c
51index 4563bdf..7088a76 100644
52--- a/src/ifd/process.c
53+++ b/src/ifd/process.c
54@@ -458,7 +458,7 @@ static int do_memory_write(ifd_reader_t * reader, int unit,
55 return IFD_ERROR_INVALID_SLOT;
56
57 if (ct_tlv_get_int(args, CT_TAG_ADDRESS, &address) == 0
58- || !ct_tlv_get_opaque(args, CT_TAG_DATA, &data, &data_len))
59+ || !ct_tlv_get_opaque(args, CT_TAG_DATA, &data, (size_t *)&data_len))
60 return IFD_ERROR_MISSING_ARG;
61
62 rc = ifd_card_write_memory(reader, unit, address, data, data_len);
63--
642.34.1
65
diff --git a/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch b/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch
deleted file mode 100644
index 9bd3d18d6e..0000000000
--- a/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 146b5116140d719e4e9ae19748c0b6dee7d82f96 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 22 May 2023 22:01:28 -0700
4Subject: [PATCH] m4: Just emit the first line of compiler version
5
6Avoids emitting buildpaths into comments
7Fixes
8WARNING: openct-0.6.20-r0 do_package_qa: QA Issue: File /usr/include/openct/types.h in package openct-dev contains reference to TMPDIR [buildpaths]
9
10Upstream-Status: Pending
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 m4/ac_create_stdint_h.m4 | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/m4/ac_create_stdint_h.m4 b/m4/ac_create_stdint_h.m4
17index 66de704..4b7223a 100644
18--- a/m4/ac_create_stdint_h.m4
19+++ b/m4/ac_create_stdint_h.m4
20@@ -110,7 +110,7 @@ echo "#define" $_ac_stdint_h "1" >>$ac_stdint_h
21 echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint_h
22 echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint_h
23 if test "$GCC" = "yes" ; then
24- echo "/* generated using a gnu compiler version" `$CC --version` "*/" \
25+ echo "/* generated using a gnu compiler version" `$CC --version|head -1` "*/" \
26 >>$ac_stdint_h
27 else
28 echo "/* generated using $CC */" >>$ac_stdint_h
29--
302.40.1
31
diff --git a/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch b/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
deleted file mode 100644
index e2401bb31b..0000000000
--- a/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From e0d3e0bb1e38ff851696a7d8826e651d364ad8ce Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Fri, 5 Dec 2014 02:00:57 +0900
4Subject: [PATCH 1/2] etc/openct.udev.in: disablePROGRAM
5
6Bug fix: https://bugzilla.redhat.com/show_bug.cgi?id=287871
7
8Upstream-Status: Pending
9
10Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
11---
12 etc/openct.udev.in | 3 ++-
13 1 file changed, 2 insertions(+), 1 deletion(-)
14
15diff --git a/etc/openct.udev.in b/etc/openct.udev.in
16index d11d0e1..48083c9 100644
17--- a/etc/openct.udev.in
18+++ b/etc/openct.udev.in
19@@ -22,7 +22,8 @@ ACTION!="add", GOTO="openct_usb_rules_end"
20 # 2010-01-06 removed, as latest udev doesn't know WAIT_FOR_ATTR any more.
21
22 # sleep for 100ms - the wait_for_sysfs might not be enough
23-PROGRAM="/bin/sleep 0.1"
24+# Disabled in this package - see https://bugzilla.redhat.com/287871
25+# PROGRAM="/bin/sleep 0.1"
26
27 # ccid
28 ATTR{bInterfaceClass}=="0b", ATTR{bInterfaceSubClass}=="00", ATTR{bInterfaceProtocol}=="00", ATTRS{idVendor}=="?*" RUN+="@udevdir@/openct_usb /dev/$parent"
29--
301.8.4.2
31
diff --git a/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch b/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
deleted file mode 100644
index 22eda729fb..0000000000
--- a/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From d93985a137b553b2723235d03bda341dab14064f Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Fri, 5 Dec 2014 02:04:03 +0900
4Subject: [PATCH 2/2] etc/openct_usb.in: modify UDEVINFO
5
6this patch is from Fedora
7
8Upstream-Status: Pending
9
10Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
11---
12 etc/openct_usb.in | 6 +++---
13 1 file changed, 3 insertions(+), 3 deletions(-)
14
15diff --git a/etc/openct_usb.in b/etc/openct_usb.in
16index 32f91aa..917467d 100644
17--- a/etc/openct_usb.in
18+++ b/etc/openct_usb.in
19@@ -15,10 +15,10 @@ if [ -z "$DEVNAME" ]; then
20 # Guess udev info interface.
21 # Newer udev uses udevadm
22 #
23- if which udevinfo > /dev/null 2>&1; then
24- UDEVINFO="udevinfo"
25- else
26+ if which udevadm > /dev/null 2>&1; then
27 UDEVINFO="udevadm info"
28+ else
29+ UDEVINFO="udevinfo"
30 fi
31 DEVNAME=/dev/$($UDEVINFO --query=name --path=$(dirname $DEVPATH))
32 fi
33--
341.8.4.2
35
diff --git a/meta-oe/recipes-support/openct/openct/openct.init b/meta-oe/recipes-support/openct/openct/openct.init
deleted file mode 100644
index c6896095e3..0000000000
--- a/meta-oe/recipes-support/openct/openct/openct.init
+++ /dev/null
@@ -1,89 +0,0 @@
1#!/bin/sh
2#
3# openct This shell script takes care of starting and stopping OpenCT.
4#
5# chkconfig: 2345 24 89
6# description: OpenCT is a middleware framework for smart card terminals.
7#
8# processname: ifdhandler
9# config: /etc/openct.conf
10
11### BEGIN INIT INFO
12# Provides: openct
13# Default-Start: 2 3 4 5
14# Default-Stop: 0 1 6
15# Should-Start: $syslog $network
16# Should-Stop: $syslog $network
17# Short-Description: Middleware framework for smart card terminals
18# Description: This starts/stops the OpenCT middleware framework support
19# for smart card terminals.
20### END INIT INFO
21
22. /etc/init.d/functions
23
24exec="/usr/sbin/openct-control"
25prog=openct
26proc=ifdhandler
27
28OPENCT_OPTIONS=
29[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
30
31lockfile=/var/lock/subsys/$prog
32
33start() {
34 retval=0
35 if ! status $proc >/dev/null 2>&1 ; then
36 action $"Initializing OpenCT smart card terminals: " \
37 $exec $OPENCT_OPTIONS init
38 retval=$?
39 [ $retval -eq 0 ] && touch $lockfile
40 fi
41 return $retval
42}
43
44stop() {
45 if status $proc >/dev/null 2>&1 ; then
46 action $"Stopping OpenCT smart card terminals: " \
47 $exec $OPENCT_OPTIONS shutdown
48 fi
49 retval=$?
50 if [ $retval -eq 0 ] ; then
51 rm -f /var/run/openct/status
52 rm -f $lockfile
53 fi
54 return $retval
55}
56
57restart() {
58 stop
59 start
60}
61
62oct_status() {
63 status $proc
64 retval=$?
65 if [ -e /var/run/openct/status ] ; then
66 $exec $OPENCT_OPTIONS status
67 [ -e /var/run/openct/status ] && \
68 echo $"Waiting for reader attach/detach events..."
69 fi
70 return $retval
71}
72
73case "$1" in
74 start|stop|restart)
75 $1
76 ;;
77 reload|force-reload)
78 restart
79 ;;
80 status)
81 oct_status
82 ;;
83 try-restart|condrestart)
84 [ ! -f $lockfile ] || restart
85 ;;
86 *)
87 echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
88 exit 2
89esac
diff --git a/meta-oe/recipes-support/openct/openct/openct.service b/meta-oe/recipes-support/openct/openct/openct.service
deleted file mode 100644
index 57de8c0a88..0000000000
--- a/meta-oe/recipes-support/openct/openct/openct.service
+++ /dev/null
@@ -1,13 +0,0 @@
1[Unit]
2Description=Openct Middleware framework for smart card terminals
3After=syslog.target network.target
4
5[Service]
6EnvironmentFile=-/etc/sysconfig/openct
7ExecStart=/usr/sbin/openct-control $OPENCT_OPTIONS init
8ExecStop=/usr/sbin/openct-control $OPENCT_OPTIONS shutdown
9RemainAfterExit=yes
10KillMode=mixed
11
12[Install]
13WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/openct/openct/openct.sysconfig b/meta-oe/recipes-support/openct/openct/openct.sysconfig
deleted file mode 100644
index ffc270790f..0000000000
--- a/meta-oe/recipes-support/openct/openct/openct.sysconfig
+++ /dev/null
@@ -1,5 +0,0 @@
1# -*- sh -*-
2# Extra options to pass to openct-control.
3# Consult "/usr/sbin/openct-control -h" for available options.
4#
5OPENCT_OPTIONS=""
diff --git a/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-oe/recipes-support/openct/openct_0.6.20.bb
deleted file mode 100644
index c7b0d0d56d..0000000000
--- a/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ /dev/null
@@ -1,91 +0,0 @@
1SUMMARY = "Middleware framework for smart card terminals"
2HOMEPAGE = "https://github.com/OpenSC/openct/wiki"
3DESCRIPTION = " \
4OpenCT implements drivers for several smart card readers. \
5It comes as driver in ifdhandler format for PC/SC-Lite, \
6as CT-API driver, or as a small and lean middleware, \
7so applications can use it with minimal overhead. \
8OpenCT also has a primitive mechanism to export smart card \
9readers to remote machines via TCP/IP."
10
11DEPENDS += "libtool pcsc-lite libusb-compat"
12
13SRC_URI = " \
14 https://downloads.sourceforge.net/project/opensc/${BPN}/${BPN}-${PV}.tar.gz \
15 file://etc-openct.udev.in-disablePROGRAM.patch \
16 file://etc-openct_usb.in-modify-UDEVINFO.patch \
17 file://0001-m4-Just-emit-the-first-line-of-compiler-version.patch \
18 file://openct.init \
19 file://openct.sysconfig \
20 file://openct.service \
21 file://0001-Fix-incompatible-pointer-type-error-with-gcc-option.patch \
22"
23
24SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
25
26UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/opensc/files/openct/"
27
28LICENSE = "LGPL-2.0-or-later"
29LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
30
31inherit systemd
32SYSTEMD_SERVICE:${PN} += "openct.service "
33SYSTEMD_AUTO_ENABLE = "enable"
34
35EXTRA_OECONF = " \
36 --disable-static \
37 --enable-usb \
38 --enable-pcsc \
39 --enable-doc \
40 --enable-api-doc \
41 --with-udev=${nonarch_libdir}/udev \
42 --with-bundle=${libdir}/pcsc/drivers \
43"
44
45inherit autotools pkgconfig
46
47FILES:${PN} += " \
48 ${libdir}/ctapi \
49 ${nonarch_libdir}/udev \
50 ${libdir}/openct-ifd.so \
51 ${libdir}/pcsc \
52"
53
54FILES:${PN}-dbg += " \
55 ${libdir}/ctapi/.debug \
56 ${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
57"
58
59INSANE_SKIP:${PN} += "dev-deps"
60
61do_install[cleandirs] += "${D}"
62
63do_install () {
64 install -d ${D}${sysconfdir}
65 # fix up hardcoded paths
66 sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
67 ${UNPACKDIR}/openct.service ${UNPACKDIR}/openct.init
68
69 oe_runmake install DESTDIR=${D}
70 install -dm 755 ${D}${libdir}/ctapi/
71 mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
72 install -Dpm 644 etc/openct.udev ${D}${nonarch_libdir}/udev/rules.d/60-openct.rules
73 install -pm 644 etc/openct.conf ${D}${sysconfdir}/openct.conf
74
75 install -Dpm 755 ${UNPACKDIR}/openct.init ${D}${sysconfdir}/init.d/openct
76 install -Dpm 644 ${UNPACKDIR}/openct.sysconfig ${D}${sysconfdir}/sysconfig/openct
77
78 install -d ${D}${systemd_unitdir}/system
79 install -m 644 ${UNPACKDIR}/openct.service ${D}${systemd_unitdir}/system
80
81 so=$(find ${D} -name \*.so | sed "s|^${D}||")
82 sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
83 install -Dpm 644 etc/reader.conf ${D}${sysconfdir}/reader.conf.d/openct.conf
84}
85
86BBCLASSEXTEND = "native"
87
88# http://errors.yoctoproject.org/Errors/Details/766890/
89# openct-0.6.20/src/ifd/ifdhandler.c:239:52: error: passing argument 2 of 'ifd_get_eventfd' from incompatible pointer type [-Wincompatible-pointer-types]
90# openct-0.6.20/src/ifd/process.c:461:61: error: passing argument 4 of 'ct_tlv_get_opaque' from incompatible pointer type [-Wincompatible-pointer-types]
91CFLAGS += "-Wno-error=incompatible-pointer-types"
diff --git a/meta-oe/recipes-support/opensc/opensc_0.26.1.bb b/meta-oe/recipes-support/opensc/opensc_0.27.1.bb
index 78258c965a..91e738e0a0 100644
--- a/meta-oe/recipes-support/opensc/opensc_0.26.1.bb
+++ b/meta-oe/recipes-support/opensc/opensc_0.27.1.bb
@@ -11,8 +11,8 @@ LICENSE = "LGPL-2.1-or-later"
11LIC_FILES_CHKSUM = "file://COPYING;md5=cb8aedd3bced19bd8026d96a8b6876d7" 11LIC_FILES_CHKSUM = "file://COPYING;md5=cb8aedd3bced19bd8026d96a8b6876d7"
12DEPENDS = "openssl" 12DEPENDS = "openssl"
13 13
14SRCREV = "043343d2df7b09d1938bc3dc313d86a96be457cc" 14SRCREV = "19868984dc4dc697af6a86d65ab32a1f19a43ea4"
15SRC_URI = "git://github.com/OpenSC/OpenSC;branch=0.26.1;protocol=https" 15SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https"
16 16
17CVE_STATUS[CVE-2024-8443] = "fixed-version: this is fixed since 0.26.0" 17CVE_STATUS[CVE-2024-8443] = "fixed-version: this is fixed since 0.26.0"
18 18
diff --git a/meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb b/meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb
index 85c521df87..af44864fa9 100644
--- a/meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb
+++ b/meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb
@@ -50,6 +50,7 @@ EXTRA_OECONF = " \
50 --disable-farstream \ 50 --disable-farstream \
51 --disable-vv \ 51 --disable-vv \
52" 52"
53CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
53 54
54# CONFIG_ARGS is used to display build info. Replace full paths by reproducible 55# CONFIG_ARGS is used to display build info. Replace full paths by reproducible
55# variables ($S, $WORKDIR) 56# variables ($S, $WORKDIR)
diff --git a/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.1.bb b/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.2.bb
index 015c2287ef..1bdb4445e5 100644
--- a/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.1.bb
+++ b/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_1.2.bb
@@ -15,7 +15,7 @@ DEPENDS = "\
15 p11-kit \ 15 p11-kit \
16" 16"
17 17
18SRCREV = "acb7086e44849d019956233348046c4f07c0670b" 18SRCREV = "c7a5c8b62a0ff012b16574f01651254ef7e664ee"
19 19
20SRC_URI = "git://github.com/latchset/${BPN}.git;branch=main;protocol=https" 20SRC_URI = "git://github.com/latchset/${BPN}.git;branch=main;protocol=https"
21 21
diff --git a/meta-oe/recipes-support/poco/poco/0003-quill-rdtsc-fallback-for-32-bit-powerpc.patch b/meta-oe/recipes-support/poco/poco/0003-quill-rdtsc-fallback-for-32-bit-powerpc.patch
new file mode 100644
index 0000000000..293321bfa8
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco/0003-quill-rdtsc-fallback-for-32-bit-powerpc.patch
@@ -0,0 +1,35 @@
1From dce2cc2886a9097971856e69737cc5c05c9239ea Mon Sep 17 00:00:00 2001
2From: Peter Marko <peter.marko@siemens.com>
3Date: Wed, 8 Apr 2026 10:54:25 +0200
4Subject: [PATCH] quill: use soft rdtsc fallback on 32-bit PowerPC
5
6Quill's rdtsc helper already avoids __rdtsc() on ARM and PPC64, but
732-bit PowerPC was not included in that guard. On powerpc targets this
8falls through to the x86-specific intrinsic and fails with:
9
10 error: '__rdtsc' was not declared in this scope
11
12Treat common 32-bit PowerPC compiler define the same way as PPC64 and
13use the existing steady_clock-based fallback.
14
15Upstream-Status: Submitted [https://github.com/odygrd/quill/pull/911]
16Signed-off-by: Peter Marko <peter.marko@siemens.com>
17---
18 dependencies/quill/include/quill/core/Rdtsc.h | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/dependencies/quill/include/quill/core/Rdtsc.h b/dependencies/quill/include/quill/core/Rdtsc.h
22index 3d0ae9f26..67f26cb89 100644
23--- a/dependencies/quill/include/quill/core/Rdtsc.h
24+++ b/dependencies/quill/include/quill/core/Rdtsc.h
25@@ -95,7 +95,7 @@ QUILL_NODISCARD QUILL_ATTRIBUTE_HOT inline uint64_t rdtsc() noexcept
26 __asm__ volatile("stck %0" : "=Q"(tsc) : : "cc");
27 return tsc;
28 }
29-#elif (defined(_M_ARM) || defined(_M_ARM64) || defined(__PPC64__))
30+#elif (defined(_M_ARM) || defined(_M_ARM64) || defined(__PPC64__) || defined(__PPC__))
31 QUILL_NODISCARD QUILL_ATTRIBUTE_HOT inline uint64_t rdtsc() noexcept
32 {
33 // soft failover
34--
352.47.2
diff --git a/meta-oe/recipes-support/poco/poco_1.15.1.bb b/meta-oe/recipes-support/poco/poco_1.15.2.bb
index 7dd87606ef..5a873a1d85 100644
--- a/meta-oe/recipes-support/poco/poco_1.15.1.bb
+++ b/meta-oe/recipes-support/poco/poco_1.15.2.bb
@@ -11,9 +11,10 @@ DEPENDS = "libpcre2 utf8proc zlib"
11SRC_URI = "git://github.com/pocoproject/poco.git;branch=poco-${PV};protocol=https;tag=poco-${PV}-release \ 11SRC_URI = "git://github.com/pocoproject/poco.git;branch=poco-${PV};protocol=https;tag=poco-${PV}-release \
12 file://0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch \ 12 file://0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch \
13 file://0002-DataTest-disable-testSQLChannel-test.patch \ 13 file://0002-DataTest-disable-testSQLChannel-test.patch \
14 file://0003-quill-rdtsc-fallback-for-32-bit-powerpc.patch \
14 file://run-ptest \ 15 file://run-ptest \
15 " 16 "
16SRCREV = "a1aacbba1bda4301db01bb1a2c2ab80677756b90" 17SRCREV = "afbb1ab68f29eec7079e2fdfa04b3efdbec6529d"
17 18
18UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)" 19UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)"
19 20
@@ -23,7 +24,7 @@ inherit cmake ptest
23# By default the most commonly used poco components are built 24# By default the most commonly used poco components are built
24# Foundation is built anyway and doesn't need to be listed explicitly 25# Foundation is built anyway and doesn't need to be listed explicitly
25# these don't have dependencies outside oe-core 26# these don't have dependencies outside oe-core
26PACKAGECONFIG ??= "XML JSON PDF Util Net NetSSL Crypto JWT Data DataPostgreSQL DataSQLite DNSSDAvahi Zip Encodings Prometheus" 27PACKAGECONFIG ??= "XML JSON PDF Util Net NetSSL Crypto JWT Data DataPostgreSQL DataSQLite DNSSDAvahi Zip Encodings Prometheus FastLogger"
27# MongoDB does not build for all architectures yet keep in sync with COMPATIBLE_HOST list in mongodb recipe 28# MongoDB does not build for all architectures yet keep in sync with COMPATIBLE_HOST list in mongodb recipe
28# and mongodb needs meta-python enabled as well 29# and mongodb needs meta-python enabled as well
29PACKAGECONFIG:remove:riscv32 = "MongoDB" 30PACKAGECONFIG:remove:riscv32 = "MongoDB"
@@ -48,6 +49,7 @@ PACKAGECONFIG[DNSSDAvahi] = "-DENABLE_DNSSD=ON -DENABLE_DNSSD_AVAHI=ON,-DENABLE_
48PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF" 49PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
49PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF" 50PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF"
50PACKAGECONFIG[Prometheus] = "-DENABLE_PROMETHEUS=ON,-DENABLE_PROMETHEUS=OFF" 51PACKAGECONFIG[Prometheus] = "-DENABLE_PROMETHEUS=ON,-DENABLE_PROMETHEUS=OFF"
52PACKAGECONFIG[FastLogger] = "-DENABLE_FASTLOGGER=ON,-DENABLE_FASTLOGGER=OFF"
51 53
52# Additional components not build by default, 54# Additional components not build by default,
53# they might have dependencies not included in oe-core 55# they might have dependencies not included in oe-core
@@ -74,11 +76,6 @@ EXTRA_OECMAKE:append:class-native = " -DPOCO_UNBUNDLED=OFF"
74# do not use rpath 76# do not use rpath
75EXTRA_OECMAKE:append = " -DCMAKE_SKIP_RPATH=ON" 77EXTRA_OECMAKE:append = " -DCMAKE_SKIP_RPATH=ON"
76 78
77LDFLAGS:append:riscv32 = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
78LDFLAGS:append:mips = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
79LDFLAGS:append:powerpc = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
80LDFLAGS:append:x86 = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
81
82python populate_packages:prepend () { 79python populate_packages:prepend () {
83 poco_libdir = d.expand('${libdir}') 80 poco_libdir = d.expand('${libdir}')
84 pn = d.getVar("PN") 81 pn = d.getVar("PN")
diff --git a/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd/0001-Fix-const-correctness-for-pointer-variables-to-refer.patch b/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd/0001-Fix-const-correctness-for-pointer-variables-to-refer.patch
new file mode 100644
index 0000000000..190baff606
--- /dev/null
+++ b/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd/0001-Fix-const-correctness-for-pointer-variables-to-refer.patch
@@ -0,0 +1,60 @@
1From 515e23b37ad1400bfb73797771c4f0fd78655328 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Wed, 15 Apr 2026 10:52:05 -0700
4Subject: [PATCH] Fix const-correctness for pointer variables to referred
5 strings
6
7Mark pointer variables 'e' as 'const char *' in
8config_parse_netlog_remote_address,file_in_same_dir, and
9socket_address_parse, since they point to memory they do not
10own or modify.
11
12Upstream-Status: Submitted [https://github.com/systemd/systemd-netlogd/pull/148]
13Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
14---
15 src/netlog/netlog-conf.c | 2 +-
16 src/share/path-util.c | 3 ++-
17 src/share/socket-util.c | 3 ++-
18 3 files changed, 5 insertions(+), 3 deletions(-)
19
20diff --git a/src/netlog/netlog-conf.c b/src/netlog/netlog-conf.c
21index a4cf0da..59bdd23 100644
22--- a/src/netlog/netlog-conf.c
23+++ b/src/netlog/netlog-conf.c
24@@ -22,7 +22,7 @@ int config_parse_netlog_remote_address(const char *unit,
25 void *data,
26 void *userdata) {
27 Manager *m = userdata;
28- char *e;
29+ const char *e;
30 int r;
31
32 assert(filename);
33diff --git a/src/share/path-util.c b/src/share/path-util.c
34index dda7ec6..ad6f24a 100644
35--- a/src/share/path-util.c
36+++ b/src/share/path-util.c
37@@ -327,7 +327,8 @@ bool path_is_safe(const char *p) {
38 }
39
40 char *file_in_same_dir(const char *path, const char *filename) {
41- char *e, *ret;
42+ const char *e;
43+ char *ret;
44 size_t k;
45
46 assert(path);
47diff --git a/src/share/socket-util.c b/src/share/socket-util.c
48index ae33338..5a6284b 100644
49--- a/src/share/socket-util.c
50+++ b/src/share/socket-util.c
51@@ -33,7 +33,8 @@
52 #include "util.h"
53
54 int socket_address_parse(SocketAddress *a, const char *s) {
55- char *e, *n;
56+ const char *e;
57+ char *n;
58 unsigned u;
59 int r;
60
diff --git a/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.4.bb b/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.5.bb
index 019098fdf7..c52940ec70 100644
--- a/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.4.bb
+++ b/meta-oe/recipes-support/systemd-netlogd/systemd-netlogd_1.4.5.bb
@@ -3,8 +3,10 @@ SUMMARY = "Forwards messages from the journal to other hosts over the network us
3LICENSE = "LGPL-2.1-or-later" 3LICENSE = "LGPL-2.1-or-later"
4LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" 4LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
5 5
6SRC_URI = "git://github.com/systemd/systemd-netlogd.git;protocol=https;branch=main" 6SRC_URI = "git://github.com/systemd/systemd-netlogd.git;protocol=https;branch=main;tag=v${PV} \
7SRCREV = "b03cc3b1a75048c7cf19467d8918a4b7320767e6" 7 file://0001-Fix-const-correctness-for-pointer-variables-to-refer.patch \
8 "
9SRCREV = "20534091417686d1185acb3f29e93944d8663c4b"
8 10
9inherit meson systemd pkgconfig useradd features_check 11inherit meson systemd pkgconfig useradd features_check
10 12
diff --git a/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb b/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
index 01115e7e4d..440b6e0f46 100644
--- a/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
+++ b/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
@@ -17,6 +17,7 @@ SRCREV = "f1862f38f83568d96e814e469ab61f88336cc595"
17SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \ 17SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
18 " 18 "
19 19
20LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}"
20 21
21inherit cmake pkgconfig 22inherit cmake pkgconfig
22 23
diff --git a/meta-oe/recipes-support/upower/upower_1.91.1.bb b/meta-oe/recipes-support/upower/upower_1.91.2.bb
index d4107a959a..d6505974e9 100644
--- a/meta-oe/recipes-support/upower/upower_1.91.1.bb
+++ b/meta-oe/recipes-support/upower/upower_1.91.2.bb
@@ -13,7 +13,7 @@ DEPENDS = " \
13" 13"
14 14
15SRC_URI = "https://gitlab.freedesktop.org/${BPN}/${BPN}/-/archive/v${PV}/${BPN}-v${PV}.tar.bz2" 15SRC_URI = "https://gitlab.freedesktop.org/${BPN}/${BPN}/-/archive/v${PV}/${BPN}-v${PV}.tar.bz2"
16SRC_URI[sha256sum] = "d568638d670a63a1886335b7b136f4888cb38a3b28f3f4bcdeaffcca0b0f6df8" 16SRC_URI[sha256sum] = "f07f19b78a43a5053973d95a2fe96a12ede270b8db232b2e2c4ac4186fb42539"
17S = "${UNPACKDIR}/${BPN}-v${PV}" 17S = "${UNPACKDIR}/${BPN}-v${PV}"
18 18
19UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/${BPN}/${BPN}/-/tags" 19UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/${BPN}/${BPN}/-/tags"
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.6.bb
index e6007a6667..c3f736568f 100644
--- a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.6.bb
@@ -22,7 +22,7 @@ SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
22 file://fix-ftbfs-riscv64.patch \ 22 file://fix-ftbfs-riscv64.patch \
23 file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \ 23 file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
24 " 24 "
25SRC_URI[sha256sum] = "8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f" 25SRC_URI[sha256sum] = "2b281abf8894ffc6172152e5660b75eeeedbe1cc43d6783d09dc79f7c865bb42"
26 26
27inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen 27inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
28 28
@@ -31,7 +31,7 @@ S = "${UNPACKDIR}/webkitgtk-${PV}"
31ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 31ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
32REQUIRED_DISTRO_FEATURES = "opengl" 32REQUIRED_DISTRO_FEATURES = "opengl"
33 33
34CVE_PRODUCT = "webkitgtk webkitgtk\+" 34CVE_PRODUCT = "webkitgtk webkitgtk+"
35 35
36DEPENDS += " \ 36DEPENDS += " \
37 ruby-native \ 37 ruby-native \
diff --git a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy/99f9b9f68664166badfdfaa7e69efcedf750f1e3.patch b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy/99f9b9f68664166badfdfaa7e69efcedf750f1e3.patch
deleted file mode 100644
index 5ae21b5989..0000000000
--- a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy/99f9b9f68664166badfdfaa7e69efcedf750f1e3.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 99f9b9f68664166badfdfaa7e69efcedf750f1e3 Mon Sep 17 00:00:00 2001
2From: Brahmajit Das <listout@listout.xyz>
3Date: Wed, 4 Mar 2026 06:27:54 +0530
4Subject: [PATCH] dbus-proxy: fix build with glibc >= 2.43
5
6memchr() returns const void * when passed const input, but the result
7was assigned to guchar *. This triggers
8-Wincompatible-pointer-types-discards-qualifiers when building with
9clang and -Werror.
10
11Make the pointer const to preserve const correctness.
12
13Closes: https://github.com/flatpak/xdg-dbus-proxy/issues/70
14Signed-off-by: Brahmajit Das <listout@listout.xyz>
15
16Upstream-Status: Backport [https://github.com/flatpak/xdg-dbus-proxy/commit/99f9b9f68664166badfdfaa7e69efcedf750f1e3]
17---
18 dbus-proxy.c | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/dbus-proxy.c b/dbus-proxy.c
22index 53d5c01..b32df34 100644
23--- a/dbus-proxy.c
24+++ b/dbus-proxy.c
25@@ -133,7 +133,7 @@ add_args (GBytes *bytes,
26 {
27 gsize data_len, remainder_len;
28 const guchar *data = g_bytes_get_data (bytes, &data_len);
29- guchar *s;
30+ const guchar *s;
31 const guchar *remainder;
32
33 remainder = data;
diff --git a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.6.bb b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.7.bb
index 617d29bd84..a8e0a651ad 100644
--- a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.6.bb
+++ b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.7.bb
@@ -12,12 +12,13 @@ DEPENDS = " \
12inherit meson pkgconfig ptest-gnome 12inherit meson pkgconfig ptest-gnome
13 13
14SRC_URI = " \ 14SRC_URI = " \
15 git://github.com/flatpak/xdg-dbus-proxy.git;protocol=https;branch=main \ 15 git://github.com/flatpak/xdg-dbus-proxy.git;protocol=https;branch=main;tag=${PV} \
16 file://99f9b9f68664166badfdfaa7e69efcedf750f1e3.patch \
17 file://run-ptest \ 16 file://run-ptest \
18 " 17 "
19 18
20SRCREV = "1c1989e56f94b9eb3b7567f8a6e8a0aa16cba496" 19SRCREV = "6a170fa77e3cbecb48f9dd2478fe5c0a119eb467"
20
21CVE_STATUS[CVE-2026-34080] = "fixed-version: fixed in 0.1.7"
21 22
22PACKAGECONFIG = "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 23PACKAGECONFIG = "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
23PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false" 24PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false"
diff --git a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.3.bb b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.4.bb
index e0aca558fd..bb48b59dd8 100644
--- a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.3.bb
+++ b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.20.4.bb
@@ -27,11 +27,17 @@ RDEPENDS:${PN} = "bubblewrap rtkit ${PORTAL_BACKENDS} fuse3-utils"
27inherit meson pkgconfig python3native features_check 27inherit meson pkgconfig python3native features_check
28 28
29SRC_URI = " \ 29SRC_URI = " \
30 git://github.com/flatpak/xdg-desktop-portal.git;protocol=https;branch=xdg-desktop-portal-1.20 \ 30 git://github.com/flatpak/xdg-desktop-portal.git;protocol=https;branch=xdg-desktop-portal-1.20;name=main;tag=${PV} \
31 git://gitlab.gnome.org/GNOME/libglnx.git;protocol=https;branch=master;name=libglnx;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/subprojects/libglnx \
31 file://0001-meson.build-add-a-hack-for-crosscompile.patch \ 32 file://0001-meson.build-add-a-hack-for-crosscompile.patch \
32" 33"
33 34
34SRCREV = "23a76c392170dbbd26230f85ef56c3a57e52b857" 35SRCREV_main = "f5aec228c9eb0c9a70eadd6424d92c0ca8a78247"
36
37# this revision comes from subprojects/libglnx.wrap file of the main source repo
38SRCREV_libglnx = "ccea836b799256420788c463a638ded0636b1632"
39
40SRCREV_FORMAT = "main"
35 41
36FILES:${PN} += "${libdir}/systemd ${datadir}/dbus-1" 42FILES:${PN} += "${libdir}/systemd ${datadir}/dbus-1"
37 43
@@ -47,3 +53,5 @@ do_write_config:append() {
47bwrap = '${bindir}/bwrap' 53bwrap = '${bindir}/bwrap'
48EOF 54EOF
49} 55}
56
57CVE_STATUS[CVE-2026-40354] = "fixed-version: fixed in 1.20.4"
diff --git a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.19.bb b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.20.bb
index 2550d4cd59..3d122981ca 100644
--- a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.19.bb
+++ b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.20.bb
@@ -3,11 +3,11 @@ LICENSE = "GPL-2.0-only"
3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" 3LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
4 4
5SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.xz" 5SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
6SRC_URI[sha256sum] = "e92deb929c10d4b29329397af8a2585101247f7e6177ac6f1d28e82130ed8c19" 6SRC_URI[sha256sum] = "b8e34286278f4fef3e1bfe9685c395ccc0eb50c14d3a2fb4953dd00fbfd3af39"
7 7
8inherit autotools gettext pkgconfig 8inherit meson gettext pkgconfig
9 9
10EXTRA_OECONF = "--disable-documentation" 10EXTRA_OEMESON = "-Ddocs=false"
11 11
12CONFFILES:${PN} += " \ 12CONFFILES:${PN} += " \
13 ${sysconfdir}/xdg/user-dirs.conf \ 13 ${sysconfdir}/xdg/user-dirs.conf \
diff --git a/meta-oe/recipes-support/xrdp/xrdp_0.10.5.bb b/meta-oe/recipes-support/xrdp/xrdp_0.10.6.bb
index 8d7c5807f2..152b37cb37 100644
--- a/meta-oe/recipes-support/xrdp/xrdp_0.10.5.bb
+++ b/meta-oe/recipes-support/xrdp/xrdp_0.10.6.bb
@@ -17,7 +17,7 @@ SRC_URI = "https://github.com/neutrinolabs/${BPN}/releases/download/v${PV}/${BPN
17 file://0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch \ 17 file://0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch \
18 file://0001-mark-count-with-unused-attribute.patch \ 18 file://0001-mark-count-with-unused-attribute.patch \
19 " 19 "
20SRC_URI[sha256sum] = "9abc96d164de4b1c40e2f3f537d0593d052a640cf3388978c133715ea69fb123" 20SRC_URI[sha256sum] = "dfc21d5d603b642cf583987b36706b685bf05fd3aaaaacefb8f57c5f4a448677"
21 21
22UPSTREAM_CHECK_URI = "https://github.com/neutrinolabs/xrdp/releases" 22UPSTREAM_CHECK_URI = "https://github.com/neutrinolabs/xrdp/releases"
23UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+(\.\d+)+)" 23UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+(\.\d+)+)"
@@ -127,3 +127,12 @@ pkg_postinst:${PN}() {
127 fi 127 fi
128 fi 128 fi
129} 129}
130
131CVE_STATUS[CVE-2026-32105] = "fixed-version: fixed in 0.10.6"
132CVE_STATUS[CVE-2026-32107] = "fixed-version: fixed in 0.10.6"
133CVE_STATUS[CVE-2026-32623] = "fixed-version: fixed in 0.10.6"
134CVE_STATUS[CVE-2026-32624] = "fixed-version: fixed in 0.10.6"
135CVE_STATUS[CVE-2026-33145] = "fixed-version: fixed in 0.10.6"
136CVE_STATUS[CVE-2026-33516] = "fixed-version: fixed in 0.10.6"
137CVE_STATUS[CVE-2026-33689] = "fixed-version: fixed in 0.10.6"
138CVE_STATUS[CVE-2026-35512] = "fixed-version: fixed in 0.10.6"
diff --git a/meta-oe/recipes-test/catch2/catch2_3.13.0.bb b/meta-oe/recipes-test/catch2/catch2_3.14.0.bb
index c5d85ba302..2aba52e7ae 100644
--- a/meta-oe/recipes-test/catch2/catch2_3.13.0.bb
+++ b/meta-oe/recipes-test/catch2/catch2_3.14.0.bb
@@ -5,7 +5,7 @@ LICENSE = "BSL-1.0"
5LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" 5LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
6 6
7SRC_URI = "git://github.com/catchorg/Catch2.git;branch=devel;protocol=https;tag=v${PV}" 7SRC_URI = "git://github.com/catchorg/Catch2.git;branch=devel;protocol=https;tag=v${PV}"
8SRCREV = "29c9844f688acb27c87338c39cd186ebfe41aa19" 8SRCREV = "b670de4fe12ac7c5e858b7de3a14fb4bd18c760e"
9 9
10 10
11inherit cmake python3native 11inherit cmake python3native
diff --git a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index 2ff88e6264..65f23cfe9e 100644
--- a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -300,7 +300,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
300 python3-py-ubjson \ 300 python3-py-ubjson \
301 python3-pyalsaaudio \ 301 python3-pyalsaaudio \
302 python3-pyasn1-modules \ 302 python3-pyasn1-modules \
303 python3-pyatspi \ 303 ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data ${GTK2DISTROFEATURES}", "python3-pyatspi", "", d)} \
304 python3-pyaudio \ 304 python3-pyaudio \
305 python3-pybind11 \ 305 python3-pybind11 \
306 python3-pybind11-json \ 306 python3-pybind11-json \
diff --git a/meta-python/recipes-devtools/python/python3-aiofiles_24.1.0.bb b/meta-python/recipes-devtools/python/python3-aiofiles_25.1.0.bb
index 1e9ebdf97d..26cc9e81f3 100644
--- a/meta-python/recipes-devtools/python/python3-aiofiles_24.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-aiofiles_25.1.0.bb
@@ -4,12 +4,16 @@ HOMEPAGE = "https://github.com/aio-libs/aiohttp"
4LICENSE = "Apache-2.0" 4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
6 6
7SRC_URI[sha256sum] = "22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c" 7SRC_URI[sha256sum] = "a8d728f0a29de45dc521f18f07297428d56992a742f0cd2701ba86e44d23d5b2"
8 8
9PYPI_PACKAGE = "aiofiles" 9PYPI_PACKAGE = "aiofiles"
10 10
11inherit pypi python_hatchling 11inherit pypi python_hatchling
12 12
13DEPENDS += "\
14 python3-hatch-vcs-native \
15"
16
13RDEPENDS:${PN} = "\ 17RDEPENDS:${PN} = "\
14 python3-asyncio \ 18 python3-asyncio \
15" 19"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.13.4.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.13.5.bb
index 7416b87347..f3a0fbf557 100644
--- a/meta-python/recipes-devtools/python/python3-aiohttp_3.13.4.bb
+++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.13.5.bb
@@ -4,9 +4,14 @@ HOMEPAGE = "https://github.com/aio-libs/aiohttp"
4LICENSE = "Apache-2.0" 4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41" 5LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41"
6 6
7SRC_URI[sha256sum] = "d97a6d09c66087890c2ab5d49069e1e570583f7ac0314ecf98294c1b6aaebd38" 7SRC_URI[sha256sum] = "9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1"
8 8
9CVE_PRODUCT = "aiohttp" 9CVE_PRODUCT = "aiohttp"
10CVE_STATUS_GROUPS = "CVE_AIOHTTP_FIX_3_13_4"
11CVE_AIOHTTP_FIX_3_13_4[status] = "fixed-version: fixed in 3.13.4"
12CVE_AIOHTTP_FIX_3_13_4 = "CVE-2026-22815 CVE-2026-34513 CVE-2026-34514 \
13CVE-2026-34515 CVE-2026-34516 CVE-2026-34517 CVE-2026-34518 CVE-2026-34519 \
14CVE-2026-34520 CVE-2026-34525"
10 15
11inherit python_setuptools_build_meta pypi 16inherit python_setuptools_build_meta pypi
12 17
diff --git a/meta-python/recipes-devtools/python/python3-asyncinotify_4.4.0.bb b/meta-python/recipes-devtools/python/python3-asyncinotify_4.4.2.bb
index 115e88cedf..bdda38734d 100644
--- a/meta-python/recipes-devtools/python/python3-asyncinotify_4.4.0.bb
+++ b/meta-python/recipes-devtools/python/python3-asyncinotify_4.4.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://gitlab.com/Taywee/asyncinotify"
3LICENSE = "MPL-2.0" 3LICENSE = "MPL-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=f75d2927d3c1ed2414ef72048f5ad640" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=f75d2927d3c1ed2414ef72048f5ad640"
5 5
6SRC_URI[sha256sum] = "438bdc0715f4f959e6e0af70e76cea198b4e28e5933c7cbf1e9987b50394afb3" 6SRC_URI[sha256sum] = "52ad97aa5332dd78592ab9c64171f2953447d98f9170b9bd440c5d19b17d0416"
7 7
8inherit pypi python_setuptools_build_meta 8inherit pypi python_setuptools_build_meta
9 9
diff --git a/meta-python/recipes-devtools/python/python3-bitarray_3.8.0.bb b/meta-python/recipes-devtools/python/python3-bitarray_3.8.1.bb
index 4cacd79522..6ef0f4202a 100644
--- a/meta-python/recipes-devtools/python/python3-bitarray_3.8.0.bb
+++ b/meta-python/recipes-devtools/python/python3-bitarray_3.8.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/ilanschnell/bitarray"
4LICENSE = "PSF-2.0" 4LICENSE = "PSF-2.0"
5LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=6abe80c028e4ee53045a33ae807c64fd" 5LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=6abe80c028e4ee53045a33ae807c64fd"
6 6
7SRC_URI[sha256sum] = "3eae38daffd77c9621ae80c16932eea3fb3a4af141fb7cc724d4ad93eff9210d" 7SRC_URI[sha256sum] = "f90bb3c680804ec9630bcf8c0965e54b4de84d33b17d7da57c87c30f0c64c6f5"
8 8
9inherit python_setuptools_build_meta pypi 9inherit python_setuptools_build_meta pypi
10 10
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyprojects-Bump-setuptools-check-to-be-82.x.patch b/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyprojects-Bump-setuptools-check-to-be-82.x.patch
deleted file mode 100644
index 571333e44e..0000000000
--- a/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyprojects-Bump-setuptools-check-to-be-82.x.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From 17bc1de2c08f9303886d654572b1ba64259a8a68 Mon Sep 17 00:00:00 2001
2From: Khem Raj <khem.raj@oss.qualcomm.com>
3Date: Fri, 20 Mar 2026 15:06:51 -0700
4Subject: [PATCH] pyprojects: Bump setuptools check to be <= 82.x
5
6This ensures build with 82.0.1 goes on
7
8Upstream-Status: Pending
9
10Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
11---
12 pyproject.toml | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/pyproject.toml b/pyproject.toml
16index ea1c514..bbc83b7 100644
17--- a/pyproject.toml
18+++ b/pyproject.toml
19@@ -1,5 +1,5 @@
20 [build-system]
21-requires = ["setuptools>=68,<=82.0.0"]
22+requires = ["setuptools>=68,<=83.0.0"]
23 build-backend = "backend"
24 backend-path = ["_mypyc_hook"]
25
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.6.bb b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.7.bb
index e6056a3512..b9dffb21e4 100644
--- a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.6.bb
+++ b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.7.bb
@@ -3,9 +3,7 @@ HOMEPAGE = "https://github.com/ousret/charset_normalizer"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05"
5 5
6SRC_URI += "file://0001-pyprojects-Bump-setuptools-check-to-be-82.x.patch" 6SRC_URI[sha256sum] = "ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5"
7
8SRC_URI[sha256sum] = "1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6"
9 7
10DEPENDS += "python3-setuptools-scm-native python3-mypy-native" 8DEPENDS += "python3-setuptools-scm-native python3-mypy-native"
11 9
diff --git a/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0001-Let-override-CC.patch b/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0001-Let-override-CC.patch
deleted file mode 100644
index c58089cc15..0000000000
--- a/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0001-Let-override-CC.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1From: Peter Lemenkov <lemenkov@gmail.com>
2Date: Wed, 6 Nov 2024 16:35:23 +0300
3Subject: [PATCH] Let override CC
4
5Upstream-Status: Pending
6
7Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
8
9diff --git a/src/Makefile b/src/Makefile
10index b733a11..c688005 100644
11--- a/src/Makefile
12+++ b/src/Makefile
13@@ -79,7 +79,7 @@ ifeq ($(PLATFORM),Windows)
14 CFLAGS += -D_CRT_SECURE_NO_WARNINGS
15 CFLAGS += -Wno-missing-braces -Wno-format
16 else
17- CC = clang
18+ CC ?= clang
19 CFLAGS += -fPIC
20 CFLAGS += -Wmissing-braces -Wformat=2
21 endif
diff --git a/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0002-Disable-Werror.patch b/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0002-Disable-Werror.patch
deleted file mode 100644
index 9b0baa358a..0000000000
--- a/meta-python/recipes-devtools/python/python3-ckzg/python-ckzg-0002-Disable-Werror.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From: rpm-build <rpm-build>
2Date: Tue, 26 Nov 2024 11:13:18 +0100
3Subject: [PATCH] Disable Werror
4
5Upstream-Status: Pending
6
7Signed-off-by: rpm-build <rpm-build>
8
9diff --git a/src/Makefile b/src/Makefile
10index c688005..01b7a80 100644
11--- a/src/Makefile
12+++ b/src/Makefile
13@@ -20,7 +20,7 @@ ifeq ($(PLATFORM),Darwin)
14 endif
15
16 # The base compiler flags. More can be added on command line.
17-CFLAGS += -I. -I../inc -O2 -Werror
18+CFLAGS += -I. -I../inc
19 # Enable a bunch of optional warnings.
20 CFLAGS += \
21 -pedantic \
22@@ -81,7 +81,7 @@ ifeq ($(PLATFORM),Windows)
23 else
24 CC ?= clang
25 CFLAGS += -fPIC
26- CFLAGS += -Wmissing-braces -Wformat=2
27+ CFLAGS += -Wmissing-braces
28 endif
29
30 # Settings for blst.
diff --git a/meta-python/recipes-devtools/python/python3-ckzg_2.1.1.bb b/meta-python/recipes-devtools/python/python3-ckzg_2.1.7.bb
index 5a6196bf75..b01bd2d78d 100644
--- a/meta-python/recipes-devtools/python/python3-ckzg_2.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-ckzg_2.1.7.bb
@@ -6,10 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
6 6
7SRC_URI += " \ 7SRC_URI += " \
8 file://blst-0001-Support-64-bit-limbs-on-no-asm-platforms.patch \ 8 file://blst-0001-Support-64-bit-limbs-on-no-asm-platforms.patch \
9 file://python-ckzg-0001-Let-override-CC.patch \
10 file://python-ckzg-0002-Disable-Werror.patch \
11" 9"
12 10
13SRC_URI[sha256sum] = "d6b306b7ec93a24e4346aa53d07f7f75053bc0afc7398e35fa649e5f9d48fcc4" 11SRC_URI[sha256sum] = "a0c61c5fd573af0267bcb435ef0f499911289ceb05e863480779ea284a3bb928"
14 12
15inherit pypi setuptools3 13inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-cmake_4.3.0.bb b/meta-python/recipes-devtools/python/python3-cmake_4.3.1.bb
index b9eb56891d..5787b73d98 100644
--- a/meta-python/recipes-devtools/python/python3-cmake_4.3.0.bb
+++ b/meta-python/recipes-devtools/python/python3-cmake_4.3.1.bb
@@ -11,7 +11,7 @@ PYPI_PACKAGE = "cmake"
11PYPI_ARCHIVE_NAME_PREFIX = "pypi-" 11PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
12 12
13inherit pypi python_setuptools_build_meta 13inherit pypi python_setuptools_build_meta
14SRC_URI[sha256sum] = "b25ef14e4ebc16219eeb199da2199fc526c011f9973e02e7c21c69bfd46ed752" 14SRC_URI[sha256sum] = "6fe523413cdd2568a19a6ec297b8f869a95a3f8edaf0dd73731b81412216e00e"
15 15
16SRC_URI += " \ 16SRC_URI += " \
17 file://CMakeLists.txt \ 17 file://CMakeLists.txt \
diff --git a/meta-python/recipes-devtools/python/python3-configargparse_1.7.3.bb b/meta-python/recipes-devtools/python/python3-configargparse_1.7.5.bb
index 6715abab3a..49df56d75b 100644
--- a/meta-python/recipes-devtools/python/python3-configargparse_1.7.3.bb
+++ b/meta-python/recipes-devtools/python/python3-configargparse_1.7.5.bb
@@ -3,12 +3,14 @@ HOMEPAGE = "https://github.com/bw2/ConfigArgParse"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
5 5
6SRC_URI[sha256sum] = "76dd1a51145fb7ca82621ee08cd38ec0c6316fe27a38b9137b75667d1116399e" 6SRC_URI[sha256sum] = "e3f9a7bb6be34d66b2e3c4a2f58e3045f8dfae47b0dc039f87bcfaa0f193fb0f"
7 7
8PYPI_PACKAGE = "configargparse" 8PYPI_PACKAGE = "configargparse"
9UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 9UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
10 10
11inherit pypi setuptools3 11inherit pypi python_setuptools_build_meta
12
13DEPENDS += "python3-setuptools-scm-native"
12 14
13PACKAGECONFIG ?= "yaml" 15PACKAGECONFIG ?= "yaml"
14PACKAGECONFIG[yaml] = ",,,python3-pyyaml" 16PACKAGECONFIG[yaml] = ",,,python3-pyyaml"
diff --git a/meta-python/recipes-devtools/python/python3-croniter_6.0.0.bb b/meta-python/recipes-devtools/python/python3-croniter_6.2.2.bb
index 201074e1e3..d217161d7d 100644
--- a/meta-python/recipes-devtools/python/python3-croniter_6.0.0.bb
+++ b/meta-python/recipes-devtools/python/python3-croniter_6.2.2.bb
@@ -5,9 +5,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
5 5
6PYPI_PACKAGE = "croniter" 6PYPI_PACKAGE = "croniter"
7 7
8SRC_URI[sha256sum] = "37c504b313956114a983ece2c2b07790b1f1094fe9d81cc94739214748255577" 8SRC_URI[sha256sum] = "ba60832a5ec8e12e51b8691c3309a113d1cf6526bdf1a48150ce8ec7a532d0ab"
9 9
10inherit pypi setuptools3 10inherit pypi python_hatchling
11 11
12RDEPENDS:${PN} += " \ 12RDEPENDS:${PN} += " \
13 python3-dateutil \ 13 python3-dateutil \
diff --git a/meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_6.2.0.bb b/meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_9.1.0.bb
index 6ddc489f8a..add7031f1e 100644
--- a/meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_6.2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-cucumber-tag-expressions_9.1.0.bb
@@ -2,9 +2,9 @@ SUMMARY = "Cucumber tag expression parser"
2DESCRIPTION = "Provides a tag-expression parser and evaluation logic for cucumber/behave" 2DESCRIPTION = "Provides a tag-expression parser and evaluation logic for cucumber/behave"
3HOMEPAGE = "https://github.com/cucumber/tag-expressions" 3HOMEPAGE = "https://github.com/cucumber/tag-expressions"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489" 5LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=134f1026f0de92fd30e71976590a2868"
6 6
7SRC_URI[sha256sum] = "b60aa2cdbf9ac43e28d9b0e4fd49edf9f09d5d941257d2912f5228f9d166c023" 7SRC_URI[sha256sum] = "d960383d5885300ebcbcb14e41657946fde2a59d5c0f485eb291bc6a0e228acc"
8 8
9inherit pypi python_setuptools_build_meta 9inherit pypi python_setuptools_build_meta
10 10
@@ -12,4 +12,5 @@ PYPI_PACKAGE = "cucumber_tag_expressions"
12 12
13DEPENDS += "\ 13DEPENDS += "\
14 python3-setuptools-scm-native \ 14 python3-setuptools-scm-native \
15 python3-uv-build-native \
15" 16"
diff --git a/meta-python/recipes-devtools/python/python3-django_5.2.12.bb b/meta-python/recipes-devtools/python/python3-django_5.2.13.bb
index 13166d4c53..fcf50e939d 100644
--- a/meta-python/recipes-devtools/python/python3-django_5.2.12.bb
+++ b/meta-python/recipes-devtools/python/python3-django_5.2.13.bb
@@ -2,4 +2,4 @@ require python3-django.inc
2inherit python_setuptools_build_meta 2inherit python_setuptools_build_meta
3 3
4SRC_URI += "file://0001-fix-test_msgfmt_error_including_non_ascii-test.patch" 4SRC_URI += "file://0001-fix-test_msgfmt_error_including_non_ascii-test.patch"
5SRC_URI[sha256sum] = "6b809af7165c73eff5ce1c87fdae75d4da6520d6667f86401ecf55b681eb1eeb" 5SRC_URI[sha256sum] = "a31589db5188d074c63f0945c3888fad104627dfcc236fb2b97f71f89da33bc4"
diff --git a/meta-python/recipes-devtools/python/python3-django_6.0.3.bb b/meta-python/recipes-devtools/python/python3-django_6.0.4.bb
index b3aec8870a..378b760f2c 100644
--- a/meta-python/recipes-devtools/python/python3-django_6.0.3.bb
+++ b/meta-python/recipes-devtools/python/python3-django_6.0.4.bb
@@ -1,7 +1,7 @@
1require python3-django.inc 1require python3-django.inc
2inherit python_setuptools_build_meta 2inherit python_setuptools_build_meta
3 3
4SRC_URI[sha256sum] = "90be765ee756af8a6cbd6693e56452404b5ad15294f4d5e40c0a55a0f4870fe1" 4SRC_URI[sha256sum] = "8cfa2572b3f2768b2e84983cf3c4811877a01edb64e817986ec5d60751c113ac"
5 5
6# Set DEFAULT_PREFERENCE so that the LTS version of django is built by 6# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
7# default. To build the 6.x branch, 7# default. To build the 6.x branch,
diff --git a/meta-python/recipes-devtools/python/python3-djangorestframework_3.16.1.bb b/meta-python/recipes-devtools/python/python3-djangorestframework_3.17.1.bb
index bcd079f328..42edd15156 100644
--- a/meta-python/recipes-devtools/python/python3-djangorestframework_3.16.1.bb
+++ b/meta-python/recipes-devtools/python/python3-djangorestframework_3.17.1.bb
@@ -5,11 +5,11 @@ HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
5LICENSE = "MIT" 5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1" 6LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
7 7
8SRC_URI[sha256sum] = "166809528b1aced0a17dc66c24492af18049f2c9420dbd0be29422029cfc3ff7" 8SRC_URI[sha256sum] = "a6def5f447fe78ff853bff1d47a3c59bf38f5434b031780b351b0c73a62db1a5"
9 9
10PYPI_PACKAGE = "djangorestframework" 10PYPI_PACKAGE = "djangorestframework"
11 11
12inherit pypi setuptools3 12inherit pypi python_setuptools_build_meta
13 13
14RDEPENDS:${PN} += "\ 14RDEPENDS:${PN} += "\
15 python3-django \ 15 python3-django \
diff --git a/meta-python/recipes-devtools/python/python3-eventlet_0.40.4.bb b/meta-python/recipes-devtools/python/python3-eventlet_0.41.0.bb
index 213460dc70..3c27caf968 100644
--- a/meta-python/recipes-devtools/python/python3-eventlet_0.40.4.bb
+++ b/meta-python/recipes-devtools/python/python3-eventlet_0.41.0.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
6 6
7SRC_URI += "file://d19ad6cc086684ee74db250f5fd35227c98e678a.patch" 7SRC_URI += "file://d19ad6cc086684ee74db250f5fd35227c98e678a.patch"
8SRC_URI[sha256sum] = "69bef712b1be18b4930df6f0c495d2a882bf7b63aa111e7b6eeff461cfcaf26f" 8SRC_URI[sha256sum] = "35df85f0ccd3e73effb6fd9f1ceae46b500b966c7da1817289c323a307bd397b"
9 9
10CVE_PRODUCT = "eventlet" 10CVE_PRODUCT = "eventlet"
11 11
diff --git a/meta-python/recipes-devtools/python/python3-faker_40.12.0.bb b/meta-python/recipes-devtools/python/python3-faker_40.13.0.bb
index 2f3ec72c02..97f0e6e8f6 100644
--- a/meta-python/recipes-devtools/python/python3-faker_40.12.0.bb
+++ b/meta-python/recipes-devtools/python/python3-faker_40.13.0.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "https://github.com/joke2k/faker"
7LICENSE = "MIT" 7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=53360c4126f7d03b63cb79b0dab9e9e1" 8LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=53360c4126f7d03b63cb79b0dab9e9e1"
9 9
10SRC_URI[sha256sum] = "58b5a9054c367bd5fb2e948634105364cc570e78a98a8e5161a74691c45f158f" 10SRC_URI[sha256sum] = "a0751c84c3abac17327d7bb4c98e8afe70ebf7821e01dd7d0b15cd8856415525"
11 11
12inherit pypi setuptools3 ptest-python-pytest 12inherit pypi setuptools3 ptest-python-pytest
13 13
diff --git a/meta-python/recipes-devtools/python/python3-fastapi_0.135.2.bb b/meta-python/recipes-devtools/python/python3-fastapi_0.135.3.bb
index a8ace95347..a4bdb19bbf 100644
--- a/meta-python/recipes-devtools/python/python3-fastapi_0.135.2.bb
+++ b/meta-python/recipes-devtools/python/python3-fastapi_0.135.3.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://fastapi.tiangolo.com/"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=95792ff3fe8e11aa49ceb247e66e4810" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=95792ff3fe8e11aa49ceb247e66e4810"
5 5
6SRC_URI[sha256sum] = "88a832095359755527b7f63bb4c6bc9edb8329a026189eed83d6c1afcf419d56" 6SRC_URI[sha256sum] = "bd6d7caf1a2bdd8d676843cdcd2287729572a1ef524fc4d65c17ae002a1be654"
7 7
8SRC_URI += "file://run-ptest" 8SRC_URI += "file://run-ptest"
9 9
diff --git a/meta-python/recipes-devtools/python/python3-gevent_25.9.1.bb b/meta-python/recipes-devtools/python/python3-gevent_26.4.0.bb
index 51861f24c7..c29b55d25d 100644
--- a/meta-python/recipes-devtools/python/python3-gevent_25.9.1.bb
+++ b/meta-python/recipes-devtools/python/python3-gevent_26.4.0.bb
@@ -15,7 +15,7 @@ RDEPENDS:${PN} = "python3-greenlet \
15 15
16SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch" 16SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch"
17 17
18SRC_URI[sha256sum] = "adf9cd552de44a4e6754c51ff2e78d9193b7fa6eab123db9578a210e657235dd" 18SRC_URI[sha256sum] = "288d03addfccf0d1c67268358b6759b04392bf3bc35d26f3d9a45c82899c292d"
19 19
20CVE_PRODUCT = "gevent" 20CVE_PRODUCT = "gevent"
21 21
diff --git a/meta-python/recipes-devtools/python/python3-git-pw_2.7.1.bb b/meta-python/recipes-devtools/python/python3-git-pw_2.8.0.bb
index 6308732f49..4cb8621ad8 100644
--- a/meta-python/recipes-devtools/python/python3-git-pw_2.7.1.bb
+++ b/meta-python/recipes-devtools/python/python3-git-pw_2.8.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/getpatchwork/git-pw"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=26e1a171d943c64f00c51f90c256b9d4" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=26e1a171d943c64f00c51f90c256b9d4"
5 5
6SRC_URI[sha256sum] = "f69c57aafd13d21d6fa604dff680c4f9113a8f31bf3f65dd663bad0e1839b0e1" 6SRC_URI[sha256sum] = "212743923badb38b9da658b0df0b9f3770997684a9e787d489eed5d103e96100"
7PYPI_PACKAGE = "git_pw" 7PYPI_PACKAGE = "git_pw"
8 8
9inherit pypi python_setuptools_build_meta 9inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.0.bb b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.1.bb
index 0eed90090c..7f9435d475 100644
--- a/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.0.bb
+++ b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.3.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
6 6
7SRC_URI += "file://0001-python3-google-auth-oauthlib-Skip-failing-3PI-creden.patch" 7SRC_URI += "file://0001-python3-google-auth-oauthlib-Skip-failing-3PI-creden.patch"
8SRC_URI[sha256sum] = "cd39e807ac7229d6b8b9c1e297321d36fcc8a9e4857dff4301870985df51a528" 8SRC_URI[sha256sum] = "14c22c7b3dd3d06dbe44264144409039465effdd1eef94f7ce3710e486cc4bfa"
9 9
10inherit pypi setuptools3 ptest 10inherit pypi setuptools3 ptest
11PYPI_PACKAGE = "google_auth_oauthlib" 11PYPI_PACKAGE = "google_auth_oauthlib"
diff --git a/meta-python/recipes-devtools/python/python3-google-auth_2.48.0.bb b/meta-python/recipes-devtools/python/python3-google-auth_2.49.2.bb
index 4e48c62861..fc6df70f45 100644
--- a/meta-python/recipes-devtools/python/python3-google-auth_2.48.0.bb
+++ b/meta-python/recipes-devtools/python/python3-google-auth_2.49.2.bb
@@ -9,7 +9,7 @@ SRC_URI += " \
9 file://0001-python3-google-auth-Skip-mTLS-tests-in-ptest-environ.patch \ 9 file://0001-python3-google-auth-Skip-mTLS-tests-in-ptest-environ.patch \
10 file://run-ptest \ 10 file://run-ptest \
11" 11"
12SRC_URI[sha256sum] = "4f7e706b0cd3208a3d940a19a822c37a476ddba5450156c3e6624a71f7c841ce" 12SRC_URI[sha256sum] = "c1ae38500e73065dcae57355adb6278cf8b5c8e391994ae9cbadbcb9631ab409"
13 13
14PYPI_PACKAGE = "google_auth" 14PYPI_PACKAGE = "google_auth"
15UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 15UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.4.1.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.4.2.bb
index 61a3fb929e..87765c2482 100644
--- a/meta-python/recipes-devtools/python/python3-gpiod_2.4.1.bb
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.4.2.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4b54a1fd55a448865a0b32d41598759d"
5 5
6SRC_URI += "file://run-ptest" 6SRC_URI += "file://run-ptest"
7 7
8SRC_URI[sha256sum] = "d29a1e8b2a065f7ed82f00a96009bc1486fc705bb2ad25820a8ae962ec6d7688" 8SRC_URI[sha256sum] = "602aae17ff365bb8e2a30ce65c6bbf2d8e7a7e64bf016e82e4fd4c730ef69ab7"
9 9
10inherit python_setuptools_build_meta python_pep517 ptest pypi 10inherit python_setuptools_build_meta python_pep517 ptest pypi
11 11
diff --git a/meta-python/recipes-devtools/python/python3-greenlet_3.3.2.bb b/meta-python/recipes-devtools/python/python3-greenlet_3.4.0.bb
index 21d6d620cb..728c2b7940 100644
--- a/meta-python/recipes-devtools/python/python3-greenlet_3.3.2.bb
+++ b/meta-python/recipes-devtools/python/python3-greenlet_3.4.0.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT & PSF-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \ 4LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \
5 file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a" 5 file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
6 6
7SRC_URI[sha256sum] = "2eaf067fc6d886931c7962e8c6bede15d2f01965560f3359b27c80bde2d151f2" 7SRC_URI[sha256sum] = "f50a96b64dafd6169e595a5c56c9146ef80333e67d4476a65a9c55f400fc22ff"
8 8
9inherit pypi python_setuptools_build_meta 9inherit pypi python_setuptools_build_meta
10 10
diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.78.0.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.78.0.bb
index 6ac6a72d25..d9ec337427 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio_1.78.0.bb
+++ b/meta-python/recipes-devtools/python/python3-grpcio_1.78.0.bb
@@ -50,3 +50,4 @@ BBCLASSEXTEND = "native nativesdk"
50CCACHE_DISABLE = "1" 50CCACHE_DISABLE = "1"
51 51
52CVE_PRODUCT += "grpc:grpc" 52CVE_PRODUCT += "grpc:grpc"
53CVE_STATUS[CVE-2026-33186] = "cpe-incorrect: the vulnerabilty affects only the go implementation"
diff --git a/meta-python/recipes-devtools/python/python3-huey_2.6.0.bb b/meta-python/recipes-devtools/python/python3-huey_3.0.0.bb
index 2821262153..f07383ed45 100644
--- a/meta-python/recipes-devtools/python/python3-huey_2.6.0.bb
+++ b/meta-python/recipes-devtools/python/python3-huey_3.0.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
5 5
6PYPI_PACKAGE = "huey" 6PYPI_PACKAGE = "huey"
7 7
8SRC_URI[sha256sum] = "8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6" 8SRC_URI[sha256sum] = "0cfc83617b90132b0d375a3a3726aa7263cd461e7ae12af79b3a94e2630afaf5"
9 9
10RDEPENDS:${PN} += " \ 10RDEPENDS:${PN} += " \
11 python3-datetime \ 11 python3-datetime \
diff --git a/meta-python/recipes-devtools/python/python3-icecream_2.1.10.bb b/meta-python/recipes-devtools/python/python3-icecream_2.2.0.bb
index 68728caf9b..e307311834 100644
--- a/meta-python/recipes-devtools/python/python3-icecream_2.1.10.bb
+++ b/meta-python/recipes-devtools/python/python3-icecream_2.2.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/gruns/icecream"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eca5ce1610d64ed40920efdce85ff8d1" 4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eca5ce1610d64ed40920efdce85ff8d1"
5 5
6SRC_URI[sha256sum] = "15900126ba7dbe1f83819583cbe5ff79a2943224600878d89307e4633b32e528" 6SRC_URI[sha256sum] = "9d7f244187f00a13f4ac77d176990e187e9c279d6cac4f7548e338291ad97343"
7 7
8inherit pypi setuptools3 8inherit pypi setuptools3
9 9
diff --git a/meta-python/recipes-devtools/python/python3-icu_2.16.2.bb b/meta-python/recipes-devtools/python/python3-icu_2.16.2.bb
index bfc37c2763..ca7cca4457 100644
--- a/meta-python/recipes-devtools/python/python3-icu_2.16.2.bb
+++ b/meta-python/recipes-devtools/python/python3-icu_2.16.2.bb
@@ -18,3 +18,5 @@ inherit pkgconfig pypi python_setuptools_build_meta
18 18
19# it's lowercase pyicu instead of ${PYPI_PACKAGE} in this version 19# it's lowercase pyicu instead of ${PYPI_PACKAGE} in this version
20S = "${UNPACKDIR}/pyicu-${PV}" 20S = "${UNPACKDIR}/pyicu-${PV}"
21
22BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-imgtool_2.3.0.bb b/meta-python/recipes-devtools/python/python3-imgtool_2.4.0.bb
index ed647143cc..6b88fc0535 100644
--- a/meta-python/recipes-devtools/python/python3-imgtool_2.3.0.bb
+++ b/meta-python/recipes-devtools/python/python3-imgtool_2.4.0.bb
@@ -3,7 +3,7 @@ SUMMARY = "MCUboot's image signing and key management tool"
3LICENSE = "Apache-2.0" 3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=0645fb61e2f961a110302fbfdb227446" 4LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=0645fb61e2f961a110302fbfdb227446"
5 5
6SRC_URI[sha256sum] = "fff72e4e793ac0ec02a493c19548715ccc0a2358afaeeaa10b49ccc2e0bd1295" 6SRC_URI[sha256sum] = "ef2db1d9e3f62b9bc9425a8e86c4ea7212c164f0a16e923d55250f0d8743342e"
7 7
8inherit pypi setuptools3 8inherit pypi setuptools3
9 9
diff --git a/meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.5.bb b/meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.6.bb
index 32b8d15249..1bcd3a457f 100644
--- a/meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.5.bb
+++ b/meta-python/recipes-devtools/python/python3-inline-snapshot_0.32.6.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=7a35eb90dfdf03953dd2074d0fdba1d4" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=7a35eb90dfdf03953dd2074d0fdba1d4"
5 5
6DEPENDS = "python3-hatchling-native" 6DEPENDS = "python3-hatchling-native"
7SRC_URI[sha256sum] = "5025074eab5c82a88504975e2655beeb5e96fd57ed2d9ebb38538473748f2065" 7SRC_URI[sha256sum] = "224a96eeb86c4b2831d274239d3468dc0b7819264f608f595b2f9d01f79a6e38"
8 8
9inherit pypi python_hatchling 9inherit pypi python_hatchling
10 10
diff --git a/meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.2.bb b/meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.4.bb
index 2b2840ae14..85328ed951 100644
--- a/meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.2.bb
+++ b/meta-python/recipes-devtools/python/python3-legacy-cgi_2.6.4.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4b8801e752a2c70ac41a5f9aa243f766"
5 5
6PYPI_PACKAGE = "legacy_cgi" 6PYPI_PACKAGE = "legacy_cgi"
7 7
8inherit python_poetry_core pypi 8inherit python_poetry_core pypi python_hatchling
9 9
10SRC_URI += "\ 10SRC_URI += "\
11 file://0001-cgi.py-fixup-interpreter-according-to-OE.patch \ 11 file://0001-cgi.py-fixup-interpreter-according-to-OE.patch \
@@ -15,8 +15,13 @@ DEPENDS += "\
15 ${PYTHON_PN}-setuptools-scm-native \ 15 ${PYTHON_PN}-setuptools-scm-native \
16" 16"
17 17
18# Add this function to solve package QA Issue
19do_install:append() {
20 rm ${D}${PYTHON_SITEPACKAGES_DIR}/.pc -rf
21}
22
18#RDEPENDS:${PN} = "python3-core" 23#RDEPENDS:${PN} = "python3-core"
19 24
20BBCLASSEXTEND = "native nativesdk" 25BBCLASSEXTEND = "native nativesdk"
21 26
22SRC_URI[sha256sum] = "9952471ceb304043b104c22d00b4f333cac27a6abe446d8a528fc437cf13c85f" 27SRC_URI[sha256sum] = "abb9dfc7835772f7c9317977c63253fd22a7484b5c9bbcdca60a29dcce97c577"
diff --git a/meta-python/recipes-devtools/python/python3-marshmallow_4.2.3.bb b/meta-python/recipes-devtools/python/python3-marshmallow_4.3.0.bb
index d41ec8f6de..169726e527 100644
--- a/meta-python/recipes-devtools/python/python3-marshmallow_4.2.3.bb
+++ b/meta-python/recipes-devtools/python/python3-marshmallow_4.3.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "\
6 file://LICENSE;md5=27586b20700d7544c06933afe56f7df4 \ 6 file://LICENSE;md5=27586b20700d7544c06933afe56f7df4 \
7 file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb" 7 file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
8 8
9SRC_URI[sha256sum] = "3e3fef6b3603721a25a723b8caedfa488369bddaf9bc03b40b9442c90aebd22b" 9SRC_URI[sha256sum] = "fb43c53b3fe240b8f6af37223d6ef1636f927ad9bea8ab323afad95dff090880"
10 10
11CVE_PRODUCT = "marshmallow" 11CVE_PRODUCT = "marshmallow"
12 12
diff --git a/meta-python/recipes-devtools/python/python3-moteus_0.3.99.bb b/meta-python/recipes-devtools/python/python3-moteus_0.3.100.bb
index 3de7f6a0ec..fe12809d78 100644
--- a/meta-python/recipes-devtools/python/python3-moteus_0.3.99.bb
+++ b/meta-python/recipes-devtools/python/python3-moteus_0.3.100.bb
@@ -1,11 +1,11 @@
1SUMMARY = "moteus brushless controller library and tools" 1SUMMARY = "moteus brushless controller library and tools"
2HOMEPAGE = "https://github.com/mjbots/moteus" 2HOMEPAGE = "https://github.com/mjbots/moteus"
3LICENSE = "Apache-2.0" 3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=9;md5=24025d3c660abfc62a83f0e709a45e76" 4LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=c2d9643b4523fdf462545aeb1356ad23"
5 5
6inherit pypi setuptools3 6inherit pypi python_setuptools_build_meta
7 7
8SRC_URI[sha256sum] = "30d3cafa6b23692536102f52d9a7d919f2775fa75bdee087f98782c7e3c88805" 8SRC_URI[sha256sum] = "cab1bdcffc18b83ebb52066b1bffe6de7c1354b163b3bd63e430b4fa04fbc6b9"
9 9
10S = "${UNPACKDIR}/moteus-${PV}" 10S = "${UNPACKDIR}/moteus-${PV}"
11 11
diff --git a/meta-python/recipes-devtools/python/python3-orjson-crates.inc b/meta-python/recipes-devtools/python/python3-orjson-crates.inc
index 5e3aa8592b..3feff8d77d 100644
--- a/meta-python/recipes-devtools/python/python3-orjson-crates.inc
+++ b/meta-python/recipes-devtools/python/python3-orjson-crates.inc
@@ -2,87 +2,75 @@
2 2
3# from Cargo.lock 3# from Cargo.lock
4SRC_URI += " \ 4SRC_URI += " \
5 crate://crates.io/associative-cache/2.0.0 \ 5 crate://crates.io/associative-cache/3.0.0 \
6 crate://crates.io/bytecount/0.6.9 \ 6 crate://crates.io/bytecount/0.6.9 \
7 crate://crates.io/bytes/1.11.0 \ 7 crate://crates.io/bytes/1.11.1 \
8 crate://crates.io/cc/1.2.55 \ 8 crate://crates.io/cc/1.2.58 \
9 crate://crates.io/cfg-if/1.0.4 \ 9 crate://crates.io/cfg-if/1.0.4 \
10 crate://crates.io/crunchy/0.2.4 \
11 crate://crates.io/encoding_rs/0.8.35 \ 10 crate://crates.io/encoding_rs/0.8.35 \
12 crate://crates.io/find-msvc-tools/0.1.9 \ 11 crate://crates.io/find-msvc-tools/0.1.9 \
13 crate://crates.io/gimli/0.32.3 \ 12 crate://crates.io/gimli/0.32.3 \
14 crate://crates.io/half/2.7.1 \ 13 crate://crates.io/itoa/1.0.18 \
15 crate://crates.io/itoa/1.0.17 \
16 crate://crates.io/itoap/1.0.1 \ 14 crate://crates.io/itoap/1.0.1 \
17 crate://crates.io/jiff/0.2.18 \ 15 crate://crates.io/jiff/0.2.23 \
18 crate://crates.io/jiff-static/0.2.18 \ 16 crate://crates.io/jiff-static/0.2.23 \
19 crate://crates.io/libc/0.2.180 \ 17 crate://crates.io/libc/0.2.183 \
20 crate://crates.io/memchr/2.7.6 \ 18 crate://crates.io/memchr/2.8.0 \
21 crate://crates.io/no-panic/0.1.36 \ 19 crate://crates.io/no-panic/0.1.36 \
22 crate://crates.io/once_cell/1.21.3 \ 20 crate://crates.io/once_cell/1.21.4 \
23 crate://crates.io/portable-atomic/1.13.1 \ 21 crate://crates.io/portable-atomic/1.13.1 \
24 crate://crates.io/portable-atomic-util/0.2.5 \ 22 crate://crates.io/portable-atomic-util/0.2.6 \
25 crate://crates.io/proc-macro2/1.0.106 \ 23 crate://crates.io/proc-macro2/1.0.106 \
26 crate://crates.io/pyo3-build-config/0.28.0 \ 24 crate://crates.io/pyo3-build-config/0.28.2 \
27 crate://crates.io/pyo3-ffi/0.28.0 \ 25 crate://crates.io/pyo3-ffi/0.28.2 \
28 crate://crates.io/quote/1.0.44 \ 26 crate://crates.io/quote/1.0.45 \
29 crate://crates.io/serde/1.0.228 \ 27 crate://crates.io/serde/1.0.228 \
30 crate://crates.io/serde_core/1.0.228 \ 28 crate://crates.io/serde_core/1.0.228 \
31 crate://crates.io/serde_derive/1.0.228 \ 29 crate://crates.io/serde_derive/1.0.228 \
32 crate://crates.io/serde_json/1.0.149 \ 30 crate://crates.io/serde_json/1.0.149 \
33 crate://crates.io/shlex/1.3.0 \ 31 crate://crates.io/shlex/1.3.0 \
34 crate://crates.io/simdutf8/0.1.5 \ 32 crate://crates.io/simdutf8/0.1.5 \
35 crate://crates.io/smallvec/1.15.1 \ 33 crate://crates.io/syn/2.0.117 \
36 crate://crates.io/syn/2.0.114 \ 34 crate://crates.io/target-lexicon/0.13.5 \
37 crate://crates.io/target-lexicon/0.13.4 \ 35 crate://crates.io/unicode-ident/1.0.24 \
38 crate://crates.io/unicode-ident/1.0.22 \
39 crate://crates.io/unwinding/0.2.8 \ 36 crate://crates.io/unwinding/0.2.8 \
40 crate://crates.io/uuid/1.20.0 \
41 crate://crates.io/version_check/0.9.5 \ 37 crate://crates.io/version_check/0.9.5 \
42 crate://crates.io/xxhash-rust/0.8.15 \ 38 crate://crates.io/xxhash-rust/0.8.15 \
43 crate://crates.io/zerocopy/0.8.37 \ 39 crate://crates.io/zmij/1.0.21 \
44 crate://crates.io/zerocopy-derive/0.8.37 \
45 crate://crates.io/zmij/1.0.19 \
46" 40"
47 41
48SRC_URI[associative-cache-2.0.0.sha256sum] = "b993cd767a2bc7307dd87622311ca22c44329cc7a21366206bfa0896827b2bad" 42SRC_URI[associative-cache-3.0.0.sha256sum] = "6104bd6fd778b62f638add0dd848dca9887cf016a343d15a21d27fb8a3965b98"
49SRC_URI[bytecount-0.6.9.sha256sum] = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" 43SRC_URI[bytecount-0.6.9.sha256sum] = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
50SRC_URI[bytes-1.11.0.sha256sum] = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 44SRC_URI[bytes-1.11.1.sha256sum] = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
51SRC_URI[cc-1.2.55.sha256sum] = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" 45SRC_URI[cc-1.2.58.sha256sum] = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1"
52SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 46SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
53SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
54SRC_URI[encoding_rs-0.8.35.sha256sum] = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 47SRC_URI[encoding_rs-0.8.35.sha256sum] = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
55SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 48SRC_URI[find-msvc-tools-0.1.9.sha256sum] = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
56SRC_URI[gimli-0.32.3.sha256sum] = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" 49SRC_URI[gimli-0.32.3.sha256sum] = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
57SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 50SRC_URI[itoa-1.0.18.sha256sum] = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
58SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
59SRC_URI[itoap-1.0.1.sha256sum] = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" 51SRC_URI[itoap-1.0.1.sha256sum] = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8"
60SRC_URI[jiff-0.2.18.sha256sum] = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" 52SRC_URI[jiff-0.2.23.sha256sum] = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359"
61SRC_URI[jiff-static-0.2.18.sha256sum] = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" 53SRC_URI[jiff-static-0.2.23.sha256sum] = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4"
62SRC_URI[libc-0.2.180.sha256sum] = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" 54SRC_URI[libc-0.2.183.sha256sum] = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
63SRC_URI[memchr-2.7.6.sha256sum] = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 55SRC_URI[memchr-2.8.0.sha256sum] = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
64SRC_URI[no-panic-0.1.36.sha256sum] = "f967505aabc8af5752d098c34146544a43684817cdba8f9725b292530cabbf53" 56SRC_URI[no-panic-0.1.36.sha256sum] = "f967505aabc8af5752d098c34146544a43684817cdba8f9725b292530cabbf53"
65SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 57SRC_URI[once_cell-1.21.4.sha256sum] = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
66SRC_URI[portable-atomic-1.13.1.sha256sum] = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" 58SRC_URI[portable-atomic-1.13.1.sha256sum] = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
67SRC_URI[portable-atomic-util-0.2.5.sha256sum] = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" 59SRC_URI[portable-atomic-util-0.2.6.sha256sum] = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3"
68SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 60SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
69SRC_URI[pyo3-build-config-0.28.0.sha256sum] = "972720a441c91fd9c49f212a1d2d74c6e3803b231ebc8d66c51efbd7ccab11c8" 61SRC_URI[pyo3-build-config-0.28.2.sha256sum] = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7"
70SRC_URI[pyo3-ffi-0.28.0.sha256sum] = "5994456d9dab8934d600d3867571b6410f24fbd6002570ad56356733eb54859b" 62SRC_URI[pyo3-ffi-0.28.2.sha256sum] = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc"
71SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" 63SRC_URI[quote-1.0.45.sha256sum] = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
72SRC_URI[serde-1.0.228.sha256sum] = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 64SRC_URI[serde-1.0.228.sha256sum] = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
73SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 65SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
74SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 66SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
75SRC_URI[serde_json-1.0.149.sha256sum] = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 67SRC_URI[serde_json-1.0.149.sha256sum] = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
76SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 68SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
77SRC_URI[simdutf8-0.1.5.sha256sum] = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 69SRC_URI[simdutf8-0.1.5.sha256sum] = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
78SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 70SRC_URI[syn-2.0.117.sha256sum] = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
79SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" 71SRC_URI[target-lexicon-0.13.5.sha256sum] = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
80SRC_URI[target-lexicon-0.13.4.sha256sum] = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" 72SRC_URI[unicode-ident-1.0.24.sha256sum] = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
81SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
82SRC_URI[unwinding-0.2.8.sha256sum] = "60612c845ef41699f39dc8c5391f252942c0a88b7d15da672eff0d14101bbd6d" 73SRC_URI[unwinding-0.2.8.sha256sum] = "60612c845ef41699f39dc8c5391f252942c0a88b7d15da672eff0d14101bbd6d"
83SRC_URI[uuid-1.20.0.sha256sum] = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f"
84SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 74SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
85SRC_URI[xxhash-rust-0.8.15.sha256sum] = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" 75SRC_URI[xxhash-rust-0.8.15.sha256sum] = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
86SRC_URI[zerocopy-0.8.37.sha256sum] = "7456cf00f0685ad319c5b1693f291a650eaf345e941d082fc4e03df8a03996ac" 76SRC_URI[zmij-1.0.21.sha256sum] = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
87SRC_URI[zerocopy-derive-0.8.37.sha256sum] = "1328722bbf2115db7e19d69ebcc15e795719e2d66b60827c6a69a117365e37a0"
88SRC_URI[zmij-1.0.19.sha256sum] = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445"
diff --git a/meta-python/recipes-devtools/python/python3-orjson_3.11.7.bb b/meta-python/recipes-devtools/python/python3-orjson_3.11.8.bb
index 63e2e089e1..22a0205af3 100644
--- a/meta-python/recipes-devtools/python/python3-orjson_3.11.7.bb
+++ b/meta-python/recipes-devtools/python/python3-orjson_3.11.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://pypi.org/project/orjson/"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d" 4LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d"
5 5
6SRCREV = "ec2b066cae79ae4a90ed126ac5723335dd99e408" 6SRCREV = "5cbb3d0398a2f42de51210270286fecd798c5d78"
7PYPI_SRC_URI = "git://github.com/ijl/orjson;protocol=https;branch=master;tag=${PV};destsuffix=orjson-${PV}" 7PYPI_SRC_URI = "git://github.com/ijl/orjson;protocol=https;branch=master;tag=${PV};destsuffix=orjson-${PV}"
8 8
9CVE_PRODUCT = "orjson" 9CVE_PRODUCT = "orjson"
diff --git a/meta-python/recipes-devtools/python/python3-pandas_3.0.1.bb b/meta-python/recipes-devtools/python/python3-pandas_3.0.2.bb
index a25b367130..62affc5f45 100644
--- a/meta-python/recipes-devtools/python/python3-pandas_3.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pandas_3.0.2.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e98642e1210ade884e5254ab18d55b7d"
8 8
9SRC_URI:append:class-target = " file://0001-BLD-add-option-to-specify-numpy-header-location.patch " 9SRC_URI:append:class-target = " file://0001-BLD-add-option-to-specify-numpy-header-location.patch "
10 10
11SRC_URI[sha256sum] = "4186a699674af418f655dbd420ed87f50d56b4cd6603784279d9eef6627823c8" 11SRC_URI[sha256sum] = "f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043"
12 12
13CVE_PRODUCT = "pandas" 13CVE_PRODUCT = "pandas"
14 14
diff --git a/meta-python/recipes-devtools/python/python3-pillow_12.1.1.bb b/meta-python/recipes-devtools/python/python3-pillow_12.2.0.bb
index 2b3660fc56..f3fcb2d3c1 100644
--- a/meta-python/recipes-devtools/python/python3-pillow_12.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pillow_12.2.0.bb
@@ -3,12 +3,12 @@ Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
3Contributors." 3Contributors."
4HOMEPAGE = "https://pillow.readthedocs.io" 4HOMEPAGE = "https://pillow.readthedocs.io"
5LICENSE = "MIT-CMU" 5LICENSE = "MIT-CMU"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=a1b708da743e3fc0e5c35e92daac0bf8" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f0ac3777cfc96ded1b825e32ae7c99"
7 7
8SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=12.1.x;protocol=https;tag=${PV} \ 8SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https;tag=${PV} \
9 file://0001-support-cross-compiling.patch \ 9 file://0001-support-cross-compiling.patch \
10 " 10 "
11SRCREV = "5158d98c807e719c5938aa3886913ef0ea6814e9" 11SRCREV = "3c41c095064200a02672d89cc5ff629eaf4b0d4f"
12 12
13inherit python_setuptools_build_meta ptest-python-pytest 13inherit python_setuptools_build_meta ptest-python-pytest
14 14
diff --git a/meta-python/recipes-devtools/python/python3-platformdirs_4.9.4.bb b/meta-python/recipes-devtools/python/python3-platformdirs_4.9.6.bb
index df0e3597b7..6ca4a09bde 100644
--- a/meta-python/recipes-devtools/python/python3-platformdirs_4.9.4.bb
+++ b/meta-python/recipes-devtools/python/python3-platformdirs_4.9.6.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/platformdirs/platformdirs"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a"
5 5
6SRC_URI[sha256sum] = "1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934" 6SRC_URI[sha256sum] = "3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a"
7 7
8inherit pypi python_hatchling ptest-python-pytest 8inherit pypi python_hatchling ptest-python-pytest
9 9
diff --git a/meta-python/recipes-devtools/python/python3-protobuf_6.33.6.bb b/meta-python/recipes-devtools/python/python3-protobuf_6.33.6.bb
index bbc713442b..0595ec2a47 100644
--- a/meta-python/recipes-devtools/python/python3-protobuf_6.33.6.bb
+++ b/meta-python/recipes-devtools/python/python3-protobuf_6.33.6.bb
@@ -14,6 +14,7 @@ SRC_URI[sha256sum] = "a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095
14 14
15CVE_PRODUCT += "google:protobuf protobuf:protobuf google-protobuf protobuf-python" 15CVE_PRODUCT += "google:protobuf protobuf:protobuf google-protobuf protobuf-python"
16CVE_STATUS[CVE-2026-0994] = "fixed-version: it is fixed in 6.33.5" 16CVE_STATUS[CVE-2026-0994] = "fixed-version: it is fixed in 6.33.5"
17CVE_STATUS[CVE-2026-6409] = "cpe-incorrect: the vulnerability affects only the php library"
17 18
18# http://errors.yoctoproject.org/Errors/Details/184715/ 19# http://errors.yoctoproject.org/Errors/Details/184715/
19# Can't find required file: ../src/google/protobuf/descriptor.proto 20# Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-python/recipes-devtools/python/python3-pyais_2.20.1.bb b/meta-python/recipes-devtools/python/python3-pyais_3.0.0.bb
index 6ee62a6a32..a8b8777821 100644
--- a/meta-python/recipes-devtools/python/python3-pyais_2.20.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pyais_3.0.0.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "https://github.com/M0r13n/pyais"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=79d9e278b76e3e5b3358cd70b328173c" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=79d9e278b76e3e5b3358cd70b328173c"
5 5
6SRC_URI = "git://github.com/M0r13n/pyais;protocol=https;branch=master;tag=v${PV}" 6SRC_URI = "git://github.com/M0r13n/pyais;protocol=https;branch=main;tag=v${PV}"
7 7
8SRCREV = "6cec67eb8e48c2254bd7bc31415f8df60ecb11ce" 8SRCREV = "a88659ae381487e547fde3c18ab45cfe572b1094"
9 9
10inherit python_setuptools_build_meta ptest-python-pytest 10inherit python_setuptools_build_meta ptest-python-pytest
11 11
diff --git a/meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb b/meta-python/recipes-devtools/python/python3-pyatspi_2.58.2.bb
index cb9b61bd66..404ff19a72 100644
--- a/meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pyatspi_2.58.2.bb
@@ -7,16 +7,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
7 file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" 7 file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
8DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject" 8DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
9 9
10SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master" 10SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master;tag=${PV}"
11SRCREV = "8c69016b38d0e4caaf4c986938ea3410fb7351b6" 11SRCREV = "f2fb289a9d2e4dac65fca8db0f4d3d65607a0cf2"
12 12
13 13
14# Same restriction as gtk+ 14# Same restriction as gtk+
15inherit features_check setuptools3 15inherit features_check
16ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" 16ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
17REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" 17REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
18 18
19inherit pkgconfig autotools python3native 19inherit pkgconfig python_setuptools_build_meta python_mesonpy
20
21DEPENDS += "python3-pygobject-native"
20 22
21FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*" 23FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*"
22 24
diff --git a/meta-python/recipes-devtools/python/python3-pymodbus_3.12.1.bb b/meta-python/recipes-devtools/python/python3-pymodbus_3.13.0.bb
index 7ba7ee78cd..c59e8870b7 100644
--- a/meta-python/recipes-devtools/python/python3-pymodbus_3.12.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pymodbus_3.13.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/riptideio/pymodbus/"
3LICENSE = "BSD-3-Clause" 3LICENSE = "BSD-3-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=12a490c6cffa2e76a6df8aa1fa29e183" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=12a490c6cffa2e76a6df8aa1fa29e183"
5 5
6SRC_URI[sha256sum] = "bcb483381747b3e3aec2c8e01d5df885e5ea43f85b7145dc1907af06aca93a2c" 6SRC_URI[sha256sum] = "da4c87afe772787620594c564cd8aa8a4c58ff9786382aba9550fe0ce8879f32"
7 7
8inherit pypi python_setuptools_build_meta 8inherit pypi python_setuptools_build_meta
9 9
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.9.5.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.9.5.bb
index 8005d1275b..d5c95cf546 100644
--- a/meta-python/recipes-devtools/python/python3-pyroute2_0.9.5.bb
+++ b/meta-python/recipes-devtools/python/python3-pyroute2_0.9.5.bb
@@ -19,6 +19,7 @@ RDEPENDS:${PN} += " \
19 python3-pkgutil \ 19 python3-pkgutil \
20 python3-pprint \ 20 python3-pprint \
21 python3-shell \ 21 python3-shell \
22 python3-unittest \
22 python3-unixadmin \ 23 python3-unixadmin \
23" 24"
24 25
diff --git a/meta-python/recipes-devtools/python/python3-pytest-codspeed_3.0.0.bb b/meta-python/recipes-devtools/python/python3-pytest-codspeed_4.3.0.bb
index 0789e9f548..3fc2715102 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-codspeed_3.0.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-codspeed_4.3.0.bb
@@ -3,8 +3,8 @@ HOMEPAGE = "https://codspeed.io/"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=2856cbe664e8843cd4fd4c1d1d85c2c3" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=2856cbe664e8843cd4fd4c1d1d85c2c3"
5 5
6DEPENDS = "python3-hatchling-native" 6DEPENDS = "python3-cffi-native"
7SRC_URI[sha256sum] = "c5b80100ea32dd44079bb2db298288763eb8fe859eafa1650a8711bd2c32fd06" 7SRC_URI[sha256sum] = "5230d9d65f39063a313ed1820df775166227ec5c20a1122968f85653d5efee48"
8 8
9inherit pypi python_hatchling 9inherit pypi python_hatchling
10 10
diff --git a/meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.0.bb b/meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.2.bb
index 1cdf3d3d23..ac1a53d224 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-httpx_0.36.2.bb
@@ -1,10 +1,10 @@
1SUMMARY = "Send responses to httpx." 1SUMMARY = "Send responses to httpx."
2HOMEPAGE = "https://github.com/Colin-b/pytest_httpx" 2HOMEPAGE = "https://github.com/Colin-b/pytest_httpx"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=8dcb0d82b1d402b6be745fc78dde254b" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=3b6746540997ba13df3f30783db069bc"
5RECIPE_MAINTAINER = "Tom Geelen <t.f.g.geelen@gmail.com>" 5RECIPE_MAINTAINER = "Tom Geelen <t.f.g.geelen@gmail.com>"
6 6
7SRC_URI[sha256sum] = "9edb66a5fd4388ce3c343189bc67e7e1cb50b07c2e3fc83b97d511975e8a831b" 7SRC_URI[sha256sum] = "05a56527484f7f4e8c856419ea379b8dc359c36801c4992fdb330f294c690356"
8 8
9inherit pypi python_setuptools_build_meta ptest-python-pytest 9inherit pypi python_setuptools_build_meta ptest-python-pytest
10 10
diff --git a/meta-python/recipes-devtools/python/python3-pytest-runner/0001-Not-use-functions-from-pkg_resources-any-more.patch b/meta-python/recipes-devtools/python/python3-pytest-runner/0001-Not-use-functions-from-pkg_resources-any-more.patch
new file mode 100644
index 0000000000..20c1c121fb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-runner/0001-Not-use-functions-from-pkg_resources-any-more.patch
@@ -0,0 +1,77 @@
1From 81b0218e390e36aa2c3d1bdaa124d8af175e9cbb Mon Sep 17 00:00:00 2001
2From: Li Zhou <li.zhou@windriver.com>
3Date: Thu, 2 Apr 2026 15:44:18 +0800
4Subject: [PATCH] Not use functions from pkg_resources any more
5
6The python3 setuptools 82 dropped pkg_resources module by now.
7To avoid the failure "No module named 'pkg_resources'", replace the
8functions from this module with other functions from modules
9packaging and importlib.metadata.
10
11Upstream-Status: Inactive-Upstream [lastcommit: 2023]
12Signed-off-by: Li Zhou <li.zhou@windriver.com>
13---
14 ptr/__init__.py | 23 +++++++++++++----------
15 1 file changed, 13 insertions(+), 10 deletions(-)
16
17diff --git a/ptr/__init__.py b/ptr/__init__.py
18index 41192fa..5186059 100644
19--- a/ptr/__init__.py
20+++ b/ptr/__init__.py
21@@ -10,10 +10,12 @@ import operator as _operator
22 import itertools as _itertools
23 import warnings as _warnings
24
25-import pkg_resources
26 import setuptools.command.test as orig
27 from setuptools import Distribution
28
29+from importlib.metadata import version
30+from packaging.version import Version
31+from packaging.markers import Marker, InvalidMarker
32
33 @_contextlib.contextmanager
34 def _save_argv(repl=None):
35@@ -121,7 +123,8 @@ class PyTest(orig.test):
36 instead of declaring the dependency in the package
37 metadata, assert the requirement at run time.
38 """
39- pkg_resources.require('setuptools>=27.3')
40+ if Version(version('setuptools')) < Version('27.3'):
41+ raise RuntimeError("setuptools >= 27.3 is required")
42
43 def finalize_options(self):
44 if self.addopts:
45@@ -133,11 +136,12 @@ class PyTest(orig.test):
46 Given an environment marker, return True if the marker is valid
47 and matches this environment.
48 """
49- return (
50- not marker
51- or not pkg_resources.invalid_marker(marker)
52- and pkg_resources.evaluate_marker(marker)
53- )
54+ if not marker:
55+ return True
56+ try:
57+ return Marker(marker).evaluate()
58+ except InvalidMarker:
59+ return False
60
61 def install_dists(self, dist):
62 """
63@@ -175,9 +179,8 @@ class PyTest(orig.test):
64 "please upgrade to setuptools 30.4 or later or pin to "
65 "pytest-runner < 5."
66 )
67- ver_str = pkg_resources.get_distribution('setuptools').version
68- ver = pkg_resources.parse_version(ver_str)
69- if ver < pkg_resources.parse_version('30.4'):
70+ ver = Version(version('setuptools'))
71+ if ver < Version('30.4'):
72 _warnings.warn(msg)
73
74 def run(self):
75--
762.34.1
77
diff --git a/meta-python/recipes-devtools/python/python3-pytest-runner_6.0.1.bb b/meta-python/recipes-devtools/python/python3-pytest-runner_6.0.1.bb
index e5e5e048bd..dd3a8d0234 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-runner_6.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-runner_6.0.1.bb
@@ -5,6 +5,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
5 5
6SRC_URI[sha256sum] = "70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b" 6SRC_URI[sha256sum] = "70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b"
7 7
8SRC_URI += " \
9 file://0001-Not-use-functions-from-pkg_resources-any-more.patch \
10 "
11
8inherit pypi python_setuptools_build_meta 12inherit pypi python_setuptools_build_meta
9 13
10DEPENDS += " \ 14DEPENDS += " \
diff --git a/meta-python/recipes-devtools/python/python3-python-multipart_0.0.22.bb b/meta-python/recipes-devtools/python/python3-python-multipart_0.0.26.bb
index b54fe5d309..46046dc050 100644
--- a/meta-python/recipes-devtools/python/python3-python-multipart_0.0.22.bb
+++ b/meta-python/recipes-devtools/python/python3-python-multipart_0.0.26.bb
@@ -1,8 +1,8 @@
1SUMMARY = "A streaming multipart parser for Python" 1SUMMARY = "A streaming multipart parser for Python"
2LICENSE = "Apache-2.0" 2LICENSE = "Apache-2.0"
3LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3d98f0d58b28321924a89ab60c82410e" 3LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
4 4
5SRC_URI[sha256sum] = "7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58" 5SRC_URI[sha256sum] = "08fadc45918cd615e26846437f50c5d6d23304da32c341f289a617127b081f17"
6 6
7inherit pypi python_hatchling ptest-python-pytest 7inherit pypi python_hatchling ptest-python-pytest
8 8
diff --git a/meta-python/recipes-devtools/python/python3-regex_2026.3.32.bb b/meta-python/recipes-devtools/python/python3-regex_2026.4.4.bb
index a2091df806..3d4d7a3e99 100644
--- a/meta-python/recipes-devtools/python/python3-regex_2026.3.32.bb
+++ b/meta-python/recipes-devtools/python/python3-regex_2026.4.4.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
5 5
6inherit pypi python_setuptools_build_meta 6inherit pypi python_setuptools_build_meta
7 7
8SRC_URI[sha256sum] = "f1574566457161678297a116fa5d1556c5a4159d64c5ff7c760e7c564bf66f16" 8SRC_URI[sha256sum] = "e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423"
9 9
10RDEPENDS:${PN} += " \ 10RDEPENDS:${PN} += " \
11 python3-stringold \ 11 python3-stringold \
diff --git a/meta-python/recipes-devtools/python/python3-sentry-sdk_2.56.0.bb b/meta-python/recipes-devtools/python/python3-sentry-sdk_2.57.0.bb
index 4833feac20..94fc007b84 100644
--- a/meta-python/recipes-devtools/python/python3-sentry-sdk_2.56.0.bb
+++ b/meta-python/recipes-devtools/python/python3-sentry-sdk_2.57.0.bb
@@ -15,7 +15,7 @@ RDEPENDS:${PN} += "\
15 python3-datetime \ 15 python3-datetime \
16" 16"
17 17
18SRC_URI[sha256sum] = "fdab72030b69625665b2eeb9738bdde748ad254e8073085a0ce95382678e8168" 18SRC_URI[sha256sum] = "4be8d1e71c32fb27f79c577a337ac8912137bba4bcbc64a4ec1da4d6d8dc5199"
19 19
20PYPI_PACKAGE = "sentry_sdk" 20PYPI_PACKAGE = "sentry_sdk"
21 21
diff --git a/meta-python/recipes-devtools/python/python3-setuptools-git-versioning_2.1.0.bb b/meta-python/recipes-devtools/python/python3-setuptools-git-versioning_3.0.1.bb
index 8206e8513d..561f1d06c6 100644
--- a/meta-python/recipes-devtools/python/python3-setuptools-git-versioning_2.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-setuptools-git-versioning_3.0.1.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "https://setuptools-git-versioning.readthedocs.io"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=92e79e3a844e66731724600f3ac9c0d8" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=92e79e3a844e66731724600f3ac9c0d8"
5 5
6SRC_URI[sha256sum] = "6aef5b8bb1cfb953b6b343d27cbfc561d96cf2a2ee23c2e0dd3591042a059921" 6SRC_URI[sha256sum] = "c8a599bacf163b5d215552b5701faf5480ffc4d65426a5711a010b802e1590eb"
7 7
8inherit pypi setuptools3 8inherit pypi python_setuptools_build_meta
9 9
10PACKAGECONFIG ?= "" 10PACKAGECONFIG ?= ""
11PACKAGECONFIG[python-version-smaller-3-dot-11] = ",,,python3-tomli" 11PACKAGECONFIG[python-version-smaller-3-dot-11] = ",,,python3-tomli"
diff --git a/meta-python/recipes-devtools/python/python3-smbus2_0.6.0.bb b/meta-python/recipes-devtools/python/python3-smbus2_0.6.1.bb
index 33613d9abe..1b9a879234 100644
--- a/meta-python/recipes-devtools/python/python3-smbus2_0.6.0.bb
+++ b/meta-python/recipes-devtools/python/python3-smbus2_0.6.1.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2a3eca2de44816126b3c6f33811a9fba"
6 6
7inherit pypi setuptools3 7inherit pypi setuptools3
8 8
9SRC_URI[sha256sum] = "9b5ff1e998e114730f9dfe0c4babbef06c92468cfb61eaa684e30f225661b95b" 9SRC_URI[sha256sum] = "2b043372abf8f6029a632c3aab36b641c5d5872b1cbad599fc68e17ac4fd90a5"
10 10
11CLEANBROKEN = "1" 11CLEANBROKEN = "1"
12 12
diff --git a/meta-python/recipes-devtools/python/python3-snagboot_2.6.bb b/meta-python/recipes-devtools/python/python3-snagboot_2.6.1.bb
index 16cc5c7882..74e6df64a9 100644
--- a/meta-python/recipes-devtools/python/python3-snagboot_2.6.bb
+++ b/meta-python/recipes-devtools/python/python3-snagboot_2.6.1.bb
@@ -3,7 +3,7 @@ SUMMARY = "Snagboot intends to be an open-source replacement vendor-specific too
3LICENSE = "GPL-2.0-only" 3LICENSE = "GPL-2.0-only"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5 5
6SRC_URI[sha256sum] = "8451ff4cb96f8a4dc7aca06cee8a54db900e93b4e0e946205e0856b7a4cf4632" 6SRC_URI[sha256sum] = "9800562936d21972a212e8e7c6f0f79eff8faf7f1bfb534675875bd06666f28c"
7 7
8inherit pypi python_setuptools_build_meta 8inherit pypi python_setuptools_build_meta
9 9
diff --git a/meta-python/recipes-devtools/python/python3-soundcard_0.4.5.bb b/meta-python/recipes-devtools/python/python3-soundcard_0.4.6.bb
index 5116892dad..17308a8965 100644
--- a/meta-python/recipes-devtools/python/python3-soundcard_0.4.5.bb
+++ b/meta-python/recipes-devtools/python/python3-soundcard_0.4.6.bb
@@ -6,7 +6,7 @@ SECTION = "devel/python"
6LICENSE = "BSD-3-Clause" 6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=e39df1540c06c17ca310ce87c36b042c" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=e39df1540c06c17ca310ce87c36b042c"
8 8
9SRC_URI[sha256sum] = "07272ba927e32cafdf634e4a1ca53b9a3218321a60c7d2e08f54b832a56946aa" 9SRC_URI[sha256sum] = "9b46d64a26f97cd7d88bcfc385c97c069f97c5ec3404e4e7c23771598a8cf47b"
10 10
11inherit pypi setuptools3 features_check 11inherit pypi setuptools3 features_check
12 12
diff --git a/meta-python/recipes-devtools/python/python3-soupsieve_2.8.2.bb b/meta-python/recipes-devtools/python/python3-soupsieve_2.8.3.bb
index 63b5d3b2e7..11a2b5e103 100644
--- a/meta-python/recipes-devtools/python/python3-soupsieve_2.8.2.bb
+++ b/meta-python/recipes-devtools/python/python3-soupsieve_2.8.3.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/facelessuser/soupsieve"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE.md;md5=74851a2f1e5c07496dcb452af6a6bf54" 5LIC_FILES_CHKSUM = "file://LICENSE.md;md5=74851a2f1e5c07496dcb452af6a6bf54"
6 6
7SRC_URI[sha256sum] = "78a66b0fdee2ab40b7199dc3e747ee6c6e231899feeaae0b9b98a353afd48fd8" 7SRC_URI[sha256sum] = "3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349"
8 8
9inherit pypi python_hatchling ptest-python-pytest 9inherit pypi python_hatchling ptest-python-pytest
10 10
diff --git a/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.48.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.49.bb
index 6681792f01..ecc9099e30 100644
--- a/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.48.bb
+++ b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.49.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://www.sqlalchemy.org/"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=53a9111717b305b0fae0d704a24925c3" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=53a9111717b305b0fae0d704a24925c3"
6 6
7SRC_URI[sha256sum] = "5ca74f37f3369b45e1f6b7b06afb182af1fd5dde009e4ffd831830d98cbe5fe7" 7SRC_URI[sha256sum] = "d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f"
8 8
9inherit pypi python_setuptools_build_meta cython 9inherit pypi python_setuptools_build_meta cython
10 10
diff --git a/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb b/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb
index a83adffcd2..2cf7742a90 100644
--- a/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb
+++ b/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb
@@ -14,8 +14,4 @@ SRC_URI += "\
14 file://0001-Drop-the-deprecated-pkg_resources.patch \ 14 file://0001-Drop-the-deprecated-pkg_resources.patch \
15" 15"
16 16
17RDEPENDS:${PN} += "\
18 python3-setuptools \
19 "
20
21BBCLASSEXTEND = "native nativesdk" 17BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-tox_4.49.0.bb b/meta-python/recipes-devtools/python/python3-tox_4.52.1.bb
index f07694cb79..dbac6deed8 100644
--- a/meta-python/recipes-devtools/python/python3-tox_4.49.0.bb
+++ b/meta-python/recipes-devtools/python/python3-tox_4.52.1.bb
@@ -6,13 +6,14 @@ HOMEPAGE = "https://tox.readthedocs.org/"
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
8 8
9SRC_URI[sha256sum] = "2e01f09ae1226749466cbcd8c514fe988ffc8c76b5d523c7f9b745d1711a6e71" 9SRC_URI[sha256sum] = "297e71ea0ae4ef3acc45cb5fdf080b74537e6ecb5eea7d4646fa7322ca10473e"
10 10
11BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
12inherit pypi python_hatchling 12inherit pypi python_hatchling
13 13
14DEPENDS += "\ 14DEPENDS += "\
15 python3-hatch-vcs-native \ 15 python3-hatch-vcs-native \
16 python3-docutils-native \
16" 17"
17 18
18RDEPENDS:${PN} += "\ 19RDEPENDS:${PN} += "\
diff --git a/meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260130.bb b/meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260408.bb
index 78e96b3122..88fff6c83d 100644
--- a/meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260130.bb
+++ b/meta-python/recipes-devtools/python/python3-types-psutil_7.2.2.20260408.bb
@@ -8,7 +8,7 @@ UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
8 8
9inherit pypi python_setuptools_build_meta 9inherit pypi python_setuptools_build_meta
10 10
11SRC_URI[sha256sum] = "15b0ab69c52841cf9ce3c383e8480c620a4d13d6a8e22b16978ebddac5590950" 11SRC_URI[sha256sum] = "e8053450685965b8cd52afb62569073d00ea9967ae78bb45dff5f606847f97f2"
12 12
13BBCLASSEXTEND = "native" 13BBCLASSEXTEND = "native"
14 14
diff --git a/meta-python/recipes-devtools/python/python3-tzdata_2025.3.bb b/meta-python/recipes-devtools/python/python3-tzdata_2026.1.bb
index 1c313ea223..9a66460e76 100644
--- a/meta-python/recipes-devtools/python/python3-tzdata_2025.3.bb
+++ b/meta-python/recipes-devtools/python/python3-tzdata_2026.1.bb
@@ -4,7 +4,7 @@ LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=fca9fd5c15a28eb874ba38577a585d48 \ 4LIC_FILES_CHKSUM = "file://LICENSE;md5=fca9fd5c15a28eb874ba38577a585d48 \
5 file://licenses/LICENSE_APACHE;md5=86d3f3a95c324c9479bd8986968f4327" 5 file://licenses/LICENSE_APACHE;md5=86d3f3a95c324c9479bd8986968f4327"
6 6
7SRC_URI[sha256sum] = "de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7" 7SRC_URI[sha256sum] = "67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98"
8 8
9inherit pypi python_setuptools_build_meta ptest-python-pytest 9inherit pypi python_setuptools_build_meta ptest-python-pytest
10 10
diff --git a/meta-python/recipes-devtools/python/python3-uvicorn_0.42.0.bb b/meta-python/recipes-devtools/python/python3-uvicorn_0.44.0.bb
index f14ba46dc6..ce92c96d8d 100644
--- a/meta-python/recipes-devtools/python/python3-uvicorn_0.42.0.bb
+++ b/meta-python/recipes-devtools/python/python3-uvicorn_0.44.0.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-3-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5c778842f66a649636561c423c0eec2e" 4LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5c778842f66a649636561c423c0eec2e"
5RECIPE_MAINTAINER = "Tom Geelen <t.f.g.geelen@gmail.com>" 5RECIPE_MAINTAINER = "Tom Geelen <t.f.g.geelen@gmail.com>"
6 6
7SRC_URI[sha256sum] = "9b1f190ce15a2dd22e7758651d9b6d12df09a13d51ba5bf4fc33c383a48e1775" 7SRC_URI[sha256sum] = "6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e"
8 8
9SRC_URI += "file://0001-ptest-disable-failing-tests.patch" 9SRC_URI += "file://0001-ptest-disable-failing-tests.patch"
10 10
diff --git a/meta-python/recipes-devtools/python/python3-virtualenv_21.2.0.bb b/meta-python/recipes-devtools/python/python3-virtualenv_21.2.1.bb
index dda29c549d..3ff03e43c7 100644
--- a/meta-python/recipes-devtools/python/python3-virtualenv_21.2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-virtualenv_21.2.1.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/pypa/virtualenv"
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538"
8 8
9SRC_URI[sha256sum] = "1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098" 9SRC_URI[sha256sum] = "b66ffe81301766c0d5e2208fc3576652c59d44e7b731fc5f5ed701c9b537fa78"
10 10
11BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
12inherit pypi python_hatchling 12inherit pypi python_hatchling
diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_3.1.7.bb b/meta-python/recipes-devtools/python/python3-werkzeug_3.1.8.bb
index 29ef2db10a..4e1be5cb2f 100644
--- a/meta-python/recipes-devtools/python/python3-werkzeug_3.1.7.bb
+++ b/meta-python/recipes-devtools/python/python3-werkzeug_3.1.8.bb
@@ -10,7 +10,7 @@ HOMEPAGE = "https://werkzeug.palletsprojects.com"
10LICENSE = "BSD-3-Clause" 10LICENSE = "BSD-3-Clause"
11LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dc88300786f1c214c1e9827a5229462" 11LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dc88300786f1c214c1e9827a5229462"
12 12
13SRC_URI[sha256sum] = "fb8c01fe6ab13b9b7cdb46892b99b1d66754e1d7ab8e542e865ec13f526b5351" 13SRC_URI[sha256sum] = "9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44"
14 14
15CVE_PRODUCT = "werkzeug" 15CVE_PRODUCT = "werkzeug"
16 16
diff --git a/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch b/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch
deleted file mode 100644
index 70d4607c29..0000000000
--- a/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch
+++ /dev/null
@@ -1,3845 +0,0 @@
1From 0136ca731cba8b056b3f2ff0e7df3953b94f1e87 Mon Sep 17 00:00:00 2001
2From: Tim Orling <tim.orling@konsulko.com>
3Date: Sun, 24 Dec 2023 09:41:57 -0800
4Subject: [PATCH 1/2] test_functionality: convert line endings to Unix
5
6Convert the Windows line endings with dos2unix to be like the
7other files in tests/*
8
9Upstream-Status: Submitted [https://github.com/sumerc/yappi/pull/164]
10
11Signed-off-by: Tim Orling <tim.orling@konsulko.com>
12---
13 tests/test_functionality.py | 3822 +++++++++++++++++------------------
14 1 file changed, 1911 insertions(+), 1911 deletions(-)
15
16diff --git a/tests/test_functionality.py b/tests/test_functionality.py
17index 0e99c47..38bbe67 100644
18--- a/tests/test_functionality.py
19+++ b/tests/test_functionality.py
20@@ -1,1911 +1,1911 @@
21-import os
22-import sys
23-import time
24-import threading
25-import unittest
26-import yappi
27-import _yappi
28-import utils
29-import multiprocessing
30-import subprocess
31-
32-_counter = 0
33-
34-
35-class BasicUsage(utils.YappiUnitTestCase):
36-
37- def test_callback_function_int_return_overflow(self):
38- # this test is just here to check if any errors are generated, as the err
39- # is printed in C side, I did not include it here. THere are ways to test
40- # this deterministically, I did not bother
41- import ctypes
42-
43- def _unsigned_overflow_margin():
44- return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
45-
46- def foo():
47- pass
48-
49- #with utils.captured_output() as (out, err):
50- yappi.set_context_id_callback(_unsigned_overflow_margin)
51- yappi.set_tag_callback(_unsigned_overflow_margin)
52- yappi.start()
53- foo()
54-
55- def test_issue60(self):
56-
57- def foo():
58- buf = bytearray()
59- buf += b't' * 200
60- view = memoryview(buf)[10:]
61- view = view.tobytes()
62- del buf[:10] # this throws exception
63- return view
64-
65- yappi.start(builtins=True)
66- foo()
67- self.assertTrue(
68- len(
69- yappi.get_func_stats(
70- filter_callback=lambda x: yappi.
71- func_matches(x, [memoryview.tobytes])
72- )
73- ) > 0
74- )
75- yappi.stop()
76-
77- def test_issue54(self):
78-
79- def _tag_cbk():
80- global _counter
81- _counter += 1
82- return _counter
83-
84- def a():
85- pass
86-
87- def b():
88- pass
89-
90- yappi.set_tag_callback(_tag_cbk)
91- yappi.start()
92- a()
93- a()
94- a()
95- yappi.stop()
96- stats = yappi.get_func_stats()
97- self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
98- stats = yappi.get_func_stats(tag=1)
99-
100- for i in range(1, 3):
101- stats = yappi.get_func_stats(tag=i)
102- stats = yappi.get_func_stats(
103- tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
104- )
105-
106- stat = stats.pop()
107- self.assertEqual(stat.ncall, 1)
108-
109- yappi.set_tag_callback(None)
110- yappi.clear_stats()
111- yappi.start()
112- b()
113- b()
114- stats = yappi.get_func_stats()
115- self.assertEqual(len(stats), 1)
116- stat = stats.pop()
117- self.assertEqual(stat.ncall, 2)
118-
119- def test_filter(self):
120-
121- def a():
122- pass
123-
124- def b():
125- a()
126-
127- def c():
128- b()
129-
130- _TCOUNT = 5
131-
132- ts = []
133- yappi.start()
134- for i in range(_TCOUNT):
135- t = threading.Thread(target=c)
136- t.start()
137- ts.append(t)
138-
139- for t in ts:
140- t.join()
141-
142- yappi.stop()
143-
144- ctx_ids = []
145- for tstat in yappi.get_thread_stats():
146- if tstat.name == '_MainThread':
147- main_ctx_id = tstat.id
148- else:
149- ctx_ids.append(tstat.id)
150-
151- fstats = yappi.get_func_stats(filter={"ctx_id": 9})
152- self.assertTrue(fstats.empty())
153- fstats = yappi.get_func_stats(
154- filter={
155- "ctx_id": main_ctx_id,
156- "name": "c"
157- }
158- ) # main thread
159- self.assertTrue(fstats.empty())
160-
161- for i in ctx_ids:
162- fstats = yappi.get_func_stats(
163- filter={
164- "ctx_id": i,
165- "name": "a",
166- "ncall": 1
167- }
168- )
169- self.assertEqual(fstats.pop().ncall, 1)
170- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
171- self.assertEqual(fstats.pop().ncall, 1)
172- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
173- self.assertEqual(fstats.pop().ncall, 1)
174-
175- yappi.clear_stats()
176- yappi.start(builtins=True)
177- time.sleep(0.1)
178- yappi.stop()
179- fstats = yappi.get_func_stats(filter={"module": "time"})
180- self.assertEqual(len(fstats), 1)
181-
182- # invalid filters`
183- self.assertRaises(
184- Exception, yappi.get_func_stats, filter={'tag': "sss"}
185- )
186- self.assertRaises(
187- Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
188- )
189-
190- def test_filter_callback(self):
191-
192- def a():
193- time.sleep(0.1)
194-
195- def b():
196- a()
197-
198- def c():
199- pass
200-
201- def d():
202- pass
203-
204- yappi.set_clock_type("wall")
205- yappi.start(builtins=True)
206- a()
207- b()
208- c()
209- d()
210- stats = yappi.get_func_stats(
211- filter_callback=lambda x: yappi.func_matches(x, [a, b])
212- )
213- #stats.print_all()
214- r1 = '''
215- tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
216- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
217- '''
218- self.assert_traces_almost_equal(r1, stats)
219- self.assertEqual(len(stats), 2)
220- stats = yappi.get_func_stats(
221- filter_callback=lambda x: yappi.
222- module_matches(x, [sys.modules[__name__]])
223- )
224- r1 = '''
225- tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
226- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
227- tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
228- tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
229- '''
230- self.assert_traces_almost_equal(r1, stats)
231- self.assertEqual(len(stats), 4)
232-
233- stats = yappi.get_func_stats(
234- filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
235- )
236- self.assertEqual(len(stats), 1)
237- r1 = '''
238- time.sleep 2 0.206804 0.220000 0.103402
239- '''
240- self.assert_traces_almost_equal(r1, stats)
241-
242- def test_print_formatting(self):
243-
244- def a():
245- pass
246-
247- def b():
248- a()
249-
250- func_cols = {
251- 1: ("name", 48),
252- 0: ("ncall", 5),
253- 2: ("tsub", 8),
254- }
255- thread_cols = {
256- 1: ("name", 48),
257- 0: ("ttot", 8),
258- }
259-
260- yappi.start()
261- a()
262- b()
263- yappi.stop()
264- fs = yappi.get_func_stats()
265- cs = fs[1].children
266- ts = yappi.get_thread_stats()
267- #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
268- #cs.print_all(out=sys.stderr, columns=func_cols)
269- #ts.print_all(out=sys.stderr, columns=thread_cols)
270- #cs.print_all(out=sys.stderr, columns={})
271-
272- self.assertRaises(
273- yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
274- )
275- self.assertRaises(
276- yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
277- )
278- self.assertRaises(
279- yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
280- )
281-
282- def test_get_clock(self):
283- yappi.set_clock_type('cpu')
284- self.assertEqual('cpu', yappi.get_clock_type())
285- clock_info = yappi.get_clock_info()
286- self.assertTrue('api' in clock_info)
287- self.assertTrue('resolution' in clock_info)
288-
289- yappi.set_clock_type('wall')
290- self.assertEqual('wall', yappi.get_clock_type())
291-
292- t0 = yappi.get_clock_time()
293- time.sleep(0.1)
294- duration = yappi.get_clock_time() - t0
295- self.assertTrue(0.05 < duration < 0.3)
296-
297- def test_profile_decorator(self):
298-
299- def aggregate(func, stats):
300- fname = f"tests/{func.__name__}.profile"
301- try:
302- stats.add(fname)
303- except OSError:
304- pass
305- stats.save(fname)
306- raise Exception("messing around")
307-
308- @yappi.profile(return_callback=aggregate)
309- def a(x, y):
310- if x + y == 25:
311- raise Exception("")
312- return x + y
313-
314- def b():
315- pass
316-
317- try:
318- os.remove(
319- "tests/a.profile"
320- ) # remove the one from prev test, if available
321- except:
322- pass
323-
324- # global profile is on to mess things up
325- yappi.start()
326- b()
327-
328- # assert functionality and call function at same time
329- try:
330- self.assertEqual(a(1, 2), 3)
331- except:
332- pass
333- try:
334- self.assertEqual(a(2, 5), 7)
335- except:
336- pass
337- try:
338- a(4, 21)
339- except:
340- pass
341- stats = yappi.get_func_stats().add("tests/a.profile")
342- fsa = utils.find_stat_by_name(stats, 'a')
343- self.assertEqual(fsa.ncall, 3)
344- self.assertEqual(len(stats), 1) # b() should be cleared out.
345-
346- @yappi.profile(return_callback=aggregate)
347- def count_down_rec(n):
348- if n == 0:
349- return
350- count_down_rec(n - 1)
351-
352- try:
353- os.remove(
354- "tests/count_down_rec.profile"
355- ) # remove the one from prev test, if available
356- except:
357- pass
358-
359- try:
360- count_down_rec(4)
361- except:
362- pass
363- try:
364- count_down_rec(3)
365- except:
366- pass
367-
368- stats = yappi.YFuncStats("tests/count_down_rec.profile")
369- fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
370- self.assertEqual(fsrec.ncall, 9)
371- self.assertEqual(fsrec.nactualcall, 2)
372-
373- def test_strip_dirs(self):
374-
375- def a():
376- pass
377-
378- stats = utils.run_and_get_func_stats(a, )
379- stats.strip_dirs()
380- fsa = utils.find_stat_by_name(stats, "a")
381- self.assertEqual(fsa.module, os.path.basename(fsa.module))
382-
383- @unittest.skipIf(os.name == "nt", "do not run on Windows")
384- def test_run_as_script(self):
385- import re
386- p = subprocess.Popen(
387- ['yappi', os.path.join('./tests', 'run_as_script.py')],
388- stdout=subprocess.PIPE
389- )
390- out, err = p.communicate()
391- self.assertEqual(p.returncode, 0)
392- func_stats, thread_stats = re.split(
393- b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
394- )
395- self.assertTrue(b'FancyThread' in thread_stats)
396-
397- def test_yappi_overhead(self):
398- LOOP_COUNT = 100000
399-
400- def a():
401- pass
402-
403- def b():
404- for i in range(LOOP_COUNT):
405- a()
406-
407- t0 = time.time()
408- yappi.start()
409- b()
410- yappi.stop()
411- time_with_yappi = time.time() - t0
412- t0 = time.time()
413- b()
414- time_without_yappi = time.time() - t0
415- if time_without_yappi == 0:
416- time_without_yappi = 0.000001
417-
418- # in latest v0.82, I calculated this as close to "7.0" in my machine.
419- # however, %83 of this overhead is coming from tickcount(). The other %17
420- # seems to have been evenly distributed to the internal bookkeeping
421- # structures/algorithms which seems acceptable. Note that our test only
422- # tests one function being profiled at-a-time in a short interval.
423- # profiling high number of functions in a small time
424- # is a different beast, (which is pretty unlikely in most applications)
425- # So as a conclusion: I cannot see any optimization window for Yappi that
426- # is worth implementing as we will only optimize %17 of the time.
427- sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
428- (time_with_yappi / time_without_yappi))
429-
430- def test_clear_stats_while_running(self):
431-
432- def a():
433- pass
434-
435- yappi.start()
436- a()
437- yappi.clear_stats()
438- a()
439- stats = yappi.get_func_stats()
440- fsa = utils.find_stat_by_name(stats, 'a')
441- self.assertEqual(fsa.ncall, 1)
442-
443- def test_generator(self):
444-
445- def _gen(n):
446- while (n > 0):
447- yield n
448- n -= 1
449-
450- yappi.start()
451- for x in _gen(5):
452- pass
453- self.assertTrue(
454- yappi.convert2pstats(yappi.get_func_stats()) is not None
455- )
456-
457- def test_slice_child_stats_and_strip_dirs(self):
458-
459- def b():
460- for i in range(10000000):
461- pass
462-
463- def a():
464- b()
465-
466- yappi.start(builtins=True)
467- a()
468- stats = yappi.get_func_stats()
469- fsa = utils.find_stat_by_name(stats, 'a')
470- fsb = utils.find_stat_by_name(stats, 'b')
471- self.assertTrue(fsa.children[0:1] is not None)
472- prev_afullname = fsa.full_name
473- prev_bchildfullname = fsa.children[fsb].full_name
474- stats.strip_dirs()
475- self.assertTrue(len(prev_afullname) > len(fsa.full_name))
476- self.assertTrue(
477- len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
478- )
479-
480- def test_children_stat_functions(self):
481- _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
482- _yappi._set_test_timings(_timings)
483-
484- def b():
485- pass
486-
487- def c():
488- pass
489-
490- def a():
491- b()
492- c()
493-
494- yappi.start()
495- a()
496- b() # non-child call
497- c() # non-child call
498- stats = yappi.get_func_stats()
499- fsa = utils.find_stat_by_name(stats, 'a')
500- childs_of_a = fsa.children.get().sort("tavg", "desc")
501- prev_item = None
502- for item in childs_of_a:
503- if prev_item:
504- self.assertTrue(prev_item.tavg > item.tavg)
505- prev_item = item
506- childs_of_a.sort("name", "desc")
507- prev_item = None
508- for item in childs_of_a:
509- if prev_item:
510- self.assertTrue(prev_item.name > item.name)
511- prev_item = item
512- childs_of_a.clear()
513- self.assertTrue(childs_of_a.empty())
514-
515- def test_no_stats_different_clock_type_load(self):
516-
517- def a():
518- pass
519-
520- yappi.start()
521- a()
522- yappi.stop()
523- yappi.get_func_stats().save("tests/ystats1.ys")
524- yappi.clear_stats()
525- yappi.set_clock_type("WALL")
526- yappi.start()
527- yappi.stop()
528- stats = yappi.get_func_stats().add("tests/ystats1.ys")
529- fsa = utils.find_stat_by_name(stats, 'a')
530- self.assertTrue(fsa is not None)
531-
532- def test_subsequent_profile(self):
533- _timings = {"a_1": 1, "b_1": 1}
534- _yappi._set_test_timings(_timings)
535-
536- def a():
537- pass
538-
539- def b():
540- pass
541-
542- yappi.start()
543- a()
544- yappi.stop()
545- yappi.start()
546- b()
547- yappi.stop()
548- stats = yappi.get_func_stats()
549- fsa = utils.find_stat_by_name(stats, 'a')
550- fsb = utils.find_stat_by_name(stats, 'b')
551- self.assertTrue(fsa is not None)
552- self.assertTrue(fsb is not None)
553- self.assertEqual(fsa.ttot, 1)
554- self.assertEqual(fsb.ttot, 1)
555-
556- def test_lambda(self):
557- f = lambda: time.sleep(0.3)
558- yappi.set_clock_type("wall")
559- yappi.start()
560- f()
561- stats = yappi.get_func_stats()
562- fsa = utils.find_stat_by_name(stats, '<lambda>')
563- self.assertTrue(fsa.ttot > 0.1)
564-
565- def test_module_stress(self):
566- self.assertEqual(yappi.is_running(), False)
567-
568- yappi.start()
569- yappi.clear_stats()
570- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
571-
572- yappi.stop()
573- yappi.clear_stats()
574- yappi.set_clock_type("cpu")
575- self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
576- self.assertEqual(yappi.is_running(), False)
577- yappi.clear_stats()
578- yappi.clear_stats()
579-
580- def test_stat_sorting(self):
581- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
582- _yappi._set_test_timings(_timings)
583-
584- self._ncall = 1
585-
586- def a():
587- b()
588-
589- def b():
590- if self._ncall == 2:
591- return
592- self._ncall += 1
593- a()
594-
595- stats = utils.run_and_get_func_stats(a)
596- stats = stats.sort("totaltime", "desc")
597- prev_stat = None
598- for stat in stats:
599- if prev_stat:
600- self.assertTrue(prev_stat.ttot >= stat.ttot)
601- prev_stat = stat
602- stats = stats.sort("totaltime", "asc")
603- prev_stat = None
604- for stat in stats:
605- if prev_stat:
606- self.assertTrue(prev_stat.ttot <= stat.ttot)
607- prev_stat = stat
608- stats = stats.sort("avgtime", "asc")
609- prev_stat = None
610- for stat in stats:
611- if prev_stat:
612- self.assertTrue(prev_stat.tavg <= stat.tavg)
613- prev_stat = stat
614- stats = stats.sort("name", "asc")
615- prev_stat = None
616- for stat in stats:
617- if prev_stat:
618- self.assertTrue(prev_stat.name <= stat.name)
619- prev_stat = stat
620- stats = stats.sort("subtime", "asc")
621- prev_stat = None
622- for stat in stats:
623- if prev_stat:
624- self.assertTrue(prev_stat.tsub <= stat.tsub)
625- prev_stat = stat
626-
627- self.assertRaises(
628- yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
629- )
630- self.assertRaises(
631- yappi.YappiError, stats.sort, "totaltime",
632- "invalid_func_sortorder_arg"
633- )
634-
635- def test_start_flags(self):
636- self.assertEqual(_yappi._get_start_flags(), None)
637- yappi.start()
638-
639- def a():
640- pass
641-
642- a()
643- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
644- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
645- self.assertEqual(len(yappi.get_thread_stats()), 1)
646-
647- def test_builtin_profiling(self):
648-
649- def a():
650- time.sleep(0.4) # is a builtin function
651-
652- yappi.set_clock_type('wall')
653-
654- yappi.start(builtins=True)
655- a()
656- stats = yappi.get_func_stats()
657- fsa = utils.find_stat_by_name(stats, 'sleep')
658- self.assertTrue(fsa is not None)
659- self.assertTrue(fsa.ttot > 0.3)
660- yappi.stop()
661- yappi.clear_stats()
662-
663- def a():
664- pass
665-
666- yappi.start()
667- t = threading.Thread(target=a)
668- t.start()
669- t.join()
670- stats = yappi.get_func_stats()
671-
672- def test_singlethread_profiling(self):
673- yappi.set_clock_type('wall')
674-
675- def a():
676- time.sleep(0.2)
677-
678- class Worker1(threading.Thread):
679-
680- def a(self):
681- time.sleep(0.3)
682-
683- def run(self):
684- self.a()
685-
686- yappi.start(profile_threads=False)
687-
688- c = Worker1()
689- c.start()
690- c.join()
691- a()
692- stats = yappi.get_func_stats()
693- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
694- fsa2 = utils.find_stat_by_name(stats, 'a')
695- self.assertTrue(fsa1 is None)
696- self.assertTrue(fsa2 is not None)
697- self.assertTrue(fsa2.ttot > 0.1)
698-
699- def test_run(self):
700-
701- def profiled():
702- pass
703-
704- yappi.clear_stats()
705- try:
706- with yappi.run():
707- profiled()
708- stats = yappi.get_func_stats()
709- finally:
710- yappi.clear_stats()
711-
712- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
713-
714- def test_run_recursive(self):
715-
716- def profiled():
717- pass
718-
719- def not_profiled():
720- pass
721-
722- yappi.clear_stats()
723- try:
724- with yappi.run():
725- with yappi.run():
726- profiled()
727- # Profiling stopped here
728- not_profiled()
729- stats = yappi.get_func_stats()
730- finally:
731- yappi.clear_stats()
732-
733- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
734- self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
735-
736-
737-class StatSaveScenarios(utils.YappiUnitTestCase):
738-
739- def test_pstats_conversion(self):
740-
741- def pstat_id(fs):
742- return (fs.module, fs.lineno, fs.name)
743-
744- def a():
745- d()
746-
747- def b():
748- d()
749-
750- def c():
751- pass
752-
753- def d():
754- pass
755-
756- _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
757- _yappi._set_test_timings(_timings)
758- stats = utils.run_and_get_func_stats(a, )
759- stats.strip_dirs()
760- stats.save("tests/a1.pstats", type="pstat")
761- fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
762- fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
763- yappi.clear_stats()
764- _yappi._set_test_timings(_timings)
765- stats = utils.run_and_get_func_stats(a, )
766- stats.strip_dirs()
767- stats.save("tests/a2.pstats", type="pstat")
768- yappi.clear_stats()
769- _yappi._set_test_timings(_timings)
770- stats = utils.run_and_get_func_stats(b, )
771- stats.strip_dirs()
772- stats.save("tests/b1.pstats", type="pstat")
773- fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
774- yappi.clear_stats()
775- _yappi._set_test_timings(_timings)
776- stats = utils.run_and_get_func_stats(c, )
777- stats.strip_dirs()
778- stats.save("tests/c1.pstats", type="pstat")
779- fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
780-
781- # merge saved stats and check pstats values are correct
782- import pstats
783- p = pstats.Stats(
784- 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
785- 'tests/c1.pstats'
786- )
787- p.strip_dirs()
788- # ct = ttot, tt = tsub
789- (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
790- self.assertEqual(cc, nc, 2)
791- self.assertEqual(tt, 20)
792- self.assertEqual(ct, 24)
793- (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
794- self.assertEqual(cc, nc, 3)
795- self.assertEqual(tt, 6)
796- self.assertEqual(ct, 6)
797- self.assertEqual(len(callers), 2)
798- (cc, nc, tt, ct) = callers[fsa_pid]
799- self.assertEqual(cc, nc, 2)
800- self.assertEqual(tt, 4)
801- self.assertEqual(ct, 4)
802- (cc, nc, tt, ct) = callers[fsb_pid]
803- self.assertEqual(cc, nc, 1)
804- self.assertEqual(tt, 2)
805- self.assertEqual(ct, 2)
806-
807- def test_merge_stats(self):
808- _timings = {
809- "a_1": 15,
810- "b_1": 14,
811- "c_1": 12,
812- "d_1": 10,
813- "e_1": 9,
814- "f_1": 7,
815- "g_1": 6,
816- "h_1": 5,
817- "i_1": 1
818- }
819- _yappi._set_test_timings(_timings)
820-
821- def a():
822- b()
823-
824- def b():
825- c()
826-
827- def c():
828- d()
829-
830- def d():
831- e()
832-
833- def e():
834- f()
835-
836- def f():
837- g()
838-
839- def g():
840- h()
841-
842- def h():
843- i()
844-
845- def i():
846- pass
847-
848- yappi.start()
849- a()
850- a()
851- yappi.stop()
852- stats = yappi.get_func_stats()
853- self.assertRaises(
854- NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
855- )
856- stats.save("tests/ystats2.ys")
857- yappi.clear_stats()
858- _yappi._set_test_timings(_timings)
859- yappi.start()
860- a()
861- stats = yappi.get_func_stats().add("tests/ystats2.ys")
862- fsa = utils.find_stat_by_name(stats, "a")
863- fsb = utils.find_stat_by_name(stats, "b")
864- fsc = utils.find_stat_by_name(stats, "c")
865- fsd = utils.find_stat_by_name(stats, "d")
866- fse = utils.find_stat_by_name(stats, "e")
867- fsf = utils.find_stat_by_name(stats, "f")
868- fsg = utils.find_stat_by_name(stats, "g")
869- fsh = utils.find_stat_by_name(stats, "h")
870- fsi = utils.find_stat_by_name(stats, "i")
871- self.assertEqual(fsa.ttot, 45)
872- self.assertEqual(fsa.ncall, 3)
873- self.assertEqual(fsa.nactualcall, 3)
874- self.assertEqual(fsa.tsub, 3)
875- self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
876- self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
877- self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
878- self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
879- self.assertEqual(fsc.tsub, 6)
880- self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
881- self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
882- self.assertEqual(fsd.children[fse].ttot, fse.ttot)
883- self.assertEqual(fsd.children[fse].tsub, fse.tsub)
884- self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
885- self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
886- self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
887- self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
888- self.assertEqual(fsg.ttot, 18)
889- self.assertEqual(fsg.tsub, 3)
890- self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
891- self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
892- self.assertEqual(fsh.ttot, 15)
893- self.assertEqual(fsh.tsub, 12)
894- self.assertEqual(fsh.tavg, 5)
895- self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
896- self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
897- #stats.debug_print()
898-
899- def test_merge_multithreaded_stats(self):
900- import _yappi
901- timings = {"a_1": 2, "b_1": 1}
902- _yappi._set_test_timings(timings)
903-
904- def a():
905- pass
906-
907- def b():
908- pass
909-
910- yappi.start()
911- t = threading.Thread(target=a)
912- t.start()
913- t.join()
914- t = threading.Thread(target=b)
915- t.start()
916- t.join()
917- yappi.get_func_stats().save("tests/ystats1.ys")
918- yappi.clear_stats()
919- _yappi._set_test_timings(timings)
920- self.assertEqual(len(yappi.get_func_stats()), 0)
921- self.assertEqual(len(yappi.get_thread_stats()), 1)
922- t = threading.Thread(target=a)
923- t.start()
924- t.join()
925-
926- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
927- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
928- yappi.get_func_stats().save("tests/ystats2.ys")
929-
930- stats = yappi.YFuncStats([
931- "tests/ystats1.ys",
932- "tests/ystats2.ys",
933- ])
934- fsa = utils.find_stat_by_name(stats, "a")
935- fsb = utils.find_stat_by_name(stats, "b")
936- self.assertEqual(fsa.ncall, 2)
937- self.assertEqual(fsb.ncall, 1)
938- self.assertEqual(fsa.tsub, fsa.ttot, 4)
939- self.assertEqual(fsb.tsub, fsb.ttot, 1)
940-
941- def test_merge_load_different_clock_types(self):
942- yappi.start(builtins=True)
943-
944- def a():
945- b()
946-
947- def b():
948- c()
949-
950- def c():
951- pass
952-
953- t = threading.Thread(target=a)
954- t.start()
955- t.join()
956- yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
957- yappi.stop()
958- yappi.clear_stats()
959- yappi.start(builtins=False)
960- t = threading.Thread(target=a)
961- t.start()
962- t.join()
963- yappi.get_func_stats().save("tests/ystats2.ys")
964- yappi.stop()
965- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
966- yappi.clear_stats()
967- yappi.set_clock_type("wall")
968- yappi.start()
969- t = threading.Thread(target=a)
970- t.start()
971- t.join()
972- yappi.get_func_stats().save("tests/ystats3.ys")
973- self.assertRaises(
974- yappi.YappiError,
975- yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
976- )
977- stats = yappi.YFuncStats(["tests/ystats1.ys",
978- "tests/ystats2.ys"]).sort("name")
979- fsa = utils.find_stat_by_name(stats, "a")
980- fsb = utils.find_stat_by_name(stats, "b")
981- fsc = utils.find_stat_by_name(stats, "c")
982- self.assertEqual(fsa.ncall, 2)
983- self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
984-
985- def test_merge_aabab_aabbc(self):
986- _timings = {
987- "a_1": 15,
988- "a_2": 14,
989- "b_1": 12,
990- "a_3": 10,
991- "b_2": 9,
992- "c_1": 4
993- }
994- _yappi._set_test_timings(_timings)
995-
996- def a():
997- if self._ncall == 1:
998- self._ncall += 1
999- a()
1000- elif self._ncall == 5:
1001- self._ncall += 1
1002- a()
1003- else:
1004- b()
1005-
1006- def b():
1007- if self._ncall == 2:
1008- self._ncall += 1
1009- a()
1010- elif self._ncall == 6:
1011- self._ncall += 1
1012- b()
1013- elif self._ncall == 7:
1014- c()
1015- else:
1016- return
1017-
1018- def c():
1019- pass
1020-
1021- self._ncall = 1
1022- stats = utils.run_and_get_func_stats(a, )
1023- stats.save("tests/ystats1.ys")
1024- yappi.clear_stats()
1025- _yappi._set_test_timings(_timings)
1026- #stats.print_all()
1027-
1028- self._ncall = 5
1029- stats = utils.run_and_get_func_stats(a, )
1030- stats.save("tests/ystats2.ys")
1031-
1032- #stats.print_all()
1033-
1034- def a(): # same name but another function(code object)
1035- pass
1036-
1037- yappi.start()
1038- a()
1039- stats = yappi.get_func_stats().add(
1040- ["tests/ystats1.ys", "tests/ystats2.ys"]
1041- )
1042- #stats.print_all()
1043- self.assertEqual(len(stats), 4)
1044-
1045- fsa = None
1046- for stat in stats:
1047- if stat.name == "a" and stat.ttot == 45:
1048- fsa = stat
1049- break
1050- self.assertTrue(fsa is not None)
1051-
1052- self.assertEqual(fsa.ncall, 7)
1053- self.assertEqual(fsa.nactualcall, 3)
1054- self.assertEqual(fsa.ttot, 45)
1055- self.assertEqual(fsa.tsub, 10)
1056- fsb = utils.find_stat_by_name(stats, "b")
1057- fsc = utils.find_stat_by_name(stats, "c")
1058- self.assertEqual(fsb.ncall, 6)
1059- self.assertEqual(fsb.nactualcall, 3)
1060- self.assertEqual(fsb.ttot, 36)
1061- self.assertEqual(fsb.tsub, 27)
1062- self.assertEqual(fsb.tavg, 6)
1063- self.assertEqual(fsc.ttot, 8)
1064- self.assertEqual(fsc.tsub, 8)
1065- self.assertEqual(fsc.tavg, 4)
1066- self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
1067-
1068-
1069-class MultithreadedScenarios(utils.YappiUnitTestCase):
1070-
1071- def test_issue_32(self):
1072- '''
1073- Start yappi from different thread and we get Internal Error(15) as
1074- the current_ctx_id() called while enumerating the threads in start()
1075- and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
1076- returns wrong object and thus sets an invalid id for the _ctx structure.
1077-
1078- When this issue happens multiple Threads have same tid as the internal ts_ptr
1079- will be same for different contexts. So, let's see if that happens
1080- '''
1081-
1082- def foo():
1083- time.sleep(0.2)
1084-
1085- def bar():
1086- time.sleep(0.1)
1087-
1088- def thread_func():
1089- yappi.set_clock_type("wall")
1090- yappi.start()
1091-
1092- bar()
1093-
1094- t = threading.Thread(target=thread_func)
1095- t.start()
1096- t.join()
1097-
1098- foo()
1099-
1100- yappi.stop()
1101-
1102- thread_ids = set()
1103- for tstat in yappi.get_thread_stats():
1104- self.assertTrue(tstat.tid not in thread_ids)
1105- thread_ids.add(tstat.tid)
1106-
1107- def test_subsequent_profile(self):
1108- WORKER_COUNT = 5
1109-
1110- def a():
1111- pass
1112-
1113- def b():
1114- pass
1115-
1116- def c():
1117- pass
1118-
1119- _timings = {
1120- "a_1": 3,
1121- "b_1": 2,
1122- "c_1": 1,
1123- }
1124-
1125- yappi.start()
1126-
1127- def g():
1128- pass
1129-
1130- g()
1131- yappi.stop()
1132- yappi.clear_stats()
1133- _yappi._set_test_timings(_timings)
1134- yappi.start()
1135-
1136- _dummy = []
1137- for i in range(WORKER_COUNT):
1138- t = threading.Thread(target=a)
1139- t.start()
1140- t.join()
1141- for i in range(WORKER_COUNT):
1142- t = threading.Thread(target=b)
1143- t.start()
1144- _dummy.append(t)
1145- t.join()
1146- for i in range(WORKER_COUNT):
1147- t = threading.Thread(target=a)
1148- t.start()
1149- t.join()
1150- for i in range(WORKER_COUNT):
1151- t = threading.Thread(target=c)
1152- t.start()
1153- t.join()
1154- yappi.stop()
1155- yappi.start()
1156-
1157- def f():
1158- pass
1159-
1160- f()
1161- stats = yappi.get_func_stats()
1162- fsa = utils.find_stat_by_name(stats, 'a')
1163- fsb = utils.find_stat_by_name(stats, 'b')
1164- fsc = utils.find_stat_by_name(stats, 'c')
1165- self.assertEqual(fsa.ncall, 10)
1166- self.assertEqual(fsb.ncall, 5)
1167- self.assertEqual(fsc.ncall, 5)
1168- self.assertEqual(fsa.ttot, fsa.tsub, 30)
1169- self.assertEqual(fsb.ttot, fsb.tsub, 10)
1170- self.assertEqual(fsc.ttot, fsc.tsub, 5)
1171-
1172- # MACOSx optimizes by only creating one worker thread
1173- self.assertTrue(len(yappi.get_thread_stats()) >= 2)
1174-
1175- def test_basic(self):
1176- yappi.set_clock_type('wall')
1177-
1178- def dummy():
1179- pass
1180-
1181- def a():
1182- time.sleep(0.2)
1183-
1184- class Worker1(threading.Thread):
1185-
1186- def a(self):
1187- time.sleep(0.3)
1188-
1189- def run(self):
1190- self.a()
1191-
1192- yappi.start(builtins=False, profile_threads=True)
1193-
1194- c = Worker1()
1195- c.start()
1196- c.join()
1197- a()
1198- stats = yappi.get_func_stats()
1199- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
1200- fsa2 = utils.find_stat_by_name(stats, 'a')
1201- self.assertTrue(fsa1 is not None)
1202- self.assertTrue(fsa2 is not None)
1203- self.assertTrue(fsa1.ttot > 0.2)
1204- self.assertTrue(fsa2.ttot > 0.1)
1205- tstats = yappi.get_thread_stats()
1206- self.assertEqual(len(tstats), 2)
1207- tsa = utils.find_stat_by_name(tstats, 'Worker1')
1208- tsm = utils.find_stat_by_name(tstats, '_MainThread')
1209- dummy() # call dummy to force ctx name to be retrieved again.
1210- self.assertTrue(tsa is not None)
1211- # TODO: I put dummy() to fix below, remove the comments after a while.
1212- self.assertTrue( # FIX: I see this fails sometimes?
1213- tsm is not None,
1214- f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(tstats))}")
1215-
1216- def test_ctx_stats(self):
1217- from threading import Thread
1218- DUMMY_WORKER_COUNT = 5
1219- yappi.start()
1220-
1221- class DummyThread(Thread):
1222- pass
1223-
1224- def dummy():
1225- pass
1226-
1227- def dummy_worker():
1228- pass
1229-
1230- for i in range(DUMMY_WORKER_COUNT):
1231- t = DummyThread(target=dummy_worker)
1232- t.start()
1233- t.join()
1234- yappi.stop()
1235- stats = yappi.get_thread_stats()
1236- tsa = utils.find_stat_by_name(stats, "DummyThread")
1237- self.assertTrue(tsa is not None)
1238- yappi.clear_stats()
1239- time.sleep(1.0)
1240- _timings = {
1241- "a_1": 6,
1242- "b_1": 5,
1243- "c_1": 3,
1244- "d_1": 1,
1245- "a_2": 4,
1246- "b_2": 3,
1247- "c_2": 2,
1248- "d_2": 1
1249- }
1250- _yappi._set_test_timings(_timings)
1251-
1252- class Thread1(Thread):
1253- pass
1254-
1255- class Thread2(Thread):
1256- pass
1257-
1258- def a():
1259- b()
1260-
1261- def b():
1262- c()
1263-
1264- def c():
1265- d()
1266-
1267- def d():
1268- time.sleep(0.6)
1269-
1270- yappi.set_clock_type("wall")
1271- yappi.start()
1272- t1 = Thread1(target=a)
1273- t1.start()
1274- t2 = Thread2(target=a)
1275- t2.start()
1276- t1.join()
1277- t2.join()
1278- stats = yappi.get_thread_stats()
1279-
1280- # the fist clear_stats clears the context table?
1281- tsa = utils.find_stat_by_name(stats, "DummyThread")
1282- self.assertTrue(tsa is None)
1283-
1284- tst1 = utils.find_stat_by_name(stats, "Thread1")
1285- tst2 = utils.find_stat_by_name(stats, "Thread2")
1286- tsmain = utils.find_stat_by_name(stats, "_MainThread")
1287- dummy() # call dummy to force ctx name to be retrieved again.
1288- self.assertTrue(len(stats) == 3)
1289- self.assertTrue(tst1 is not None)
1290- self.assertTrue(tst2 is not None)
1291- # TODO: I put dummy() to fix below, remove the comments after a while.
1292- self.assertTrue( # FIX: I see this fails sometimes
1293- tsmain is not None,
1294- f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(stats))}")
1295- self.assertTrue(1.0 > tst2.ttot >= 0.5)
1296- self.assertTrue(1.0 > tst1.ttot >= 0.5)
1297-
1298- # test sorting of the ctx stats
1299- stats = stats.sort("totaltime", "desc")
1300- prev_stat = None
1301- for stat in stats:
1302- if prev_stat:
1303- self.assertTrue(prev_stat.ttot >= stat.ttot)
1304- prev_stat = stat
1305- stats = stats.sort("totaltime", "asc")
1306- prev_stat = None
1307- for stat in stats:
1308- if prev_stat:
1309- self.assertTrue(prev_stat.ttot <= stat.ttot)
1310- prev_stat = stat
1311- stats = stats.sort("schedcount", "desc")
1312- prev_stat = None
1313- for stat in stats:
1314- if prev_stat:
1315- self.assertTrue(prev_stat.sched_count >= stat.sched_count)
1316- prev_stat = stat
1317- stats = stats.sort("name", "desc")
1318- prev_stat = None
1319- for stat in stats:
1320- if prev_stat:
1321- self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
1322- prev_stat = stat
1323- self.assertRaises(
1324- yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
1325- )
1326- self.assertRaises(
1327- yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
1328- )
1329-
1330- def test_ctx_stats_cpu(self):
1331-
1332- def get_thread_name():
1333- try:
1334- return threading.current_thread().name
1335- except AttributeError:
1336- return "Anonymous"
1337-
1338- def burn_cpu(sec):
1339- t0 = yappi.get_clock_time()
1340- elapsed = 0
1341- while (elapsed < sec):
1342- for _ in range(1000):
1343- pass
1344- elapsed = yappi.get_clock_time() - t0
1345-
1346- def test():
1347-
1348- ts = []
1349- for i in (0.01, 0.05, 0.1):
1350- t = threading.Thread(target=burn_cpu, args=(i, ))
1351- t.name = f"burn_cpu-{str(i)}"
1352- t.start()
1353- ts.append(t)
1354- for t in ts:
1355- t.join()
1356-
1357- yappi.set_clock_type("cpu")
1358- yappi.set_context_name_callback(get_thread_name)
1359-
1360- yappi.start()
1361-
1362- test()
1363-
1364- yappi.stop()
1365-
1366- tstats = yappi.get_thread_stats()
1367- r1 = '''
1368- burn_cpu-0.1 3 123145356058624 0.100105 8
1369- burn_cpu-0.05 2 123145361313792 0.050149 8
1370- burn_cpu-0.01 1 123145356058624 0.010127 2
1371- MainThread 0 4321620864 0.001632 6
1372- '''
1373- self.assert_ctx_stats_almost_equal(r1, tstats)
1374-
1375- def test_producer_consumer_with_queues(self):
1376- # we currently just stress yappi, no functionality test is done here.
1377- yappi.start()
1378- from queue import Queue
1379- from threading import Thread
1380- WORKER_THREAD_COUNT = 50
1381- WORK_ITEM_COUNT = 2000
1382-
1383- def worker():
1384- while True:
1385- item = q.get()
1386- # do the work with item
1387- q.task_done()
1388-
1389- q = Queue()
1390- for i in range(WORKER_THREAD_COUNT):
1391- t = Thread(target=worker)
1392- t.daemon = True
1393- t.start()
1394-
1395- for item in range(WORK_ITEM_COUNT):
1396- q.put(item)
1397- q.join() # block until all tasks are done
1398- #yappi.get_func_stats().sort("callcount").print_all()
1399- yappi.stop()
1400-
1401- def test_temporary_lock_waiting(self):
1402- yappi.start()
1403- _lock = threading.Lock()
1404-
1405- def worker():
1406- _lock.acquire()
1407- try:
1408- time.sleep(1.0)
1409- finally:
1410- _lock.release()
1411-
1412- t1 = threading.Thread(target=worker)
1413- t2 = threading.Thread(target=worker)
1414- t1.start()
1415- t2.start()
1416- t1.join()
1417- t2.join()
1418- #yappi.get_func_stats().sort("callcount").print_all()
1419- yappi.stop()
1420-
1421- @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
1422- def test_signals_with_blocking_calls(self):
1423- import signal, os, time
1424-
1425- # just to verify if signal is handled correctly and stats/yappi are not corrupted.
1426- def handler(signum, frame):
1427- raise Exception("Signal handler executed!")
1428-
1429- yappi.start()
1430- signal.signal(signal.SIGALRM, handler)
1431- signal.alarm(1)
1432- self.assertRaises(Exception, time.sleep, 2)
1433- stats = yappi.get_func_stats()
1434- fsh = utils.find_stat_by_name(stats, "handler")
1435- self.assertTrue(fsh is not None)
1436-
1437- def test_concurrent_futures(self):
1438- yappi.start()
1439- from concurrent.futures import ThreadPoolExecutor
1440- with ThreadPoolExecutor(max_workers=5) as executor:
1441- f = executor.submit(pow, 5, 2)
1442- self.assertEqual(f.result(), 25)
1443- time.sleep(1.0)
1444- yappi.stop()
1445-
1446- def test_barrier(self):
1447- yappi.start()
1448- b = threading.Barrier(2, timeout=1)
1449-
1450- def worker():
1451- try:
1452- b.wait()
1453- except threading.BrokenBarrierError:
1454- pass
1455- except Exception:
1456- raise Exception("BrokenBarrierError not raised")
1457-
1458- t1 = threading.Thread(target=worker)
1459- t1.start()
1460- #b.wait()
1461- t1.join()
1462- yappi.stop()
1463-
1464-
1465-class NonRecursiveFunctions(utils.YappiUnitTestCase):
1466-
1467- def test_abcd(self):
1468- _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
1469- _yappi._set_test_timings(_timings)
1470-
1471- def a():
1472- b()
1473-
1474- def b():
1475- c()
1476-
1477- def c():
1478- d()
1479-
1480- def d():
1481- pass
1482-
1483- stats = utils.run_and_get_func_stats(a)
1484- fsa = utils.find_stat_by_name(stats, 'a')
1485- fsb = utils.find_stat_by_name(stats, 'b')
1486- fsc = utils.find_stat_by_name(stats, 'c')
1487- fsd = utils.find_stat_by_name(stats, 'd')
1488- cfsab = fsa.children[fsb]
1489- cfsbc = fsb.children[fsc]
1490- cfscd = fsc.children[fsd]
1491-
1492- self.assertEqual(fsa.ttot, 6)
1493- self.assertEqual(fsa.tsub, 1)
1494- self.assertEqual(fsb.ttot, 5)
1495- self.assertEqual(fsb.tsub, 2)
1496- self.assertEqual(fsc.ttot, 3)
1497- self.assertEqual(fsc.tsub, 2)
1498- self.assertEqual(fsd.ttot, 1)
1499- self.assertEqual(fsd.tsub, 1)
1500- self.assertEqual(cfsab.ttot, 5)
1501- self.assertEqual(cfsab.tsub, 2)
1502- self.assertEqual(cfsbc.ttot, 3)
1503- self.assertEqual(cfsbc.tsub, 2)
1504- self.assertEqual(cfscd.ttot, 1)
1505- self.assertEqual(cfscd.tsub, 1)
1506-
1507- def test_stop_in_middle(self):
1508- _timings = {"a_1": 6, "b_1": 4}
1509- _yappi._set_test_timings(_timings)
1510-
1511- def a():
1512- b()
1513- yappi.stop()
1514-
1515- def b():
1516- time.sleep(0.2)
1517-
1518- yappi.start()
1519- a()
1520- stats = yappi.get_func_stats()
1521- fsa = utils.find_stat_by_name(stats, 'a')
1522- fsb = utils.find_stat_by_name(stats, 'b')
1523-
1524- self.assertEqual(fsa.ncall, 1)
1525- self.assertEqual(fsa.nactualcall, 0)
1526- self.assertEqual(fsa.ttot, 0) # no call_leave called
1527- self.assertEqual(fsa.tsub, 0) # no call_leave called
1528- self.assertEqual(fsb.ttot, 4)
1529-
1530-
1531-class RecursiveFunctions(utils.YappiUnitTestCase):
1532-
1533- def test_fibonacci(self):
1534-
1535- def fib(n):
1536- if n > 1:
1537- return fib(n - 1) + fib(n - 2)
1538- else:
1539- return n
1540-
1541- stats = utils.run_and_get_func_stats(fib, 22)
1542- fs = utils.find_stat_by_name(stats, 'fib')
1543- self.assertEqual(fs.ncall, 57313)
1544- self.assertEqual(fs.ttot, fs.tsub)
1545-
1546- def test_abcadc(self):
1547- _timings = {
1548- "a_1": 20,
1549- "b_1": 19,
1550- "c_1": 17,
1551- "a_2": 13,
1552- "d_1": 12,
1553- "c_2": 10,
1554- "a_3": 5
1555- }
1556- _yappi._set_test_timings(_timings)
1557-
1558- def a(n):
1559- if n == 3:
1560- return
1561- if n == 1 + 1:
1562- d(n)
1563- else:
1564- b(n)
1565-
1566- def b(n):
1567- c(n)
1568-
1569- def c(n):
1570- a(n + 1)
1571-
1572- def d(n):
1573- c(n)
1574-
1575- stats = utils.run_and_get_func_stats(a, 1)
1576- fsa = utils.find_stat_by_name(stats, 'a')
1577- fsb = utils.find_stat_by_name(stats, 'b')
1578- fsc = utils.find_stat_by_name(stats, 'c')
1579- fsd = utils.find_stat_by_name(stats, 'd')
1580- self.assertEqual(fsa.ncall, 3)
1581- self.assertEqual(fsa.nactualcall, 1)
1582- self.assertEqual(fsa.ttot, 20)
1583- self.assertEqual(fsa.tsub, 7)
1584- self.assertEqual(fsb.ttot, 19)
1585- self.assertEqual(fsb.tsub, 2)
1586- self.assertEqual(fsc.ttot, 17)
1587- self.assertEqual(fsc.tsub, 9)
1588- self.assertEqual(fsd.ttot, 12)
1589- self.assertEqual(fsd.tsub, 2)
1590- cfsca = fsc.children[fsa]
1591- self.assertEqual(cfsca.nactualcall, 0)
1592- self.assertEqual(cfsca.ncall, 2)
1593- self.assertEqual(cfsca.ttot, 13)
1594- self.assertEqual(cfsca.tsub, 6)
1595-
1596- def test_aaaa(self):
1597- _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
1598- _yappi._set_test_timings(_timings)
1599-
1600- def d(n):
1601- if n == 3:
1602- return
1603- d(n + 1)
1604-
1605- stats = utils.run_and_get_func_stats(d, 0)
1606- fsd = utils.find_stat_by_name(stats, 'd')
1607- self.assertEqual(fsd.ncall, 4)
1608- self.assertEqual(fsd.nactualcall, 1)
1609- self.assertEqual(fsd.ttot, 9)
1610- self.assertEqual(fsd.tsub, 9)
1611- cfsdd = fsd.children[fsd]
1612- self.assertEqual(cfsdd.ttot, 7)
1613- self.assertEqual(cfsdd.tsub, 7)
1614- self.assertEqual(cfsdd.ncall, 3)
1615- self.assertEqual(cfsdd.nactualcall, 0)
1616-
1617- def test_abcabc(self):
1618- _timings = {
1619- "a_1": 20,
1620- "b_1": 19,
1621- "c_1": 17,
1622- "a_2": 13,
1623- "b_2": 11,
1624- "c_2": 9,
1625- "a_3": 6
1626- }
1627- _yappi._set_test_timings(_timings)
1628-
1629- def a(n):
1630- if n == 3:
1631- return
1632- else:
1633- b(n)
1634-
1635- def b(n):
1636- c(n)
1637-
1638- def c(n):
1639- a(n + 1)
1640-
1641- stats = utils.run_and_get_func_stats(a, 1)
1642- fsa = utils.find_stat_by_name(stats, 'a')
1643- fsb = utils.find_stat_by_name(stats, 'b')
1644- fsc = utils.find_stat_by_name(stats, 'c')
1645- self.assertEqual(fsa.ncall, 3)
1646- self.assertEqual(fsa.nactualcall, 1)
1647- self.assertEqual(fsa.ttot, 20)
1648- self.assertEqual(fsa.tsub, 9)
1649- self.assertEqual(fsb.ttot, 19)
1650- self.assertEqual(fsb.tsub, 4)
1651- self.assertEqual(fsc.ttot, 17)
1652- self.assertEqual(fsc.tsub, 7)
1653- cfsab = fsa.children[fsb]
1654- cfsbc = fsb.children[fsc]
1655- cfsca = fsc.children[fsa]
1656- self.assertEqual(cfsab.ttot, 19)
1657- self.assertEqual(cfsab.tsub, 4)
1658- self.assertEqual(cfsbc.ttot, 17)
1659- self.assertEqual(cfsbc.tsub, 7)
1660- self.assertEqual(cfsca.ttot, 13)
1661- self.assertEqual(cfsca.tsub, 8)
1662-
1663- def test_abcbca(self):
1664- _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
1665- _yappi._set_test_timings(_timings)
1666- self._ncall = 1
1667-
1668- def a():
1669- if self._ncall == 1:
1670- b()
1671- else:
1672- return
1673-
1674- def b():
1675- c()
1676-
1677- def c():
1678- if self._ncall == 1:
1679- self._ncall += 1
1680- b()
1681- else:
1682- a()
1683-
1684- stats = utils.run_and_get_func_stats(a)
1685- fsa = utils.find_stat_by_name(stats, 'a')
1686- fsb = utils.find_stat_by_name(stats, 'b')
1687- fsc = utils.find_stat_by_name(stats, 'c')
1688- cfsab = fsa.children[fsb]
1689- cfsbc = fsb.children[fsc]
1690- cfsca = fsc.children[fsa]
1691- self.assertEqual(fsa.ttot, 10)
1692- self.assertEqual(fsa.tsub, 2)
1693- self.assertEqual(fsb.ttot, 9)
1694- self.assertEqual(fsb.tsub, 4)
1695- self.assertEqual(fsc.ttot, 7)
1696- self.assertEqual(fsc.tsub, 4)
1697- self.assertEqual(cfsab.ttot, 9)
1698- self.assertEqual(cfsab.tsub, 2)
1699- self.assertEqual(cfsbc.ttot, 7)
1700- self.assertEqual(cfsbc.tsub, 4)
1701- self.assertEqual(cfsca.ttot, 1)
1702- self.assertEqual(cfsca.tsub, 1)
1703- self.assertEqual(cfsca.ncall, 1)
1704- self.assertEqual(cfsca.nactualcall, 0)
1705-
1706- def test_aabccb(self):
1707- _timings = {
1708- "a_1": 13,
1709- "a_2": 11,
1710- "b_1": 9,
1711- "c_1": 5,
1712- "c_2": 3,
1713- "b_2": 1
1714- }
1715- _yappi._set_test_timings(_timings)
1716- self._ncall = 1
1717-
1718- def a():
1719- if self._ncall == 1:
1720- self._ncall += 1
1721- a()
1722- else:
1723- b()
1724-
1725- def b():
1726- if self._ncall == 3:
1727- return
1728- else:
1729- c()
1730-
1731- def c():
1732- if self._ncall == 2:
1733- self._ncall += 1
1734- c()
1735- else:
1736- b()
1737-
1738- stats = utils.run_and_get_func_stats(a)
1739- fsa = utils.find_stat_by_name(stats, 'a')
1740- fsb = utils.find_stat_by_name(stats, 'b')
1741- fsc = utils.find_stat_by_name(stats, 'c')
1742- cfsaa = fsa.children[fsa.index]
1743- cfsab = fsa.children[fsb]
1744- cfsbc = fsb.children[fsc.full_name]
1745- cfscc = fsc.children[fsc]
1746- cfscb = fsc.children[fsb]
1747- self.assertEqual(fsb.ttot, 9)
1748- self.assertEqual(fsb.tsub, 5)
1749- self.assertEqual(cfsbc.ttot, 5)
1750- self.assertEqual(cfsbc.tsub, 2)
1751- self.assertEqual(fsa.ttot, 13)
1752- self.assertEqual(fsa.tsub, 4)
1753- self.assertEqual(cfsab.ttot, 9)
1754- self.assertEqual(cfsab.tsub, 4)
1755- self.assertEqual(cfsaa.ttot, 11)
1756- self.assertEqual(cfsaa.tsub, 2)
1757- self.assertEqual(fsc.ttot, 5)
1758- self.assertEqual(fsc.tsub, 4)
1759-
1760- def test_abaa(self):
1761- _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
1762- _yappi._set_test_timings(_timings)
1763-
1764- self._ncall = 1
1765-
1766- def a():
1767- if self._ncall == 1:
1768- b()
1769- elif self._ncall == 2:
1770- self._ncall += 1
1771- a()
1772- else:
1773- return
1774-
1775- def b():
1776- self._ncall += 1
1777- a()
1778-
1779- stats = utils.run_and_get_func_stats(a)
1780- fsa = utils.find_stat_by_name(stats, 'a')
1781- fsb = utils.find_stat_by_name(stats, 'b')
1782- cfsaa = fsa.children[fsa]
1783- cfsba = fsb.children[fsa]
1784- self.assertEqual(fsb.ttot, 10)
1785- self.assertEqual(fsb.tsub, 1)
1786- self.assertEqual(fsa.ttot, 13)
1787- self.assertEqual(fsa.tsub, 12)
1788- self.assertEqual(cfsaa.ttot, 5)
1789- self.assertEqual(cfsaa.tsub, 5)
1790- self.assertEqual(cfsba.ttot, 9)
1791- self.assertEqual(cfsba.tsub, 4)
1792-
1793- def test_aabb(self):
1794- _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
1795- _yappi._set_test_timings(_timings)
1796-
1797- self._ncall = 1
1798-
1799- def a():
1800- if self._ncall == 1:
1801- self._ncall += 1
1802- a()
1803- elif self._ncall == 2:
1804- b()
1805- else:
1806- return
1807-
1808- def b():
1809- if self._ncall == 2:
1810- self._ncall += 1
1811- b()
1812- else:
1813- return
1814-
1815- stats = utils.run_and_get_func_stats(a)
1816- fsa = utils.find_stat_by_name(stats, 'a')
1817- fsb = utils.find_stat_by_name(stats, 'b')
1818- cfsaa = fsa.children[fsa]
1819- cfsab = fsa.children[fsb]
1820- cfsbb = fsb.children[fsb]
1821- self.assertEqual(fsa.ttot, 13)
1822- self.assertEqual(fsa.tsub, 4)
1823- self.assertEqual(fsb.ttot, 9)
1824- self.assertEqual(fsb.tsub, 9)
1825- self.assertEqual(cfsaa.ttot, 10)
1826- self.assertEqual(cfsaa.tsub, 1)
1827- self.assertEqual(cfsab.ttot, 9)
1828- self.assertEqual(cfsab.tsub, 4)
1829- self.assertEqual(cfsbb.ttot, 5)
1830- self.assertEqual(cfsbb.tsub, 5)
1831-
1832- def test_abbb(self):
1833- _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
1834- _yappi._set_test_timings(_timings)
1835-
1836- self._ncall = 1
1837-
1838- def a():
1839- if self._ncall == 1:
1840- b()
1841-
1842- def b():
1843- if self._ncall == 3:
1844- return
1845- self._ncall += 1
1846- b()
1847-
1848- stats = utils.run_and_get_func_stats(a)
1849- fsa = utils.find_stat_by_name(stats, 'a')
1850- fsb = utils.find_stat_by_name(stats, 'b')
1851- cfsab = fsa.children[fsb]
1852- cfsbb = fsb.children[fsb]
1853- self.assertEqual(fsa.ttot, 13)
1854- self.assertEqual(fsa.tsub, 3)
1855- self.assertEqual(fsb.ttot, 10)
1856- self.assertEqual(fsb.tsub, 10)
1857- self.assertEqual(fsb.ncall, 3)
1858- self.assertEqual(fsb.nactualcall, 1)
1859- self.assertEqual(cfsab.ttot, 10)
1860- self.assertEqual(cfsab.tsub, 4)
1861- self.assertEqual(cfsbb.ttot, 6)
1862- self.assertEqual(cfsbb.tsub, 6)
1863- self.assertEqual(cfsbb.nactualcall, 0)
1864- self.assertEqual(cfsbb.ncall, 2)
1865-
1866- def test_aaab(self):
1867- _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
1868- _yappi._set_test_timings(_timings)
1869-
1870- self._ncall = 1
1871-
1872- def a():
1873- if self._ncall == 3:
1874- b()
1875- return
1876- self._ncall += 1
1877- a()
1878-
1879- def b():
1880- return
1881-
1882- stats = utils.run_and_get_func_stats(a)
1883- fsa = utils.find_stat_by_name(stats, 'a')
1884- fsb = utils.find_stat_by_name(stats, 'b')
1885- cfsaa = fsa.children[fsa]
1886- cfsab = fsa.children[fsb]
1887- self.assertEqual(fsa.ttot, 13)
1888- self.assertEqual(fsa.tsub, 12)
1889- self.assertEqual(fsb.ttot, 1)
1890- self.assertEqual(fsb.tsub, 1)
1891- self.assertEqual(cfsaa.ttot, 10)
1892- self.assertEqual(cfsaa.tsub, 9)
1893- self.assertEqual(cfsab.ttot, 1)
1894- self.assertEqual(cfsab.tsub, 1)
1895-
1896- def test_abab(self):
1897- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
1898- _yappi._set_test_timings(_timings)
1899-
1900- self._ncall = 1
1901-
1902- def a():
1903- b()
1904-
1905- def b():
1906- if self._ncall == 2:
1907- return
1908- self._ncall += 1
1909- a()
1910-
1911- stats = utils.run_and_get_func_stats(a)
1912- fsa = utils.find_stat_by_name(stats, 'a')
1913- fsb = utils.find_stat_by_name(stats, 'b')
1914- cfsab = fsa.children[fsb]
1915- cfsba = fsb.children[fsa]
1916- self.assertEqual(fsa.ttot, 13)
1917- self.assertEqual(fsa.tsub, 8)
1918- self.assertEqual(fsb.ttot, 10)
1919- self.assertEqual(fsb.tsub, 5)
1920- self.assertEqual(cfsab.ttot, 10)
1921- self.assertEqual(cfsab.tsub, 5)
1922- self.assertEqual(cfsab.ncall, 2)
1923- self.assertEqual(cfsab.nactualcall, 1)
1924- self.assertEqual(cfsba.ttot, 6)
1925- self.assertEqual(cfsba.tsub, 5)
1926-
1927-
1928-if __name__ == '__main__':
1929- # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
1930- # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
1931- unittest.main()
1932+import os
1933+import sys
1934+import time
1935+import threading
1936+import unittest
1937+import yappi
1938+import _yappi
1939+import utils
1940+import multiprocessing
1941+import subprocess
1942+
1943+_counter = 0
1944+
1945+
1946+class BasicUsage(utils.YappiUnitTestCase):
1947+
1948+ def test_callback_function_int_return_overflow(self):
1949+ # this test is just here to check if any errors are generated, as the err
1950+ # is printed in C side, I did not include it here. THere are ways to test
1951+ # this deterministically, I did not bother
1952+ import ctypes
1953+
1954+ def _unsigned_overflow_margin():
1955+ return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
1956+
1957+ def foo():
1958+ pass
1959+
1960+ #with utils.captured_output() as (out, err):
1961+ yappi.set_context_id_callback(_unsigned_overflow_margin)
1962+ yappi.set_tag_callback(_unsigned_overflow_margin)
1963+ yappi.start()
1964+ foo()
1965+
1966+ def test_issue60(self):
1967+
1968+ def foo():
1969+ buf = bytearray()
1970+ buf += b't' * 200
1971+ view = memoryview(buf)[10:]
1972+ view = view.tobytes()
1973+ del buf[:10] # this throws exception
1974+ return view
1975+
1976+ yappi.start(builtins=True)
1977+ foo()
1978+ self.assertTrue(
1979+ len(
1980+ yappi.get_func_stats(
1981+ filter_callback=lambda x: yappi.
1982+ func_matches(x, [memoryview.tobytes])
1983+ )
1984+ ) > 0
1985+ )
1986+ yappi.stop()
1987+
1988+ def test_issue54(self):
1989+
1990+ def _tag_cbk():
1991+ global _counter
1992+ _counter += 1
1993+ return _counter
1994+
1995+ def a():
1996+ pass
1997+
1998+ def b():
1999+ pass
2000+
2001+ yappi.set_tag_callback(_tag_cbk)
2002+ yappi.start()
2003+ a()
2004+ a()
2005+ a()
2006+ yappi.stop()
2007+ stats = yappi.get_func_stats()
2008+ self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
2009+ stats = yappi.get_func_stats(tag=1)
2010+
2011+ for i in range(1, 3):
2012+ stats = yappi.get_func_stats(tag=i)
2013+ stats = yappi.get_func_stats(
2014+ tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
2015+ )
2016+
2017+ stat = stats.pop()
2018+ self.assertEqual(stat.ncall, 1)
2019+
2020+ yappi.set_tag_callback(None)
2021+ yappi.clear_stats()
2022+ yappi.start()
2023+ b()
2024+ b()
2025+ stats = yappi.get_func_stats()
2026+ self.assertEqual(len(stats), 1)
2027+ stat = stats.pop()
2028+ self.assertEqual(stat.ncall, 2)
2029+
2030+ def test_filter(self):
2031+
2032+ def a():
2033+ pass
2034+
2035+ def b():
2036+ a()
2037+
2038+ def c():
2039+ b()
2040+
2041+ _TCOUNT = 5
2042+
2043+ ts = []
2044+ yappi.start()
2045+ for i in range(_TCOUNT):
2046+ t = threading.Thread(target=c)
2047+ t.start()
2048+ ts.append(t)
2049+
2050+ for t in ts:
2051+ t.join()
2052+
2053+ yappi.stop()
2054+
2055+ ctx_ids = []
2056+ for tstat in yappi.get_thread_stats():
2057+ if tstat.name == '_MainThread':
2058+ main_ctx_id = tstat.id
2059+ else:
2060+ ctx_ids.append(tstat.id)
2061+
2062+ fstats = yappi.get_func_stats(filter={"ctx_id": 9})
2063+ self.assertTrue(fstats.empty())
2064+ fstats = yappi.get_func_stats(
2065+ filter={
2066+ "ctx_id": main_ctx_id,
2067+ "name": "c"
2068+ }
2069+ ) # main thread
2070+ self.assertTrue(fstats.empty())
2071+
2072+ for i in ctx_ids:
2073+ fstats = yappi.get_func_stats(
2074+ filter={
2075+ "ctx_id": i,
2076+ "name": "a",
2077+ "ncall": 1
2078+ }
2079+ )
2080+ self.assertEqual(fstats.pop().ncall, 1)
2081+ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
2082+ self.assertEqual(fstats.pop().ncall, 1)
2083+ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
2084+ self.assertEqual(fstats.pop().ncall, 1)
2085+
2086+ yappi.clear_stats()
2087+ yappi.start(builtins=True)
2088+ time.sleep(0.1)
2089+ yappi.stop()
2090+ fstats = yappi.get_func_stats(filter={"module": "time"})
2091+ self.assertEqual(len(fstats), 1)
2092+
2093+ # invalid filters`
2094+ self.assertRaises(
2095+ Exception, yappi.get_func_stats, filter={'tag': "sss"}
2096+ )
2097+ self.assertRaises(
2098+ Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
2099+ )
2100+
2101+ def test_filter_callback(self):
2102+
2103+ def a():
2104+ time.sleep(0.1)
2105+
2106+ def b():
2107+ a()
2108+
2109+ def c():
2110+ pass
2111+
2112+ def d():
2113+ pass
2114+
2115+ yappi.set_clock_type("wall")
2116+ yappi.start(builtins=True)
2117+ a()
2118+ b()
2119+ c()
2120+ d()
2121+ stats = yappi.get_func_stats(
2122+ filter_callback=lambda x: yappi.func_matches(x, [a, b])
2123+ )
2124+ #stats.print_all()
2125+ r1 = '''
2126+ tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
2127+ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
2128+ '''
2129+ self.assert_traces_almost_equal(r1, stats)
2130+ self.assertEqual(len(stats), 2)
2131+ stats = yappi.get_func_stats(
2132+ filter_callback=lambda x: yappi.
2133+ module_matches(x, [sys.modules[__name__]])
2134+ )
2135+ r1 = '''
2136+ tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
2137+ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
2138+ tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
2139+ tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
2140+ '''
2141+ self.assert_traces_almost_equal(r1, stats)
2142+ self.assertEqual(len(stats), 4)
2143+
2144+ stats = yappi.get_func_stats(
2145+ filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
2146+ )
2147+ self.assertEqual(len(stats), 1)
2148+ r1 = '''
2149+ time.sleep 2 0.206804 0.220000 0.103402
2150+ '''
2151+ self.assert_traces_almost_equal(r1, stats)
2152+
2153+ def test_print_formatting(self):
2154+
2155+ def a():
2156+ pass
2157+
2158+ def b():
2159+ a()
2160+
2161+ func_cols = {
2162+ 1: ("name", 48),
2163+ 0: ("ncall", 5),
2164+ 2: ("tsub", 8),
2165+ }
2166+ thread_cols = {
2167+ 1: ("name", 48),
2168+ 0: ("ttot", 8),
2169+ }
2170+
2171+ yappi.start()
2172+ a()
2173+ b()
2174+ yappi.stop()
2175+ fs = yappi.get_func_stats()
2176+ cs = fs[1].children
2177+ ts = yappi.get_thread_stats()
2178+ #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
2179+ #cs.print_all(out=sys.stderr, columns=func_cols)
2180+ #ts.print_all(out=sys.stderr, columns=thread_cols)
2181+ #cs.print_all(out=sys.stderr, columns={})
2182+
2183+ self.assertRaises(
2184+ yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
2185+ )
2186+ self.assertRaises(
2187+ yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
2188+ )
2189+ self.assertRaises(
2190+ yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
2191+ )
2192+
2193+ def test_get_clock(self):
2194+ yappi.set_clock_type('cpu')
2195+ self.assertEqual('cpu', yappi.get_clock_type())
2196+ clock_info = yappi.get_clock_info()
2197+ self.assertTrue('api' in clock_info)
2198+ self.assertTrue('resolution' in clock_info)
2199+
2200+ yappi.set_clock_type('wall')
2201+ self.assertEqual('wall', yappi.get_clock_type())
2202+
2203+ t0 = yappi.get_clock_time()
2204+ time.sleep(0.1)
2205+ duration = yappi.get_clock_time() - t0
2206+ self.assertTrue(0.05 < duration < 0.3)
2207+
2208+ def test_profile_decorator(self):
2209+
2210+ def aggregate(func, stats):
2211+ fname = f"tests/{func.__name__}.profile"
2212+ try:
2213+ stats.add(fname)
2214+ except OSError:
2215+ pass
2216+ stats.save(fname)
2217+ raise Exception("messing around")
2218+
2219+ @yappi.profile(return_callback=aggregate)
2220+ def a(x, y):
2221+ if x + y == 25:
2222+ raise Exception("")
2223+ return x + y
2224+
2225+ def b():
2226+ pass
2227+
2228+ try:
2229+ os.remove(
2230+ "tests/a.profile"
2231+ ) # remove the one from prev test, if available
2232+ except:
2233+ pass
2234+
2235+ # global profile is on to mess things up
2236+ yappi.start()
2237+ b()
2238+
2239+ # assert functionality and call function at same time
2240+ try:
2241+ self.assertEqual(a(1, 2), 3)
2242+ except:
2243+ pass
2244+ try:
2245+ self.assertEqual(a(2, 5), 7)
2246+ except:
2247+ pass
2248+ try:
2249+ a(4, 21)
2250+ except:
2251+ pass
2252+ stats = yappi.get_func_stats().add("tests/a.profile")
2253+ fsa = utils.find_stat_by_name(stats, 'a')
2254+ self.assertEqual(fsa.ncall, 3)
2255+ self.assertEqual(len(stats), 1) # b() should be cleared out.
2256+
2257+ @yappi.profile(return_callback=aggregate)
2258+ def count_down_rec(n):
2259+ if n == 0:
2260+ return
2261+ count_down_rec(n - 1)
2262+
2263+ try:
2264+ os.remove(
2265+ "tests/count_down_rec.profile"
2266+ ) # remove the one from prev test, if available
2267+ except:
2268+ pass
2269+
2270+ try:
2271+ count_down_rec(4)
2272+ except:
2273+ pass
2274+ try:
2275+ count_down_rec(3)
2276+ except:
2277+ pass
2278+
2279+ stats = yappi.YFuncStats("tests/count_down_rec.profile")
2280+ fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
2281+ self.assertEqual(fsrec.ncall, 9)
2282+ self.assertEqual(fsrec.nactualcall, 2)
2283+
2284+ def test_strip_dirs(self):
2285+
2286+ def a():
2287+ pass
2288+
2289+ stats = utils.run_and_get_func_stats(a, )
2290+ stats.strip_dirs()
2291+ fsa = utils.find_stat_by_name(stats, "a")
2292+ self.assertEqual(fsa.module, os.path.basename(fsa.module))
2293+
2294+ @unittest.skipIf(os.name == "nt", "do not run on Windows")
2295+ def test_run_as_script(self):
2296+ import re
2297+ p = subprocess.Popen(
2298+ ['yappi', os.path.join('./tests', 'run_as_script.py')],
2299+ stdout=subprocess.PIPE
2300+ )
2301+ out, err = p.communicate()
2302+ self.assertEqual(p.returncode, 0)
2303+ func_stats, thread_stats = re.split(
2304+ b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
2305+ )
2306+ self.assertTrue(b'FancyThread' in thread_stats)
2307+
2308+ def test_yappi_overhead(self):
2309+ LOOP_COUNT = 100000
2310+
2311+ def a():
2312+ pass
2313+
2314+ def b():
2315+ for i in range(LOOP_COUNT):
2316+ a()
2317+
2318+ t0 = time.time()
2319+ yappi.start()
2320+ b()
2321+ yappi.stop()
2322+ time_with_yappi = time.time() - t0
2323+ t0 = time.time()
2324+ b()
2325+ time_without_yappi = time.time() - t0
2326+ if time_without_yappi == 0:
2327+ time_without_yappi = 0.000001
2328+
2329+ # in latest v0.82, I calculated this as close to "7.0" in my machine.
2330+ # however, %83 of this overhead is coming from tickcount(). The other %17
2331+ # seems to have been evenly distributed to the internal bookkeeping
2332+ # structures/algorithms which seems acceptable. Note that our test only
2333+ # tests one function being profiled at-a-time in a short interval.
2334+ # profiling high number of functions in a small time
2335+ # is a different beast, (which is pretty unlikely in most applications)
2336+ # So as a conclusion: I cannot see any optimization window for Yappi that
2337+ # is worth implementing as we will only optimize %17 of the time.
2338+ sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
2339+ (time_with_yappi / time_without_yappi))
2340+
2341+ def test_clear_stats_while_running(self):
2342+
2343+ def a():
2344+ pass
2345+
2346+ yappi.start()
2347+ a()
2348+ yappi.clear_stats()
2349+ a()
2350+ stats = yappi.get_func_stats()
2351+ fsa = utils.find_stat_by_name(stats, 'a')
2352+ self.assertEqual(fsa.ncall, 1)
2353+
2354+ def test_generator(self):
2355+
2356+ def _gen(n):
2357+ while (n > 0):
2358+ yield n
2359+ n -= 1
2360+
2361+ yappi.start()
2362+ for x in _gen(5):
2363+ pass
2364+ self.assertTrue(
2365+ yappi.convert2pstats(yappi.get_func_stats()) is not None
2366+ )
2367+
2368+ def test_slice_child_stats_and_strip_dirs(self):
2369+
2370+ def b():
2371+ for i in range(10000000):
2372+ pass
2373+
2374+ def a():
2375+ b()
2376+
2377+ yappi.start(builtins=True)
2378+ a()
2379+ stats = yappi.get_func_stats()
2380+ fsa = utils.find_stat_by_name(stats, 'a')
2381+ fsb = utils.find_stat_by_name(stats, 'b')
2382+ self.assertTrue(fsa.children[0:1] is not None)
2383+ prev_afullname = fsa.full_name
2384+ prev_bchildfullname = fsa.children[fsb].full_name
2385+ stats.strip_dirs()
2386+ self.assertTrue(len(prev_afullname) > len(fsa.full_name))
2387+ self.assertTrue(
2388+ len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
2389+ )
2390+
2391+ def test_children_stat_functions(self):
2392+ _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
2393+ _yappi._set_test_timings(_timings)
2394+
2395+ def b():
2396+ pass
2397+
2398+ def c():
2399+ pass
2400+
2401+ def a():
2402+ b()
2403+ c()
2404+
2405+ yappi.start()
2406+ a()
2407+ b() # non-child call
2408+ c() # non-child call
2409+ stats = yappi.get_func_stats()
2410+ fsa = utils.find_stat_by_name(stats, 'a')
2411+ childs_of_a = fsa.children.get().sort("tavg", "desc")
2412+ prev_item = None
2413+ for item in childs_of_a:
2414+ if prev_item:
2415+ self.assertTrue(prev_item.tavg > item.tavg)
2416+ prev_item = item
2417+ childs_of_a.sort("name", "desc")
2418+ prev_item = None
2419+ for item in childs_of_a:
2420+ if prev_item:
2421+ self.assertTrue(prev_item.name > item.name)
2422+ prev_item = item
2423+ childs_of_a.clear()
2424+ self.assertTrue(childs_of_a.empty())
2425+
2426+ def test_no_stats_different_clock_type_load(self):
2427+
2428+ def a():
2429+ pass
2430+
2431+ yappi.start()
2432+ a()
2433+ yappi.stop()
2434+ yappi.get_func_stats().save("tests/ystats1.ys")
2435+ yappi.clear_stats()
2436+ yappi.set_clock_type("WALL")
2437+ yappi.start()
2438+ yappi.stop()
2439+ stats = yappi.get_func_stats().add("tests/ystats1.ys")
2440+ fsa = utils.find_stat_by_name(stats, 'a')
2441+ self.assertTrue(fsa is not None)
2442+
2443+ def test_subsequent_profile(self):
2444+ _timings = {"a_1": 1, "b_1": 1}
2445+ _yappi._set_test_timings(_timings)
2446+
2447+ def a():
2448+ pass
2449+
2450+ def b():
2451+ pass
2452+
2453+ yappi.start()
2454+ a()
2455+ yappi.stop()
2456+ yappi.start()
2457+ b()
2458+ yappi.stop()
2459+ stats = yappi.get_func_stats()
2460+ fsa = utils.find_stat_by_name(stats, 'a')
2461+ fsb = utils.find_stat_by_name(stats, 'b')
2462+ self.assertTrue(fsa is not None)
2463+ self.assertTrue(fsb is not None)
2464+ self.assertEqual(fsa.ttot, 1)
2465+ self.assertEqual(fsb.ttot, 1)
2466+
2467+ def test_lambda(self):
2468+ f = lambda: time.sleep(0.3)
2469+ yappi.set_clock_type("wall")
2470+ yappi.start()
2471+ f()
2472+ stats = yappi.get_func_stats()
2473+ fsa = utils.find_stat_by_name(stats, '<lambda>')
2474+ self.assertTrue(fsa.ttot > 0.1)
2475+
2476+ def test_module_stress(self):
2477+ self.assertEqual(yappi.is_running(), False)
2478+
2479+ yappi.start()
2480+ yappi.clear_stats()
2481+ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
2482+
2483+ yappi.stop()
2484+ yappi.clear_stats()
2485+ yappi.set_clock_type("cpu")
2486+ self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
2487+ self.assertEqual(yappi.is_running(), False)
2488+ yappi.clear_stats()
2489+ yappi.clear_stats()
2490+
2491+ def test_stat_sorting(self):
2492+ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
2493+ _yappi._set_test_timings(_timings)
2494+
2495+ self._ncall = 1
2496+
2497+ def a():
2498+ b()
2499+
2500+ def b():
2501+ if self._ncall == 2:
2502+ return
2503+ self._ncall += 1
2504+ a()
2505+
2506+ stats = utils.run_and_get_func_stats(a)
2507+ stats = stats.sort("totaltime", "desc")
2508+ prev_stat = None
2509+ for stat in stats:
2510+ if prev_stat:
2511+ self.assertTrue(prev_stat.ttot >= stat.ttot)
2512+ prev_stat = stat
2513+ stats = stats.sort("totaltime", "asc")
2514+ prev_stat = None
2515+ for stat in stats:
2516+ if prev_stat:
2517+ self.assertTrue(prev_stat.ttot <= stat.ttot)
2518+ prev_stat = stat
2519+ stats = stats.sort("avgtime", "asc")
2520+ prev_stat = None
2521+ for stat in stats:
2522+ if prev_stat:
2523+ self.assertTrue(prev_stat.tavg <= stat.tavg)
2524+ prev_stat = stat
2525+ stats = stats.sort("name", "asc")
2526+ prev_stat = None
2527+ for stat in stats:
2528+ if prev_stat:
2529+ self.assertTrue(prev_stat.name <= stat.name)
2530+ prev_stat = stat
2531+ stats = stats.sort("subtime", "asc")
2532+ prev_stat = None
2533+ for stat in stats:
2534+ if prev_stat:
2535+ self.assertTrue(prev_stat.tsub <= stat.tsub)
2536+ prev_stat = stat
2537+
2538+ self.assertRaises(
2539+ yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
2540+ )
2541+ self.assertRaises(
2542+ yappi.YappiError, stats.sort, "totaltime",
2543+ "invalid_func_sortorder_arg"
2544+ )
2545+
2546+ def test_start_flags(self):
2547+ self.assertEqual(_yappi._get_start_flags(), None)
2548+ yappi.start()
2549+
2550+ def a():
2551+ pass
2552+
2553+ a()
2554+ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
2555+ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
2556+ self.assertEqual(len(yappi.get_thread_stats()), 1)
2557+
2558+ def test_builtin_profiling(self):
2559+
2560+ def a():
2561+ time.sleep(0.4) # is a builtin function
2562+
2563+ yappi.set_clock_type('wall')
2564+
2565+ yappi.start(builtins=True)
2566+ a()
2567+ stats = yappi.get_func_stats()
2568+ fsa = utils.find_stat_by_name(stats, 'sleep')
2569+ self.assertTrue(fsa is not None)
2570+ self.assertTrue(fsa.ttot > 0.3)
2571+ yappi.stop()
2572+ yappi.clear_stats()
2573+
2574+ def a():
2575+ pass
2576+
2577+ yappi.start()
2578+ t = threading.Thread(target=a)
2579+ t.start()
2580+ t.join()
2581+ stats = yappi.get_func_stats()
2582+
2583+ def test_singlethread_profiling(self):
2584+ yappi.set_clock_type('wall')
2585+
2586+ def a():
2587+ time.sleep(0.2)
2588+
2589+ class Worker1(threading.Thread):
2590+
2591+ def a(self):
2592+ time.sleep(0.3)
2593+
2594+ def run(self):
2595+ self.a()
2596+
2597+ yappi.start(profile_threads=False)
2598+
2599+ c = Worker1()
2600+ c.start()
2601+ c.join()
2602+ a()
2603+ stats = yappi.get_func_stats()
2604+ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
2605+ fsa2 = utils.find_stat_by_name(stats, 'a')
2606+ self.assertTrue(fsa1 is None)
2607+ self.assertTrue(fsa2 is not None)
2608+ self.assertTrue(fsa2.ttot > 0.1)
2609+
2610+ def test_run(self):
2611+
2612+ def profiled():
2613+ pass
2614+
2615+ yappi.clear_stats()
2616+ try:
2617+ with yappi.run():
2618+ profiled()
2619+ stats = yappi.get_func_stats()
2620+ finally:
2621+ yappi.clear_stats()
2622+
2623+ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
2624+
2625+ def test_run_recursive(self):
2626+
2627+ def profiled():
2628+ pass
2629+
2630+ def not_profiled():
2631+ pass
2632+
2633+ yappi.clear_stats()
2634+ try:
2635+ with yappi.run():
2636+ with yappi.run():
2637+ profiled()
2638+ # Profiling stopped here
2639+ not_profiled()
2640+ stats = yappi.get_func_stats()
2641+ finally:
2642+ yappi.clear_stats()
2643+
2644+ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
2645+ self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
2646+
2647+
2648+class StatSaveScenarios(utils.YappiUnitTestCase):
2649+
2650+ def test_pstats_conversion(self):
2651+
2652+ def pstat_id(fs):
2653+ return (fs.module, fs.lineno, fs.name)
2654+
2655+ def a():
2656+ d()
2657+
2658+ def b():
2659+ d()
2660+
2661+ def c():
2662+ pass
2663+
2664+ def d():
2665+ pass
2666+
2667+ _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
2668+ _yappi._set_test_timings(_timings)
2669+ stats = utils.run_and_get_func_stats(a, )
2670+ stats.strip_dirs()
2671+ stats.save("tests/a1.pstats", type="pstat")
2672+ fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
2673+ fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
2674+ yappi.clear_stats()
2675+ _yappi._set_test_timings(_timings)
2676+ stats = utils.run_and_get_func_stats(a, )
2677+ stats.strip_dirs()
2678+ stats.save("tests/a2.pstats", type="pstat")
2679+ yappi.clear_stats()
2680+ _yappi._set_test_timings(_timings)
2681+ stats = utils.run_and_get_func_stats(b, )
2682+ stats.strip_dirs()
2683+ stats.save("tests/b1.pstats", type="pstat")
2684+ fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
2685+ yappi.clear_stats()
2686+ _yappi._set_test_timings(_timings)
2687+ stats = utils.run_and_get_func_stats(c, )
2688+ stats.strip_dirs()
2689+ stats.save("tests/c1.pstats", type="pstat")
2690+ fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
2691+
2692+ # merge saved stats and check pstats values are correct
2693+ import pstats
2694+ p = pstats.Stats(
2695+ 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
2696+ 'tests/c1.pstats'
2697+ )
2698+ p.strip_dirs()
2699+ # ct = ttot, tt = tsub
2700+ (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
2701+ self.assertEqual(cc, nc, 2)
2702+ self.assertEqual(tt, 20)
2703+ self.assertEqual(ct, 24)
2704+ (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
2705+ self.assertEqual(cc, nc, 3)
2706+ self.assertEqual(tt, 6)
2707+ self.assertEqual(ct, 6)
2708+ self.assertEqual(len(callers), 2)
2709+ (cc, nc, tt, ct) = callers[fsa_pid]
2710+ self.assertEqual(cc, nc, 2)
2711+ self.assertEqual(tt, 4)
2712+ self.assertEqual(ct, 4)
2713+ (cc, nc, tt, ct) = callers[fsb_pid]
2714+ self.assertEqual(cc, nc, 1)
2715+ self.assertEqual(tt, 2)
2716+ self.assertEqual(ct, 2)
2717+
2718+ def test_merge_stats(self):
2719+ _timings = {
2720+ "a_1": 15,
2721+ "b_1": 14,
2722+ "c_1": 12,
2723+ "d_1": 10,
2724+ "e_1": 9,
2725+ "f_1": 7,
2726+ "g_1": 6,
2727+ "h_1": 5,
2728+ "i_1": 1
2729+ }
2730+ _yappi._set_test_timings(_timings)
2731+
2732+ def a():
2733+ b()
2734+
2735+ def b():
2736+ c()
2737+
2738+ def c():
2739+ d()
2740+
2741+ def d():
2742+ e()
2743+
2744+ def e():
2745+ f()
2746+
2747+ def f():
2748+ g()
2749+
2750+ def g():
2751+ h()
2752+
2753+ def h():
2754+ i()
2755+
2756+ def i():
2757+ pass
2758+
2759+ yappi.start()
2760+ a()
2761+ a()
2762+ yappi.stop()
2763+ stats = yappi.get_func_stats()
2764+ self.assertRaises(
2765+ NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
2766+ )
2767+ stats.save("tests/ystats2.ys")
2768+ yappi.clear_stats()
2769+ _yappi._set_test_timings(_timings)
2770+ yappi.start()
2771+ a()
2772+ stats = yappi.get_func_stats().add("tests/ystats2.ys")
2773+ fsa = utils.find_stat_by_name(stats, "a")
2774+ fsb = utils.find_stat_by_name(stats, "b")
2775+ fsc = utils.find_stat_by_name(stats, "c")
2776+ fsd = utils.find_stat_by_name(stats, "d")
2777+ fse = utils.find_stat_by_name(stats, "e")
2778+ fsf = utils.find_stat_by_name(stats, "f")
2779+ fsg = utils.find_stat_by_name(stats, "g")
2780+ fsh = utils.find_stat_by_name(stats, "h")
2781+ fsi = utils.find_stat_by_name(stats, "i")
2782+ self.assertEqual(fsa.ttot, 45)
2783+ self.assertEqual(fsa.ncall, 3)
2784+ self.assertEqual(fsa.nactualcall, 3)
2785+ self.assertEqual(fsa.tsub, 3)
2786+ self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
2787+ self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
2788+ self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
2789+ self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
2790+ self.assertEqual(fsc.tsub, 6)
2791+ self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
2792+ self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
2793+ self.assertEqual(fsd.children[fse].ttot, fse.ttot)
2794+ self.assertEqual(fsd.children[fse].tsub, fse.tsub)
2795+ self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
2796+ self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
2797+ self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
2798+ self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
2799+ self.assertEqual(fsg.ttot, 18)
2800+ self.assertEqual(fsg.tsub, 3)
2801+ self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
2802+ self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
2803+ self.assertEqual(fsh.ttot, 15)
2804+ self.assertEqual(fsh.tsub, 12)
2805+ self.assertEqual(fsh.tavg, 5)
2806+ self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
2807+ self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
2808+ #stats.debug_print()
2809+
2810+ def test_merge_multithreaded_stats(self):
2811+ import _yappi
2812+ timings = {"a_1": 2, "b_1": 1}
2813+ _yappi._set_test_timings(timings)
2814+
2815+ def a():
2816+ pass
2817+
2818+ def b():
2819+ pass
2820+
2821+ yappi.start()
2822+ t = threading.Thread(target=a)
2823+ t.start()
2824+ t.join()
2825+ t = threading.Thread(target=b)
2826+ t.start()
2827+ t.join()
2828+ yappi.get_func_stats().save("tests/ystats1.ys")
2829+ yappi.clear_stats()
2830+ _yappi._set_test_timings(timings)
2831+ self.assertEqual(len(yappi.get_func_stats()), 0)
2832+ self.assertEqual(len(yappi.get_thread_stats()), 1)
2833+ t = threading.Thread(target=a)
2834+ t.start()
2835+ t.join()
2836+
2837+ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
2838+ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
2839+ yappi.get_func_stats().save("tests/ystats2.ys")
2840+
2841+ stats = yappi.YFuncStats([
2842+ "tests/ystats1.ys",
2843+ "tests/ystats2.ys",
2844+ ])
2845+ fsa = utils.find_stat_by_name(stats, "a")
2846+ fsb = utils.find_stat_by_name(stats, "b")
2847+ self.assertEqual(fsa.ncall, 2)
2848+ self.assertEqual(fsb.ncall, 1)
2849+ self.assertEqual(fsa.tsub, fsa.ttot, 4)
2850+ self.assertEqual(fsb.tsub, fsb.ttot, 1)
2851+
2852+ def test_merge_load_different_clock_types(self):
2853+ yappi.start(builtins=True)
2854+
2855+ def a():
2856+ b()
2857+
2858+ def b():
2859+ c()
2860+
2861+ def c():
2862+ pass
2863+
2864+ t = threading.Thread(target=a)
2865+ t.start()
2866+ t.join()
2867+ yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
2868+ yappi.stop()
2869+ yappi.clear_stats()
2870+ yappi.start(builtins=False)
2871+ t = threading.Thread(target=a)
2872+ t.start()
2873+ t.join()
2874+ yappi.get_func_stats().save("tests/ystats2.ys")
2875+ yappi.stop()
2876+ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
2877+ yappi.clear_stats()
2878+ yappi.set_clock_type("wall")
2879+ yappi.start()
2880+ t = threading.Thread(target=a)
2881+ t.start()
2882+ t.join()
2883+ yappi.get_func_stats().save("tests/ystats3.ys")
2884+ self.assertRaises(
2885+ yappi.YappiError,
2886+ yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
2887+ )
2888+ stats = yappi.YFuncStats(["tests/ystats1.ys",
2889+ "tests/ystats2.ys"]).sort("name")
2890+ fsa = utils.find_stat_by_name(stats, "a")
2891+ fsb = utils.find_stat_by_name(stats, "b")
2892+ fsc = utils.find_stat_by_name(stats, "c")
2893+ self.assertEqual(fsa.ncall, 2)
2894+ self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
2895+
2896+ def test_merge_aabab_aabbc(self):
2897+ _timings = {
2898+ "a_1": 15,
2899+ "a_2": 14,
2900+ "b_1": 12,
2901+ "a_3": 10,
2902+ "b_2": 9,
2903+ "c_1": 4
2904+ }
2905+ _yappi._set_test_timings(_timings)
2906+
2907+ def a():
2908+ if self._ncall == 1:
2909+ self._ncall += 1
2910+ a()
2911+ elif self._ncall == 5:
2912+ self._ncall += 1
2913+ a()
2914+ else:
2915+ b()
2916+
2917+ def b():
2918+ if self._ncall == 2:
2919+ self._ncall += 1
2920+ a()
2921+ elif self._ncall == 6:
2922+ self._ncall += 1
2923+ b()
2924+ elif self._ncall == 7:
2925+ c()
2926+ else:
2927+ return
2928+
2929+ def c():
2930+ pass
2931+
2932+ self._ncall = 1
2933+ stats = utils.run_and_get_func_stats(a, )
2934+ stats.save("tests/ystats1.ys")
2935+ yappi.clear_stats()
2936+ _yappi._set_test_timings(_timings)
2937+ #stats.print_all()
2938+
2939+ self._ncall = 5
2940+ stats = utils.run_and_get_func_stats(a, )
2941+ stats.save("tests/ystats2.ys")
2942+
2943+ #stats.print_all()
2944+
2945+ def a(): # same name but another function(code object)
2946+ pass
2947+
2948+ yappi.start()
2949+ a()
2950+ stats = yappi.get_func_stats().add(
2951+ ["tests/ystats1.ys", "tests/ystats2.ys"]
2952+ )
2953+ #stats.print_all()
2954+ self.assertEqual(len(stats), 4)
2955+
2956+ fsa = None
2957+ for stat in stats:
2958+ if stat.name == "a" and stat.ttot == 45:
2959+ fsa = stat
2960+ break
2961+ self.assertTrue(fsa is not None)
2962+
2963+ self.assertEqual(fsa.ncall, 7)
2964+ self.assertEqual(fsa.nactualcall, 3)
2965+ self.assertEqual(fsa.ttot, 45)
2966+ self.assertEqual(fsa.tsub, 10)
2967+ fsb = utils.find_stat_by_name(stats, "b")
2968+ fsc = utils.find_stat_by_name(stats, "c")
2969+ self.assertEqual(fsb.ncall, 6)
2970+ self.assertEqual(fsb.nactualcall, 3)
2971+ self.assertEqual(fsb.ttot, 36)
2972+ self.assertEqual(fsb.tsub, 27)
2973+ self.assertEqual(fsb.tavg, 6)
2974+ self.assertEqual(fsc.ttot, 8)
2975+ self.assertEqual(fsc.tsub, 8)
2976+ self.assertEqual(fsc.tavg, 4)
2977+ self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
2978+
2979+
2980+class MultithreadedScenarios(utils.YappiUnitTestCase):
2981+
2982+ def test_issue_32(self):
2983+ '''
2984+ Start yappi from different thread and we get Internal Error(15) as
2985+ the current_ctx_id() called while enumerating the threads in start()
2986+ and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
2987+ returns wrong object and thus sets an invalid id for the _ctx structure.
2988+
2989+ When this issue happens multiple Threads have same tid as the internal ts_ptr
2990+ will be same for different contexts. So, let's see if that happens
2991+ '''
2992+
2993+ def foo():
2994+ time.sleep(0.2)
2995+
2996+ def bar():
2997+ time.sleep(0.1)
2998+
2999+ def thread_func():
3000+ yappi.set_clock_type("wall")
3001+ yappi.start()
3002+
3003+ bar()
3004+
3005+ t = threading.Thread(target=thread_func)
3006+ t.start()
3007+ t.join()
3008+
3009+ foo()
3010+
3011+ yappi.stop()
3012+
3013+ thread_ids = set()
3014+ for tstat in yappi.get_thread_stats():
3015+ self.assertTrue(tstat.tid not in thread_ids)
3016+ thread_ids.add(tstat.tid)
3017+
3018+ def test_subsequent_profile(self):
3019+ WORKER_COUNT = 5
3020+
3021+ def a():
3022+ pass
3023+
3024+ def b():
3025+ pass
3026+
3027+ def c():
3028+ pass
3029+
3030+ _timings = {
3031+ "a_1": 3,
3032+ "b_1": 2,
3033+ "c_1": 1,
3034+ }
3035+
3036+ yappi.start()
3037+
3038+ def g():
3039+ pass
3040+
3041+ g()
3042+ yappi.stop()
3043+ yappi.clear_stats()
3044+ _yappi._set_test_timings(_timings)
3045+ yappi.start()
3046+
3047+ _dummy = []
3048+ for i in range(WORKER_COUNT):
3049+ t = threading.Thread(target=a)
3050+ t.start()
3051+ t.join()
3052+ for i in range(WORKER_COUNT):
3053+ t = threading.Thread(target=b)
3054+ t.start()
3055+ _dummy.append(t)
3056+ t.join()
3057+ for i in range(WORKER_COUNT):
3058+ t = threading.Thread(target=a)
3059+ t.start()
3060+ t.join()
3061+ for i in range(WORKER_COUNT):
3062+ t = threading.Thread(target=c)
3063+ t.start()
3064+ t.join()
3065+ yappi.stop()
3066+ yappi.start()
3067+
3068+ def f():
3069+ pass
3070+
3071+ f()
3072+ stats = yappi.get_func_stats()
3073+ fsa = utils.find_stat_by_name(stats, 'a')
3074+ fsb = utils.find_stat_by_name(stats, 'b')
3075+ fsc = utils.find_stat_by_name(stats, 'c')
3076+ self.assertEqual(fsa.ncall, 10)
3077+ self.assertEqual(fsb.ncall, 5)
3078+ self.assertEqual(fsc.ncall, 5)
3079+ self.assertEqual(fsa.ttot, fsa.tsub, 30)
3080+ self.assertEqual(fsb.ttot, fsb.tsub, 10)
3081+ self.assertEqual(fsc.ttot, fsc.tsub, 5)
3082+
3083+ # MACOSx optimizes by only creating one worker thread
3084+ self.assertTrue(len(yappi.get_thread_stats()) >= 2)
3085+
3086+ def test_basic(self):
3087+ yappi.set_clock_type('wall')
3088+
3089+ def dummy():
3090+ pass
3091+
3092+ def a():
3093+ time.sleep(0.2)
3094+
3095+ class Worker1(threading.Thread):
3096+
3097+ def a(self):
3098+ time.sleep(0.3)
3099+
3100+ def run(self):
3101+ self.a()
3102+
3103+ yappi.start(builtins=False, profile_threads=True)
3104+
3105+ c = Worker1()
3106+ c.start()
3107+ c.join()
3108+ a()
3109+ stats = yappi.get_func_stats()
3110+ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
3111+ fsa2 = utils.find_stat_by_name(stats, 'a')
3112+ self.assertTrue(fsa1 is not None)
3113+ self.assertTrue(fsa2 is not None)
3114+ self.assertTrue(fsa1.ttot > 0.2)
3115+ self.assertTrue(fsa2.ttot > 0.1)
3116+ tstats = yappi.get_thread_stats()
3117+ self.assertEqual(len(tstats), 2)
3118+ tsa = utils.find_stat_by_name(tstats, 'Worker1')
3119+ tsm = utils.find_stat_by_name(tstats, '_MainThread')
3120+ dummy() # call dummy to force ctx name to be retrieved again.
3121+ self.assertTrue(tsa is not None)
3122+ # TODO: I put dummy() to fix below, remove the comments after a while.
3123+ self.assertTrue( # FIX: I see this fails sometimes?
3124+ tsm is not None,
3125+ f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(tstats))}")
3126+
3127+ def test_ctx_stats(self):
3128+ from threading import Thread
3129+ DUMMY_WORKER_COUNT = 5
3130+ yappi.start()
3131+
3132+ class DummyThread(Thread):
3133+ pass
3134+
3135+ def dummy():
3136+ pass
3137+
3138+ def dummy_worker():
3139+ pass
3140+
3141+ for i in range(DUMMY_WORKER_COUNT):
3142+ t = DummyThread(target=dummy_worker)
3143+ t.start()
3144+ t.join()
3145+ yappi.stop()
3146+ stats = yappi.get_thread_stats()
3147+ tsa = utils.find_stat_by_name(stats, "DummyThread")
3148+ self.assertTrue(tsa is not None)
3149+ yappi.clear_stats()
3150+ time.sleep(1.0)
3151+ _timings = {
3152+ "a_1": 6,
3153+ "b_1": 5,
3154+ "c_1": 3,
3155+ "d_1": 1,
3156+ "a_2": 4,
3157+ "b_2": 3,
3158+ "c_2": 2,
3159+ "d_2": 1
3160+ }
3161+ _yappi._set_test_timings(_timings)
3162+
3163+ class Thread1(Thread):
3164+ pass
3165+
3166+ class Thread2(Thread):
3167+ pass
3168+
3169+ def a():
3170+ b()
3171+
3172+ def b():
3173+ c()
3174+
3175+ def c():
3176+ d()
3177+
3178+ def d():
3179+ time.sleep(0.6)
3180+
3181+ yappi.set_clock_type("wall")
3182+ yappi.start()
3183+ t1 = Thread1(target=a)
3184+ t1.start()
3185+ t2 = Thread2(target=a)
3186+ t2.start()
3187+ t1.join()
3188+ t2.join()
3189+ stats = yappi.get_thread_stats()
3190+
3191+ # the fist clear_stats clears the context table?
3192+ tsa = utils.find_stat_by_name(stats, "DummyThread")
3193+ self.assertTrue(tsa is None)
3194+
3195+ tst1 = utils.find_stat_by_name(stats, "Thread1")
3196+ tst2 = utils.find_stat_by_name(stats, "Thread2")
3197+ tsmain = utils.find_stat_by_name(stats, "_MainThread")
3198+ dummy() # call dummy to force ctx name to be retrieved again.
3199+ self.assertTrue(len(stats) == 3)
3200+ self.assertTrue(tst1 is not None)
3201+ self.assertTrue(tst2 is not None)
3202+ # TODO: I put dummy() to fix below, remove the comments after a while.
3203+ self.assertTrue( # FIX: I see this fails sometimes
3204+ tsmain is not None,
3205+ f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(stats))}")
3206+ self.assertTrue(1.0 > tst2.ttot >= 0.5)
3207+ self.assertTrue(1.0 > tst1.ttot >= 0.5)
3208+
3209+ # test sorting of the ctx stats
3210+ stats = stats.sort("totaltime", "desc")
3211+ prev_stat = None
3212+ for stat in stats:
3213+ if prev_stat:
3214+ self.assertTrue(prev_stat.ttot >= stat.ttot)
3215+ prev_stat = stat
3216+ stats = stats.sort("totaltime", "asc")
3217+ prev_stat = None
3218+ for stat in stats:
3219+ if prev_stat:
3220+ self.assertTrue(prev_stat.ttot <= stat.ttot)
3221+ prev_stat = stat
3222+ stats = stats.sort("schedcount", "desc")
3223+ prev_stat = None
3224+ for stat in stats:
3225+ if prev_stat:
3226+ self.assertTrue(prev_stat.sched_count >= stat.sched_count)
3227+ prev_stat = stat
3228+ stats = stats.sort("name", "desc")
3229+ prev_stat = None
3230+ for stat in stats:
3231+ if prev_stat:
3232+ self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
3233+ prev_stat = stat
3234+ self.assertRaises(
3235+ yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
3236+ )
3237+ self.assertRaises(
3238+ yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
3239+ )
3240+
3241+ def test_ctx_stats_cpu(self):
3242+
3243+ def get_thread_name():
3244+ try:
3245+ return threading.current_thread().name
3246+ except AttributeError:
3247+ return "Anonymous"
3248+
3249+ def burn_cpu(sec):
3250+ t0 = yappi.get_clock_time()
3251+ elapsed = 0
3252+ while (elapsed < sec):
3253+ for _ in range(1000):
3254+ pass
3255+ elapsed = yappi.get_clock_time() - t0
3256+
3257+ def test():
3258+
3259+ ts = []
3260+ for i in (0.01, 0.05, 0.1):
3261+ t = threading.Thread(target=burn_cpu, args=(i, ))
3262+ t.name = f"burn_cpu-{str(i)}"
3263+ t.start()
3264+ ts.append(t)
3265+ for t in ts:
3266+ t.join()
3267+
3268+ yappi.set_clock_type("cpu")
3269+ yappi.set_context_name_callback(get_thread_name)
3270+
3271+ yappi.start()
3272+
3273+ test()
3274+
3275+ yappi.stop()
3276+
3277+ tstats = yappi.get_thread_stats()
3278+ r1 = '''
3279+ burn_cpu-0.1 3 123145356058624 0.100105 8
3280+ burn_cpu-0.05 2 123145361313792 0.050149 8
3281+ burn_cpu-0.01 1 123145356058624 0.010127 2
3282+ MainThread 0 4321620864 0.001632 6
3283+ '''
3284+ self.assert_ctx_stats_almost_equal(r1, tstats)
3285+
3286+ def test_producer_consumer_with_queues(self):
3287+ # we currently just stress yappi, no functionality test is done here.
3288+ yappi.start()
3289+ from queue import Queue
3290+ from threading import Thread
3291+ WORKER_THREAD_COUNT = 50
3292+ WORK_ITEM_COUNT = 2000
3293+
3294+ def worker():
3295+ while True:
3296+ item = q.get()
3297+ # do the work with item
3298+ q.task_done()
3299+
3300+ q = Queue()
3301+ for i in range(WORKER_THREAD_COUNT):
3302+ t = Thread(target=worker)
3303+ t.daemon = True
3304+ t.start()
3305+
3306+ for item in range(WORK_ITEM_COUNT):
3307+ q.put(item)
3308+ q.join() # block until all tasks are done
3309+ #yappi.get_func_stats().sort("callcount").print_all()
3310+ yappi.stop()
3311+
3312+ def test_temporary_lock_waiting(self):
3313+ yappi.start()
3314+ _lock = threading.Lock()
3315+
3316+ def worker():
3317+ _lock.acquire()
3318+ try:
3319+ time.sleep(1.0)
3320+ finally:
3321+ _lock.release()
3322+
3323+ t1 = threading.Thread(target=worker)
3324+ t2 = threading.Thread(target=worker)
3325+ t1.start()
3326+ t2.start()
3327+ t1.join()
3328+ t2.join()
3329+ #yappi.get_func_stats().sort("callcount").print_all()
3330+ yappi.stop()
3331+
3332+ @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
3333+ def test_signals_with_blocking_calls(self):
3334+ import signal, os, time
3335+
3336+ # just to verify if signal is handled correctly and stats/yappi are not corrupted.
3337+ def handler(signum, frame):
3338+ raise Exception("Signal handler executed!")
3339+
3340+ yappi.start()
3341+ signal.signal(signal.SIGALRM, handler)
3342+ signal.alarm(1)
3343+ self.assertRaises(Exception, time.sleep, 2)
3344+ stats = yappi.get_func_stats()
3345+ fsh = utils.find_stat_by_name(stats, "handler")
3346+ self.assertTrue(fsh is not None)
3347+
3348+ def test_concurrent_futures(self):
3349+ yappi.start()
3350+ from concurrent.futures import ThreadPoolExecutor
3351+ with ThreadPoolExecutor(max_workers=5) as executor:
3352+ f = executor.submit(pow, 5, 2)
3353+ self.assertEqual(f.result(), 25)
3354+ time.sleep(1.0)
3355+ yappi.stop()
3356+
3357+ def test_barrier(self):
3358+ yappi.start()
3359+ b = threading.Barrier(2, timeout=1)
3360+
3361+ def worker():
3362+ try:
3363+ b.wait()
3364+ except threading.BrokenBarrierError:
3365+ pass
3366+ except Exception:
3367+ raise Exception("BrokenBarrierError not raised")
3368+
3369+ t1 = threading.Thread(target=worker)
3370+ t1.start()
3371+ #b.wait()
3372+ t1.join()
3373+ yappi.stop()
3374+
3375+
3376+class NonRecursiveFunctions(utils.YappiUnitTestCase):
3377+
3378+ def test_abcd(self):
3379+ _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
3380+ _yappi._set_test_timings(_timings)
3381+
3382+ def a():
3383+ b()
3384+
3385+ def b():
3386+ c()
3387+
3388+ def c():
3389+ d()
3390+
3391+ def d():
3392+ pass
3393+
3394+ stats = utils.run_and_get_func_stats(a)
3395+ fsa = utils.find_stat_by_name(stats, 'a')
3396+ fsb = utils.find_stat_by_name(stats, 'b')
3397+ fsc = utils.find_stat_by_name(stats, 'c')
3398+ fsd = utils.find_stat_by_name(stats, 'd')
3399+ cfsab = fsa.children[fsb]
3400+ cfsbc = fsb.children[fsc]
3401+ cfscd = fsc.children[fsd]
3402+
3403+ self.assertEqual(fsa.ttot, 6)
3404+ self.assertEqual(fsa.tsub, 1)
3405+ self.assertEqual(fsb.ttot, 5)
3406+ self.assertEqual(fsb.tsub, 2)
3407+ self.assertEqual(fsc.ttot, 3)
3408+ self.assertEqual(fsc.tsub, 2)
3409+ self.assertEqual(fsd.ttot, 1)
3410+ self.assertEqual(fsd.tsub, 1)
3411+ self.assertEqual(cfsab.ttot, 5)
3412+ self.assertEqual(cfsab.tsub, 2)
3413+ self.assertEqual(cfsbc.ttot, 3)
3414+ self.assertEqual(cfsbc.tsub, 2)
3415+ self.assertEqual(cfscd.ttot, 1)
3416+ self.assertEqual(cfscd.tsub, 1)
3417+
3418+ def test_stop_in_middle(self):
3419+ _timings = {"a_1": 6, "b_1": 4}
3420+ _yappi._set_test_timings(_timings)
3421+
3422+ def a():
3423+ b()
3424+ yappi.stop()
3425+
3426+ def b():
3427+ time.sleep(0.2)
3428+
3429+ yappi.start()
3430+ a()
3431+ stats = yappi.get_func_stats()
3432+ fsa = utils.find_stat_by_name(stats, 'a')
3433+ fsb = utils.find_stat_by_name(stats, 'b')
3434+
3435+ self.assertEqual(fsa.ncall, 1)
3436+ self.assertEqual(fsa.nactualcall, 0)
3437+ self.assertEqual(fsa.ttot, 0) # no call_leave called
3438+ self.assertEqual(fsa.tsub, 0) # no call_leave called
3439+ self.assertEqual(fsb.ttot, 4)
3440+
3441+
3442+class RecursiveFunctions(utils.YappiUnitTestCase):
3443+
3444+ def test_fibonacci(self):
3445+
3446+ def fib(n):
3447+ if n > 1:
3448+ return fib(n - 1) + fib(n - 2)
3449+ else:
3450+ return n
3451+
3452+ stats = utils.run_and_get_func_stats(fib, 22)
3453+ fs = utils.find_stat_by_name(stats, 'fib')
3454+ self.assertEqual(fs.ncall, 57313)
3455+ self.assertEqual(fs.ttot, fs.tsub)
3456+
3457+ def test_abcadc(self):
3458+ _timings = {
3459+ "a_1": 20,
3460+ "b_1": 19,
3461+ "c_1": 17,
3462+ "a_2": 13,
3463+ "d_1": 12,
3464+ "c_2": 10,
3465+ "a_3": 5
3466+ }
3467+ _yappi._set_test_timings(_timings)
3468+
3469+ def a(n):
3470+ if n == 3:
3471+ return
3472+ if n == 1 + 1:
3473+ d(n)
3474+ else:
3475+ b(n)
3476+
3477+ def b(n):
3478+ c(n)
3479+
3480+ def c(n):
3481+ a(n + 1)
3482+
3483+ def d(n):
3484+ c(n)
3485+
3486+ stats = utils.run_and_get_func_stats(a, 1)
3487+ fsa = utils.find_stat_by_name(stats, 'a')
3488+ fsb = utils.find_stat_by_name(stats, 'b')
3489+ fsc = utils.find_stat_by_name(stats, 'c')
3490+ fsd = utils.find_stat_by_name(stats, 'd')
3491+ self.assertEqual(fsa.ncall, 3)
3492+ self.assertEqual(fsa.nactualcall, 1)
3493+ self.assertEqual(fsa.ttot, 20)
3494+ self.assertEqual(fsa.tsub, 7)
3495+ self.assertEqual(fsb.ttot, 19)
3496+ self.assertEqual(fsb.tsub, 2)
3497+ self.assertEqual(fsc.ttot, 17)
3498+ self.assertEqual(fsc.tsub, 9)
3499+ self.assertEqual(fsd.ttot, 12)
3500+ self.assertEqual(fsd.tsub, 2)
3501+ cfsca = fsc.children[fsa]
3502+ self.assertEqual(cfsca.nactualcall, 0)
3503+ self.assertEqual(cfsca.ncall, 2)
3504+ self.assertEqual(cfsca.ttot, 13)
3505+ self.assertEqual(cfsca.tsub, 6)
3506+
3507+ def test_aaaa(self):
3508+ _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
3509+ _yappi._set_test_timings(_timings)
3510+
3511+ def d(n):
3512+ if n == 3:
3513+ return
3514+ d(n + 1)
3515+
3516+ stats = utils.run_and_get_func_stats(d, 0)
3517+ fsd = utils.find_stat_by_name(stats, 'd')
3518+ self.assertEqual(fsd.ncall, 4)
3519+ self.assertEqual(fsd.nactualcall, 1)
3520+ self.assertEqual(fsd.ttot, 9)
3521+ self.assertEqual(fsd.tsub, 9)
3522+ cfsdd = fsd.children[fsd]
3523+ self.assertEqual(cfsdd.ttot, 7)
3524+ self.assertEqual(cfsdd.tsub, 7)
3525+ self.assertEqual(cfsdd.ncall, 3)
3526+ self.assertEqual(cfsdd.nactualcall, 0)
3527+
3528+ def test_abcabc(self):
3529+ _timings = {
3530+ "a_1": 20,
3531+ "b_1": 19,
3532+ "c_1": 17,
3533+ "a_2": 13,
3534+ "b_2": 11,
3535+ "c_2": 9,
3536+ "a_3": 6
3537+ }
3538+ _yappi._set_test_timings(_timings)
3539+
3540+ def a(n):
3541+ if n == 3:
3542+ return
3543+ else:
3544+ b(n)
3545+
3546+ def b(n):
3547+ c(n)
3548+
3549+ def c(n):
3550+ a(n + 1)
3551+
3552+ stats = utils.run_and_get_func_stats(a, 1)
3553+ fsa = utils.find_stat_by_name(stats, 'a')
3554+ fsb = utils.find_stat_by_name(stats, 'b')
3555+ fsc = utils.find_stat_by_name(stats, 'c')
3556+ self.assertEqual(fsa.ncall, 3)
3557+ self.assertEqual(fsa.nactualcall, 1)
3558+ self.assertEqual(fsa.ttot, 20)
3559+ self.assertEqual(fsa.tsub, 9)
3560+ self.assertEqual(fsb.ttot, 19)
3561+ self.assertEqual(fsb.tsub, 4)
3562+ self.assertEqual(fsc.ttot, 17)
3563+ self.assertEqual(fsc.tsub, 7)
3564+ cfsab = fsa.children[fsb]
3565+ cfsbc = fsb.children[fsc]
3566+ cfsca = fsc.children[fsa]
3567+ self.assertEqual(cfsab.ttot, 19)
3568+ self.assertEqual(cfsab.tsub, 4)
3569+ self.assertEqual(cfsbc.ttot, 17)
3570+ self.assertEqual(cfsbc.tsub, 7)
3571+ self.assertEqual(cfsca.ttot, 13)
3572+ self.assertEqual(cfsca.tsub, 8)
3573+
3574+ def test_abcbca(self):
3575+ _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
3576+ _yappi._set_test_timings(_timings)
3577+ self._ncall = 1
3578+
3579+ def a():
3580+ if self._ncall == 1:
3581+ b()
3582+ else:
3583+ return
3584+
3585+ def b():
3586+ c()
3587+
3588+ def c():
3589+ if self._ncall == 1:
3590+ self._ncall += 1
3591+ b()
3592+ else:
3593+ a()
3594+
3595+ stats = utils.run_and_get_func_stats(a)
3596+ fsa = utils.find_stat_by_name(stats, 'a')
3597+ fsb = utils.find_stat_by_name(stats, 'b')
3598+ fsc = utils.find_stat_by_name(stats, 'c')
3599+ cfsab = fsa.children[fsb]
3600+ cfsbc = fsb.children[fsc]
3601+ cfsca = fsc.children[fsa]
3602+ self.assertEqual(fsa.ttot, 10)
3603+ self.assertEqual(fsa.tsub, 2)
3604+ self.assertEqual(fsb.ttot, 9)
3605+ self.assertEqual(fsb.tsub, 4)
3606+ self.assertEqual(fsc.ttot, 7)
3607+ self.assertEqual(fsc.tsub, 4)
3608+ self.assertEqual(cfsab.ttot, 9)
3609+ self.assertEqual(cfsab.tsub, 2)
3610+ self.assertEqual(cfsbc.ttot, 7)
3611+ self.assertEqual(cfsbc.tsub, 4)
3612+ self.assertEqual(cfsca.ttot, 1)
3613+ self.assertEqual(cfsca.tsub, 1)
3614+ self.assertEqual(cfsca.ncall, 1)
3615+ self.assertEqual(cfsca.nactualcall, 0)
3616+
3617+ def test_aabccb(self):
3618+ _timings = {
3619+ "a_1": 13,
3620+ "a_2": 11,
3621+ "b_1": 9,
3622+ "c_1": 5,
3623+ "c_2": 3,
3624+ "b_2": 1
3625+ }
3626+ _yappi._set_test_timings(_timings)
3627+ self._ncall = 1
3628+
3629+ def a():
3630+ if self._ncall == 1:
3631+ self._ncall += 1
3632+ a()
3633+ else:
3634+ b()
3635+
3636+ def b():
3637+ if self._ncall == 3:
3638+ return
3639+ else:
3640+ c()
3641+
3642+ def c():
3643+ if self._ncall == 2:
3644+ self._ncall += 1
3645+ c()
3646+ else:
3647+ b()
3648+
3649+ stats = utils.run_and_get_func_stats(a)
3650+ fsa = utils.find_stat_by_name(stats, 'a')
3651+ fsb = utils.find_stat_by_name(stats, 'b')
3652+ fsc = utils.find_stat_by_name(stats, 'c')
3653+ cfsaa = fsa.children[fsa.index]
3654+ cfsab = fsa.children[fsb]
3655+ cfsbc = fsb.children[fsc.full_name]
3656+ cfscc = fsc.children[fsc]
3657+ cfscb = fsc.children[fsb]
3658+ self.assertEqual(fsb.ttot, 9)
3659+ self.assertEqual(fsb.tsub, 5)
3660+ self.assertEqual(cfsbc.ttot, 5)
3661+ self.assertEqual(cfsbc.tsub, 2)
3662+ self.assertEqual(fsa.ttot, 13)
3663+ self.assertEqual(fsa.tsub, 4)
3664+ self.assertEqual(cfsab.ttot, 9)
3665+ self.assertEqual(cfsab.tsub, 4)
3666+ self.assertEqual(cfsaa.ttot, 11)
3667+ self.assertEqual(cfsaa.tsub, 2)
3668+ self.assertEqual(fsc.ttot, 5)
3669+ self.assertEqual(fsc.tsub, 4)
3670+
3671+ def test_abaa(self):
3672+ _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
3673+ _yappi._set_test_timings(_timings)
3674+
3675+ self._ncall = 1
3676+
3677+ def a():
3678+ if self._ncall == 1:
3679+ b()
3680+ elif self._ncall == 2:
3681+ self._ncall += 1
3682+ a()
3683+ else:
3684+ return
3685+
3686+ def b():
3687+ self._ncall += 1
3688+ a()
3689+
3690+ stats = utils.run_and_get_func_stats(a)
3691+ fsa = utils.find_stat_by_name(stats, 'a')
3692+ fsb = utils.find_stat_by_name(stats, 'b')
3693+ cfsaa = fsa.children[fsa]
3694+ cfsba = fsb.children[fsa]
3695+ self.assertEqual(fsb.ttot, 10)
3696+ self.assertEqual(fsb.tsub, 1)
3697+ self.assertEqual(fsa.ttot, 13)
3698+ self.assertEqual(fsa.tsub, 12)
3699+ self.assertEqual(cfsaa.ttot, 5)
3700+ self.assertEqual(cfsaa.tsub, 5)
3701+ self.assertEqual(cfsba.ttot, 9)
3702+ self.assertEqual(cfsba.tsub, 4)
3703+
3704+ def test_aabb(self):
3705+ _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
3706+ _yappi._set_test_timings(_timings)
3707+
3708+ self._ncall = 1
3709+
3710+ def a():
3711+ if self._ncall == 1:
3712+ self._ncall += 1
3713+ a()
3714+ elif self._ncall == 2:
3715+ b()
3716+ else:
3717+ return
3718+
3719+ def b():
3720+ if self._ncall == 2:
3721+ self._ncall += 1
3722+ b()
3723+ else:
3724+ return
3725+
3726+ stats = utils.run_and_get_func_stats(a)
3727+ fsa = utils.find_stat_by_name(stats, 'a')
3728+ fsb = utils.find_stat_by_name(stats, 'b')
3729+ cfsaa = fsa.children[fsa]
3730+ cfsab = fsa.children[fsb]
3731+ cfsbb = fsb.children[fsb]
3732+ self.assertEqual(fsa.ttot, 13)
3733+ self.assertEqual(fsa.tsub, 4)
3734+ self.assertEqual(fsb.ttot, 9)
3735+ self.assertEqual(fsb.tsub, 9)
3736+ self.assertEqual(cfsaa.ttot, 10)
3737+ self.assertEqual(cfsaa.tsub, 1)
3738+ self.assertEqual(cfsab.ttot, 9)
3739+ self.assertEqual(cfsab.tsub, 4)
3740+ self.assertEqual(cfsbb.ttot, 5)
3741+ self.assertEqual(cfsbb.tsub, 5)
3742+
3743+ def test_abbb(self):
3744+ _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
3745+ _yappi._set_test_timings(_timings)
3746+
3747+ self._ncall = 1
3748+
3749+ def a():
3750+ if self._ncall == 1:
3751+ b()
3752+
3753+ def b():
3754+ if self._ncall == 3:
3755+ return
3756+ self._ncall += 1
3757+ b()
3758+
3759+ stats = utils.run_and_get_func_stats(a)
3760+ fsa = utils.find_stat_by_name(stats, 'a')
3761+ fsb = utils.find_stat_by_name(stats, 'b')
3762+ cfsab = fsa.children[fsb]
3763+ cfsbb = fsb.children[fsb]
3764+ self.assertEqual(fsa.ttot, 13)
3765+ self.assertEqual(fsa.tsub, 3)
3766+ self.assertEqual(fsb.ttot, 10)
3767+ self.assertEqual(fsb.tsub, 10)
3768+ self.assertEqual(fsb.ncall, 3)
3769+ self.assertEqual(fsb.nactualcall, 1)
3770+ self.assertEqual(cfsab.ttot, 10)
3771+ self.assertEqual(cfsab.tsub, 4)
3772+ self.assertEqual(cfsbb.ttot, 6)
3773+ self.assertEqual(cfsbb.tsub, 6)
3774+ self.assertEqual(cfsbb.nactualcall, 0)
3775+ self.assertEqual(cfsbb.ncall, 2)
3776+
3777+ def test_aaab(self):
3778+ _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
3779+ _yappi._set_test_timings(_timings)
3780+
3781+ self._ncall = 1
3782+
3783+ def a():
3784+ if self._ncall == 3:
3785+ b()
3786+ return
3787+ self._ncall += 1
3788+ a()
3789+
3790+ def b():
3791+ return
3792+
3793+ stats = utils.run_and_get_func_stats(a)
3794+ fsa = utils.find_stat_by_name(stats, 'a')
3795+ fsb = utils.find_stat_by_name(stats, 'b')
3796+ cfsaa = fsa.children[fsa]
3797+ cfsab = fsa.children[fsb]
3798+ self.assertEqual(fsa.ttot, 13)
3799+ self.assertEqual(fsa.tsub, 12)
3800+ self.assertEqual(fsb.ttot, 1)
3801+ self.assertEqual(fsb.tsub, 1)
3802+ self.assertEqual(cfsaa.ttot, 10)
3803+ self.assertEqual(cfsaa.tsub, 9)
3804+ self.assertEqual(cfsab.ttot, 1)
3805+ self.assertEqual(cfsab.tsub, 1)
3806+
3807+ def test_abab(self):
3808+ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
3809+ _yappi._set_test_timings(_timings)
3810+
3811+ self._ncall = 1
3812+
3813+ def a():
3814+ b()
3815+
3816+ def b():
3817+ if self._ncall == 2:
3818+ return
3819+ self._ncall += 1
3820+ a()
3821+
3822+ stats = utils.run_and_get_func_stats(a)
3823+ fsa = utils.find_stat_by_name(stats, 'a')
3824+ fsb = utils.find_stat_by_name(stats, 'b')
3825+ cfsab = fsa.children[fsb]
3826+ cfsba = fsb.children[fsa]
3827+ self.assertEqual(fsa.ttot, 13)
3828+ self.assertEqual(fsa.tsub, 8)
3829+ self.assertEqual(fsb.ttot, 10)
3830+ self.assertEqual(fsb.tsub, 5)
3831+ self.assertEqual(cfsab.ttot, 10)
3832+ self.assertEqual(cfsab.tsub, 5)
3833+ self.assertEqual(cfsab.ncall, 2)
3834+ self.assertEqual(cfsab.nactualcall, 1)
3835+ self.assertEqual(cfsba.ttot, 6)
3836+ self.assertEqual(cfsba.tsub, 5)
3837+
3838+
3839+if __name__ == '__main__':
3840+ # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
3841+ # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
3842+ unittest.main()
3843--
38442.34.1
3845
diff --git a/meta-python/recipes-devtools/python/python3-yappi_1.7.3.bb b/meta-python/recipes-devtools/python/python3-yappi_1.7.6.bb
index 3e735f7124..fefed051ab 100644
--- a/meta-python/recipes-devtools/python/python3-yappi_1.7.3.bb
+++ b/meta-python/recipes-devtools/python/python3-yappi_1.7.6.bb
@@ -4,10 +4,9 @@ HOMEPAGE = "https://github.com/sumerc/yappi"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
6 6
7SRC_URI[sha256sum] = "bef71ad0595b600261668dcb1e18b935a7117a724c04d7be60d9d246e32d0928" 7SRC_URI[sha256sum] = "c94281936af77c00c6ac2306a0e7f85a67e354d717120df85fcc5dfb9243d4dd"
8 8
9SRC_URI += " \ 9SRC_URI += " \
10 file://0001-test_functionality-convert-line-endings-to-Unix.patch \
11 file://0002-Fix-import-of-tests.utils-to-enable-pytest.patch \ 10 file://0002-Fix-import-of-tests.utils-to-enable-pytest.patch \
12 " 11 "
13 12
diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_8.2.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_8.3.bb
index 690c2d26aa..2dc586a3ab 100644
--- a/meta-python/recipes-devtools/python/python3-zopeinterface_8.2.bb
+++ b/meta-python/recipes-devtools/python/python3-zopeinterface_8.3.bb
@@ -6,7 +6,7 @@ PYPI_PACKAGE = "zope_interface"
6UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 6UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
7 7
8inherit pypi python_setuptools_build_meta 8inherit pypi python_setuptools_build_meta
9SRC_URI[sha256sum] = "afb20c371a601d261b4f6edb53c3c418c249db1a9717b0baafc9a9bb39ba1224" 9SRC_URI[sha256sum] = "e1a9de7d0b5b5c249a73b91aebf4598ce05e334303af6aa94865893283e9ff10"
10PACKAGES =. "${PN}-test " 10PACKAGES =. "${PN}-test "
11 11
12RPROVIDES:${PN} += "zope-interfaces" 12RPROVIDES:${PN} += "zope-interfaces"
diff --git a/meta-python/recipes-devtools/python3-mlcommons-loadgen/files/source-date-epoch.patch b/meta-python/recipes-devtools/python3-mlcommons-loadgen/files/source-date-epoch.patch
index 32e529d483..3eac44e738 100644
--- a/meta-python/recipes-devtools/python3-mlcommons-loadgen/files/source-date-epoch.patch
+++ b/meta-python/recipes-devtools/python3-mlcommons-loadgen/files/source-date-epoch.patch
@@ -1,6 +1,6 @@
1From dd7925397b84c2a327cd4594edba9f7ca5acef61 Mon Sep 17 00:00:00 2001 1From 99dfd88de60dd55bd3b5e7c0516b3882a8e56698 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Liu Yiding <liuyd.fnst@fujitsu.com>
3Date: Fri, 26 Sep 2025 14:02:23 +0800 3Date: Wed, 15 Apr 2026 06:09:37 +0000
4Subject: [PATCH] Honor the SOURCE_DATE_EPOCH variable 4Subject: [PATCH] Honor the SOURCE_DATE_EPOCH variable
5 5
6Implement the SOURCE_DATE_EPOCH specification[1] for reproducible 6Implement the SOURCE_DATE_EPOCH specification[1] for reproducible
@@ -12,30 +12,33 @@ current time.
12Upstream-Status: Submitted [https://github.com/mlcommons/inference/pull/2345] 12Upstream-Status: Submitted [https://github.com/mlcommons/inference/pull/2345]
13 13
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15
16Update for 6.0.14
17Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
15--- 18---
16 version_generator.py | 9 +++++++-- 19 version_generator.py | 9 +++++++--
17 1 file changed, 7 insertions(+), 2 deletions(-) 20 1 file changed, 7 insertions(+), 2 deletions(-)
18 21
19diff --git a/version_generator.py b/version_generator.py 22diff --git a/version_generator.py b/version_generator.py
20index 2e75243..5202da9 100644 23index b88ae8e..b083eec 100644
21--- a/version_generator.py 24--- a/version_generator.py
22+++ b/version_generator.py 25+++ b/version_generator.py
23@@ -110,8 +110,13 @@ def generate_loadgen_version_definitions(cc_filename, loadgen_root): 26@@ -113,8 +113,13 @@ def generate_loadgen_version_definitions(cc_filename, loadgen_root):
24 # Write the version into the function definition 27 # Write the version into the function definition
25 ofile.write(func_def("Version", f"\"{version_contents}\"")) 28 ofile.write(func_def("Version", f"\"{version_contents}\""))
26
27- date_time_now_local = datetime.datetime.now().isoformat()
28- date_time_now_utc = datetime.datetime.utcnow().isoformat()
29+ if os.environ.get('SOURCE_DATE_EPOCH', False):
30+ source_date_epoch = int(os.environ['SOURCE_DATE_EPOCH'])
31+ date_time_now_local = datetime.datetime.fromtimestamp(source_date_epoch).isoformat()
32+ date_time_now_utc = datetime.datetime.fromtimestamp(source_date_epoch, tz=datetime.timezone.utc).isoformat()
33+ else:
34+ date_time_now_local = datetime.datetime.now().isoformat()
35+ date_time_now_utc = datetime.datetime.utcnow().isoformat()
36 ofile.write(func_def("BuildDateLocal", '"' + date_time_now_local + '"'))
37 ofile.write(func_def("BuildDateUtc", '"' + date_time_now_utc + '"'))
38 29
30- date_time_now_local = datetime.datetime.now().isoformat()
31- date_time_now_utc = datetime.datetime.utcnow().isoformat()
32+ if os.environ.get('SOURCE_DATE_EPOCH', False):
33+ source_date_epoch = int(os.environ['SOURCE_DATE_EPOCH'])
34+ date_time_now_local = datetime.datetime.fromtimestamp(source_date_epoch).isoformat()
35+ date_time_now_utc = datetime.datetime.fromtimestamp(source_date_epoch, tz=datetime.timezone.utc).isoformat()
36+ else:
37+ date_time_now_local = datetime.datetime.now().isoformat()
38+ date_time_now_utc = datetime.datetime.utcnow().isoformat()
39 ofile.write(
40 func_def(
41 "BuildDateLocal",
39-- 42--
402.34.1 432.43.0
41 44
diff --git a/meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_5.1.2.bb b/meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_6.0.14.bb
index 79687290f5..3299f25080 100644
--- a/meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_5.1.2.bb
+++ b/meta-python/recipes-devtools/python3-mlcommons-loadgen/python3-mlcommons-loadgen_6.0.14.bb
@@ -21,7 +21,7 @@ SRC_URI += " \
21PYPI_PACKAGE = "mlcommons_loadgen" 21PYPI_PACKAGE = "mlcommons_loadgen"
22UPSTREAM_CHECK_PYPI_PACKAGE = "mlcommons_loadgen" 22UPSTREAM_CHECK_PYPI_PACKAGE = "mlcommons_loadgen"
23 23
24SRC_URI[sha256sum] = "cd686a6223c978d1056e38a417e4807bfa21c855189f7882d24c8313174bca74" 24SRC_URI[sha256sum] = "9a56e361b4614938acdb6a601cc9c57ce551809f831023401bbac6dd7eb00970"
25 25
26# Because the pyproject.toml contains invalid requirements. 26# Because the pyproject.toml contains invalid requirements.
27INSANE_SKIP += "pep517-backend" 27INSANE_SKIP += "pep517-backend"
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
deleted file mode 100644
index d3ab8f8526..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 6a85945c060154581f5a129a6a946258bf9333c4 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Mon, 8 May 2017 03:54:12 -0400
4Subject: [PATCH 08/11] use oe variable to replace hardcoded dir
5
6Upstream-Status: Pending
7
8Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
9
10Rebase for python3-blivet 3.4.0.
11
12Signed-off-by: Kai Kang <kai.kang@windriver.com>
13---
14 setup.py | 8 ++++----
15 1 file changed, 4 insertions(+), 4 deletions(-)
16
17diff --git a/setup.py b/setup.py
18index e6bb3f3..700085b 100644
19--- a/setup.py
20+++ b/setup.py
21@@ -73,10 +73,10 @@ class blivet_sdist(sdist):
22
23
24 data_files = [
25- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']),
26- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet0.service']),
27- ('/usr/libexec', ['dbus/blivetd']),
28- ('/usr/lib/systemd/system', ['dbus/blivet.service'])
29+ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']),
30+ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet0.service']),
31+ (os.environ.get('libexecdir'), ['dbus/blivetd']),
32+ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service'])
33 ]
34
35
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet_3.12.1.bb b/meta-python/recipes-extended/python-blivet/python3-blivet_3.13.2.bb
index bf492b3d57..a159979b73 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet_3.12.1.bb
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet_3.13.2.bb
@@ -11,23 +11,34 @@ SRC_URI += "\
11 file://0005-fix-incorrect-timeout-while-system-time-changed.patch \ 11 file://0005-fix-incorrect-timeout-while-system-time-changed.patch \
12 file://0006-tweak-btrfs-packages.patch \ 12 file://0006-tweak-btrfs-packages.patch \
13 file://0007-invoking-mount-with-infinite-timeout.patch \ 13 file://0007-invoking-mount-with-infinite-timeout.patch \
14 file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \
15 file://0009-invoking-fsck-with-infinite-timeout.patch \ 14 file://0009-invoking-fsck-with-infinite-timeout.patch \
16 file://0010-invoking-mkfs-with-infinite-timeout.patch \ 15 file://0010-invoking-mkfs-with-infinite-timeout.patch \
17 file://0011-invoking-dd-with-infinite-timeout.patch \ 16 file://0011-invoking-dd-with-infinite-timeout.patch \
18" 17"
19SRC_URI[sha256sum] = "54775ba212d1574b1b0750ce147f0d3cf3b5d73aaf040d172283edb57db4ba15" 18SRC_URI[sha256sum] = "6d8374d05eeab513b2a26cf01267e853df7b31e13ad1a1ba7d73a856190d0518"
20 19
21inherit pypi features_check systemd setuptools3_legacy 20inherit pypi features_check systemd setuptools3_legacy
22 21
23REQUIRED_DISTRO_FEATURES = "systemd" 22REQUIRED_DISTRO_FEATURES = "systemd"
24 23
25RDEPENDS:${PN} += "python3-pykickstart python3-pyudev \ 24RDEPENDS:${PN} += "python3-dasbus python3-pygobject python3-pykickstart python3-pyudev \
26 parted python3-pyparted multipath-tools \ 25 parted python3-pyparted multipath-tools \
27 lsof cryptsetup libblockdev libblockdev-bin \ 26 lsof cryptsetup libblockdev libblockdev-bin \
28 libbytesize \ 27 libbytesize \
28 util-linux \
29" 29"
30 30
31do_install:append() {
32 install -d ${D}${sysconfdir}/dbus-1/system.d
33 install -m 644 ${S}/dbus/blivet.conf ${D}${sysconfdir}/dbus-1/system.d/blivet.conf
34 install -d ${D}${datadir}/dbus-1/system-services
35 install -m 644 ${S}/dbus/com.redhat.Blivet0.service ${D}${datadir}/dbus-1/system-services/com.redhat.Blivet0.service
36 install -d ${D}${libexecdir}
37 install -m 755 ${S}/dbus/blivetd ${D}${libexecdir}/blivetd
38 install -d ${D}${systemd_system_unitdir}
39 install -m 644 ${S}/dbus/blivet.service ${D}${systemd_system_unitdir}/blivet.service
40}
41
31FILES:${PN} += " \ 42FILES:${PN} += " \
32 ${datadir}/dbus-1/system-services \ 43 ${datadir}/dbus-1/system-services \
33" 44"
diff --git a/meta-python/recipes-extended/python-pytesseract/pytesseract_0.3.13.bb b/meta-python/recipes-extended/python-pytesseract/pytesseract_0.3.13.bb
index 0d8cfcb408..034568251b 100644
--- a/meta-python/recipes-extended/python-pytesseract/pytesseract_0.3.13.bb
+++ b/meta-python/recipes-extended/python-pytesseract/pytesseract_0.3.13.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "https://github.com/madmaze/pytesseract"
5LICENSE = "Apache-2.0" 5LICENSE = "Apache-2.0"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
7 7
8SRC_URI[md5sum] = "73f9645e59b437f064d05882b95832ce" 8SRC_URI[sha256sum] = "4bf5f880c99406f52a3cfc2633e42d9dc67615e69d8a509d74867d3baddb5db9"
9 9
10RDEPENDS:${PN}:append = " python3-packaging tesseract" 10RDEPENDS:${PN}:append = " python3-packaging tesseract"
11 11
diff --git a/meta-python/recipes-extended/python-rich/python3-rich_14.3.3.bb b/meta-python/recipes-extended/python-rich/python3-rich_15.0.0.bb
index a2af61840f..2ab3b2fdbc 100644
--- a/meta-python/recipes-extended/python-rich/python3-rich_14.3.3.bb
+++ b/meta-python/recipes-extended/python-rich/python3-rich_15.0.0.bb
@@ -8,7 +8,7 @@ LICENSE = "MIT"
8 8
9LIC_FILES_CHKSUM = "file://LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303" 9LIC_FILES_CHKSUM = "file://LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303"
10 10
11SRC_URI[sha256sum] = "b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b" 11SRC_URI[sha256sum] = "edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36"
12 12
13inherit pypi python_poetry_core 13inherit pypi python_poetry_core
14 14
diff --git a/meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.1.bb b/meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.2.bb
index bc9b414848..7684b1dccc 100644
--- a/meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.1.bb
+++ b/meta-webserver/recipes-devtools/swagger-ui/swagger-ui_5.32.2.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
12 12
13SRC_URI = "git://github.com/swagger-api/swagger-ui;branch=master;protocol=https;tag=v${PV}" 13SRC_URI = "git://github.com/swagger-api/swagger-ui;branch=master;protocol=https;tag=v${PV}"
14 14
15SRCREV = "d361f5b3570b8ade67fb1c02cf7a676fcb441479" 15SRCREV = "d02a2df106961d8cb6bceb6b4b3aa8d9f6faaf4a"
16 16
17CVE_STATUS[CVE-2016-1000229] = "fixed-version: fixed since 2.2.1" 17CVE_STATUS[CVE-2016-1000229] = "fixed-version: fixed since 2.2.1"
18 18
diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_12.0.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_12.1.bb
index d6fa250cb9..8299e58263 100644
--- a/meta-webserver/recipes-httpd/hiawatha/hiawatha_12.0.bb
+++ b/meta-webserver/recipes-httpd/hiawatha/hiawatha_12.1.bb
@@ -11,7 +11,7 @@ SRC_URI = "https://hiawatha.leisink.net/files/download/hiawatha-${PV}.tar.gz \
11 file://hiawatha.service \ 11 file://hiawatha.service \
12 " 12 "
13 13
14SRC_URI[sha256sum] = "57b61a6d2640e72601d5ba0a063d6f1639613b910287871216f7ea06c75bfb96" 14SRC_URI[sha256sum] = "e93e5964e69d98061d366fa4a0ec7b5d33d3e92e6c02efa8b291a79c646006b1"
15 15
16INITSCRIPT_NAME = "hiawatha" 16INITSCRIPT_NAME = "hiawatha"
17INITSCRIPT_PARAMS = "defaults 70" 17INITSCRIPT_PARAMS = "defaults 70"
diff --git a/meta-webserver/recipes-httpd/monkey/files/0001-server-http-fix-malformed-request-crash-paths.patch b/meta-webserver/recipes-httpd/monkey/files/0001-server-http-fix-malformed-request-crash-paths.patch
new file mode 100644
index 0000000000..b57d7ac219
--- /dev/null
+++ b/meta-webserver/recipes-httpd/monkey/files/0001-server-http-fix-malformed-request-crash-paths.patch
@@ -0,0 +1,160 @@
1From 839620179e2b4e5982c53d8956d92e690d82960c Mon Sep 17 00:00:00 2001
2From: Eduardo Silva <eduardo@chronosphere.io>
3Date: Thu, 9 Apr 2026 12:11:52 -0600
4Subject: [PATCH] server: http: fix malformed request crash paths
5
6Fix the reproducible malformed-request crash paths in the HTTP
7request lifecycle.
8
9Handle missing Host data in directory redirects, reject malformed
10range delimiters before substring parsing, and avoid reusing invalid
11request state while advancing pipelined requests.
12
13Verified by rebuilding with cmake --build build and replaying the
14reported crash-inducing request fixtures against build/bin/monkey.
15
16Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
17
18This patch is part of https://github.com/monkey/monkey/pull/434,
19containing assorted CVE fixes.
20
21Upstream-Status: Backport [https://github.com/monkey/monkey/commit/1570f41231888ae8c7fbd719704e2486a952e45d]
22Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
23---
24 mk_core/mk_memory.c | 10 ++++++++++
25 mk_server/mk_http.c | 46 +++++++++++++++++++++++++++++++++++++++++----
26 2 files changed, 52 insertions(+), 4 deletions(-)
27
28diff --git a/mk_core/mk_memory.c b/mk_core/mk_memory.c
29index c4073e23..008f7ac6 100644
30--- a/mk_core/mk_memory.c
31+++ b/mk_core/mk_memory.c
32@@ -52,6 +52,16 @@ char *mk_ptr_to_buf(mk_ptr_t p)
33 {
34 char *buf;
35
36+ if (!p.data || p.len == 0) {
37+ buf = mk_mem_alloc(1);
38+ if (!buf) {
39+ return NULL;
40+ }
41+
42+ buf[0] = '\0';
43+ return buf;
44+ }
45+
46 buf = mk_mem_alloc(p.len + 1);
47 if (!buf) return NULL;
48
49diff --git a/mk_server/mk_http.c b/mk_server/mk_http.c
50index ad12a74a..f2f12554 100644
51--- a/mk_server/mk_http.c
52+++ b/mk_server/mk_http.c
53@@ -457,6 +457,10 @@ static int mk_http_range_parse(struct mk_http_request *sr)
54 if ((sep_pos = mk_string_char_search(sr->range.data, '-', sr->range.len)) < 0)
55 return -1;
56
57+ if (sep_pos < eq_pos) {
58+ return -1;
59+ }
60+
61 len = sr->range.len;
62 sh = &sr->headers;
63
64@@ -476,10 +480,16 @@ static int mk_http_range_parse(struct mk_http_request *sr)
65 /* =yyy-xxx */
66 if ((eq_pos + 1 != sep_pos) && (len > sep_pos + 1)) {
67 buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, sep_pos);
68+ if (!buffer) {
69+ return -1;
70+ }
71 sh->ranges[0] = (unsigned long) atol(buffer);
72 mk_mem_free(buffer);
73
74 buffer = mk_string_copy_substr(sr->range.data, sep_pos + 1, len);
75+ if (!buffer) {
76+ return -1;
77+ }
78 sh->ranges[1] = (unsigned long) atol(buffer);
79 mk_mem_free(buffer);
80
81@@ -493,6 +503,9 @@ static int mk_http_range_parse(struct mk_http_request *sr)
82 /* =yyy- */
83 if ((eq_pos + 1 != sep_pos) && (len == sep_pos + 1)) {
84 buffer = mk_string_copy_substr(sr->range.data, eq_pos + 1, len);
85+ if (!buffer) {
86+ return -1;
87+ }
88 sr->headers.ranges[0] = (unsigned long) atol(buffer);
89 mk_mem_free(buffer);
90
91@@ -522,7 +535,16 @@ static int mk_http_directory_redirect_check(struct mk_http_session *cs,
92 return 0;
93 }
94
95+ if (!sr->host.data || sr->host.len <= 0) {
96+ mk_http_error(MK_CLIENT_BAD_REQUEST, cs, sr, server);
97+ return -1;
98+ }
99+
100 host = mk_ptr_to_buf(sr->host);
101+ if (!host) {
102+ mk_http_error(MK_CLIENT_BAD_REQUEST, cs, sr, server);
103+ return -1;
104+ }
105
106 /*
107 * Add ending slash to the location string
108@@ -588,6 +610,9 @@ static inline char *mk_http_index_lookup(mk_ptr_t *path_base,
109 }
110
111 off = path_base->len;
112+ if ((size_t) off >= buf_size) {
113+ return NULL;
114+ }
115 memcpy(buf, path_base->data, off);
116
117 mk_list_foreach(head, server->index_files) {
118@@ -1138,15 +1163,27 @@ int mk_http_request_end(struct mk_http_session *cs, struct mk_server *server)
119 ret = mk_http_parser_more(&cs->parser, cs->body_length);
120 if (ret == MK_TRUE) {
121 /* Our pipeline request limit is the same that our keepalive limit */
122+ if (cs->parser.i < 0 ||
123+ (unsigned int) (cs->parser.i + 1) >= cs->body_length) {
124+ goto shutdown;
125+ }
126+
127 cs->counter_connections++;
128 len = (cs->body_length - cs->parser.i) -1;
129+ if (len <= 0) {
130+ goto shutdown;
131+ }
132 memmove(cs->body,
133 cs->body + cs->parser.i + 1,
134 len);
135 cs->body_length = len;
136
137 /* Prepare for next one */
138- sr = mk_list_entry_first(&cs->request_list, struct mk_http_request, _head);
139+ if (mk_list_is_empty(&cs->request_list) == 0) {
140+ cs->close_now = MK_TRUE;
141+ goto shutdown;
142+ }
143+ sr = &cs->sr_fixed;
144 mk_http_request_free(sr, server);
145 mk_http_request_init(cs, sr, server);
146 mk_http_parser_init(&cs->parser);
147@@ -1626,9 +1663,10 @@ int mk_http_sched_done(struct mk_sched_conn *conn,
148 struct mk_http_request *sr;
149
150 session = mk_http_session_get(conn);
151- sr = mk_list_entry_first(&session->request_list,
152- struct mk_http_request, _head);
153- mk_plugin_stage_run_40(session, sr, server);
154+ if (mk_list_is_empty(&session->request_list) != 0) {
155+ sr = &session->sr_fixed;
156+ mk_plugin_stage_run_40(session, sr, server);
157+ }
158
159 return mk_http_request_end(session, server);
160 }
diff --git a/meta-webserver/recipes-httpd/monkey/files/0002-server-scheduler-guard-protocol-close-callback.patch b/meta-webserver/recipes-httpd/monkey/files/0002-server-scheduler-guard-protocol-close-callback.patch
new file mode 100644
index 0000000000..c731db0919
--- /dev/null
+++ b/meta-webserver/recipes-httpd/monkey/files/0002-server-scheduler-guard-protocol-close-callback.patch
@@ -0,0 +1,51 @@
1From 82fb537e74e9b801d196b76efaf735ee50cd86c6 Mon Sep 17 00:00:00 2001
2From: Eduardo Silva <eduardo@chronosphere.io>
3Date: Thu, 9 Apr 2026 12:43:31 -0600
4Subject: [PATCH] server: scheduler: guard protocol close callback
5
6Avoid calling a null cb_close handler from the scheduler close
7and timeout paths.
8
9This fixes the HTTP/2 upgrade case where the protocol handler can be
10switched to mk_http2_handler even though that handler does not
11implement cb_close.
12
13Verified by rebuilding with cmake --build build.
14
15Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
16
17This patch is part of https://github.com/monkey/monkey/pull/434,
18containing assorted CVE fixes.
19
20Upstream-Status: Backport [https://github.com/monkey/monkey/commit/fc1d68fb38044df08cb43c7d9af0f68714388efc]
21Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
22---
23 mk_server/mk_scheduler.c | 8 +++++---
24 1 file changed, 5 insertions(+), 3 deletions(-)
25
26diff --git a/mk_server/mk_scheduler.c b/mk_server/mk_scheduler.c
27index a680d3cd..3cf0ba40 100644
28--- a/mk_server/mk_scheduler.c
29+++ b/mk_server/mk_scheduler.c
30@@ -598,8 +598,10 @@ int mk_sched_check_timeouts(struct mk_sched_worker *sched,
31 MK_TRACE("Scheduler, closing fd %i due TIMEOUT",
32 conn->event.fd);
33 MK_LT_SCHED(conn->event.fd, "TIMEOUT_CONN_PENDING");
34- conn->protocol->cb_close(conn, sched, MK_SCHED_CONN_TIMEOUT,
35- server);
36+ if (conn->protocol->cb_close) {
37+ conn->protocol->cb_close(conn, sched, MK_SCHED_CONN_TIMEOUT,
38+ server);
39+ }
40 mk_sched_drop_connection(conn, sched, server);
41 }
42 }
43@@ -749,7 +751,7 @@ int mk_sched_event_close(struct mk_sched_conn *conn,
44 MK_TRACE("[FD %i] Connection Handler, closed", conn->event.fd);
45 mk_event_del(sched->loop, &conn->event);
46
47- if (type != MK_EP_SOCKET_DONE) {
48+ if (type != MK_EP_SOCKET_DONE && conn->protocol->cb_close) {
49 conn->protocol->cb_close(conn, sched, type, server);
50 }
51 /*
diff --git a/meta-webserver/recipes-httpd/monkey/files/0003-server-parser-harden-boundary-checks.patch b/meta-webserver/recipes-httpd/monkey/files/0003-server-parser-harden-boundary-checks.patch
new file mode 100644
index 0000000000..1e56893c65
--- /dev/null
+++ b/meta-webserver/recipes-httpd/monkey/files/0003-server-parser-harden-boundary-checks.patch
@@ -0,0 +1,108 @@
1From b9f24a2968fa62de4a6ecf070fa0389ce10e7729 Mon Sep 17 00:00:00 2001
2From: Eduardo Silva <eduardo@chronosphere.io>
3Date: Thu, 9 Apr 2026 12:11:57 -0600
4Subject: [PATCH] server: parser: harden boundary checks
5
6Tighten parser and helper validation around explicit lengths and
7buffer boundaries.
8
9Require exact header literal matches, validate chunk length tokens,
10and guard helper routines that previously trusted inconsistent
11pointer or length state.
12
13Verified by rebuilding with cmake --build build and replaying the
14reported malformed request fixtures against build/bin/monkey.
15
16Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
17
18This patch is part of https://github.com/monkey/monkey/pull/434,
19containing assorted CVE fixes.
20
21Upstream-Status: Backport [https://github.com/monkey/monkey/commit/ffe0d0ed1b074ea6f3965c37bb754e9f19130a82]
22Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
23---
24 include/monkey/mk_http_parser.h | 6 +++++-
25 mk_server/mk_http_parser.c | 13 +++++++++++++
26 mk_server/mk_mimetype.c | 7 ++++++-
27 mk_server/mk_user.c | 2 +-
28 4 files changed, 25 insertions(+), 3 deletions(-)
29
30diff --git a/include/monkey/mk_http_parser.h b/include/monkey/mk_http_parser.h
31index 9e3b365e..465ea0e4 100644
32--- a/include/monkey/mk_http_parser.h
33+++ b/include/monkey/mk_http_parser.h
34@@ -389,7 +389,11 @@ int mk_http_parser_chunked_decode_buf(struct mk_http_parser *p,
35
36 static inline int mk_http_parser_more(struct mk_http_parser *p, int len)
37 {
38- if (abs(len - p->i) - 1 > 0) {
39+ if (len <= 0 || p->i < 0) {
40+ return MK_FALSE;
41+ }
42+
43+ if ((p->i + 1) < len) {
44 return MK_TRUE;
45 }
46
47diff --git a/mk_server/mk_http_parser.c b/mk_server/mk_http_parser.c
48index 9413528a..3c831f29 100644
49--- a/mk_server/mk_http_parser.c
50+++ b/mk_server/mk_http_parser.c
51@@ -173,6 +173,16 @@ static inline void request_set(mk_ptr_t *ptr, struct mk_http_parser *p, char *bu
52 static inline int header_cmp(const char *expected, char *value, int len)
53 {
54 int i = 0;
55+ size_t expected_len;
56+
57+ if (len < 0) {
58+ return -1;
59+ }
60+
61+ expected_len = strlen(expected);
62+ if ((size_t) len != expected_len) {
63+ return -1;
64+ }
65
66 if (len >= 8) {
67 if (expected[0] != tolower(value[0])) return -1;
68@@ -535,6 +545,9 @@ parse_more:
69 (errno != 0)) {
70 return MK_HTTP_PARSER_ERROR;
71 }
72+ if (ptr == tmp || *ptr != '\0') {
73+ return MK_HTTP_PARSER_ERROR;
74+ }
75
76 if (chunk_len < 0) {
77 return MK_HTTP_PARSER_ERROR;
78diff --git a/mk_server/mk_mimetype.c b/mk_server/mk_mimetype.c
79index b86b4ef1..5462ea5c 100644
80--- a/mk_server/mk_mimetype.c
81+++ b/mk_server/mk_mimetype.c
82@@ -197,7 +197,12 @@ struct mk_mimetype *mk_mimetype_find(struct mk_server *server, mk_ptr_t *filenam
83 {
84 int j, len;
85
86- j = len = filename->len;
87+ if (!filename->data || filename->len <= 0) {
88+ return NULL;
89+ }
90+
91+ len = filename->len;
92+ j = len - 1;
93
94 /* looking for extension */
95 while (j >= 0 && filename->data[j] != '.') {
96diff --git a/mk_server/mk_user.c b/mk_server/mk_user.c
97index 7200ff08..716331ac 100644
98--- a/mk_server/mk_user.c
99+++ b/mk_server/mk_user.c
100@@ -46,7 +46,7 @@ int mk_user_init(struct mk_http_session *cs, struct mk_http_request *sr,
101 }
102
103 limit = mk_string_char_search(sr->uri_processed.data + offset, '/',
104- sr->uri_processed.len);
105+ sr->uri_processed.len - offset);
106
107 if (limit == -1) {
108 limit = (sr->uri_processed.len) - offset;
diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.8.4.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.8.7.bb
index 126a2a6fa5..a9bea8f767 100644
--- a/meta-webserver/recipes-httpd/monkey/monkey_1.8.4.bb
+++ b/meta-webserver/recipes-httpd/monkey/monkey_1.8.7.bb
@@ -7,13 +7,17 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
7 7
8SECTION = "net" 8SECTION = "net"
9 9
10SRC_URI = "git://github.com/monkey/monkey;branch=master;protocol=https \ 10SRC_URI = "git://github.com/monkey/monkey;branch=master;protocol=https;tag=v${PV} \
11 file://0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch \ 11 file://0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch \
12 file://0001-include-Fix-location-of-mk_core.h-etal.patch \ 12 file://0001-include-Fix-location-of-mk_core.h-etal.patch \
13 file://monkey.service \ 13 file://monkey.service \
14 file://monkey.init" 14 file://monkey.init \
15 file://0001-server-http-fix-malformed-request-crash-paths.patch \
16 file://0002-server-scheduler-guard-protocol-close-callback.patch \
17 file://0003-server-parser-harden-boundary-checks.patch \
18 "
15 19
16SRCREV = "94af273244369e1a8426d0d1f6376475aff90db9" 20SRCREV = "0fd3bbd657c6d6339315709ef068493c572b973c"
17 21
18UPSTREAM_CHECK_COMMITS = "1" 22UPSTREAM_CHECK_COMMITS = "1"
19 23
@@ -51,6 +55,10 @@ do_install:append() {
51 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 55 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
52 install -Dm 644 ${UNPACKDIR}/monkey.service ${D}/${systemd_unitdir}/system/monkey.service 56 install -Dm 644 ${UNPACKDIR}/monkey.service ${D}/${systemd_unitdir}/system/monkey.service
53 fi 57 fi
58
59 # QA Issue: monkey installs files in /var/volatile, but it is expected to be empty [empty-dirs]
60 # these folders are supposed to be recreated at runtime
61 find ${D}/var -type d -empty -delete
54} 62}
55 63
56INITSCRIPT_NAME = "monkey" 64INITSCRIPT_NAME = "monkey"
diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
index 9459670344..33543071ba 100644
--- a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
+++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
@@ -19,6 +19,8 @@ UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
19 19
20inherit autotools update-rc.d systemd update-alternatives 20inherit autotools update-rc.d systemd update-alternatives
21 21
22CACHED_CONFIGUREVARS += "ac_cv_prog_cc_c23=no"
23
22ALTERNATIVE_PRIORITY = "100" 24ALTERNATIVE_PRIORITY = "100"
23ALTERNATIVE:${PN}-doc = "htpasswd.1" 25ALTERNATIVE:${PN}-doc = "htpasswd.1"
24ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" 26ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
diff --git a/meta-webserver/recipes-webadmin/webmin/webmin_2.621.bb b/meta-webserver/recipes-webadmin/webmin/webmin_2.630.bb
index bb5ac1c755..6a627e1f0e 100644
--- a/meta-webserver/recipes-webadmin/webmin/webmin_2.621.bb
+++ b/meta-webserver/recipes-webadmin/webmin/webmin_2.630.bb
@@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \
19 file://mysql-config-fix.patch \ 19 file://mysql-config-fix.patch \
20 file://webmin.service \ 20 file://webmin.service \
21 " 21 "
22SRC_URI[sha256sum] = "88381e8bcdd4733b215c114ca2158dc044892ea68dc0da4d235d88d2b1db4bb8" 22SRC_URI[sha256sum] = "47e25daeefeb98598f4b3f3d99e5093fe618b96eb1b952e938ba6356806be20c"
23UPSTREAM_CHECK_URI = "http://www.webmin.com/download.html" 23UPSTREAM_CHECK_URI = "http://www.webmin.com/download.html"
24UPSTREAM_CHECK_REGEX = "webmin-(?P<pver>\d+(\.\d+)+).tar.gz" 24UPSTREAM_CHECK_REGEX = "webmin-(?P<pver>\d+(\.\d+)+).tar.gz"
25 25
diff --git a/meta-xfce/classes/thunar-plugin.bbclass b/meta-xfce/classes/thunar-plugin.bbclass
index 82a1be6347..f38996d26e 100644
--- a/meta-xfce/classes/thunar-plugin.bbclass
+++ b/meta-xfce/classes/thunar-plugin.bbclass
@@ -1,6 +1,4 @@
1inherit xfce features_check 1inherit xfce
2
3REQUIRED_DISTRO_FEATURES = "x11"
4 2
5DEPENDS += "thunar" 3DEPENDS += "thunar"
6 4
diff --git a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.20.2.bb b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.20.2.bb
index 2033eb082f..b95bfc170c 100644
--- a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.20.2.bb
+++ b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.20.2.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10XFCE_COMPRESS_TYPE = "xz" 10XFCE_COMPRESS_TYPE = "xz"
11XFCEBASEBUILDCLASS = "meson" 11XFCEBASEBUILDCLASS = "meson"
12 12
13DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3" 13DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3 libpam systemd"
14 14
15inherit xfce-app 15inherit xfce-app
16 16
diff --git a/meta-xfce/recipes-multimedia/parole/files/0001-Makefile.am-fix-compile-failure.patch b/meta-xfce/recipes-multimedia/parole/files/0001-Makefile.am-fix-compile-failure.patch
new file mode 100644
index 0000000000..f84f6e5388
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/parole/files/0001-Makefile.am-fix-compile-failure.patch
@@ -0,0 +1,31 @@
1From 34ff86795396c320a9e19641d9d226190b7fdfc6 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Sun, 12 Apr 2026 19:30:23 +0800
4Subject: [PATCH] Makefile.am: fix compile failure
5
6Fix build failure:
7/build/tmp/work/x86-64-v3-poky-linux/parole/4.18.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-ld: parole-conf.o: undefined reference to symbol 'xfce_rc_close'
8/build/tmp/work/x86-64-v3-poky-linux/parole/4.18.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-ld: /build/tmp/work/x86-64-v3-poky-linux/parole/4.18.2/recipe-sysroot/usr/lib/libxfce4util.so.7: error adding symbols: DSO missing from command line
9
10Upstream-Status: Submitted [https://gitlab.xfce.org/apps/parole/-/issues/146]
11
12Signed-off-by: Changqing Li <changqing.li@windriver.com>
13---
14 src/Makefile.am | 1 +
15 1 file changed, 1 insertion(+)
16
17diff --git a/src/Makefile.am b/src/Makefile.am
18index 920b708..244c14c 100644
19--- a/src/Makefile.am
20+++ b/src/Makefile.am
21@@ -90,6 +90,7 @@ parole_LDADD = \
22 $(GMODULE_LIBS) \
23 $(DBUS_GLIB_LIBS) \
24 $(LIBXFCE4UI_LIBS) \
25+ $(LIBXFCE4UTIL_LIBS) \
26 $(XFCONF_LIBS) \
27 $(GST_VIDEO_LIBS) \
28 $(TAGLIBC_LIBS) \
29--
302.34.1
31
diff --git a/meta-xfce/recipes-multimedia/parole/parole_4.18.2.bb b/meta-xfce/recipes-multimedia/parole/parole_4.18.2.bb
index 7787196fdd..1d2c858a2d 100644
--- a/meta-xfce/recipes-multimedia/parole/parole_4.18.2.bb
+++ b/meta-xfce/recipes-multimedia/parole/parole_4.18.2.bb
@@ -11,11 +11,12 @@ DEPENDS += " \
11 libxfce4util \ 11 libxfce4util \
12 libxfce4ui \ 12 libxfce4ui \
13 xfconf \ 13 xfconf \
14 \
15 gstreamer1.0-plugins-base \ 14 gstreamer1.0-plugins-base \
16 taglib \ 15 taglib \
17" 16"
18 17
18SRC_URI += "file://0001-Makefile.am-fix-compile-failure.patch"
19
19SRC_URI[sha256sum] = "6625288b760d38a15c295051ecf66c556fcad21dd1516d6d661c2a582421ee0e" 20SRC_URI[sha256sum] = "6625288b760d38a15c295051ecf66c556fcad21dd1516d6d661c2a582421ee0e"
20 21
21RDEPENDS:${PN} += "gstreamer1.0-plugins-good" 22RDEPENDS:${PN} += "gstreamer1.0-plugins-good"
diff --git a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.5.1.bb b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.5.1.bb
index 4f823c67b5..2fa76351a4 100644
--- a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.5.1.bb
+++ b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.5.1.bb
@@ -7,7 +7,7 @@ XFCE_COMPRESS_TYPE = "xz"
7 7
8inherit xfce-panel-plugin features_check 8inherit xfce-panel-plugin features_check
9 9
10REQUIRED_DISTRO_FEATURES = "pulseaudio ${@bb.utils.contains_any('DISTRO_FEATURES', 'opengl vulkan', 'x11', '', d)}" 10REQUIRED_DISTRO_FEATURES = "pulseaudio"
11 11
12DEPENDS += "dbus-glib pulseaudio" 12DEPENDS += "dbus-glib pulseaudio"
13 13
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.21.7.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.21.7.bb
index e672eae540..9c86da48e6 100644
--- a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.21.7.bb
+++ b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.21.7.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://docs.xfce.org/xfce/libxfce4ui/start"
3SECTION = "x11/libs" 3SECTION = "x11/libs"
4LICENSE = "LGPL-2.0-or-later" 4LICENSE = "LGPL-2.0-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=4cf66a4984120007c9881cc871cf49db" 5LIC_FILES_CHKSUM = "file://COPYING;md5=4cf66a4984120007c9881cc871cf49db"
6DEPENDS = "intltool-native perl-native gtk+3 libxfce4util xfce4-dev-tools xfconf" 6DEPENDS = "intltool-native perl-native gtk+3 libxfce4util xfce4-dev-tools xfconf gdk-pixbuf"
7 7
8XFCE_COMPRESS_TYPE = "xz" 8XFCE_COMPRESS_TYPE = "xz"
9XFCEBASEBUILDCLASS = "meson" 9XFCEBASEBUILDCLASS = "meson"
@@ -26,7 +26,6 @@ SRC_URI[sha256sum] = "a72a7af39cf183819bcfb61b1747d425261e966ccb172b2fc28f1494f5
26 26
27EXTRA_OEMESON = "-Dvala=disabled -Dvendor-info=${DISTRO}" 27EXTRA_OEMESON = "-Dvala=disabled -Dvendor-info=${DISTRO}"
28 28
29PACKAGECONFIG ??= " \ 29PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
30 ${@bb.utils.contains('DISTRO_FEATURES', 'x11','x11', "", d)} \ 30PACKAGECONFIG[x11] = "-Dsession-management=enabled -Dstartup-notification=enabled,-Dsession-management=disabled -Dstartup-notification=disabled,libepoxy libice libsm startup-notification"
31" 31PACKAGECONFIG[wayland] = "-Dwayland=enabled, -Dwayland=disabled,"
32PACKAGECONFIG[x11] = "-Dstartup-notification=enabled,-Dstartup-notification=disabled,libepoxy libice libsm startup-notification"
diff --git a/meta-xfce/recipes-xfce/thunar/files/0001-Properly-guard-gdkx.h-include.patch b/meta-xfce/recipes-xfce/thunar/files/0001-Properly-guard-gdkx.h-include.patch
new file mode 100644
index 0000000000..9d4afc7167
--- /dev/null
+++ b/meta-xfce/recipes-xfce/thunar/files/0001-Properly-guard-gdkx.h-include.patch
@@ -0,0 +1,37 @@
1From dd7fbf4540891053a4083228aac2485e6c469199 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
3Date: Sat, 11 Apr 2026 18:07:05 +0200
4Subject: [PATCH] Properly guard gdkx.h include
5
6Fixes: #1820
7
8Upstream-Status: Backport [https://gitlab.xfce.org/xfce/thunar/-/commit/201f8ca0c3bc7b5e651201526fc3006a130718eb]
9
10Signed-off-by: Changqing Li <changqing.li@windriver.com>
11---
12 thunar/thunar-session-client.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/thunar/thunar-session-client.c b/thunar/thunar-session-client.c
16index c36719c..2832818 100644
17--- a/thunar/thunar-session-client.c
18+++ b/thunar/thunar-session-client.c
19@@ -30,6 +30,7 @@
20
21 #ifdef ENABLE_LIBSM
22 #include <X11/SM/SMlib.h>
23+#include <gdk/gdkx.h>
24 #endif
25
26 #include "thunar/thunar-application.h"
27@@ -38,7 +39,6 @@
28 #include "thunar/thunar-private.h"
29 #include "thunar/thunar-session-client.h"
30
31-#include <gdk/gdkx.h>
32 #include <glib/gstdio.h>
33
34
35--
362.34.1
37
diff --git a/meta-xfce/recipes-xfce/thunar/thunar_4.21.5.bb b/meta-xfce/recipes-xfce/thunar/thunar_4.21.5.bb
index 32d4c39aa5..d8e9edfc25 100644
--- a/meta-xfce/recipes-xfce/thunar/thunar_4.21.5.bb
+++ b/meta-xfce/recipes-xfce/thunar/thunar_4.21.5.bb
@@ -9,15 +9,15 @@ XFCE_COMPRESS_TYPE = "xz"
9XFCEBASEBUILDCLASS = "meson" 9XFCEBASEBUILDCLASS = "meson"
10GTKDOC_MESON_OPTION = "gtk-doc" 10GTKDOC_MESON_OPTION = "gtk-doc"
11 11
12inherit xfce gobject-introspection features_check mime-xdg perlnative gtk-doc 12inherit xfce gobject-introspection mime-xdg perlnative gtk-doc
13
14REQUIRED_DISTRO_FEATURES = "x11"
15 13
16SRC_URI[sha256sum] = "eddbd4bab29c73718734e0bfcf650ceea8b4fcc8cb2cbb0b24fe22b286a2be00" 14SRC_URI[sha256sum] = "eddbd4bab29c73718734e0bfcf650ceea8b4fcc8cb2cbb0b24fe22b286a2be00"
17 15
16SRC_URI += "file://0001-Properly-guard-gdkx.h-include.patch"
17
18PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" 18PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
19PACKAGECONFIG[pcre] = "-Dpcre2=enabled,-Dpcre2=disabled,libpcre2" 19PACKAGECONFIG[pcre] = "-Dpcre2=enabled,-Dpcre2=disabled,libpcre2"
20PACKAGECONFIG[x11] = "-Dx11=enabled -Dsession-management=enabled,-Dx11=disabled,libsm startup-notification" 20PACKAGECONFIG[x11] = "-Dx11=enabled -Dsession-management=enabled,-Dx11=disabled,libsm startup-notification virtual/libx11"
21 21
22FILES:${PN} += " \ 22FILES:${PN} += " \
23 ${libdir}/thunarx-3/* \ 23 ${libdir}/thunarx-3/* \
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb
index b3cf4b2559..00c9352dec 100644
--- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb
+++ b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.21.1.bb
@@ -3,9 +3,7 @@ HOMEPAGE = "https://docs.xfce.org/xfce/xfce4-panel/start"
3SECTION = "x11" 3SECTION = "x11"
4LICENSE = "GPL-2.0-or-later" 4LICENSE = "GPL-2.0-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee" 5LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
6DEPENDS = "garcon exo gtk+3 cairo virtual/libx11 libxfce4windowing libxml2 \ 6DEPENDS = "garcon exo cairo libxml2 vala-native gtk+3 libxfce4windowing"
7 libwnck3 vala-native \
8 "
9 7
10XFCE_COMPRESS_TYPE = "xz" 8XFCE_COMPRESS_TYPE = "xz"
11XFCEBASEBUILDCLASS = "meson" 9XFCEBASEBUILDCLASS = "meson"
@@ -13,8 +11,6 @@ GTKDOC_MESON_OPTION = "gtk-doc"
13 11
14inherit xfce gtk-doc gobject-introspection features_check mime-xdg 12inherit xfce gtk-doc gobject-introspection features_check mime-xdg
15 13
16REQUIRED_DISTRO_FEATURES = "x11"
17
18SRC_URI += " \ 14SRC_URI += " \
19 file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ 15 file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
20 file://0002-use-lxdm-to-replace-dm-tool.patch \ 16 file://0002-use-lxdm-to-replace-dm-tool.patch \
@@ -24,6 +20,12 @@ SRC_URI[sha256sum] = "c940dae515bef4af08a126011d2fd873ce99e815157ba8cef5332195bb
24 20
25EXTRA_OEMESON += "-Dvala=disabled" 21EXTRA_OEMESON += "-Dvala=disabled"
26 22
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24
25PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
26PACKAGECONFIG[x11] = "-Dx11=enabled, -Dx11=disabled, virtual/libx11 libwnck3 libxext"
27PACKAGECONFIG[wayland] = "-Dwayland=enabled, -Dwayland=disabled, wayland wayland-native wayland-protocols"
28
27python populate_packages:prepend() { 29python populate_packages:prepend() {
28 plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/') 30 plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/')
29 plugin_name = d.expand('${PN}-plugin-%s') 31 plugin_name = d.expand('${PN}-plugin-%s')
diff --git a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.20.1.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.20.1.bb
index d16a9e6446..5cd0213951 100644
--- a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.20.1.bb
+++ b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.20.1.bb
@@ -13,6 +13,7 @@ DEPENDS = " \
13 libxfce4ui \ 13 libxfce4ui \
14 libxfce4util \ 14 libxfce4util \
15 libxfce4windowing \ 15 libxfce4windowing \
16 libyaml \
16 thunar \ 17 thunar \
17 xfconf \ 18 xfconf \
18" 19"