summaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/conf/include/ptest-packagelists-meta-oe.inc5
-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/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/images/meta-oe-image-ptest.bb1
-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/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.bb12
-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/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/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/libspdm/libspdm_3.8.2.bb2
-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.bb1
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin_2.14.14.bb1
-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
-rwxr-xr-xmeta-oe/recipes-support/tbb/files/run-ptest3
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2022.3.0.bb19
-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
218 files changed, 5253 insertions, 6323 deletions
diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index ca800f12fa..528ce16191 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,11 +74,13 @@ 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 \
79 re2 \ 81 re2 \
80 rocksdb \ 82 rocksdb \
83 tbb \
81" 84"
82PTESTS_SLOW_META_OE:append:x86 = " kernel-selftest" 85PTESTS_SLOW_META_OE:append:x86 = " kernel-selftest"
83PTESTS_SLOW_META_OE:append:x86-64 = " kernel-selftest" 86PTESTS_SLOW_META_OE:append:x86-64 = " kernel-selftest"
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/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/images/meta-oe-image-ptest.bb b/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
index 6361562de4..c9aa334d39 100644
--- a/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
+++ b/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
@@ -28,6 +28,7 @@ IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-poco = "1024288"
28QB_MEM = "-m 1024" 28QB_MEM = "-m 1024"
29# If a particular ptest needs more memory, it can be customized: 29# If a particular ptest needs more memory, it can be customized:
30#QB_MEM:virtclass-mcextend-<pn> = "-m 4096" 30#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
31QB_MEM:virtclass-mcextend-tbb = "-m 2048"
31 32
32TEST_SUITES = "ping ssh parselogs ptest" 33TEST_SUITES = "ping ssh parselogs ptest"
33 34
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/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 3644bd9bf4..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,8 +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 file://0001-libgphoto2-fix-const-correctness-for-c23-builds.patch \ 15 file://0001-libgphoto2-fix-const-correctness-for-c23-builds.patch \
16" 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 "
17SRC_URI[libgphoto2.sha256sum] = "28825f767a85544cb58f6e15028f8e53a5bb37a62148b3f1708b524781c3bef2" 25SRC_URI[libgphoto2.sha256sum] = "28825f767a85544cb58f6e15028f8e53a5bb37a62148b3f1708b524781c3bef2"
18 26
19UPSTREAM_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/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/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/libspdm/libspdm_3.8.2.bb b/meta-oe/recipes-support/libspdm/libspdm_3.8.2.bb
index 04f1ffc1fc..7d227d4148 100644
--- a/meta-oe/recipes-support/libspdm/libspdm_3.8.2.bb
+++ b/meta-oe/recipes-support/libspdm/libspdm_3.8.2.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=8f9b59a81a88da8e812af43728b72dd7"
10DEPENDS = "openssl" 10DEPENDS = "openssl"
11 11
12SRC_URI = "git://github.com/DMTF/libspdm.git;branch=release-3.8;protocol=https;tag=${PV}" 12SRC_URI = "git://github.com/DMTF/libspdm.git;branch=release-3.8;protocol=https;tag=${PV}"
13SRCREV = "5cf0acb87b2f36f8d70a89e5da8476d85db59f46" 13SRCREV = "f55cf6d48ec69b4ac60a63903e9c6a2cb0fd155d"
14 14
15inherit cmake 15inherit cmake
16 16
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.27.1.bb b/meta-oe/recipes-support/opensc/opensc_0.27.1.bb
index 91e738e0a0..d659fd1bee 100644
--- a/meta-oe/recipes-support/opensc/opensc_0.27.1.bb
+++ b/meta-oe/recipes-support/opensc/opensc_0.27.1.bb
@@ -36,6 +36,7 @@ PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
36FILES:${PN} += "\ 36FILES:${PN} += "\
37 ${libdir}/opensc-pkcs11.so \ 37 ${libdir}/opensc-pkcs11.so \
38 ${libdir}/pkcs11-spy.so \ 38 ${libdir}/pkcs11-spy.so \
39 ${datadir}/p11-kit/modules/opensc.module \
39" 40"
40FILES:${PN}-dev += "\ 41FILES:${PN}-dev += "\
41 ${libdir}/onepin-opensc-pkcs11.so \ 42 ${libdir}/onepin-opensc-pkcs11.so \
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/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/files/run-ptest b/meta-oe/recipes-support/tbb/files/run-ptest
new file mode 100755
index 0000000000..da46c68550
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/files/run-ptest
@@ -0,0 +1,3 @@
1#!/bin/sh
2
3ctest | 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-support/tbb/tbb_2022.3.0.bb b/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
index 01115e7e4d..187c2061e5 100644
--- a/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
+++ b/meta-oe/recipes-support/tbb/tbb_2022.3.0.bb
@@ -15,19 +15,23 @@ PE = "1"
15BRANCH = "onetbb_2022" 15BRANCH = "onetbb_2022"
16SRCREV = "f1862f38f83568d96e814e469ab61f88336cc595" 16SRCREV = "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 file://run-ptest \
18 " 19 "
19 20
21LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}"
20 22
21inherit cmake pkgconfig 23inherit cmake pkgconfig ptest
22 24
23# test build fails, error: 'mallinfo mallinfo()' is deprecated 25# test build fails, error: 'mallinfo mallinfo()' is deprecated
24EXTRA_OECMAKE += " \ 26EXTRA_OECMAKE += " \
25 -DTBB_TEST=OFF \ 27 -DTBB_TEST=${@bb.utils.contains('PTEST_ENABLED', '1', 'ON', 'OFF', d)} \
26 -DCMAKE_BUILD_TYPE=Release \ 28 -DCMAKE_BUILD_TYPE=Release \
27 -DTBB_STRICT=OFF \ 29 -DTBB_STRICT=OFF \
28 -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=OFF \ 30 -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=OFF \
29 " 31 "
30 32
33RDEPENDS:${PN}-ptest += "cmake"
34
31# Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension (ignoring target-abi) 35# Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension (ignoring target-abi)
32# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: /tmp/lto-llvm-264bc2.o: can't link soft-float modules with double-float modules 36# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: /tmp/lto-llvm-264bc2.o: can't link soft-float modules with double-float modules
33# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: failed to merge target specific data of file /tmp/lto-llvm-264bc2.o 37# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: failed to merge target specific data of file /tmp/lto-llvm-264bc2.o
@@ -59,5 +63,16 @@ do_install:append:class-target() {
59 sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/TBB/TBBTargets.cmake 63 sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/TBB/TBBTargets.cmake
60} 64}
61 65
66do_install_ptest() {
67 install -d ${D}${PTEST_PATH}
68 install ${B}/test/CTestTestfile.cmake ${D}${PTEST_PATH}/
69 cp -rf ${B}/gnu* ${D}${PTEST_PATH}
70 rm -rf ${D}${PTEST_PATH}/gnu*/libtbb*
71 rm -rf ${D}${PTEST_PATH}/gnu*/*.sh
72 sed -i -e s#${S}#${PTEST_PATH}#g \
73 -e s#${B}#${PTEST_PATH}#g \
74 ${D}${PTEST_PATH}/CTestTestfile.cmake
75}
76
62 77
63BBCLASSEXTEND = "native nativesdk" 78BBCLASSEXTEND = "native nativesdk"
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