summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/base-files/base-files/0001-add-nss-resolve-to-nsswitch.patch31
-rw-r--r--meta/recipes-core/base-files/base-files/nsswitch-resolved.conf20
-rw-r--r--meta/recipes-core/base-files/base-files/nsswitch.conf1
-rw-r--r--meta/recipes-core/base-files/base-files/profile4
-rw-r--r--meta/recipes-core/base-files/base-files_3.0.14.bb58
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0001-Add-a-shutdown-group.patch6
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch4
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch4
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0003-Remove-for-root-since-we-do-not-have-an-etc-shadow.patch4
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0004-Add-an-input-group-for-the-dev-input-devices.patch4
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0005-Add-kvm-group.patch6
-rw-r--r--meta/recipes-core/base-passwd/base-passwd/0007-Add-wheel-group.patch18
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.6.7.bb (renamed from meta/recipes-core/base-passwd/base-passwd_3.6.3.bb)4
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.37.0.bb (renamed from meta/recipes-core/busybox/busybox-inittab_1.36.1.bb)5
-rw-r--r--meta/recipes-core/busybox/busybox.inc64
-rw-r--r--meta/recipes-core/busybox/busybox/0001-archival-disallow-path-traversals-CVE-2023-39810.patch141
-rw-r--r--meta/recipes-core/busybox/busybox/0001-cut-Fix-s-flag-to-omit-blank-lines.patch66
-rw-r--r--meta/recipes-core/busybox/busybox/0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch52
-rw-r--r--meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch2
-rw-r--r--meta/recipes-core/busybox/busybox/0001-syslogd-fix-wrong-OPT_locallog-flag-detection.patch33
-rw-r--r--meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch2
-rw-r--r--meta/recipes-core/busybox/busybox/0002-start-stop-daemon-fix-tests.patch65
-rw-r--r--meta/recipes-core/busybox/busybox/0003-start-stop-false.patch (renamed from meta/recipes-core/busybox/busybox/start-stop-false.patch)13
-rw-r--r--meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch61
-rw-r--r--meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch87
-rw-r--r--meta/recipes-core/busybox/busybox/defconfig145
-rw-r--r--meta/recipes-core/busybox/busybox/getopts.cfg2
-rw-r--r--meta/recipes-core/busybox/busybox/login-utilities.cfg3
-rw-r--r--meta/recipes-core/busybox/busybox/longopts.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/mdev.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/mount-via-label.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/sha1sum.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/sha256sum.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/sha_accel.cfg4
-rw-r--r--meta/recipes-core/busybox/busybox_1.37.0.bb (renamed from meta/recipes-core/busybox/busybox_1.36.1.bb)16
-rw-r--r--meta/recipes-core/coreutils/coreutils/0001-local.mk-fix-cross-compiling-problem.patch26
-rw-r--r--meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch112
-rw-r--r--meta/recipes-core/coreutils/coreutils_9.7.bb (renamed from meta/recipes-core/coreutils/coreutils_9.5.bb)37
-rw-r--r--meta/recipes-core/dbus-wait/dbus-wait_git.bb2
-rw-r--r--meta/recipes-core/dbus/dbus-glib/no-examples.patch16
-rw-r--r--meta/recipes-core/dbus/dbus-glib/test-install-makefile.patch17
-rw-r--r--meta/recipes-core/dbus/dbus-glib_0.114.bb (renamed from meta/recipes-core/dbus/dbus-glib_0.112.bb)17
-rw-r--r--meta/recipes-core/dbus/dbus/tmpdir.patch44
-rw-r--r--meta/recipes-core/dbus/dbus_1.16.2.bb (renamed from meta/recipes-core/dbus/dbus_1.14.10.bb)80
-rw-r--r--meta/recipes-core/dropbear/dropbear/0001-Fix-proxycmd-without-netcat.patch74
-rw-r--r--meta/recipes-core/dropbear/dropbear/0001-urandom-xauth-changes-to-options.h.patch20
-rw-r--r--meta/recipes-core/dropbear/dropbear/0005-dropbear-enable-pam.patch21
-rw-r--r--meta/recipes-core/dropbear/dropbear/0006-dropbear-configuration-file.patch17
-rw-r--r--meta/recipes-core/dropbear/dropbear/CVE-2023-36328.patch144
-rw-r--r--meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch31
-rw-r--r--meta/recipes-core/dropbear/dropbear/dropbearkey.service2
-rw-r--r--meta/recipes-core/dropbear/dropbear_2025.88.bb (renamed from meta/recipes-core/dropbear/dropbear_2022.83.bb)27
-rw-r--r--meta/recipes-core/ell/ell_0.76.bb (renamed from meta/recipes-core/ell/ell_0.64.bb)6
-rw-r--r--meta/recipes-core/expat/expat_2.7.1.bb (renamed from meta/recipes-core/expat/expat_2.6.2.bb)4
-rw-r--r--meta/recipes-core/fts/fts_1.2.7.bb2
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb (renamed from meta/recipes-core/gettext/gettext-minimal-native_0.22.5.bb)6
-rw-r--r--meta/recipes-core/gettext/gettext-sources.inc2
-rw-r--r--meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch8
-rw-r--r--meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch8
-rw-r--r--meta/recipes-core/gettext/gettext/parallel.patch31
-rw-r--r--meta/recipes-core/gettext/gettext/serial-tests-config.patch8
-rw-r--r--meta/recipes-core/gettext/gettext/use-pkgconfig.patch16
-rw-r--r--meta/recipes-core/gettext/gettext_0.23.1.bb (renamed from meta/recipes-core/gettext/gettext_0.22.5.bb)17
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch)35
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch)2
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch)6
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch)4
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch)6
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch)6
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch)6
-rw-r--r--meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch)14
-rw-r--r--meta/recipes-core/glib-2.0/files/meson.cross.d/common (renamed from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common)0
-rw-r--r--meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc (renamed from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc)0
-rw-r--r--meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux (renamed from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux)0
-rw-r--r--meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw (renamed from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw)0
-rw-r--r--meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl (renamed from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl)0
-rw-r--r--meta/recipes-core/glib-2.0/files/relocate-modules.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch)8
-rw-r--r--meta/recipes-core/glib-2.0/files/run-ptest (renamed from meta/recipes-core/glib-2.0/glib-2.0/run-ptest)0
-rw-r--r--meta/recipes-core/glib-2.0/files/skip-timeout.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch)7
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0-initial_2.84.2.bb6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch80
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch34
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch54
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch361
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb57
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.84.2.bb2
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc84
-rw-r--r--meta/recipes-core/glib-networking/glib-networking/eagain.patch4
-rw-r--r--meta/recipes-core/glib-networking/glib-networking_2.80.0.bb (renamed from meta/recipes-core/glib-networking/glib-networking_2.78.1.bb)6
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.41.bb (renamed from meta/recipes-core/glibc/cross-localedef-native_2.39.bb)6
-rw-r--r--meta/recipes-core/glibc/glibc-common.inc8
-rw-r--r--meta/recipes-core/glibc/glibc-locale.inc2
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.41.bb (renamed from meta/recipes-core/glibc/glibc-locale_2.39.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-mtrace_2.41.bb (renamed from meta/recipes-core/glibc/glibc-mtrace_2.39.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc19
-rw-r--r--meta/recipes-core/glibc/glibc-scripts_2.41.bb (renamed from meta/recipes-core/glibc/glibc-scripts_2.39.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-testsuite_2.41.bb (renamed from meta/recipes-core/glibc/glibc-testsuite_2.39.bb)4
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc8
-rw-r--r--meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb119
-rw-r--r--meta/recipes-core/glibc/glibc.inc2
-rw-r--r--meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch24
-rw-r--r--meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0001-stdlib-Add-single-threaded-fast-path-to-rand.patch47
-rw-r--r--meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch30
-rw-r--r--meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch24
-rw-r--r--meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch10
-rw-r--r--meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch122
-rw-r--r--meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch24
-rw-r--r--meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0015-powerpc-Do-not-ask-compiler-for-finding-arch.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0016-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch44
-rw-r--r--meta/recipes-core/glibc/glibc/0017-Replace-echo-with-printf-builtin-in-nscd-init-script.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0018-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0019-timezone-Make-shell-interpreter-overridable-in-tzsel.patch8
-rw-r--r--meta/recipes-core/glibc/glibc/0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch4
-rw-r--r--meta/recipes-core/glibc/glibc/0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch62
-rw-r--r--meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch (renamed from meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch)33
-rwxr-xr-xmeta/recipes-core/glibc/glibc/run-ptest37
-rw-r--r--meta/recipes-core/glibc/glibc_2.41.bb (renamed from meta/recipes-core/glibc/glibc_2.39.bb)22
-rw-r--r--meta/recipes-core/glibc/ldconfig-native_2.12.1.bb3
-rw-r--r--meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch3
-rw-r--r--meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch7
-rw-r--r--meta/recipes-core/ifupdown/files/0001-ifupdown-skip-wrong-test-case.patch3
-rw-r--r--meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch5
-rw-r--r--meta/recipes-core/ifupdown/files/tweak-ptest-script.patch3
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.44.bb (renamed from meta/recipes-core/ifupdown/ifupdown_0.8.41.bb)9
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb21
-rw-r--r--meta/recipes-core/images/core-image-minimal-initramfs.bb2
-rw-r--r--meta/recipes-core/images/core-image-ptest.bb6
-rw-r--r--meta/recipes-core/images/core-image-tiny-initramfs.bb3
-rw-r--r--meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb10
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb5
-rwxr-xr-xmeta/recipes-core/initrdscripts/initramfs-framework/finish2
-rwxr-xr-xmeta/recipes-core/initrdscripts/initramfs-framework/init27
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/rootfs7
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb25
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb5
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb5
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb5
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb5
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb5
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb7
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb5
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.68.bb (renamed from meta/recipes-core/initscripts/init-system-helpers_1.66.bb)4
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/functions21
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb65
-rw-r--r--meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch73
-rw-r--r--meta/recipes-core/kbd/kbd_2.8.0.bb (renamed from meta/recipes-core/kbd/kbd_2.6.4.bb)14
-rw-r--r--meta/recipes-core/libcgroup/libcgroup_3.2.0.bb (renamed from meta/recipes-core/libcgroup/libcgroup_3.1.0.bb)5
-rw-r--r--meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch33
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.38.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb)3
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc9
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt_4.4.38.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt_4.4.36.bb)0
-rw-r--r--meta/recipes-core/libxml/libxml2/0001-Revert-cmake-Fix-installation-directories-in-libxml2.patch81
-rw-r--r--meta/recipes-core/libxml/libxml2/CVE-2025-6021.patch59
-rw-r--r--meta/recipes-core/libxml/libxml2/install-tests.patch8
-rwxr-xr-xmeta/recipes-core/libxml/libxml2/run-ptest2
-rw-r--r--meta/recipes-core/libxml/libxml2_2.14.3.bb (renamed from meta/recipes-core/libxml/libxml2_2.12.6.bb)14
-rw-r--r--meta/recipes-core/meta/build-sysroots.bb5
-rw-r--r--meta/recipes-core/meta/buildtools-docs-tarball.bb6
-rw-r--r--meta/recipes-core/meta/buildtools-tarball.bb48
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb404
-rw-r--r--meta/recipes-core/meta/cve-update-nvd2-native.bb44
-rw-r--r--meta/recipes-core/meta/meta-environment.bb2
-rw-r--r--meta/recipes-core/meta/meta-ide-support.bb1
-rw-r--r--meta/recipes-core/meta/meta-toolchain.bb1
-rw-r--r--meta/recipes-core/meta/meta-world-pkgdata.bb3
-rw-r--r--meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb6
-rw-r--r--meta/recipes-core/meta/signing-keys.bb1
-rw-r--r--meta/recipes-core/meta/uninative-tarball.bb3
-rw-r--r--meta/recipes-core/meta/wic-tools.bb2
-rw-r--r--meta/recipes-core/musl/bsd-headers.bb2
-rw-r--r--meta/recipes-core/musl/gcompat_git.bb2
-rw-r--r--meta/recipes-core/musl/libc-test_git.bb4
-rw-r--r--meta/recipes-core/musl/libssp-nonshared.bb6
-rw-r--r--meta/recipes-core/musl/libucontext_1.3.2.bb (renamed from meta/recipes-core/musl/libucontext_1.2.bb)10
-rw-r--r--meta/recipes-core/musl/musl-legacy-error.bb2
-rw-r--r--meta/recipes-core/musl/musl-locales_git.bb19
-rw-r--r--meta/recipes-core/musl/musl-obstack.bb2
-rw-r--r--meta/recipes-core/musl/musl-utils.bb2
-rw-r--r--meta/recipes-core/musl/musl.inc11
-rw-r--r--meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch12
-rw-r--r--meta/recipes-core/musl/musl/0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch70
-rw-r--r--meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch10
-rw-r--r--meta/recipes-core/musl/musl/0003-elf.h-add-typedefs-for-Elf64_Relr-and-Elf32_Relr.patch37
-rw-r--r--meta/recipes-core/musl/musl_git.bb16
-rw-r--r--meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch462
-rw-r--r--meta/recipes-core/ncurses/files/0001-Updating-reset-code-ncurses-6.4-patch-20231104.patch499
-rw-r--r--meta/recipes-core/ncurses/files/0001-tic-hang.patch11
-rw-r--r--meta/recipes-core/ncurses/files/0002-configure-reproducible.patch7
-rw-r--r--meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch5
-rw-r--r--meta/recipes-core/ncurses/files/exit_prototype.patch11
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc14
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.5.bb (renamed from meta/recipes-core/ncurses/ncurses_6.4.bb)7
-rw-r--r--meta/recipes-core/ncurses/site_config/headers5
-rw-r--r--meta/recipes-core/netbase/netbase_6.5.bb (renamed from meta/recipes-core/netbase/netbase_6.4.bb)4
-rw-r--r--meta/recipes-core/newlib/libgloss_git.bb9
-rw-r--r--meta/recipes-core/newlib/newlib.inc18
-rw-r--r--meta/recipes-core/os-release/os-release.bb4
-rw-r--r--meta/recipes-core/ovmf/ovmf-shell-image.bb2
-rw-r--r--meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch6
-rw-r--r--meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch6
-rw-r--r--meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch35
-rw-r--r--meta/recipes-core/ovmf/ovmf/0004-reproducible.patch31
-rw-r--r--meta/recipes-core/ovmf/ovmf/CVE-2024-38797-1.patch43
-rw-r--r--meta/recipes-core/ovmf/ovmf/CVE-2024-38797-2.patch63
-rw-r--r--meta/recipes-core/ovmf/ovmf/CVE-2024-38797-3.patch99
-rw-r--r--meta/recipes-core/ovmf/ovmf/CVE-2024-38797-4.patch97
-rw-r--r--meta/recipes-core/ovmf/ovmf/CVE-2025-2295.patch56
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb29
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb6
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-boot.bb4
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb3
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb4
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb2
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-self-hosted.bb2
-rw-r--r--meta/recipes-core/picolibc/picolibc-helloworld_git.bb40
-rw-r--r--meta/recipes-core/picolibc/picolibc.inc20
-rw-r--r--meta/recipes-core/picolibc/picolibc/avoid_polluting_cross_directories.patch119
-rw-r--r--meta/recipes-core/picolibc/picolibc/no-early-compiler-checks.cross6
-rw-r--r--meta/recipes-core/picolibc/picolibc_git.bb34
-rw-r--r--meta/recipes-core/psplash/files/fb.rules1
-rw-r--r--[-rwxr-xr-x]meta/recipes-core/psplash/files/psplash-init0
-rw-r--r--meta/recipes-core/psplash/files/psplash-start@.service (renamed from meta/recipes-core/psplash/files/psplash-start.service)5
-rw-r--r--meta/recipes-core/psplash/files/psplash-systemd.service11
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb19
-rw-r--r--meta/recipes-core/readline/files/inputrc8
-rw-r--r--meta/recipes-core/readline/readline.inc4
-rw-r--r--meta/recipes-core/readline/readline/0001-Add-fix-for-packages-that-are-not-compatible-with-C2.patch29
-rw-r--r--meta/recipes-core/readline/readline/norpath.patch19
-rw-r--r--meta/recipes-core/readline/readline/readline82-001.patch45
-rw-r--r--meta/recipes-core/readline/readline/readline82-002.patch51
-rw-r--r--meta/recipes-core/readline/readline/readline82-003.patch46
-rw-r--r--meta/recipes-core/readline/readline/readline82-004.patch68
-rw-r--r--meta/recipes-core/readline/readline/readline82-005.patch53
-rw-r--r--meta/recipes-core/readline/readline/readline82-006.patch102
-rw-r--r--meta/recipes-core/readline/readline/readline82-007.patch51
-rw-r--r--meta/recipes-core/readline/readline/readline82-008.patch80
-rw-r--r--meta/recipes-core/readline/readline/readline82-009.patch76
-rw-r--r--meta/recipes-core/readline/readline/readline82-010.patch70
-rw-r--r--meta/recipes-core/readline/readline_8.2.13.bb7
-rw-r--r--meta/recipes-core/readline/readline_8.2.bb17
-rw-r--r--meta/recipes-core/seatd/seatd/init2
-rw-r--r--meta/recipes-core/seatd/seatd_0.8.0.bb35
-rw-r--r--meta/recipes-core/seatd/seatd_0.9.1.bb48
-rw-r--r--meta/recipes-core/sysfsutils/files/0001-Modify-my_strncat-function.patch34
-rw-r--r--meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb6
-rw-r--r--meta/recipes-core/systemd/dlopen-deps.inc81
-rw-r--r--meta/recipes-core/systemd/systemd-boot-native_257.6.bb (renamed from meta/recipes-core/systemd/systemd-boot-native_255.4.bb)5
-rw-r--r--meta/recipes-core/systemd/systemd-boot_257.6.bb (renamed from meta/recipes-core/systemd/systemd-boot_255.4.bb)24
-rw-r--r--meta/recipes-core/systemd/systemd-bootconf_1.00.bb2
-rw-r--r--meta/recipes-core/systemd/systemd-compat-units.bb5
-rw-r--r--meta/recipes-core/systemd/systemd-conf_1.0.bb12
-rw-r--r--meta/recipes-core/systemd/systemd-machine-units_1.0.bb1
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty.bb22
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service45
-rw-r--r--meta/recipes-core/systemd/systemd-systemctl-native.bb16
-rw-r--r--meta/recipes-core/systemd/systemd-systemctl-native_257.6.bb16
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl362
-rw-r--r--meta/recipes-core/systemd/systemd.inc8
-rw-r--r--meta/recipes-core/systemd/systemd/00-create-volatile.conf5
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch30
-rw-r--r--meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch (renamed from meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch)16
-rw-r--r--meta/recipes-core/systemd/systemd/0002-implment-systemd-sysv-install-for-OE.patch (renamed from meta/recipes-core/systemd/systemd/0008-implment-systemd-sysv-install-for-OE.patch)6
-rw-r--r--meta/recipes-core/systemd/systemd/0003-missing_type.h-add-comparison_fn_t.patch (renamed from meta/recipes-core/systemd/systemd/0001-missing_type.h-add-comparison_fn_t.patch)12
-rw-r--r--meta/recipes-core/systemd/systemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch699
-rw-r--r--meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch (renamed from meta/recipes-core/systemd/systemd/0002-add-fallback-parse_printf_format-implementation.patch)24
-rw-r--r--meta/recipes-core/systemd/systemd/0005-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch (renamed from meta/recipes-core/systemd/systemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch)18
-rw-r--r--meta/recipes-core/systemd/systemd/0006-add-missing-FTW_-macros-for-musl.patch (renamed from meta/recipes-core/systemd/systemd/0005-add-missing-FTW_-macros-for-musl.patch)6
-rw-r--r--meta/recipes-core/systemd/systemd/0007-Use-uintmax_t-for-handling-rlim_t.patch (renamed from meta/recipes-core/systemd/systemd/0006-Use-uintmax_t-for-handling-rlim_t.patch)20
-rw-r--r--meta/recipes-core/systemd/systemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch99
-rw-r--r--meta/recipes-core/systemd/systemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch12
-rw-r--r--meta/recipes-core/systemd/systemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0012-do-not-disable-buffer-in-writing-files.patch300
-rw-r--r--meta/recipes-core/systemd/systemd/0013-Handle-__cpu_mask-usage.patch6
-rw-r--r--meta/recipes-core/systemd/systemd/0014-Handle-missing-gshadow.patch55
-rw-r--r--meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch17
-rw-r--r--meta/recipes-core/systemd/systemd/0016-pass-correct-parameters-to-getdents64.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0017-Adjust-for-musl-headers.patch214
-rw-r--r--meta/recipes-core/systemd/systemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch13
-rw-r--r--meta/recipes-core/systemd/systemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0021-shared-Do-not-use-malloc_info-on-musl.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0022-avoid-missing-LOCK_EX-declaration.patch27
-rw-r--r--meta/recipes-core/systemd/systemd/0023-include-signal.h-to-avoid-the-undeclared-error.patch27
-rw-r--r--meta/recipes-core/systemd/systemd/0024-undef-stdin-for-references-using-stdin-as-a-struct-m.patch48
-rw-r--r--meta/recipes-core/systemd/systemd/0025-adjust-header-inclusion-order-to-avoid-redeclaration.patch288
-rw-r--r--meta/recipes-core/systemd/systemd/0026-build-path.c-avoid-boot-time-segfault-for-musl.patch31
-rw-r--r--meta/recipes-core/systemd/systemd_257.6.bb (renamed from meta/recipes-core/systemd/systemd_255.4.bb)463
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb7
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch38
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch50
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch28
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch97
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch191
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/realpath.patch59
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch17
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_3.14.bb (renamed from meta/recipes-core/sysvinit/sysvinit_3.04.bb)25
-rw-r--r--meta/recipes-core/ttyrun/ttyrun_2.38.0.bb (renamed from meta/recipes-core/ttyrun/ttyrun_2.32.0.bb)6
-rw-r--r--meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch138
-rw-r--r--meta/recipes-core/udev/eudev/init3
-rw-r--r--meta/recipes-core/udev/eudev_3.2.14.bb9
-rw-r--r--meta/recipes-core/udev/udev-extraconf/mount.sh10
-rw-r--r--meta/recipes-core/udev/udev-extraconf/network.sh34
-rw-r--r--meta/recipes-core/udev/udev-extraconf_1.1.bb23
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d_0.8.bb3
-rw-r--r--meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb (renamed from meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb)8
-rw-r--r--meta/recipes-core/util-linux/util-linux.inc30
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch60
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch36
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch36
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch58
-rw-r--r--meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch5
-rw-r--r--meta/recipes-core/util-linux/util-linux/configure-sbindir.patch7
-rw-r--r--meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch7
-rw-r--r--meta/recipes-core/util-linux/util-linux/mit-license.patch45
-rw-r--r--meta/recipes-core/util-linux/util-linux/ptest.patch11
-rw-r--r--meta/recipes-core/util-linux/util-linux/run-ptest5
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.41.bb (renamed from meta/recipes-core/util-linux/util-linux_2.39.3.bb)124
-rwxr-xr-xmeta/recipes-core/volatile-binds/files/mount-copybind7
-rw-r--r--meta/recipes-core/volatile-binds/volatile-binds.bb4
-rw-r--r--meta/recipes-core/zlib/site_config/headers1
-rw-r--r--meta/recipes-core/zlib/zlib_1.3.1.bb6
338 files changed, 4819 insertions, 6643 deletions
diff --git a/meta/recipes-core/base-files/base-files/0001-add-nss-resolve-to-nsswitch.patch b/meta/recipes-core/base-files/base-files/0001-add-nss-resolve-to-nsswitch.patch
deleted file mode 100644
index a6e39e0956..0000000000
--- a/meta/recipes-core/base-files/base-files/0001-add-nss-resolve-to-nsswitch.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 830abe652428d9d31780c3ace121635ad7b64274 Mon Sep 17 00:00:00 2001
2From: Eero Aaltonen <eero.aaltonen@vaisala.com>
3Date: Wed Sep 27 15:50:48 2023 +0300
4Subject: [PATCH] Add nss-resolve to the Name Service Switch (NSS)
5
6Add `nss-resolve` so that `systemd-resolved` is used for name
7resolution with glibc `gethostbyname` calls.
8
9Upstream-Status: Inappropriate [no upstream, configuration].
10
11Signed-off-by: Eero Aaltonen <eero.aaltonen@vaisala.com>
12---
13 nsswitch.conf | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/nsswitch.conf b/nsswitch.conf
17index 06f03d2..34b165c 100644
18--- a/nsswitch.conf
19+++ b/nsswitch.conf
20@@ -8,7 +8,7 @@ passwd: compat
21 group: compat
22 shadow: compat
23
24-hosts: files dns
25+hosts: resolve [!UNAVAIL=return] files dns
26 networks: files
27
28 protocols: db files
29--
302.25.1
31
diff --git a/meta/recipes-core/base-files/base-files/nsswitch-resolved.conf b/meta/recipes-core/base-files/base-files/nsswitch-resolved.conf
new file mode 100644
index 0000000000..ec6ce156b5
--- /dev/null
+++ b/meta/recipes-core/base-files/base-files/nsswitch-resolved.conf
@@ -0,0 +1,20 @@
1# /etc/nsswitch.conf
2#
3# Example configuration of GNU Name Service Switch functionality.
4# If you have the `glibc-doc' and `info' packages installed, try:
5# `info libc "Name Service Switch"' for information about this file.
6
7passwd: compat
8group: compat
9shadow: compat
10gshadow: files
11
12hosts: resolve [!UNAVAIL=return] files dns
13networks: files
14
15protocols: db files
16services: db files
17ethers: db files
18rpc: db files
19
20netgroup: nis
diff --git a/meta/recipes-core/base-files/base-files/nsswitch.conf b/meta/recipes-core/base-files/base-files/nsswitch.conf
index 06f03d22a6..53279c12b7 100644
--- a/meta/recipes-core/base-files/base-files/nsswitch.conf
+++ b/meta/recipes-core/base-files/base-files/nsswitch.conf
@@ -7,6 +7,7 @@
7passwd: compat 7passwd: compat
8group: compat 8group: compat
9shadow: compat 9shadow: compat
10gshadow: files
10 11
11hosts: files dns 12hosts: files dns
12networks: files 13networks: files
diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile
index bded3757cc..375be64891 100644
--- a/meta/recipes-core/base-files/base-files/profile
+++ b/meta/recipes-core/base-files/base-files/profile
@@ -1,7 +1,7 @@
1# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) 1# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
2# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). 2# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
3 3
4PATH="/usr/local/bin:/usr/bin:/bin" 4PATH="$PATH:/usr/local/bin:/usr/bin:/bin"
5[ "$TERM" ] || TERM="vt100" # Basic terminal capab. For screen etc. 5[ "$TERM" ] || TERM="vt100" # Basic terminal capab. For screen etc.
6 6
7# Add /sbin & co to $PATH for the root user 7# Add /sbin & co to $PATH for the root user
@@ -58,7 +58,7 @@ resize() {
58 fi 58 fi
59 # only do this for /dev/tty[A-z] which are typically 59 # only do this for /dev/tty[A-z] which are typically
60 # serial ports 60 # serial ports
61 if [ $FIRSTTIMESETUP -eq 1 -a $SHLVL -eq 1 ] ; then 61 if [ $FIRSTTIMESETUP -eq 1 -a ${SHLVL:-1} -eq 1 ] ; then
62 case $(tty 2>/dev/null) in 62 case $(tty 2>/dev/null) in
63 /dev/tty[A-z]*) resize >/dev/null;; 63 /dev/tty[A-z]*) resize >/dev/null;;
64 esac 64 esac
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index 9fab53ce63..3f01bb35d9 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
11 11
12SRC_URI = "file://rotation \ 12SRC_URI = "file://rotation \
13 file://nsswitch.conf \ 13 file://nsswitch.conf \
14 file://nsswitch-resolved.conf \
14 file://motd \ 15 file://motd \
15 file://hosts \ 16 file://hosts \
16 file://host.conf \ 17 file://host.conf \
@@ -23,14 +24,13 @@ SRC_URI = "file://rotation \
23 file://share/dot.profile \ 24 file://share/dot.profile \
24 file://licenses/GPL-2 \ 25 file://licenses/GPL-2 \
25 " 26 "
26SRC_URI:append:libc-glibc = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd systemd-resolved', ' file://0001-add-nss-resolve-to-nsswitch.patch', '', d)}"
27 27
28S = "${WORKDIR}" 28S = "${UNPACKDIR}"
29 29
30INHIBIT_DEFAULT_DEPS = "1" 30INHIBIT_DEFAULT_DEPS = "1"
31 31
32docdir:append = "/${P}" 32docdir:append = "/${P}"
33dirs1777 = "/tmp ${localstatedir}/volatile/tmp" 33dirs1777 = "/tmp ${localstatedir}/${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'volatile/', '', d)}tmp"
34dirs2775 = "" 34dirs2775 = ""
35dirs555 = "/sys /proc" 35dirs555 = "/sys /proc"
36dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \ 36dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
@@ -43,7 +43,7 @@ dirs755 = "/boot /dev ${base_bindir} ${base_sbindir} ${base_libdir} \
43 ${localstatedir}/backups ${localstatedir}/lib \ 43 ${localstatedir}/backups ${localstatedir}/lib \
44 ${localstatedir}/lib/misc ${localstatedir}/spool \ 44 ${localstatedir}/lib/misc ${localstatedir}/spool \
45 ${localstatedir}/volatile \ 45 ${localstatedir}/volatile \
46 ${localstatedir}/${@'volatile/' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''}log \ 46 ${localstatedir}/${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'volatile/', '', d)}log \
47 /home ${prefix}/src ${localstatedir}/local \ 47 /home ${prefix}/src ${localstatedir}/local \
48 /media" 48 /media"
49 49
@@ -54,7 +54,8 @@ dirs755-lsb = "/srv \
54 ${prefix}/lib/locale" 54 ${prefix}/lib/locale"
55dirs2775-lsb = "/var/mail" 55dirs2775-lsb = "/var/mail"
56 56
57volatiles = "${@'log' if oe.types.boolean('${VOLATILE_LOG_DIR}') else ''} tmp" 57volatiles = "${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'log', '', d)} \
58 ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'tmp', '', d)}"
58conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \ 59conffiles = "${sysconfdir}/debian_version ${sysconfdir}/host.conf \
59 ${sysconfdir}/issue /${sysconfdir}/issue.net \ 60 ${sysconfdir}/issue /${sysconfdir}/issue.net \
60 ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \ 61 ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile \
@@ -70,29 +71,6 @@ hostname = "${MACHINE}"
70 71
71BASEFILESISSUEINSTALL ?= "do_install_basefilesissue" 72BASEFILESISSUEINSTALL ?= "do_install_basefilesissue"
72 73
73# In previous versions of base-files, /run was a softlink to /var/run and the
74# directory was located in /var/volatlie/run. Also, /var/lock was a softlink
75# to /var/volatile/lock which is where the real directory was located. Now,
76# /run and /run/lock are the real directories. If we are upgrading, we may
77# need to remove the symbolic links first before we create the directories.
78# Otherwise the directory creation will fail and we will have circular symbolic
79# links.
80#
81pkg_preinst:${PN} () {
82 #!/bin/sh -e
83 if [ x"$D" = "x" ]; then
84 if [ -h "/var/lock" ]; then
85 # Remove the symbolic link
86 rm -f /var/lock
87 fi
88
89 if [ -h "/run" ]; then
90 # Remove the symbolic link
91 rm -f /run
92 fi
93 fi
94}
95
96do_install () { 74do_install () {
97 for d in ${dirs555}; do 75 for d in ${dirs555}; do
98 install -m 0555 -d ${D}$d 76 install -m 0555 -d ${D}$d
@@ -113,23 +91,23 @@ do_install () {
113 ln -snf ../run ${D}${localstatedir}/run 91 ln -snf ../run ${D}${localstatedir}/run
114 ln -snf ../run/lock ${D}${localstatedir}/lock 92 ln -snf ../run/lock ${D}${localstatedir}/lock
115 93
116 install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts 94 install -m 0644 ${S}/hosts ${D}${sysconfdir}/hosts
117 ${BASEFILESISSUEINSTALL} 95 ${BASEFILESISSUEINSTALL}
118 96
119 rotation=`cat ${WORKDIR}/rotation` 97 rotation=`cat ${S}/rotation`
120 if [ "$rotation" != "0" ]; then 98 if [ "$rotation" != "0" ]; then
121 install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation 99 install -m 0644 ${S}/rotation ${D}${sysconfdir}/rotation
122 fi 100 fi
123 101
124 install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab 102 install -m 0644 ${S}/fstab ${D}${sysconfdir}/fstab
125 install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile 103 install -m 0644 ${S}/profile ${D}${sysconfdir}/profile
126 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile 104 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
127 sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile 105 sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
128 install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells 106 install -m 0644 ${S}/shells ${D}${sysconfdir}/shells
129 install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile 107 install -m 0755 ${S}/share/dot.profile ${D}${sysconfdir}/skel/.profile
130 install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc 108 install -m 0755 ${S}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
131 install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf 109 install -m 0644 ${S}/host.conf ${D}${sysconfdir}/host.conf
132 install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd 110 install -m 0644 ${S}/motd ${D}${sysconfdir}/motd
133 111
134 ln -sf /proc/mounts ${D}${sysconfdir}/mtab 112 ln -sf /proc/mounts ${D}${sysconfdir}/mtab
135 113
@@ -145,12 +123,12 @@ do_install () {
145} 123}
146 124
147do_install:append:libc-glibc () { 125do_install:append:libc-glibc () {
148 install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf 126 install -m 0644 ${S}/${@bb.utils.contains('DISTRO_FEATURES', 'systemd systemd-resolved', 'nsswitch-resolved.conf', 'nsswitch.conf', d)} ${D}${sysconfdir}/nsswitch.conf
149} 127}
150 128
151DISTRO_VERSION[vardepsexclude] += "DATE" 129DISTRO_VERSION[vardepsexclude] += "DATE"
152do_install_basefilesissue () { 130do_install_basefilesissue () {
153 install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir} 131 install -m 644 ${S}/issue* ${D}${sysconfdir}
154 if [ -n "${DISTRO_NAME}" ]; then 132 if [ -n "${DISTRO_NAME}" ]; then
155 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue 133 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
156 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net 134 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
diff --git a/meta/recipes-core/base-passwd/base-passwd/0001-Add-a-shutdown-group.patch b/meta/recipes-core/base-passwd/base-passwd/0001-Add-a-shutdown-group.patch
index e50efc9623..4bb0634a00 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0001-Add-a-shutdown-group.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0001-Add-a-shutdown-group.patch
@@ -1,4 +1,4 @@
1From 8f3ace87df3aaad85946c22cae240532ea3e73b8 Mon Sep 17 00:00:00 2001 1From caf4344849c67e939689bc7d57a6f5dc24884937 Mon Sep 17 00:00:00 2001
2From: Saul Wold <sgw@linux.intel.com> 2From: Saul Wold <sgw@linux.intel.com>
3Date: Fri, 29 Apr 2022 13:32:27 +0000 3Date: Fri, 29 Apr 2022 13:32:27 +0000
4Subject: [PATCH] Add a shutdown group 4Subject: [PATCH] Add a shutdown group
@@ -14,10 +14,10 @@ Signed-off-by: Saul Wold <sgw@linux.intel.com>
14 1 file changed, 1 insertion(+) 14 1 file changed, 1 insertion(+)
15 15
16diff --git a/group.master b/group.master 16diff --git a/group.master b/group.master
17index ad1dd2d..1b5e2fb 100644 17index 3e7bf1c..72108a8 100644
18--- a/group.master 18--- a/group.master
19+++ b/group.master 19+++ b/group.master
20@@ -35,5 +35,6 @@ sasl:*:45: 20@@ -34,5 +34,6 @@ sasl:*:45:
21 plugdev:*:46: 21 plugdev:*:46:
22 staff:*:50: 22 staff:*:50:
23 games:*:60: 23 games:*:60:
diff --git a/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch b/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch
index e1340e1b70..714c5b40fc 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch
@@ -1,4 +1,4 @@
1From 9e57771d138ac423d5139b984b8c869122ce4976 Mon Sep 17 00:00:00 2001 1From 2ac953ddd31dae19568cc7925d9d56444e3232a7 Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alexk@zuma.ai> 2From: Alex Kiernan <alexk@zuma.ai>
3Date: Fri, 28 Jul 2023 10:28:57 +0100 3Date: Fri, 28 Jul 2023 10:28:57 +0100
4Subject: [PATCH] base-passwd: Add the sgx group 4Subject: [PATCH] base-passwd: Add the sgx group
@@ -17,7 +17,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
17 1 file changed, 1 insertion(+) 17 1 file changed, 1 insertion(+)
18 18
19diff --git a/group.master b/group.master 19diff --git a/group.master b/group.master
20index d34d2b832d43..e54fd1d2c6dc 100644 20index d34d2b8..e54fd1d 100644
21--- a/group.master 21--- a/group.master
22+++ b/group.master 22+++ b/group.master
23@@ -34,6 +34,7 @@ video:*:44: 23@@ -34,6 +34,7 @@ video:*:44:
diff --git a/meta/recipes-core/base-passwd/base-passwd/0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch b/meta/recipes-core/base-passwd/base-passwd/0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch
index 09f8cfea9c..6cac38eada 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0002-Use-bin-sh-instead-of-bin-bash-for-the-root-user.patch
@@ -1,4 +1,4 @@
1From 4411fc0df77566d52bee11ec0bad4be30a96e99e Mon Sep 17 00:00:00 2001 1From dffeea1a44064c11d9035be008db8c628b93c7ab Mon Sep 17 00:00:00 2001
2From: Scott Garman <scott.a.garman@intel.com> 2From: Scott Garman <scott.a.garman@intel.com>
3Date: Fri, 29 Apr 2022 13:32:27 +0000 3Date: Fri, 29 Apr 2022 13:32:27 +0000
4Subject: [PATCH] Use /bin/sh instead of /bin/bash for the root user 4Subject: [PATCH] Use /bin/sh instead of /bin/bash for the root user
@@ -12,7 +12,7 @@ Signed-off-by: Scott Garman <scott.a.garman@intel.com>
12 1 file changed, 1 insertion(+), 1 deletion(-) 12 1 file changed, 1 insertion(+), 1 deletion(-)
13 13
14diff --git a/passwd.master b/passwd.master 14diff --git a/passwd.master b/passwd.master
15index 7cd4e24..041685a 100644 15index 90514a5..bd3efc2 100644
16--- a/passwd.master 16--- a/passwd.master
17+++ b/passwd.master 17+++ b/passwd.master
18@@ -1,4 +1,4 @@ 18@@ -1,4 +1,4 @@
diff --git a/meta/recipes-core/base-passwd/base-passwd/0003-Remove-for-root-since-we-do-not-have-an-etc-shadow.patch b/meta/recipes-core/base-passwd/base-passwd/0003-Remove-for-root-since-we-do-not-have-an-etc-shadow.patch
index 06222ab04c..7c3642fcc9 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0003-Remove-for-root-since-we-do-not-have-an-etc-shadow.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0003-Remove-for-root-since-we-do-not-have-an-etc-shadow.patch
@@ -1,4 +1,4 @@
1From 13a1a284a134d18a454625a5b4485c0d99079ae9 Mon Sep 17 00:00:00 2001 1From 8a79e64654eb4ee38a7971cf99ad37df7f5dee63 Mon Sep 17 00:00:00 2001
2From: Scott Garman <scott.a.garman@intel.com> 2From: Scott Garman <scott.a.garman@intel.com>
3Date: Fri, 29 Apr 2022 13:32:28 +0000 3Date: Fri, 29 Apr 2022 13:32:28 +0000
4Subject: [PATCH] Remove "*" for root since we do not have an /etc/shadow 4Subject: [PATCH] Remove "*" for root since we do not have an /etc/shadow
@@ -10,7 +10,7 @@ Signed-off-by: Scott Garman <scott.a.garman@intel.com>
10 1 file changed, 1 insertion(+), 1 deletion(-) 10 1 file changed, 1 insertion(+), 1 deletion(-)
11 11
12diff --git a/passwd.master b/passwd.master 12diff --git a/passwd.master b/passwd.master
13index 041685a..31a84d4 100644 13index bd3efc2..66e9033 100644
14--- a/passwd.master 14--- a/passwd.master
15+++ b/passwd.master 15+++ b/passwd.master
16@@ -1,4 +1,4 @@ 16@@ -1,4 +1,4 @@
diff --git a/meta/recipes-core/base-passwd/base-passwd/0004-Add-an-input-group-for-the-dev-input-devices.patch b/meta/recipes-core/base-passwd/base-passwd/0004-Add-an-input-group-for-the-dev-input-devices.patch
index 394a0f01d3..4fdbc47b6e 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0004-Add-an-input-group-for-the-dev-input-devices.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0004-Add-an-input-group-for-the-dev-input-devices.patch
@@ -1,4 +1,4 @@
1From c5f012750f8102ff54af73ccc2d2b7bfa1f26db4 Mon Sep 17 00:00:00 2001 1From 2d02a1e4e3202691e2ddc11f80565d5fa53d532f Mon Sep 17 00:00:00 2001
2From: Darren Hart <dvhart@linux.intel.com> 2From: Darren Hart <dvhart@linux.intel.com>
3Date: Fri, 29 Apr 2022 13:32:28 +0000 3Date: Fri, 29 Apr 2022 13:32:28 +0000
4Subject: [PATCH] Add an input group for the /dev/input/* devices 4Subject: [PATCH] Add an input group for the /dev/input/* devices
@@ -10,7 +10,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com>
10 1 file changed, 1 insertion(+) 10 1 file changed, 1 insertion(+)
11 11
12diff --git a/group.master b/group.master 12diff --git a/group.master b/group.master
13index 1b5e2fb..cea9d60 100644 13index 72108a8..7d794b2 100644
14--- a/group.master 14--- a/group.master
15+++ b/group.master 15+++ b/group.master
16@@ -12,6 +12,7 @@ uucp:*:10: 16@@ -12,6 +12,7 @@ uucp:*:10:
diff --git a/meta/recipes-core/base-passwd/base-passwd/0005-Add-kvm-group.patch b/meta/recipes-core/base-passwd/base-passwd/0005-Add-kvm-group.patch
index 72e6ee333c..742d696a24 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0005-Add-kvm-group.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0005-Add-kvm-group.patch
@@ -1,4 +1,4 @@
1From 6cf19461fb31d7a7a3010629aae9aab49c26a01b Mon Sep 17 00:00:00 2001 1From 3f25f39802657de55f41fa4d5773f1d1c2bdbd93 Mon Sep 17 00:00:00 2001
2From: Jacob Kroon <jacob.kroon@gmail.com> 2From: Jacob Kroon <jacob.kroon@gmail.com>
3Date: Wed, 30 Jan 2019 04:53:48 +0000 3Date: Wed, 30 Jan 2019 04:53:48 +0000
4Subject: [PATCH] Add kvm group 4Subject: [PATCH] Add kvm group
@@ -10,10 +10,10 @@ Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
10 1 file changed, 1 insertion(+) 10 1 file changed, 1 insertion(+)
11 11
12diff --git a/group.master b/group.master 12diff --git a/group.master b/group.master
13index cea9d60..5b62284 100644 13index 7d794b2..7fdd8bf 100644
14--- a/group.master 14--- a/group.master
15+++ b/group.master 15+++ b/group.master
16@@ -34,6 +34,7 @@ utmp:*:43: 16@@ -33,6 +33,7 @@ utmp:*:43:
17 video:*:44: 17 video:*:44:
18 sasl:*:45: 18 sasl:*:45:
19 plugdev:*:46: 19 plugdev:*:46:
diff --git a/meta/recipes-core/base-passwd/base-passwd/0007-Add-wheel-group.patch b/meta/recipes-core/base-passwd/base-passwd/0007-Add-wheel-group.patch
index d77122789d..00eff1b724 100644
--- a/meta/recipes-core/base-passwd/base-passwd/0007-Add-wheel-group.patch
+++ b/meta/recipes-core/base-passwd/base-passwd/0007-Add-wheel-group.patch
@@ -1,3 +1,7 @@
1From 4980807167a5b7c4d9c91e2af6de61efff548868 Mon Sep 17 00:00:00 2001
2From: Louis Rannou <lrannou@baylibre.com>
3Date: Thu, 15 Jun 2023 13:43:55 +0200
4Subject: [PATCH] base-passwd: add the wheel group
1 5
2We need to have a wheel group which has some system privileges to consult the 6We need to have a wheel group which has some system privileges to consult the
3systemd journal or manage printers with cups. 7systemd journal or manage printers with cups.
@@ -7,11 +11,15 @@ Upstream says the group does not exist by default.
7Upstream-Status: Inappropriate [enable feature] 11Upstream-Status: Inappropriate [enable feature]
8 12
9Signed-off-by: Louis Rannou <lrannou@baylibre.com> 13Signed-off-by: Louis Rannou <lrannou@baylibre.com>
10Index: base-passwd-3.5.26/group.master 14---
11=================================================================== 15 group.master | 1 +
12--- base-passwd-3.5.29.orig/group.master 16 1 file changed, 1 insertion(+)
13+++ base-passwd-3.5.29/group.master 17
14@@ -38,5 +38,6 @@ 18diff --git a/group.master b/group.master
19index 7fdd8bf..d34d2b8 100644
20--- a/group.master
21+++ b/group.master
22@@ -37,5 +37,6 @@ kvm:*:47:
15 staff:*:50: 23 staff:*:50:
16 games:*:60: 24 games:*:60:
17 shutdown:*:70: 25 shutdown:*:70:
diff --git a/meta/recipes-core/base-passwd/base-passwd_3.6.3.bb b/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb
index bf50b01fd5..177927d674 100644
--- a/meta/recipes-core/base-passwd/base-passwd_3.6.3.bb
+++ b/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb
@@ -15,13 +15,13 @@ SRC_URI = "https://launchpad.net/debian/+archive/primary/+files/${BPN}_${PV}.tar
15 file://0001-base-passwd-Add-the-sgx-group.patch \ 15 file://0001-base-passwd-Add-the-sgx-group.patch \
16 " 16 "
17 17
18SRC_URI[sha256sum] = "83575327d8318a419caf2d543341215c046044073d1afec2acc0ac4d8095ff39" 18SRC_URI[sha256sum] = "cf869870fed7862b57bfa9e99cd5cd6f365e2349705a1b65af7fc182629bd1ab"
19 19
20# the package is taken from launchpad; that source is static and goes stale 20# the package is taken from launchpad; that source is static and goes stale
21# so we check the latest upstream from a directory that does get updated 21# so we check the latest upstream from a directory that does get updated
22UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/b/base-passwd/" 22UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/b/base-passwd/"
23 23
24S = "${WORKDIR}/work" 24S = "${UNPACKDIR}/work"
25 25
26PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" 26PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
27PACKAGECONFIG[selinux] = "--enable-selinux, --disable-selinux, libselinux" 27PACKAGECONFIG[selinux] = "--enable-selinux, --disable-selinux, libselinux"
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb b/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb
index 6904a91930..8b46b5763e 100644
--- a/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb
+++ b/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;m
4 4
5SRC_URI = "file://inittab" 5SRC_URI = "file://inittab"
6 6
7S = "${WORKDIR}" 7S = "${UNPACKDIR}"
8 8
9INHIBIT_DEFAULT_DEPS = "1" 9INHIBIT_DEFAULT_DEPS = "1"
10 10
@@ -14,7 +14,7 @@ do_compile() {
14 14
15do_install() { 15do_install() {
16 install -d ${D}${sysconfdir} 16 install -d ${D}${sysconfdir}
17 install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab 17 install -D -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab
18 18
19 CONSOLES="${SERIAL_CONSOLES}" 19 CONSOLES="${SERIAL_CONSOLES}"
20 for s in $CONSOLES 20 for s in $CONSOLES
@@ -48,7 +48,6 @@ EOF
48 48
49} 49}
50 50
51
52# SERIAL_CONSOLES is generally defined by the MACHINE .conf. 51# SERIAL_CONSOLES is generally defined by the MACHINE .conf.
53# Set PACKAGE_ARCH appropriately. 52# Set PACKAGE_ARCH appropriately.
54PACKAGE_ARCH = "${MACHINE_ARCH}" 53PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index f5d7c3f9c8..4ebaeb92c9 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -7,7 +7,7 @@ DEPENDS += "kern-tools-native virtual/crypt"
7 7
8# bzip2 applet in busybox is based on lightly-modified bzip2-1.0.4 source 8# bzip2 applet in busybox is based on lightly-modified bzip2-1.0.4 source
9# the GPL is version 2 only 9# the GPL is version 2 only
10LICENSE = "GPL-2.0-only & bzip2-1.0.4" 10LICENSE = "GPL-2.0-only & bzip2-1.0.6"
11LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb \ 11LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb \
12 file://archival/libarchive/bz/LICENSE;md5=28e3301eae987e8cfe19988e98383dae" 12 file://archival/libarchive/bz/LICENSE;md5=28e3301eae987e8cfe19988e98383dae"
13 13
@@ -16,6 +16,7 @@ SECTION = "base"
16# Whether to split the suid apps into a seperate binary 16# Whether to split the suid apps into a seperate binary
17BUSYBOX_SPLIT_SUID ?= "1" 17BUSYBOX_SPLIT_SUID ?= "1"
18 18
19CFLAGS:append:toolchain-clang = " -DBB_GLOBAL_CONST=''"
19export EXTRA_CFLAGS = "${CFLAGS}" 20export EXTRA_CFLAGS = "${CFLAGS}"
20export EXTRA_LDFLAGS = "${LDFLAGS}" 21export EXTRA_LDFLAGS = "${LDFLAGS}"
21 22
@@ -24,7 +25,14 @@ EXTRA_OEMAKE = "CC='${CC}' LD='${CCLD}' V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${
24PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock" 25PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock"
25 26
26FILES:${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www" 27FILES:${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
27FILES:${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog-startup.conf* ${sysconfdir}/syslog.conf* ${systemd_system_unitdir}/syslog.service ${sysconfdir}/default/busybox-syslog" 28FILES:${PN}-syslog = "\
29 ${sysconfdir}/init.d/syslog* \
30 ${sysconfdir}/syslog-startup.conf* \
31 ${sysconfdir}/syslog.conf* \
32 ${systemd_system_unitdir}/syslog.service \
33 ${systemd_system_unitdir}/busybox-klogd.service \
34 ${sysconfdir}/default/busybox-syslog \
35"
28FILES:${PN}-mdev = "${sysconfdir}/init.d/mdev ${sysconfdir}/mdev.conf ${sysconfdir}/mdev/*" 36FILES:${PN}-mdev = "${sysconfdir}/init.d/mdev ${sysconfdir}/mdev.conf ${sysconfdir}/mdev/*"
29FILES:${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd" 37FILES:${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
30FILES:${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc" 38FILES:${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc"
@@ -114,7 +122,7 @@ do_prepare_config () {
114 export KCONFIG_NOTIMESTAMP=1 122 export KCONFIG_NOTIMESTAMP=1
115 123
116 sed -e '/CONFIG_STATIC/d' \ 124 sed -e '/CONFIG_STATIC/d' \
117 < ${WORKDIR}/defconfig > ${S}/.config 125 < ${UNPACKDIR}/defconfig > ${S}/.config
118 echo "# CONFIG_STATIC is not set" >> .config 126 echo "# CONFIG_STATIC is not set" >> .config
119 for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \ 127 for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \
120 ${S}/.config 128 ${S}/.config
@@ -215,10 +223,14 @@ do_install () {
215 sed -i "s:^/usr/bin/:BINDIR/:" busybox.links* 223 sed -i "s:^/usr/bin/:BINDIR/:" busybox.links*
216 sed -i "s:^/usr/sbin/:SBINDIR/:" busybox.links* 224 sed -i "s:^/usr/sbin/:SBINDIR/:" busybox.links*
217 225
218 # Move arch/link to BINDIR to match coreutils 226 # Move arch/base32/link to BINDIR to match coreutils
219 sed -i "s:^BASE_BINDIR/arch:BINDIR/arch:" busybox.links* 227 sed -i "s:^BASE_BINDIR/arch:BINDIR/arch:" busybox.links*
228 sed -i "s:^BASE_BINDIR/base32:BINDIR/base32:" busybox.links*
220 sed -i "s:^BASE_BINDIR/link:BINDIR/link:" busybox.links* 229 sed -i "s:^BASE_BINDIR/link:BINDIR/link:" busybox.links*
221 230
231 # Move start-stop-daemon to SBINDIR to match dpkg
232 sed -i "s:^BASE_SBINDIR/start-stop-daemon:SBINDIR/start-stop-daemon:" busybox.links*
233
222 sed -i "s:^BASE_BINDIR/:${base_bindir}/:" busybox.links* 234 sed -i "s:^BASE_BINDIR/:${base_bindir}/:" busybox.links*
223 sed -i "s:^BASE_SBINDIR/:${base_sbindir}/:" busybox.links* 235 sed -i "s:^BASE_SBINDIR/:${base_sbindir}/:" busybox.links*
224 sed -i "s:^BINDIR/:${bindir}/:" busybox.links* 236 sed -i "s:^BINDIR/:${bindir}/:" busybox.links*
@@ -280,67 +292,67 @@ do_install () {
280 fi 292 fi
281 293
282 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then 294 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then
283 install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/syslog 295 install -m 0755 ${UNPACKDIR}/syslog ${D}${sysconfdir}/init.d/syslog
284 install -m 644 ${WORKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf 296 install -m 644 ${UNPACKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf
285 install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf 297 install -m 644 ${UNPACKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf
286 fi 298 fi
287 if grep -q "CONFIG_CROND=y" ${B}/.config; then 299 if grep -q "CONFIG_CROND=y" ${B}/.config; then
288 install -m 0755 ${WORKDIR}/busybox-cron ${D}${sysconfdir}/init.d/ 300 install -m 0755 ${UNPACKDIR}/busybox-cron ${D}${sysconfdir}/init.d/
289 fi 301 fi
290 if grep -q "CONFIG_HTTPD=y" ${B}/.config; then 302 if grep -q "CONFIG_HTTPD=y" ${B}/.config; then
291 install -m 0755 ${WORKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/ 303 install -m 0755 ${UNPACKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/
292 install -d ${D}/srv/www 304 install -d ${D}/srv/www
293 fi 305 fi
294 if grep -q "CONFIG_UDHCPD=y" ${B}/.config; then 306 if grep -q "CONFIG_UDHCPD=y" ${B}/.config; then
295 install -m 0755 ${WORKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/ 307 install -m 0755 ${UNPACKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/
296 fi 308 fi
297 if grep -q "CONFIG_HWCLOCK=y" ${B}/.config; then 309 if grep -q "CONFIG_HWCLOCK=y" ${B}/.config; then
298 install -m 0755 ${WORKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/ 310 install -m 0755 ${UNPACKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/
299 fi 311 fi
300 if grep -q "CONFIG_UDHCPC=y" ${B}/.config; then 312 if grep -q "CONFIG_UDHCPC=y" ${B}/.config; then
301 install -d ${D}${sysconfdir}/udhcpc.d 313 install -d ${D}${sysconfdir}/udhcpc.d
302 install -d ${D}${datadir}/udhcpc 314 install -d ${D}${datadir}/udhcpc
303 install -m 0755 ${WORKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default 315 install -m 0755 ${UNPACKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default
304 sed -i "s:/SBIN_DIR/:${base_sbindir}/:" ${D}${sysconfdir}/udhcpc.d/50default 316 sed -i "s:/SBIN_DIR/:${base_sbindir}/:" ${D}${sysconfdir}/udhcpc.d/50default
305 install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script 317 install -m 0755 ${UNPACKDIR}/default.script ${D}${datadir}/udhcpc/default.script
306 fi 318 fi
307 if grep -q "CONFIG_INETD=y" ${B}/.config; then 319 if grep -q "CONFIG_INETD=y" ${B}/.config; then
308 install -m 0755 ${WORKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN} 320 install -m 0755 ${UNPACKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN}
309 sed -i "s:/usr/sbin/:${sbindir}/:" ${D}${sysconfdir}/init.d/inetd.${BPN} 321 sed -i "s:/usr/sbin/:${sbindir}/:" ${D}${sysconfdir}/init.d/inetd.${BPN}
310 install -m 0644 ${WORKDIR}/inetd.conf ${D}${sysconfdir}/ 322 install -m 0644 ${UNPACKDIR}/inetd.conf ${D}${sysconfdir}/
311 fi 323 fi
312 if grep -q "CONFIG_MDEV=y" ${B}/.config; then 324 if grep -q "CONFIG_MDEV=y" ${B}/.config; then
313 install -m 0755 ${WORKDIR}/mdev ${D}${sysconfdir}/init.d/mdev 325 install -m 0755 ${UNPACKDIR}/mdev ${D}${sysconfdir}/init.d/mdev
314 if grep "CONFIG_FEATURE_MDEV_CONF=y" ${B}/.config; then 326 if grep "CONFIG_FEATURE_MDEV_CONF=y" ${B}/.config; then
315 install -m 644 ${WORKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf 327 install -m 644 ${UNPACKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf
316 install -d ${D}${sysconfdir}/mdev 328 install -d ${D}${sysconfdir}/mdev
317 install -m 0755 ${WORKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev 329 install -m 0755 ${UNPACKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev
318 install -m 0755 ${WORKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev 330 install -m 0755 ${UNPACKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev
319 fi 331 fi
320 fi 332 fi
321 if grep -q "CONFIG_INIT=y" ${B}/.config && ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','busybox','true','false',d)}; then 333 if grep -q "CONFIG_INIT=y" ${B}/.config && ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','busybox','true','false',d)}; then
322 install -D -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS 334 install -D -m 0755 ${UNPACKDIR}/rcS ${D}${sysconfdir}/init.d/rcS
323 install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK 335 install -D -m 0755 ${UNPACKDIR}/rcK ${D}${sysconfdir}/init.d/rcK
324 install -D -m 0755 ${WORKDIR}/rcS.default ${D}${sysconfdir}/default/rcS 336 install -D -m 0755 ${UNPACKDIR}/rcS.default ${D}${sysconfdir}/default/rcS
325 fi 337 fi
326 338
327 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 339 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
328 if grep -q "CONFIG_KLOGD=y" ${B}/.config; then 340 if grep -q "CONFIG_KLOGD=y" ${B}/.config; then
329 install -d ${D}${systemd_system_unitdir} 341 install -d ${D}${systemd_system_unitdir}
330 sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ 342 sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-klogd.service.in \
331 > ${D}${systemd_system_unitdir}/busybox-klogd.service 343 > ${D}${systemd_system_unitdir}/busybox-klogd.service
332 fi 344 fi
333 345
334 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then 346 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then
335 install -d ${D}${systemd_system_unitdir} 347 install -d ${D}${systemd_system_unitdir}
336 sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ 348 sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-syslog.service.in \
337 > ${D}${systemd_system_unitdir}/busybox-syslog.service 349 > ${D}${systemd_system_unitdir}/busybox-syslog.service
338 if [ ! -e ${D}${systemd_system_unitdir}/busybox-klogd.service ] ; then 350 if [ ! -e ${D}${systemd_system_unitdir}/busybox-klogd.service ] ; then
339 sed -i '/klog/d' ${D}${systemd_system_unitdir}/busybox-syslog.service 351 sed -i '/klog/d' ${D}${systemd_system_unitdir}/busybox-syslog.service
340 fi 352 fi
341 if [ -f ${WORKDIR}/busybox-syslog.default ] ; then 353 if [ -f ${UNPACKDIR}/busybox-syslog.default ] ; then
342 install -d ${D}${sysconfdir}/default 354 install -d ${D}${sysconfdir}/default
343 install -m 0644 ${WORKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog 355 install -m 0644 ${UNPACKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog
344 fi 356 fi
345 fi 357 fi
346 fi 358 fi
diff --git a/meta/recipes-core/busybox/busybox/0001-archival-disallow-path-traversals-CVE-2023-39810.patch b/meta/recipes-core/busybox/busybox/0001-archival-disallow-path-traversals-CVE-2023-39810.patch
new file mode 100644
index 0000000000..e76a4b128e
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-archival-disallow-path-traversals-CVE-2023-39810.patch
@@ -0,0 +1,141 @@
1From 42ce7953f48e5542297ff4381086b45ae28a02cf Mon Sep 17 00:00:00 2001
2From: Denys Vlasenko <vda.linux@googlemail.com>
3Date: Wed, 2 Oct 2024 10:12:05 +0200
4Subject: [PATCH] archival: disallow path traversals (CVE-2023-39810)
5
6Create new configure option for archival/libarchive based extractions to
7disallow path traversals.
8As this is a paranoid option and might introduce backward
9incompatibility, default it to no.
10
11Fixes: CVE-2023-39810
12
13Based on the patch by Peter Kaestle <peter.kaestle@nokia.com>
14
15function old new delta
16data_extract_all 921 945 +24
17strip_unsafe_prefix 101 102 +1
18------------------------------------------------------------------------------
19(add/remove: 0/0 grow/shrink: 2/0 up/down: 25/0) Total: 25 bytes
20
21Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
22
23CVE: CVE-2023-39810
24
25Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=9a8796436b9b0641e13480811902ea2ac57881d3]
26
27Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
28---
29 archival/Config.src | 11 +++++++++++
30 archival/libarchive/data_extract_all.c | 8 ++++++++
31 archival/libarchive/unsafe_prefix.c | 6 +++++-
32 scripts/kconfig/lxdialog/check-lxdialog.sh | 2 +-
33 testsuite/cpio.tests | 23 ++++++++++++++++++++++
34 5 files changed, 48 insertions(+), 2 deletions(-)
35
36diff --git a/archival/Config.src b/archival/Config.src
37index 6f4f30c43..cbcd7217c 100644
38--- a/archival/Config.src
39+++ b/archival/Config.src
40@@ -35,4 +35,15 @@ config FEATURE_LZMA_FAST
41 This option reduces decompression time by about 25% at the cost of
42 a 1K bigger binary.
43
44+config FEATURE_PATH_TRAVERSAL_PROTECTION
45+ bool "Prevent extraction of filenames with /../ path component"
46+ default n
47+ help
48+ busybox tar and unzip remove "PREFIX/../" (if it exists)
49+ from extracted names.
50+ This option enables this behavior for all other unpacking applets,
51+ such as cpio, ar, rpm.
52+ GNU cpio 2.15 has NO such sanity check.
53+# try other archivers and document their behavior?
54+
55 endmenu
56diff --git a/archival/libarchive/data_extract_all.c b/archival/libarchive/data_extract_all.c
57index 049c2c156..8a69711c1 100644
58--- a/archival/libarchive/data_extract_all.c
59+++ b/archival/libarchive/data_extract_all.c
60@@ -65,6 +65,14 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
61 } while (--n != 0);
62 }
63 #endif
64+#if ENABLE_FEATURE_PATH_TRAVERSAL_PROTECTION
65+ /* Strip leading "/" and up to last "/../" path component */
66+ dst_name = (char *)strip_unsafe_prefix(dst_name);
67+#endif
68+// ^^^ This may be a problem if some applets do need to extract absolute names.
69+// (Probably will need to invent ARCHIVE_ALLOW_UNSAFE_NAME flag).
70+// You might think that rpm needs it, but in my tests rpm's internal cpio
71+// archive has names like "./usr/bin/FOO", not "/usr/bin/FOO".
72
73 if (archive_handle->ah_flags & ARCHIVE_CREATE_LEADING_DIRS) {
74 char *slash = strrchr(dst_name, '/');
75diff --git a/archival/libarchive/unsafe_prefix.c b/archival/libarchive/unsafe_prefix.c
76index 33e487bf9..667081195 100644
77--- a/archival/libarchive/unsafe_prefix.c
78+++ b/archival/libarchive/unsafe_prefix.c
79@@ -14,7 +14,11 @@ const char* FAST_FUNC strip_unsafe_prefix(const char *str)
80 cp++;
81 continue;
82 }
83- if (is_prefixed_with(cp, "/../"+1)) {
84+ /* We are called lots of times.
85+ * is_prefixed_with(cp, "../") is slower than open-coding it,
86+ * with minimal code growth (~few bytes).
87+ */
88+ if (cp[0] == '.' && cp[1] == '.' && cp[2] == '/') {
89 cp += 3;
90 continue;
91 }
92diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
93index 7003e026a..b91a54be6 100755
94--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
95+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
96@@ -55,7 +55,7 @@ trap "rm -f $tmp" 0 1 2 3 15
97 check() {
98 $cc -x c - -o $tmp 2>/dev/null <<'EOF'
99 #include CURSES_LOC
100-main() {}
101+int main() { return 0; }
102 EOF
103 if [ $? != 0 ]; then
104 echo " *** Unable to find the ncurses libraries or the" 1>&2
105diff --git a/testsuite/cpio.tests b/testsuite/cpio.tests
106index 85e746589..a4462c53e 100755
107--- a/testsuite/cpio.tests
108+++ b/testsuite/cpio.tests
109@@ -154,6 +154,29 @@ testing "cpio -R with extract" \
110 " "" ""
111 SKIP=
112
113+# Create an archive containing a file with "../dont_write" filename.
114+# See that it will not be allowed to unpack.
115+# NB: GNU cpio 2.15 DOES NOT do such checks.
116+optional FEATURE_PATH_TRAVERSAL_PROTECTION
117+rm -rf cpio.testdir
118+mkdir -p cpio.testdir/prepare/inner
119+echo "file outside of destination was written" > cpio.testdir/prepare/dont_write
120+echo "data" > cpio.testdir/prepare/inner/to_extract
121+mkdir -p cpio.testdir/extract
122+testing "cpio extract file outside of destination" "\
123+(cd cpio.testdir/prepare/inner && echo -e '../dont_write\nto_extract' | cpio -o -H newc) | (cd cpio.testdir/extract && cpio -vi 2>&1)
124+echo \$?
125+ls cpio.testdir/dont_write 2>&1" \
126+"\
127+cpio: removing leading '../' from member names
128+../dont_write
129+to_extract
130+1 blocks
131+0
132+ls: cpio.testdir/dont_write: No such file or directory
133+" "" ""
134+SKIP=
135+
136 # Clean up
137 rm -rf cpio.testdir cpio.testdir2 2>/dev/null
138
139--
1402.48.1
141
diff --git a/meta/recipes-core/busybox/busybox/0001-cut-Fix-s-flag-to-omit-blank-lines.patch b/meta/recipes-core/busybox/busybox/0001-cut-Fix-s-flag-to-omit-blank-lines.patch
new file mode 100644
index 0000000000..a0a8607b23
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-cut-Fix-s-flag-to-omit-blank-lines.patch
@@ -0,0 +1,66 @@
1From 199606e960942c29fd8085be812edd3d3697825c Mon Sep 17 00:00:00 2001
2From: Colin McAllister <colinmca242@gmail.com>
3Date: Wed, 17 Jul 2024 07:58:52 -0500
4Subject: [PATCH 1/1] cut: Fix "-s" flag to omit blank lines
5
6Using cut with the delimiter flag ("-d") with the "-s" flag to only
7output lines containing the delimiter will print blank lines. This is
8deviant behavior from cut provided by GNU Coreutils. Blank lines should
9be omitted if "-s" is used with "-d".
10
11This change introduces a somewhat naiive, yet efficient solution, where
12line length is checked before looping though bytes. If line length is
13zero and the "-s" flag is used, the code will jump to parsing the next
14line to avoid printing a newline character.
15
16In addition, a test to cut.tests has been added to ensure that this
17regression is fixed and will not happen again in the future.
18
19Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2024-July/090834.html]
20
21Signed-off-by: Colin McAllister <colinmca242@gmail.com>
22---
23 coreutils/cut.c | 6 ++++++
24 testsuite/cut.tests | 9 +++++++++
25 2 files changed, 15 insertions(+)
26
27diff --git a/coreutils/cut.c b/coreutils/cut.c
28index 55bdd9386..b7f986f26 100644
29--- a/coreutils/cut.c
30+++ b/coreutils/cut.c
31@@ -152,6 +152,12 @@ static void cut_file(FILE *file, const char *delim, const char *odelim,
32 unsigned uu = 0, start = 0, end = 0, out = 0;
33 int dcount = 0;
34
35+ /* Blank line? */
36+ if (!linelen) {
37+ if (option_mask32 & CUT_OPT_SUPPRESS_FLGS)
38+ goto next_line;
39+ }
40+
41 /* Loop through bytes, finding next delimiter */
42 for (;;) {
43 /* End of current range? */
44diff --git a/testsuite/cut.tests b/testsuite/cut.tests
45index 2458c019c..0b401bc00 100755
46--- a/testsuite/cut.tests
47+++ b/testsuite/cut.tests
48@@ -65,6 +65,15 @@ testing "cut with -d -f( ) -s" "cut -d' ' -f3 -s input && echo yes" "yes\n" "$in
49 testing "cut with -d -f(a) -s" "cut -da -f3 -s input" "n\nsium:Jim\n\ncion:Ed\n" "$input" ""
50 testing "cut with -d -f(a) -s -n" "cut -da -f3 -s -n input" "n\nsium:Jim\n\ncion:Ed\n" "$input" ""
51
52+input="\
53+
54+foo bar baz
55+
56+bing bong boop
57+
58+"
59+testing "cut with -d -s omits blank lines" "cut -d' ' -f2 -s input" "bar\nbong\n" "$input" ""
60+
61 # substitute for awk
62 optional FEATURE_CUT_REGEX
63 testing "cut -DF" "cut -DF 2,7,5" \
64--
652.43.0
66
diff --git a/meta/recipes-core/busybox/busybox/0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch b/meta/recipes-core/busybox/busybox/0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch
new file mode 100644
index 0000000000..11ef2b6824
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch
@@ -0,0 +1,52 @@
1From 4e1eafc6e0de3e58cac9f62e57b552eddb50ca8e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 7 Mar 2021 17:30:24 -0800
4Subject: [PATCH] hwclock: Check for SYS_settimeofday before calling syscall
5
6Some newer architectures e.g. RISCV32 have 64bit time_t from get go and
7thusly do not have gettimeofday_time64/settimeofday_time64 implemented
8therefore check for SYS_settimeofday definition before making the
9syscall. Fixes build for riscv32 and it will bail out at runtime.
10
11This issue has been discussed on the musl mailing list, and
12the musl developers' opinion is that Busybox is wrong:
13
14https://www.openwall.com/lists/musl/2024/03/03/2
15https://www.openwall.com/lists/musl/2024/04/07/2
16
17The correct fix isn't clear, and in the mean time, the patch
18turns the build issue into a runtime error only on the problematic
19architecture (riscv32), which seems like a reasonable trade-off
20
21Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2021-March/088583.html]]
22Signed-off-by: Khem Raj <raj.khem@gmail.com>
23---
24 util-linux/hwclock.c | 7 +++++--
25 1 file changed, 5 insertions(+), 2 deletions(-)
26
27diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
28index c3fd0eb57..dea9c9a55 100644
29--- a/util-linux/hwclock.c
30+++ b/util-linux/hwclock.c
31@@ -132,6 +132,7 @@ static void show_clock(const char **pp_rtcname, int utc)
32
33 static void set_kernel_tz(const struct timezone *tz)
34 {
35+ int ret = 1;
36 #if LIBC_IS_MUSL
37 /* musl libc does not pass tz argument to syscall
38 * because "it's deprecated by POSIX, therefore it's fine
39@@ -140,9 +141,11 @@ static void set_kernel_tz(const struct timezone *tz)
40 #if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
41 # define SYS_settimeofday SYS_settimeofday_time32
42 #endif
43- int ret = syscall(SYS_settimeofday, NULL, tz);
44+#if defined(SYS_settimeofday)
45+ ret = syscall(SYS_settimeofday, NULL, tz);
46+#endif
47 #else
48- int ret = settimeofday(NULL, tz);
49+ ret = settimeofday(NULL, tz);
50 #endif
51 if (ret)
52 bb_simple_perror_msg_and_die("settimeofday");
diff --git a/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch b/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
index 4635250170..ceb3ad7250 100644
--- a/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
+++ b/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
@@ -5,7 +5,7 @@ Subject: [PATCH 1/2] libbb: sockaddr2str: ensure only printable characters are
5 returned for the hostname part 5 returned for the hostname part
6 6
7CVE: CVE-2022-28391 7CVE: CVE-2022-28391
8Upstream-Status: Pending 8Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15001]
9Signed-off-by: Ariadne Conill <ariadne@dereferenced.org> 9Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
10Signed-off-by: Steve Sakoman <steve@sakoman.com> 10Signed-off-by: Steve Sakoman <steve@sakoman.com>
11--- 11---
diff --git a/meta/recipes-core/busybox/busybox/0001-syslogd-fix-wrong-OPT_locallog-flag-detection.patch b/meta/recipes-core/busybox/busybox/0001-syslogd-fix-wrong-OPT_locallog-flag-detection.patch
new file mode 100644
index 0000000000..c71172a4f9
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-syslogd-fix-wrong-OPT_locallog-flag-detection.patch
@@ -0,0 +1,33 @@
1From 43ec36c0e3fbfd4191b18465a0554f4c1acf58d6 Mon Sep 17 00:00:00 2001
2From: Andrej Valek <andrej.v@skyrain.eu>
3Date: Wed, 16 Oct 2024 09:09:55 +0200
4Subject: [PATCH] syslogd: fix wrong OPT_locallog flag detection
5
6The OPT_locallog was set on "option_mask32" but checked on local
7"opts" variable. While this flag it's used on multiple places can't be
8has to be used with "option_mask32". Without this change syslogd
9is more-less unusable while no messages are logged locally.
10
11Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2024-October/090969.html]
12
13Signed-off-by: Andrej Valek <andrej.v@skyrain.eu>
14---
15 sysklogd/syslogd.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
19index 7558051f0..fa03aa280 100644
20--- a/sysklogd/syslogd.c
21+++ b/sysklogd/syslogd.c
22@@ -1179,7 +1179,7 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
23 }
24 }
25 #endif
26- if (!ENABLE_FEATURE_REMOTE_LOG || (opts & OPT_locallog)) {
27+ if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) {
28 recvbuf[sz] = '\0'; /* ensure it *is* NUL terminated */
29 split_escape_and_log(recvbuf, sz);
30 }
31--
322.34.1
33
diff --git a/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch b/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch
index 0d7409ddc3..1dbc3388a4 100644
--- a/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch
+++ b/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch
@@ -8,7 +8,7 @@ Otherwise, terminal sequences can be injected, which enables various terminal in
8attacks from DNS results. 8attacks from DNS results.
9 9
10CVE: CVE-2022-28391 10CVE: CVE-2022-28391
11Upstream-Status: Pending 11Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15001]
12Signed-off-by: Ariadne Conill <ariadne@dereferenced.org> 12Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
13Signed-off-by: Steve Sakoman <steve@sakoman.com> 13Signed-off-by: Steve Sakoman <steve@sakoman.com>
14--- 14---
diff --git a/meta/recipes-core/busybox/busybox/0002-start-stop-daemon-fix-tests.patch b/meta/recipes-core/busybox/busybox/0002-start-stop-daemon-fix-tests.patch
new file mode 100644
index 0000000000..a5abec4e53
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0002-start-stop-daemon-fix-tests.patch
@@ -0,0 +1,65 @@
1From 85fb09e278aff8f4b3e11d7ace0d1347f750487f Mon Sep 17 00:00:00 2001
2From: Andrej Valek <andrej.v@skyrain.eu>
3Date: Wed, 16 Oct 2024 10:11:01 +0200
4Subject: [PATCH] start-stop-daemon: fix tests
5
6- "/tmp" directory could be link to somewhere else, so deference it
7before comparing the expected path
8- run "start-stop-daemon with both -x and -a" test only if "/bin/false"
9is not a symlink.
10
11Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2024-October/090968.html]
12
13Signed-off-by: Andrej Valek <andrej.v@skyrain.eu>
14---
15 testsuite/start-stop-daemon.tests | 14 +++++++++-----
16 1 file changed, 9 insertions(+), 5 deletions(-)
17
18diff --git a/testsuite/start-stop-daemon.tests b/testsuite/start-stop-daemon.tests
19index e1e49ab5f..fd59859ef 100755
20--- a/testsuite/start-stop-daemon.tests
21+++ b/testsuite/start-stop-daemon.tests
22@@ -6,24 +6,27 @@
23
24 # testing "test name" "cmd" "expected result" "file input" "stdin"
25
26+# deference link to /tmp
27+TMP_DIR="$(readlink -f /tmp)"
28+
29 testing "start-stop-daemon -x without -a" \
30 'start-stop-daemon -S -x true 2>&1; echo $?' \
31 "0\n" \
32 "" ""
33
34 testing "start-stop-daemon -x with -d on existing directory" \
35- 'start-stop-daemon -S -d /tmp -x true 2>&1; echo $?' \
36+ 'start-stop-daemon -S -d $TMP_DIR -x true 2>&1; echo $?' \
37 "0\n" \
38 "" ""
39
40 testing "start-stop-daemon -x with -d on existing and check dir" \
41- 'output=$(start-stop-daemon -S -d /tmp -x pwd); echo $output' \
42- "/tmp\n" \
43+ 'output=$(start-stop-daemon -S -d $TMP_DIR -x pwd); echo $output' \
44+ "$TMP_DIR\n" \
45 "" ""
46
47 testing "start-stop-daemon -x with --chdir on existing and check dir" \
48- 'output=$(start-stop-daemon -S --chdir /tmp -x pwd); echo $output' \
49- "/tmp\n" \
50+ 'output=$(start-stop-daemon -S --chdir $TMP_DIR -x pwd); echo $output' \
51+ "$TMP_DIR\n" \
52 "" ""
53
54 testing "start-stop-daemon -a without -x" \
55@@ -48,6 +51,7 @@ testing "start-stop-daemon -x with -d on non-existing directory" \
56 #
57 # NB: this fails if /bin/false is a busybox symlink:
58 # busybox looks at argv[0] and says "qwerty: applet not found"
59+test ! -L /bin/false && \
60 testing "start-stop-daemon with both -x and -a" \
61 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \
62 "1\n" \
63--
642.34.1
65
diff --git a/meta/recipes-core/busybox/busybox/start-stop-false.patch b/meta/recipes-core/busybox/busybox/0003-start-stop-false.patch
index 3aef68329c..dd5f5b8e03 100644
--- a/meta/recipes-core/busybox/busybox/start-stop-false.patch
+++ b/meta/recipes-core/busybox/busybox/0003-start-stop-false.patch
@@ -9,11 +9,12 @@ diff --git a/testsuite/start-stop-daemon.tests b/testsuite/start-stop-daemon.tes
9index 0757b1288..aa6e9cc41 100755 9index 0757b1288..aa6e9cc41 100755
10--- a/testsuite/start-stop-daemon.tests 10--- a/testsuite/start-stop-daemon.tests
11+++ b/testsuite/start-stop-daemon.tests 11+++ b/testsuite/start-stop-daemon.tests
12@@ -27,10 +27,18 @@ testing "start-stop-daemon without -x and -a" \ 12@@ -50,11 +50,18 @@ testing "start-stop-daemon without -x and -a" \
13 # but at least it checks that pathname to exec() is correct 13 # but at least it checks that pathname to exec() is correct
14 # 14 #
15 # NB: this fails if /bin/false is a busybox symlink: 15 # NB: this fails if /bin/false is a busybox symlink:
16-# busybox looks at argv[0] and says "qwerty: applet not found" 16-# busybox looks at argv[0] and says "qwerty: applet not found"
17-test ! -L /bin/false && \
17-testing "start-stop-daemon with both -x and -a" \ 18-testing "start-stop-daemon with both -x and -a" \
18- 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \ 19- 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \
19- "1\n" \ 20- "1\n" \
@@ -21,15 +22,15 @@ index 0757b1288..aa6e9cc41 100755
21+# busybox looks at argv[0] and says "qwerty: applet not found", so 22+# busybox looks at argv[0] and says "qwerty: applet not found", so
22+# skip the test if false is busybox. 23+# skip the test if false is busybox.
23+case $(readlink /bin/false) in 24+case $(readlink /bin/false) in
24+ *busybox*) 25+ *busybox*)
25+ echo "SKIPPED: start-stop-daemon with both -x and -a (need non-busybox false)" 26+ echo "SKIPPED: start-stop-daemon with both -x and -a (need non-busybox false)"
26+ ;; 27+ ;;
27+ *) 28+ *)
28+ testing "start-stop-daemon with both -x and -a" \ 29+ testing "start-stop-daemon with both -x and -a" \
29+ 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \ 30+ 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \
30+ "1\n" \ 31+ "1\n" \
31+ "" "" 32+ "" ""
32+ ;; 33+ ;;
33+esac 34+esac
34 35
35 exit $FAILCOUNT 36 exit $FAILCOUNT
diff --git a/meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch b/meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch
new file mode 100644
index 0000000000..80cbc73fc4
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/busybox-1.36.1-no-cbq.patch
@@ -0,0 +1,61 @@
1Remove CBQ functionality from tc
2
36.8+ kernel has dropped CBQ support [1], Now that OE uses 6.9 for
4kernel-headers means we are hitting the undefined symbol
5TCA_CBQ_MAX [2]
6
7[1] https://github.com/torvalds/linux/commit/33241dca486264193ed68167c8eeae1fb197f3df
8[2] https://bugs.busybox.net/show_bug.cgi?id=15934
9
10Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15931]
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12
13diff -up busybox-1.36.1/networking/tc.c.no-cbq busybox-1.36.1/networking/tc.c
14--- busybox-1.36.1/networking/tc.c.no-cbq 2024-01-29 10:24:09.135082923 -0500
15+++ busybox-1.36.1/networking/tc.c 2024-01-29 10:28:12.009502552 -0500
16@@ -31,7 +31,7 @@
17 //usage: "qdisc [handle QHANDLE] [root|"IF_FEATURE_TC_INGRESS("ingress|")"parent CLASSID]\n"
18 /* //usage: "[estimator INTERVAL TIME_CONSTANT]\n" */
19 //usage: " [[QDISC_KIND] [help|OPTIONS]]\n"
20-//usage: " QDISC_KIND := [p|b]fifo|tbf|prio|cbq|red|etc.\n"
21+//usage: " QDISC_KIND := [p|b]fifo|tbf|prio|red|etc.\n"
22 //usage: "qdisc show [dev STRING]"IF_FEATURE_TC_INGRESS(" [ingress]")"\n"
23 //usage: "class [classid CLASSID] [root|parent CLASSID]\n"
24 //usage: " [[QDISC_KIND] [help|OPTIONS] ]\n"
25@@ -230,7 +230,7 @@ static int cbq_parse_opt(int argc, char
26 {
27 return 0;
28 }
29-#endif
30+
31 static int cbq_print_opt(struct rtattr *opt)
32 {
33 struct rtattr *tb[TCA_CBQ_MAX+1];
34@@ -322,6 +322,7 @@ static int cbq_print_opt(struct rtattr *
35 done:
36 return 0;
37 }
38+#endif
39
40 static FAST_FUNC int print_qdisc(
41 const struct sockaddr_nl *who UNUSED_PARAM,
42@@ -373,7 +374,8 @@ static FAST_FUNC int print_qdisc(
43 if (qqq == 0) { /* pfifo_fast aka prio */
44 prio_print_opt(tb[TCA_OPTIONS]);
45 } else if (qqq == 1) { /* class based queuing */
46- cbq_print_opt(tb[TCA_OPTIONS]);
47+ /* cbq_print_opt(tb[TCA_OPTIONS]); */
48+ printf("cbq not supported");
49 } else {
50 /* don't know how to print options for this qdisc */
51 printf("(options for %s)", name);
52@@ -444,7 +446,8 @@ static FAST_FUNC int print_class(
53 /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
54 } else if (qqq == 1) { /* class based queuing */
55 /* cbq_print_copt() is identical to cbq_print_opt(). */
56- cbq_print_opt(tb[TCA_OPTIONS]);
57+ /* cbq_print_opt(tb[TCA_OPTIONS]); */
58+ printf("cbq not supported");
59 } else {
60 /* don't know how to print options for this class */
61 printf("(options for %s)", name);
diff --git a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
deleted file mode 100644
index 948932a3e8..0000000000
--- a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
+++ /dev/null
@@ -1,87 +0,0 @@
1From 53626cd06a3ef05ed847daea802ef0aa9661caa7 Mon Sep 17 00:00:00 2001
2From: Anders Darander <anders@chargestorm.se>
3Date: Thu, 3 Nov 2011 08:51:31 +0100
4Subject: [PATCH] busybox-udhcpc-no_deconfig.patch
5
6Upstream-Status: Pending
7
8Add a new option -D to the udhcpc client that allows for
9dhcp renewal to occur without having to down the interface
10in the process.
11
12Signed-off-by: Greg Moffatt <greg.moffatt@windriver.com>
13
14Updated to latest Busybox 1.17.3
15
16Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
17
18Updated to Busybox 1.18.4
19option spec is changed
20
21Signed-off-by: Qing He <qing.he@intel.com>
22
23Updated to Busybox 1.19.3
24
25Signed-off-by: Anders Darander <anders@chargestorm.se>
26
27Fixed options -b, -a and -P.
28
29Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
30---
31 networking/udhcp/dhcpc.c | 29 ++++++++++++++++------
32 1 file changed, 21 insertions(+), 8 deletions(-)
33
34Index: busybox-1.34.0/networking/udhcp/dhcpc.c
35===================================================================
36--- busybox-1.34.0.orig/networking/udhcp/dhcpc.c
37+++ busybox-1.34.0/networking/udhcp/dhcpc.c
38@@ -48,6 +48,8 @@
39 };
40 #endif
41
42+/* option whether to down the interface when reconfiguring */
43+static int allow_deconfig = 1;
44
45 /* "struct client_data_t client_data" is in bb_common_bufsiz1 */
46
47@@ -100,8 +102,10 @@
48 OPT_x = 1 << 16,
49 OPT_f = 1 << 17,
50 OPT_B = 1 << 18,
51+ OPT_D = 1 << 19,
52 /* The rest has variable bit positions, need to be clever */
53 OPTBIT_B = 18,
54+ OPTBIT_D = 19,
55 USE_FOR_MMU( OPTBIT_b,)
56 IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,)
57 IF_FEATURE_UDHCP_PORT( OPTBIT_P,)
58@@ -587,7 +591,8 @@
59
60 static void d4_run_script_deconfig(void)
61 {
62- d4_run_script(NULL, "deconfig");
63+ if (allow_deconfig)
64+ d4_run_script(NULL, "deconfig");
65 }
66
67 /*** Sending/receiving packets ***/
68@@ -1244,7 +1249,7 @@
69 /* Parse command line */
70 opt = getopt32long(argv, "^"
71 /* O,x: list; -T,-t,-A take numeric param */
72- "CV:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fB"
73+ "CV:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fBD"
74 USE_FOR_MMU("b")
75 IF_FEATURE_UDHCPC_ARPING("a::")
76 IF_FEATURE_UDHCP_PORT("P:")
77@@ -1361,6 +1366,10 @@
78 logmode |= LOGMODE_SYSLOG;
79 }
80
81+ if (opt & OPT_D) {
82+ allow_deconfig = 0;
83+ }
84+
85 /* Create pidfile */
86 write_pidfile(client_data.pidfile);
87 /* Goes to stdout (unless NOMMU) and possibly syslog */
diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig
index f3d545dc3f..22c9dafcb3 100644
--- a/meta/recipes-core/busybox/busybox/defconfig
+++ b/meta/recipes-core/busybox/busybox/defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Busybox version: 1.36.0 3# Busybox version: 1.37.0
4# Tue Jan 3 14:17:01 2023
5# 4#
6CONFIG_HAVE_DOT_CONFIG=y 5CONFIG_HAVE_DOT_CONFIG=y
7 6
@@ -17,6 +16,7 @@ CONFIG_SHOW_USAGE=y
17# CONFIG_FEATURE_VERBOSE_USAGE is not set 16# CONFIG_FEATURE_VERBOSE_USAGE is not set
18CONFIG_FEATURE_COMPRESS_USAGE=y 17CONFIG_FEATURE_COMPRESS_USAGE=y
19CONFIG_LFS=y 18CONFIG_LFS=y
19CONFIG_TIME64=y
20# CONFIG_PAM is not set 20# CONFIG_PAM is not set
21CONFIG_FEATURE_DEVPTS=y 21CONFIG_FEATURE_DEVPTS=y
22CONFIG_FEATURE_UTMP=y 22CONFIG_FEATURE_UTMP=y
@@ -93,6 +93,9 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
93# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set 93# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
94CONFIG_PASSWORD_MINLEN=6 94CONFIG_PASSWORD_MINLEN=6
95CONFIG_MD5_SMALL=1 95CONFIG_MD5_SMALL=1
96CONFIG_SHA1_SMALL=3
97CONFIG_SHA1_HWACCEL=y
98CONFIG_SHA256_HWACCEL=y
96CONFIG_SHA3_SMALL=1 99CONFIG_SHA3_SMALL=1
97CONFIG_FEATURE_NON_POSIX_CP=y 100CONFIG_FEATURE_NON_POSIX_CP=y
98# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set 101# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
@@ -113,13 +116,13 @@ CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
113# CONFIG_FEATURE_EDITING_WINCH is not set 116# CONFIG_FEATURE_EDITING_WINCH is not set
114# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set 117# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
115# CONFIG_LOCALE_SUPPORT is not set 118# CONFIG_LOCALE_SUPPORT is not set
116CONFIG_UNICODE_SUPPORT=y 119# CONFIG_UNICODE_SUPPORT is not set
117# CONFIG_UNICODE_USING_LOCALE is not set 120# CONFIG_UNICODE_USING_LOCALE is not set
118CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y 121# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
119CONFIG_SUBST_WCHAR=63 122CONFIG_SUBST_WCHAR=0
120CONFIG_LAST_SUPPORTED_WCHAR=767 123CONFIG_LAST_SUPPORTED_WCHAR=0
121CONFIG_UNICODE_COMBINING_WCHARS=y 124# CONFIG_UNICODE_COMBINING_WCHARS is not set
122CONFIG_UNICODE_WIDE_WCHARS=y 125# CONFIG_UNICODE_WIDE_WCHARS is not set
123# CONFIG_UNICODE_BIDI_SUPPORT is not set 126# CONFIG_UNICODE_BIDI_SUPPORT is not set
124# CONFIG_UNICODE_NEUTRAL_TABLE is not set 127# CONFIG_UNICODE_NEUTRAL_TABLE is not set
125# CONFIG_UNICODE_PRESERVE_BROKEN is not set 128# CONFIG_UNICODE_PRESERVE_BROKEN is not set
@@ -145,7 +148,7 @@ CONFIG_FEATURE_SEAMLESS_Z=y
145# CONFIG_UNCOMPRESS is not set 148# CONFIG_UNCOMPRESS is not set
146CONFIG_GUNZIP=y 149CONFIG_GUNZIP=y
147CONFIG_ZCAT=y 150CONFIG_ZCAT=y
148CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y 151# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set
149CONFIG_BUNZIP2=y 152CONFIG_BUNZIP2=y
150CONFIG_BZCAT=y 153CONFIG_BZCAT=y
151# CONFIG_UNLZMA is not set 154# CONFIG_UNLZMA is not set
@@ -278,8 +281,8 @@ CONFIG_FEATURE_LS_USERNAME=y
278CONFIG_FEATURE_LS_COLOR=y 281CONFIG_FEATURE_LS_COLOR=y
279# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set 282# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
280CONFIG_MD5SUM=y 283CONFIG_MD5SUM=y
281CONFIG_SHA1SUM=y 284# CONFIG_SHA1SUM is not set
282CONFIG_SHA256SUM=y 285# CONFIG_SHA256SUM is not set
283# CONFIG_SHA512SUM is not set 286# CONFIG_SHA512SUM is not set
284# CONFIG_SHA3SUM is not set 287# CONFIG_SHA3SUM is not set
285 288
@@ -383,8 +386,8 @@ CONFIG_DEFAULT_SETFONT_DIR=""
383CONFIG_LOADKMAP=y 386CONFIG_LOADKMAP=y
384CONFIG_OPENVT=y 387CONFIG_OPENVT=y
385CONFIG_RESET=y 388CONFIG_RESET=y
386CONFIG_RESIZE=y 389# CONFIG_RESIZE is not set
387CONFIG_FEATURE_RESIZE_PRINT=y 390# CONFIG_FEATURE_RESIZE_PRINT is not set
388CONFIG_SETCONSOLE=y 391CONFIG_SETCONSOLE=y
389# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set 392# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
390# CONFIG_SETKEYCODES is not set 393# CONFIG_SETKEYCODES is not set
@@ -396,10 +399,10 @@ CONFIG_SETCONSOLE=y
396# 399#
397# CONFIG_PIPE_PROGRESS is not set 400# CONFIG_PIPE_PROGRESS is not set
398CONFIG_RUN_PARTS=y 401CONFIG_RUN_PARTS=y
399CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y 402# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
400# CONFIG_FEATURE_RUN_PARTS_FANCY is not set 403# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
401CONFIG_START_STOP_DAEMON=y 404CONFIG_START_STOP_DAEMON=y
402CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y 405# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
403CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y 406CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
404CONFIG_WHICH=y 407CONFIG_WHICH=y
405 408
@@ -466,6 +469,7 @@ CONFIG_FEATURE_FIND_NEWER=y
466CONFIG_FEATURE_FIND_SAMEFILE=y 469CONFIG_FEATURE_FIND_SAMEFILE=y
467CONFIG_FEATURE_FIND_EXEC=y 470CONFIG_FEATURE_FIND_EXEC=y
468CONFIG_FEATURE_FIND_EXEC_PLUS=y 471CONFIG_FEATURE_FIND_EXEC_PLUS=y
472CONFIG_FEATURE_FIND_EXEC_OK=y
469CONFIG_FEATURE_FIND_USER=y 473CONFIG_FEATURE_FIND_USER=y
470CONFIG_FEATURE_FIND_GROUP=y 474CONFIG_FEATURE_FIND_GROUP=y
471CONFIG_FEATURE_FIND_NOT=y 475CONFIG_FEATURE_FIND_NOT=y
@@ -520,41 +524,41 @@ CONFIG_INIT_TERMINAL_TYPE=""
520# 524#
521# Login/Password Management Utilities 525# Login/Password Management Utilities
522# 526#
523CONFIG_FEATURE_SHADOWPASSWDS=y 527# CONFIG_FEATURE_SHADOWPASSWDS is not set
524# CONFIG_USE_BB_PWD_GRP is not set 528# CONFIG_USE_BB_PWD_GRP is not set
525# CONFIG_USE_BB_SHADOW is not set 529# CONFIG_USE_BB_SHADOW is not set
526CONFIG_USE_BB_CRYPT=y 530CONFIG_USE_BB_CRYPT=y
527# CONFIG_USE_BB_CRYPT_SHA is not set 531# CONFIG_USE_BB_CRYPT_SHA is not set
528# CONFIG_ADD_SHELL is not set 532# CONFIG_ADD_SHELL is not set
529# CONFIG_REMOVE_SHELL is not set 533# CONFIG_REMOVE_SHELL is not set
530CONFIG_ADDGROUP=y 534# CONFIG_ADDGROUP is not set
531# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set 535# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
532CONFIG_ADDUSER=y 536# CONFIG_ADDUSER is not set
533# CONFIG_FEATURE_CHECK_NAMES is not set 537# CONFIG_FEATURE_CHECK_NAMES is not set
534CONFIG_LAST_ID=60000 538CONFIG_LAST_ID=0
535CONFIG_FIRST_SYSTEM_ID=100 539CONFIG_FIRST_SYSTEM_ID=0
536CONFIG_LAST_SYSTEM_ID=999 540CONFIG_LAST_SYSTEM_ID=0
537# CONFIG_CHPASSWD is not set 541# CONFIG_CHPASSWD is not set
538CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="" 542CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
539# CONFIG_CRYPTPW is not set 543# CONFIG_CRYPTPW is not set
540# CONFIG_MKPASSWD is not set 544# CONFIG_MKPASSWD is not set
541CONFIG_DELUSER=y 545# CONFIG_DELUSER is not set
542CONFIG_DELGROUP=y 546# CONFIG_DELGROUP is not set
543# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set 547# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
544CONFIG_GETTY=y 548# CONFIG_GETTY is not set
545CONFIG_LOGIN=y 549# CONFIG_LOGIN is not set
546# CONFIG_LOGIN_SESSION_AS_CHILD is not set 550# CONFIG_LOGIN_SESSION_AS_CHILD is not set
547# CONFIG_LOGIN_SCRIPTS is not set 551# CONFIG_LOGIN_SCRIPTS is not set
548# CONFIG_FEATURE_NOLOGIN is not set 552# CONFIG_FEATURE_NOLOGIN is not set
549# CONFIG_FEATURE_SECURETTY is not set 553# CONFIG_FEATURE_SECURETTY is not set
550CONFIG_PASSWD=y 554# CONFIG_PASSWD is not set
551# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set 555# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
552CONFIG_SU=y 556# CONFIG_SU is not set
553# CONFIG_FEATURE_SU_SYSLOG is not set 557# CONFIG_FEATURE_SU_SYSLOG is not set
554# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set 558# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
555# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set 559# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
556CONFIG_SULOGIN=y 560# CONFIG_SULOGIN is not set
557CONFIG_VLOCK=y 561# CONFIG_VLOCK is not set
558 562
559# 563#
560# Linux Ext2 FS Progs 564# Linux Ext2 FS Progs
@@ -601,8 +605,8 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
601# CONFIG_ACPID is not set 605# CONFIG_ACPID is not set
602# CONFIG_FEATURE_ACPID_COMPAT is not set 606# CONFIG_FEATURE_ACPID_COMPAT is not set
603# CONFIG_BLKDISCARD is not set 607# CONFIG_BLKDISCARD is not set
604CONFIG_BLKID=y 608# CONFIG_BLKID is not set
605CONFIG_FEATURE_BLKID_TYPE=y 609# CONFIG_FEATURE_BLKID_TYPE is not set
606# CONFIG_BLOCKDEV is not set 610# CONFIG_BLOCKDEV is not set
607# CONFIG_CAL is not set 611# CONFIG_CAL is not set
608# CONFIG_CHRT is not set 612# CONFIG_CHRT is not set
@@ -632,8 +636,8 @@ CONFIG_FLOCK=y
632# CONFIG_FSCK_MINIX is not set 636# CONFIG_FSCK_MINIX is not set
633# CONFIG_FSFREEZE is not set 637# CONFIG_FSFREEZE is not set
634CONFIG_FSTRIM=y 638CONFIG_FSTRIM=y
635CONFIG_GETOPT=y 639# CONFIG_GETOPT is not set
636CONFIG_FEATURE_GETOPT_LONG=y 640# CONFIG_FEATURE_GETOPT_LONG is not set
637CONFIG_HEXDUMP=y 641CONFIG_HEXDUMP=y
638# CONFIG_HD is not set 642# CONFIG_HD is not set
639# CONFIG_XXD is not set 643# CONFIG_XXD is not set
@@ -670,7 +674,7 @@ CONFIG_MOUNT=y
670# CONFIG_FEATURE_MOUNT_FAKE is not set 674# CONFIG_FEATURE_MOUNT_FAKE is not set
671# CONFIG_FEATURE_MOUNT_VERBOSE is not set 675# CONFIG_FEATURE_MOUNT_VERBOSE is not set
672# CONFIG_FEATURE_MOUNT_HELPERS is not set 676# CONFIG_FEATURE_MOUNT_HELPERS is not set
673CONFIG_FEATURE_MOUNT_LABEL=y 677# CONFIG_FEATURE_MOUNT_LABEL is not set
674# CONFIG_FEATURE_MOUNT_NFS is not set 678# CONFIG_FEATURE_MOUNT_NFS is not set
675# CONFIG_FEATURE_MOUNT_CIFS is not set 679# CONFIG_FEATURE_MOUNT_CIFS is not set
676CONFIG_FEATURE_MOUNT_FLAGS=y 680CONFIG_FEATURE_MOUNT_FLAGS=y
@@ -685,7 +689,7 @@ CONFIG_RDATE=y
685# CONFIG_RDEV is not set 689# CONFIG_RDEV is not set
686# CONFIG_READPROFILE is not set 690# CONFIG_READPROFILE is not set
687CONFIG_RENICE=y 691CONFIG_RENICE=y
688CONFIG_REV=y 692# CONFIG_REV is not set
689# CONFIG_RTCWAKE is not set 693# CONFIG_RTCWAKE is not set
690# CONFIG_SCRIPT is not set 694# CONFIG_SCRIPT is not set
691# CONFIG_SCRIPTREPLAY is not set 695# CONFIG_SCRIPTREPLAY is not set
@@ -718,19 +722,15 @@ CONFIG_FEATURE_UMOUNT_ALL=y
718CONFIG_FEATURE_MOUNT_LOOP=y 722CONFIG_FEATURE_MOUNT_LOOP=y
719CONFIG_FEATURE_MOUNT_LOOP_CREATE=y 723CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
720# CONFIG_FEATURE_MTAB_SUPPORT is not set 724# CONFIG_FEATURE_MTAB_SUPPORT is not set
721CONFIG_VOLUMEID=y 725# CONFIG_VOLUMEID is not set
722
723#
724# Filesystem/Volume identification
725#
726# CONFIG_FEATURE_VOLUMEID_BCACHE is not set 726# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
727CONFIG_FEATURE_VOLUMEID_BTRFS=y 727# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
728# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set 728# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
729CONFIG_FEATURE_VOLUMEID_EROFS=y 729# CONFIG_FEATURE_VOLUMEID_EROFS is not set
730# CONFIG_FEATURE_VOLUMEID_EXFAT is not set 730# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
731CONFIG_FEATURE_VOLUMEID_EXT=y 731# CONFIG_FEATURE_VOLUMEID_EXT is not set
732CONFIG_FEATURE_VOLUMEID_F2FS=y 732# CONFIG_FEATURE_VOLUMEID_F2FS is not set
733CONFIG_FEATURE_VOLUMEID_FAT=y 733# CONFIG_FEATURE_VOLUMEID_FAT is not set
734# CONFIG_FEATURE_VOLUMEID_HFS is not set 734# CONFIG_FEATURE_VOLUMEID_HFS is not set
735# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set 735# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
736# CONFIG_FEATURE_VOLUMEID_JFS is not set 736# CONFIG_FEATURE_VOLUMEID_JFS is not set
@@ -744,7 +744,7 @@ CONFIG_FEATURE_VOLUMEID_FAT=y
744# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set 744# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
745# CONFIG_FEATURE_VOLUMEID_REISERFS is not set 745# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
746# CONFIG_FEATURE_VOLUMEID_ROMFS is not set 746# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
747CONFIG_FEATURE_VOLUMEID_SQUASHFS=y 747# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
748# CONFIG_FEATURE_VOLUMEID_SYSV is not set 748# CONFIG_FEATURE_VOLUMEID_SYSV is not set
749# CONFIG_FEATURE_VOLUMEID_UBIFS is not set 749# CONFIG_FEATURE_VOLUMEID_UBIFS is not set
750# CONFIG_FEATURE_VOLUMEID_UDF is not set 750# CONFIG_FEATURE_VOLUMEID_UDF is not set
@@ -792,6 +792,7 @@ CONFIG_FEATURE_CROND_DIR=""
792# CONFIG_FLASH_LOCK is not set 792# CONFIG_FLASH_LOCK is not set
793# CONFIG_FLASH_UNLOCK is not set 793# CONFIG_FLASH_UNLOCK is not set
794# CONFIG_FLASHCP is not set 794# CONFIG_FLASHCP is not set
795CONFIG_GETFATTR=y
795# CONFIG_HDPARM is not set 796# CONFIG_HDPARM is not set
796# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set 797# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
797# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set 798# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
@@ -882,6 +883,7 @@ CONFIG_FEATURE_HWIB=y
882CONFIG_HOSTNAME=y 883CONFIG_HOSTNAME=y
883CONFIG_DNSDOMAINNAME=y 884CONFIG_DNSDOMAINNAME=y
884# CONFIG_HTTPD is not set 885# CONFIG_HTTPD is not set
886CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0
885# CONFIG_FEATURE_HTTPD_RANGES is not set 887# CONFIG_FEATURE_HTTPD_RANGES is not set
886# CONFIG_FEATURE_HTTPD_SETUID is not set 888# CONFIG_FEATURE_HTTPD_SETUID is not set
887# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set 889# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
@@ -897,11 +899,11 @@ CONFIG_DNSDOMAINNAME=y
897# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set 899# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set
898# CONFIG_FEATURE_HTTPD_DATE is not set 900# CONFIG_FEATURE_HTTPD_DATE is not set
899# CONFIG_FEATURE_HTTPD_ACL_IP is not set 901# CONFIG_FEATURE_HTTPD_ACL_IP is not set
900CONFIG_IFCONFIG=y 902# CONFIG_IFCONFIG is not set
901CONFIG_FEATURE_IFCONFIG_STATUS=y 903# CONFIG_FEATURE_IFCONFIG_STATUS is not set
902# CONFIG_FEATURE_IFCONFIG_SLIP is not set 904# CONFIG_FEATURE_IFCONFIG_SLIP is not set
903# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set 905# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
904CONFIG_FEATURE_IFCONFIG_HW=y 906# CONFIG_FEATURE_IFCONFIG_HW is not set
905# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set 907# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
906# CONFIG_IFENSLAVE is not set 908# CONFIG_IFENSLAVE is not set
907# CONFIG_IFPLUGD is not set 909# CONFIG_IFPLUGD is not set
@@ -929,6 +931,7 @@ CONFIG_IP=y
929# CONFIG_IPNEIGH is not set 931# CONFIG_IPNEIGH is not set
930CONFIG_FEATURE_IP_ADDRESS=y 932CONFIG_FEATURE_IP_ADDRESS=y
931CONFIG_FEATURE_IP_LINK=y 933CONFIG_FEATURE_IP_LINK=y
934# CONFIG_FEATURE_IP_LINK_CAN is not set
932CONFIG_FEATURE_IP_ROUTE=y 935CONFIG_FEATURE_IP_ROUTE=y
933CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" 936CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
934CONFIG_FEATURE_IP_TUNNEL=y 937CONFIG_FEATURE_IP_TUNNEL=y
@@ -947,7 +950,7 @@ CONFIG_NC=y
947# CONFIG_NC_SERVER is not set 950# CONFIG_NC_SERVER is not set
948# CONFIG_NC_EXTRA is not set 951# CONFIG_NC_EXTRA is not set
949# CONFIG_NC_110_COMPAT is not set 952# CONFIG_NC_110_COMPAT is not set
950CONFIG_NETSTAT=y 953# CONFIG_NETSTAT is not set
951# CONFIG_FEATURE_NETSTAT_WIDE is not set 954# CONFIG_FEATURE_NETSTAT_WIDE is not set
952# CONFIG_FEATURE_NETSTAT_PRG is not set 955# CONFIG_FEATURE_NETSTAT_PRG is not set
953CONFIG_NSLOOKUP=y 956CONFIG_NSLOOKUP=y
@@ -961,7 +964,7 @@ CONFIG_PING=y
961CONFIG_PING6=y 964CONFIG_PING6=y
962CONFIG_FEATURE_FANCY_PING=y 965CONFIG_FEATURE_FANCY_PING=y
963# CONFIG_PSCAN is not set 966# CONFIG_PSCAN is not set
964CONFIG_ROUTE=y 967# CONFIG_ROUTE is not set
965# CONFIG_SLATTACH is not set 968# CONFIG_SLATTACH is not set
966# CONFIG_SSL_CLIENT is not set 969# CONFIG_SSL_CLIENT is not set
967# CONFIG_TC is not set 970# CONFIG_TC is not set
@@ -974,6 +977,7 @@ CONFIG_FEATURE_TELNET_AUTOLOGIN=y
974CONFIG_FEATURE_TELNET_WIDTH=y 977CONFIG_FEATURE_TELNET_WIDTH=y
975# CONFIG_TELNETD is not set 978# CONFIG_TELNETD is not set
976# CONFIG_FEATURE_TELNETD_STANDALONE is not set 979# CONFIG_FEATURE_TELNETD_STANDALONE is not set
980CONFIG_FEATURE_TELNETD_PORT_DEFAULT=0
977# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set 981# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
978CONFIG_TFTP=y 982CONFIG_TFTP=y
979# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set 983# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
@@ -983,7 +987,7 @@ CONFIG_FEATURE_TFTP_GET=y
983CONFIG_FEATURE_TFTP_PUT=y 987CONFIG_FEATURE_TFTP_PUT=y
984# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set 988# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
985# CONFIG_TFTP_DEBUG is not set 989# CONFIG_TFTP_DEBUG is not set
986CONFIG_TLS=y 990# CONFIG_TLS is not set
987CONFIG_TRACEROUTE=y 991CONFIG_TRACEROUTE=y
988# CONFIG_TRACEROUTE6 is not set 992# CONFIG_TRACEROUTE6 is not set
989# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set 993# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
@@ -992,16 +996,17 @@ CONFIG_TRACEROUTE=y
992# CONFIG_FEATURE_TUNCTL_UG is not set 996# CONFIG_FEATURE_TUNCTL_UG is not set
993# CONFIG_VCONFIG is not set 997# CONFIG_VCONFIG is not set
994CONFIG_WGET=y 998CONFIG_WGET=y
995CONFIG_FEATURE_WGET_LONG_OPTIONS=y 999# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
996CONFIG_FEATURE_WGET_STATUSBAR=y 1000CONFIG_FEATURE_WGET_STATUSBAR=y
997CONFIG_FEATURE_WGET_FTP=y 1001CONFIG_FEATURE_WGET_FTP=y
998CONFIG_FEATURE_WGET_AUTHENTICATION=y 1002CONFIG_FEATURE_WGET_AUTHENTICATION=y
999CONFIG_FEATURE_WGET_TIMEOUT=y 1003CONFIG_FEATURE_WGET_TIMEOUT=y
1000CONFIG_FEATURE_WGET_HTTPS=y 1004# CONFIG_FEATURE_WGET_HTTPS is not set
1001# CONFIG_FEATURE_WGET_OPENSSL is not set 1005CONFIG_FEATURE_WGET_OPENSSL=y
1002# CONFIG_WHOIS is not set 1006# CONFIG_WHOIS is not set
1003# CONFIG_ZCIP is not set 1007# CONFIG_ZCIP is not set
1004CONFIG_UDHCPD=y 1008CONFIG_UDHCPD=y
1009CONFIG_FEATURE_UDHCPD_BOOTP=y
1005# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set 1010# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
1006# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set 1011# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
1007CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" 1012CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
@@ -1011,6 +1016,7 @@ CONFIG_UDHCPC=y
1011CONFIG_FEATURE_UDHCPC_ARPING=y 1016CONFIG_FEATURE_UDHCPC_ARPING=y
1012CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y 1017CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
1013CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" 1018CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
1019CONFIG_UDHCPC6_DEFAULT_SCRIPT=""
1014# CONFIG_UDHCPC6 is not set 1020# CONFIG_UDHCPC6 is not set
1015# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set 1021# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
1016# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set 1022# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
@@ -1020,6 +1026,7 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
1020# 1026#
1021# Common options for DHCP applets 1027# Common options for DHCP applets
1022# 1028#
1029CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0"
1023# CONFIG_FEATURE_UDHCP_PORT is not set 1030# CONFIG_FEATURE_UDHCP_PORT is not set
1024CONFIG_UDHCP_DEBUG=0 1031CONFIG_UDHCP_DEBUG=0
1025CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 1032CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
@@ -1059,7 +1066,7 @@ CONFIG_KILLALL=y
1059# CONFIG_LSOF is not set 1066# CONFIG_LSOF is not set
1060# CONFIG_MPSTAT is not set 1067# CONFIG_MPSTAT is not set
1061# CONFIG_NMETER is not set 1068# CONFIG_NMETER is not set
1062CONFIG_PGREP=y 1069# CONFIG_PGREP is not set
1063# CONFIG_PKILL is not set 1070# CONFIG_PKILL is not set
1064CONFIG_PIDOF=y 1071CONFIG_PIDOF=y
1065# CONFIG_FEATURE_PIDOF_SINGLE is not set 1072# CONFIG_FEATURE_PIDOF_SINGLE is not set
@@ -1203,21 +1210,17 @@ CONFIG_FEATURE_SH_HISTFILESIZE=y
1203# System Logging Utilities 1210# System Logging Utilities
1204# 1211#
1205CONFIG_KLOGD=y 1212CONFIG_KLOGD=y
1206
1207#
1208# klogd should not be used together with syslog to kernel printk buffer
1209#
1210CONFIG_FEATURE_KLOGD_KLOGCTL=y 1213CONFIG_FEATURE_KLOGD_KLOGCTL=y
1211CONFIG_LOGGER=y 1214CONFIG_LOGGER=y
1212CONFIG_LOGREAD=y 1215# CONFIG_LOGREAD is not set
1213CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y 1216# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
1214CONFIG_SYSLOGD=y 1217# CONFIG_SYSLOGD is not set
1215CONFIG_FEATURE_ROTATE_LOGFILE=y 1218# CONFIG_FEATURE_ROTATE_LOGFILE is not set
1216CONFIG_FEATURE_REMOTE_LOG=y 1219# CONFIG_FEATURE_REMOTE_LOG is not set
1217CONFIG_FEATURE_SYSLOGD_DUP=y 1220# CONFIG_FEATURE_SYSLOGD_DUP is not set
1218CONFIG_FEATURE_SYSLOGD_CFG=y 1221# CONFIG_FEATURE_SYSLOGD_CFG is not set
1219# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set 1222# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
1220CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 1223CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
1221CONFIG_FEATURE_IPC_SYSLOG=y 1224# CONFIG_FEATURE_IPC_SYSLOG is not set
1222CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=64 1225CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
1223CONFIG_FEATURE_KMSG_SYSLOG=y 1226# CONFIG_FEATURE_KMSG_SYSLOG is not set
diff --git a/meta/recipes-core/busybox/busybox/getopts.cfg b/meta/recipes-core/busybox/busybox/getopts.cfg
index 8db0a4a8f2..26a2e7add9 100644
--- a/meta/recipes-core/busybox/busybox/getopts.cfg
+++ b/meta/recipes-core/busybox/busybox/getopts.cfg
@@ -1,3 +1 @@
1CONFIG_GETOPT=y CONFIG_GETOPT=y
2CONFIG_LONG_OPTS=y
3CONFIG_FEATURE_GETOPT_LONG=y
diff --git a/meta/recipes-core/busybox/busybox/login-utilities.cfg b/meta/recipes-core/busybox/busybox/login-utilities.cfg
index cc9b2db502..8a21e80619 100644
--- a/meta/recipes-core/busybox/busybox/login-utilities.cfg
+++ b/meta/recipes-core/busybox/busybox/login-utilities.cfg
@@ -1,5 +1,8 @@
1CONFIG_FEATURE_SHADOWPASSWDS=y 1CONFIG_FEATURE_SHADOWPASSWDS=y
2CONFIG_ADDUSER=y 2CONFIG_ADDUSER=y
3CONFIG_LAST_ID=60000
4CONFIG_FIRST_SYSTEM_ID=100
5CONFIG_LAST_SYSTEM_ID=999
3CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y 6CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
4CONFIG_ADDGROUP=y 7CONFIG_ADDGROUP=y
5CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y 8CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
diff --git a/meta/recipes-core/busybox/busybox/longopts.cfg b/meta/recipes-core/busybox/busybox/longopts.cfg
index dcfab99919..3255608f64 100644
--- a/meta/recipes-core/busybox/busybox/longopts.cfg
+++ b/meta/recipes-core/busybox/busybox/longopts.cfg
@@ -13,3 +13,4 @@ CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
13CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y 13CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
14CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y 14CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
15CONFIG_FEATURE_WGET_LONG_OPTIONS=y 15CONFIG_FEATURE_WGET_LONG_OPTIONS=y
16CONFIG_FEATURE_GETOPT_LONG=y
diff --git a/meta/recipes-core/busybox/busybox/mdev.cfg b/meta/recipes-core/busybox/busybox/mdev.cfg
index 143e6097cb..54d23597cc 100644
--- a/meta/recipes-core/busybox/busybox/mdev.cfg
+++ b/meta/recipes-core/busybox/busybox/mdev.cfg
@@ -5,7 +5,6 @@ CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
5CONFIG_FEATURE_MDEV_EXEC=y 5CONFIG_FEATURE_MDEV_EXEC=y
6CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y 6CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
7 7
8CONFIG_SETSID=y
9CONFIG_CTTYHACK=y 8CONFIG_CTTYHACK=y
10 9
11CONFIG_FEATURE_SHADOWPASSWDS=y 10CONFIG_FEATURE_SHADOWPASSWDS=y
diff --git a/meta/recipes-core/busybox/busybox/mount-via-label.cfg b/meta/recipes-core/busybox/busybox/mount-via-label.cfg
index 5a285de7cd..c9ae95c8c2 100644
--- a/meta/recipes-core/busybox/busybox/mount-via-label.cfg
+++ b/meta/recipes-core/busybox/busybox/mount-via-label.cfg
@@ -4,6 +4,7 @@ CONFIG_FEATURE_MOUNT_LABEL=y
4CONFIG_FEATURE_SWAPONOFF_LABEL=y 4CONFIG_FEATURE_SWAPONOFF_LABEL=y
5CONFIG_VOLUMEID=y 5CONFIG_VOLUMEID=y
6CONFIG_FEATURE_VOLUMEID_BTRFS=y 6CONFIG_FEATURE_VOLUMEID_BTRFS=y
7CONFIG_FEATURE_VOLUMEID_EROFS=y
7CONFIG_FEATURE_VOLUMEID_EXT=y 8CONFIG_FEATURE_VOLUMEID_EXT=y
8CONFIG_FEATURE_VOLUMEID_F2FS=y 9CONFIG_FEATURE_VOLUMEID_F2FS=y
9CONFIG_FEATURE_VOLUMEID_FAT=y 10CONFIG_FEATURE_VOLUMEID_FAT=y
diff --git a/meta/recipes-core/busybox/busybox/sha1sum.cfg b/meta/recipes-core/busybox/busybox/sha1sum.cfg
index afd4da4ea1..151c447658 100644
--- a/meta/recipes-core/busybox/busybox/sha1sum.cfg
+++ b/meta/recipes-core/busybox/busybox/sha1sum.cfg
@@ -1,2 +1,3 @@
1CONFIG_SHA1SUM=y 1CONFIG_SHA1SUM=y
2CONFIG_SHA1_SMALL=3 2CONFIG_SHA1_SMALL=3
3# CONFIG_SHA1_HWACCEL is not set
diff --git a/meta/recipes-core/busybox/busybox/sha256sum.cfg b/meta/recipes-core/busybox/busybox/sha256sum.cfg
index ce652ae4c6..aa0b0b0b98 100644
--- a/meta/recipes-core/busybox/busybox/sha256sum.cfg
+++ b/meta/recipes-core/busybox/busybox/sha256sum.cfg
@@ -1 +1,2 @@
1CONFIG_SHA256SUM=y 1CONFIG_SHA256SUM=y
2# CONFIG_SHA256_HWACCEL is not set
diff --git a/meta/recipes-core/busybox/busybox/sha_accel.cfg b/meta/recipes-core/busybox/busybox/sha_accel.cfg
index 8900305a11..70038a8509 100644
--- a/meta/recipes-core/busybox/busybox/sha_accel.cfg
+++ b/meta/recipes-core/busybox/busybox/sha_accel.cfg
@@ -1,2 +1,2 @@
1# CONFIG_SHA256_HWACCEL is not set 1CONFIG_SHA1_HWACCEL=y
2# CONFIG_SHA1_HWACCEL is not set 2CONFIG_SHA256_HWACCEL=y
diff --git a/meta/recipes-core/busybox/busybox_1.36.1.bb b/meta/recipes-core/busybox/busybox_1.37.0.bb
index 06eb9eb999..9f7ded3354 100644
--- a/meta/recipes-core/busybox/busybox_1.36.1.bb
+++ b/meta/recipes-core/busybox/busybox_1.37.0.bb
@@ -2,7 +2,6 @@ require busybox.inc
2 2
3SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ 3SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
4 file://0001-depmod-Ignore-.debug-directories.patch \ 4 file://0001-depmod-Ignore-.debug-directories.patch \
5 file://busybox-udhcpc-no_deconfig.patch \
6 file://find-touchscreen.sh \ 5 file://find-touchscreen.sh \
7 file://busybox-cron \ 6 file://busybox-cron \
8 file://busybox-httpd \ 7 file://busybox-httpd \
@@ -49,9 +48,14 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
49 file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ 48 file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
50 file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ 49 file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \
51 file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ 50 file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \
52 file://start-stop-false.patch \ 51 file://busybox-1.36.1-no-cbq.patch \
52 file://0001-cut-Fix-s-flag-to-omit-blank-lines.patch \
53 file://0001-syslogd-fix-wrong-OPT_locallog-flag-detection.patch \
54 file://0002-start-stop-daemon-fix-tests.patch \
55 file://0003-start-stop-false.patch \
56 file://0001-archival-disallow-path-traversals-CVE-2023-39810.patch \
57 file://0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch \
53 " 58 "
54SRC_URI:append:libc-musl = " file://musl.cfg " 59SRC_URI:append:libc-musl = " file://musl.cfg"
55# TODO http://lists.busybox.net/pipermail/busybox/2023-January/090078.html 60SRC_URI:append:x86-64 = " file://sha_accel.cfg"
56SRC_URI:append:x86 = " file://sha_accel.cfg" 61SRC_URI[tarball.sha256sum] = "3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4"
57SRC_URI[tarball.sha256sum] = "b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314"
diff --git a/meta/recipes-core/coreutils/coreutils/0001-local.mk-fix-cross-compiling-problem.patch b/meta/recipes-core/coreutils/coreutils/0001-local.mk-fix-cross-compiling-problem.patch
deleted file mode 100644
index 97a6357ab9..0000000000
--- a/meta/recipes-core/coreutils/coreutils/0001-local.mk-fix-cross-compiling-problem.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 7cb2d20cfa2a27191255031d231cd41917dcffe8 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 26 Dec 2016 16:10:35 +0800
4Subject: [PATCH] local.mk: fix cross compiling problem
5
6We meet the following error when cross compiling.
7| Makefile:3418: *** Recursive variable 'INSTALL' references itself (eventually). Stop.
8This patch fixes this problem.
9
10Upstream-Status: Pending
11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13---
14 src/local.mk | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/src/local.mk b/src/local.mk
18index 96ee941..cdd47d6 100644
19--- a/src/local.mk
20+++ b/src/local.mk
21@@ -704,4 +704,4 @@ cu_install_program = @INSTALL@
22 else
23 cu_install_program = src/ginstall
24 endif
25-INSTALL = $(cu_install_program) -c
26+INSTALL_PROGRAM = $(cu_install_program)
diff --git a/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch b/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch
new file mode 100644
index 0000000000..41be1635b5
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch
@@ -0,0 +1,112 @@
1From 8763c305c29d0abb7e2be4695212b42917d054b2 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
3Date: Tue, 20 May 2025 16:03:44 +0100
4Subject: [PATCH] sort: fix buffer under-read (CWE-127)
5
6* src/sort.c (begfield): Check pointer adjustment
7to avoid Out-of-range pointer offset (CWE-823).
8(limfield): Likewise.
9* tests/sort/sort-field-limit.sh: Add a new test,
10which triggers with ASAN or Valgrind.
11* tests/local.mk: Reference the new test.
12* NEWS: Mention bug fix introduced in v7.2 (2009).
13Fixes https://bugs.gnu.org/78507
14
15CVE: CVE-2025-5278
16
17Upstream-Status: Backport [https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?id=8c9602e3a145e9596dc1a63c6ed67865814b6633]
18
19Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
20---
21 src/sort.c | 12 ++++++++++--
22 tests/local.mk | 1 +
23 tests/sort/sort-field-limit.sh | 35 ++++++++++++++++++++++++++++++++++
24 3 files changed, 46 insertions(+), 2 deletions(-)
25 create mode 100755 tests/sort/sort-field-limit.sh
26
27diff --git a/src/sort.c b/src/sort.c
28index b10183b6f..7af1a2512 100644
29--- a/src/sort.c
30+++ b/src/sort.c
31@@ -1644,7 +1644,11 @@ begfield (struct line const *line, struct keyfield const *key)
32 ++ptr;
33
34 /* Advance PTR by SCHAR (if possible), but no further than LIM. */
35- ptr = MIN (lim, ptr + schar);
36+ size_t remaining_bytes = lim - ptr;
37+ if (schar < remaining_bytes)
38+ ptr += schar;
39+ else
40+ ptr = lim;
41
42 return ptr;
43 }
44@@ -1746,7 +1750,11 @@ limfield (struct line const *line, struct keyfield const *key)
45 ++ptr;
46
47 /* Advance PTR by ECHAR (if possible), but no further than LIM. */
48- ptr = MIN (lim, ptr + echar);
49+ size_t remaining_bytes = lim - ptr;
50+ if (echar < remaining_bytes)
51+ ptr += echar;
52+ else
53+ ptr = lim;
54 }
55
56 return ptr;
57diff --git a/tests/local.mk b/tests/local.mk
58index 4da6756ac..642d225fa 100644
59--- a/tests/local.mk
60+++ b/tests/local.mk
61@@ -388,6 +388,7 @@ all_tests = \
62 tests/sort/sort-debug-keys.sh \
63 tests/sort/sort-debug-warn.sh \
64 tests/sort/sort-discrim.sh \
65+ tests/sort/sort-field-limit.sh \
66 tests/sort/sort-files0-from.pl \
67 tests/sort/sort-float.sh \
68 tests/sort/sort-h-thousands-sep.sh \
69diff --git a/tests/sort/sort-field-limit.sh b/tests/sort/sort-field-limit.sh
70new file mode 100755
71index 000000000..52d8e1d17
72--- /dev/null
73+++ b/tests/sort/sort-field-limit.sh
74@@ -0,0 +1,35 @@
75+#!/bin/sh
76+# From 7.2-9.7, this would trigger an out of bounds mem read
77+
78+# Copyright (C) 2025 Free Software Foundation, Inc.
79+
80+# This program is free software: you can redistribute it and/or modify
81+# it under the terms of the GNU General Public License as published by
82+# the Free Software Foundation, either version 3 of the License, or
83+# (at your option) any later version.
84+
85+# This program is distributed in the hope that it will be useful,
86+# but WITHOUT ANY WARRANTY; without even the implied warranty of
87+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
88+# GNU General Public License for more details.
89+
90+# You should have received a copy of the GNU General Public License
91+# along with this program. If not, see <https://www.gnu.org/licenses/>.
92+
93+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
94+print_ver_ sort
95+getlimits_
96+
97+# This issue triggers with valgrind or ASAN
98+valgrind --error-exitcode=1 sort --version 2>/dev/null &&
99+ VALGRIND='valgrind --error-exitcode=1'
100+
101+{ printf '%s\n' aa bb; } > in || framework_failure_
102+
103+_POSIX2_VERSION=200809 $VALGRIND sort +0.${SIZE_MAX}R in > out || fail=1
104+compare in out || fail=1
105+
106+_POSIX2_VERSION=200809 $VALGRIND sort +1 -1.${SIZE_MAX}R in > out || fail=1
107+compare in out || fail=1
108+
109+Exit $fail
110--
1112.34.1
112
diff --git a/meta/recipes-core/coreutils/coreutils_9.5.bb b/meta/recipes-core/coreutils/coreutils_9.7.bb
index 9a5f836ebe..5a6456d65e 100644
--- a/meta/recipes-core/coreutils/coreutils_9.5.bb
+++ b/meta/recipes-core/coreutils/coreutils_9.7.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.gnu.org/software/coreutils/"
6BUGTRACKER = "http://debbugs.gnu.org/coreutils" 6BUGTRACKER = "http://debbugs.gnu.org/coreutils"
7LICENSE = "GPL-3.0-or-later" 7LICENSE = "GPL-3.0-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ 8LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
9 file://src/ls.c;beginline=1;endline=15;md5=9ac94aaed7fd46fd8df7147a9e3410cb \ 9 file://src/ls.c;beginline=1;endline=15;md5=824c1997414aea9f344747bd81cf5a31 \
10 " 10 "
11DEPENDS = "gmp libcap" 11DEPENDS = "gmp libcap"
12DEPENDS:class-native = "" 12DEPENDS:class-native = ""
@@ -15,10 +15,10 @@ inherit autotools gettext texinfo
15 15
16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ 16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
17 file://remove-usr-local-lib-from-m4.patch \ 17 file://remove-usr-local-lib-from-m4.patch \
18 file://0001-local.mk-fix-cross-compiling-problem.patch \ 18 file://0001-sort-fix-buffer-under-read-CWE-127.patch \
19 file://run-ptest \ 19 file://run-ptest \
20 " 20 "
21SRC_URI[sha256sum] = "cd328edeac92f6a665de9f323c93b712af1858bc2e0d88f3f7100469470a1b8a" 21SRC_URI[sha256sum] = "e8bb26ad0293f9b5a1fc43fb42ba970e312c66ce92c1b0b16713d7500db251bf"
22 22
23# http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842 23# http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
24# 24#
@@ -47,7 +47,7 @@ PACKAGECONFIG[single-binary] = "--enable-single-binary,--disable-single-binary,,
47PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux" 47PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
48PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl" 48PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl"
49 49
50# [ df mktemp nice printenv base64 gets a special treatment and is not included in this 50# [ base32 base64 df mktemp nice printenv get a special treatment and are not included in this
51bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname du \ 51bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname du \
52 env expand expr factor fmt fold groups head hostid id install \ 52 env expand expr factor fmt fold groups head hostid id install \
53 join link logname md5sum mkfifo nl nohup nproc od paste pathchk \ 53 join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
@@ -55,11 +55,10 @@ bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname
55 sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \ 55 sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
56 tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes" 56 tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
57 57
58# hostname gets a special treatment and is not included in this
59base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \ 58base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \
60 mknod mv pwd rm rmdir sleep stty sync touch true uname stat" 59 mknod mv pwd rm rmdir sleep stty sync touch true uname stat"
61 60
62sbindir_progs= "chroot" 61sbindir_progs = "chroot"
63 62
64# Split stdbuf into its own package, so one can include 63# Split stdbuf into its own package, so one can include
65# coreutils-stdbuf without getting the rest of coreutils, but make 64# coreutils-stdbuf without getting the rest of coreutils, but make
@@ -76,12 +75,6 @@ RDEPENDS:coreutils:class-target += "${@bb.utils.contains('PACKAGECONFIG', 'singl
76# regardless of whether single-binary is in effect. 75# regardless of whether single-binary is in effect.
77RPROVIDES:coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}" 76RPROVIDES:coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}"
78 77
79# Let aclocal use the relative path for the m4 file rather than the
80# absolute since coreutils has a lot of m4 files, otherwise there might
81# be an "Argument list too long" error when it is built in a long/deep
82# directory.
83acpaths = "-I ./m4"
84
85# Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h 78# Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h
86do_compile:prepend () { 79do_compile:prepend () {
87 mkdir -p ${B}/src 80 mkdir -p ${B}/src
@@ -173,12 +166,13 @@ RDEPENDS:${PN}-ptest += "bash findutils gawk make perl perl-modules python3-core
173# may need tweaking if DEPENDS changes 166# may need tweaking if DEPENDS changes
174# Can't use ${PN}-dev here since flags with overrides and key expansion not supported 167# Can't use ${PN}-dev here since flags with overrides and key expansion not supported
175RRECOMMENDS:coreutils-dev[nodeprrecs] = "1" 168RRECOMMENDS:coreutils-dev[nodeprrecs] = "1"
176RRECOMMENDS:${PN}-dev += "acl-dev attr-dev gmp-dev libcap-dev bash-dev findutils-dev gawk-dev shadow-dev" 169DEVDEPS = "acl-dev attr-dev gmp-dev libcap-dev bash-dev findutils-dev gawk-dev shadow-dev"
170DEVDEPS:class-native = ""
171RRECOMMENDS:${PN}-dev += "${DEVDEPS}"
177 172
178do_install_ptest () { 173do_install_ptest () {
179 install -d ${D}${PTEST_PATH}/tests 174 install -d ${D}${PTEST_PATH}/tests
180 cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests 175 cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests
181 sed -i 's/ginstall/install/g' `grep -R ginstall ${D}${PTEST_PATH}/tests | awk -F: '{print $1}' | uniq`
182 install -d ${D}${PTEST_PATH}/build-aux 176 install -d ${D}${PTEST_PATH}/build-aux
183 install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/ 177 install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
184 install -Dm 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/config.h 178 install -Dm 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/config.h
@@ -192,8 +186,8 @@ do_install_ptest () {
192 sed -i '/^abs_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile 186 sed -i '/^abs_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
193 sed -i '/^abs_top_builddir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile 187 sed -i '/^abs_top_builddir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
194 sed -i '/^abs_top_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile 188 sed -i '/^abs_top_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
195 sed -i '/^built_programs/s/ginstall/install/g' ${D}${PTEST_PATH}/Makefile
196 sed -i '/^CC =/s/ --sysroot=.*recipe-sysroot/ /g' ${D}${PTEST_PATH}/Makefile 189 sed -i '/^CC =/s/ --sysroot=.*recipe-sysroot/ /g' ${D}${PTEST_PATH}/Makefile
190 sed -i '/^BUILD_LDFLAGS =/d' ${D}${PTEST_PATH}/Makefile
197 chmod -R 777 ${D}${PTEST_PATH} 191 chmod -R 777 ${D}${PTEST_PATH}
198 192
199 # Disable subcase stty-pairs.sh, it will cause test framework hang 193 # Disable subcase stty-pairs.sh, it will cause test framework hang
@@ -204,8 +198,15 @@ do_install_ptest () {
204 198
205 # Tweak test d_type-check to use python3 instead of python 199 # Tweak test d_type-check to use python3 instead of python
206 sed -i "1s@.*@#!/usr/bin/python3@" ${D}${PTEST_PATH}/tests/d_type-check 200 sed -i "1s@.*@#!/usr/bin/python3@" ${D}${PTEST_PATH}/tests/d_type-check
201
202 # Fix for single-binary
203 for prog in ${D}${PTEST_PATH}/src/*; do
204 if [ -f $prog ]; then
205 sed -i "1s@#!.*/src/coreutils @#!${bindir}/coreutils @" $prog
206 fi
207 done
208
207 install ${B}/src/getlimits ${D}/${bindir} 209 install ${B}/src/getlimits ${D}/${bindir}
208
209 # handle multilib 210 # handle multilib
210 sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest 211 sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
211} 212}
@@ -216,4 +217,8 @@ do_install_ptest:append:libc-musl () {
216 sed -i -e '/tests\/dd\/no-allocate.sh/d' ${D}${PTEST_PATH}/Makefile 217 sed -i -e '/tests\/dd\/no-allocate.sh/d' ${D}${PTEST_PATH}/Makefile
217 sed -i -e '/tests\/split\/line-bytes.sh/d' ${D}${PTEST_PATH}/Makefile 218 sed -i -e '/tests\/split\/line-bytes.sh/d' ${D}${PTEST_PATH}/Makefile
218} 219}
220
221RDEPENDS:${PN}-ptest += "xz \
222 ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'acl', '', d)} \
223 ${@bb.utils.contains('PACKAGECONFIG', 'xattr', 'attr', '', d)}"
219FILES:${PN}-ptest += "${bindir}/getlimits" 224FILES:${PN}-ptest += "${bindir}/getlimits"
diff --git a/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 39363b9b3a..c6a9abde63 100644
--- a/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -13,6 +13,4 @@ PV = "0.1+git"
13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" 13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
14UPSTREAM_CHECK_COMMITS = "1" 14UPSTREAM_CHECK_COMMITS = "1"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools pkgconfig 16inherit autotools pkgconfig
diff --git a/meta/recipes-core/dbus/dbus-glib/no-examples.patch b/meta/recipes-core/dbus/dbus-glib/no-examples.patch
index 32e7611718..3e2fa41c59 100644
--- a/meta/recipes-core/dbus/dbus-glib/no-examples.patch
+++ b/meta/recipes-core/dbus/dbus-glib/no-examples.patch
@@ -1,14 +1,20 @@
1Disable compiling examples 1From 8bb06c2f0929a4b878fd9abdb63c177a7c308b9d Mon Sep 17 00:00:00 2001
2From: Kevin Tian <kevin.tian@intel.com>
3Date: Tue, 21 Nov 2006 14:20:37 +0000
4Subject: [PATCH] Disable compiling examples
2 5
3Upstream-Status: Inappropriate [disable feature] 6Upstream-Status: Inappropriate [disable feature]
4 7
5Signed-off-by: Kevin Tian <kevin.tian@intel.com> 8Signed-off-by: Kevin Tian <kevin.tian@intel.com>
6Signed-off-by: Scott Garman <scott.a.garman@intel.com> 9Signed-off-by: Scott Garman <scott.a.garman@intel.com>
10---
11 dbus/Makefile.am | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
7 13
8Index: dbus-glib-0.108/dbus/Makefile.am 14diff --git a/dbus/Makefile.am b/dbus/Makefile.am
9=================================================================== 15index 2e8cb27..a86df30 100644
10--- dbus-glib-0.108.orig/dbus/Makefile.am 16--- a/dbus/Makefile.am
11+++ dbus-glib-0.108/dbus/Makefile.am 17+++ b/dbus/Makefile.am
12@@ -1,4 +1,4 @@ 18@@ -1,4 +1,4 @@
13-SUBDIRS = . examples 19-SUBDIRS = . examples
14+SUBDIRS = . 20+SUBDIRS = .
diff --git a/meta/recipes-core/dbus/dbus-glib/test-install-makefile.patch b/meta/recipes-core/dbus/dbus-glib/test-install-makefile.patch
index 027c82b27e..0b1b712dd9 100644
--- a/meta/recipes-core/dbus/dbus-glib/test-install-makefile.patch
+++ b/meta/recipes-core/dbus/dbus-glib/test-install-makefile.patch
@@ -1,4 +1,8 @@
1Change Makefile.am to install regression tests for test package purpose. 1From 4dbb1a459c281eeb716b4f0ce2fc01e8034c3e20 Mon Sep 17 00:00:00 2001
2From: Yao Zhao <yao.zhao@windriver.com>
3Date: Tue, 17 Jul 2012 16:46:30 -0400
4Subject: [PATCH] Change Makefile.am to install regression tests for test
5 package purpose.
2 6
3Upstream-Status: Inappropriate [test not install is for purpose from upstream] 7Upstream-Status: Inappropriate [test not install is for purpose from upstream]
4 8
@@ -11,7 +15,7 @@ Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
11 3 files changed, 6 insertions(+), 3 deletions(-) 15 3 files changed, 6 insertions(+), 3 deletions(-)
12 16
13diff --git a/test/Makefile.am b/test/Makefile.am 17diff --git a/test/Makefile.am b/test/Makefile.am
14index 379c8c3..6580927 100644 18index 7393bed..1c25d5d 100644
15--- a/test/Makefile.am 19--- a/test/Makefile.am
16+++ b/test/Makefile.am 20+++ b/test/Makefile.am
17@@ -48,7 +48,8 @@ TESTS = \ 21@@ -48,7 +48,8 @@ TESTS = \
@@ -25,10 +29,10 @@ index 379c8c3..6580927 100644
25 $(test_related_programs) \ 29 $(test_related_programs) \
26 $(NULL) 30 $(NULL)
27diff --git a/test/core/Makefile.am b/test/core/Makefile.am 31diff --git a/test/core/Makefile.am b/test/core/Makefile.am
28index e4bceb4..54b077d 100644 32index 35defa9..295202f 100644
29--- a/test/core/Makefile.am 33--- a/test/core/Makefile.am
30+++ b/test/core/Makefile.am 34+++ b/test/core/Makefile.am
31@@ -64,7 +64,8 @@ endif 35@@ -57,7 +57,8 @@ if DBUS_BUILD_TESTS
32 36
33 ## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we 37 ## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we
34 ## build even when not doing "make check" 38 ## build even when not doing "make check"
@@ -39,7 +43,7 @@ index e4bceb4..54b077d 100644
39 test-error-mapping \ 43 test-error-mapping \
40 test-service-glib \ 44 test-service-glib \
41diff --git a/test/interfaces/Makefile.am b/test/interfaces/Makefile.am 45diff --git a/test/interfaces/Makefile.am b/test/interfaces/Makefile.am
42index a94d08d..707dcac 100644 46index f3f62e4..f034b95 100644
43--- a/test/interfaces/Makefile.am 47--- a/test/interfaces/Makefile.am
44+++ b/test/interfaces/Makefile.am 48+++ b/test/interfaces/Makefile.am
45@@ -57,7 +57,8 @@ if DBUS_BUILD_TESTS 49@@ -57,7 +57,8 @@ if DBUS_BUILD_TESTS
@@ -52,6 +56,3 @@ index a94d08d..707dcac 100644
52 56
53 test_service_SOURCES = \ 57 test_service_SOURCES = \
54 test-interfaces.c \ 58 test-interfaces.c \
55--
561.9.1
57
diff --git a/meta/recipes-core/dbus/dbus-glib_0.112.bb b/meta/recipes-core/dbus/dbus-glib_0.114.bb
index 4acf435694..28a9d4a4fc 100644
--- a/meta/recipes-core/dbus/dbus-glib_0.112.bb
+++ b/meta/recipes-core/dbus/dbus-glib_0.114.bb
@@ -2,9 +2,14 @@ SUMMARY = "High level language (GLib) binding for D-Bus"
2DESCRIPTION = "GLib bindings for the D-Bus message bus that integrate \ 2DESCRIPTION = "GLib bindings for the D-Bus message bus that integrate \
3the D-Bus library with the GLib thread abstraction and main loop." 3the D-Bus library with the GLib thread abstraction and main loop."
4HOMEPAGE = "https://www.freedesktop.org/Software/dbus" 4HOMEPAGE = "https://www.freedesktop.org/Software/dbus"
5LICENSE = "AFL-2.1 | GPL-2.0-or-later" 5LICENSE = "(AFL-2.1 & LGPL-2.0-or-later & MIT) | (GPL-2.0-or-later & LGPL-2.0-or-later & MIT)"
6LIC_FILES_CHKSUM = "file://COPYING;md5=c31c73c1d8f5d06784b2ccd22e42d641 \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=267b04646da5ce3ea2df7a38a07c3f0b \
7 file://dbus/dbus-glib.h;beginline=7;endline=21;md5=c374833bd817988323f3a8fda0dc7f48" 7 file://LICENSES/AFL-2.1.txt;md5=f3ad2f482ec639b440413665cfb9e714 \
8 file://LICENSES/GPL-2.0-or-later.txt;md5=3d26203303a722dedc6bf909d95ba815 \
9 file://LICENSES/LGPL-2.1-or-later.txt;md5=41890f71f740302b785c27661123bff5 \
10 file://LICENSES/MIT.txt;md5=7dda4e90ded66ab88b86f76169f28663 \
11 file://dbus/dbus-glib.h;beginline=7;endline=21;md5=c374833bd817988323f3a8fda0dc7f48 \
12 "
8SECTION = "base" 13SECTION = "base"
9 14
10DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus" 15DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
@@ -14,8 +19,7 @@ SRC_URI = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.g
14 file://no-examples.patch \ 19 file://no-examples.patch \
15 file://test-install-makefile.patch \ 20 file://test-install-makefile.patch \
16" 21"
17SRC_URI[md5sum] = "021e6c8a288df02c227e4aafbf7e7527" 22SRC_URI[sha256sum] = "c09c5c085b2a0e391b8ee7d783a1d63fe444e96717cc1814d61b5e8fc2827a7c"
18SRC_URI[sha256sum] = "7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a"
19 23
20inherit autotools pkgconfig gettext bash-completion gtk-doc 24inherit autotools pkgconfig gettext bash-completion gtk-doc
21 25
@@ -30,10 +34,11 @@ PACKAGES += "${PN}-tests"
30 34
31FILES:${PN} = "${libdir}/lib*${SOLIBS}" 35FILES:${PN} = "${libdir}/lib*${SOLIBS}"
32FILES:${PN}-bash-completion += "${libexecdir}/dbus-bash-completion-helper" 36FILES:${PN}-bash-completion += "${libexecdir}/dbus-bash-completion-helper"
37LICENSE:${PN}-bash-completion = "GPL-2.0-or-later"
33FILES:${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool" 38FILES:${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
34FILES:${PN}-dev += "${bindir}/dbus-binding-tool" 39FILES:${PN}-dev += "${bindir}/dbus-binding-tool"
35 40
36RDEPENDS:${PN}-tests += "dbus-x11" 41RDEPENDS:${PN}-tests = "${PN}"
37FILES:${PN}-tests = "${datadir}/${BPN}/tests" 42FILES:${PN}-tests = "${datadir}/${BPN}/tests"
38 43
39BBCLASSEXTEND = "native" 44BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/dbus/dbus/tmpdir.patch b/meta/recipes-core/dbus/dbus/tmpdir.patch
deleted file mode 100644
index bf086e1788..0000000000
--- a/meta/recipes-core/dbus/dbus/tmpdir.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 5105fedd7fa13dadd2d0d864fb77873b83b79a4b Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Thu, 23 Jun 2011 13:52:09 +0200
4Subject: [PATCH] buildsys: hardcode socketdir to /tmp
5
6the TMPDIR env var isn't always pointing to the right target path
7
8Upstream-Status: Inappropriate [embedded]
9
10Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
11
12Original comment:
13
14 avoid to check tmp dir at build time. instead uses hard coded /tmp here
15 comment added by Kevin Tian <kevin.tian@intel.com>
16---
17 configure.ac | 11 +----------
18 1 files changed, 1 insertions(+), 10 deletions(-)
19
20diff --git a/configure.ac b/configure.ac
21index 408054b..6d26180 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -1483,16 +1483,7 @@ AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
25 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
26 [Full path to the launch helper test program in the builddir])
27
28-#### Find socket directories
29-if ! test -z "$TMPDIR" ; then
30- DEFAULT_SOCKET_DIR=$TMPDIR
31-elif ! test -z "$TEMP" ; then
32- DEFAULT_SOCKET_DIR=$TEMP
33-elif ! test -z "$TMP" ; then
34- DEFAULT_SOCKET_DIR=$TMP
35-else
36- DEFAULT_SOCKET_DIR=/tmp
37-fi
38+DEFAULT_SOCKET_DIR=/tmp
39
40 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
41
42--
431.6.6.1
44
diff --git a/meta/recipes-core/dbus/dbus_1.14.10.bb b/meta/recipes-core/dbus/dbus_1.16.2.bb
index 4fe7af7512..65f7028b4f 100644
--- a/meta/recipes-core/dbus/dbus_1.14.10.bb
+++ b/meta/recipes-core/dbus/dbus_1.16.2.bb
@@ -3,43 +3,44 @@ DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to t
3HOMEPAGE = "https://dbus.freedesktop.org" 3HOMEPAGE = "https://dbus.freedesktop.org"
4SECTION = "base" 4SECTION = "base"
5 5
6inherit autotools pkgconfig gettext upstream-version-is-even ptest-gnome 6inherit meson pkgconfig gettext upstream-version-is-even ptest-gnome
7 7
8LICENSE = "AFL-2.1 | GPL-2.0-or-later" 8LICENSE = "AFL-2.1 | GPL-2.0-or-later"
9LIC_FILES_CHKSUM = "file://COPYING;md5=6423dcd74d7be9715b0db247fd889da3 \ 9LIC_FILES_CHKSUM = "file://COPYING;md5=eb0ffc69a965797a3d6686baa153ef05 \
10 file://dbus/dbus.h;beginline=6;endline=20;md5=866739837ccd835350af94dccd6457d8 \ 10 file://dbus/dbus.h;beginline=6;endline=22;md5=df4251a6c6e15e6a9e3c77b2ac30065d \
11 " 11 "
12 12
13SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.xz \ 13SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.xz \
14 file://run-ptest \ 14 file://run-ptest \
15 file://tmpdir.patch \
16 file://dbus-1.init \ 15 file://dbus-1.init \
17 " 16 "
18 17
19SRC_URI[sha256sum] = "ba1f21d2bd9d339da2d4aa8780c09df32fea87998b73da24f49ab9df1e36a50f" 18SRC_URI[sha256sum] = "0ba2a1a4b16afe7bceb2c07e9ce99a8c2c3508e5dec290dbb643384bd6beb7e2"
20 19
21EXTRA_OECONF = "--disable-xml-docs \ 20EXTRA_OEMESON = "-Dxml_docs=disabled \
22 --disable-doxygen-docs \ 21 -Ddoxygen_docs=disabled \
23 --enable-largefile \ 22 -Dsystem_socket=/run/dbus/system_bus_socket \
24 --with-system-socket=/run/dbus/system_bus_socket \ 23 -Dmodular_tests=enabled \
25 --enable-modular-tests \ 24 -Dchecks=true \
26 --enable-checks \ 25 -Druntime_dir=${runtimedir} \
27 --runstatedir=/run \ 26 -Dtest_socket_dir=/tmp \
27 -Dsession_socket_dir=/tmp \
28 " 28 "
29EXTRA_OECONF:append:class-target = " SYSTEMCTL=${base_bindir}/systemctl"
30 29
31PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ 30PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
32 user-session \ 31 user-session \
32 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
33 " 33 "
34PACKAGECONFIG:class-native = "" 34PACKAGECONFIG:class-native = ""
35PACKAGECONFIG:class-nativesdk = "" 35PACKAGECONFIG:class-nativesdk = ""
36 36
37PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd" 37PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd_system_unitdir=${systemd_system_unitdir},-Dsystemd=disabled,systemd"
38PACKAGECONFIG[x11] = "--enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm" 38PACKAGECONFIG[x11] = "-Dx11_autolaunch=enabled,-Dx11_autolaunch=disabled, virtual/libx11 libsm"
39PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session" 39PACKAGECONFIG[user-session] = "-Duser_session=true -Dsystemd_user_unitdir=${systemd_user_unitdir},-Duser_session=false"
40PACKAGECONFIG[verbose-mode] = "--enable-verbose-mode,,," 40PACKAGECONFIG[verbose-mode] = "-Dverbose_mode=true,-Dverbose_mode=false,,"
41PACKAGECONFIG[audit] = "--enable-libaudit,--disable-libaudit,audit" 41PACKAGECONFIG[audit] = "-Dlibaudit=enabled,-Dlibaudit=disabled,audit"
42PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" 42PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
43PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
43 44
44DEPENDS = "expat virtual/libintl autoconf-archive-native glib-2.0" 45DEPENDS = "expat virtual/libintl autoconf-archive-native glib-2.0"
45RDEPENDS:${PN} += "${PN}-common ${PN}-tools" 46RDEPENDS:${PN} += "${PN}-common ${PN}-tools"
@@ -66,13 +67,6 @@ CONFFILES:${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session
66 67
67DEBIANNAME:${PN} = "dbus-1" 68DEBIANNAME:${PN} = "dbus-1"
68 69
69OLDPKGNAME = "dbus-x11"
70OLDPKGNAME:class-nativesdk = ""
71
72# for compatibility
73RPROVIDES:${PN} = "${OLDPKGNAME}"
74RREPLACES:${PN} += "${OLDPKGNAME}"
75
76FILES:${PN} = "${bindir}/dbus-daemon* \ 70FILES:${PN} = "${bindir}/dbus-daemon* \
77 ${bindir}/dbus-cleanup-sockets \ 71 ${bindir}/dbus-cleanup-sockets \
78 ${bindir}/dbus-launch \ 72 ${bindir}/dbus-launch \
@@ -104,6 +98,7 @@ FILES:${PN}-tools = "${bindir}/dbus-uuidgen \
104" 98"
105FILES:${PN}-lib = "${libdir}/lib*.so.*" 99FILES:${PN}-lib = "${libdir}/lib*.so.*"
106RRECOMMENDS:${PN}-lib = "${PN}" 100RRECOMMENDS:${PN}-lib = "${PN}"
101RRECOMMENDS:${PN}-lib:class-target = "${VIRTUAL-RUNTIME_dbus}"
107FILES:${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-test-tool ${datadir}/xml/dbus-1" 102FILES:${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-test-tool ${datadir}/xml/dbus-1"
108 103
109RDEPENDS:${PN}-ptest += "bash make dbus" 104RDEPENDS:${PN}-ptest += "bash make dbus"
@@ -123,14 +118,22 @@ pkg_postinst:dbus() {
123 fi 118 fi
124} 119}
125 120
121# dbus uses find_program() to find systemctl, which results in a build path in the
122# user dbus.socket
123EXTRA_OEMESON:append:class-target = " --cross-file=${WORKDIR}/dbus.cross"
126 124
127do_install() { 125do_configure:prepend:class-target() {
128 autotools_do_install 126 cat >${WORKDIR}/dbus.cross <<EOF
127[binaries]
128systemctl = '${bindir}/systemctl'
129EOF
130}
129 131
132do_install:append:class-target() {
130 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 133 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
131 install -d ${D}${sysconfdir}/init.d 134 install -d ${D}${sysconfdir}/init.d
132 sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh 135 sed 's:@bindir@:${bindir}:' < ${UNPACKDIR}/dbus-1.init > ${S}/dbus-1.init.sh
133 install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1 136 install -m 0755 ${S}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
134 install -d ${D}${sysconfdir}/default/volatiles 137 install -d ${D}${sysconfdir}/default/volatiles
135 echo "d messagebus messagebus 0755 /run/dbus none" \ 138 echo "d messagebus messagebus 0755 /run/dbus none" \
136 > ${D}${sysconfdir}/default/volatiles/99_dbus 139 > ${D}${sysconfdir}/default/volatiles/99_dbus
@@ -145,7 +148,6 @@ do_install() {
145 ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service 148 ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service
146 fi 149 fi
147 150
148
149 mkdir -p ${D}${localstatedir}/lib/dbus 151 mkdir -p ${D}${localstatedir}/lib/dbus
150 152
151 chown messagebus:messagebus ${D}${localstatedir}/lib/dbus 153 chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
@@ -159,27 +161,23 @@ do_install() {
159 # Remove empty testexec directory as we don't build tests 161 # Remove empty testexec directory as we don't build tests
160 rm -rf ${D}${libdir}/dbus-1.0/test 162 rm -rf ${D}${libdir}/dbus-1.0/test
161 163
162 # Remove /var/run as it is created on startup 164 # Remove /run as it is created on startup
163 rm -rf ${D}${localstatedir}/run 165 rm -rf ${D}${runtimedir}
164} 166}
165 167
166do_install:class-native() { 168do_install:append:class-native() {
167 autotools_do_install
168
169 # dbus-launch has no X support so lets not install it in case the host 169 # dbus-launch has no X support so lets not install it in case the host
170 # has a more featured and useful version 170 # has a more featured and useful version
171 rm -f ${D}${bindir}/dbus-launch 171 rm -f ${D}${bindir}/dbus-launch
172} 172}
173 173
174do_install:class-nativesdk() { 174do_install:append:class-nativesdk() {
175 autotools_do_install
176
177 # dbus-launch has no X support so lets not install it in case the host 175 # dbus-launch has no X support so lets not install it in case the host
178 # has a more featured and useful version 176 # has a more featured and useful version
179 rm -f ${D}${bindir}/dbus-launch 177 rm -f ${D}${bindir}/dbus-launch
180 178
181 # Remove /var/run to avoid QA error 179 # Remove /run to avoid QA error
182 rm -rf ${D}${localstatedir}/run 180 rm -rf ${D}${runtimedir}
183} 181}
184BBCLASSEXTEND = "native nativesdk" 182BBCLASSEXTEND = "native nativesdk"
185 183
diff --git a/meta/recipes-core/dropbear/dropbear/0001-Fix-proxycmd-without-netcat.patch b/meta/recipes-core/dropbear/dropbear/0001-Fix-proxycmd-without-netcat.patch
new file mode 100644
index 0000000000..967b66322f
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/0001-Fix-proxycmd-without-netcat.patch
@@ -0,0 +1,74 @@
1From 5cc0127000db5f7567b54d0495fb91a8e452fe09 Mon Sep 17 00:00:00 2001
2From: Konstantin Demin <rockdrilla@gmail.com>
3Date: Fri, 9 May 2025 22:39:35 +0300
4Subject: [PATCH] Fix proxycmd without netcat
5
6fixes e5a0ef27c2 "Execute multihop commands directly, no shell"
7
8Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
9
10Upstream-Status: Backport [https://github.com/mkj/dropbear/commit/5cc0127000db5f7567b54d0495fb91a8e452fe09]
11Signed-off-by: Peter Marko <peter.marko@siemens.com>
12---
13 src/cli-main.c | 12 +++++++++++-
14 1 file changed, 11 insertions(+), 1 deletion(-)
15
16diff --git a/src/cli-main.c b/src/cli-main.c
17index 2fafa88..0a052a3 100644
18--- a/src/cli-main.c
19+++ b/src/cli-main.c
20@@ -77,7 +77,11 @@ int main(int argc, char ** argv) {
21 }
22
23 #if DROPBEAR_CLI_PROXYCMD
24- if (cli_opts.proxycmd || cli_opts.proxyexec) {
25+ if (cli_opts.proxycmd
26+#if DROPBEAR_CLI_MULTIHOP
27+ || cli_opts.proxyexec
28+#endif
29+ ) {
30 cli_proxy_cmd(&sock_in, &sock_out, &proxy_cmd_pid);
31 if (signal(SIGINT, kill_proxy_sighandler) == SIG_ERR ||
32 signal(SIGTERM, kill_proxy_sighandler) == SIG_ERR ||
33@@ -110,11 +114,13 @@ static void shell_proxy_cmd(const void *user_data_cmd) {
34 dropbear_exit("Failed to run '%s'\n", cmd);
35 }
36
37+#if DROPBEAR_CLI_MULTIHOP
38 static void exec_proxy_cmd(const void *unused) {
39 (void)unused;
40 run_command(cli_opts.proxyexec[0], cli_opts.proxyexec, ses.maxfd);
41 dropbear_exit("Failed to run '%s'\n", cli_opts.proxyexec[0]);
42 }
43+#endif
44
45 static void cli_proxy_cmd(int *sock_in, int *sock_out, pid_t *pid_out) {
46 char * cmd_arg = NULL;
47@@ -145,9 +151,11 @@ static void cli_proxy_cmd(int *sock_in, int *sock_out, pid_t *pid_out) {
48 cmd_arg = m_malloc(shell_cmdlen);
49 snprintf(cmd_arg, shell_cmdlen, "exec %s", cli_opts.proxycmd);
50 exec_fn = shell_proxy_cmd;
51+#if DROPBEAR_CLI_MULTIHOP
52 } else {
53 /* No shell */
54 exec_fn = exec_proxy_cmd;
55+#endif
56 }
57
58 ret = spawn_command(exec_fn, cmd_arg, sock_out, sock_in, NULL, pid_out);
59@@ -159,6 +167,7 @@ static void cli_proxy_cmd(int *sock_in, int *sock_out, pid_t *pid_out) {
60 cleanup:
61 m_free(cli_opts.proxycmd);
62 m_free(cmd_arg);
63+#if DROPBEAR_CLI_MULTIHOP
64 if (cli_opts.proxyexec) {
65 char **a = NULL;
66 for (a = cli_opts.proxyexec; *a; a++) {
67@@ -166,6 +175,7 @@ cleanup:
68 }
69 m_free(cli_opts.proxyexec);
70 }
71+#endif
72 }
73
74 static void kill_proxy_sighandler(int UNUSED(signo)) {
diff --git a/meta/recipes-core/dropbear/dropbear/0001-urandom-xauth-changes-to-options.h.patch b/meta/recipes-core/dropbear/dropbear/0001-urandom-xauth-changes-to-options.h.patch
index 99adcfd770..0687e5dab1 100644
--- a/meta/recipes-core/dropbear/dropbear/0001-urandom-xauth-changes-to-options.h.patch
+++ b/meta/recipes-core/dropbear/dropbear/0001-urandom-xauth-changes-to-options.h.patch
@@ -1,15 +1,18 @@
1Subject: [PATCH 1/6] urandom-xauth-changes-to-options.h 1From cdc6a4a57a86d8116a92a5d905993e65cf723556 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard@openedhand.com>
3Date: Wed, 31 Aug 2005 10:45:47 +0000
4Subject: [PATCH] urandom-xauth-changes-to-options.h
2 5
3Upstream-Status: Inappropriate [configuration] 6Upstream-Status: Inappropriate [configuration]
4--- 7---
5 default_options.h | 2 +- 8 src/default_options.h | 2 +-
6 1 file changed, 1 insertion(+), 1 deletion(-) 9 1 file changed, 1 insertion(+), 1 deletion(-)
7 10
8diff --git a/default_options.h b/default_options.h 11diff --git a/src/default_options.h b/src/default_options.h
9index 349338c..5ffac25 100644 12index 6e970bb..ccc8b47 100644
10--- a/default_options.h 13--- a/src/default_options.h
11+++ b/default_options.h 14+++ b/src/default_options.h
12@@ -289,7 +289,7 @@ group1 in Dropbear server too */ 15@@ -317,7 +317,7 @@ group1 in Dropbear server too */
13 16
14 /* The command to invoke for xauth when using X11 forwarding. 17 /* The command to invoke for xauth when using X11 forwarding.
15 * "-q" for quiet */ 18 * "-q" for quiet */
@@ -18,6 +21,3 @@ index 349338c..5ffac25 100644
18 21
19 22
20 /* If you want to enable running an sftp server (such as the one included with 23 /* If you want to enable running an sftp server (such as the one included with
21--
222.25.1
23
diff --git a/meta/recipes-core/dropbear/dropbear/0005-dropbear-enable-pam.patch b/meta/recipes-core/dropbear/dropbear/0005-dropbear-enable-pam.patch
index 32c3ea5f08..6743f506e9 100644
--- a/meta/recipes-core/dropbear/dropbear/0005-dropbear-enable-pam.patch
+++ b/meta/recipes-core/dropbear/dropbear/0005-dropbear-enable-pam.patch
@@ -1,7 +1,7 @@
1From b8cece92ba19aa77ac013ea161bfe4c7147747c9 Mon Sep 17 00:00:00 2001 1From 253ca01f0fc50dbaeb2ff8bcece0c34256eba94f Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com> 2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Wed, 2 Dec 2015 11:36:02 +0200 3Date: Wed, 2 Dec 2015 11:36:02 +0200
4Subject: Enable pam 4Subject: [PATCH] Enable pam
5 5
6We need modify file default_options.h besides enabling pam in 6We need modify file default_options.h besides enabling pam in
7configure if we want dropbear to support pam. 7configure if we want dropbear to support pam.
@@ -11,14 +11,14 @@ Upstream-Status: Pending
11Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> 11Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
12Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> 12Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
13--- 13---
14 default_options.h | 4 ++-- 14 src/default_options.h | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-) 15 1 file changed, 2 insertions(+), 2 deletions(-)
16 16
17diff --git a/default_options.h b/default_options.h 17diff --git a/src/default_options.h b/src/default_options.h
18index 0e3d027..349338c 100644 18index ccc8b47..12768d1 100644
19--- a/default_options.h 19--- a/src/default_options.h
20+++ b/default_options.h 20+++ b/src/default_options.h
21@@ -210,7 +210,7 @@ group1 in Dropbear server too */ 21@@ -228,7 +228,7 @@ group1 in Dropbear server too */
22 22
23 /* Authentication Types - at least one required. 23 /* Authentication Types - at least one required.
24 RFC Draft requires pubkey auth, and recommends password */ 24 RFC Draft requires pubkey auth, and recommends password */
@@ -27,7 +27,7 @@ index 0e3d027..349338c 100644
27 27
28 /* Note: PAM auth is quite simple and only works for PAM modules which just do 28 /* Note: PAM auth is quite simple and only works for PAM modules which just do
29 * a simple "Login: " "Password: " (you can edit the strings in svr-authpam.c). 29 * a simple "Login: " "Password: " (you can edit the strings in svr-authpam.c).
30@@ -218,7 +218,7 @@ group1 in Dropbear server too */ 30@@ -236,7 +236,7 @@ group1 in Dropbear server too */
31 * but there's an interface via a PAM module. It won't work for more complex 31 * but there's an interface via a PAM module. It won't work for more complex
32 * PAM challenge/response. 32 * PAM challenge/response.
33 * You can't enable both PASSWORD and PAM. */ 33 * You can't enable both PASSWORD and PAM. */
@@ -36,6 +36,3 @@ index 0e3d027..349338c 100644
36 36
37 /* ~/.ssh/authorized_keys authentication. 37 /* ~/.ssh/authorized_keys authentication.
38 * You must define DROPBEAR_SVR_PUBKEY_AUTH in order to use plugins. */ 38 * You must define DROPBEAR_SVR_PUBKEY_AUTH in order to use plugins. */
39--
402.25.1
41
diff --git a/meta/recipes-core/dropbear/dropbear/0006-dropbear-configuration-file.patch b/meta/recipes-core/dropbear/dropbear/0006-dropbear-configuration-file.patch
index deed78ffb9..44861088cc 100644
--- a/meta/recipes-core/dropbear/dropbear/0006-dropbear-configuration-file.patch
+++ b/meta/recipes-core/dropbear/dropbear/0006-dropbear-configuration-file.patch
@@ -1,4 +1,4 @@
1From e3a5db1b6d3f6382a15b2266458c26c645a10f18 Mon Sep 17 00:00:00 2001 1From 16b147f97f0938cddb55ec1c90bc919c13f26fc0 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <Mingli.Yu@windriver.com> 2From: Mingli Yu <Mingli.Yu@windriver.com>
3Date: Thu, 6 Sep 2018 15:54:00 +0800 3Date: Thu, 6 Sep 2018 15:54:00 +0800
4Subject: [PATCH] dropbear configuration file 4Subject: [PATCH] dropbear configuration file
@@ -12,14 +12,14 @@ Signed-off-by: Maxin B. John <maxin.john@enea.com>
12Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> 12Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
13Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> 13Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
14--- 14---
15 svr-authpam.c | 2 +- 15 src/svr-authpam.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
17 17
18diff --git a/svr-authpam.c b/svr-authpam.c 18diff --git a/src/svr-authpam.c b/src/svr-authpam.c
19index d201bc9..165ec5c 100644 19index ec14632..026102f 100644
20--- a/svr-authpam.c 20--- a/src/svr-authpam.c
21+++ b/svr-authpam.c 21+++ b/src/svr-authpam.c
22@@ -223,7 +223,7 @@ void svr_auth_pam(int valid_user) { 22@@ -224,7 +224,7 @@ void svr_auth_pam(int valid_user) {
23 } 23 }
24 24
25 /* Init pam */ 25 /* Init pam */
@@ -28,6 +28,3 @@ index d201bc9..165ec5c 100644
28 dropbear_log(LOG_WARNING, "pam_start() failed, rc=%d, %s", 28 dropbear_log(LOG_WARNING, "pam_start() failed, rc=%d, %s",
29 rc, pam_strerror(pamHandlep, rc)); 29 rc, pam_strerror(pamHandlep, rc));
30 goto cleanup; 30 goto cleanup;
31--
322.7.4
33
diff --git a/meta/recipes-core/dropbear/dropbear/CVE-2023-36328.patch b/meta/recipes-core/dropbear/dropbear/CVE-2023-36328.patch
deleted file mode 100644
index ec50d69816..0000000000
--- a/meta/recipes-core/dropbear/dropbear/CVE-2023-36328.patch
+++ /dev/null
@@ -1,144 +0,0 @@
1From beba892bc0d4e4ded4d667ab1d2a94f4d75109a9 Mon Sep 17 00:00:00 2001
2From: czurnieden <czurnieden@gmx.de>
3Date: Fri, 8 Sep 2023 10:07:32 +0000
4Subject: [PATCH] Fix possible integer overflow
5
6CVE: CVE-2023-36328
7
8Upstream-Status: Backport [https://github.com/libtom/libtommath/commit/beba892bc0d4e4ded4d667ab1d2a94f4d75109a9]
9
10Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
11---
12 libtommath/bn_mp_2expt.c | 4 ++++
13 libtommath/bn_mp_grow.c | 4 ++++
14 libtommath/bn_mp_init_size.c | 5 +++++
15 libtommath/bn_mp_mul_2d.c | 4 ++++
16 libtommath/bn_s_mp_mul_digs.c | 4 ++++
17 libtommath/bn_s_mp_mul_digs_fast.c | 4 ++++
18 libtommath/bn_s_mp_mul_high_digs.c | 4 ++++
19 libtommath/bn_s_mp_mul_high_digs_fast.c | 4 ++++
20 8 files changed, 33 insertions(+)
21
22diff --git a/libtommath/bn_mp_2expt.c b/libtommath/bn_mp_2expt.c
23index 0ae3df1..ca6fbc3 100644
24--- a/libtommath/bn_mp_2expt.c
25+++ b/libtommath/bn_mp_2expt.c
26@@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b)
27 {
28 mp_err err;
29
30+ if (b < 0) {
31+ return MP_VAL;
32+ }
33+
34 /* zero a as per default */
35 mp_zero(a);
36
37diff --git a/libtommath/bn_mp_grow.c b/libtommath/bn_mp_grow.c
38index 9e904c5..2b16826 100644
39--- a/libtommath/bn_mp_grow.c
40+++ b/libtommath/bn_mp_grow.c
41@@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size)
42 int i;
43 mp_digit *tmp;
44
45+ if (size < 0) {
46+ return MP_VAL;
47+ }
48+
49 /* if the alloc size is smaller alloc more ram */
50 if (a->alloc < size) {
51 /* reallocate the array a->dp
52diff --git a/libtommath/bn_mp_init_size.c b/libtommath/bn_mp_init_size.c
53index d622687..5fefa96 100644
54--- a/libtommath/bn_mp_init_size.c
55+++ b/libtommath/bn_mp_init_size.c
56@@ -6,6 +6,11 @@
57 /* init an mp_init for a given size */
58 mp_err mp_init_size(mp_int *a, int size)
59 {
60+
61+ if (size < 0) {
62+ return MP_VAL;
63+ }
64+
65 size = MP_MAX(MP_MIN_PREC, size);
66
67 /* alloc mem */
68diff --git a/libtommath/bn_mp_mul_2d.c b/libtommath/bn_mp_mul_2d.c
69index 87354de..2744163 100644
70--- a/libtommath/bn_mp_mul_2d.c
71+++ b/libtommath/bn_mp_mul_2d.c
72@@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, mp_int *c)
73 mp_digit d;
74 mp_err err;
75
76+ if (b < 0) {
77+ return MP_VAL;
78+ }
79+
80 /* copy */
81 if (a != c) {
82 if ((err = mp_copy(a, c)) != MP_OKAY) {
83diff --git a/libtommath/bn_s_mp_mul_digs.c b/libtommath/bn_s_mp_mul_digs.c
84index 64509d4..2d2f5b0 100644
85--- a/libtommath/bn_s_mp_mul_digs.c
86+++ b/libtommath/bn_s_mp_mul_digs.c
87@@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
88 mp_word r;
89 mp_digit tmpx, *tmpt, *tmpy;
90
91+ if (digs < 0) {
92+ return MP_VAL;
93+ }
94+
95 /* can we use the fast multiplier? */
96 if ((digs < MP_WARRAY) &&
97 (MP_MIN(a->used, b->used) < MP_MAXFAST)) {
98diff --git a/libtommath/bn_s_mp_mul_digs_fast.c b/libtommath/bn_s_mp_mul_digs_fast.c
99index b2a287b..d6dd3cc 100644
100--- a/libtommath/bn_s_mp_mul_digs_fast.c
101+++ b/libtommath/bn_s_mp_mul_digs_fast.c
102@@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int digs)
103 mp_digit W[MP_WARRAY];
104 mp_word _W;
105
106+ if (digs < 0) {
107+ return MP_VAL;
108+ }
109+
110 /* grow the destination as required */
111 if (c->alloc < digs) {
112 if ((err = mp_grow(c, digs)) != MP_OKAY) {
113diff --git a/libtommath/bn_s_mp_mul_high_digs.c b/libtommath/bn_s_mp_mul_high_digs.c
114index 2bb2a50..c9dd355 100644
115--- a/libtommath/bn_s_mp_mul_high_digs.c
116+++ b/libtommath/bn_s_mp_mul_high_digs.c
117@@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
118 mp_word r;
119 mp_digit tmpx, *tmpt, *tmpy;
120
121+ if (digs < 0) {
122+ return MP_VAL;
123+ }
124+
125 /* can we use the fast multiplier? */
126 if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST)
127 && ((a->used + b->used + 1) < MP_WARRAY)
128diff --git a/libtommath/bn_s_mp_mul_high_digs_fast.c b/libtommath/bn_s_mp_mul_high_digs_fast.c
129index a2c4fb6..afe3e4b 100644
130--- a/libtommath/bn_s_mp_mul_high_digs_fast.c
131+++ b/libtommath/bn_s_mp_mul_high_digs_fast.c
132@@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int
133 mp_digit W[MP_WARRAY];
134 mp_word _W;
135
136+ if (digs < 0) {
137+ return MP_VAL;
138+ }
139+
140 /* grow the destination as required */
141 pa = a->used + b->used;
142 if (c->alloc < pa) {
143--
1442.35.5
diff --git a/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch b/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch
deleted file mode 100644
index 5c60868ed8..0000000000
--- a/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From c347ece05a7fdbf50d76cb136b9ed45caed333f6 Mon Sep 17 00:00:00 2001
2From: Joseph Reynolds <joseph.reynolds1@ibm.com>
3Date: Thu, 20 Jun 2019 16:29:15 -0500
4Subject: [PATCH] dropbear: new feature: disable-weak-ciphers
5
6This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers
7in the dropbear ssh server and client since they're considered weak ciphers
8and we want to support the stong algorithms.
9
10Upstream-Status: Inappropriate [configuration]
11Signed-off-by: Joseph Reynolds <joseph.reynolds1@ibm.com>
12---
13 default_options.h | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/default_options.h b/default_options.h
17index d417588..bc5200f 100644
18--- a/default_options.h
19+++ b/default_options.h
20@@ -180,7 +180,7 @@ IMPORTANT: Some options will require "make clean" after changes */
21 * Small systems should generally include either curve25519 or ecdh for performance.
22 * curve25519 is less widely supported but is faster
23 */
24-#define DROPBEAR_DH_GROUP14_SHA1 1
25+#define DROPBEAR_DH_GROUP14_SHA1 0
26 #define DROPBEAR_DH_GROUP14_SHA256 1
27 #define DROPBEAR_DH_GROUP16 0
28 #define DROPBEAR_CURVE25519 1
29--
302.25.1
31
diff --git a/meta/recipes-core/dropbear/dropbear/dropbearkey.service b/meta/recipes-core/dropbear/dropbear/dropbearkey.service
index 71a12a6110..501e47124f 100644
--- a/meta/recipes-core/dropbear/dropbear/dropbearkey.service
+++ b/meta/recipes-core/dropbear/dropbear/dropbearkey.service
@@ -9,6 +9,6 @@ Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear"
9EnvironmentFile=-/etc/default/dropbear 9EnvironmentFile=-/etc/default/dropbear
10Type=oneshot 10Type=oneshot
11ExecStart=@BASE_BINDIR@/mkdir -p ${DROPBEAR_RSAKEY_DIR} 11ExecStart=@BASE_BINDIR@/mkdir -p ${DROPBEAR_RSAKEY_DIR}
12ExecStart=@SBINDIR@/dropbearkey -t rsa -f ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key 12ExecStart=@SBINDIR@/dropbearkey -t rsa -f ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key $DROPBEAR_RSAKEY_ARGS
13RemainAfterExit=yes 13RemainAfterExit=yes
14Nice=10 14Nice=10
diff --git a/meta/recipes-core/dropbear/dropbear_2022.83.bb b/meta/recipes-core/dropbear/dropbear_2025.88.bb
index 528eff1a10..72a886d907 100644
--- a/meta/recipes-core/dropbear/dropbear_2022.83.bb
+++ b/meta/recipes-core/dropbear/dropbear_2025.88.bb
@@ -19,12 +19,12 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
19 file://dropbear@.service \ 19 file://dropbear@.service \
20 file://dropbear.socket \ 20 file://dropbear.socket \
21 file://dropbear.default \ 21 file://dropbear.default \
22 file://0001-Fix-proxycmd-without-netcat.patch \
22 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ 23 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
23 ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} \
24 file://CVE-2023-36328.patch \
25 " 24 "
26 25
27SRC_URI[sha256sum] = "bc5a121ffbc94b5171ad5ebe01be42746d50aa797c9549a4639894a16749443b" 26SRC_URI[sha256sum] = "783f50ea27b17c16da89578fafdb6decfa44bb8f6590e5698a4e4d3672dc53d4"
27MIRRORS += "http://matt.ucc.asn.au/dropbear/releases/ https://dropbear.nl/mirror/releases/"
28 28
29PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \ 29PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \
30 file://0006-dropbear-configuration-file.patch \ 30 file://0006-dropbear-configuration-file.patch \
@@ -48,11 +48,10 @@ SBINCOMMANDS = "dropbear dropbearkey dropbearconvert"
48BINCOMMANDS = "dbclient ssh scp" 48BINCOMMANDS = "dbclient ssh scp"
49EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"' 49EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
50 50
51PACKAGECONFIG ?= "disable-weak-ciphers ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" 51PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}"
52PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}" 52PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}"
53PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt" 53PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt"
54PACKAGECONFIG[disable-weak-ciphers] = "" 54PACKAGECONFIG[x11] = ",,,,xauth"
55PACKAGECONFIG[enable-x11-forwarding] = ""
56 55
57# This option appends to CFLAGS and LDFLAGS from OE 56# This option appends to CFLAGS and LDFLAGS from OE
58# This is causing [textrel] QA warning 57# This is causing [textrel] QA warning
@@ -63,7 +62,7 @@ EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
63 62
64do_configure:append() { 63do_configure:append() {
65 echo "/* Dropbear features */" > ${B}/localoptions.h 64 echo "/* Dropbear features */" > ${B}/localoptions.h
66 if ${@bb.utils.contains('PACKAGECONFIG', 'enable-x11-forwarding', 'true', 'false', d)}; then 65 if ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'true', 'false', d)}; then
67 echo "#define DROPBEAR_X11FWD 1" >> ${B}/localoptions.h 66 echo "#define DROPBEAR_X11FWD 1" >> ${B}/localoptions.h
68 fi 67 fi
69} 68}
@@ -77,7 +76,7 @@ do_install() {
77 ${D}${sbindir} \ 76 ${D}${sbindir} \
78 ${D}${localstatedir} 77 ${D}${localstatedir}
79 78
80 install -m 0644 ${WORKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear 79 install -m 0644 ${UNPACKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear
81 80
82 install -m 0755 dropbearmulti ${D}${sbindir}/ 81 install -m 0755 dropbearmulti ${D}${sbindir}/
83 82
@@ -95,18 +94,18 @@ do_install() {
95 -e 's,/usr/sbin,${sbindir},g' \ 94 -e 's,/usr/sbin,${sbindir},g' \
96 -e 's,/var,${localstatedir},g' \ 95 -e 's,/var,${localstatedir},g' \
97 -e 's,/usr/bin,${bindir},g' \ 96 -e 's,/usr/bin,${bindir},g' \
98 -e 's,/usr,${prefix},g' ${WORKDIR}/init > ${D}${sysconfdir}/init.d/dropbear 97 -e 's,/usr,${prefix},g' ${UNPACKDIR}/init > ${D}${sysconfdir}/init.d/dropbear
99 chmod 755 ${D}${sysconfdir}/init.d/dropbear 98 chmod 755 ${D}${sysconfdir}/init.d/dropbear
100 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 99 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
101 install -d ${D}${sysconfdir}/pam.d 100 install -d ${D}${sysconfdir}/pam.d
102 install -m 0644 ${WORKDIR}/dropbear ${D}${sysconfdir}/pam.d/ 101 install -m 0644 ${UNPACKDIR}/dropbear ${D}${sysconfdir}/pam.d/
103 fi 102 fi
104 103
105 # deal with systemd unit files 104 # deal with systemd unit files
106 install -d ${D}${systemd_system_unitdir} 105 install -d ${D}${systemd_system_unitdir}
107 install -m 0644 ${WORKDIR}/dropbearkey.service ${D}${systemd_system_unitdir} 106 install -m 0644 ${UNPACKDIR}/dropbearkey.service ${D}${systemd_system_unitdir}
108 install -m 0644 ${WORKDIR}/dropbear@.service ${D}${systemd_system_unitdir} 107 install -m 0644 ${UNPACKDIR}/dropbear@.service ${D}${systemd_system_unitdir}
109 install -m 0644 ${WORKDIR}/dropbear.socket ${D}${systemd_system_unitdir} 108 install -m 0644 ${UNPACKDIR}/dropbear.socket ${D}${systemd_system_unitdir}
110 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ 109 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
111 -e 's,@BINDIR@,${bindir},g' \ 110 -e 's,@BINDIR@,${bindir},g' \
112 -e 's,@SBINDIR@,${sbindir},g' \ 111 -e 's,@SBINDIR@,${sbindir},g' \
@@ -130,3 +129,5 @@ pkg_postrm:${PN} () {
130} 129}
131 130
132CONFFILES:${PN} = "${sysconfdir}/default/dropbear" 131CONFFILES:${PN} = "${sysconfdir}/default/dropbear"
132
133FILES:${PN} += "${systemd_system_unitdir}/dropbearkey.service"
diff --git a/meta/recipes-core/ell/ell_0.64.bb b/meta/recipes-core/ell/ell_0.76.bb
index c4f16905fd..fcc56e02f7 100644
--- a/meta/recipes-core/ell/ell_0.64.bb
+++ b/meta/recipes-core/ell/ell_0.76.bb
@@ -15,8 +15,4 @@ DEPENDS = "dbus"
15inherit autotools pkgconfig 15inherit autotools pkgconfig
16 16
17SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" 17SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
18SRC_URI[sha256sum] = "760f3901078409f66cadf1bb24c8bdc60f13d53f6dd66b88631221d2494f8405" 18SRC_URI[sha256sum] = "a0bf2b5a78450c0c167e3f65c18452ffe4c0f179d48c2a3661e6afaca8017ef9"
19
20do_configure:prepend () {
21 mkdir -p ${S}/build-aux
22}
diff --git a/meta/recipes-core/expat/expat_2.6.2.bb b/meta/recipes-core/expat/expat_2.7.1.bb
index 6c9db91bef..2da1532922 100644
--- a/meta/recipes-core/expat/expat_2.6.2.bb
+++ b/meta/recipes-core/expat/expat_2.7.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/libexpat/libexpat"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "MIT" 5LICENSE = "MIT"
6 6
7LIC_FILES_CHKSUM = "file://COPYING;md5=7b3b078238d0901d3b339289117cb7fb" 7LIC_FILES_CHKSUM = "file://COPYING;md5=f4fedd6116da0e171f7cb4d2923d7ac2"
8 8
9VERSION_TAG = "${@d.getVar('PV').replace('.', '_')}" 9VERSION_TAG = "${@d.getVar('PV').replace('.', '_')}"
10 10
@@ -15,7 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2 \
15GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/" 15GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/"
16UPSTREAM_CHECK_REGEX = "releases/tag/R_(?P<pver>.+)" 16UPSTREAM_CHECK_REGEX = "releases/tag/R_(?P<pver>.+)"
17 17
18SRC_URI[sha256sum] = "9c7c1b5dcbc3c237c500a8fb1493e14d9582146dd9b42aa8d3ffb856a3b927e0" 18SRC_URI[sha256sum] = "45c98ae1e9b5127325d25186cf8c511fa814078e9efeae7987a574b482b79b3d"
19 19
20EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF" 20EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
21 21
diff --git a/meta/recipes-core/fts/fts_1.2.7.bb b/meta/recipes-core/fts/fts_1.2.7.bb
index 10103830af..699dc5ddd3 100644
--- a/meta/recipes-core/fts/fts_1.2.7.bb
+++ b/meta/recipes-core/fts/fts_1.2.7.bb
@@ -12,8 +12,6 @@ SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472"
12 12
13SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https" 13SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https"
14 14
15S = "${WORKDIR}/git"
16
17inherit autotools pkgconfig 15inherit autotools pkgconfig
18# 16#
19# We will skip parsing for non-musl systems 17# We will skip parsing for non-musl systems
diff --git a/meta/recipes-core/gettext/gettext-minimal-native_0.22.5.bb b/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb
index db1bbb7e68..941896ec48 100644
--- a/meta/recipes-core/gettext/gettext-minimal-native_0.22.5.bb
+++ b/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb
@@ -13,11 +13,11 @@ INHIBIT_DEFAULT_DEPS = "1"
13INHIBIT_AUTOTOOLS_DEPS = "1" 13INHIBIT_AUTOTOOLS_DEPS = "1"
14 14
15LICENSE = "FSF-Unlimited" 15LICENSE = "FSF-Unlimited"
16LIC_FILES_CHKSUM = "file://../COPYING;md5=4bd090a20bfcd1a18f1f79837b5e3e91" 16LIC_FILES_CHKSUM = "file://${UNPACKDIR}/COPYING;md5=4bd090a20bfcd1a18f1f79837b5e3e91"
17 17
18inherit native 18inherit native
19 19
20S = "${WORKDIR}/gettext-${PV}" 20S = "${UNPACKDIR}/gettext-${PV}"
21 21
22python get_aclocal_files() { 22python get_aclocal_files() {
23 fpath = oe.path.join(d.getVar("S"), "/gettext-tools/m4/Makefile.am") 23 fpath = oe.path.join(d.getVar("S"), "/gettext-tools/m4/Makefile.am")
@@ -42,5 +42,5 @@ do_install () {
42 install -d ${D}${datadir}/gettext/po/ 42 install -d ${D}${datadir}/gettext/po/
43 cp ${S}/build-aux/config.rpath ${D}${datadir}/gettext/ 43 cp ${S}/build-aux/config.rpath ${D}${datadir}/gettext/
44 cp ${S}/gettext-runtime/po/Makefile.in.in ${D}${datadir}/gettext/po/ 44 cp ${S}/gettext-runtime/po/Makefile.in.in ${D}${datadir}/gettext/po/
45 cp ${S}/gettext-runtime/po/remove-potcdate.sin ${D}${datadir}/gettext/po/ 45 cp ${S}/gettext-runtime/po/remove-potcdate.sed ${D}${datadir}/gettext/po/
46} 46}
diff --git a/meta/recipes-core/gettext/gettext-sources.inc b/meta/recipes-core/gettext/gettext-sources.inc
index fd05837528..5d90d81b58 100644
--- a/meta/recipes-core/gettext/gettext-sources.inc
+++ b/meta/recipes-core/gettext/gettext-sources.inc
@@ -1,4 +1,4 @@
1HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html" 1HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
2SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \ 2SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
3 " 3 "
4SRC_URI[sha256sum] = "ec1705b1e969b83a9f073144ec806151db88127f5e40fe5a94cb6c8fa48996a0" 4SRC_URI[sha256sum] = "52a578960fe308742367d75cd1dff8552c5797bd0beba7639e12bdcda28c0e49"
diff --git a/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch b/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
index 33d45a038c..e59c73fb7d 100644
--- a/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
+++ b/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
@@ -1,4 +1,4 @@
1From c58c503c532d20883a93ef778327c86dd6de24f6 Mon Sep 17 00:00:00 2001 1From 9d36ff90d3a488caa8cd7b3351e5a3bdc4229b1b Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 6 Mar 2020 21:04:05 +0000 3Date: Fri, 6 Mar 2020 21:04:05 +0000
4Subject: [PATCH] init-env.in: do not add C/CXX parameters 4Subject: [PATCH] init-env.in: do not add C/CXX parameters
@@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13 1 file changed, 4 deletions(-) 13 1 file changed, 4 deletions(-)
14 14
15diff --git a/gettext-tools/tests/init-env.in b/gettext-tools/tests/init-env.in 15diff --git a/gettext-tools/tests/init-env.in b/gettext-tools/tests/init-env.in
16index cc84ffd..b69c990 100644 16index 0968388..3d9a8a5 100644
17--- a/gettext-tools/tests/init-env.in 17--- a/gettext-tools/tests/init-env.in
18+++ b/gettext-tools/tests/init-env.in 18+++ b/gettext-tools/tests/init-env.in
19@@ -3,10 +3,6 @@ top_builddir=../.. 19@@ -3,10 +3,6 @@ top_builddir=../..
@@ -24,6 +24,6 @@ index cc84ffd..b69c990 100644
24-CFLAGS="@CFLAGS@" 24-CFLAGS="@CFLAGS@"
25-CXX="@CXX@" 25-CXX="@CXX@"
26-CXXFLAGS="@CXXFLAGS@" 26-CXXFLAGS="@CXXFLAGS@"
27 OBJC="@OBJC@"
28 OBJCFLAGS="@OBJCFLAGS@"
27 CPPFLAGS="@CPPFLAGS@" 29 CPPFLAGS="@CPPFLAGS@"
28 LDFLAGS="@LDFLAGS@"
29 LTLIBINTL="@LTLIBINTL@"
diff --git a/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch b/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
index 94afb255c3..a8f6684bd7 100644
--- a/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
+++ b/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
@@ -1,4 +1,4 @@
1From 7006142d199af13628edc687847a9a5bac48b45d Mon Sep 17 00:00:00 2001 1From 4e9ea45803fe8dfc41ec5c51a65048addd985765 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 7 Jan 2020 16:44:38 +0100 3Date: Tue, 7 Jan 2020 16:44:38 +0100
4Subject: [PATCH] tests/autopoint-3: unset MAKEFLAGS 4Subject: [PATCH] tests/autopoint-3: unset MAKEFLAGS
@@ -13,13 +13,13 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13 1 file changed, 1 insertion(+) 13 1 file changed, 1 insertion(+)
14 14
15diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3 15diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3
16index bd3fbf3..380eaac 100755 16index af2e17f..46cf3f7 100755
17--- a/gettext-tools/tests/autopoint-3 17--- a/gettext-tools/tests/autopoint-3
18+++ b/gettext-tools/tests/autopoint-3 18+++ b/gettext-tools/tests/autopoint-3
19@@ -131,6 +131,7 @@ test $? = 0 || { cat autopoint.err; Exit 1; } 19@@ -137,6 +137,7 @@ ${CONFIG_SHELL} ./configure >/dev/null 2>autopoint.err
20 ${CONFIG_SHELL} ./configure >/dev/null 2>autpoint.err
21 test $? = 0 || { cat autopoint.err; Exit 1; } 20 test $? = 0 || { cat autopoint.err; Exit 1; }
22 21
22 : ${MAKE=make}
23+unset MAKEFLAGS 23+unset MAKEFLAGS
24 ${MAKE} >/dev/null 2>autopoint.err 24 ${MAKE} >/dev/null 2>autopoint.err
25 test $? = 0 || { cat autopoint.err; Exit 1; } 25 test $? = 0 || { cat autopoint.err; Exit 1; }
diff --git a/meta/recipes-core/gettext/gettext/parallel.patch b/meta/recipes-core/gettext/gettext/parallel.patch
deleted file mode 100644
index 8ecba46fd0..0000000000
--- a/meta/recipes-core/gettext/gettext/parallel.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 83333bc873c2655ff1de161f6b7db930f22f1cea Mon Sep 17 00:00:00 2001
2From: Joe Slater <jslater@windriver.com>
3Date: Thu, 7 Jun 2012 16:37:01 -0700
4Subject: [PATCH] instal libgettextlib.a before removing it
5
6In a multiple job build, Makefile can simultaneously
7be installing and removing libgettextlib.a. We serialize
8the operations.
9
10Upstream-Status: Pending
11
12Signed-off-by: Joe Slater <jslater@windriver.com>
13---
14 gettext-tools/gnulib-lib/Makefile.am | 4 ++++
15 1 file changed, 4 insertions(+)
16
17diff --git a/gettext-tools/gnulib-lib/Makefile.am b/gettext-tools/gnulib-lib/Makefile.am
18index ab729cd..a0d713e 100644
19--- a/gettext-tools/gnulib-lib/Makefile.am
20+++ b/gettext-tools/gnulib-lib/Makefile.am
21@@ -58,6 +58,10 @@ AM_CFLAGS = @WARN_CFLAGS@
22 # Rules generated and collected by gnulib-tool.
23 include Makefile.gnulib
24
25+# defined in Makefile.gnulib but missing this dependency
26+#
27+install-exec-clean: install-libLTLIBRARIES
28+
29 # OS/2 does not support a DLL name longer than 8 characters.
30 if OS2
31 libgettextlib_la_LDFLAGS += -os2dllname gtlib
diff --git a/meta/recipes-core/gettext/gettext/serial-tests-config.patch b/meta/recipes-core/gettext/gettext/serial-tests-config.patch
index 7d39d6086a..3baf549795 100644
--- a/meta/recipes-core/gettext/gettext/serial-tests-config.patch
+++ b/meta/recipes-core/gettext/gettext/serial-tests-config.patch
@@ -1,4 +1,4 @@
1From aa8dfe0aafd0b53a6c5bac61b356ca92e1430a36 Mon Sep 17 00:00:00 2001 1From 33fd16b0b2c69ec1118bb605384e7e3b1a94eee0 Mon Sep 17 00:00:00 2001
2From: "Hongjun.Yang" <hongjun.yang@windriver.com> 2From: "Hongjun.Yang" <hongjun.yang@windriver.com>
3Date: Thu, 28 Jul 2016 12:36:15 +0800 3Date: Thu, 28 Jul 2016 12:36:15 +0800
4Subject: [PATCH] fix for ptest 4Subject: [PATCH] fix for ptest
@@ -15,7 +15,7 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
15 3 files changed, 3 insertions(+), 3 deletions(-) 15 3 files changed, 3 insertions(+), 3 deletions(-)
16 16
17diff --git a/configure.ac b/configure.ac 17diff --git a/configure.ac b/configure.ac
18index f4e54ea..a47ff14 100644 18index 5106676..3114998 100644
19--- a/configure.ac 19--- a/configure.ac
20+++ b/configure.ac 20+++ b/configure.ac
21@@ -22,7 +22,7 @@ AC_INIT([gettext], 21@@ -22,7 +22,7 @@ AC_INIT([gettext],
@@ -28,7 +28,7 @@ index f4e54ea..a47ff14 100644
28 dnl Override automake's tar command used for creating distributions. 28 dnl Override automake's tar command used for creating distributions.
29 am__tar='${AMTAR} chf - --format=ustar --owner=root --group=root "$$tardir"' 29 am__tar='${AMTAR} chf - --format=ustar --owner=root --group=root "$$tardir"'
30diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac 30diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac
31index 126d069..aa23232 100644 31index e128f5b..9f7447c 100644
32--- a/gettext-runtime/configure.ac 32--- a/gettext-runtime/configure.ac
33+++ b/gettext-runtime/configure.ac 33+++ b/gettext-runtime/configure.ac
34@@ -22,7 +22,7 @@ AC_INIT([gettext-runtime], 34@@ -22,7 +22,7 @@ AC_INIT([gettext-runtime],
@@ -41,7 +41,7 @@ index 126d069..aa23232 100644
41 41
42 dnl Installation directories. 42 dnl Installation directories.
43diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac 43diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac
44index 3610ee3..6f56a23 100644 44index 3b1f461..14510a9 100644
45--- a/gettext-tools/configure.ac 45--- a/gettext-tools/configure.ac
46+++ b/gettext-tools/configure.ac 46+++ b/gettext-tools/configure.ac
47@@ -22,7 +22,7 @@ AC_INIT([gettext-tools], 47@@ -22,7 +22,7 @@ AC_INIT([gettext-tools],
diff --git a/meta/recipes-core/gettext/gettext/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
index ceb1856118..9774c4cce0 100644
--- a/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
+++ b/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
@@ -1,4 +1,4 @@
1From 6aa1338b916fe72c200b6f160b934be15b6ff590 Mon Sep 17 00:00:00 2001 1From 7302a77e08e62fc3b00f75d8aa143c5565c3f680 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com> 2From: Ross Burton <ross.burton@intel.com>
3Date: Tue, 23 Jan 2018 00:54:13 +0000 3Date: Tue, 23 Jan 2018 00:54:13 +0000
4Subject: [PATCH] gettext: beat library detection into shape 4Subject: [PATCH] gettext: beat library detection into shape
@@ -19,10 +19,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
19 3 files changed, 31 insertions(+), 286 deletions(-) 19 3 files changed, 31 insertions(+), 286 deletions(-)
20 20
21diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4 21diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4
22index 0340490..0355388 100644 22index c7160d7..8e46cc7 100644
23--- a/gettext-tools/gnulib-m4/libxml.m4 23--- a/gettext-tools/gnulib-m4/libxml.m4
24+++ b/gettext-tools/gnulib-m4/libxml.m4 24+++ b/gettext-tools/gnulib-m4/libxml.m4
25@@ -13,6 +13,7 @@ dnl gl_LIBXML(FORCE-INCLUDED) 25@@ -14,6 +14,7 @@ dnl gl_LIBXML(FORCE-INCLUDED)
26 dnl forces the use of the included or an external libxml. 26 dnl forces the use of the included or an external libxml.
27 AC_DEFUN([gl_LIBXML], 27 AC_DEFUN([gl_LIBXML],
28 [ 28 [
@@ -30,7 +30,7 @@ index 0340490..0355388 100644
30 AC_REQUIRE([AM_ICONV_LINK]) 30 AC_REQUIRE([AM_ICONV_LINK])
31 31
32 ifelse([$1], , [ 32 ifelse([$1], , [
33@@ -30,106 +31,10 @@ AC_DEFUN([gl_LIBXML], 33@@ -31,106 +32,10 @@ AC_DEFUN([gl_LIBXML],
34 INCXML= 34 INCXML=
35 ifelse([$1], [yes], , [ 35 ifelse([$1], [yes], , [
36 if test "$gl_cv_libxml_use_included" != yes; then 36 if test "$gl_cv_libxml_use_included" != yes; then
@@ -142,10 +142,10 @@ index 0340490..0355388 100644
142 ]) 142 ])
143 AC_SUBST([LIBXML]) 143 AC_SUBST([LIBXML])
144diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4 144diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4
145index dbc9eb8..136e512 100644 145index baa2cf4..b287c5b 100644
146--- a/libtextstyle/gnulib-local/m4/libglib.m4 146--- a/libtextstyle/gnulib-local/m4/libglib.m4
147+++ b/libtextstyle/gnulib-local/m4/libglib.m4 147+++ b/libtextstyle/gnulib-local/m4/libglib.m4
148@@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. 148@@ -7,106 +7,26 @@ dnl with or without modifications, as long as this notice is preserved.
149 149
150 dnl From Bruno Haible. 150 dnl From Bruno Haible.
151 151
@@ -266,10 +266,10 @@ index dbc9eb8..136e512 100644
266 AC_SUBST([LTLIBGLIB]) 266 AC_SUBST([LTLIBGLIB])
267 AC_SUBST([INCGLIB]) 267 AC_SUBST([INCGLIB])
268diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4 268diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4
269index dbc9eb8..136e512 100644 269index baa2cf4..b287c5b 100644
270--- a/libtextstyle/gnulib-m4/libglib.m4 270--- a/libtextstyle/gnulib-m4/libglib.m4
271+++ b/libtextstyle/gnulib-m4/libglib.m4 271+++ b/libtextstyle/gnulib-m4/libglib.m4
272@@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved. 272@@ -7,106 +7,26 @@ dnl with or without modifications, as long as this notice is preserved.
273 273
274 dnl From Bruno Haible. 274 dnl From Bruno Haible.
275 275
diff --git a/meta/recipes-core/gettext/gettext_0.22.5.bb b/meta/recipes-core/gettext/gettext_0.23.1.bb
index 1a66d37916..c704a3b6d7 100644
--- a/meta/recipes-core/gettext/gettext_0.22.5.bb
+++ b/meta/recipes-core/gettext/gettext_0.23.1.bb
@@ -13,7 +13,6 @@ LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '',
13# without glib in PACKAGECONFIG vendor copy of the lib will be used 13# without glib in PACKAGECONFIG vendor copy of the lib will be used
14LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}" 14LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}"
15 15
16
17DEPENDS = "gettext-native virtual/libiconv" 16DEPENDS = "gettext-native virtual/libiconv"
18DEPENDS:class-native = "gettext-minimal-native" 17DEPENDS:class-native = "gettext-minimal-native"
19PROVIDES = "virtual/libintl virtual/gettext" 18PROVIDES = "virtual/libintl virtual/gettext"
@@ -22,7 +21,6 @@ RCONFLICTS:${PN} = "proxy-libintl"
22 21
23require gettext-sources.inc 22require gettext-sources.inc
24SRC_URI += " \ 23SRC_URI += " \
25 file://parallel.patch \
26 file://use-pkgconfig.patch \ 24 file://use-pkgconfig.patch \
27 file://run-ptest \ 25 file://run-ptest \
28 file://serial-tests-config.patch \ 26 file://serial-tests-config.patch \
@@ -64,9 +62,6 @@ PACKAGECONFIG[libxml] = "--without-included-libxml,--with-included-libxml,libxml
64PACKAGECONFIG[libunistring] = "--with-libunistring-prefix=${STAGING_LIBDIR}/..,--with-included-libunistring,libunistring" 62PACKAGECONFIG[libunistring] = "--with-libunistring-prefix=${STAGING_LIBDIR}/..,--with-included-libunistring,libunistring"
65PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses," 63PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses,"
66 64
67acpaths = '-I ${S}/gettext-runtime/m4 \
68 -I ${S}/gettext-tools/m4'
69
70do_install:append:libc-musl () { 65do_install:append:libc-musl () {
71 rm -f ${D}${libdir}/charset.alias 66 rm -f ${D}${libdir}/charset.alias
72 rm -f ${D}${includedir}/libintl.h 67 rm -f ${D}${includedir}/libintl.h
@@ -89,7 +84,7 @@ FILES:libgettextsrc = "${libdir}/libgettextsrc-*.so*"
89 84
90PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-doc" 85PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-doc"
91 86
92FILES:${PN} += "${libdir}/${BPN}/*" 87FILES:${PN} += "${libdir}/${BPN}/"
93 88
94# The its/Makefile.am has defined: 89# The its/Makefile.am has defined:
95# itsdir = $(pkgdatadir)$(PACKAGE_SUFFIX)/its 90# itsdir = $(pkgdatadir)$(PACKAGE_SUFFIX)/its
@@ -129,7 +124,7 @@ do_install:append:class-native () {
129 rm ${D}${datadir}/aclocal/* 124 rm ${D}${datadir}/aclocal/*
130 rm ${D}${datadir}/gettext/config.rpath 125 rm ${D}${datadir}/gettext/config.rpath
131 rm ${D}${datadir}/gettext/po/Makefile.in.in 126 rm ${D}${datadir}/gettext/po/Makefile.in.in
132 rm ${D}${datadir}/gettext/po/remove-potcdate.sin 127 rm ${D}${datadir}/gettext/po/remove-potcdate.sed
133 128
134 create_wrapper ${D}${bindir}/msgfmt \ 129 create_wrapper ${D}${bindir}/msgfmt \
135 GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-${PV}/" 130 GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-${PV}/"
@@ -144,7 +139,6 @@ do_compile_ptest() {
144} 139}
145 140
146do_install_ptest() { 141do_install_ptest() {
147 if [ ${PTEST_ENABLED} = "1" ]; then
148 mkdir -p ${D}${PTEST_PATH}/tests 142 mkdir -p ${D}${PTEST_PATH}/tests
149 mkdir -p ${D}${PTEST_PATH}/src 143 mkdir -p ${D}${PTEST_PATH}/src
150 mkdir -p ${D}${PTEST_PATH}/po 144 mkdir -p ${D}${PTEST_PATH}/po
@@ -175,9 +169,9 @@ do_install_ptest() {
175 install ${B}/gettext-tools/misc/* ${D}${PTEST_PATH}/misc 169 install ${B}/gettext-tools/misc/* ${D}${PTEST_PATH}/misc
176 find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \; 170 find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
177 chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-tcl-4 \ 171 chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-tcl-4 \
178 ${D}${PTEST_PATH}/tests/xgettext-vala-1 ${D}${PTEST_PATH}/tests/xgettext-po-2 ${D}${PTEST_PATH}/tests/xgettext-vala-6 172 ${D}${PTEST_PATH}/tests/xgettext-vala-1 ${D}${PTEST_PATH}/tests/xgettext-po-2 ${D}${PTEST_PATH}/tests/xgettext-vala-6 \
173 ${D}${PTEST_PATH}/tests/plural-3 ${D}${PTEST_PATH}/tests/plural-4 ${D}${PTEST_PATH}/tests/xgettext-java-8 ${D}${PTEST_PATH}/tests/xgettext-java-9
179 sed -i -e 's|${DEBUG_PREFIX_MAP}||g' ${D}${PTEST_PATH}/tests/init-env 174 sed -i -e 's|${DEBUG_PREFIX_MAP}||g' ${D}${PTEST_PATH}/tests/init-env
180 fi
181} 175}
182 176
183RDEPENDS:${PN}-ptest += "make xz bash gawk autoconf locale-base-de-de locale-base-fr-fr" 177RDEPENDS:${PN}-ptest += "make xz bash gawk autoconf locale-base-de-de locale-base-fr-fr"
@@ -207,7 +201,4 @@ RRECOMMENDS:${PN}-ptest:append:libc-glibc = "\
207 locale-base-fr-fr.iso-8859-1 \ 201 locale-base-fr-fr.iso-8859-1 \
208" 202"
209 203
210INSANE_SKIP:${PN}-ptest += "ldflags"
211INSANE_SKIP:${PN}-ptest += "rpaths"
212
213BBCLASSEXTEND = "native nativesdk" 204BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
index 8e6598fbef..c394ab3277 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
@@ -1,26 +1,30 @@
1From e7077aa23bfcd31a8e72e39dc93ce4f854678376 Mon Sep 17 00:00:00 2001 1From 8981db5d775e04b72fb68b6a4553c87fdaedee65 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 15 Feb 2019 11:17:27 +0100 3Date: Fri, 15 Feb 2019 11:17:27 +0100
4Subject: [PATCH] Do not write $bindir into pkg-config files 4Subject: [PATCH] Do not prefix executables with $bindir in pkg-config files
5 5
6This would otherwise break when using the files to build other target 6This would otherwise break when using the executables to build other target
7components (we need to rely on PATH containing the paths to utilities, 7components (we need to rely on PATH containing the paths to utilities,
8rather than use target paths). 8rather than use target paths).
9 9
10Upstream-Status: Inappropriate [upstream wants the paths in .pc files] 10Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12--- 12---
13 gio/meson.build | 16 ++++++++-------- 13 gio/meson.build | 17 +++++++++--------
14 glib/meson.build | 6 +++--- 14 glib/meson.build | 7 ++++---
15 2 files changed, 11 insertions(+), 11 deletions(-) 15 2 files changed, 13 insertions(+), 11 deletions(-)
16 16
17diff --git a/gio/meson.build b/gio/meson.build 17diff --git a/gio/meson.build b/gio/meson.build
18index 5f91586..1a95f4f 100644 18index 5d91b89..1a8da12 100644
19--- a/gio/meson.build 19--- a/gio/meson.build
20+++ b/gio/meson.build 20+++ b/gio/meson.build
21@@ -884,14 +884,14 @@ pkg.generate(libgio, 21@@ -901,17 +901,18 @@ libgio_dep = declare_dependency(link_with : libgio,
22 pkg.generate(libgio,
23 requires : ['glib-2.0', 'gobject-2.0'],
24 variables : [
25+ 'bindir=' + '${prefix}' / get_option('bindir'),
26 'schemasdir=' + '${datadir}' / schemas_subdir,
22 'dtdsdir=' + '${datadir}' / dtds_subdir, 27 'dtdsdir=' + '${datadir}' / dtds_subdir,
23 'bindir=' + '${prefix}' / get_option('bindir'),
24 'giomoduledir=' + pkgconfig_giomodulesdir, 28 'giomoduledir=' + pkgconfig_giomodulesdir,
25- 'gio=' + '${bindir}' / 'gio', 29- 'gio=' + '${bindir}' / 'gio',
26- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules', 30- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
@@ -39,19 +43,20 @@ index 5f91586..1a95f4f 100644
39+ 'gresource=gresource', 43+ 'gresource=gresource',
40+ 'gsettings=gsettings', 44+ 'gsettings=gsettings',
41 ], 45 ],
42 version : glib_version, 46 uninstalled_variables : [
43 install_dir : glib_pkgconfigreldir, 47 'gio=${prefix}/gio/gio',
44diff --git a/glib/meson.build b/glib/meson.build 48diff --git a/glib/meson.build b/glib/meson.build
45index c26a35e..1d8ca6b 100644 49index 837960d..97d4af0 100644
46--- a/glib/meson.build 50--- a/glib/meson.build
47+++ b/glib/meson.build 51+++ b/glib/meson.build
48@@ -447,9 +447,9 @@ pkg.generate(libglib, 52@@ -443,9 +443,10 @@ pkg.generate(libglib,
53 subdirs : ['glib-2.0'],
54 extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
49 variables : [ 55 variables : [
50 'bindir=' + '${prefix}' / get_option('bindir'),
51 'datadir=' + '${prefix}' / get_option('datadir'),
52- 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal', 56- 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
53- 'gobject_query=' + '${bindir}' / 'gobject-query', 57- 'gobject_query=' + '${bindir}' / 'gobject-query',
54- 'glib_mkenums=' + '${bindir}' / 'glib-mkenums', 58- 'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
59+ 'bindir=' + '${prefix}' / get_option('bindir'),
55+ 'glib_genmarshal=glib-genmarshal', 60+ 'glib_genmarshal=glib-genmarshal',
56+ 'gobject_query=gobject-query', 61+ 'gobject_query=gobject-query',
57+ 'glib_mkenums=glib-mkenums', 62+ 'glib_mkenums=glib-mkenums',
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
index eb9dfdbcf9..19fffbdc5f 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
@@ -1,4 +1,4 @@
1From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 Mon Sep 17 00:00:00 2001 1From 48bfc87e9f757cf65ad967520860bfd7526c36f2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 15 Mar 2014 22:42:29 -0700 3Date: Sat, 15 Mar 2014 22:42:29 -0700
4Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux 4Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
index ad69f7ec65..89ba10ff6d 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
@@ -1,4 +1,4 @@
1From 4933aef791857a5aac650b60af800778658b875b Mon Sep 17 00:00:00 2001 1From b8dcbf03b315d31759176e9d4fd389e8fda6ffcd Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com> 2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 22 Mar 2016 15:14:58 +0200 3Date: Tue, 22 Mar 2016 15:14:58 +0200
4Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM 4Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
@@ -13,10 +13,10 @@ Upstream-Status: Inappropriate [OE specific]
13 1 file changed, 1 insertion(+) 13 1 file changed, 1 insertion(+)
14 14
15diff --git a/gio/meson.build b/gio/meson.build 15diff --git a/gio/meson.build b/gio/meson.build
16index f9fdf6e..5f91586 100644 16index 854b95a..5d91b89 100644
17--- a/gio/meson.build 17--- a/gio/meson.build
18+++ b/gio/meson.build 18+++ b/gio/meson.build
19@@ -1005,6 +1005,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu 19@@ -1038,6 +1038,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
20 c_args : gio_c_args, 20 c_args : gio_c_args,
21 # intl.lib is not compatible with SAFESEH 21 # intl.lib is not compatible with SAFESEH
22 link_args : noseh_link_args, 22 link_args : noseh_link_args,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
index 0e3a62af6a..ebdf957272 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
@@ -1,4 +1,4 @@
1From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 Mon Sep 17 00:00:00 2001 1From bdb2772d672e95584585e902689936559c5db05d Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 12 Jun 2015 17:08:46 +0300 3Date: Fri, 12 Jun 2015 17:08:46 +0300
4Subject: [PATCH] Remove the warning about deprecated paths in schemas 4Subject: [PATCH] Remove the warning about deprecated paths in schemas
@@ -14,7 +14,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
14 1 file changed, 13 deletions(-) 14 1 file changed, 13 deletions(-)
15 15
16diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c 16diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
17index 04ef404..e791ce2 100644 17index 81e675f..1a10a8d 100644
18--- a/gio/glib-compile-schemas.c 18--- a/gio/glib-compile-schemas.c
19+++ b/gio/glib-compile-schemas.c 19+++ b/gio/glib-compile-schemas.c
20@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state, 20@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
index aee2986033..771b03e66d 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
@@ -1,4 +1,4 @@
1From 878e51f82100c698236fda0e069e14ea9249350c Mon Sep 17 00:00:00 2001 1From 8cb75d3bc368ee108a4b14bc57a92bd0c0b2e10e Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 8 Jan 2020 18:22:46 +0100 3Date: Wed, 8 Jan 2020 18:22:46 +0100
4Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test 4Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
@@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
14 14
15diff --git a/gio/tests/resources.c b/gio/tests/resources.c 15diff --git a/gio/tests/resources.c b/gio/tests/resources.c
16index f567914..b21b616 100644 16index ee9cee4..ff844c1 100644
17--- a/gio/tests/resources.c 17--- a/gio/tests/resources.c
18+++ b/gio/tests/resources.c 18+++ b/gio/tests/resources.c
19@@ -1068,7 +1068,7 @@ main (int argc, 19@@ -1196,7 +1196,7 @@ main (int argc,
20 g_test_add_func ("/resource/automatic", test_resource_automatic); 20 g_test_add_func ("/resource/automatic", test_resource_automatic);
21 /* This only uses automatic resources too, so it tests the constructors and destructors */ 21 /* This only uses automatic resources too, so it tests the constructors and destructors */
22 g_test_add_func ("/resource/module", test_resource_module); 22 g_test_add_func ("/resource/module", test_resource_module);
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
index 0b10269114..e5878a1428 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
@@ -1,4 +1,4 @@
1From b4b523160ef550a53705fcc45ac6e10d086ce491 Mon Sep 17 00:00:00 2001 1From 502984fe340a76c92e2c04235f43fdcb47728806 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 12 Oct 2019 17:46:26 -0700 3Date: Sat, 12 Oct 2019 17:46:26 -0700
4Subject: [PATCH] meson: Run atomics test on clang as well 4Subject: [PATCH] meson: Run atomics test on clang as well
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
15 15
16diff --git a/meson.build b/meson.build 16diff --git a/meson.build b/meson.build
17index 6ee775e..8bc5fa7 100644 17index a8bcadc..041b68e 100644
18--- a/meson.build 18--- a/meson.build
19+++ b/meson.build 19+++ b/meson.build
20@@ -1938,7 +1938,7 @@ atomicdefine = ''' 20@@ -2075,7 +2075,7 @@ atomicdefine = '''
21 # We know that we can always use real ("lock free") atomic operations with MSVC 21 # We know that we can always use real ("lock free") atomic operations with MSVC
22 if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops') 22 if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
23 have_atomic_lock_free = true 23 have_atomic_lock_free = true
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
index 14dcb278e0..e512940e34 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
@@ -1,4 +1,4 @@
1From 294f3e6e9a0a9f4733e85ed6810d1b743055370b Mon Sep 17 00:00:00 2001 1From d5e566c45a9ab4d7e51104ab176e6eb5f705f91d Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de> 2From: Alexander Kanavin <alex@linutronix.de>
3Date: Sat, 16 Sep 2023 22:28:27 +0200 3Date: Sat, 16 Sep 2023 22:28:27 +0200
4Subject: [PATCH] meson.build: do not enable pidfd features on native glib 4Subject: [PATCH] meson.build: do not enable pidfd features on native glib
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
14 1 file changed, 2 insertions(+), 1 deletion(-) 14 1 file changed, 2 insertions(+), 1 deletion(-)
15 15
16diff --git a/meson.build b/meson.build 16diff --git a/meson.build b/meson.build
17index 8bc5fa7..df1fa60 100644 17index 041b68e..155bfd4 100644
18--- a/meson.build 18--- a/meson.build
19+++ b/meson.build 19+++ b/meson.build
20@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h> 20@@ -1073,7 +1073,8 @@ if cc.links('''#include <sys/syscall.h>
21 waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG); 21 waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
22 return 0; 22 return 0;
23 }''', name : 'pidfd_open(2) system call') 23 }''', name : 'pidfd_open(2) system call')
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
index 6dff5179c7..d26f944d51 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
+++ b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
@@ -1,4 +1,4 @@
1From 50636758c73e5e61212a8f801c6c602b8aab5ba7 Mon Sep 17 00:00:00 2001 1From 211927d2caa4a81e1131c2210e1db838104a1fb9 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 3 Oct 2017 10:45:55 +0300 3Date: Tue, 3 Oct 2017 10:45:55 +0300
4Subject: [PATCH] Do not hardcode python path into various tools 4Subject: [PATCH] Do not hardcode python path into various tools
@@ -12,31 +12,31 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12 3 files changed, 3 insertions(+), 3 deletions(-) 12 3 files changed, 3 insertions(+), 3 deletions(-)
13 13
14diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in 14diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in
15index 67d3675..4e92a7a 100755 15index 877505e..49a1e8c 100755
16--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in 16--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
17+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in 17+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
18@@ -1,4 +1,4 @@ 18@@ -1,4 +1,4 @@
19-#!/usr/bin/env @PYTHON@ 19-#!@PYTHON@
20+#!/usr/bin/env python3 20+#!/usr/bin/env python3
21 21
22 # GDBus - GLib D-Bus Library 22 # GDBus - GLib D-Bus Library
23 # 23 #
24diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in 24diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in
25index aa5af43..56e8e2e 100755 25index 0578b74..56e8e2e 100755
26--- a/gobject/glib-genmarshal.in 26--- a/gobject/glib-genmarshal.in
27+++ b/gobject/glib-genmarshal.in 27+++ b/gobject/glib-genmarshal.in
28@@ -1,4 +1,4 @@ 28@@ -1,4 +1,4 @@
29-#!/usr/bin/env @PYTHON@ 29-#!@PYTHON@
30+#!/usr/bin/env python3 30+#!/usr/bin/env python3
31 31
32 # pylint: disable=too-many-lines, missing-docstring, invalid-name 32 # pylint: disable=too-many-lines, missing-docstring, invalid-name
33 33
34diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in 34diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
35index 353e53a..8ed6c39 100755 35index 7e794e9..4b619f8 100755
36--- a/gobject/glib-mkenums.in 36--- a/gobject/glib-mkenums.in
37+++ b/gobject/glib-mkenums.in 37+++ b/gobject/glib-mkenums.in
38@@ -1,4 +1,4 @@ 38@@ -1,4 +1,4 @@
39-#!/usr/bin/env @PYTHON@ 39-#!@PYTHON@
40+#!/usr/bin/env python3 40+#!/usr/bin/env python3
41 41
42 # If the code below looks horrible and unpythonic, do not panic. 42 # If the code below looks horrible and unpythonic, do not panic.
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/meta/recipes-core/glib-2.0/files/meson.cross.d/common
index 0d7c5fa3f8..0d7c5fa3f8 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
+++ b/meta/recipes-core/glib-2.0/files/meson.cross.d/common
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
index 3049e5116e..3049e5116e 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
+++ b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
index adad7e62ee..adad7e62ee 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
+++ b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
index 75f911ba1e..75f911ba1e 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
+++ b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
index 3049e5116e..3049e5116e 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
+++ b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
index 3e79bbf679..ddf464526c 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
@@ -1,4 +1,4 @@
1From f40e89b3852df37959606ee13b1a14ade81fa886 Mon Sep 17 00:00:00 2001 1From 456bac53f19d3094aa2007054c87d86c9d65b423 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com> 2From: Ross Burton <ross.burton@intel.com>
3Date: Fri, 11 Mar 2016 15:35:55 +0000 3Date: Fri, 11 Mar 2016 15:35:55 +0000
4Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds 4Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -18,10 +18,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
18 1 file changed, 7 deletions(-) 18 1 file changed, 7 deletions(-)
19 19
20diff --git a/gio/giomodule.c b/gio/giomodule.c 20diff --git a/gio/giomodule.c b/gio/giomodule.c
21index 17fabe6..8021208 100644 21index 76c2028..6deba7c 100644
22--- a/gio/giomodule.c 22--- a/gio/giomodule.c
23+++ b/gio/giomodule.c 23+++ b/gio/giomodule.c
24@@ -1271,11 +1271,6 @@ get_gio_module_dir (void) 24@@ -1260,11 +1260,6 @@ get_gio_module_dir (void)
25 g_free (install_dir); 25 g_free (install_dir);
26 #else 26 #else
27 module_dir = g_strdup (GIO_MODULE_DIR); 27 module_dir = g_strdup (GIO_MODULE_DIR);
@@ -33,7 +33,7 @@ index 17fabe6..8021208 100644
33 #include <dlfcn.h> 33 #include <dlfcn.h>
34 { 34 {
35 g_autofree gchar *path = NULL; 35 g_autofree gchar *path = NULL;
36@@ -1294,8 +1289,6 @@ get_gio_module_dir (void) 36@@ -1283,8 +1278,6 @@ get_gio_module_dir (void)
37 } 37 }
38 } 38 }
39 } 39 }
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/files/run-ptest
index 831bc3b91f..831bc3b91f 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
+++ b/meta/recipes-core/glib-2.0/files/run-ptest
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
index cd5ac287c3..138e970553 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
+++ b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
@@ -1,4 +1,4 @@
1From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 Mon Sep 17 00:00:00 2001 1From 51bfcab0b60bd57f4d3463c479fdf47e645cd6fe Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com> 2From: Ross Burton <ross.burton@arm.com>
3Date: Thu, 28 Mar 2024 16:27:09 +0000 3Date: Thu, 28 Mar 2024 16:27:09 +0000
4Subject: [PATCH] Skip /timeout/rounding test 4Subject: [PATCH] Skip /timeout/rounding test
@@ -16,7 +16,7 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
16 1 file changed, 1 deletion(-) 16 1 file changed, 1 deletion(-)
17 17
18diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c 18diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
19index 1ae3f3a34..85a715b0f 100644 19index 1ae3f3a..85a715b 100644
20--- a/glib/tests/timeout.c 20--- a/glib/tests/timeout.c
21+++ b/glib/tests/timeout.c 21+++ b/glib/tests/timeout.c
22@@ -214,7 +214,6 @@ main (int argc, char *argv[]) 22@@ -214,7 +214,6 @@ main (int argc, char *argv[])
@@ -27,6 +27,3 @@ index 1ae3f3a34..85a715b0f 100644
27 27
28 return g_test_run (); 28 return g_test_run ();
29 } 29 }
30--
312.34.1
32
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-initial_2.84.2.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.84.2.bb
new file mode 100644
index 0000000000..acec7e9676
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.84.2.bb
@@ -0,0 +1,6 @@
1require glib.inc
2PACKAGES = ""
3PACKAGECONFIG = ""
4
5inherit nopackages
6
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
deleted file mode 100644
index 32b4cea409..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
+++ /dev/null
@@ -1,80 +0,0 @@
1From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 13 Feb 2019 15:32:05 +0100
4Subject: [PATCH] Set host_machine correctly when building with mingw32
5
6Upstream-Status: Inappropriate [oe-core specific]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 gio/tests/meson.build | 8 ++++----
10 glib/tests/meson.build | 2 +-
11 meson.build | 3 +++
12 3 files changed, 8 insertions(+), 5 deletions(-)
13
14diff --git a/gio/tests/meson.build b/gio/tests/meson.build
15index 4ef3343..e498e7e 100644
16--- a/gio/tests/meson.build
17+++ b/gio/tests/meson.build
18@@ -29,7 +29,7 @@ endif
19
20 test_cpp_args = test_c_args
21
22-if host_machine.system() == 'windows'
23+if host_system == 'windows'
24 common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
25 endif
26
27@@ -230,7 +230,7 @@ if have_dbus_daemon
28 endif
29
30 # Test programs buildable on UNIX only
31-if host_machine.system() != 'windows'
32+if host_system != 'windows'
33 gio_tests += {
34 'file' : {},
35 'gdbus-peer-object-manager' : {},
36@@ -562,7 +562,7 @@ if host_machine.system() != 'windows'
37 endif # unix
38
39 # Test programs buildable on Windows only
40-if host_machine.system() == 'windows'
41+if host_system == 'windows'
42 gio_tests += {'win32-streams' : {}}
43 endif
44
45@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
46 }
47 endif
48
49-if host_machine.system() != 'windows'
50+if host_system != 'windows'
51 test_extra_programs += {
52 'gdbus-example-unix-fd-client' : {
53 'install' : false,
54diff --git a/glib/tests/meson.build b/glib/tests/meson.build
55index d80c86e..5329cda 100644
56--- a/glib/tests/meson.build
57+++ b/glib/tests/meson.build
58@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD')
59 }
60 endif
61
62-if host_machine.system() == 'windows'
63+if host_system == 'windows'
64 if winsock2.found()
65 glib_tests += {
66 'gpoll' : {
67diff --git a/meson.build b/meson.build
68index 813c9b7..6ee775e 100644
69--- a/meson.build
70+++ b/meson.build
71@@ -54,6 +54,9 @@ else
72 endif
73
74 host_system = host_machine.system()
75+if host_system == 'mingw32'
76+ host_system = 'windows'
77+endif
78
79 if host_system == 'darwin'
80 ios_test_code = '''#include <TargetConditionals.h>
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
deleted file mode 100644
index b11c283e6d..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From a8eb944a10353403241608a084787f6efcbb2eb7 Mon Sep 17 00:00:00 2001
2From: Jordan Williams <jordan@jwillikers.com>
3Date: Fri, 1 Dec 2023 09:53:50 -0600
4Subject: [PATCH] Switch from the deprecated distutils module to the packaging
5 module
6
7The distutils module was removed in Python 3.12.
8
9Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291]
10
11Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
12---
13 gio/gdbus-2.0/codegen/utils.py | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py
17index 0204610..08f1ba9 100644
18--- a/gio/gdbus-2.0/codegen/utils.py
19+++ b/gio/gdbus-2.0/codegen/utils.py
20@@ -19,7 +19,7 @@
21 #
22 # Author: David Zeuthen <davidz@redhat.com>
23
24-import distutils.version
25+import packaging.version
26 import os
27 import sys
28
29@@ -166,4 +166,4 @@ def version_cmp_key(key):
30 v = str(key[0])
31 else:
32 v = "0"
33- return (distutils.version.LooseVersion(v), key[1])
34+ return (packaging.version.Version(v), key[1])
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch b/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
deleted file mode 100644
index bdfbd55899..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From cce3ae98a2c1966719daabff5a4ec6cf94a846f6 Mon Sep 17 00:00:00 2001
2From: Philip Withnall <pwithnall@gnome.org>
3Date: Mon, 26 Feb 2024 16:55:44 +0000
4Subject: [PATCH] tests: Remove variable-length lookbehind tests for GRegex
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9PCRE2 10.43 has now introduced support for variable-length lookbehind,
10so these tests now fail if GLib is built against PCRE2 10.43 or higher.
11
12See
13https://github.com/PCRE2Project/pcre2/blob/e8db6fa7137f4c6f66cb87e0a3c9467252ec1ef7/ChangeLog#L94.
14
15Rather than making the tests conditional on the version of PCRE2 in use,
16just remove them. They are mostly testing the PCRE2 code rather than
17any code in GLib, so don’t have much value.
18
19This should fix CI runs on msys2-mingw32, which updated to PCRE2 10.43 2
20days ago.
21
22Signed-off-by: Philip Withnall <pwithnall@gnome.org>
23
24Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6]
25Signed-off-by: Alexander Kanavin <alex@linutronix.de>
26---
27 glib/tests/regex.c | 10 ----------
28 1 file changed, 10 deletions(-)
29
30diff --git a/glib/tests/regex.c b/glib/tests/regex.c
31index 1082526292..d7a698ec67 100644
32--- a/glib/tests/regex.c
33+++ b/glib/tests/regex.c
34@@ -1885,16 +1885,6 @@ test_lookbehind (void)
35 g_match_info_free (match);
36 g_regex_unref (regex);
37
38- regex = g_regex_new ("(?<!dogs?|cats?) x", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
39- g_assert (regex == NULL);
40- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
41- g_clear_error (&error);
42-
43- regex = g_regex_new ("(?<=ab(c|de)) foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
44- g_assert (regex == NULL);
45- g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
46- g_clear_error (&error);
47-
48 regex = g_regex_new ("(?<=abc|abde)foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
49 g_assert (regex);
50 g_assert_no_error (error);
51--
52GitLab
53
54
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch b/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
deleted file mode 100644
index 4f38509da6..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
+++ /dev/null
@@ -1,361 +0,0 @@
1From ce840b6b111e1e109e511f6833d6aa419e2b723a Mon Sep 17 00:00:00 2001
2From: Philip Withnall <philip@tecnocode.co.uk>
3Date: Tue, 23 Jan 2024 11:16:52 +0000
4Subject: [PATCH] Merge branch '2887-memory-monitor-tests' into 'main'
5
6tests: Fix race condition in memory-monitor-dbus.test
7
8Closes #2887
9
10See merge request GNOME/glib!3844
11
12Hopefully these commits fix the occasional failures we've been seeing:
13https://bugzilla.yoctoproject.org/show_bug.cgi?id=15362
14
15Upstream-Status: Backport
16Signed-off-by: Ross Burton <ross.burton@arm.com>
17---
18 gio/tests/memory-monitor-dbus.py.in | 64 +++++++++++++-------
19 gio/tests/memory-monitor-portal.py.in | 54 ++++++++++-------
20 gio/tests/power-profile-monitor-dbus.py.in | 35 ++++++-----
21 gio/tests/power-profile-monitor-portal.py.in | 34 ++++++-----
22 4 files changed, 113 insertions(+), 74 deletions(-)
23
24diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in
25index bf32918..7aae01e 100755
26--- a/gio/tests/memory-monitor-dbus.py.in
27+++ b/gio/tests/memory-monitor-dbus.py.in
28@@ -16,7 +16,6 @@ import sys
29 import subprocess
30 import fcntl
31 import os
32-import time
33
34 import taptestrunner
35
36@@ -57,53 +56,74 @@ try:
37 fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK)
38 self.last_warning = -1
39 self.dbusmock = dbus.Interface(self.obj_lmm, dbusmock.MOCK_IFACE)
40+
41+ try:
42+ self.wait_for_bus_object('org.freedesktop.LowMemoryMonitor',
43+ '/org/freedesktop/LowMemoryMonitor',
44+ system_bus=True)
45+ except:
46+ raise
47+
48 self.memory_monitor = Gio.MemoryMonitor.dup_default()
49+ assert("GMemoryMonitorDBus" in str(self.memory_monitor))
50 self.memory_monitor.connect("low-memory-warning", self.memory_warning_cb)
51 self.mainloop = GLib.MainLoop()
52 self.main_context = self.mainloop.get_context()
53
54+ # The LowMemoryMonitor API is stateless: it doesn’t expose any
55+ # properties, just a warning signal. Emit the signal in a loop until
56+ # the GMemoryMonitor instance has initialised and synchronised to
57+ # the right state.
58+ def emit_warning(level):
59+ self.dbusmock.EmitWarning(level)
60+ return GLib.SOURCE_CONTINUE
61+
62+ idle_id = GLib.idle_add(emit_warning, 0)
63+ while self.last_warning != 0:
64+ self.main_context.iteration(True)
65+ GLib.source_remove(idle_id)
66+
67 def tearDown(self):
68 self.p_mock.terminate()
69 self.p_mock.wait()
70
71- def assertEventually(self, condition, message=None, timeout=50):
72+ def assertEventually(self, condition, message=None, timeout=5):
73 '''Assert that condition function eventually returns True.
74
75- Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
76+ Timeout is in seconds, defaulting to 5 seconds. message is
77 printed on failure.
78 '''
79- while timeout >= 0:
80- context = GLib.MainContext.default()
81- while context.iteration(False):
82- pass
83- if condition():
84- break
85- timeout -= 1
86- time.sleep(0.1)
87- else:
88- self.fail(message or 'timed out waiting for ' + str(condition))
89+ if not message:
90+ message = 'timed out waiting for ' + str(condition)
91+
92+ def timed_out_cb(message):
93+ self.fail(message)
94+ return GLib.SOURCE_REMOVE
95+
96+ timeout_source = GLib.timeout_source_new_seconds(timeout)
97+ timeout_source.set_callback(timed_out_cb, message)
98+ timeout_source.attach(self.main_context)
99+
100+ while not condition():
101+ self.main_context.iteration(True)
102+
103+ timeout_source.destroy()
104
105 def memory_warning_cb(self, monitor, level):
106+ print("Received memory warning signal, level", level)
107 self.last_warning = level
108 self.main_context.wakeup()
109
110 def test_low_memory_warning_signal(self):
111 '''LowMemoryWarning signal'''
112
113- # Wait 2 seconds
114- timeout = 2
115- while timeout > 0:
116- time.sleep(0.5)
117- timeout -= 0.5
118- self.main_context.iteration(False)
119-
120 self.dbusmock.EmitWarning(100)
121 # Wait 2 seconds or until warning
122- self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
123+ self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
124
125 self.dbusmock.EmitWarning(255)
126 # Wait 2 seconds or until warning
127- self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
128+ self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
129
130 except ImportError as e:
131 @unittest.skip("Cannot import %s" % e.name)
132diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in
133index 748cee8..f570508 100755
134--- a/gio/tests/memory-monitor-portal.py.in
135+++ b/gio/tests/memory-monitor-portal.py.in
136@@ -16,7 +16,6 @@ import sys
137 import subprocess
138 import fcntl
139 import os
140-import time
141
142 import taptestrunner
143
144@@ -80,26 +79,44 @@ try:
145 self.mainloop = GLib.MainLoop()
146 self.main_context = self.mainloop.get_context()
147
148+ # The LowMemoryMonitor API is stateless: it doesn’t expose any
149+ # properties, just a warning signal. Emit the signal in a loop until
150+ # the GMemoryMonitor instance has initialised and synchronised to
151+ # the right state.
152+ def emit_warning(level):
153+ self.dbusmock.EmitWarning(level)
154+ return GLib.SOURCE_CONTINUE
155+
156+ idle_id = GLib.idle_add(self.emit_warning, 0)
157+ while self.last_warning != 0:
158+ self.main_context.iteration(True)
159+ GLib.source_remove(idle_id)
160+
161 def tearDown(self):
162 self.p_mock.terminate()
163 self.p_mock.wait()
164
165- def assertEventually(self, condition, message=None, timeout=50):
166+ def assertEventually(self, condition, message=None, timeout=5):
167 '''Assert that condition function eventually returns True.
168
169- Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
170+ Timeout is in seconds, defaulting to 5 seconds. message is
171 printed on failure.
172 '''
173- while timeout >= 0:
174- context = GLib.MainContext.default()
175- while context.iteration(False):
176- pass
177- if condition():
178- break
179- timeout -= 1
180- time.sleep(0.1)
181- else:
182- self.fail(message or 'timed out waiting for ' + str(condition))
183+ if not message:
184+ message = 'timed out waiting for ' + str(condition)
185+
186+ def timed_out_cb(message):
187+ self.fail(message)
188+ return GLib.SOURCE_REMOVE
189+
190+ timeout_source = GLib.timeout_source_new_seconds(timeout)
191+ timeout_source.set_callback(timed_out_cb, message)
192+ timeout_source.attach(self.main_context)
193+
194+ while not condition():
195+ self.main_context.iteration(True)
196+
197+ timeout_source.destroy()
198
199 def portal_memory_warning_cb(self, monitor, level):
200 self.last_warning = level
201@@ -108,20 +125,13 @@ try:
202 def test_low_memory_warning_portal_signal(self):
203 '''LowMemoryWarning signal'''
204
205- # Wait 2 seconds
206- timeout = 2
207- while timeout > 0:
208- time.sleep(0.5)
209- timeout -= 0.5
210- self.main_context.iteration(False)
211-
212 self.dbusmock.EmitWarning(100)
213 # Wait 2 seconds or until warning
214- self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
215+ self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
216
217 self.dbusmock.EmitWarning(255)
218 # Wait 2 seconds or until warning
219- self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
220+ self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
221
222 except ImportError as e:
223 @unittest.skip("Cannot import %s" % e.name)
224diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in
225index 06e594f..f955afc 100755
226--- a/gio/tests/power-profile-monitor-dbus.py.in
227+++ b/gio/tests/power-profile-monitor-dbus.py.in
228@@ -16,7 +16,6 @@ import sys
229 import subprocess
230 import fcntl
231 import os
232-import time
233
234 import taptestrunner
235
236@@ -58,6 +57,7 @@ try:
237 self.power_saver_enabled = False
238 self.dbus_props = dbus.Interface(self.obj_ppd, dbus.PROPERTIES_IFACE)
239 self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default()
240+ assert("GPowerProfileMonitorDBus" in str(self.power_profile_monitor))
241 self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb)
242 self.mainloop = GLib.MainLoop()
243 self.main_context = self.mainloop.get_context()
244@@ -66,22 +66,27 @@ try:
245 self.p_mock.terminate()
246 self.p_mock.wait()
247
248- def assertEventually(self, condition, message=None, timeout=50):
249+ def assertEventually(self, condition, message=None, timeout=5):
250 '''Assert that condition function eventually returns True.
251
252- Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
253+ Timeout is in seconds, defaulting to 5 seconds. message is
254 printed on failure.
255 '''
256- while timeout >= 0:
257- context = GLib.MainContext.default()
258- while context.iteration(False):
259- pass
260- if condition():
261- break
262- timeout -= 1
263- time.sleep(0.1)
264- else:
265- self.fail(message or 'timed out waiting for ' + str(condition))
266+ if not message:
267+ message = 'timed out waiting for ' + str(condition)
268+
269+ def timed_out_cb(message):
270+ self.fail(message)
271+ return GLib.SOURCE_REMOVE
272+
273+ timeout_source = GLib.timeout_source_new_seconds(timeout)
274+ timeout_source.set_callback(timed_out_cb, message)
275+ timeout_source.attach(self.main_context)
276+
277+ while not condition():
278+ self.main_context.iteration(True)
279+
280+ timeout_source.destroy()
281
282 def power_saver_enabled_cb(self, spec, data):
283 self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
284@@ -92,10 +97,10 @@ try:
285
286 self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
287 self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
288- self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
289+ self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
290
291 self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
292- self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
293+ self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
294
295 except ImportError as e:
296 @unittest.skip("Cannot import %s" % e.name)
297diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in
298index 09e9a45..ad2abf6 100755
299--- a/gio/tests/power-profile-monitor-portal.py.in
300+++ b/gio/tests/power-profile-monitor-portal.py.in
301@@ -16,7 +16,6 @@ import sys
302 import subprocess
303 import fcntl
304 import os
305-import time
306
307 import taptestrunner
308
309@@ -90,22 +89,27 @@ try:
310 self.p_mock.terminate()
311 self.p_mock.wait()
312
313- def assertEventually(self, condition, message=None, timeout=50):
314+ def assertEventually(self, condition, message=None, timeout=5):
315 '''Assert that condition function eventually returns True.
316
317- Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
318+ Timeout is in seconds, defaulting to 5 seconds. message is
319 printed on failure.
320 '''
321- while timeout >= 0:
322- context = GLib.MainContext.default()
323- while context.iteration(False):
324- pass
325- if condition():
326- break
327- timeout -= 1
328- time.sleep(0.1)
329- else:
330- self.fail(message or 'timed out waiting for ' + str(condition))
331+ if not message:
332+ message = 'timed out waiting for ' + str(condition)
333+
334+ def timed_out_cb(message):
335+ self.fail(message)
336+ return GLib.SOURCE_REMOVE
337+
338+ timeout_source = GLib.timeout_source_new_seconds(timeout)
339+ timeout_source.set_callback(timed_out_cb, message)
340+ timeout_source.attach(self.main_context)
341+
342+ while not condition():
343+ self.main_context.iteration(True)
344+
345+ timeout_source.destroy()
346
347 def power_saver_enabled_cb(self, spec, data):
348 self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
349@@ -116,10 +120,10 @@ try:
350
351 self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
352 self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
353- self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
354+ self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
355
356 self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
357- self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
358+ self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
359
360 def test_power_profile_power_saver_enabled_portal_default(self):
361 '''power-saver-enabled property default value'''
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
deleted file mode 100644
index b1669ead75..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
+++ /dev/null
@@ -1,57 +0,0 @@
1require glib.inc
2
3PE = "1"
4
5SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
6
7SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
8 file://run-ptest \
9 file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
10 file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
11 file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
12 file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
13 file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
14 file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
15 file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
16 file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
17 file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
18 file://memory-monitor.patch \
19 file://fix-regex.patch \
20 file://skip-timeout.patch \
21 "
22SRC_URI:append:class-native = " file://relocate-modules.patch \
23 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
24 "
25
26SRC_URI[sha256sum] = "24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63"
27
28# Find any meson cross files in FILESPATH that are relevant for the current
29# build (using siteinfo) and add them to EXTRA_OEMESON.
30inherit siteinfo
31def find_meson_cross_files(d):
32 if bb.data.inherits_class('native', d):
33 return ""
34
35 thisdir = os.path.normpath(d.getVar("THISDIR"))
36 import collections
37 sitedata = siteinfo_data(d)
38 # filename -> found
39 files = collections.OrderedDict()
40 for path in d.getVar("FILESPATH").split(":"):
41 for element in sitedata:
42 filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
43 sanitized_path = filename.replace(thisdir, "${THISDIR}")
44 if sanitized_path == filename:
45 if os.path.exists(filename):
46 bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
47 continue
48 files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
49
50 items = ["--cross-file=" + k for k,v in files.items() if v]
51 d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
52 items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
53 d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
54
55python () {
56 find_meson_cross_files(d)
57}
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.84.2.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.84.2.bb
new file mode 100644
index 0000000000..ef80cc47cf
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.84.2.bb
@@ -0,0 +1,2 @@
1require glib.inc
2
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index fac8875d84..ba7763c841 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -28,21 +28,27 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
28 28
29LEAD_SONAME = "libglib-2.0.*" 29LEAD_SONAME = "libglib-2.0.*"
30 30
31inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data 31inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
32 32
33GTKDOC_MESON_OPTION = "gtk_doc" 33S = "${UNPACKDIR}/glib-${PV}"
34 34
35S = "${WORKDIR}/glib-${PV}" 35GIDOCGEN_MESON_OPTION = "documentation"
36 36
37PACKAGECONFIG ??= "libmount \ 37PACKAGECONFIG ??= "libmount \
38 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)} \
38 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 39 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
40PACKAGECONFIG:class-native = ""
41
39PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux" 42PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
40PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native" 43PACKAGECONFIG[manpages] = "-Dman-pages=enabled, -Dman-pages=disabled, python3-docutils-native"
41PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils" 44PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils"
42PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false," 45PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false,"
43PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux" 46PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
47PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,gobject-introspection-native gobject-introspection glib-2.0-initial"
48
49EXTRA_OEMESON = "-Ddtrace=disabled -Dsystemtap=disabled -Dsysprof=disabled"
44 50
45EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false" 51EXTRA_OEMESON:append:class-target = " ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''}"
46 52
47do_configure:prepend() { 53do_configure:prepend() {
48 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in 54 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -53,14 +59,16 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
53 ${libexecdir}/*gio-querymodules \ 59 ${libexecdir}/*gio-querymodules \
54 ${libexecdir}/*gio-launch-desktop \ 60 ${libexecdir}/*gio-launch-desktop \
55 ${datadir}/glib-2.0/dtds \ 61 ${datadir}/glib-2.0/dtds \
56 ${datadir}/glib-2.0/schemas" 62 ${datadir}/glib-2.0/schemas \
57 63 ${libdir}/girepository-*/*.typelib \
64"
58FILES:${PN}-dev += "${libdir}/glib-2.0/include \ 65FILES:${PN}-dev += "${libdir}/glib-2.0/include \
59 ${libdir}/gio/modules/lib*${SOLIBSDEV} \ 66 ${libdir}/gio/modules/lib*${SOLIBSDEV} \
60 ${libdir}/gio/modules/*.la \ 67 ${libdir}/gio/modules/*.la \
61 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \ 68 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
62 ${datadir}/glib-2.0/schemas/gschema.dtd \ 69 ${datadir}/glib-2.0/schemas/gschema.dtd \
63 ${datadir}/glib-2.0/valgrind/glib.supp \ 70 ${datadir}/glib-2.0/valgrind/glib.supp \
71 ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir \
64 ${datadir}/gettext/its" 72 ${datadir}/gettext/its"
65FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb" 73FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
66FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \ 74FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
@@ -149,12 +157,10 @@ CODEGEN_PYTHON_RDEPENDS:mingw32 = ""
149 157
150RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" 158RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
151 159
152RDEPENDS:${PN}-ptest += "${PN}-utils"
153
154RDEPENDS:${PN}-ptest += "\ 160RDEPENDS:${PN}-ptest += "\
155 coreutils \ 161 coreutils \
156 libgcc \ 162 libgcc \
157 dbus \ 163 ${VIRTUAL-RUNTIME_dbus} \
158 desktop-file-utils \ 164 desktop-file-utils \
159 gnome-desktop-testing \ 165 gnome-desktop-testing \
160 tzdata \ 166 tzdata \
@@ -163,6 +169,7 @@ RDEPENDS:${PN}-ptest += "\
163 tzdata-europe \ 169 tzdata-europe \
164 tzdata-posix \ 170 tzdata-posix \
165 shared-mime-info \ 171 shared-mime-info \
172 ${PN}-dev \
166 ${PN}-locale-ja \ 173 ${PN}-locale-ja \
167 ${PN}-locale-fr \ 174 ${PN}-locale-fr \
168 ${PN}-locale-el \ 175 ${PN}-locale-el \
@@ -171,6 +178,7 @@ RDEPENDS:${PN}-ptest += "\
171 ${PN}-locale-pl \ 178 ${PN}-locale-pl \
172 ${PN}-locale-ru \ 179 ${PN}-locale-ru \
173 ${PN}-locale-th \ 180 ${PN}-locale-th \
181 ${PN}-utils \
174 python3-core \ 182 python3-core \
175 python3-modules \ 183 python3-modules \
176 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-dbusmock', '', d)} \ 184 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-dbusmock', '', d)} \
@@ -182,6 +190,7 @@ RDEPENDS:${PN}-ptest += "\
182 locale-base-fr-fr \ 190 locale-base-fr-fr \
183 locale-base-ru-ru \ 191 locale-base-ru-ru \
184 " 192 "
193INSANE_SKIP:${PN}-ptest = "dev-deps"
185 194
186RDEPENDS:${PN}-ptest:append:libc-glibc = "\ 195RDEPENDS:${PN}-ptest:append:libc-glibc = "\
187 glibc-gconv-utf-16 \ 196 glibc-gconv-utf-16 \
@@ -195,6 +204,7 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
195 glibc-gconv-iso8859-15 \ 204 glibc-gconv-iso8859-15 \
196 glibc-charmap-invariant \ 205 glibc-charmap-invariant \
197 glibc-localedata-translit-cjk-variants \ 206 glibc-localedata-translit-cjk-variants \
207 locale-base-c \
198 locale-base-lt-lt \ 208 locale-base-lt-lt \
199 locale-base-ja-jp.euc-jp \ 209 locale-base-ja-jp.euc-jp \
200 locale-base-fa-ir \ 210 locale-base-fa-ir \
@@ -204,3 +214,55 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
204 locale-base-pl-pl.iso-8859-2 \ 214 locale-base-pl-pl.iso-8859-2 \
205 locale-base-tr-tr \ 215 locale-base-tr-tr \
206 " 216 "
217
218PE = "1"
219
220SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
221
222SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
223 file://run-ptest \
224 file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
225 file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
226 file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
227 file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
228 file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
229 file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
230 file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
231 file://skip-timeout.patch \
232 "
233SRC_URI:append:class-native = " file://relocate-modules.patch \
234 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
235 "
236
237SRC_URI[sha256sum] = "88e960dd937057407d61fcb3b45a860704b25923c37ae2478b85f2ecb5a4021f"
238
239# Find any meson cross files in FILESPATH that are relevant for the current
240# build (using siteinfo) and add them to EXTRA_OEMESON.
241inherit siteinfo
242def find_meson_cross_files(d):
243 if bb.data.inherits_class('native', d):
244 return ""
245
246 thisdir = os.path.normpath(d.getVar("THISDIR"))
247 import collections
248 sitedata = siteinfo_data(d)
249 # filename -> found
250 files = collections.OrderedDict()
251 for path in d.getVar("FILESPATH").split(":"):
252 for element in sitedata:
253 filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
254 sanitized_path = filename.replace(thisdir, "${THISDIR}")
255 if sanitized_path == filename:
256 if os.path.exists(filename):
257 bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
258 continue
259 files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
260
261 items = ["--cross-file=" + k for k,v in files.items() if v]
262 d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
263 items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
264 d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
265
266python () {
267 find_meson_cross_files(d)
268}
diff --git a/meta/recipes-core/glib-networking/glib-networking/eagain.patch b/meta/recipes-core/glib-networking/glib-networking/eagain.patch
index 6c2e3c634b..98974aa4e7 100644
--- a/meta/recipes-core/glib-networking/glib-networking/eagain.patch
+++ b/meta/recipes-core/glib-networking/glib-networking/eagain.patch
@@ -1,4 +1,4 @@
1From 5604707bed4b4a4bc4658c7158a18c1774775775 Mon Sep 17 00:00:00 2001 1From f917ef5579257007bc02850e79769fe5ec48b2b7 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Sat, 6 May 2023 12:18:50 +0100 3Date: Sat, 6 May 2023 12:18:50 +0100
4Subject: [PATCH] In autobuilder testing we regularly see glib-networking ptest 4Subject: [PATCH] In autobuilder testing we regularly see glib-networking ptest
@@ -12,7 +12,7 @@ FAIL: glib-networking/connection-openssl.test (Child process killed by signal 6)
12 12
13The test should probably retry in this situation so test a patch which does this. 13The test should probably retry in this situation so test a patch which does this.
14 14
15Upstream-Status: Pending [testing to see if patch resolves the issue] 15Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/253]
16 16
17Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> 17Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
18--- 18---
diff --git a/meta/recipes-core/glib-networking/glib-networking_2.78.1.bb b/meta/recipes-core/glib-networking/glib-networking_2.80.0.bb
index 5060d9fd7a..b080285b6e 100644
--- a/meta/recipes-core/glib-networking/glib-networking_2.78.1.bb
+++ b/meta/recipes-core/glib-networking/glib-networking_2.80.0.bb
@@ -14,14 +14,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
14SECTION = "libs" 14SECTION = "libs"
15DEPENDS = "glib-2.0-native glib-2.0" 15DEPENDS = "glib-2.0-native glib-2.0"
16 16
17SRC_URI[archive.sha256sum] = "e48f2ddbb049832cbb09230529c5e45daca9f0df0eda325f832f7379859bf09f" 17SRC_URI[archive.sha256sum] = "d8f4f1aab213179ae3351617b59dab5de6bcc9e785021eee178998ebd4bb3acf"
18 18
19# Upstream note that for the openssl backend, half the tests where this backend don't return 19# Upstream note that for the openssl backend, half the tests where this backend don't return
20# the expected error code or don't work as expected so default to gnutls 20# the expected error code or don't work as expected so default to gnutls
21PACKAGECONFIG ??= "gnutls environment ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 21PACKAGECONFIG ??= "gnutls environment ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
22 22
23PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls" 23PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls,ca-certificates"
24PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl" 24PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl,ca-certificates"
25PACKAGECONFIG[environment] = "-Denvironment_proxy=enabled,-Denvironment_proxy=disabled" 25PACKAGECONFIG[environment] = "-Denvironment_proxy=enabled,-Denvironment_proxy=disabled"
26PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy" 26PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy"
27PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false" 27PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.39.bb b/meta/recipes-core/glibc/cross-localedef-native_2.41.bb
index fed6e4ea97..95acb3fc56 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.39.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.41.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
3SECTION = "libs" 3SECTION = "libs"
4LICENSE = "LGPL-2.1-only" 4LICENSE = "LGPL-2.1-only"
5 5
6LIC_FILES_CHKSUM = "file://LICENSES;md5=f77e878d320e99e94ae9a4aea7f491d1 \ 6LIC_FILES_CHKSUM = "file://LICENSES;md5=df6e0948b55669789c30764c5fd9bc41 \
7 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 7 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ 8 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
9 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" 9 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
@@ -20,7 +20,7 @@ inherit native
20FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" 20FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
21 21
22SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ 22SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
23 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef;protocol=https \ 23 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/localedef;protocol=https \
24 \ 24 \
25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \ 25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \
26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \ 26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \
@@ -37,8 +37,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
37# 37#
38SRCREV_FORMAT = "glibc_localedef" 38SRCREV_FORMAT = "glibc_localedef"
39 39
40S = "${WORKDIR}/git"
41
42EXTRA_OECONF = "--with-glibc=${S}" 40EXTRA_OECONF = "--with-glibc=${S}"
43 41
44# We do not need bash to run tzselect script, the default is to use 42# We do not need bash to run tzselect script, the default is to use
diff --git a/meta/recipes-core/glibc/glibc-common.inc b/meta/recipes-core/glibc/glibc-common.inc
index b9516e77f0..fb62a4af94 100644
--- a/meta/recipes-core/glibc/glibc-common.inc
+++ b/meta/recipes-core/glibc/glibc-common.inc
@@ -2,9 +2,9 @@ SUMMARY = "GLIBC (GNU C Library)"
2DESCRIPTION = "The GNU C Library is used as the system C library in most systems with the Linux kernel." 2DESCRIPTION = "The GNU C Library is used as the system C library in most systems with the Linux kernel."
3HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" 3HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
4SECTION = "libs" 4SECTION = "libs"
5LICENSE = "GPL-2.0-only & LGPL-2.1-only" 5LICENSE = "GPL-2.0-only & LGPL-2.1-or-later"
6 6
7LIC_FILES_CHKSUM ?= "file://LICENSES;md5=f77e878d320e99e94ae9a4aea7f491d1 \ 7LIC_FILES_CHKSUM ?= "file://LICENSES;md5=df6e0948b55669789c30764c5fd9bc41 \
8 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 8 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
9 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ 9 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
10 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" 10 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
@@ -22,4 +22,6 @@ ARM_INSTRUCTION_SET:armv6 = "arm"
22# 22#
23COMPATIBLE_HOST:libc-musl:class-target = "null" 23COMPATIBLE_HOST:libc-musl:class-target = "null"
24 24
25PV = "2.39+git" 25PV = "2.41+git"
26
27TOOLCHAIN = "gcc"
diff --git a/meta/recipes-core/glibc/glibc-locale.inc b/meta/recipes-core/glibc/glibc-locale.inc
index c63c9edd76..90248bbc0f 100644
--- a/meta/recipes-core/glibc/glibc-locale.inc
+++ b/meta/recipes-core/glibc/glibc-locale.inc
@@ -65,6 +65,8 @@ FILES:${LOCALEBASEPN}-locale-alias = "${datadir}/locale/locale.alias"
65 65
66LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale" 66LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale"
67 67
68PSEUDO_INCLUDE_PATHS .= ",${WORKDIR}/locale-tree"
69
68copy_locale_files() { 70copy_locale_files() {
69 local dir=$1 mode=$2 71 local dir=$1 mode=$2
70 72
diff --git a/meta/recipes-core/glibc/glibc-locale_2.39.bb b/meta/recipes-core/glibc/glibc-locale_2.41.bb
index f7702e0358..f7702e0358 100644
--- a/meta/recipes-core/glibc/glibc-locale_2.39.bb
+++ b/meta/recipes-core/glibc/glibc-locale_2.41.bb
diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.39.bb b/meta/recipes-core/glibc/glibc-mtrace_2.41.bb
index 0b69bad46a..0b69bad46a 100644
--- a/meta/recipes-core/glibc/glibc-mtrace_2.39.bb
+++ b/meta/recipes-core/glibc/glibc-mtrace_2.41.bb
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 1ef987be0a..21f2200d19 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -26,6 +26,7 @@ INSANE_SKIP:${PN}-dev += "staticdev"
26INSANE_SKIP:${MLPREFIX}ldso:append = " dev-so libdir" 26INSANE_SKIP:${MLPREFIX}ldso:append = " dev-so libdir"
27 27
28FILES:${PN} = "${libc_baselibs} ${libexecdir}/* ${sysconfdir}/ld.so.conf" 28FILES:${PN} = "${libc_baselibs} ${libexecdir}/* ${sysconfdir}/ld.so.conf"
29CONFFILES:${PN} = "${sysconfdir}/ld.so.conf"
29RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}" 30RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
30FILES:ldconfig = "${base_sbindir}/ldconfig" 31FILES:ldconfig = "${base_sbindir}/ldconfig"
31FILES:ldd = "${bindir}/ldd" 32FILES:ldd = "${bindir}/ldd"
@@ -39,7 +40,7 @@ FILES:sln = "${base_sbindir}/sln"
39FILES:${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o" 40FILES:${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o"
40FILES:libsotruss = "${libdir}/audit/sotruss-lib.so" 41FILES:libsotruss = "${libdir}/audit/sotruss-lib.so"
41FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}" 42FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}"
42FILES:${PN}-dev += "${libdir}/libpthread.a ${libdir}/libdl.a ${libdir}/libutil.a ${libdir}/libanl.a ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal" 43FILES:${PN}-dev += "${libdir}/libpthread.a ${libdir}/libdl.a ${libdir}/libutil.a ${libdir}/libanl.a ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal ${libdir}/gcc/${TARGET_SYS}/*/finclude"
43RDEPENDS:${PN}-dev = "linux-libc-headers-dev" 44RDEPENDS:${PN}-dev = "linux-libc-headers-dev"
44FILES:${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a" 45FILES:${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a"
45FILES:nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_system_unitdir}/nscd* ${nonarch_libdir}/tmpfiles.d/nscd.conf \ 46FILES:nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_system_unitdir}/nscd* ${nonarch_libdir}/tmpfiles.d/nscd.conf \
@@ -69,9 +70,9 @@ inherit multilib_header
69 70
70do_install() { 71do_install() {
71 oe_runmake install_root=${D} install 72 oe_runmake install_root=${D} install
72 install -Dm 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf 73 install -Dm 0644 ${UNPACKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf
73 install -d ${D}${localedir} 74 install -d ${D}${localedir}
74 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED" 75 make -f ${UNPACKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
75 # get rid of some broken files... 76 # get rid of some broken files...
76 for i in ${GLIBC_BROKEN_LOCALES}; do 77 for i in ${GLIBC_BROKEN_LOCALES}; do
77 sed -i "/$i/d" ${WORKDIR}/SUPPORTED 78 sed -i "/$i/d" ${WORKDIR}/SUPPORTED
@@ -87,7 +88,7 @@ do_install() {
87 rmdir --ignore-fail-on-non-empty ${D}${libexecdir} 88 rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
88 fi 89 fi
89 90
90 oe_multilib_header bits/syscall.h bits/long-double.h bits/floatn.h bits/endianness.h bits/struct_rwlock.h bits/math-vector.h 91 oe_multilib_header bits/syscall.h bits/long-double.h bits/floatn.h bits/endianness.h bits/struct_rwlock.h bits/math-vector.h bits/indirect-return.h
91 92
92 if [ -f ${D}${bindir}/mtrace ]; then 93 if [ -f ${D}${bindir}/mtrace ]; then
93 sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' -e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' ${D}${bindir}/mtrace 94 sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' -e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' ${D}${bindir}/mtrace
@@ -101,7 +102,7 @@ do_install() {
101 install -d ${D}${localstatedir}/db/nscd 102 install -d ${D}${localstatedir}/db/nscd
102 install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd 103 install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd
103 install -m 0755 ${S}/nscd/nscd.conf ${D}${sysconfdir}/nscd.conf 104 install -m 0755 ${S}/nscd/nscd.conf ${D}${sysconfdir}/nscd.conf
104 install -m 0755 ${WORKDIR}/makedbs.sh ${D}${localstatedir}/db 105 install -m 0755 ${UNPACKDIR}/makedbs.sh ${D}${localstatedir}/db
105 sed -i "s%daemon%start-stop-daemon --start --exec%g" ${D}${sysconfdir}/init.d/nscd 106 sed -i "s%daemon%start-stop-daemon --start --exec%g" ${D}${sysconfdir}/init.d/nscd
106 sed -i "s|\(enable-cache\t\+netgroup\t\+\)yes|\1no|" ${D}${sysconfdir}/nscd.conf 107 sed -i "s|\(enable-cache\t\+netgroup\t\+\)yes|\1no|" ${D}${sysconfdir}/nscd.conf
107 108
@@ -169,6 +170,12 @@ do_install_armmultilib () {
169 oe_multilib_header sys/elf.h sys/procfs.h sys/ptrace.h sys/ucontext.h sys/user.h 170 oe_multilib_header sys/elf.h sys/procfs.h sys/ptrace.h sys/ucontext.h sys/user.h
170} 171}
171 172
173do_install_armmultilib:append:class-target() {
174 gcc_version=$($CC -dumpversion)
175 mkdir -p ${D}${libdir}/gcc/${TARGET_SYS}/${gcc_version}/finclude
176 mv ${D}${includedir}/finclude/math-vector-fortran.h ${D}${libdir}/gcc/${TARGET_SYS}/${gcc_version}/finclude/
177 rmdir --ignore-fail-on-non-empty ${D}${includedir}/finclude
178}
172 179
173LOCALESTASH = "${WORKDIR}/stashed-locale" 180LOCALESTASH = "${WORKDIR}/stashed-locale"
174bashscripts = "mtrace sotruss xtrace" 181bashscripts = "mtrace sotruss xtrace"
@@ -286,7 +293,7 @@ pkg_postinst:nscd () {
286 fi 293 fi
287 fi 294 fi
288} 295}
289CONFFILES:nscd="${sysconfdir}/nscd.conf" 296CONFFILES:nscd = "${sysconfdir}/nscd.conf"
290 297
291SYSTEMD_PACKAGES = "nscd" 298SYSTEMD_PACKAGES = "nscd"
292SYSTEMD_SERVICE:nscd = "nscd.service" 299SYSTEMD_SERVICE:nscd = "nscd.service"
diff --git a/meta/recipes-core/glibc/glibc-scripts_2.39.bb b/meta/recipes-core/glibc/glibc-scripts_2.41.bb
index 5a89bd8022..5a89bd8022 100644
--- a/meta/recipes-core/glibc/glibc-scripts_2.39.bb
+++ b/meta/recipes-core/glibc/glibc-scripts_2.41.bb
diff --git a/meta/recipes-core/glibc/glibc-testsuite_2.39.bb b/meta/recipes-core/glibc/glibc-testsuite_2.41.bb
index 2e076f4b0f..3a2764e40b 100644
--- a/meta/recipes-core/glibc/glibc-testsuite_2.39.bb
+++ b/meta/recipes-core/glibc/glibc-testsuite_2.41.bb
@@ -18,7 +18,7 @@ TOOLCHAIN_TEST_HOST_PORT ??= "2222"
18do_check[nostamp] = "1" 18do_check[nostamp] = "1"
19do_check[network] = "1" 19do_check[network] = "1"
20do_check:append () { 20do_check:append () {
21 chmod 0755 ${WORKDIR}/check-test-wrapper 21 chmod 0755 ${UNPACKDIR}/check-test-wrapper
22 22
23 oe_runmake -i \ 23 oe_runmake -i \
24 QEMU_SYSROOT="${RECIPE_SYSROOT}" \ 24 QEMU_SYSROOT="${RECIPE_SYSROOT}" \
@@ -26,7 +26,7 @@ do_check:append () {
26 SSH_HOST="${TOOLCHAIN_TEST_HOST}" \ 26 SSH_HOST="${TOOLCHAIN_TEST_HOST}" \
27 SSH_HOST_USER="${TOOLCHAIN_TEST_HOST_USER}" \ 27 SSH_HOST_USER="${TOOLCHAIN_TEST_HOST_USER}" \
28 SSH_HOST_PORT="${TOOLCHAIN_TEST_HOST_PORT}" \ 28 SSH_HOST_PORT="${TOOLCHAIN_TEST_HOST_PORT}" \
29 test-wrapper="${WORKDIR}/check-test-wrapper ${TOOLCHAIN_TEST_TARGET}" \ 29 test-wrapper="${UNPACKDIR}/check-test-wrapper ${TOOLCHAIN_TEST_TARGET}" \
30 check 30 check
31} 31}
32 32
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index 618a574566..2d31131e03 100644
--- a/meta/recipes-core/glibc/glibc-version.inc
+++ b/meta/recipes-core/glibc/glibc-version.inc
@@ -1,10 +1,8 @@
1SRCBRANCH ?= "release/2.39/master" 1SRCBRANCH ?= "release/2.41/master"
2PV = "2.39+git" 2PV = "2.41+git"
3SRCREV_glibc ?= "1b9c1a0047fb26a65a9b2a7b8cd977243f7d353c" 3SRCREV_glibc ?= "0c76c951620f9e12df2a89b2c684878b55bb6795"
4SRCREV_localedef ?= "fab74f31b3811df543e24b6de47efdf45b538abc" 4SRCREV_localedef ?= "fab74f31b3811df543e24b6de47efdf45b538abc"
5 5
6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https" 6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"
7 7
8UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.(?!90)\d+)*)" 8UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.(?!90)\d+)*)"
9
10CVE_STATUS[CVE-2023-4911] = "fixed-version: Fixed in stable branch updates"
diff --git a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb b/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
deleted file mode 100644
index be49ca4cb7..0000000000
--- a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
+++ /dev/null
@@ -1,119 +0,0 @@
1require glibc_${PV}.bb
2require glibc-tests.inc
3
4inherit ptest features_check
5REQUIRED_DISTRO_FEATURES = "ptest"
6
7SRC_URI += "\
8 file://run-ptest \
9"
10
11SUMMARY = "glibc tests using time32/time64 interfaces to be run with ptest for the purpose of checking y2038 compatiblity"
12
13# Erase some variables already set by glibc_${PV}
14python __anonymous() {
15 # Remove packages provided by glibc build, we only need a subset of them
16 d.setVar("PACKAGES", "${PN} ${PN}-ptest")
17
18 d.setVar("PROVIDES", "${PN} ${PN}-ptest")
19
20 bbclassextend = d.getVar("BBCLASSEXTEND").replace("nativesdk", "").strip()
21 d.setVar("BBCLASSEXTEND", bbclassextend)
22 d.setVar("RRECOMMENDS", "")
23 d.setVar("SYSTEMD_SERVICE:nscd", "")
24 d.setVar("SYSTEMD_PACKAGES", "")
25}
26
27# Remove any leftovers from original glibc recipe
28RPROVIDES:${PN} = "${PN}"
29RRECOMMENDS:${PN} = ""
30RDEPENDS:${PN} = "glibc libgcc sed bash"
31RDEPENDS:${PN}-ptest = "${PN}"
32DEPENDS += "sed"
33
34export oe_srcdir="${exec_prefix}/src/debug/glibc/${PV}/"
35
36# Just build tests for target - do not run them
37do_check:append () {
38 oe_runmake -i check run-built-tests=no
39}
40addtask do_check after do_compile before do_install_ptest_base
41
42glibc_strip_build_directory () {
43 # Delete all non executable files from build directory
44 find ${B} ! -executable -type f -delete
45
46 # Remove build dynamic libraries and links to them as
47 # those are already installed in the target device
48 find ${B} -type f -name "*.so" -delete
49 find ${B} -type l -name "*.so*" -delete
50
51 # Remove headers (installed with glibc)
52 find ${B} -type f -name "*.h" -delete
53
54 find ${B} -type f -name "isomac" -delete
55 find ${B} -type f -name "annexc" -delete
56}
57
58do_install_ptest_base () {
59 glibc_strip_build_directory
60
61 ls -r ${B}/*/*-time64 > ${B}/tst_time64
62
63 # Remove '-time64' suffix - those tests are also time related
64 sed -e "s/-time64$//" ${B}/tst_time64 > ${B}/tst_time_tmp
65 tst_time=$(cat ${B}/tst_time_tmp ${B}/tst_time64)
66
67 rm ${B}/tst_time_tmp ${B}/tst_time64
68 echo "${tst_time}"
69
70 # Install build test programs to the image
71 install -d ${D}${PTEST_PATH}/tests/glibc-ptest/
72
73 for f in "${tst_time}"
74 do
75 cp -r ${f} ${D}${PTEST_PATH}/tests/glibc-ptest/
76 done
77
78 install -d ${D}${PTEST_PATH}
79 cp ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/
80
81}
82
83# The datadir directory is required to allow core (and reused)
84# glibc cleanup function to finish correctly, as this directory
85# is not created for ptests
86stash_locale_package_cleanup:prepend () {
87 mkdir -p ${PKGD}${datadir}
88}
89
90stash_locale_sysroot_cleanup:prepend () {
91 mkdir -p ${SYSROOT_DESTDIR}${datadir}
92}
93
94# Prevent the do_package() task to set 'libc6' prefix
95# for glibc tests related packages
96python populate_packages:prepend () {
97 if d.getVar('DEBIAN_NAMES'):
98 d.setVar('DEBIAN_NAMES', '')
99}
100
101FILES:${PN} = "${PTEST_PATH}/* /usr/src/debug/${PN}/*"
102
103EXCLUDE_FROM_SHLIBS = "1"
104
105# Install debug data in .debug and sources in /usr/src/debug
106# It is more handy to have _all_ the sources and symbols in one
107# place (package) as this recipe will be used for validation and
108# debugging.
109PACKAGE_DEBUG_SPLIT_STYLE = ".debug"
110
111# glibc test cases violate by default some Yocto/OE checks (staticdev,
112# textrel)
113# 'debug-files' - add everything (including debug) into one package
114# (no need to install/build *-src package)
115INSANE_SKIP:${PN} += "staticdev textrel debug-files rpaths"
116
117deltask do_stash_locale
118do_install[noexec] = "1"
119do_populate_sysroot[noexec] = "1"
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index b08a70aa46..d8f20c87dd 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -1,7 +1,7 @@
1require glibc-common.inc 1require glibc-common.inc
2require glibc-ld.inc 2require glibc-ld.inc
3 3
4DEPENDS = "virtual/${HOST_PREFIX}gcc virtual/${HOST_PREFIX}binutils libgcc-initial linux-libc-headers" 4DEPENDS = "virtual/cross-cc virtual/cross-binutils libgcc-initial linux-libc-headers"
5 5
6PROVIDES = "virtual/libc" 6PROVIDES = "virtual/libc"
7PROVIDES += "virtual/libintl virtual/libiconv" 7PROVIDES += "virtual/libintl virtual/libiconv"
diff --git a/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch
new file mode 100644
index 0000000000..b42b186418
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch
@@ -0,0 +1,24 @@
1From 603e50d6b8ccadb32d59b0497f76629665c1794b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 16 Apr 2025 19:51:01 -0700
4Subject: [PATCH] Propagate -ffile-prefix-map from CFLAGS to ASFLAGS.
5
6Upstream-Status: Submitted [https://sourceware.org/pipermail/libc-alpha/2025-April/165969.html]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 Makeconfig | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/Makeconfig b/Makeconfig
13index e35c5cfe4e..7a19c731c6 100644
14--- a/Makeconfig
15+++ b/Makeconfig
16@@ -1172,7 +1172,7 @@ endif
17
18 # The assembler can generate debug information too.
19 ifndef ASFLAGS
20-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
21+ASFLAGS := $(filter -g% -fdebug-prefix-map=% -ffile-prefix-map=%,$(CFLAGS))
22 endif
23 override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
24
diff --git a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
index 4f919078dd..dbe3ce8c32 100644
--- a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
+++ b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
@@ -1,4 +1,4 @@
1From 544d23dea91b2be793c805b9e4bce8cd1d28121f Mon Sep 17 00:00:00 2001 1From cecd20fa2ff3ee2bd887b1d427088f32678cc04f Mon Sep 17 00:00:00 2001
2From: Jason Wessel <jason.wessel@windriver.com> 2From: Jason Wessel <jason.wessel@windriver.com>
3Date: Sat, 7 Dec 2019 09:59:22 -0800 3Date: Sat, 7 Dec 2019 09:59:22 -0800
4Subject: [PATCH] localedef: Add hardlink resolver from util-linux 4Subject: [PATCH] localedef: Add hardlink resolver from util-linux
diff --git a/meta/recipes-core/glibc/glibc/0001-stdlib-Add-single-threaded-fast-path-to-rand.patch b/meta/recipes-core/glibc/glibc/0001-stdlib-Add-single-threaded-fast-path-to-rand.patch
new file mode 100644
index 0000000000..736fc51f38
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0001-stdlib-Add-single-threaded-fast-path-to-rand.patch
@@ -0,0 +1,47 @@
1From 4f54b0dfc16dbe0df86afccb90e447df5f7f571e Mon Sep 17 00:00:00 2001
2From: Wilco Dijkstra <wilco.dijkstra@arm.com>
3Date: Mon, 18 Mar 2024 15:18:20 +0000
4Subject: [PATCH] stdlib: Add single-threaded fast path to rand()
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Improve performance of rand() and __random() by adding a single-threaded
10fast path. Bench-random-lock shows about 5x speedup on Neoverse V1.
11
12Upstream-Status: Backport [be0cfd848d9ad7378800d6302bc11467cf2b514f]
13
14Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
15Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com>
16---
17 stdlib/random.c | 7 +++++++
18 1 file changed, 7 insertions(+)
19
20diff --git a/stdlib/random.c b/stdlib/random.c
21index 17cc61ba8f55..5d482a857065 100644
22--- a/stdlib/random.c
23+++ b/stdlib/random.c
24@@ -51,6 +51,7 @@
25 SUCH DAMAGE.*/
26
27 #include <libc-lock.h>
28+#include <sys/single_threaded.h>
29 #include <limits.h>
30 #include <stddef.h>
31 #include <stdlib.h>
32@@ -288,6 +289,12 @@ __random (void)
33 {
34 int32_t retval;
35
36+ if (SINGLE_THREAD_P)
37+ {
38+ (void) __random_r (&unsafe_state, &retval);
39+ return retval;
40+ }
41+
42 __libc_lock_lock (lock);
43
44 (void) __random_r (&unsafe_state, &retval);
45--
462.34.1
47
diff --git a/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
index 7c8fa973ec..59d71a0d8b 100644
--- a/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
+++ b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
@@ -1,4 +1,4 @@
1From ebb1e37285ab541135005cfe945b7a58e4b95040 Mon Sep 17 00:00:00 2001 1From e31f032ae87ba38645c66dd7d2dfaa8606602e70 Mon Sep 17 00:00:00 2001
2From: Jason Wessel <jason.wessel@windriver.com> 2From: Jason Wessel <jason.wessel@windriver.com>
3Date: Sat, 7 Dec 2019 10:01:37 -0800 3Date: Sat, 7 Dec 2019 10:01:37 -0800
4Subject: [PATCH] localedef: fix-ups hardlink to make it compile 4Subject: [PATCH] localedef: fix-ups hardlink to make it compile
diff --git a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
index bd4b5aa98b..0f7db0d500 100644
--- a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
+++ b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
@@ -1,6 +1,6 @@
1From 9770abfda8e85fe027f95871bc03450d05b1e2c8 Mon Sep 17 00:00:00 2001 1From f794ec18764a59ad45e242092e2ae6f5e3b19761 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 01:48:24 +0000 3Date: Sat, 3 Feb 2024 13:54:16 -0800
4Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well 4Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well
5 5
6Upstream-Status: Inappropriate [embedded specific] 6Upstream-Status: Inappropriate [embedded specific]
@@ -30,25 +30,25 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
30 1 file changed, 8 insertions(+), 8 deletions(-) 30 1 file changed, 8 insertions(+), 8 deletions(-)
31 31
32diff --git a/elf/dl-load.c b/elf/dl-load.c 32diff --git a/elf/dl-load.c b/elf/dl-load.c
33index ce8fdea302..1f502eb026 100644 33index f905578a65..d4dd0fbc2a 100644
34--- a/elf/dl-load.c 34--- a/elf/dl-load.c
35+++ b/elf/dl-load.c 35+++ b/elf/dl-load.c
36@@ -2105,6 +2105,14 @@ _dl_map_object (struct link_map *loader, const char *name, 36@@ -2038,6 +2038,14 @@ _dl_map_object (struct link_map *loader, const char *name,
37 } 37 &loader->l_runpath_dirs, &realname, &fb, loader,
38 } 38 LA_SER_RUNPATH, &found_other_class);
39 39
40+ /* try the default path. */ 40+ /* Try the default path. */
41+ if (fd == -1 41+ if (fd == -1
42+ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL 42+ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
43+ || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) 43+ || __glibc_likely (!(l->l_flags_1 & DF_1_NODEFLIB)))
44+ && __rtld_search_dirs.dirs != (void *) -1) 44+ && __rtld_search_dirs.dirs != (void *) -1)
45+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &__rtld_search_dirs, 45+ fd = open_path (name, namelen, mode, &__rtld_search_dirs,
46+ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); 46+ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
47+ /* Finally try ld.so.cache */ 47+ /* Finally try ld.so.cache */
48 #ifdef USE_LDCONFIG 48 #ifdef USE_LDCONFIG
49 if (fd == -1 49 if (fd == -1
50 && (__glibc_likely ((mode & __RTLD_SECURE) == 0) 50 && (__glibc_likely ((mode & __RTLD_SECURE) == 0)
51@@ -2163,14 +2171,6 @@ _dl_map_object (struct link_map *loader, const char *name, 51@@ -2096,14 +2104,6 @@ _dl_map_object (struct link_map *loader, const char *name,
52 } 52 }
53 #endif 53 #endif
54 54
diff --git a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
index 19fc561a06..d9731a6fb7 100644
--- a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
+++ b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
@@ -1,4 +1,4 @@
1From 587b92ff99e6d8f59c461ee8beecae39d8818f7e Mon Sep 17 00:00:00 2001 1From e8af7c91033875cfaf419c840d3283d71eb72d50 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 01:50:00 +0000 3Date: Wed, 18 Mar 2015 01:50:00 +0000
4Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK 4Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK
@@ -21,10 +21,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
21 1 file changed, 12 insertions(+) 21 1 file changed, 12 insertions(+)
22 22
23diff --git a/elf/dl-load.c b/elf/dl-load.c 23diff --git a/elf/dl-load.c b/elf/dl-load.c
24index 1f502eb026..c4a543fb00 100644 24index d4dd0fbc2a..0cd5221d6a 100644
25--- a/elf/dl-load.c 25--- a/elf/dl-load.c
26+++ b/elf/dl-load.c 26+++ b/elf/dl-load.c
27@@ -1802,7 +1802,19 @@ open_path (const char *name, size_t namelen, int mode, 27@@ -1749,7 +1749,19 @@ open_path (const char *name, size_t namelen, int mode,
28 given on the command line when rtld is run directly. */ 28 given on the command line when rtld is run directly. */
29 return -1; 29 return -1;
30 30
diff --git a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
index 55892417f4..0ee03c95d8 100644
--- a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
+++ b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
@@ -1,4 +1,4 @@
1From 49caf586b80ba030a0ee4af9f6128ff2979ea636 Mon Sep 17 00:00:00 2001 1From d7c4488ff48992631e14a53c27252790eaefe928 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 01:51:38 +0000 3Date: Wed, 18 Mar 2015 01:51:38 +0000
4Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths 4Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths
@@ -26,10 +26,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
26 8 files changed, 15 insertions(+), 10 deletions(-) 26 8 files changed, 15 insertions(+), 10 deletions(-)
27 27
28diff --git a/elf/dl-cache.c b/elf/dl-cache.c 28diff --git a/elf/dl-cache.c b/elf/dl-cache.c
29index 85f3f179ed..cc55887c56 100644 29index 300aa1b6dd..6df873e08b 100644
30--- a/elf/dl-cache.c 30--- a/elf/dl-cache.c
31+++ b/elf/dl-cache.c 31+++ b/elf/dl-cache.c
32@@ -352,6 +352,10 @@ search_cache (const char *string_table, uint32_t string_table_size, 32@@ -336,6 +336,10 @@ search_cache (const char *string_table, uint32_t string_table_size,
33 return best; 33 return best;
34 } 34 }
35 35
@@ -41,10 +41,10 @@ index 85f3f179ed..cc55887c56 100644
41 _dl_cache_libcmp (const char *p1, const char *p2) 41 _dl_cache_libcmp (const char *p1, const char *p2)
42 { 42 {
43diff --git a/elf/dl-load.c b/elf/dl-load.c 43diff --git a/elf/dl-load.c b/elf/dl-load.c
44index c4a543fb00..27fb70f09b 100644 44index 0cd5221d6a..9b9593f8d8 100644
45--- a/elf/dl-load.c 45--- a/elf/dl-load.c
46+++ b/elf/dl-load.c 46+++ b/elf/dl-load.c
47@@ -117,8 +117,8 @@ enum { ncapstr = 1, max_capstrlen = 0 }; 47@@ -107,8 +107,8 @@ enum { ncapstr = 1, max_capstrlen = 0 };
48 gen-trusted-dirs.awk. */ 48 gen-trusted-dirs.awk. */
49 #include "trusted-dirs.h" 49 #include "trusted-dirs.h"
50 50
@@ -56,7 +56,7 @@ index c4a543fb00..27fb70f09b 100644
56 SYSTEM_DIRS_LEN 56 SYSTEM_DIRS_LEN
57 }; 57 };
58diff --git a/elf/dl-usage.c b/elf/dl-usage.c 58diff --git a/elf/dl-usage.c b/elf/dl-usage.c
59index 5baac4ba8e..60097ad0e2 100644 59index c6d13ac2ee..1dac82102d 100644
60--- a/elf/dl-usage.c 60--- a/elf/dl-usage.c
61+++ b/elf/dl-usage.c 61+++ b/elf/dl-usage.c
62@@ -25,6 +25,8 @@ 62@@ -25,6 +25,8 @@
@@ -87,7 +87,7 @@ index 5baac4ba8e..60097ad0e2 100644
87 print_hwcaps_subdirectories (state); 87 print_hwcaps_subdirectories (state);
88 _exit (EXIT_SUCCESS); 88 _exit (EXIT_SUCCESS);
89diff --git a/elf/interp.c b/elf/interp.c 89diff --git a/elf/interp.c b/elf/interp.c
90index 8b705824bf..7d094829f3 100644 90index cc49e13c86..394c1ce0c5 100644
91--- a/elf/interp.c 91--- a/elf/interp.c
92+++ b/elf/interp.c 92+++ b/elf/interp.c
93@@ -18,5 +18,5 @@ 93@@ -18,5 +18,5 @@
@@ -98,10 +98,10 @@ index 8b705824bf..7d094829f3 100644
98+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) 98+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
99 = RUNTIME_LINKER; 99 = RUNTIME_LINKER;
100diff --git a/elf/ldconfig.c b/elf/ldconfig.c 100diff --git a/elf/ldconfig.c b/elf/ldconfig.c
101index b64c54b53e..caf7001745 100644 101index 1432187e9b..0654e02389 100644
102--- a/elf/ldconfig.c 102--- a/elf/ldconfig.c
103+++ b/elf/ldconfig.c 103+++ b/elf/ldconfig.c
104@@ -150,6 +150,8 @@ static struct argp argp = 104@@ -151,6 +151,8 @@ static struct argp argp =
105 options, parse_opt, NULL, doc, NULL, more_help, NULL 105 options, parse_opt, NULL, doc, NULL, more_help, NULL
106 }; 106 };
107 107
@@ -111,7 +111,7 @@ index b64c54b53e..caf7001745 100644
111 static error_t 111 static error_t
112 parse_opt (int key, char *arg, struct argp_state *state) 112 parse_opt (int key, char *arg, struct argp_state *state)
113diff --git a/elf/rtld.c b/elf/rtld.c 113diff --git a/elf/rtld.c b/elf/rtld.c
114index 4f494b792e..d1c1252188 100644 114index f32058bba6..434ea6d0c5 100644
115--- a/elf/rtld.c 115--- a/elf/rtld.c
116+++ b/elf/rtld.c 116+++ b/elf/rtld.c
117@@ -190,6 +190,7 @@ dso_name_valid_for_suid (const char *p) 117@@ -190,6 +190,7 @@ dso_name_valid_for_suid (const char *p)
@@ -123,7 +123,7 @@ index 4f494b792e..d1c1252188 100644
123 static void 123 static void
124 audit_list_init (struct audit_list *list) 124 audit_list_init (struct audit_list *list)
125diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c 125diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
126index 1063c31a2b..57fa832e52 100644 126index 41ab0768c9..7c48c2b328 100644
127--- a/iconv/gconv_conf.c 127--- a/iconv/gconv_conf.c
128+++ b/iconv/gconv_conf.c 128+++ b/iconv/gconv_conf.c
129@@ -35,7 +35,7 @@ 129@@ -35,7 +35,7 @@
@@ -136,7 +136,7 @@ index 1063c31a2b..57fa832e52 100644
136 /* Type to represent search path. */ 136 /* Type to represent search path. */
137 struct path_elem 137 struct path_elem
138diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h 138diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
139index 919e49ffc8..cd3f8ba94b 100644 139index 0ee6571315..792308c0ab 100644
140--- a/sysdeps/generic/dl-cache.h 140--- a/sysdeps/generic/dl-cache.h
141+++ b/sysdeps/generic/dl-cache.h 141+++ b/sysdeps/generic/dl-cache.h
142@@ -34,10 +34,6 @@ 142@@ -34,10 +34,6 @@
diff --git a/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
index 56eaaed4b7..597923e792 100644
--- a/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
+++ b/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
@@ -1,4 +1,4 @@
1From 3a94365c730d174a3c30c6d9282e6ca12d9ad091 Mon Sep 17 00:00:00 2001 1From 9b408439eb042c4fc5cb33c8929dea419bf25b41 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 31 Dec 2015 14:35:35 -0800 3Date: Thu, 31 Dec 2015 14:35:35 -0800
4Subject: [PATCH] nativesdk-glibc: Allow 64 bit atomics for x86 4Subject: [PATCH] nativesdk-glibc: Allow 64 bit atomics for x86
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 1 file changed, 1 insertion(+), 6 deletions(-) 17 1 file changed, 1 insertion(+), 6 deletions(-)
18 18
19diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h 19diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h
20index cfd395087b..28a937c468 100644 20index 5452716d22..8c7408feb4 100644
21--- a/sysdeps/x86/atomic-machine.h 21--- a/sysdeps/x86/atomic-machine.h
22+++ b/sysdeps/x86/atomic-machine.h 22+++ b/sysdeps/x86/atomic-machine.h
23@@ -26,19 +26,14 @@ 23@@ -26,19 +26,14 @@
diff --git a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
index 54c085a714..2886d461c8 100644
--- a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
+++ b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
@@ -1,4 +1,4 @@
1From 296bdde0683aa55cdea0fd0cab05ff8fbc462b17 Mon Sep 17 00:00:00 2001 1From 1a57ab6f7d602401396a18b0270498ff9228cf64 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 3 Aug 2018 09:55:12 -0700 3Date: Fri, 3 Aug 2018 09:55:12 -0700
4Subject: [PATCH] nativesdk-glibc: Make relocatable install for locales 4Subject: [PATCH] nativesdk-glibc: Make relocatable install for locales
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
19 4 files changed, 8 insertions(+), 7 deletions(-) 19 4 files changed, 8 insertions(+), 7 deletions(-)
20 20
21diff --git a/locale/findlocale.c b/locale/findlocale.c 21diff --git a/locale/findlocale.c b/locale/findlocale.c
22index 8d6e4e33e3..bfe74f241d 100644 22index e5e2bd3974..bdd9b79f83 100644
23--- a/locale/findlocale.c 23--- a/locale/findlocale.c
24+++ b/locale/findlocale.c 24+++ b/locale/findlocale.c
25@@ -55,7 +55,7 @@ struct __locale_data *const _nl_C[] attribute_hidden = 25@@ -55,7 +55,7 @@ struct __locale_data *const _nl_C[] attribute_hidden =
@@ -41,7 +41,7 @@ index 8d6e4e33e3..bfe74f241d 100644
41 else 41 else
42 /* We really have to load some data. First see whether the name is 42 /* We really have to load some data. First see whether the name is
43diff --git a/locale/loadarchive.c b/locale/loadarchive.c 43diff --git a/locale/loadarchive.c b/locale/loadarchive.c
44index 452e3eb6e3..c7467aec42 100644 44index 058a467cde..af62f3c304 100644
45--- a/locale/loadarchive.c 45--- a/locale/loadarchive.c
46+++ b/locale/loadarchive.c 46+++ b/locale/loadarchive.c
47@@ -42,7 +42,7 @@ 47@@ -42,7 +42,7 @@
@@ -54,7 +54,7 @@ index 452e3eb6e3..c7467aec42 100644
54 /* Size of initial mapping window, optimal if large enough to 54 /* Size of initial mapping window, optimal if large enough to
55 cover the header plus the initial locale. */ 55 cover the header plus the initial locale. */
56diff --git a/locale/localeinfo.h b/locale/localeinfo.h 56diff --git a/locale/localeinfo.h b/locale/localeinfo.h
57index ed698faef1..f7efc288a5 100644 57index ab1b5e5659..92aef8d58e 100644
58--- a/locale/localeinfo.h 58--- a/locale/localeinfo.h
59+++ b/locale/localeinfo.h 59+++ b/locale/localeinfo.h
60@@ -347,7 +347,7 @@ _nl_lookup_word (locale_t l, int category, int item) 60@@ -347,7 +347,7 @@ _nl_lookup_word (locale_t l, int category, int item)
@@ -67,7 +67,7 @@ index ed698faef1..f7efc288a5 100644
67 /* Load the locale data for CATEGORY from the file specified by *NAME. 67 /* Load the locale data for CATEGORY from the file specified by *NAME.
68 If *NAME is "", use environment variables as specified by POSIX, and 68 If *NAME is "", use environment variables as specified by POSIX, and
69diff --git a/locale/programs/locale.c b/locale/programs/locale.c 69diff --git a/locale/programs/locale.c b/locale/programs/locale.c
70index c7ee1874e8..8281e32236 100644 70index 7e8832dc3b..7fa484f092 100644
71--- a/locale/programs/locale.c 71--- a/locale/programs/locale.c
72+++ b/locale/programs/locale.c 72+++ b/locale/programs/locale.c
73@@ -631,6 +631,7 @@ nameentcmp (const void *a, const void *b) 73@@ -631,6 +631,7 @@ nameentcmp (const void *a, const void *b)
diff --git a/meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch b/meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch
index 096764009a..025ad153d6 100644
--- a/meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch
+++ b/meta/recipes-core/glibc/glibc/0008-nativesdk-glibc-Fall-back-to-faccessat-on-faccess2-r.patch
@@ -1,4 +1,4 @@
1From 70da806febac8b2eead6ddc32451bbc1787a1d7d Mon Sep 17 00:00:00 2001 1From 789083eea1feb1249ec5817710552dc31653b36e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 6 Mar 2021 14:48:56 -0800 3Date: Sat, 6 Mar 2021 14:48:56 -0800
4Subject: [PATCH] nativesdk-glibc: Fall back to faccessat on faccess2 returns 4Subject: [PATCH] nativesdk-glibc: Fall back to faccessat on faccess2 returns
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 5 insertions(+), 1 deletion(-) 14 1 file changed, 5 insertions(+), 1 deletion(-)
15 15
16diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c 16diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
17index 2fa57fd63d..4d0d5ff0c4 100644 17index edb22ebce6..b67684a3ba 100644
18--- a/sysdeps/unix/sysv/linux/faccessat.c 18--- a/sysdeps/unix/sysv/linux/faccessat.c
19+++ b/sysdeps/unix/sysv/linux/faccessat.c 19+++ b/sysdeps/unix/sysv/linux/faccessat.c
20@@ -30,7 +30,11 @@ __faccessat (int fd, const char *file, int mode, int flag) 20@@ -30,7 +30,11 @@ __faccessat (int fd, const char *file, int mode, int flag)
diff --git a/meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch b/meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch
index 364e5cfde8..dbb6d674d5 100644
--- a/meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch
+++ b/meta/recipes-core/glibc/glibc/0009-yes-within-the-path-sets-wrong-config-variables.patch
@@ -1,4 +1,4 @@
1From 2192588942c5bc3b5fa10fc6d7433923f42e9ba0 Mon Sep 17 00:00:00 2001 1From 4a1ff3c313645aa425a0a87459c907dad1b9ca4b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:31:06 +0000 3Date: Wed, 18 Mar 2015 00:31:06 +0000
4Subject: [PATCH] 'yes' within the path sets wrong config variables 4Subject: [PATCH] 'yes' within the path sets wrong config variables
@@ -20,20 +20,22 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
20 sysdeps/arm/configure.ac | 4 ++-- 20 sysdeps/arm/configure.ac | 4 ++--
21 sysdeps/mips/configure | 4 ++-- 21 sysdeps/mips/configure | 4 ++--
22 sysdeps/mips/configure.ac | 4 ++-- 22 sysdeps/mips/configure.ac | 4 ++--
23 sysdeps/nios2/configure | 4 ++--
24 sysdeps/nios2/configure.ac | 4 ++--
25 sysdeps/unix/sysv/linux/mips/configure | 4 ++-- 23 sysdeps/unix/sysv/linux/mips/configure | 4 ++--
26 sysdeps/unix/sysv/linux/mips/configure.ac | 4 ++-- 24 sysdeps/unix/sysv/linux/mips/configure.ac | 4 ++--
27 sysdeps/unix/sysv/linux/powerpc/powerpc64/configure | 8 ++++---- 25 sysdeps/unix/sysv/linux/powerpc/powerpc64/configure | 8 ++++----
28 sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac | 8 ++++---- 26 sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac | 8 ++++----
29 12 files changed, 28 insertions(+), 28 deletions(-) 27 10 files changed, 24 insertions(+), 24 deletions(-)
28 mode change 100644 => 100755 sysdeps/arm/configure
29 mode change 100644 => 100755 sysdeps/mips/configure
30 mode change 100644 => 100755 sysdeps/unix/sysv/linux/mips/configure
31 mode change 100644 => 100755 sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
30 32
31diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure 33diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
32index ca57edce47..5e91fab023 100644 34index 4bd5496a4a..6c051369fb 100755
33--- a/sysdeps/aarch64/configure 35--- a/sysdeps/aarch64/configure
34+++ b/sysdeps/aarch64/configure 36+++ b/sysdeps/aarch64/configure
35@@ -165,12 +165,12 @@ else $as_nop 37@@ -157,12 +157,12 @@ else case e in #(
36 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 38 e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
37 /* end confdefs.h. */ 39 /* end confdefs.h. */
38 #ifdef __AARCH64EB__ 40 #ifdef __AARCH64EB__
39- yes 41- yes
@@ -42,13 +44,13 @@ index ca57edce47..5e91fab023 100644
42 44
43 _ACEOF 45 _ACEOF
44 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 46 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
45- $EGREP "yes" >/dev/null 2>&1 47- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
46+ $EGREP "is_aarch64_be" >/dev/null 2>&1 48+ $EGREP_TRADITIONAL "is_aarch64_be" >/dev/null 2>&1
47 then : 49 then :
48 libc_cv_aarch64_be=yes 50 libc_cv_aarch64_be=yes
49 else $as_nop 51 else case e in #(
50diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac 52diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
51index 27874eceb4..8a708f2ef4 100644 53index 56d12d661d..80fca20873 100644
52--- a/sysdeps/aarch64/configure.ac 54--- a/sysdeps/aarch64/configure.ac
53+++ b/sysdeps/aarch64/configure.ac 55+++ b/sysdeps/aarch64/configure.ac
54@@ -13,8 +13,8 @@ AC_DEFINE(SUPPORT_STATIC_PIE) 56@@ -13,8 +13,8 @@ AC_DEFINE(SUPPORT_STATIC_PIE)
@@ -63,11 +65,13 @@ index 27874eceb4..8a708f2ef4 100644
63 ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)]) 65 ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)])
64 if test $libc_cv_aarch64_be = yes; then 66 if test $libc_cv_aarch64_be = yes; then
65diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure 67diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure
66index 35e2918922..94d7fbe8bb 100644 68old mode 100644
69new mode 100755
70index 935e022c74..9f7c98bcd3
67--- a/sysdeps/arm/configure 71--- a/sysdeps/arm/configure
68+++ b/sysdeps/arm/configure 72+++ b/sysdeps/arm/configure
69@@ -161,12 +161,12 @@ else $as_nop 73@@ -153,12 +153,12 @@ else case e in #(
70 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 74 e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
71 /* end confdefs.h. */ 75 /* end confdefs.h. */
72 #ifdef __ARM_PCS_VFP 76 #ifdef __ARM_PCS_VFP
73- yes 77- yes
@@ -76,13 +80,13 @@ index 35e2918922..94d7fbe8bb 100644
76 80
77 _ACEOF 81 _ACEOF
78 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 82 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
79- $EGREP "yes" >/dev/null 2>&1 83- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
80+ $EGREP "use_arm_pcs_vfp" >/dev/null 2>&1 84+ $EGREP_TRADITIONAL "use_arm_pcs_vfp" >/dev/null 2>&1
81 then : 85 then :
82 libc_cv_arm_pcs_vfp=yes 86 libc_cv_arm_pcs_vfp=yes
83 else $as_nop 87 else case e in #(
84diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac 88diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac
85index 5172e30bbe..f06dedd7c5 100644 89index cd00ddc9d9..d3831867ac 100644
86--- a/sysdeps/arm/configure.ac 90--- a/sysdeps/arm/configure.ac
87+++ b/sysdeps/arm/configure.ac 91+++ b/sysdeps/arm/configure.ac
88@@ -10,8 +10,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. 92@@ -10,8 +10,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
@@ -97,10 +101,12 @@ index 5172e30bbe..f06dedd7c5 100644
97 ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)]) 101 ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)])
98 if test $libc_cv_arm_pcs_vfp = yes; then 102 if test $libc_cv_arm_pcs_vfp = yes; then
99diff --git a/sysdeps/mips/configure b/sysdeps/mips/configure 103diff --git a/sysdeps/mips/configure b/sysdeps/mips/configure
100index 1e8c6711e6..ae52ccd929 100644 104old mode 100644
105new mode 100755
106index 60dbd947e2..e3d10d7b96
101--- a/sysdeps/mips/configure 107--- a/sysdeps/mips/configure
102+++ b/sysdeps/mips/configure 108+++ b/sysdeps/mips/configure
103@@ -158,11 +158,11 @@ else $as_nop 109@@ -150,11 +150,11 @@ else case e in #(
104 /* end confdefs.h. */ 110 /* end confdefs.h. */
105 dnl 111 dnl
106 #ifdef __mips_nan2008 112 #ifdef __mips_nan2008
@@ -109,11 +115,11 @@ index 1e8c6711e6..ae52ccd929 100644
109 #endif 115 #endif
110 _ACEOF 116 _ACEOF
111 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 117 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
112- $EGREP "yes" >/dev/null 2>&1 118- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
113+ $EGREP "use_mips_nan2008" >/dev/null 2>&1 119+ $EGREP_TRADITIONAL "use_mips_nan2008" >/dev/null 2>&1
114 then : 120 then :
115 libc_cv_mips_nan2008=yes 121 libc_cv_mips_nan2008=yes
116 else $as_nop 122 else case e in #(
117diff --git a/sysdeps/mips/configure.ac b/sysdeps/mips/configure.ac 123diff --git a/sysdeps/mips/configure.ac b/sysdeps/mips/configure.ac
118index d3cd780d78..250223d206 100644 124index d3cd780d78..250223d206 100644
119--- a/sysdeps/mips/configure.ac 125--- a/sysdeps/mips/configure.ac
@@ -130,45 +136,13 @@ index d3cd780d78..250223d206 100644
130 #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)]) 136 #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)])
131 if test x$libc_cv_mips_nan2008 = xyes; then 137 if test x$libc_cv_mips_nan2008 = xyes; then
132 AC_DEFINE(HAVE_MIPS_NAN2008) 138 AC_DEFINE(HAVE_MIPS_NAN2008)
133diff --git a/sysdeps/nios2/configure b/sysdeps/nios2/configure
134index 2fb230cbaa..1959d0a444 100644
135--- a/sysdeps/nios2/configure
136+++ b/sysdeps/nios2/configure
137@@ -155,12 +155,12 @@ else $as_nop
138 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
139 /* end confdefs.h. */
140 #ifdef __nios2_big_endian__
141- yes
142+ is_nios2_be
143 #endif
144
145 _ACEOF
146 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
147- $EGREP "yes" >/dev/null 2>&1
148+ $EGREP "is_nios2_be" >/dev/null 2>&1
149 then :
150 libc_cv_nios2_be=yes
151 else $as_nop
152diff --git a/sysdeps/nios2/configure.ac b/sysdeps/nios2/configure.ac
153index f738e9a7ed..4085851cbc 100644
154--- a/sysdeps/nios2/configure.ac
155+++ b/sysdeps/nios2/configure.ac
156@@ -4,8 +4,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
157 # Nios II big endian is not yet supported.
158 AC_CACHE_CHECK([for big endian],
159 [libc_cv_nios2_be],
160- [AC_EGREP_CPP(yes,[#ifdef __nios2_big_endian__
161- yes
162+ [AC_EGREP_CPP(is_nios2_be,[#ifdef __nios2_big_endian__
163+ is_nios2_be
164 #endif
165 ], libc_cv_nios2_be=yes, libc_cv_nios2_be=no)])
166 if test $libc_cv_nios2_be = yes; then
167diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure 139diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure
168index a060901de4..0ac7019438 100644 140old mode 100644
141new mode 100755
142index 6e3402c111..a23f24ef8e
169--- a/sysdeps/unix/sysv/linux/mips/configure 143--- a/sysdeps/unix/sysv/linux/mips/configure
170+++ b/sysdeps/unix/sysv/linux/mips/configure 144+++ b/sysdeps/unix/sysv/linux/mips/configure
171@@ -441,11 +441,11 @@ else $as_nop 145@@ -443,11 +443,11 @@ else case e in #(
172 /* end confdefs.h. */ 146 /* end confdefs.h. */
173 dnl 147 dnl
174 #ifdef __mips_nan2008 148 #ifdef __mips_nan2008
@@ -177,11 +151,11 @@ index a060901de4..0ac7019438 100644
177 #endif 151 #endif
178 _ACEOF 152 _ACEOF
179 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 153 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
180- $EGREP "yes" >/dev/null 2>&1 154- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
181+ $EGREP "use_mips_nan2008" >/dev/null 2>&1 155+ $EGREP_TRADITIONAL "use_mips_nan2008" >/dev/null 2>&1
182 then : 156 then :
183 libc_cv_mips_nan2008=yes 157 libc_cv_mips_nan2008=yes
184 else $as_nop 158 else case e in #(
185diff --git a/sysdeps/unix/sysv/linux/mips/configure.ac b/sysdeps/unix/sysv/linux/mips/configure.ac 159diff --git a/sysdeps/unix/sysv/linux/mips/configure.ac b/sysdeps/unix/sysv/linux/mips/configure.ac
186index 049a0f4bdf..005526d4e8 100644 160index 049a0f4bdf..005526d4e8 100644
187--- a/sysdeps/unix/sysv/linux/mips/configure.ac 161--- a/sysdeps/unix/sysv/linux/mips/configure.ac
@@ -199,11 +173,13 @@ index 049a0f4bdf..005526d4e8 100644
199 173
200 libc_mips_nan= 174 libc_mips_nan=
201diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure 175diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
202index cf1b70c745..0dccf6cd76 100644 176old mode 100644
177new mode 100755
178index 5dd70689fc..7d6c2322d3
203--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure 179--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
204+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure 180+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
205@@ -168,12 +168,12 @@ else $as_nop 181@@ -160,12 +160,12 @@ else case e in #(
206 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 182 e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
207 /* end confdefs.h. */ 183 /* end confdefs.h. */
208 #if _CALL_ELF == 2 184 #if _CALL_ELF == 2
209- yes 185- yes
@@ -212,13 +188,13 @@ index cf1b70c745..0dccf6cd76 100644
212 188
213 _ACEOF 189 _ACEOF
214 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 190 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
215- $EGREP "yes" >/dev/null 2>&1 191- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
216+ $EGREP "use_ppc_elfv2_abi" >/dev/null 2>&1 192+ $EGREP_TRADITIONAL "use_ppc_elfv2_abi" >/dev/null 2>&1
217 then : 193 then :
218 libc_cv_ppc64_elfv2_abi=yes 194 libc_cv_ppc64_elfv2_abi=yes
219 else $as_nop 195 else case e in #(
220@@ -203,12 +203,12 @@ else $as_nop 196@@ -197,12 +197,12 @@ else case e in #(
221 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 197 e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
222 /* end confdefs.h. */ 198 /* end confdefs.h. */
223 #ifdef _CALL_ELF 199 #ifdef _CALL_ELF
224- yes 200- yes
@@ -227,11 +203,11 @@ index cf1b70c745..0dccf6cd76 100644
227 203
228 _ACEOF 204 _ACEOF
229 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 205 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
230- $EGREP "yes" >/dev/null 2>&1 206- $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
231+ $EGREP "is_def_call_elf" >/dev/null 2>&1 207+ $EGREP_TRADITIONAL "is_def_call_elf" >/dev/null 2>&1
232 then : 208 then :
233 libc_cv_ppc64_def_call_elf=yes 209 libc_cv_ppc64_def_call_elf=yes
234 else $as_nop 210 else case e in #(
235diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac 211diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
236index f9cba6e15d..b21f72f1e4 100644 212index f9cba6e15d..b21f72f1e4 100644
237--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac 213--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
diff --git a/meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch b/meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch
index d7f15c1cfa..b1bed71f2b 100644
--- a/meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch
+++ b/meta/recipes-core/glibc/glibc/0010-eglibc-Cross-building-and-testing-instructions.patch
@@ -1,4 +1,4 @@
1From ce8b13bdf488058754fce573754cea0b022c37e2 Mon Sep 17 00:00:00 2001 1From 7d158af5750b351b3b08e78bb6c5fe80e7cb36ba Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:42:58 +0000 3Date: Wed, 18 Mar 2015 00:42:58 +0000
4Subject: [PATCH] eglibc: Cross building and testing instructions 4Subject: [PATCH] eglibc: Cross building and testing instructions
diff --git a/meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch b/meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch
index 82a3292655..13190125eb 100644
--- a/meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch
+++ b/meta/recipes-core/glibc/glibc/0011-eglibc-Help-bootstrap-cross-toolchain.patch
@@ -1,4 +1,4 @@
1From 65b79161b9e2848a174d3519a03348884f182975 Mon Sep 17 00:00:00 2001 1From 435b57e8327555b273a52df672b2611050a8c579 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:49:28 +0000 3Date: Wed, 18 Mar 2015 00:49:28 +0000
4Subject: [PATCH] eglibc: Help bootstrap cross toolchain 4Subject: [PATCH] eglibc: Help bootstrap cross toolchain
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
29 create mode 100644 include/stubs-bootstrap.h 29 create mode 100644 include/stubs-bootstrap.h
30 30
31diff --git a/Makefile b/Makefile 31diff --git a/Makefile b/Makefile
32index 7052b46df8..46073abaa8 100644 32index 97b4328af8..5c20ed3cff 100644
33--- a/Makefile 33--- a/Makefile
34+++ b/Makefile 34+++ b/Makefile
35@@ -79,9 +79,18 @@ subdir-dirs = include 35@@ -79,9 +79,18 @@ subdir-dirs = include
diff --git a/meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch b/meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch
index e726a9e76f..780aff1e7d 100644
--- a/meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch
+++ b/meta/recipes-core/glibc/glibc/0012-eglibc-Resolve-__fpscr_values-on-SH4.patch
@@ -1,4 +1,4 @@
1From 07a5fa22a9a8bbd43982c1b35132f8c2d5276bfe Mon Sep 17 00:00:00 2001 1From 46937c30c52cf186609bee1ec927464d395afb30 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:55:53 +0000 3Date: Wed, 18 Mar 2015 00:55:53 +0000
4Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4 4Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4
@@ -33,7 +33,7 @@ index 3ad702e165..931985b5d6 100644
33 # a* 33 # a*
34 alphasort64; 34 alphasort64;
35diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S 35diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
36index d5d8c5e033..f356d02077 100644 36index db898e9e39..6e2972e814 100644
37--- a/sysdeps/unix/sysv/linux/sh/sysdep.S 37--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
38+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S 38+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
39@@ -30,3 +30,14 @@ ENTRY (__syscall_error) 39@@ -30,3 +30,14 @@ ENTRY (__syscall_error)
diff --git a/meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch b/meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch
index f36b7f6f4c..8f9bbb6cf3 100644
--- a/meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch
+++ b/meta/recipes-core/glibc/glibc/0013-eglibc-Forward-port-cross-locale-generation-support.patch
@@ -1,4 +1,4 @@
1From 33e9867758e830e19d181d5a0aa7f2f3cc4a08b3 Mon Sep 17 00:00:00 2001 1From 68dcae2527a64a4448334fdfe27c7b6014589aae Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 01:33:49 +0000 3Date: Wed, 18 Mar 2015 01:33:49 +0000
4Subject: [PATCH] eglibc: Forward port cross locale generation support 4Subject: [PATCH] eglibc: Forward port cross locale generation support
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
23 create mode 100644 locale/catnames.c 23 create mode 100644 locale/catnames.c
24 24
25diff --git a/locale/Makefile b/locale/Makefile 25diff --git a/locale/Makefile b/locale/Makefile
26index 2810f28605..05f847f9a6 100644 26index 9d9c1a7691..bf271fd0a8 100644
27--- a/locale/Makefile 27--- a/locale/Makefile
28+++ b/locale/Makefile 28+++ b/locale/Makefile
29@@ -30,6 +30,7 @@ headers = \ 29@@ -30,6 +30,7 @@ headers = \
@@ -87,7 +87,7 @@ index 0000000000..538f3f5edb
87+ [LC_ALL] = sizeof ("LC_ALL") - 1 87+ [LC_ALL] = sizeof ("LC_ALL") - 1
88+ }; 88+ };
89diff --git a/locale/localeinfo.h b/locale/localeinfo.h 89diff --git a/locale/localeinfo.h b/locale/localeinfo.h
90index f7efc288a5..6ef082eb25 100644 90index 92aef8d58e..ae23b2f7fe 100644
91--- a/locale/localeinfo.h 91--- a/locale/localeinfo.h
92+++ b/locale/localeinfo.h 92+++ b/locale/localeinfo.h
93@@ -246,7 +246,7 @@ __libc_tsd_define (extern, locale_t, LOCALE) 93@@ -246,7 +246,7 @@ __libc_tsd_define (extern, locale_t, LOCALE)
@@ -100,7 +100,7 @@ index f7efc288a5..6ef082eb25 100644
100 # define NL_CURRENT_INDIRECT 1 100 # define NL_CURRENT_INDIRECT 1
101 #endif 101 #endif
102diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c 102diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
103index 36504f238d..56ee97e61b 100644 103index e635a01ede..10e34a6da9 100644
104--- a/locale/programs/charmap-dir.c 104--- a/locale/programs/charmap-dir.c
105+++ b/locale/programs/charmap-dir.c 105+++ b/locale/programs/charmap-dir.c
106@@ -18,7 +18,9 @@ 106@@ -18,7 +18,9 @@
@@ -146,7 +146,7 @@ index 36504f238d..56ee97e61b 100644
146 return NULL; 146 return NULL;
147 } 147 }
148diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c 148diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
149index 5048adbd9f..4232834ead 100644 149index 7de3ba064d..3256427d21 100644
150--- a/locale/programs/ld-collate.c 150--- a/locale/programs/ld-collate.c
151+++ b/locale/programs/ld-collate.c 151+++ b/locale/programs/ld-collate.c
152@@ -352,7 +352,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen, 152@@ -352,7 +352,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen,
@@ -195,7 +195,7 @@ index 5048adbd9f..4232834ead 100644
195 == runp->wcnext->wcs[runp->nwcs - 1] + 1)); 195 == runp->wcnext->wcs[runp->nwcs - 1] + 1));
196 196
197diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c 197diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
198index eb6e7e145c..14736d1cac 100644 198index 15fd39c637..d4c5e0c9e7 100644
199--- a/locale/programs/ld-ctype.c 199--- a/locale/programs/ld-ctype.c
200+++ b/locale/programs/ld-ctype.c 200+++ b/locale/programs/ld-ctype.c
201@@ -914,7 +914,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap, 201@@ -914,7 +914,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
@@ -277,7 +277,7 @@ index eb6e7e145c..14736d1cac 100644
277 srunp = srunp->next; 277 srunp = srunp->next;
278 } 278 }
279diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c 279diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
280index 1abff3cf53..8a2f2b820a 100644 280index 9529d7945a..554454b9c1 100644
281--- a/locale/programs/ld-time.c 281--- a/locale/programs/ld-time.c
282+++ b/locale/programs/ld-time.c 282+++ b/locale/programs/ld-time.c
283@@ -219,8 +219,10 @@ No definition for %s category found"), "LC_TIME"); 283@@ -219,8 +219,10 @@ No definition for %s category found"), "LC_TIME");
@@ -346,7 +346,7 @@ index 1abff3cf53..8a2f2b820a 100644
346 346
347 347
348diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c 348diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
349index 61373d2657..7ec5726377 100644 349index 6f40ecf77a..573d051d0a 100644
350--- a/locale/programs/linereader.c 350--- a/locale/programs/linereader.c
351+++ b/locale/programs/linereader.c 351+++ b/locale/programs/linereader.c
352@@ -776,7 +776,7 @@ get_string (struct linereader *lr, const struct charmap_t *charmap, 352@@ -776,7 +776,7 @@ get_string (struct linereader *lr, const struct charmap_t *charmap,
@@ -359,7 +359,7 @@ index 61373d2657..7ec5726377 100644
359 lr_buffer_init (&lrb); 359 lr_buffer_init (&lrb);
360 360
361diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c 361diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
362index 907bb5fb25..3106529043 100644 362index 7b66cd279c..dd0c3f1562 100644
363--- a/locale/programs/localedef.c 363--- a/locale/programs/localedef.c
364+++ b/locale/programs/localedef.c 364+++ b/locale/programs/localedef.c
365@@ -108,6 +108,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; 365@@ -108,6 +108,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
@@ -405,7 +405,7 @@ index 907bb5fb25..3106529043 100644
405 force_output = 1; 405 force_output = 1;
406 break; 406 break;
407diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c 407diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
408index 6c6ebf2dd6..cc02ab82bf 100644 408index b54fcbbceb..6110c7b369 100644
409--- a/locale/programs/locfile.c 409--- a/locale/programs/locfile.c
410+++ b/locale/programs/locfile.c 410+++ b/locale/programs/locfile.c
411@@ -543,6 +543,9 @@ compare_files (const char *filename1, const char *filename2, size_t size, 411@@ -543,6 +543,9 @@ compare_files (const char *filename1, const char *filename2, size_t size,
@@ -428,7 +428,7 @@ index 6c6ebf2dd6..cc02ab82bf 100644
428 428
429 /* Record that FILE's next element is the 32-bit integer VALUE. */ 429 /* Record that FILE's next element is the 32-bit integer VALUE. */
430diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h 430diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
431index 3afb0a8d29..46785374e8 100644 431index 9103fade14..ecd878563d 100644
432--- a/locale/programs/locfile.h 432--- a/locale/programs/locfile.h
433+++ b/locale/programs/locfile.h 433+++ b/locale/programs/locfile.h
434@@ -70,6 +70,8 @@ extern void write_all_categories (struct localedef_t *definitions, 434@@ -70,6 +70,8 @@ extern void write_all_categories (struct localedef_t *definitions,
@@ -517,7 +517,7 @@ index 3afb0a8d29..46785374e8 100644
517+ 517+
518 #endif /* locfile.h */ 518 #endif /* locfile.h */
519diff --git a/locale/setlocale.c b/locale/setlocale.c 519diff --git a/locale/setlocale.c b/locale/setlocale.c
520index 7bd27e5398..2f194bad7c 100644 520index c04740ca19..12deadeb24 100644
521--- a/locale/setlocale.c 521--- a/locale/setlocale.c
522+++ b/locale/setlocale.c 522+++ b/locale/setlocale.c
523@@ -63,35 +63,6 @@ static char *const _nl_current_used[] = 523@@ -63,35 +63,6 @@ static char *const _nl_current_used[] =
diff --git a/meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
index daeff7b065..9448f360ef 100644
--- a/meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
+++ b/meta/recipes-core/glibc/glibc/0014-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
@@ -1,4 +1,4 @@
1From f4b1d6429298c0f8a2aa29ff559eb2093ea0188f Mon Sep 17 00:00:00 2001 1From 194e83794369783287956fb12c7f8469e6b7d110 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 3 Aug 2018 09:42:06 -0700 3Date: Fri, 3 Aug 2018 09:42:06 -0700
4Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path 4Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path
@@ -18,7 +18,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
18 1 file changed, 25 insertions(+), 10 deletions(-) 18 1 file changed, 25 insertions(+), 10 deletions(-)
19 19
20diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c 20diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
21index 8d79a1b6d1..6dc7ecd4e7 100644 21index 2c19f4fd29..b8495848c3 100644
22--- a/locale/programs/locarchive.c 22--- a/locale/programs/locarchive.c
23+++ b/locale/programs/locarchive.c 23+++ b/locale/programs/locarchive.c
24@@ -339,12 +339,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) 24@@ -339,12 +339,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
diff --git a/meta/recipes-core/glibc/glibc/0015-powerpc-Do-not-ask-compiler-for-finding-arch.patch b/meta/recipes-core/glibc/glibc/0015-powerpc-Do-not-ask-compiler-for-finding-arch.patch
index 8dd1f0a656..0e00c04659 100644
--- a/meta/recipes-core/glibc/glibc/0015-powerpc-Do-not-ask-compiler-for-finding-arch.patch
+++ b/meta/recipes-core/glibc/glibc/0015-powerpc-Do-not-ask-compiler-for-finding-arch.patch
@@ -1,4 +1,4 @@
1From 2d064c0c1243ea0bf405909285d7cddca92cf097 Mon Sep 17 00:00:00 2001 1From 7d7f6fcd4f4b6664bff75addc92bc7b8a86dc22d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 7 Aug 2020 14:31:16 -0700 3Date: Fri, 7 Aug 2020 14:31:16 -0700
4Subject: [PATCH] powerpc: Do not ask compiler for finding arch 4Subject: [PATCH] powerpc: Do not ask compiler for finding arch
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 2 files changed, 2 insertions(+), 8 deletions(-) 15 2 files changed, 2 insertions(+), 8 deletions(-)
16 16
17diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure 17diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
18index 4de94089a3..428ad7b162 100644 18index 48b9c9b65a..7eb260fc78 100644
19--- a/sysdeps/powerpc/preconfigure 19--- a/sysdeps/powerpc/preconfigure
20+++ b/sysdeps/powerpc/preconfigure 20+++ b/sysdeps/powerpc/preconfigure
21@@ -29,10 +29,7 @@ esac 21@@ -29,10 +29,7 @@ esac
@@ -31,7 +31,7 @@ index 4de94089a3..428ad7b162 100644
31 # directory exists in sysdeps/powerpc. Likewise, if we find a 31 # directory exists in sysdeps/powerpc. Likewise, if we find a
32 # cpu, don't let the generic configure append extra compiler options. 32 # cpu, don't let the generic configure append extra compiler options.
33diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac 33diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac
34index 6c63bd8257..3e925f1d48 100644 34index 14b6dafd4a..1acc6a457c 100644
35--- a/sysdeps/powerpc/preconfigure.ac 35--- a/sysdeps/powerpc/preconfigure.ac
36+++ b/sysdeps/powerpc/preconfigure.ac 36+++ b/sysdeps/powerpc/preconfigure.ac
37@@ -29,10 +29,7 @@ esac 37@@ -29,10 +29,7 @@ esac
diff --git a/meta/recipes-core/glibc/glibc/0016-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch b/meta/recipes-core/glibc/glibc/0016-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
index 066c3b1ea2..f40a8eff07 100644
--- a/meta/recipes-core/glibc/glibc/0016-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
+++ b/meta/recipes-core/glibc/glibc/0016-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
@@ -1,4 +1,4 @@
1From b1c374f7ede81a98f2d02def2c7ca17f1001f7cb Mon Sep 17 00:00:00 2001 1From 2bd0ea2c8f9595414741ed523c6ca07630a4fc96 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 15 May 2020 17:05:45 -0700 3Date: Fri, 15 May 2020 17:05:45 -0700
4Subject: [PATCH] wordsize.h: Unify the header between arm and aarch64 4Subject: [PATCH] wordsize.h: Unify the header between arm and aarch64
@@ -11,16 +11,16 @@ Upstream-Status: Inappropriate [ OE-Specific ]
11 11
12Signed-off-by: Khem Raj <raj.khem@gmail.com> 12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13--- 13---
14 sysdeps/aarch64/bits/wordsize.h | 8 ++++++-- 14 sysdeps/aarch64/bits/wordsize.h | 11 +++++++++--
15 sysdeps/arm/bits/wordsize.h | 1 + 15 sysdeps/arm/bits/wordsize.h | 22 +---------------------
16 2 files changed, 7 insertions(+), 2 deletions(-) 16 2 files changed, 10 insertions(+), 23 deletions(-)
17 create mode 120000 sysdeps/arm/bits/wordsize.h 17 mode change 100644 => 120000 sysdeps/arm/bits/wordsize.h
18 18
19diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h 19diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
20index 118e59172d..b4b0692eb5 100644 20index f56260c2de..391d79d5a8 100644
21--- a/sysdeps/aarch64/bits/wordsize.h 21--- a/sysdeps/aarch64/bits/wordsize.h
22+++ b/sysdeps/aarch64/bits/wordsize.h 22+++ b/sysdeps/aarch64/bits/wordsize.h
23@@ -17,12 +17,16 @@ 23@@ -17,12 +17,19 @@
24 License along with the GNU C Library; if not, see 24 License along with the GNU C Library; if not, see
25 <https://www.gnu.org/licenses/>. */ 25 <https://www.gnu.org/licenses/>. */
26 26
@@ -34,11 +34,41 @@ index 118e59172d..b4b0692eb5 100644
34 # define __WORDSIZE32_PTRDIFF_LONG 1 34 # define __WORDSIZE32_PTRDIFF_LONG 1
35+#else 35+#else
36+# define __WORDSIZE 32 36+# define __WORDSIZE 32
37+# define __WORDSIZE_TIME64_COMPAT32 1
37+# define __WORDSIZE32_SIZE_ULONG 0 38+# define __WORDSIZE32_SIZE_ULONG 0
38+# define __WORDSIZE32_PTRDIFF_LONG 0 39+# define __WORDSIZE32_PTRDIFF_LONG 0
39 #endif 40 #endif
40 41
42+#ifdef __aarch64__
41 #define __WORDSIZE_TIME64_COMPAT32 0 43 #define __WORDSIZE_TIME64_COMPAT32 0
44+#endif
45diff --git a/sysdeps/arm/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
46deleted file mode 100644
47index be457d84d3..0000000000
48--- a/sysdeps/arm/bits/wordsize.h
49+++ /dev/null
50@@ -1,21 +0,0 @@
51-/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
52- This file is part of the GNU C Library.
53-
54- The GNU C Library is free software; you can redistribute it and/or
55- modify it under the terms of the GNU Lesser General Public
56- License as published by the Free Software Foundation; either
57- version 2.1 of the License, or (at your option) any later version.
58-
59- The GNU C Library is distributed in the hope that it will be useful,
60- but WITHOUT ANY WARRANTY; without even the implied warranty of
61- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
62- Lesser General Public License for more details.
63-
64- You should have received a copy of the GNU Lesser General Public
65- License along with the GNU C Library; if not, see
66- <https://www.gnu.org/licenses/>. */
67-
68-#define __WORDSIZE 32
69-#define __WORDSIZE_TIME64_COMPAT32 1
70-#define __WORDSIZE32_SIZE_ULONG 0
71-#define __WORDSIZE32_PTRDIFF_LONG 0
42diff --git a/sysdeps/arm/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h 72diff --git a/sysdeps/arm/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
43new file mode 120000 73new file mode 120000
44index 0000000000..4c4a788ec2 74index 0000000000..4c4a788ec2
diff --git a/meta/recipes-core/glibc/glibc/0017-Replace-echo-with-printf-builtin-in-nscd-init-script.patch b/meta/recipes-core/glibc/glibc/0017-Replace-echo-with-printf-builtin-in-nscd-init-script.patch
index d8c0b1b4ad..2af39799be 100644
--- a/meta/recipes-core/glibc/glibc/0017-Replace-echo-with-printf-builtin-in-nscd-init-script.patch
+++ b/meta/recipes-core/glibc/glibc/0017-Replace-echo-with-printf-builtin-in-nscd-init-script.patch
@@ -1,4 +1,4 @@
1From 0aac3b8ee5b13e289b6969da51de384443286a5b Mon Sep 17 00:00:00 2001 1From 7ef9358bbb184026914fb4d9ff479361b82bf6c9 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 31 Dec 2015 14:33:02 -0800 3Date: Thu, 31 Dec 2015 14:33:02 -0800
4Subject: [PATCH] Replace echo with printf builtin in nscd init script 4Subject: [PATCH] Replace echo with printf builtin in nscd init script
diff --git a/meta/recipes-core/glibc/glibc/0018-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch b/meta/recipes-core/glibc/glibc/0018-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch
index c81f82f433..ca30edd91c 100644
--- a/meta/recipes-core/glibc/glibc/0018-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch
+++ b/meta/recipes-core/glibc/glibc/0018-sysdeps-gnu-configure.ac-Set-libc_cv_rootsbindir-onl.patch
@@ -1,4 +1,4 @@
1From 7a25d4796411f22f824742092a4c2a08df99752d Mon Sep 17 00:00:00 2001 1From c43c1758baddaff1fb82afc118f7dba23af12540 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:27:10 +0000 3Date: Wed, 18 Mar 2015 00:27:10 +0000
4Subject: [PATCH] sysdeps/gnu/configure.ac: Set libc_cv_rootsbindir only if its 4Subject: [PATCH] sysdeps/gnu/configure.ac: Set libc_cv_rootsbindir only if its
diff --git a/meta/recipes-core/glibc/glibc/0019-timezone-Make-shell-interpreter-overridable-in-tzsel.patch b/meta/recipes-core/glibc/glibc/0019-timezone-Make-shell-interpreter-overridable-in-tzsel.patch
index d724c3e968..2e4c6ced9e 100644
--- a/meta/recipes-core/glibc/glibc/0019-timezone-Make-shell-interpreter-overridable-in-tzsel.patch
+++ b/meta/recipes-core/glibc/glibc/0019-timezone-Make-shell-interpreter-overridable-in-tzsel.patch
@@ -1,4 +1,4 @@
1From 6aa1b835d95482287851e02abd3a406cbd0ef8c7 Mon Sep 17 00:00:00 2001 1From a2179a1a5e0f6ded889d2c88cabb23c92b5a4b1e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 9 Dec 2021 15:14:42 -0800 3Date: Thu, 9 Dec 2021 15:14:42 -0800
4Subject: [PATCH] timezone: Make shell interpreter overridable in tzselect.ksh 4Subject: [PATCH] timezone: Make shell interpreter overridable in tzselect.ksh
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 2 files changed, 10 insertions(+) 14 2 files changed, 10 insertions(+)
15 15
16diff --git a/Makeconfig b/Makeconfig 16diff --git a/Makeconfig b/Makeconfig
17index 85e00cef94..643724108a 100644 17index d0108d2caa..75887b1334 100644
18--- a/Makeconfig 18--- a/Makeconfig
19+++ b/Makeconfig 19+++ b/Makeconfig
20@@ -309,6 +309,15 @@ ifndef sysincludedir 20@@ -309,6 +309,15 @@ ifndef sysincludedir
@@ -34,10 +34,10 @@ index 85e00cef94..643724108a 100644
34 # Commands to install files. 34 # Commands to install files.
35 ifndef INSTALL_DATA 35 ifndef INSTALL_DATA
36diff --git a/timezone/Makefile b/timezone/Makefile 36diff --git a/timezone/Makefile b/timezone/Makefile
37index d7acb387ba..ec79326f66 100644 37index ebe5cf73a1..b5fa38f4d7 100644
38--- a/timezone/Makefile 38--- a/timezone/Makefile
39+++ b/timezone/Makefile 39+++ b/timezone/Makefile
40@@ -136,6 +136,7 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make 40@@ -143,6 +143,7 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
41 -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ 41 -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
42 -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ 42 -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
43 -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \ 43 -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
diff --git a/meta/recipes-core/glibc/glibc/0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch b/meta/recipes-core/glibc/glibc/0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch
index 08c60a271b..e68e37b125 100644
--- a/meta/recipes-core/glibc/glibc/0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch
+++ b/meta/recipes-core/glibc/glibc/0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch
@@ -1,4 +1,4 @@
1From ef47e6199986c4951e681ed74f064042db1ae2e1 Mon Sep 17 00:00:00 2001 1From c86de3e8b739f20fd7211b66dc3c69b61d28d611 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 15 Dec 2021 21:47:53 -0800 3Date: Wed, 15 Dec 2021 21:47:53 -0800
4Subject: [PATCH] tzselect.ksh: Use /bin/sh default shell interpreter 4Subject: [PATCH] tzselect.ksh: Use /bin/sh default shell interpreter
@@ -16,7 +16,7 @@ Cc: Paul Eggert <eggert@cs.ucla.edu>
16 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
17 17
18diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh 18diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
19index 18fce27e24..cc08efb0fb 100755 19index ca3d82c6aa..1be42814fe 100755
20--- a/timezone/tzselect.ksh 20--- a/timezone/tzselect.ksh
21+++ b/timezone/tzselect.ksh 21+++ b/timezone/tzselect.ksh
22@@ -1,4 +1,4 @@ 22@@ -1,4 +1,4 @@
diff --git a/meta/recipes-core/glibc/glibc/0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch b/meta/recipes-core/glibc/glibc/0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch
index d57dce125c..f1391a095c 100644
--- a/meta/recipes-core/glibc/glibc/0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch
+++ b/meta/recipes-core/glibc/glibc/0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch
@@ -1,4 +1,4 @@
1From 7254706544be5100843fc0a332e836fccffc9ef1 Mon Sep 17 00:00:00 2001 1From 06dd2eec0d57e1e2702069ee4c970c68fc4d3bcb Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Sun, 29 Aug 2021 20:49:16 +0800 3Date: Sun, 29 Aug 2021 20:49:16 +0800
4Subject: [PATCH] fix create thread failed in unprivileged process [BZ #28287] 4Subject: [PATCH] fix create thread failed in unprivileged process [BZ #28287]
@@ -72,7 +72,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
72 1 file changed, 1 insertion(+), 1 deletion(-) 72 1 file changed, 1 insertion(+), 1 deletion(-)
73 73
74diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c 74diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c
75index 40ef30303f..f97b1f6900 100644 75index 9a1f27d017..9a48340055 100644
76--- a/sysdeps/unix/sysv/linux/clone-internal.c 76--- a/sysdeps/unix/sysv/linux/clone-internal.c
77+++ b/sysdeps/unix/sysv/linux/clone-internal.c 77+++ b/sysdeps/unix/sysv/linux/clone-internal.c
78@@ -98,7 +98,7 @@ __clone_internal (struct clone_args *cl_args, 78@@ -98,7 +98,7 @@ __clone_internal (struct clone_args *cl_args,
diff --git a/meta/recipes-core/glibc/glibc/0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch b/meta/recipes-core/glibc/glibc/0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch
index b527ddffc8..a90814c63a 100644
--- a/meta/recipes-core/glibc/glibc/0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch
+++ b/meta/recipes-core/glibc/glibc/0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch
@@ -1,4 +1,4 @@
1From d39779afc72d34f87f052097592008cc38e20615 Mon Sep 17 00:00:00 2001 1From cd66a5301c4d84e3dbc4e30fdb9e32b341e66b3d Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Sun, 24 Jul 2022 07:07:29 -0700 3Date: Sun, 24 Jul 2022 07:07:29 -0700
4Subject: [PATCH] Avoid hardcoded build time paths in the output binaries 4Subject: [PATCH] Avoid hardcoded build time paths in the output binaries
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 3 insertions(+), 3 deletions(-) 14 1 file changed, 3 insertions(+), 3 deletions(-)
15 15
16diff --git a/support/Makefile b/support/Makefile 16diff --git a/support/Makefile b/support/Makefile
17index 362a51f882..56d2b37058 100644 17index 59a9974539..c3f7302bcb 100644
18--- a/support/Makefile 18--- a/support/Makefile
19+++ b/support/Makefile 19+++ b/support/Makefile
20@@ -228,9 +228,9 @@ libsupport-inhibit-o += .o 20@@ -238,9 +238,9 @@ libsupport-inhibit-o += .o
21 endif 21 endif
22 22
23 CFLAGS-support_paths.c = \ 23 CFLAGS-support_paths.c = \
diff --git a/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch b/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch
deleted file mode 100644
index f6523c5498..0000000000
--- a/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From 73c26018ed0ecd9c807bb363cc2c2ab4aca66a82 Mon Sep 17 00:00:00 2001
2From: Szabolcs Nagy <szabolcs.nagy@arm.com>
3Date: Wed, 13 Mar 2024 14:34:14 +0000
4Subject: [PATCH] aarch64: fix check for SVE support in assembler
5
6Due to GCC bug 110901 -mcpu can override -march setting when compiling
7asm code and thus a compiler targetting a specific cpu can fail the
8configure check even when binutils gas supports SVE.
9
10The workaround is that explicit .arch directive overrides both -mcpu
11and -march, and since that's what the actual SVE memcpy uses the
12configure check should use that too even if the GCC issue is fixed
13independently.
14
15Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=73c26018ed0ecd9c807bb363cc2c2ab4aca66a82]
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Reviewed-by: Florian Weimer <fweimer@redhat.com>
18---
19 sysdeps/aarch64/configure | 5 +++--
20 sysdeps/aarch64/configure.ac | 5 +++--
21 2 files changed, 6 insertions(+), 4 deletions(-)
22 mode change 100644 => 100755 sysdeps/aarch64/configure
23
24diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
25old mode 100644
26new mode 100755
27index ca57edce47..9606137e8d
28--- a/sysdeps/aarch64/configure
29+++ b/sysdeps/aarch64/configure
30@@ -325,9 +325,10 @@ then :
31 printf %s "(cached) " >&6
32 else $as_nop
33 cat > conftest.s <<\EOF
34- ptrue p0.b
35+ .arch armv8.2-a+sve
36+ ptrue p0.b
37 EOF
38-if { ac_try='${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&5'
39+if { ac_try='${CC-cc} -c conftest.s 1>&5'
40 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
41 (eval $ac_try) 2>&5
42 ac_status=$?
43diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
44index 27874eceb4..56d12d661d 100644
45--- a/sysdeps/aarch64/configure.ac
46+++ b/sysdeps/aarch64/configure.ac
47@@ -90,9 +90,10 @@ LIBC_CONFIG_VAR([aarch64-variant-pcs], [$libc_cv_aarch64_variant_pcs])
48 # Check if asm support armv8.2-a+sve
49 AC_CACHE_CHECK([for SVE support in assembler], [libc_cv_aarch64_sve_asm], [dnl
50 cat > conftest.s <<\EOF
51- ptrue p0.b
52+ .arch armv8.2-a+sve
53+ ptrue p0.b
54 EOF
55-if AC_TRY_COMMAND(${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&AS_MESSAGE_LOG_FD); then
56+if AC_TRY_COMMAND(${CC-cc} -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
57 libc_cv_aarch64_sve_asm=yes
58 else
59 libc_cv_aarch64_sve_asm=no
60--
612.44.0
62
diff --git a/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch b/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch
index c0a467fcec..50d80ed577 100644
--- a/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch
+++ b/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch
@@ -1,4 +1,7 @@
1glibc: Skip 2 qemu tests that can hang in oe-selftest 1From 5395ccff4478d42fab7f2bd6ba7f7188bec09ddf Mon Sep 17 00:00:00 2001
2From: Yash Shinde <Yash.Shinde@windriver.com>
3Date: Fri, 5 Apr 2024 08:24:36 -0700
4Subject: [PATCH] tests: Skip 2 qemu tests that can hang in oe-selftest
2 5
3qemumips and qemuppc were leaving stale processes behind after 6qemumips and qemuppc were leaving stale processes behind after
4running glibc oe-selftest. During analysis, it was found that 7running glibc oe-selftest. During analysis, it was found that
@@ -9,29 +12,35 @@ Disable them so that there are no stale processes left behind.
9https://bugzilla.yoctoproject.org/show_bug.cgi?id=15423 12https://bugzilla.yoctoproject.org/show_bug.cgi?id=15423
10 13
11Upstream-Status: Inappropriate [oe-core specific] 14Upstream-Status: Inappropriate [oe-core specific]
15
12Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> 16Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
13--- 18---
14diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile 19 sysdeps/unix/sysv/linux/Makefile | 6 ++++--
15--- a/sysdeps/unix/sysv/linux/Makefile 2024-03-18 01:15:49.019202881 -0700 20 1 file changed, 4 insertions(+), 2 deletions(-)
16+++ b/sysdeps/unix/sysv/linux/Makefile 2024-03-14 06:26:18.581404107 -0700 21
17@@ -222,7 +222,6 @@ 22diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
18 tst-process_mrelease \ 23index 8a755293b3..22dafcaad1 100644
19 tst-quota \ 24--- a/sysdeps/unix/sysv/linux/Makefile
25+++ b/sysdeps/unix/sysv/linux/Makefile
26@@ -228,7 +228,6 @@ tests += \
20 tst-rlimit-infinity \ 27 tst-rlimit-infinity \
28 tst-sched-affinity-inheritance \
29 tst-sched_setattr \
21- tst-scm_rights \ 30- tst-scm_rights \
22 tst-sigtimedwait \ 31 tst-sigtimedwait \
23 tst-sync_file_range \ 32 tst-sync_file_range \
24 tst-sysconf-iov_max \ 33 tst-syscall-restart \
25@@ -233,6 +232,8 @@ 34@@ -240,6 +239,8 @@ tests += \
26 tst-timerfd \ 35 tst-timerfd \
27 tst-ttyname-direct \ 36 tst-ttyname-direct \
28 tst-ttyname-namespace \ 37 tst-ttyname-namespace \
29+ # Skip this test to avoid stale qemu process 38+ # Skip this test to avoid stale qemu process
30+ # tst-scm_rights \ 39+ # tst-scm_rights \
31 # tests 40 # tests
32 41
33 # process_madvise requires CAP_SYS_ADMIN. 42 # process_madvise requires CAP_SYS_ADMIN.
34@@ -270,9 +271,10 @@ 43@@ -282,9 +283,10 @@ tests-time64 += \
35 tst-ntp_gettimex-time64 \ 44 tst-ntp_gettimex-time64 \
36 tst-ppoll-time64 \ 45 tst-ppoll-time64 \
37 tst-prctl-time64 \ 46 tst-prctl-time64 \
@@ -41,5 +50,5 @@ diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefil
41+ # Skip this test to avoid stale qemu process 50+ # Skip this test to avoid stale qemu process
42+ # tst-scm_rights-time64 \ 51+ # tst-scm_rights-time64 \
43 # tests-time64 52 # tests-time64
44 53
45 tests-clone-internal = \ 54 tests-clone-internal = \
diff --git a/meta/recipes-core/glibc/glibc/run-ptest b/meta/recipes-core/glibc/glibc/run-ptest
deleted file mode 100755
index cb71c75682..0000000000
--- a/meta/recipes-core/glibc/glibc/run-ptest
+++ /dev/null
@@ -1,37 +0,0 @@
1#!/bin/bash
2# ptest script for glibc - to run time related tests to
3# facilitate Y2038 validation
4# Run with 'ptest-runner glibc-tests'
5
6output() {
7 retcode=$?
8 if [ $retcode -eq 0 ]
9 then echo "PASS: $i"
10 elif [ $retcode -eq 77 ]
11 then echo "SKIP: $i"
12 else echo "FAIL: $i"
13 fi
14}
15
16# Allow altering time on the target
17export GLIBC_TEST_ALLOW_TIME_SETTING="1"
18
19tst_time64=$(ls -r ${PWD}/tests/glibc-ptest/*-time64)
20
21# Remove '-time64' suffix - those tests are also time
22# related
23tst_time_tmp=$(sed -e "s/-time64$//" <<< ${tst_time64})
24
25# Do not run tests supporting only 32 bit time
26#for i in ${tst_time_tmp}
27#do
28# $i >/dev/null 2>&1
29# output
30#done
31
32# Run tests supporting only 64 bit time
33for i in ${tst_time64}
34do
35 $i >/dev/null 2>&1
36 output
37done
diff --git a/meta/recipes-core/glibc/glibc_2.39.bb b/meta/recipes-core/glibc/glibc_2.41.bb
index 9122472689..7771fac041 100644
--- a/meta/recipes-core/glibc/glibc_2.39.bb
+++ b/meta/recipes-core/glibc/glibc_2.41.bb
@@ -16,6 +16,10 @@ CVE_STATUS[CVE-2019-1010025] = "disputed: \
16Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, may allow \ 16Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, may allow \
17easier access for another. 'ASLR bypass itself is not a vulnerability.'" 17easier access for another. 'ASLR bypass itself is not a vulnerability.'"
18 18
19CVE_STATUS_GROUPS += "CVE_STATUS_STABLE_BACKPORTS"
20CVE_STATUS_STABLE_BACKPORTS = "CVE-2025-4802 CVE-2025-5702 CVE-2025-5745"
21CVE_STATUS_STABLE_BACKPORTS[status] = "cpe-stable-backport: fix available in used git hash"
22
19DEPENDS += "gperf-native bison-native" 23DEPENDS += "gperf-native bison-native"
20 24
21NATIVESDKFIXES ?= "" 25NATIVESDKFIXES ?= ""
@@ -48,10 +52,10 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
48 file://0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch \ 52 file://0020-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch \
49 file://0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \ 53 file://0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
50 file://0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \ 54 file://0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
51 file://0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch \ 55 file://0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch \
52 file://0024-qemu-stale-process.patch \ 56 file://0001-stdlib-Add-single-threaded-fast-path-to-rand.patch \
57 file://0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch \
53" 58"
54S = "${WORKDIR}/git"
55B = "${WORKDIR}/build-${TARGET_SYS}" 59B = "${WORKDIR}/build-${TARGET_SYS}"
56 60
57PACKAGES_DYNAMIC = "" 61PACKAGES_DYNAMIC = ""
@@ -76,7 +80,6 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
76 --with-default-link \ 80 --with-default-link \
77 --disable-werror \ 81 --disable-werror \
78 --enable-fortify-source \ 82 --enable-fortify-source \
79 ${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \
80 ${GLIBCPIE} \ 83 ${GLIBCPIE} \
81 ${GLIBC_EXTRA_OECONF}" 84 ${GLIBC_EXTRA_OECONF}"
82 85
@@ -125,4 +128,15 @@ do_compile () {
125 128
126require glibc-package.inc 129require glibc-package.inc
127 130
131# When upgrading glibc it's important to know if there are any new symbols
132# that pseudo needs to wrap. In the future a generalised ABI comparison tool
133# would be good, but to solve the immediate need we can simply list the
134# exported symbols to files in WORKDIR.
135do_symlist() {
136 for LIB in ${D}${base_libdir}/lib*.so.*; do
137 ${NM} --dynamic $LIB | awk --source '$2 == "T" { print $3 }' | sort > ${WORKDIR}/$(basename $LIB)-${PV}.symbols
138 done
139}
140addtask symlist after do_install
141
128BBCLASSEXTEND = "nativesdk" 142BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb b/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
index 9ca95d1e52..1c475eeb8a 100644
--- a/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
+++ b/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
@@ -19,12 +19,11 @@ SRC_URI = "file://ldconfig-native-2.12.1.tar.bz2 \
19 file://ldconfig-handle-.dynstr-located-in-separate-segment.patch \ 19 file://ldconfig-handle-.dynstr-located-in-separate-segment.patch \
20" 20"
21 21
22
23FILESEXTRAPATHS =. "${FILE_DIRNAME}/${P}:" 22FILESEXTRAPATHS =. "${FILE_DIRNAME}/${P}:"
24 23
25inherit native 24inherit native
26 25
27S = "${WORKDIR}/${PN}-${PV}" 26S = "${UNPACKDIR}/${PN}-${PV}"
28 27
29do_compile () { 28do_compile () {
30 $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig 29 $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig
diff --git a/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch b/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch
index 6c4ed526bf..83fb706be0 100644
--- a/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch
+++ b/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch
@@ -1,4 +1,4 @@
1From 8dfbcf02e424ba1fdef587d81c9e08a37ab8c1b6 Mon Sep 17 00:00:00 2001 1From 97b196efe9671d0185d22710371acb52bb7130e2 Mon Sep 17 00:00:00 2001
2From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> 2From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
3Date: Tue, 2 Jul 2019 20:10:42 +0200 3Date: Tue, 2 Jul 2019 20:10:42 +0200
4Subject: [PATCH] Define FNM_EXTMATCH for musl 4Subject: [PATCH] Define FNM_EXTMATCH for musl
@@ -24,7 +24,6 @@ function); did you mean 'FNM_NOMATCH'?
24Upstream-Status: Submitted [https://salsa.debian.org/debian/ifupdown/merge_requests/5] 24Upstream-Status: Submitted [https://salsa.debian.org/debian/ifupdown/merge_requests/5]
25 25
26Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> 26Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
27
28--- 27---
29 archcommon.h | 4 ++++ 28 archcommon.h | 4 ++++
30 1 file changed, 4 insertions(+) 29 1 file changed, 4 insertions(+)
diff --git a/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch b/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch
index 6e15a25224..f84a0a1311 100644
--- a/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch
+++ b/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch
@@ -1,17 +1,16 @@
1From 7fe516cbaf9fda09d99dcb54d4645367cffc8a4d Mon Sep 17 00:00:00 2001 1From 4922e2011a0132c122df4f0cf4d66d565c749060 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 9 Jan 2020 15:38:06 +0100 3Date: Thu, 9 Jan 2020 15:38:06 +0100
4Subject: [PATCH] Makefile: do not use dpkg for determining OS type 4Subject: [PATCH] Makefile: do not use dpkg for determining OS type
5 5
6Upstream-Status: Inappropriate [oe-core specific] 6Upstream-Status: Inappropriate [oe-core specific]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8
9--- 8---
10 Makefile | 2 +- 9 Makefile | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-) 10 1 file changed, 1 insertion(+), 1 deletion(-)
12 11
13diff --git a/Makefile b/Makefile 12diff --git a/Makefile b/Makefile
14index 0ce2fa3..739aef2 100644 13index 9cd758b..58b4173 100644
15--- a/Makefile 14--- a/Makefile
16+++ b/Makefile 15+++ b/Makefile
17@@ -1,6 +1,6 @@ 16@@ -1,6 +1,6 @@
@@ -21,4 +20,4 @@ index 0ce2fa3..739aef2 100644
21+ARCH := linux 20+ARCH := linux
22 21
23 BASEDIR ?= $(DESTDIR) 22 BASEDIR ?= $(DESTDIR)
24 23 PKGLIBDIR ?= /lib/ifupdown
diff --git a/meta/recipes-core/ifupdown/files/0001-ifupdown-skip-wrong-test-case.patch b/meta/recipes-core/ifupdown/files/0001-ifupdown-skip-wrong-test-case.patch
index 9ae24da51e..8aa227c8ec 100644
--- a/meta/recipes-core/ifupdown/files/0001-ifupdown-skip-wrong-test-case.patch
+++ b/meta/recipes-core/ifupdown/files/0001-ifupdown-skip-wrong-test-case.patch
@@ -1,4 +1,4 @@
1From 782d8a869c266820d0f34974436f244f67afaea7 Mon Sep 17 00:00:00 2001 1From ea48a9816643482d438e4bb276c90cd6f02847e4 Mon Sep 17 00:00:00 2001
2From: Zqiang <qiang.zhang@windriver.com> 2From: Zqiang <qiang.zhang@windriver.com>
3Date: Mon, 19 Apr 2021 14:15:45 +0800 3Date: Mon, 19 Apr 2021 14:15:45 +0800
4Subject: [PATCH] ifupdown: skip wrong test case 4Subject: [PATCH] ifupdown: skip wrong test case
@@ -10,7 +10,6 @@ and are skipped directly.
10Upstream-Status: Inappropriate [oe-core specific] 10Upstream-Status: Inappropriate [oe-core specific]
11 11
12Signed-off-by: Zqiang <qiang.zhang@windriver.com> 12Signed-off-by: Zqiang <qiang.zhang@windriver.com>
13
14--- 13---
15 tests/testbuild-linux | 2 +- 14 tests/testbuild-linux | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-) 15 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch b/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch
index 7b4b761e6a..d47c50f2d5 100644
--- a/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch
+++ b/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch
@@ -1,4 +1,4 @@
1From fc8e8d4cb19ff30e69aa1855332544f1017f974c Mon Sep 17 00:00:00 2001 1From 68b64a5c9d466352b0c161019bd7255e31db9a4c Mon Sep 17 00:00:00 2001
2From: Paul Gortmaker <paul.gortmaker@windriver.com> 2From: Paul Gortmaker <paul.gortmaker@windriver.com>
3Date: Wed, 6 Aug 2014 14:54:12 -0400 3Date: Wed, 6 Aug 2014 14:54:12 -0400
4Subject: [PATCH] defn2[c|man]: don't rely on dpkg-architecture to set arch 4Subject: [PATCH] defn2[c|man]: don't rely on dpkg-architecture to set arch
@@ -12,8 +12,7 @@ arch specific methods, and the end result will be strangeness
12like the loopback device not being configured/enabled. 12like the loopback device not being configured/enabled.
13 13
14Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> 14Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
15Upstream-Status: Pending 15Upstream-Status: Inappropriate [avoiding debian-isms]
16
17--- 16---
18 defn2c.pl | 6 +++--- 17 defn2c.pl | 6 +++---
19 defn2man.pl | 6 +++--- 18 defn2man.pl | 6 +++---
diff --git a/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch b/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch
index fa6bb84df3..c1953f0691 100644
--- a/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch
+++ b/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch
@@ -1,4 +1,4 @@
1From a6bb2ac5f521c678abbbdb1960d28f750f4357a6 Mon Sep 17 00:00:00 2001 1From 5eede8950e35404b109cc3cf6a53bf3c84b31cfb Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com> 2From: Kai Kang <kai.kang@windriver.com>
3Date: Mon, 3 Feb 2020 17:33:11 +0800 3Date: Mon, 3 Feb 2020 17:33:11 +0800
4Subject: [PATCH] Tweak tests of ifupdown to make it work with oe-core ptest 4Subject: [PATCH] Tweak tests of ifupdown to make it work with oe-core ptest
@@ -7,7 +7,6 @@ Subject: [PATCH] Tweak tests of ifupdown to make it work with oe-core ptest
7Upstream-Status: Inappropriate [oe-core specific] 7Upstream-Status: Inappropriate [oe-core specific]
8 8
9Signed-off-by: Kai Kang <kai.kang@windriver.com> 9Signed-off-by: Kai Kang <kai.kang@windriver.com>
10
11--- 10---
12 tests/testbuild-linux | 11 ++++++----- 11 tests/testbuild-linux | 11 ++++++-----
13 1 file changed, 6 insertions(+), 5 deletions(-) 12 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb
index 16425ea9e4..8a8f477361 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb
@@ -16,16 +16,13 @@ SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https;branch=mast
16 file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \ 16 file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \
17 file://tweak-ptest-script.patch \ 17 file://tweak-ptest-script.patch \
18 " 18 "
19SRCREV = "369d9d3c13a0c56ad09fd4f13b4a80eb9a94e270" 19SRCREV = "7d44f9ce6717a4a496fd46f28c52e12dbf5bafdd"
20
21S = "${WORKDIR}/git"
22
23 20
24inherit ptest update-alternatives 21inherit ptest update-alternatives
25 22
26do_compile () { 23do_compile () {
27 chmod a+rx *.pl *.sh 24 chmod a+rx *.pl *.sh
28 oe_runmake 'CC=${CC}' "CFLAGS=${CFLAGS} -Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'" 25 oe_runmake 'CC=${CC}' "-Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'"
29} 26}
30 27
31do_install () { 28do_install () {
@@ -35,7 +32,7 @@ do_install () {
35 32
36 # If volatiles are used, then we'll also need /run/network there too. 33 # If volatiles are used, then we'll also need /run/network there too.
37 install -d ${D}/etc/default/volatiles 34 install -d ${D}/etc/default/volatiles
38 install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles 35 install -m 0644 ${UNPACKDIR}/99_network ${D}/etc/default/volatiles
39 36
40 install -m 0755 ifup ${D}${base_sbindir}/ 37 install -m 0755 ifup ${D}${base_sbindir}/
41 ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown 38 ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown
diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 4cf55519cc..4daedfb43c 100644
--- a/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -26,8 +26,8 @@ inherit core-image setuptools3 features_check
26 26
27REQUIRED_DISTRO_FEATURES += "xattr" 27REQUIRED_DISTRO_FEATURES += "xattr"
28 28
29SRCREV ?= "17723c6e34096a53fb186cc70cfc604bb30da8b9" 29SRCREV ?= "b1b3318eff36d4d9b2d3a935dee607c4f012f992"
30SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ 30SRC_URI = "git://git.yoctoproject.org/poky;branch=master;destsuffix=poky \
31 file://Yocto_Build_Appliance.vmx \ 31 file://Yocto_Build_Appliance.vmx \
32 file://Yocto_Build_Appliance.vmxf \ 32 file://Yocto_Build_Appliance.vmxf \
33 file://README_VirtualBox_Guest_Additions.txt \ 33 file://README_VirtualBox_Guest_Additions.txt \
@@ -44,10 +44,10 @@ IMAGE_CMD:ext4:append () {
44fakeroot do_populate_poky_src () { 44fakeroot do_populate_poky_src () {
45 # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo 45 # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo
46 # will become invalid in the target. 46 # will become invalid in the target.
47 rm -rf ${WORKDIR}/git/.git 47 rm -rf ${UNPACKDIR}/poky/.git
48 rm -f ${WORKDIR}/git/.gitignore 48 rm -f ${UNPACKDIR}/poky/.gitignore
49 49
50 cp -R ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky 50 cp -R ${UNPACKDIR}/poky ${IMAGE_ROOTFS}/home/builder/poky
51 51
52 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf 52 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf
53 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads 53 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads
@@ -58,10 +58,10 @@ fakeroot do_populate_poky_src () {
58 fi 58 fi
59 59
60 # Place the README_VirtualBox_Guest_Additions file in builders home folder. 60 # Place the README_VirtualBox_Guest_Additions file in builders home folder.
61 cp ${WORKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/ 61 cp ${UNPACKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/
62 62
63 # Place the README_VirtualBox_Toaster file in builders home folder. 63 # Place the README_VirtualBox_Toaster file in builders home folder.
64 cp ${WORKDIR}/README_VirtualBox_Toaster.txt ${IMAGE_ROOTFS}/home/builder/ 64 cp ${UNPACKDIR}/README_VirtualBox_Toaster.txt ${IMAGE_ROOTFS}/home/builder/
65 65
66 echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf 66 echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf
67 echo "export LC_ALL=en_US.utf8" >> ${IMAGE_ROOTFS}/home/builder/.bashrc 67 echo "export LC_ALL=en_US.utf8" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
@@ -129,10 +129,15 @@ python () {
129 d.delVarFlag("do_unpack", "noexec") 129 d.delVarFlag("do_unpack", "noexec")
130} 130}
131 131
132# ${S} doesn't exist for us
133do_qa_unpack() {
134 return
135}
136
132create_bundle_files () { 137create_bundle_files () {
133 cd ${WORKDIR} 138 cd ${WORKDIR}
134 mkdir -p Yocto_Build_Appliance 139 mkdir -p Yocto_Build_Appliance
135 cp *.vmx* Yocto_Build_Appliance 140 cp ${UNPACKDIR}/*.vmx* Yocto_Build_Appliance
136 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk 141 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk
137 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhdx Yocto_Build_Appliance/Yocto_Build_Appliance.vhdx 142 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhdx Yocto_Build_Appliance/Yocto_Build_Appliance.vhdx
138 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhd Yocto_Build_Appliance/Yocto_Build_Appliance.vhd 143 ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhd Yocto_Build_Appliance/Yocto_Build_Appliance.vhd
diff --git a/meta/recipes-core/images/core-image-minimal-initramfs.bb b/meta/recipes-core/images/core-image-minimal-initramfs.bb
index 36e8771c4a..4e210d1bf3 100644
--- a/meta/recipes-core/images/core-image-minimal-initramfs.bb
+++ b/meta/recipes-core/images/core-image-minimal-initramfs.bb
@@ -32,4 +32,4 @@ IMAGE_ROOTFS_SIZE = "8192"
32IMAGE_ROOTFS_EXTRA_SPACE = "0" 32IMAGE_ROOTFS_EXTRA_SPACE = "0"
33 33
34# Use the same restriction as initramfs-module-install 34# Use the same restriction as initramfs-module-install
35COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|loongarch64.*)-(linux.*|freebsd.*)' 35COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
diff --git a/meta/recipes-core/images/core-image-ptest.bb b/meta/recipes-core/images/core-image-ptest.bb
index 72081f938d..017f05f81b 100644
--- a/meta/recipes-core/images/core-image-ptest.bb
+++ b/meta/recipes-core/images/core-image-ptest.bb
@@ -23,15 +23,21 @@ IMAGE_ROOTFS_EXTRA_SPACE = "324288"
23IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-mdadm = "1524288" 23IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-mdadm = "1524288"
24IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-strace = "1524288" 24IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-strace = "1524288"
25IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-lttng-tools = "1524288" 25IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-lttng-tools = "1524288"
26IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-util-linux = "1524288"
26 27
27# tar-ptest in particular needs more space 28# tar-ptest in particular needs more space
28IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-tar = "1524288" 29IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-tar = "1524288"
29 30
31# python3-numpy-ptest requires a lot of extra space
32IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-python3-numpy = "3048576"
33
30# ptests need more memory than standard to avoid the OOM killer 34# ptests need more memory than standard to avoid the OOM killer
31QB_MEM = "-m 1024" 35QB_MEM = "-m 1024"
32QB_MEM:virtclass-mcextend-lttng-tools = "-m 4096" 36QB_MEM:virtclass-mcextend-lttng-tools = "-m 4096"
33QB_MEM:virtclass-mcextend-python3 = "-m 2048" 37QB_MEM:virtclass-mcextend-python3 = "-m 2048"
34QB_MEM:virtclass-mcextend-python3-cryptography = "-m 5100" 38QB_MEM:virtclass-mcextend-python3-cryptography = "-m 5100"
39QB_MEM:virtclass-mcextend-python3-numpy = "-m 4096"
40QB_MEM:virtclass-mcextend-tcl = "-m 5100"
35 41
36TEST_SUITES = "ping ssh parselogs ptest" 42TEST_SUITES = "ping ssh parselogs ptest"
37 43
diff --git a/meta/recipes-core/images/core-image-tiny-initramfs.bb b/meta/recipes-core/images/core-image-tiny-initramfs.bb
index 7a71d55b1e..c2aa68c788 100644
--- a/meta/recipes-core/images/core-image-tiny-initramfs.bb
+++ b/meta/recipes-core/images/core-image-tiny-initramfs.bb
@@ -6,6 +6,9 @@ first 'init' program more efficiently. core-image-tiny-initramfs doesn't \
6actually generate an image but rather generates boot and rootfs artifacts \ 6actually generate an image but rather generates boot and rootfs artifacts \
7that can subsequently be picked up by external image generation tools such as wic." 7that can subsequently be picked up by external image generation tools such as wic."
8 8
9# if distro does not override VIRTUAL-RUNTIME_dev_manager and default in different, busybox is compiled without mdev support
10# however this keeps the image small by not installing heavy-weight manager and in initramfs it may not even be necessary
11# override in distro if needed
9VIRTUAL-RUNTIME_dev_manager ?= "busybox-mdev" 12VIRTUAL-RUNTIME_dev_manager ?= "busybox-mdev"
10 13
11PACKAGE_INSTALL = "initramfs-live-boot-tiny packagegroup-core-boot dropbear ${VIRTUAL-RUNTIME_base-utils} ${VIRTUAL-RUNTIME_dev_manager} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}" 14PACKAGE_INSTALL = "initramfs-live-boot-tiny packagegroup-core-boot dropbear ${VIRTUAL-RUNTIME_base-utils} ${VIRTUAL-RUNTIME_dev_manager} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
diff --git a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
index 409b1c0403..da594d00b7 100644
--- a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "This package provides high level tools to configure network inter
3HOMEPAGE = "http://packages.debian.org/ifupdown" 3HOMEPAGE = "http://packages.debian.org/ifupdown"
4SECTION = "base" 4SECTION = "base"
5LICENSE = "GPL-2.0-only" 5LICENSE = "GPL-2.0-only"
6LIC_FILES_CHKSUM = "file://${WORKDIR}/copyright;md5=3dd6192d306f582dee7687da3d8748ab" 6LIC_FILES_CHKSUM = "file://${S}/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
7 7
8inherit update-rc.d 8inherit update-rc.d
9 9
@@ -15,7 +15,7 @@ SRC_URI = "file://copyright \
15 file://interfaces \ 15 file://interfaces \
16 file://nfsroot" 16 file://nfsroot"
17 17
18S = "${WORKDIR}" 18S = "${UNPACKDIR}"
19 19
20do_install () { 20do_install () {
21 install -d ${D}${sysconfdir}/init.d \ 21 install -d ${D}${sysconfdir}/init.d \
@@ -23,9 +23,9 @@ do_install () {
23 ${D}${sysconfdir}/network/if-up.d \ 23 ${D}${sysconfdir}/network/if-up.d \
24 ${D}${sysconfdir}/network/if-down.d \ 24 ${D}${sysconfdir}/network/if-down.d \
25 ${D}${sysconfdir}/network/if-post-down.d 25 ${D}${sysconfdir}/network/if-post-down.d
26 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/networking 26 install -m 0755 ${S}/init ${D}${sysconfdir}/init.d/networking
27 install -m 0644 ${WORKDIR}/interfaces ${D}${sysconfdir}/network/interfaces 27 install -m 0644 ${S}/interfaces ${D}${sysconfdir}/network/interfaces
28 install -m 0755 ${WORKDIR}/nfsroot ${D}${sysconfdir}/network/if-pre-up.d 28 install -m 0755 ${S}/nfsroot ${D}${sysconfdir}/network/if-pre-up.d
29} 29}
30 30
31do_install:append:qemuall () { 31do_install:append:qemuall () {
diff --git a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
index 198459f2b2..e0a6319ccf 100644
--- a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -3,11 +3,10 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4SRC_URI = "file://init-boot.sh" 4SRC_URI = "file://init-boot.sh"
5 5
6 6S = "${UNPACKDIR}"
7S = "${WORKDIR}"
8 7
9do_install() { 8do_install() {
10 install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init 9 install -m 0755 ${S}/init-boot.sh ${D}/init
11 10
12 # Create device nodes expected by some kernels in initramfs 11 # Create device nodes expected by some kernels in initramfs
13 # before even executing /init. 12 # before even executing /init.
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/finish b/meta/recipes-core/initrdscripts/initramfs-framework/finish
index ac0de9f996..716c2f44af 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/finish
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/finish
@@ -41,7 +41,7 @@ finish_run() {
41 mount --move /sys $ROOTFS_DIR/sys 41 mount --move /sys $ROOTFS_DIR/sys
42 42
43 cd $ROOTFS_DIR 43 cd $ROOTFS_DIR
44 exec switch_root -c /dev/console $ROOTFS_DIR ${bootparam_init:-/sbin/init} 44 exec switch_root $ROOTFS_DIR ${bootparam_init:-/sbin/init}
45 else 45 else
46 debug "No rootfs has been set" 46 debug "No rootfs has been set"
47 fi 47 fi
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init b/meta/recipes-core/initrdscripts/initramfs-framework/init
index 567694aff7..a48b77e95e 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/init
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/init
@@ -54,20 +54,23 @@ debug() {
54} 54}
55 55
56# Prints a message and start a endless loop 56# Prints a message and start a endless loop
57# Force reboot if init_fatal_reboot bootparam is set
57fatal() { 58fatal() {
58 echo $1 >/dev/console 59 echo $1 >/dev/console
59 echo >/dev/console 60 echo >/dev/console
60 61
61 if [ -n "$bootparam_init_fatal_sh" ]; then 62 if [ -n "$bootparam_init_fatal_reboot" ]; then
62 sh 63 reboot -f
63 else 64 elif [ -n "$bootparam_init_fatal_sh" ]; then
64 while [ "true" ]; do 65 sh
65 sleep 3600 66 else
66 done 67 while [ "true" ]; do
67 fi 68 sleep 3600
69 done
70 fi
68} 71}
69 72
70# Variables shared amoung modules 73# Variables shared among modules
71ROOTFS_DIR="/rootfs" # where to do the switch root 74ROOTFS_DIR="/rootfs" # where to do the switch root
72MODULE_PRE_HOOKS="" # functions to call before running each module 75MODULE_PRE_HOOKS="" # functions to call before running each module
73MODULE_POST_HOOKS="" # functions to call after running each module 76MODULE_POST_HOOKS="" # functions to call after running each module
@@ -117,7 +120,7 @@ if grep -q devtmpfs /proc/filesystems; then
117 mount -t devtmpfs devtmpfs /dev 120 mount -t devtmpfs devtmpfs /dev
118else 121else
119 if [ ! -d /dev ]; then 122 if [ ! -d /dev ]; then
120 fatal "ERROR: /dev doesn't exist and kernel doesn't has devtmpfs enabled." 123 fatal "ERROR: /dev doesn't exist and kernel doesn't have devtmpfs enabled."
121 fi 124 fi
122fi 125fi
123 126
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs b/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
index e67ee4c25d..30555aef55 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
@@ -1,7 +1,7 @@
1#!/bin/sh 1#!/bin/sh
2 2
3nfsrootfs_enabled() { 3nfsrootfs_enabled() {
4 if [ ${bootparam_root} != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then 4 if [ "${bootparam_root}" != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then
5 return 1 5 return 1
6 fi 6 fi
7 return 0 7 return 0
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
index e0efbe6ebe..df0cbfb091 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
@@ -33,9 +33,11 @@ rootfs_run() {
33 elif [ "`echo ${bootparam_root} | cut -c1-6`" = "LABEL=" ]; then 33 elif [ "`echo ${bootparam_root} | cut -c1-6`" = "LABEL=" ]; then
34 root_label=`echo $bootparam_root | cut -c7-` 34 root_label=`echo $bootparam_root | cut -c7-`
35 bootparam_root="/dev/disk/by-label/$root_label" 35 bootparam_root="/dev/disk/by-label/$root_label"
36 elif echo "${bootparam_root}" | grep -q '^ubi[0-9]\+:'; then
37 bootparam_rootfstype="ubifs"
36 fi 38 fi
37 39
38 if [ -e "$bootparam_root" ]; then 40 if [ -e "$bootparam_root" ] || [ -n "$bootparam_rootfstype" ]; then
39 flags="" 41 flags=""
40 if [ -n "$bootparam_ro" ] && ! echo "$bootparam_rootflags" | grep -w -q "ro"; then 42 if [ -n "$bootparam_ro" ] && ! echo "$bootparam_rootflags" | grep -w -q "ro"; then
41 if [ -n "$bootparam_rootflags" ]; then 43 if [ -n "$bootparam_rootflags" ]; then
@@ -49,6 +51,7 @@ rootfs_run() {
49 if [ -n "$bootparam_rootfstype" ]; then 51 if [ -n "$bootparam_rootfstype" ]; then
50 flags="$flags -t$bootparam_rootfstype" 52 flags="$flags -t$bootparam_rootfstype"
51 fi 53 fi
54 debug "mount $flags $bootparam_root $ROOTFS_DIR"
52 mount $flags $bootparam_root $ROOTFS_DIR 55 mount $flags $bootparam_root $ROOTFS_DIR
53 if mountpoint -q $ROOTFS_DIR; then 56 if mountpoint -q $ROOTFS_DIR; then
54 break 57 break
@@ -59,7 +62,7 @@ rootfs_run() {
59 fi 62 fi
60 fi 63 fi
61 fi 64 fi
62 debug "Sleeping for $delay second(s) to wait root to settle..." 65 debug "Sleeping for $delay second(s) to wait for root to settle..."
63 sleep $delay 66 sleep $delay
64 C=$(( $C + 1 )) 67 C=$(( $C + 1 ))
65 done 68 done
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 39ea51ccbd..2ec03bc34c 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
4RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}" 4RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6 6
7
8inherit allarch 7inherit allarch
9 8
10SRC_URI = "file://init \ 9SRC_URI = "file://init \
@@ -20,37 +19,37 @@ SRC_URI = "file://init \
20 file://overlayroot \ 19 file://overlayroot \
21 " 20 "
22 21
23S = "${WORKDIR}" 22S = "${UNPACKDIR}"
24 23
25do_install() { 24do_install() {
26 install -d ${D}/init.d 25 install -d ${D}/init.d
27 26
28 # base 27 # base
29 install -m 0755 ${WORKDIR}/init ${D}/init 28 install -m 0755 ${S}/init ${D}/init
30 install -m 0755 ${WORKDIR}/nfsrootfs ${D}/init.d/85-nfsrootfs 29 install -m 0755 ${S}/nfsrootfs ${D}/init.d/85-nfsrootfs
31 install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs 30 install -m 0755 ${S}/rootfs ${D}/init.d/90-rootfs
32 install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish 31 install -m 0755 ${S}/finish ${D}/init.d/99-finish
33 32
34 # exec 33 # exec
35 install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec 34 install -m 0755 ${S}/exec ${D}/init.d/89-exec
36 35
37 # mdev 36 # mdev
38 install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev 37 install -m 0755 ${S}/mdev ${D}/init.d/01-mdev
39 38
40 # udev 39 # udev
41 install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev 40 install -m 0755 ${S}/udev ${D}/init.d/01-udev
42 41
43 # e2fs 42 # e2fs
44 install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/10-e2fs 43 install -m 0755 ${S}/e2fs ${D}/init.d/10-e2fs
45 44
46 # debug 45 # debug
47 install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug 46 install -m 0755 ${S}/debug ${D}/init.d/00-debug
48 47
49 # lvm 48 # lvm
50 install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm 49 install -m 0755 ${S}/lvm ${D}/init.d/09-lvm
51 50
52 # overlayroot needs to run after rootfs module but before finish 51 # overlayroot needs to run after rootfs module but before finish
53 install -m 0755 ${WORKDIR}/overlayroot ${D}/init.d/91-overlayroot 52 install -m 0755 ${S}/overlayroot ${D}/init.d/91-overlayroot
54 53
55 # Create device nodes expected by some kernels in initramfs 54 # Create device nodes expected by some kernels in initramfs
56 # before even executing /init. 55 # before even executing /init.
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
index 847dbc0472..6b99ab1843 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
@@ -5,11 +5,10 @@ DEPENDS = "virtual/kernel"
5RDEPENDS:${PN} = "busybox-mdev" 5RDEPENDS:${PN} = "busybox-mdev"
6SRC_URI = "file://init-live.sh" 6SRC_URI = "file://init-live.sh"
7 7
8 8S = "${UNPACKDIR}"
9S = "${WORKDIR}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${WORKDIR}/init-live.sh ${D}/init 11 install -m 0755 ${S}/init-live.sh ${D}/init
13 install -d ${D}/dev 12 install -d ${D}/dev
14 mknod -m 622 ${D}/dev/console c 5 1 13 mknod -m 622 ${D}/dev/console c 5 1
15} 14}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
index b3b991b8fd..8c8355a53e 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -5,11 +5,10 @@ DEPENDS = "virtual/kernel"
5RDEPENDS:${PN} = "udev udev-extraconf" 5RDEPENDS:${PN} = "udev udev-extraconf"
6SRC_URI = "file://init-live.sh" 6SRC_URI = "file://init-live.sh"
7 7
8 8S = "${UNPACKDIR}"
9S = "${WORKDIR}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${WORKDIR}/init-live.sh ${D}/init 11 install -m 0755 ${S}/init-live.sh ${D}/init
13 install -d ${D}/dev 12 install -d ${D}/dev
14 mknod -m 622 ${D}/dev/console c 5 1 13 mknod -m 622 ${D}/dev/console c 5 1
15} 14}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
index 495eccbeda..e308727320 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
@@ -5,10 +5,10 @@ SRC_URI = "file://init-install-efi-testfs.sh"
5 5
6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools" 6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools"
7 7
8S = "${WORKDIR}" 8S = "${UNPACKDIR}"
9 9
10do_install() { 10do_install() {
11 install -m 0755 ${WORKDIR}/init-install-efi-testfs.sh ${D}/install-efi.sh 11 install -m 0755 ${S}/init-install-efi-testfs.sh ${D}/install-efi.sh
12} 12}
13 13
14INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
index e10faadfbe..77462f4425 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
@@ -3,14 +3,13 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4SRC_URI = "file://init-install-efi.sh" 4SRC_URI = "file://init-install-efi.sh"
5 5
6
7RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
8RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 7RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
9 8
10S = "${WORKDIR}" 9S = "${UNPACKDIR}"
11 10
12do_install() { 11do_install() {
13 install -m 0755 ${WORKDIR}/init-install-efi.sh ${D}/install-efi.sh 12 install -m 0755 ${S}/init-install-efi.sh ${D}/install-efi.sh
14} 13}
15 14
16# While this package maybe an allarch due to it being a 15# While this package maybe an allarch due to it being a
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
index d347e323b3..05f92203cd 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
@@ -5,10 +5,10 @@ SRC_URI = "file://init-install-testfs.sh"
5 5
6RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs" 6RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs"
7 7
8S = "${WORKDIR}" 8S = "${UNPACKDIR}"
9 9
10do_install() { 10do_install() {
11 install -m 0755 ${WORKDIR}/init-install-testfs.sh ${D}/install.sh 11 install -m 0755 ${S}/init-install-testfs.sh ${D}/install.sh
12} 12}
13 13
14INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
index 9046d06c02..791bd57171 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -3,14 +3,13 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4SRC_URI = "file://init-install.sh" 4SRC_URI = "file://init-install.sh"
5 5
6 6S = "${UNPACKDIR}"
7S = "${WORKDIR}"
8 7
9RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 8RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
10RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 9RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
11 10
12do_install() { 11do_install() {
13 install -m 0755 ${WORKDIR}/init-install.sh ${D}/install.sh 12 install -m 0755 ${S}/init-install.sh ${D}/install.sh
14} 13}
15 14
16# While this package maybe an allarch due to it being a 15# While this package maybe an allarch due to it being a
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
index b7499644f0..0283149899 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
@@ -4,14 +4,13 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
4RDEPENDS:${PN} = "initramfs-framework-base parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 4RDEPENDS:${PN} = "initramfs-framework-base parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6 6
7
8SRC_URI = "file://init-install-efi.sh" 7SRC_URI = "file://init-install-efi.sh"
9 8
10S = "${WORKDIR}" 9S = "${UNPACKDIR}"
11 10
12do_install() { 11do_install() {
13 install -d ${D}/init.d 12 install -d ${D}/init.d
14 install -m 0755 ${WORKDIR}/init-install-efi.sh ${D}/init.d/install-efi.sh 13 install -m 0755 ${S}/init-install-efi.sh ${D}/init.d/install-efi.sh
15} 14}
16 15
17FILES:${PN} = "/init.d/install-efi.sh" 16FILES:${PN} = "/init.d/install-efi.sh"
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
index 11db7124af..f44c753da0 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
@@ -5,18 +5,17 @@ RDEPENDS:${PN} = "initramfs-framework-base grub parted e2fsprogs-mke2fs util-lin
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6 6
7# The same restriction as grub 7# The same restriction as grub
8COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|loongarch64.*)-(linux.*|freebsd.*)' 8COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
9COMPATIBLE_HOST:armv7a = 'null' 9COMPATIBLE_HOST:armv7a = 'null'
10COMPATIBLE_HOST:armv7ve = 'null' 10COMPATIBLE_HOST:armv7ve = 'null'
11 11
12
13SRC_URI = "file://init-install.sh" 12SRC_URI = "file://init-install.sh"
14 13
15S = "${WORKDIR}" 14S = "${UNPACKDIR}"
16 15
17do_install() { 16do_install() {
18 install -d ${D}/init.d 17 install -d ${D}/init.d
19 install -m 0755 ${WORKDIR}/init-install.sh ${D}/init.d/install.sh 18 install -m 0755 ${S}/init-install.sh ${D}/init.d/install.sh
20} 19}
21 20
22FILES:${PN} = "/init.d/install.sh" 21FILES:${PN} = "/init.d/install.sh"
diff --git a/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
index 48a779e9aa..3afbd5d47d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
@@ -3,17 +3,16 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4RDEPENDS:${PN} = "initramfs-framework-base udev-extraconf" 4RDEPENDS:${PN} = "initramfs-framework-base udev-extraconf"
5 5
6
7inherit allarch 6inherit allarch
8 7
9FILESEXTRAPATHS:prepend := "${THISDIR}/initramfs-framework:" 8FILESEXTRAPATHS:prepend := "${THISDIR}/initramfs-framework:"
10SRC_URI = "file://setup-live" 9SRC_URI = "file://setup-live"
11 10
12S = "${WORKDIR}" 11S = "${UNPACKDIR}"
13 12
14do_install() { 13do_install() {
15 install -d ${D}/init.d 14 install -d ${D}/init.d
16 install -m 0755 ${WORKDIR}/setup-live ${D}/init.d/80-setup-live 15 install -m 0755 ${S}/setup-live ${D}/init.d/80-setup-live
17} 16}
18 17
19FILES:${PN} = "/init.d/80-setup-live" 18FILES:${PN} = "/init.d/80-setup-live"
diff --git a/meta/recipes-core/initscripts/init-system-helpers_1.66.bb b/meta/recipes-core/initscripts/init-system-helpers_1.68.bb
index 64e08aae68..48ac7792d3 100644
--- a/meta/recipes-core/initscripts/init-system-helpers_1.66.bb
+++ b/meta/recipes-core/initscripts/init-system-helpers_1.68.bb
@@ -16,12 +16,10 @@ SECTION = "base"
16LICENSE = "BSD-3-Clause & GPL-2.0-only" 16LICENSE = "BSD-3-Clause & GPL-2.0-only"
17LIC_FILES_CHKSUM = "file://debian/copyright;md5=c4ec20aa158fa9de26ee1accf78dcaae" 17LIC_FILES_CHKSUM = "file://debian/copyright;md5=c4ec20aa158fa9de26ee1accf78dcaae"
18 18
19SRCREV = "a5439f465dc1d1d4e12329208dc321fb806009f4" 19SRCREV = "78486a4a2a305170b66ce4d907bedadbaed10daf"
20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master" 20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master"
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)" 21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)"
22 22
23S = "${WORKDIR}/git"
24
25do_configure[noexec] = "1" 23do_configure[noexec] = "1"
26do_compile[noexec] = "1" 24do_compile[noexec] = "1"
27 25
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/functions b/meta/recipes-core/initscripts/initscripts-1.0/functions
index 35aebd4a55..7fc19c808b 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/functions
+++ b/meta/recipes-core/initscripts/initscripts-1.0/functions
@@ -92,3 +92,24 @@ passed() {
92 echo -n -e "${BRACKET}[${SUCCESS} PASS ${BRACKET}]${NORMAL}" 92 echo -n -e "${BRACKET}[${SUCCESS} PASS ${BRACKET}]${NORMAL}"
93 return $rc 93 return $rc
94} 94}
95
96log_success_msg()
97{
98 echo -n $@
99 success
100 echo
101}
102
103log_failure_msg()
104{
105 echo -n $@
106 failure
107 echo
108}
109
110log_warning_msg()
111{
112 echo -n $@
113 warning
114 echo
115}
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index e61ac554f3..c984257c5c 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -35,7 +35,7 @@ SRC_URI = "file://functions \
35 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \ 35 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \
36" 36"
37 37
38S = "${WORKDIR}" 38S = "${UNPACKDIR}"
39 39
40SRC_URI:append:arm = " file://alignment.sh" 40SRC_URI:append:arm = " file://alignment.sh"
41SRC_URI:append:armeb = " file://alignment.sh" 41SRC_URI:append:armeb = " file://alignment.sh"
@@ -53,7 +53,6 @@ RDEPENDS:${PN} = "initd-functions \
53# Recommend pn-functions so that it will be a preferred default provider for initd-functions 53# Recommend pn-functions so that it will be a preferred default provider for initd-functions
54RRECOMMENDS:${PN} = "${PN}-functions" 54RRECOMMENDS:${PN} = "${PN}-functions"
55RPROVIDES:${PN}-functions = "initd-functions" 55RPROVIDES:${PN}-functions = "initd-functions"
56RCONFLICTS:${PN}-functions = "lsbinitscripts"
57FILES:${PN}-functions = "${sysconfdir}/init.d/functions*" 56FILES:${PN}-functions = "${sysconfdir}/init.d/functions*"
58FILES:${PN}-sushell = "${base_sbindir}/sushell" 57FILES:${PN}-sushell = "${base_sbindir}/sushell"
59 58
@@ -61,9 +60,9 @@ HALTARGS ?= "-d -f"
61VARLIBMOUNTARGS ?= "" 60VARLIBMOUNTARGS ?= ""
62 61
63do_configure() { 62do_configure() {
64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/halt 63 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${S}/halt
65 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/reboot 64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${S}/reboot
66 sed -i -e "s:SED_VARLIBMOUNTARGS:${VARLIBMOUNTARGS}:g" ${WORKDIR}/read-only-rootfs-hook.sh 65 sed -i -e "s:SED_VARLIBMOUNTARGS:${VARLIBMOUNTARGS}:g" ${S}/read-only-rootfs-hook.sh
67} 66}
68 67
69do_install () { 68do_install () {
@@ -84,50 +83,50 @@ do_install () {
84 # Holds state information pertaining to urandom 83 # Holds state information pertaining to urandom
85 install -d ${D}${localstatedir}/lib/urandom 84 install -d ${D}${localstatedir}/lib/urandom
86 85
87 install -m 0644 ${WORKDIR}/functions ${D}${sysconfdir}/init.d 86 install -m 0644 ${S}/functions ${D}${sysconfdir}/init.d
88 install -m 0755 ${WORKDIR}/bootmisc.sh ${D}${sysconfdir}/init.d 87 install -m 0755 ${S}/bootmisc.sh ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/checkroot.sh ${D}${sysconfdir}/init.d 88 install -m 0755 ${S}/checkroot.sh ${D}${sysconfdir}/init.d
90 install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d 89 install -m 0755 ${S}/halt ${D}${sysconfdir}/init.d
91 install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d 90 install -m 0755 ${S}/hostname.sh ${D}${sysconfdir}/init.d
92 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d 91 install -m 0755 ${S}/mountall.sh ${D}${sysconfdir}/init.d
93 install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d 92 install -m 0755 ${S}/mountnfs.sh ${D}${sysconfdir}/init.d
94 install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d 93 install -m 0755 ${S}/reboot ${D}${sysconfdir}/init.d
95 install -m 0755 ${WORKDIR}/rmnologin.sh ${D}${sysconfdir}/init.d 94 install -m 0755 ${S}/rmnologin.sh ${D}${sysconfdir}/init.d
96 install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d 95 install -m 0755 ${S}/sendsigs ${D}${sysconfdir}/init.d
97 install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d 96 install -m 0755 ${S}/single ${D}${sysconfdir}/init.d
98 install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/init.d 97 install -m 0755 ${S}/umountnfs.sh ${D}${sysconfdir}/init.d
99 install -m 0755 ${WORKDIR}/urandom ${D}${sysconfdir}/init.d 98 install -m 0755 ${S}/urandom ${D}${sysconfdir}/init.d
100 sed -i ${D}${sysconfdir}/init.d/urandom -e 's,/var/,${localstatedir}/,g;s,/etc/,${sysconfdir}/,g' 99 sed -i ${D}${sysconfdir}/init.d/urandom -e 's,/var/,${localstatedir}/,g;s,/etc/,${sysconfdir}/,g'
101 install -m 0755 ${WORKDIR}/devpts.sh ${D}${sysconfdir}/init.d 100 install -m 0755 ${S}/devpts.sh ${D}${sysconfdir}/init.d
102 install -m 0755 ${WORKDIR}/devpts ${D}${sysconfdir}/default 101 install -m 0755 ${S}/devpts ${D}${sysconfdir}/default
103 install -m 0755 ${WORKDIR}/sysfs.sh ${D}${sysconfdir}/init.d 102 install -m 0755 ${S}/sysfs.sh ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/populate-volatile.sh ${D}${sysconfdir}/init.d 103 install -m 0755 ${S}/populate-volatile.sh ${D}${sysconfdir}/init.d
105 install -m 0755 ${WORKDIR}/read-only-rootfs-hook.sh ${D}${sysconfdir}/init.d 104 install -m 0755 ${S}/read-only-rootfs-hook.sh ${D}${sysconfdir}/init.d
106 install -m 0755 ${WORKDIR}/save-rtc.sh ${D}${sysconfdir}/init.d 105 install -m 0755 ${S}/save-rtc.sh ${D}${sysconfdir}/init.d
107 install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core 106 install -m 0644 ${S}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
108 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then 107 if ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'true', 'false', d)}; then
109 sed -i -e '\@^d root root 0755 /var/volatile/log none$@ a\l root root 0755 /var/log /var/volatile/log' \ 108 sed -i -e '\@^d root root 0755 /var/volatile/log none$@ a\l root root 0755 /var/log /var/volatile/log' \
110 ${D}${sysconfdir}/default/volatiles/00_core 109 ${D}${sysconfdir}/default/volatiles/00_core
111 fi 110 fi
112 if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then 111 if ! ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'true', 'false', d)}; then
113 sed -i -e "/\<tmp\>/d" ${D}${sysconfdir}/default/volatiles/00_core 112 sed -i -e "/\<tmp\>/d" ${D}${sysconfdir}/default/volatiles/00_core
114 fi 113 fi
115 install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d 114 install -m 0755 ${S}/dmesg.sh ${D}${sysconfdir}/init.d
116 install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/ 115 install -m 0644 ${S}/logrotate-dmesg.conf ${D}${sysconfdir}/
117 116
118 if [ "${TARGET_ARCH}" = "arm" ]; then 117 if [ "${TARGET_ARCH}" = "arm" ]; then
119 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d 118 install -m 0755 ${S}/alignment.sh ${D}${sysconfdir}/init.d
120 fi 119 fi
121 120
122 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then 121 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then
123 install -d ${D}/${base_sbindir} 122 install -d ${D}/${base_sbindir}
124 install -m 0755 ${WORKDIR}/sushell ${D}/${base_sbindir} 123 install -m 0755 ${S}/sushell ${D}/${base_sbindir}
125 fi 124 fi
126# 125#
127# Install device dependent scripts 126# Install device dependent scripts
128# 127#
129 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh 128 install -m 0755 ${S}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
130 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs 129 install -m 0755 ${S}/umountfs ${D}${sysconfdir}/init.d/umountfs
131# 130#
132# Create runlevel links 131# Create runlevel links
133# 132#
diff --git a/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch b/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch
deleted file mode 100644
index de279b55f9..0000000000
--- a/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch
+++ /dev/null
@@ -1,73 +0,0 @@
1From b757e6842f9631757f0d1a6b3833aabffa9ffeee Mon Sep 17 00:00:00 2001
2From: Alexey Gladkov <legion@kernel.org>
3Date: Thu, 29 Feb 2024 17:38:37 +0100
4Subject: [PATCH] Remove non-free Agafari fonts
5
6Based on legal analysis, we are removing non-free fonts for now. If we
7can change the license of these fonts, we will return them back.
8
9From: Stanislav Brabec <sbrabec@suse.com>
10Date: Wed, 28 Feb 2024 16:47:54 +0100
11Subject: kbd: Legal problems of Agafari fonts
12
13 The data/consolefonts/README.Ethiopic contains a notice:
14 Agafari:
15 Donated by the Ethiopian Science and Technology Commission
16 <ncic@padis.gn.apc.org> or <ncic@telecom.net.et> and may be redistributed
17 for non-commercial use under Unix environments only.
18
19 According to our legal review, it makes impossible to distribute these
20 fonts as part of any commercial products, and even makes it impossible to
21 distribute kbd sources as part of any commercial product services.
22
23 Additionally, it makes the whole kbd package incompatible with GPL, so the
24 COPYING file (created during build of the tarball) cannot declare GPL
25 version 2. It also violates section 6 of GPL (no further restrictions).
26
27 That is why several GNU/Linux distributions exclude Agafari from the
28 release. To be on a safe side, SUSE even decided to repack any source
29 tarballs before putting it to their servers.
30
31 This was probably reported to the former kbd maintainer about 20 years ago,
32 but nothing changed over years.
33
34 That is why I recommend removing Agafari fonts and removing the reference
35 to them from README.Ethiopic. Alternatively, you can ask the Ethiopian
36 Science and Technology Commission for re-licensing.
37
38Signed-off-by: Alexey Gladkov <legion@kernel.org>
39
40Upstream-Status: Backport [https://github.com/legionus/kbd/commit/b757e6842f9631757f0d1a6b3833aabffa9ffeee]
41
42[do_configure prepend added to remove binary files]
43
44Signed-off-by: Peter Marko <peter.marko@siemens.com>
45---
46 data/consolefonts/Agafari-12.psfu | Bin 7989 -> 0 bytes
47 data/consolefonts/Agafari-14.psfu | Bin 9013 -> 0 bytes
48 data/consolefonts/Agafari-16.psfu | Bin 10037 -> 0 bytes
49 data/consolefonts/README.Ethiopic | 5 -----
50 4 files changed, 5 deletions(-)
51 delete mode 100644 data/consolefonts/Agafari-12.psfu
52 delete mode 100644 data/consolefonts/Agafari-14.psfu
53 delete mode 100644 data/consolefonts/Agafari-16.psfu
54
55diff --git a/data/consolefonts/README.Ethiopic b/data/consolefonts/README.Ethiopic
56index 7502722..2810797 100644
57--- a/data/consolefonts/README.Ethiopic
58+++ b/data/consolefonts/README.Ethiopic
59@@ -14,11 +14,6 @@ Ethiopic fonts:
60 restrictions below:
61
62
63-Agafari:
64- Donated by the Ethiopian Science and Technology Commission
65- <ncic@padis.gn.apc.org> or <ncic@telecom.net.et> and may be redistributed
66- for non-commercial use under Unix environments only.
67-
68 Goha and GohaClassic:
69 Donated by Yitna Firdyiwek <ybf2u@virgina.edu> of GohaTibeb Associates
70 and may be redistributed without restriction under the GNU GPL 2.0.
71--
722.30.2
73
diff --git a/meta/recipes-core/kbd/kbd_2.6.4.bb b/meta/recipes-core/kbd/kbd_2.8.0.bb
index 2331b51e59..ababa09918 100644
--- a/meta/recipes-core/kbd/kbd_2.6.4.bb
+++ b/meta/recipes-core/kbd/kbd_2.8.0.bb
@@ -1,6 +1,6 @@
1SUMMARY = "Keytable files and keyboard utilities" 1SUMMARY = "Keytable files and keyboard utilities"
2HOMEPAGE = "http://www.kbd-project.org/" 2HOMEPAGE = "http://www.kbd-project.org/"
3DESCRIPTION = "The kbd project contains tools for managing Linux console (Linux console, virtual terminals, keyboard, etc.) – mainly, what they do is loading console fonts and keyboard maps." 3DESCRIPTION = "The kbd project contains tools for managing Linux console (Linux console, virtual terminals, keyboard, etc.) - mainly, what they do is loading console fonts and keyboard maps."
4 4
5# consolefonts and keymaps contain also some public domain and author notice licenses 5# consolefonts and keymaps contain also some public domain and author notice licenses
6LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later & GPL-3.0-or-later" 6LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later & GPL-3.0-or-later"
@@ -24,12 +24,12 @@ RPROVIDES:${PN} = "console-tools"
24RCONFLICTS:${PN} = "console-tools" 24RCONFLICTS:${PN} = "console-tools"
25 25
26SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \ 26SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
27 file://0001-Remove-non-free-Agafari-fonts.patch \
28 " 27 "
29 28
30SRC_URI[sha256sum] = "519f8d087aecca7e0a33cd084bef92c066eb19731666653dcc70c9d71aa40926" 29SRC_URI[sha256sum] = "01f5806da7d1d34f594b7b2a6ae1ab23215344cf1064e8edcd3a90fef9776a11"
31 30
32EXTRA_OECONF = "--disable-tests" 31# 'gzip -n' is set due to https://github.com/legionus/kbd/issues/124
32EXTRA_OECONF = "--disable-tests --enable-compress='gzip -n'"
33PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ 33PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
34 " 34 "
35 35
@@ -45,12 +45,6 @@ FILES:${PN}-unimaps = "${datadir}/unimaps"
45 45
46RRECOMMENDS:${PN}-keymaps = "${PN}-keymaps-pine" 46RRECOMMENDS:${PN}-keymaps = "${PN}-keymaps-pine"
47 47
48# remove this when upgrading to newer version which has integrated
49# https://github.com/legionus/kbd/commit/b757e6842f9631757f0d1a6b3833aabffa9ffeee
50do_configure:prepend() {
51 rm -rf ${S}/data/consolefonts/Agafari-1*
52}
53
54do_install:append () { 48do_install:append () {
55 if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)}" = "yes" ] \ 49 if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)}" = "yes" ] \
56 && [ -f ${D}${sysconfdir}/pam.d/vlock ]; then 50 && [ -f ${D}${sysconfdir}/pam.d/vlock ]; then
diff --git a/meta/recipes-core/libcgroup/libcgroup_3.1.0.bb b/meta/recipes-core/libcgroup/libcgroup_3.2.0.bb
index 4b4f19e36f..28562a5b37 100644
--- a/meta/recipes-core/libcgroup/libcgroup_3.1.0.bb
+++ b/meta/recipes-core/libcgroup/libcgroup_3.2.0.bb
@@ -12,11 +12,10 @@ inherit autotools pkgconfig github-releases
12DEPENDS = "bison-native flex-native" 12DEPENDS = "bison-native flex-native"
13DEPENDS:append:libc-musl = " fts" 13DEPENDS:append:libc-musl = " fts"
14 14
15SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ 15SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz"
16"
17UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/tags" 16UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/tags"
18 17
19SRC_URI[sha256sum] = "976ec4b1e03c0498308cfd28f1b256b40858f636abc8d1f9db24f0a7ea9e1258" 18SRC_URI[sha256sum] = "9a0fc2d6c377215c3e0d849f9189ecd91fd075f1da0a24b73f56c8892e86bdfe"
20 19
21PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}" 20PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
22PACKAGECONFIG[pam] = "--enable-pam-module-dir=${base_libdir}/security --enable-pam=yes,--enable-pam=no,libpam" 21PACKAGECONFIG[pam] = "--enable-pam-module-dir=${base_libdir}/security --enable-pam=yes,--enable-pam=no,libpam"
diff --git a/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch b/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
deleted file mode 100644
index 94aa3fed49..0000000000
--- a/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 7b2a0cdc281d94a5782c37ef87040c341447b4b4 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Fri, 30 Apr 2021 10:35:02 +0100
4Subject: [PATCH] libxcrypt: Update to 4.4.19 release and fix symbol version
5
6If you pass CFLAGS with a leading space, " " gets passed to popen and convinces
7gcc to try and open a file called " ". This results in a confusing error message
8like:
9
10x86_64-pokysdk-linux-gcc: error: : No such file or directory
11
12Avoid this by stripping empty elements out of CFLAGS.
13
14Upstream-Status: Submitted [https://github.com/besser82/libxcrypt/pull/126]
15Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
16
17---
18 build-aux/scripts/compute-symver-floor | 2 ++
19 1 file changed, 2 insertions(+)
20
21diff --git a/build-aux/scripts/compute-symver-floor b/build-aux/scripts/compute-symver-floor
22index 4ec82e1..8117342 100644
23--- a/build-aux/scripts/compute-symver-floor
24+++ b/build-aux/scripts/compute-symver-floor
25@@ -36,6 +36,8 @@ sub preprocessor_check {
26 die "C compiler not available\n" unless @CC;
27
28 @CFLAGS = sh_split($ENV{CFLAGS} // q{});
29+ # Remove empty elements, particularly leading ones which cause issues with popen below
30+ @CFLAGS = grep {$_} @CFLAGS;
31
32 # Remove empty elements, particularly leading ones which
33 # cause issues with popen below.
diff --git a/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.38.bb
index d5546ce9ba..bb4e2032dd 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.38.bb
@@ -1,5 +1,5 @@
1# 1#
2# This provides libcrypto.so.1 which contains obsolete APIs, needed for uninative in particular 2# This provides libcrypt.so.1 which contains obsolete APIs, needed for uninative in particular
3# 3#
4 4
5require libxcrypt.inc 5require libxcrypt.inc
@@ -16,3 +16,4 @@ do_install:append () {
16 rm -rf ${D}${libdir}/libcrypt.so 16 rm -rf ${D}${libdir}/libcrypt.so
17 rm -rf ${D}${datadir} 17 rm -rf ${D}${datadir}
18} 18}
19
diff --git a/meta/recipes-core/libxcrypt/libxcrypt.inc b/meta/recipes-core/libxcrypt/libxcrypt.inc
index ba93d91aef..77fec83234 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -9,16 +9,13 @@ LIC_FILES_CHKSUM = "file://LICENSING;md5=c0a30e2b1502c55a7f37e412cd6c6a4b \
9 9
10inherit autotools pkgconfig 10inherit autotools pkgconfig
11 11
12SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH};protocol=https" 12SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH};protocol=https \
13SRCREV = "f531a36aa916a22ef2ce7d270ba381e264250cbf" 13 "
14SRCREV = "55ea777e8d567e5e86ffac917c28815ac54cc341"
14SRCBRANCH ?= "master" 15SRCBRANCH ?= "master"
15 16
16SRC_URI += "file://fix_cflags_handling.patch"
17
18PROVIDES = "virtual/crypt" 17PROVIDES = "virtual/crypt"
19 18
20S = "${WORKDIR}/git"
21
22BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" 19BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
23TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error" 20TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error"
24CPPFLAGS:append:class-nativesdk = " -Wno-error" 21CPPFLAGS:append:class-nativesdk = " -Wno-error"
diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.4.36.bb b/meta/recipes-core/libxcrypt/libxcrypt_4.4.38.bb
index 79dba2f6dc..79dba2f6dc 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt_4.4.36.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt_4.4.38.bb
diff --git a/meta/recipes-core/libxml/libxml2/0001-Revert-cmake-Fix-installation-directories-in-libxml2.patch b/meta/recipes-core/libxml/libxml2/0001-Revert-cmake-Fix-installation-directories-in-libxml2.patch
new file mode 100644
index 0000000000..6ea5adafa2
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/0001-Revert-cmake-Fix-installation-directories-in-libxml2.patch
@@ -0,0 +1,81 @@
1From 55ed199fdb55a1a600616ba14ad0feedcf828d86 Mon Sep 17 00:00:00 2001
2From: Peter Marko <peter.marko@siemens.com>
3Date: Mon, 26 May 2025 21:11:14 +0200
4Subject: [PATCH] Revert "cmake: Fix installation directories in
5 libxml2-config.cmake"
6
7This reverts commit 75dde50b20215a2a3a445b62f36a67c8ed337cab.
8
9Upstream-Status: Inappropriate [upstream ticket https://gitlab.gnome.org/GNOME/libxml2/-/issues/898#note_2452864]
10Signed-off-by: Peter Marko <peter.marko@siemens.com>
11---
12 configure.ac | 11 -----------
13 libxml2-config.cmake.in | 11 +++++++----
14 meson.build | 3 ---
15 3 files changed, 7 insertions(+), 18 deletions(-)
16
17diff --git a/configure.ac b/configure.ac
18index 40e75151..d21ebfe5 100644
19--- a/configure.ac
20+++ b/configure.ac
21@@ -1061,17 +1061,6 @@ AC_SUBST(XML_PRIVATE_LIBS)
22 AC_SUBST(XML_PRIVATE_CFLAGS)
23 AC_SUBST(XML_INCLUDEDIR)
24
25-# for libxml2-config.cmake.in
26-AX_RECURSIVE_EVAL(["$bindir"], [INSTALL_BINDIR])
27-AX_RECURSIVE_EVAL(["$includedir"], [INSTALL_INCLUDEDIR])
28-AX_RECURSIVE_EVAL(["$libdir"], [INSTALL_LIBDIR])
29-AC_SUBST(INSTALL_BINDIR)
30-AC_SUBST(INSTALL_INCLUDEDIR)
31-AC_SUBST(INSTALL_LIBDIR)
32-AM_SUBST_NOTMAKE(INSTALL_BINDIR)
33-AM_SUBST_NOTMAKE(INSTALL_INCLUDEDIR)
34-AM_SUBST_NOTMAKE(INSTALL_LIBDIR)
35-
36 AX_RECURSIVE_EVAL(["$sysconfdir"], [XML_SYSCONFDIR])
37 AC_DEFINE_UNQUOTED([XML_SYSCONFDIR], ["$XML_SYSCONFDIR"],
38 [System configuration directory (/etc)])
39diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
40index 4945dda4..31036805 100644
41--- a/libxml2-config.cmake.in
42+++ b/libxml2-config.cmake.in
43@@ -24,17 +24,20 @@
44 # LibXml2::LibXml2 - the LibXml2 library
45 # LibXml2::xmllint - the xmllint command-line executable
46
47+get_filename_component(_libxml2_rootdir ${CMAKE_CURRENT_LIST_DIR}/../../../ ABSOLUTE)
48+
49 set(LIBXML2_VERSION_MAJOR @LIBXML_MAJOR_VERSION@)
50 set(LIBXML2_VERSION_MINOR @LIBXML_MINOR_VERSION@)
51 set(LIBXML2_VERSION_MICRO @LIBXML_MICRO_VERSION@)
52 set(LIBXML2_VERSION_STRING "@VERSION@")
53 set(LIBXML2_DEFINITIONS "@XML_CFLAGS@")
54-set(LIBXML2_INCLUDE_DIR @INSTALL_INCLUDEDIR@/libxml2)
55-set(LIBXML2_LIBRARY_DIR @INSTALL_LIBDIR@)
56+set(LIBXML2_INSTALL_PREFIX ${_libxml2_rootdir})
57+set(LIBXML2_INCLUDE_DIR ${_libxml2_rootdir}/include/libxml2)
58+set(LIBXML2_LIBRARY_DIR ${_libxml2_rootdir}/lib)
59
60 find_library(LIBXML2_LIBRARY NAMES xml2 HINTS ${LIBXML2_LIBRARY_DIR} NO_DEFAULT_PATH)
61-find_program(LIBXML2_XMLCATALOG_EXECUTABLE NAMES xmlcatalog HINTS @INSTALL_BINDIR@ NO_DEFAULT_PATH)
62-find_program(LIBXML2_XMLLINT_EXECUTABLE NAMES xmllint HINTS @INSTALL_BINDIR@ NO_DEFAULT_PATH)
63+find_program(LIBXML2_XMLCATALOG_EXECUTABLE NAMES xmlcatalog HINTS ${_libxml2_rootdir}/bin NO_DEFAULT_PATH)
64+find_program(LIBXML2_XMLLINT_EXECUTABLE NAMES xmllint HINTS ${_libxml2_rootdir}/bin NO_DEFAULT_PATH)
65
66 set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
67 set(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR})
68diff --git a/meson.build b/meson.build
69index 4c59211d..3e5f25d3 100644
70--- a/meson.build
71+++ b/meson.build
72@@ -599,9 +599,6 @@ config_cmake = configuration_data()
73 config_cmake.set('LIBXML_MAJOR_VERSION', v_maj)
74 config_cmake.set('LIBXML_MINOR_VERSION', v_min)
75 config_cmake.set('LIBXML_MICRO_VERSION', v_mic)
76-config_cmake.set('INSTALL_BINDIR', dir_bin)
77-config_cmake.set('INSTALL_INCLUDEDIR', dir_include)
78-config_cmake.set('INSTALL_LIBDIR', dir_lib)
79 config_cmake.set('VERSION', meson.project_version())
80 config_cmake.set('WITH_HTTP', want_http.to_int().to_string())
81 config_cmake.set('WITH_ICONV', want_iconv.to_int().to_string())
diff --git a/meta/recipes-core/libxml/libxml2/CVE-2025-6021.patch b/meta/recipes-core/libxml/libxml2/CVE-2025-6021.patch
new file mode 100644
index 0000000000..157486848b
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/CVE-2025-6021.patch
@@ -0,0 +1,59 @@
1From 33d7969baf541326a35e2fbe31943c46af8c71db Mon Sep 17 00:00:00 2001
2From: Nick Wellnhofer <wellnhofer@aevum.de>
3Date: Tue, 27 May 2025 12:53:17 +0200
4Subject: [PATCH] tree: Fix integer overflow in xmlBuildQName
5
6This issue affects memory safety and might receive a CVE ID later.
7
8Fixes #926.
9
10Signed-off-by: Nick Wellnhofer <wellnhofer@aevum.de>
11
12Add '#include <stdint.h>' to assure the definition of SIZE_MAX
13CVE: CVE-2025-6021
14Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/acbbeef9f5dcdcc901c5f3fa14d583ef8cfd22f0]
15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16---
17 tree.c | 9 ++++++---
18 1 file changed, 6 insertions(+), 3 deletions(-)
19
20diff --git a/tree.c b/tree.c
21index 7454b07..22ec11c 100644
22--- a/tree.c
23+++ b/tree.c
24@@ -23,6 +23,7 @@
25 #include <limits.h>
26 #include <ctype.h>
27 #include <stdlib.h>
28+#include <stdint.h>
29
30 #ifdef LIBXML_ZLIB_ENABLED
31 #include <zlib.h>
32@@ -168,10 +169,10 @@ xmlGetParameterEntityFromDtd(const xmlDtd *dtd, const xmlChar *name) {
33 xmlChar *
34 xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix,
35 xmlChar *memory, int len) {
36- int lenn, lenp;
37+ size_t lenn, lenp;
38 xmlChar *ret;
39
40- if (ncname == NULL) return(NULL);
41+ if ((ncname == NULL) || (len < 0)) return(NULL);
42 if (prefix == NULL) return((xmlChar *) ncname);
43
44 #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
45@@ -182,8 +183,10 @@ xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix,
46
47 lenn = strlen((char *) ncname);
48 lenp = strlen((char *) prefix);
49+ if (lenn >= SIZE_MAX - lenp - 1)
50+ return(NULL);
51
52- if ((memory == NULL) || (len < lenn + lenp + 2)) {
53+ if ((memory == NULL) || ((size_t) len < lenn + lenp + 2)) {
54 ret = xmlMalloc(lenn + lenp + 2);
55 if (ret == NULL)
56 return(NULL);
57--
582.34.1
59
diff --git a/meta/recipes-core/libxml/libxml2/install-tests.patch b/meta/recipes-core/libxml/libxml2/install-tests.patch
index 478eeea81b..789aeca119 100644
--- a/meta/recipes-core/libxml/libxml2/install-tests.patch
+++ b/meta/recipes-core/libxml/libxml2/install-tests.patch
@@ -1,4 +1,4 @@
1From 0779511838a8cbd1e0f431c22f28f286a2a37b1b Mon Sep 17 00:00:00 2001 1From 8c1054eacb430472068f21e4840749c384e8e866 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com> 2From: Ross Burton <ross.burton@arm.com>
3Date: Mon, 5 Dec 2022 17:02:32 +0000 3Date: Mon, 5 Dec 2022 17:02:32 +0000
4Subject: [PATCH] add yocto-specific install-ptest target 4Subject: [PATCH] add yocto-specific install-ptest target
@@ -12,10 +12,10 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
12 1 file changed, 10 insertions(+) 12 1 file changed, 10 insertions(+)
13 13
14diff --git a/Makefile.am b/Makefile.am 14diff --git a/Makefile.am b/Makefile.am
15index 0a49d37..1097c63 100644 15index 4cb9a5c..8adcd7e 100644
16--- a/Makefile.am 16--- a/Makefile.am
17+++ b/Makefile.am 17+++ b/Makefile.am
18@@ -27,6 +27,16 @@ check_PROGRAMS = \ 18@@ -26,6 +26,16 @@ check_PROGRAMS = \
19 testparser \ 19 testparser \
20 testrecurse 20 testrecurse
21 21
@@ -29,6 +29,6 @@ index 0a49d37..1097c63 100644
29+ cp -r $(srcdir)/result $(DESTDIR)$(ptestdir) 29+ cp -r $(srcdir)/result $(DESTDIR)$(ptestdir)
30+ cp -r $(srcdir)/python/tests $(DESTDIR)$(ptestdir)/python 30+ cp -r $(srcdir)/python/tests $(DESTDIR)$(ptestdir)/python
31+ 31+
32 bin_PROGRAMS = xmllint xmlcatalog 32 bin_PROGRAMS = xmllint
33 33
34 bin_SCRIPTS = xml2-config 34 bin_SCRIPTS = xml2-config
diff --git a/meta/recipes-core/libxml/libxml2/run-ptest b/meta/recipes-core/libxml/libxml2/run-ptest
index f252a78f17..cbbdd5592f 100755
--- a/meta/recipes-core/libxml/libxml2/run-ptest
+++ b/meta/recipes-core/libxml/libxml2/run-ptest
@@ -5,7 +5,7 @@ set -e
5export LC_ALL=en_US.UTF-8 5export LC_ALL=en_US.UTF-8
6 6
7# testModule isn't that useful and hard-codes buildtree, so we don't run that 7# testModule isn't that useful and hard-codes buildtree, so we don't run that
8TESTS="runtest runsuite testrecurse testchar testdict testThreads runxmlconf testapi" 8TESTS="runtest runsuite testrecurse testchar testdict runxmlconf testapi testlimits testparser"
9 9
10for T in $TESTS; do 10for T in $TESTS; do
11 echo Running $T 11 echo Running $T
diff --git a/meta/recipes-core/libxml/libxml2_2.12.6.bb b/meta/recipes-core/libxml/libxml2_2.14.3.bb
index 14fcff7fa4..4baab59186 100644
--- a/meta/recipes-core/libxml/libxml2_2.12.6.bb
+++ b/meta/recipes-core/libxml/libxml2_2.14.3.bb
@@ -4,10 +4,9 @@ HOMEPAGE = "https://gitlab.gnome.org/GNOME/libxml2"
4BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2" 4BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
5SECTION = "libs" 5SECTION = "libs"
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://Copyright;md5=fec7ecfe714722b2bb0aaff7d200c701 \ 7LIC_FILES_CHKSUM = "file://Copyright;md5=5873615e8a9ecbf5c8857c4312ee05d6 \
8 file://dict.c;beginline=6;endline=15;md5=2b4b7b827d2d8b080372433c4c9c85b6 \ 8 file://dict.c;beginline=6;endline=15;md5=2b4b7b827d2d8b080372433c4c9c85b6 \
9 file://list.c;beginline=4;endline=13;md5=b9c25b021ccaf287e50060602d20f3a7 \ 9 file://list.c;beginline=4;endline=13;md5=b9c25b021ccaf287e50060602d20f3a7 \
10 file://trio.c;beginline=5;endline=14;md5=cd4f61e27f88c1d43df112966b1cd28f \
11 " 10 "
12 11
13DEPENDS = "zlib virtual/libiconv" 12DEPENDS = "zlib virtual/libiconv"
@@ -18,9 +17,11 @@ inherit gnomebase
18SRC_URI += "http://www.w3.org/XML/Test/xmlts20130923.tar;subdir=${BP};name=testtar \ 17SRC_URI += "http://www.w3.org/XML/Test/xmlts20130923.tar;subdir=${BP};name=testtar \
19 file://run-ptest \ 18 file://run-ptest \
20 file://install-tests.patch \ 19 file://install-tests.patch \
20 file://0001-Revert-cmake-Fix-installation-directories-in-libxml2.patch \
21 file://CVE-2025-6021.patch \
21 " 22 "
22 23
23SRC_URI[archive.sha256sum] = "889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb" 24SRC_URI[archive.sha256sum] = "6de55cacc8c2bc758f2ef6f93c313cb30e4dd5d84ac5d3c7ccbd9344d8cc6833"
24SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273" 25SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273"
25 26
26# Disputed as a security issue, but fixed in d39f780 27# Disputed as a security issue, but fixed in d39f780
@@ -28,11 +29,8 @@ CVE_STATUS[CVE-2023-45322] = "disputed: issue requires memory allocation to fail
28 29
29BINCONFIG = "${bindir}/xml2-config" 30BINCONFIG = "${bindir}/xml2-config"
30 31
31PACKAGECONFIG ??= "python \ 32PACKAGECONFIG ??= "python"
32 ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
33"
34PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3" 33PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3"
35PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
36 34
37inherit autotools pkgconfig binconfig-disabled ptest 35inherit autotools pkgconfig binconfig-disabled ptest
38 36
@@ -52,7 +50,7 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-ebcdic-us \
52 " 50 "
53 51
54# WARNING: zlib is required for RPM use 52# WARNING: zlib is required for RPM use
55EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --with-c14n --without-lzma --with-fexceptions" 53EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --with-c14n --without-lzma"
56EXTRA_OECONF:class-native = "--without-legacy --with-c14n --without-lzma --with-zlib" 54EXTRA_OECONF:class-native = "--without-legacy --with-c14n --without-lzma --with-zlib"
57EXTRA_OECONF:class-nativesdk = "--without-legacy --with-c14n --without-lzma --with-zlib" 55EXTRA_OECONF:class-nativesdk = "--without-legacy --with-c14n --without-lzma --with-zlib"
58EXTRA_OECONF:linuxstdbase = "--with-debug --with-legacy --with-c14n --without-lzma --with-zlib" 56EXTRA_OECONF:linuxstdbase = "--with-debug --with-legacy --with-c14n --without-lzma --with-zlib"
diff --git a/meta/recipes-core/meta/build-sysroots.bb b/meta/recipes-core/meta/build-sysroots.bb
index db05c111ab..b0b8fb3c79 100644
--- a/meta/recipes-core/meta/build-sysroots.bb
+++ b/meta/recipes-core/meta/build-sysroots.bb
@@ -7,7 +7,7 @@ STANDALONE_SYSROOT_NATIVE = "${STAGING_DIR}/${BUILD_ARCH}"
7PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
8EXCLUDE_FROM_WORLD = "1" 8EXCLUDE_FROM_WORLD = "1"
9 9
10inherit nopackages 10inherit nopackages nospdx
11deltask fetch 11deltask fetch
12deltask unpack 12deltask unpack
13deltask patch 13deltask patch
@@ -17,9 +17,6 @@ deltask configure
17deltask compile 17deltask compile
18deltask install 18deltask install
19deltask populate_sysroot 19deltask populate_sysroot
20deltask create_spdx
21deltask collect_spdx_deps
22deltask create_runtime_spdx
23deltask recipe_qa 20deltask recipe_qa
24 21
25do_build_warn () { 22do_build_warn () {
diff --git a/meta/recipes-core/meta/buildtools-docs-tarball.bb b/meta/recipes-core/meta/buildtools-docs-tarball.bb
index 72648e3b1c..98d47f7b71 100644
--- a/meta/recipes-core/meta/buildtools-docs-tarball.bb
+++ b/meta/recipes-core/meta/buildtools-docs-tarball.bb
@@ -7,12 +7,16 @@ LICENSE = "MIT"
7# Add nativesdk equivalent of build-essentials 7# Add nativesdk equivalent of build-essentials
8TOOLCHAIN_HOST_TASK += "\ 8TOOLCHAIN_HOST_TASK += "\
9 nativesdk-python3-sphinx \ 9 nativesdk-python3-sphinx \
10 nativesdk-python3-sphinx-argparse \
11 nativesdk-python3-sphinx-copybutton \
10 nativesdk-python3-sphinx-rtd-theme \ 12 nativesdk-python3-sphinx-rtd-theme \
11 nativesdk-python3-pyyaml \ 13 nativesdk-python3-pyyaml \
14 nativesdk-rsvg \
12 " 15 "
13 16
14TOOLCHAIN_OUTPUTNAME = "${SDK_ARCH}-buildtools-docs-nativesdk-standalone-${DISTRO_VERSION}" 17TOOLCHAIN_OUTPUTNAME = "${SDK_ARCH}-buildtools-docs-nativesdk-standalone-${DISTRO_VERSION}"
15 18
16SDK_TITLE = "Docs Build tools tarball" 19SDK_TITLE = "Docs Build tools tarball"
17 20
18TESTSDK_CASES = "buildtools-docs-cases" 21# Directory that contains testcases
22TESTSDK_CASE_DIRS = "buildtools-docs" \ No newline at end of file
diff --git a/meta/recipes-core/meta/buildtools-tarball.bb b/meta/recipes-core/meta/buildtools-tarball.bb
index dc075763e6..02117ab84d 100644
--- a/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/meta/recipes-core/meta/buildtools-tarball.bb
@@ -11,6 +11,7 @@ TOOLCHAIN_HOST_TASK ?= "\
11 nativesdk-python3-git \ 11 nativesdk-python3-git \
12 nativesdk-python3-jinja2 \ 12 nativesdk-python3-jinja2 \
13 nativesdk-python3-testtools \ 13 nativesdk-python3-testtools \
14 nativesdk-python3-pip \
14 nativesdk-python3-setuptools \ 15 nativesdk-python3-setuptools \
15 nativesdk-python3-subunit \ 16 nativesdk-python3-subunit \
16 nativesdk-python3-pyyaml \ 17 nativesdk-python3-pyyaml \
@@ -72,12 +73,6 @@ create_sdk_files:append () {
72 touch $script 73 touch $script
73 echo 'export PATH="${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH"' >> $script 74 echo 'export PATH="${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH"' >> $script
74 echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script 75 echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
75 if [ -e "${SDK_OUTPUT}${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt" ]; then
76 echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
77 echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
78 echo 'export REQUESTS_CA_BUNDLE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
79 echo 'export CURL_CA_BUNDLE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
80 fi
81 echo 'HOST_PKG_PATH=$(command -p pkg-config --variable=pc_path pkg-config 2>/dev/null)' >>$script 76 echo 'HOST_PKG_PATH=$(command -p pkg-config --variable=pc_path pkg-config 2>/dev/null)' >>$script
82 echo 'export PKG_CONFIG_LIBDIR=${SDKPATHNATIVE}/${libdir}/pkgconfig:${SDKPATHNATIVE}/${datadir}/pkgconfig:${HOST_PKG_PATH:-/usr/lib/pkgconfig:/usr/share/pkgconfig}' >>$script 77 echo 'export PKG_CONFIG_LIBDIR=${SDKPATHNATIVE}/${libdir}/pkgconfig:${SDKPATHNATIVE}/${datadir}/pkgconfig:${HOST_PKG_PATH:-/usr/lib/pkgconfig:/usr/share/pkgconfig}' >>$script
83 echo 'unset HOST_PKG_PATH' 78 echo 'unset HOST_PKG_PATH'
@@ -85,14 +80,35 @@ create_sdk_files:append () {
85 toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} 80 toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS}
86 81
87 cat >> $script <<EOF 82 cat >> $script <<EOF
83# Detect host ca file/path, export for envfile to use
84# /etc/ssl/certs/ca-certificates.crt Debian systems
85# /etc/pki/tls/certs/ca-bundle.crt Fedora systems
86# /etc/ssl/ca-bundle.pem Suse systems
87export CAFILE
88export CAPATH
89for a in /etc/ssl/certs/ca-certificates.crt \
90 /etc/pki/tls/certs/ca-bundle.crt \
91 /etc/ssl/ca-bundle.pem ; do
92 if test -f "\$a"; then
93 CAFILE="\$a"
94 break
95 fi
96done
97
98a="/etc/ssl/certs"
99if test -d "\$a" && ls "\$a"/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].0 >/dev/null 2>/dev/null; then
100 CAPATH="\$a"
101fi
102
88if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then 103if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
89 for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do 104 for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
90 . \$envfile 105 . \$envfile
91 done 106 done
92fi 107fi
108
93# We have to unset this else it can confuse oe-selftest and other tools 109# We have to unset this else it can confuse oe-selftest and other tools
94# which may also use the overlapping namespace. 110# which may also use the overlapping namespace.
95unset OECORE_NATIVE_SYSROOT 111unset OECORE_NATIVE_SYSROOT CAFILE CAPATH
96EOF 112EOF
97 113
98 if [ "${SDKMACHINE}" = "i686" ]; then 114 if [ "${SDKMACHINE}" = "i686" ]; then
@@ -108,19 +124,7 @@ TOOLCHAIN_NEED_CONFIGSITE_CACHE = ""
108# The recipe doesn't need any default deps 124# The recipe doesn't need any default deps
109INHIBIT_DEFAULT_DEPS = "1" 125INHIBIT_DEFAULT_DEPS = "1"
110 126
111# Directory in testsdk that contains testcases 127inherit testsdk
112TESTSDK_CASES = "buildtools-cases"
113 128
114python do_testsdk() { 129# Directory that contains testcases
115 import oeqa.sdk.testsdk 130TESTSDK_CASE_DIRS = "buildtools" \ No newline at end of file
116 testsdk = oeqa.sdk.testsdk.TestSDK()
117
118 cases_path = os.path.join(os.path.abspath(os.path.dirname(oeqa.sdk.testsdk.__file__)), d.getVar("TESTSDK_CASES"))
119 testsdk.context_executor_class.default_cases = cases_path
120
121 testsdk.run(d)
122}
123addtask testsdk
124do_testsdk[nostamp] = "1"
125do_testsdk[network] = "1"
126do_testsdk[depends] += "xz-native:do_populate_sysroot"
diff --git a/meta/recipes-core/meta/cve-update-db-native.bb b/meta/recipes-core/meta/cve-update-db-native.bb
new file mode 100644
index 0000000000..86cd1a1a21
--- /dev/null
+++ b/meta/recipes-core/meta/cve-update-db-native.bb
@@ -0,0 +1,404 @@
1SUMMARY = "Updates the NVD CVE database"
2LICENSE = "MIT"
3
4INHIBIT_DEFAULT_DEPS = "1"
5
6inherit native
7
8deltask do_patch
9deltask do_configure
10deltask do_compile
11deltask do_install
12deltask do_populate_sysroot
13
14NVDCVE_URL ?= "https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-"
15FKIE_URL ?= "https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest/download/CVE-"
16
17# CVE database update interval, in seconds. By default: once a day (24*60*60).
18# Use 0 to force the update
19# Use a negative value to skip the update
20CVE_DB_UPDATE_INTERVAL ?= "86400"
21
22# Timeout for blocking socket operations, such as the connection attempt.
23CVE_SOCKET_TIMEOUT ?= "60"
24
25CVE_CHECK_DB_DLDIR_FILE ?= "${DL_DIR}/CVE_CHECK2/${CVE_CHECK_DB_FILENAME}"
26CVE_CHECK_DB_DLDIR_LOCK ?= "${CVE_CHECK_DB_DLDIR_FILE}.lock"
27
28CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DLDIR_FILE}.tmp"
29
30python () {
31 if not bb.data.inherits_class("cve-check", d):
32 raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
33}
34
35python do_fetch() {
36 """
37 Update NVD database with json data feed
38 """
39 import bb.utils
40 import bb.progress
41 import shutil
42
43 bb.utils.export_proxies(d)
44
45 db_file = d.getVar("CVE_CHECK_DB_DLDIR_FILE")
46 db_dir = os.path.dirname(db_file)
47 db_tmp_file = d.getVar("CVE_DB_TEMP_FILE")
48
49 cleanup_db_download(db_file, db_tmp_file)
50
51 # The NVD database changes once a day, so no need to update more frequently
52 # Allow the user to force-update
53 try:
54 import time
55 update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL"))
56 if update_interval < 0:
57 bb.note("CVE database update skipped")
58 return
59 if time.time() - os.path.getmtime(db_file) < update_interval:
60 bb.debug(2, "Recently updated, skipping")
61 return
62
63 except OSError:
64 pass
65
66 bb.utils.mkdirhier(db_dir)
67 if os.path.exists(db_file):
68 shutil.copy2(db_file, db_tmp_file)
69
70 if update_db_file(db_tmp_file, d) == True:
71 # Update downloaded correctly, can swap files
72 shutil.move(db_tmp_file, db_file)
73 else:
74 # Update failed, do not modify the database
75 bb.note("CVE database update failed")
76 os.remove(db_tmp_file)
77}
78
79do_fetch[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK}"
80do_fetch[file-checksums] = ""
81do_fetch[vardeps] = ""
82
83python do_unpack() {
84 import shutil
85 shutil.copyfile(d.getVar("CVE_CHECK_DB_DLDIR_FILE"), d.getVar("CVE_CHECK_DB_FILE"))
86}
87do_unpack[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK} ${CVE_CHECK_DB_FILE_LOCK}"
88
89def cleanup_db_download(db_file, db_tmp_file):
90 """
91 Cleanup the download space from possible failed downloads
92 """
93
94 # Clean up the updates done on the main file
95 # Remove it only if a journal file exists - it means a complete re-download
96 if os.path.exists("{0}-journal".format(db_file)):
97 # If a journal is present the last update might have been interrupted. In that case,
98 # just wipe any leftovers and force the DB to be recreated.
99 os.remove("{0}-journal".format(db_file))
100
101 if os.path.exists(db_file):
102 os.remove(db_file)
103
104 # Clean-up the temporary file downloads, we can remove both journal
105 # and the temporary database
106 if os.path.exists("{0}-journal".format(db_tmp_file)):
107 # If a journal is present the last update might have been interrupted. In that case,
108 # just wipe any leftovers and force the DB to be recreated.
109 os.remove("{0}-journal".format(db_tmp_file))
110
111 if os.path.exists(db_tmp_file):
112 os.remove(db_tmp_file)
113
114def db_file_names(d, year, is_nvd):
115 if is_nvd:
116 year_url = d.getVar('NVDCVE_URL') + str(year)
117 meta_url = year_url + ".meta"
118 json_url = year_url + ".json.gz"
119 return json_url, meta_url
120 year_url = d.getVar('FKIE_URL') + str(year)
121 meta_url = year_url + ".meta"
122 json_url = year_url + ".json.xz"
123 return json_url, meta_url
124
125def host_db_name(d, is_nvd):
126 if is_nvd:
127 return "nvd.nist.gov"
128 return "github.com"
129
130def db_decompress(d, data, is_nvd):
131 import gzip, lzma
132
133 if is_nvd:
134 return gzip.decompress(data).decode('utf-8')
135 # otherwise
136 return lzma.decompress(data)
137
138def update_db_file(db_tmp_file, d):
139 """
140 Update the given database file
141 """
142 import bb.utils, bb.progress
143 from datetime import date
144 import urllib, gzip, sqlite3
145
146 YEAR_START = 2002
147 cve_socket_timeout = int(d.getVar("CVE_SOCKET_TIMEOUT"))
148 is_nvd = d.getVar("NVD_DB_VERSION") == "NVD1"
149
150 # Connect to database
151 conn = sqlite3.connect(db_tmp_file)
152 initialize_db(conn)
153
154 with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
155 total_years = date.today().year + 1 - YEAR_START
156 for i, year in enumerate(range(YEAR_START, date.today().year + 1)):
157 bb.debug(2, "Updating %d" % year)
158 ph.update((float(i + 1) / total_years) * 100)
159 json_url, meta_url = db_file_names(d, year, is_nvd)
160
161 # Retrieve meta last modified date
162 try:
163 response = urllib.request.urlopen(meta_url, timeout=cve_socket_timeout)
164 except urllib.error.URLError as e:
165 cve_f.write('Warning: CVE db update error, Unable to fetch CVE data.\n\n')
166 bb.warn("Failed to fetch CVE data (%s)" % e)
167 import socket
168 result = socket.getaddrinfo(host_db_name(d, is_nvd), 443, proto=socket.IPPROTO_TCP)
169 bb.warn("Host IPs are %s" % (", ".join(t[4][0] for t in result)))
170 return False
171
172 if response:
173 for l in response.read().decode("utf-8").splitlines():
174 key, value = l.split(":", 1)
175 if key == "lastModifiedDate":
176 last_modified = value
177 break
178 else:
179 bb.warn("Cannot parse CVE metadata, update failed")
180 return False
181
182 # Compare with current db last modified date
183 cursor = conn.execute("select DATE from META where YEAR = ?", (year,))
184 meta = cursor.fetchone()
185 cursor.close()
186
187 if not meta or meta[0] != last_modified:
188 bb.debug(2, "Updating entries")
189 # Clear products table entries corresponding to current year
190 conn.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,)).close()
191
192 # Update db with current year json file
193 try:
194 response = urllib.request.urlopen(json_url, timeout=cve_socket_timeout)
195 if response:
196 update_db(d, conn, db_decompress(d, response.read(), is_nvd))
197 conn.execute("insert or replace into META values (?, ?)", [year, last_modified]).close()
198 except urllib.error.URLError as e:
199 cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n')
200 bb.warn("Cannot parse CVE data (%s), update failed" % e.reason)
201 return False
202 else:
203 bb.debug(2, "Already up to date (last modified %s)" % last_modified)
204 # Update success, set the date to cve_check file.
205 if year == date.today().year:
206 cve_f.write('CVE database update : %s\n\n' % date.today())
207
208 conn.commit()
209 conn.close()
210 return True
211
212def initialize_db(conn):
213 with conn:
214 c = conn.cursor()
215
216 c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
217
218 c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
219 SCOREV2 TEXT, SCOREV3 TEXT, SCOREV4 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)")
220
221 c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
222 VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
223 VERSION_END TEXT, OPERATOR_END TEXT)")
224 c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
225
226 c.close()
227
228def parse_node_and_insert(conn, node, cveId, is_nvd):
229 # Parse children node if needed
230 for child in node.get('children', ()):
231 parse_node_and_insert(conn, child, cveId, is_nvd)
232
233 def cpe_generator(is_nvd):
234 match_string = "cpeMatch"
235 cpe_string = 'criteria'
236 if is_nvd:
237 match_string = "cpe_match"
238 cpe_string = 'cpe23Uri'
239
240 for cpe in node.get(match_string, ()):
241 if not cpe['vulnerable']:
242 return
243 cpe23 = cpe.get(cpe_string)
244 if not cpe23:
245 return
246 cpe23 = cpe23.split(':')
247 if len(cpe23) < 6:
248 return
249 vendor = cpe23[3]
250 product = cpe23[4]
251 version = cpe23[5]
252
253 if cpe23[6] == '*' or cpe23[6] == '-':
254 version_suffix = ""
255 else:
256 version_suffix = "_" + cpe23[6]
257
258 if version != '*' and version != '-':
259 # Version is defined, this is a '=' match
260 yield [cveId, vendor, product, version + version_suffix, '=', '', '']
261 elif version == '-':
262 # no version information is available
263 yield [cveId, vendor, product, version, '', '', '']
264 else:
265 # Parse start version, end version and operators
266 op_start = ''
267 op_end = ''
268 v_start = ''
269 v_end = ''
270
271 if 'versionStartIncluding' in cpe:
272 op_start = '>='
273 v_start = cpe['versionStartIncluding']
274
275 if 'versionStartExcluding' in cpe:
276 op_start = '>'
277 v_start = cpe['versionStartExcluding']
278
279 if 'versionEndIncluding' in cpe:
280 op_end = '<='
281 v_end = cpe['versionEndIncluding']
282
283 if 'versionEndExcluding' in cpe:
284 op_end = '<'
285 v_end = cpe['versionEndExcluding']
286
287 if op_start or op_end or v_start or v_end:
288 yield [cveId, vendor, product, v_start, op_start, v_end, op_end]
289 else:
290 # This is no version information, expressed differently.
291 # Save processing by representing as -.
292 yield [cveId, vendor, product, '-', '', '', '']
293
294 conn.executemany("insert into PRODUCTS values (?, ?, ?, ?, ?, ?, ?)", cpe_generator(is_nvd)).close()
295
296def update_db_nvdjson(conn, jsondata):
297 import json
298 root = json.loads(jsondata)
299
300 for elt in root['CVE_Items']:
301 if not elt['impact']:
302 continue
303
304 accessVector = None
305 vectorString = None
306 cvssv2 = 0.0
307 cvssv3 = 0.0
308 cvssv4 = 0.0
309 cveId = elt['cve']['CVE_data_meta']['ID']
310 cveDesc = elt['cve']['description']['description_data'][0]['value']
311 date = elt['lastModifiedDate']
312 try:
313 accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector']
314 vectorString = elt['impact']['baseMetricV2']['cvssV2']['vectorString']
315 cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore']
316 except KeyError:
317 cvssv2 = 0.0
318 try:
319 accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector']
320 vectorString = vectorString or elt['impact']['baseMetricV3']['cvssV3']['vectorString']
321 cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
322 except KeyError:
323 accessVector = accessVector or "UNKNOWN"
324 cvssv3 = 0.0
325
326 conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)",
327 [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close()
328
329 configurations = elt['configurations']['nodes']
330 for config in configurations:
331 parse_node_and_insert(conn, config, cveId, True)
332
333def update_db_fkie(conn, jsondata):
334 import json
335 root = json.loads(jsondata)
336
337 for elt in root['cve_items']:
338 if not 'vulnStatus' in elt or elt['vulnStatus'] == 'Rejected':
339 continue
340
341 if not 'configurations' in elt:
342 continue
343
344 accessVector = None
345 vectorString = None
346 cvssv2 = 0.0
347 cvssv3 = 0.0
348 cvssv4 = 0.0
349 cveId = elt['id']
350 cveDesc = elt['descriptions'][0]['value']
351 date = elt['lastModified']
352 try:
353 for m in elt['metrics']['cvssMetricV2']:
354 if m['type'] == 'Primary':
355 accessVector = m['cvssData']['accessVector']
356 vectorString = m['cvssData']['vectorString']
357 cvssv2 = m['cvssData']['baseScore']
358 except KeyError:
359 cvssv2 = 0.0
360 try:
361 for m in elt['metrics']['cvssMetricV30']:
362 if m['type'] == 'Primary':
363 accessVector = m['cvssData']['accessVector']
364 vectorString = m['cvssData']['vectorString']
365 cvssv3 = m['cvssData']['baseScore']
366 except KeyError:
367 accessVector = accessVector or "UNKNOWN"
368 cvssv3 = 0.0
369 try:
370 for m in elt['metrics']['cvssMetricV31']:
371 if m['type'] == 'Primary':
372 accessVector = m['cvssData']['accessVector']
373 vectorString = m['cvssData']['vectorString']
374 cvssv3 = m['cvssData']['baseScore']
375 except KeyError:
376 accessVector = accessVector or "UNKNOWN"
377 cvssv3 = 0.0
378 try:
379 for m in elt['metrics']['cvssMetricV40']:
380 if m['type'] == 'Primary':
381 accessVector = m['cvssData']['accessVector']
382 vectorString = m['cvssData']['vectorString']
383 cvssv4 = m['cvssData']['baseScore']
384 except KeyError:
385 accessVector = accessVector or "UNKNOWN"
386 cvssv4 = 0.0
387
388 conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)",
389 [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close()
390
391 for config in elt['configurations']:
392 # This is suboptimal as it doesn't handle AND/OR and negate, but is better than nothing
393 for node in config["nodes"]:
394 parse_node_and_insert(conn, node, cveId, False)
395
396def update_db(d, conn, jsondata):
397 if (d.getVar("NVD_DB_VERSION") == "FKIE"):
398 return update_db_fkie(conn, jsondata)
399 else:
400 return update_db_nvdjson(conn, jsondata)
401
402do_fetch[nostamp] = "1"
403
404EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-core/meta/cve-update-nvd2-native.bb b/meta/recipes-core/meta/cve-update-nvd2-native.bb
index 1901641965..32a14a932b 100644
--- a/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -8,7 +8,6 @@ INHIBIT_DEFAULT_DEPS = "1"
8 8
9inherit native 9inherit native
10 10
11deltask do_unpack
12deltask do_patch 11deltask do_patch
13deltask do_configure 12deltask do_configure
14deltask do_compile 13deltask do_compile
@@ -35,7 +34,9 @@ CVE_DB_INCR_UPDATE_AGE_THRES ?= "10368000"
35# Number of attempts for each http query to nvd server before giving up 34# Number of attempts for each http query to nvd server before giving up
36CVE_DB_UPDATE_ATTEMPTS ?= "5" 35CVE_DB_UPDATE_ATTEMPTS ?= "5"
37 36
38CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db" 37CVE_CHECK_DB_DLDIR_FILE ?= "${DL_DIR}/CVE_CHECK2/${CVE_CHECK_DB_FILENAME}"
38CVE_CHECK_DB_DLDIR_LOCK ?= "${CVE_CHECK_DB_DLDIR_FILE}.lock"
39CVE_CHECK_DB_TEMP_FILE ?= "${CVE_CHECK_DB_FILE}.tmp"
39 40
40python () { 41python () {
41 if not bb.data.inherits_class("cve-check", d): 42 if not bb.data.inherits_class("cve-check", d):
@@ -52,9 +53,9 @@ python do_fetch() {
52 53
53 bb.utils.export_proxies(d) 54 bb.utils.export_proxies(d)
54 55
55 db_file = d.getVar("CVE_CHECK_DB_FILE") 56 db_file = d.getVar("CVE_CHECK_DB_DLDIR_FILE")
56 db_dir = os.path.dirname(db_file) 57 db_dir = os.path.dirname(db_file)
57 db_tmp_file = d.getVar("CVE_DB_TEMP_FILE") 58 db_tmp_file = d.getVar("CVE_CHECK_DB_TEMP_FILE")
58 59
59 cleanup_db_download(db_file, db_tmp_file) 60 cleanup_db_download(db_file, db_tmp_file)
60 # By default let's update the whole database (since time 0) 61 # By default let's update the whole database (since time 0)
@@ -67,6 +68,8 @@ python do_fetch() {
67 update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL")) 68 update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL"))
68 if update_interval < 0: 69 if update_interval < 0:
69 bb.note("CVE database update skipped") 70 bb.note("CVE database update skipped")
71 if not os.path.exists(db_file):
72 bb.error("CVE database %s not present, database fetch/update skipped" % db_file)
70 return 73 return
71 if time.time() - os.path.getmtime(db_file) < update_interval: 74 if time.time() - os.path.getmtime(db_file) < update_interval:
72 bb.note("CVE database recently updated, skipping") 75 bb.note("CVE database recently updated, skipping")
@@ -76,7 +79,11 @@ python do_fetch() {
76 except OSError: 79 except OSError:
77 pass 80 pass
78 81
82 if bb.utils.to_boolean(d.getVar("BB_NO_NETWORK")):
83 bb.error("BB_NO_NETWORK attempted to disable fetch, this recipe uses CVE_DB_UPDATE_INTERVAL to control download, set to '-1' to disable fetch or update")
84
79 bb.utils.mkdirhier(db_dir) 85 bb.utils.mkdirhier(db_dir)
86 bb.utils.mkdirhier(os.path.dirname(db_tmp_file))
80 if os.path.exists(db_file): 87 if os.path.exists(db_file):
81 shutil.copy2(db_file, db_tmp_file) 88 shutil.copy2(db_file, db_tmp_file)
82 89
@@ -89,10 +96,16 @@ python do_fetch() {
89 os.remove(db_tmp_file) 96 os.remove(db_tmp_file)
90} 97}
91 98
92do_fetch[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}" 99do_fetch[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK}"
93do_fetch[file-checksums] = "" 100do_fetch[file-checksums] = ""
94do_fetch[vardeps] = "" 101do_fetch[vardeps] = ""
95 102
103python do_unpack() {
104 import shutil
105 shutil.copyfile(d.getVar("CVE_CHECK_DB_DLDIR_FILE"), d.getVar("CVE_CHECK_DB_FILE"))
106}
107do_unpack[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK} ${CVE_CHECK_DB_FILE_LOCK}"
108
96def cleanup_db_download(db_file, db_tmp_file): 109def cleanup_db_download(db_file, db_tmp_file):
97 """ 110 """
98 Cleanup the download space from possible failed downloads 111 Cleanup the download space from possible failed downloads
@@ -216,6 +229,11 @@ def update_db_file(db_tmp_file, d, database_time):
216 # We haven't managed to download data 229 # We haven't managed to download data
217 return False 230 return False
218 231
232 # hack for json5 style responses
233 if raw_data[-3:] == ',]}':
234 bb.note("Removing trailing ',' from nvd response")
235 raw_data = raw_data[:-3] + ']}'
236
219 data = json.loads(raw_data) 237 data = json.loads(raw_data)
220 238
221 index = data["startIndex"] 239 index = data["startIndex"]
@@ -247,7 +265,7 @@ def initialize_db(conn):
247 c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") 265 c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
248 266
249 c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ 267 c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
250 SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)") 268 SCOREV2 TEXT, SCOREV3 TEXT, SCOREV4 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)")
251 269
252 c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \ 270 c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
253 VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \ 271 VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
@@ -323,7 +341,7 @@ def update_db(conn, elt):
323 accessVector = None 341 accessVector = None
324 vectorString = None 342 vectorString = None
325 cveId = elt['cve']['id'] 343 cveId = elt['cve']['id']
326 if elt['cve']['vulnStatus'] == "Rejected": 344 if elt['cve'].get('vulnStatus') == "Rejected":
327 c = conn.cursor() 345 c = conn.cursor()
328 c.execute("delete from PRODUCTS where ID = ?;", [cveId]) 346 c.execute("delete from PRODUCTS where ID = ?;", [cveId])
329 c.execute("delete from NVD where ID = ?;", [cveId]) 347 c.execute("delete from NVD where ID = ?;", [cveId])
@@ -353,12 +371,18 @@ def update_db(conn, elt):
353 cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore'] 371 cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']
354 except KeyError: 372 except KeyError:
355 pass 373 pass
374 cvssv3 = cvssv3 or 0.0
375 try:
376 accessVector = accessVector or elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['attackVector']
377 vectorString = vectorString or elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['vectorString']
378 cvssv4 = elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['baseScore']
379 except KeyError:
380 cvssv4 = 0.0
356 accessVector = accessVector or "UNKNOWN" 381 accessVector = accessVector or "UNKNOWN"
357 vectorString = vectorString or "UNKNOWN" 382 vectorString = vectorString or "UNKNOWN"
358 cvssv3 = cvssv3 or 0.0
359 383
360 conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?)", 384 conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)",
361 [cveId, cveDesc, cvssv2, cvssv3, date, accessVector, vectorString]).close() 385 [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close()
362 386
363 try: 387 try:
364 # Remove any pre-existing CVE configuration. Even for partial database 388 # Remove any pre-existing CVE configuration. Even for partial database
diff --git a/meta/recipes-core/meta/meta-environment.bb b/meta/recipes-core/meta/meta-environment.bb
index 65436bc3e6..e259099313 100644
--- a/meta/recipes-core/meta/meta-environment.bb
+++ b/meta/recipes-core/meta/meta-environment.bb
@@ -70,7 +70,7 @@ do_install() {
70 70
71PN = "meta-environment-${MACHINE}" 71PN = "meta-environment-${MACHINE}"
72PACKAGES = "${PN}" 72PACKAGES = "${PN}"
73FILES:${PN}= " \ 73FILES:${PN} = " \
74 ${SDKPATH}/* \ 74 ${SDKPATH}/* \
75 " 75 "
76 76
diff --git a/meta/recipes-core/meta/meta-ide-support.bb b/meta/recipes-core/meta/meta-ide-support.bb
index d85aa120c0..7ed422ce4d 100644
--- a/meta/recipes-core/meta/meta-ide-support.bb
+++ b/meta/recipes-core/meta/meta-ide-support.bb
@@ -1,6 +1,7 @@
1SUMMARY = "Integrated Development Environment support" 1SUMMARY = "Integrated Development Environment support"
2DESCRIPTION = "Meta package for ensuring the build directory contains all appropriate toolchain packages for using an IDE" 2DESCRIPTION = "Meta package for ensuring the build directory contains all appropriate toolchain packages for using an IDE"
3LICENSE = "MIT" 3LICENSE = "MIT"
4PACKAGE_ARCH = "${MACHINE_ARCH}"
4 5
5DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native autoconf-native automake-native meson-native intltool-native pkgconfig-native" 6DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native autoconf-native automake-native meson-native intltool-native pkgconfig-native"
6RM_WORK_EXCLUDE += "${PN}" 7RM_WORK_EXCLUDE += "${PN}"
diff --git a/meta/recipes-core/meta/meta-toolchain.bb b/meta/recipes-core/meta/meta-toolchain.bb
index 260e03934e..1b108f0a1c 100644
--- a/meta/recipes-core/meta/meta-toolchain.bb
+++ b/meta/recipes-core/meta/meta-toolchain.bb
@@ -1,5 +1,4 @@
1SUMMARY = "Meta package for building a installable toolchain" 1SUMMARY = "Meta package for building a installable toolchain"
2LICENSE = "MIT" 2LICENSE = "MIT"
3 3
4
5inherit populate_sdk 4inherit populate_sdk
diff --git a/meta/recipes-core/meta/meta-world-pkgdata.bb b/meta/recipes-core/meta/meta-world-pkgdata.bb
index 0438bf6138..1bfaf2c1e3 100644
--- a/meta/recipes-core/meta/meta-world-pkgdata.bb
+++ b/meta/recipes-core/meta/meta-world-pkgdata.bb
@@ -27,14 +27,13 @@ python do_collect_packagedata() {
27 oe.copy_buildsystem.generate_locked_sigs(sigfile, d) 27 oe.copy_buildsystem.generate_locked_sigs(sigfile, d)
28} 28}
29 29
30inherit nospdx nopackages
30deltask do_fetch 31deltask do_fetch
31deltask do_unpack 32deltask do_unpack
32deltask do_patch 33deltask do_patch
33deltask do_configure 34deltask do_configure
34deltask do_compile 35deltask do_compile
35deltask do_install 36deltask do_install
36deltask do_create_spdx
37deltask do_create_spdx_runtime
38 37
39do_prepare_recipe_sysroot[deptask] = "" 38do_prepare_recipe_sysroot[deptask] = ""
40 39
diff --git a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
index bb4e746237..0ba1ca6e42 100644
--- a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
+++ b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
@@ -2,6 +2,7 @@ DUMMYARCH = "buildtools-dummy-${SDKPKGSUFFIX}"
2 2
3DUMMYPROVIDES_PACKAGES = "\ 3DUMMYPROVIDES_PACKAGES = "\
4 nativesdk-perl \ 4 nativesdk-perl \
5 nativesdk-perl-dev \
5 nativesdk-libxml-parser-perl \ 6 nativesdk-libxml-parser-perl \
6 nativesdk-perl-module-bytes \ 7 nativesdk-perl-module-bytes \
7 nativesdk-perl-module-carp \ 8 nativesdk-perl-module-carp \
@@ -9,6 +10,7 @@ DUMMYPROVIDES_PACKAGES = "\
9 nativesdk-perl-module-data-dumper \ 10 nativesdk-perl-module-data-dumper \
10 nativesdk-perl-module-errno \ 11 nativesdk-perl-module-errno \
11 nativesdk-perl-module-exporter \ 12 nativesdk-perl-module-exporter \
13 nativesdk-perl-module-feature \
12 nativesdk-perl-module-file-basename \ 14 nativesdk-perl-module-file-basename \
13 nativesdk-perl-module-file-compare \ 15 nativesdk-perl-module-file-compare \
14 nativesdk-perl-module-file-copy \ 16 nativesdk-perl-module-file-copy \
@@ -16,15 +18,18 @@ DUMMYPROVIDES_PACKAGES = "\
16 nativesdk-perl-module-file-glob \ 18 nativesdk-perl-module-file-glob \
17 nativesdk-perl-module-file-path \ 19 nativesdk-perl-module-file-path \
18 nativesdk-perl-module-file-spec \ 20 nativesdk-perl-module-file-spec \
21 nativesdk-perl-module-file-spec-unix \
19 nativesdk-perl-module-file-stat \ 22 nativesdk-perl-module-file-stat \
20 nativesdk-perl-module-file-temp \ 23 nativesdk-perl-module-file-temp \
21 nativesdk-perl-module-getopt-long \ 24 nativesdk-perl-module-getopt-long \
25 nativesdk-perl-module-integer \
22 nativesdk-perl-module-io-file \ 26 nativesdk-perl-module-io-file \
23 nativesdk-perl-module-list-util \ 27 nativesdk-perl-module-list-util \
24 nativesdk-perl-module-overloading \ 28 nativesdk-perl-module-overloading \
25 nativesdk-perl-module-posix \ 29 nativesdk-perl-module-posix \
26 nativesdk-perl-module-scalar-util \ 30 nativesdk-perl-module-scalar-util \
27 nativesdk-perl-module-strict \ 31 nativesdk-perl-module-strict \
32 nativesdk-perl-module-symbol \
28 nativesdk-perl-module-text-parsewords \ 33 nativesdk-perl-module-text-parsewords \
29 nativesdk-perl-module-thread-queue \ 34 nativesdk-perl-module-thread-queue \
30 nativesdk-perl-module-threads \ 35 nativesdk-perl-module-threads \
@@ -36,7 +41,6 @@ DUMMYPROVIDES = "\
36 /usr/bin/perl \ 41 /usr/bin/perl \
37 " 42 "
38 43
39
40require dummy-sdk-package.inc 44require dummy-sdk-package.inc
41 45
42inherit nativesdk 46inherit nativesdk
diff --git a/meta/recipes-core/meta/signing-keys.bb b/meta/recipes-core/meta/signing-keys.bb
index 107a39d658..94f4032911 100644
--- a/meta/recipes-core/meta/signing-keys.bb
+++ b/meta/recipes-core/meta/signing-keys.bb
@@ -4,7 +4,6 @@
4SUMMARY = "Makes public keys of the signing keys available" 4SUMMARY = "Makes public keys of the signing keys available"
5LICENSE = "MIT" 5LICENSE = "MIT"
6 6
7
8inherit allarch deploy 7inherit allarch deploy
9 8
10EXCLUDE_FROM_WORLD = "1" 9EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-core/meta/uninative-tarball.bb b/meta/recipes-core/meta/uninative-tarball.bb
index 7eebcaf11a..0dbc698ccd 100644
--- a/meta/recipes-core/meta/uninative-tarball.bb
+++ b/meta/recipes-core/meta/uninative-tarball.bb
@@ -51,13 +51,14 @@ fakeroot create_sdk_files() {
51 sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py 51 sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py
52} 52}
53 53
54
55fakeroot archive_sdk() { 54fakeroot archive_sdk() {
56 cd ${SDK_OUTPUT}/${SDKPATH} 55 cd ${SDK_OUTPUT}/${SDKPATH}
57 56
58 DEST="./${SDK_ARCH}-${SDK_OS}" 57 DEST="./${SDK_ARCH}-${SDK_OS}"
59 mv sysroots/${SDK_SYS} $DEST 58 mv sysroots/${SDK_SYS} $DEST
60 rm sysroots -rf 59 rm sysroots -rf
60 # There is a check in meta/files/toolchain-shar-extract.sh -- make sure to
61 # keep that check up to date if changing the `1024`
61 patchelf --set-interpreter ${@''.join('a' for n in range(1024))} $DEST/usr/bin/patchelf 62 patchelf --set-interpreter ${@''.join('a' for n in range(1024))} $DEST/usr/bin/patchelf
62 mv $DEST/usr/bin/patchelf $DEST/usr/bin/patchelf-uninative 63 mv $DEST/usr/bin/patchelf $DEST/usr/bin/patchelf-uninative
63 ${SDK_ARCHIVE_CMD} 64 ${SDK_ARCHIVE_CMD}
diff --git a/meta/recipes-core/meta/wic-tools.bb b/meta/recipes-core/meta/wic-tools.bb
index 76494e7fca..fa983ed5f1 100644
--- a/meta/recipes-core/meta/wic-tools.bb
+++ b/meta/recipes-core/meta/wic-tools.bb
@@ -7,7 +7,7 @@ DEPENDS = "\
7 mtools-native bmaptool-native grub-native cdrtools-native \ 7 mtools-native bmaptool-native grub-native cdrtools-native \
8 btrfs-tools-native squashfs-tools-native pseudo-native \ 8 btrfs-tools-native squashfs-tools-native pseudo-native \
9 e2fsprogs-native util-linux-native tar-native erofs-utils-native \ 9 e2fsprogs-native util-linux-native tar-native erofs-utils-native \
10 virtual/${TARGET_PREFIX}binutils \ 10 virtual/cross-binutils \
11 " 11 "
12DEPENDS:append:x86 = " syslinux-native syslinux grub-efi systemd-boot" 12DEPENDS:append:x86 = " syslinux-native syslinux grub-efi systemd-boot"
13DEPENDS:append:x86-64 = " syslinux-native syslinux grub-efi systemd-boot" 13DEPENDS:append:x86-64 = " syslinux-native syslinux grub-efi systemd-boot"
diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
index 887a816031..ad9ba81e4f 100644
--- a/meta/recipes-core/musl/bsd-headers.bb
+++ b/meta/recipes-core/musl/bsd-headers.bb
@@ -15,7 +15,7 @@ do_compile[noexec] = "1"
15 15
16INHIBIT_DEFAULT_DEPS = "1" 16INHIBIT_DEFAULT_DEPS = "1"
17 17
18S = "${WORKDIR}" 18S = "${UNPACKDIR}"
19 19
20do_install() { 20do_install() {
21 install -Dm 0644 ${S}/sys-queue.h ${D}${includedir}/sys/queue.h 21 install -Dm 0644 ${S}/sys-queue.h ${D}${includedir}/sys/queue.h
diff --git a/meta/recipes-core/musl/gcompat_git.bb b/meta/recipes-core/musl/gcompat_git.bb
index 40fe8c6a5f..6f9710e71a 100644
--- a/meta/recipes-core/musl/gcompat_git.bb
+++ b/meta/recipes-core/musl/gcompat_git.bb
@@ -16,8 +16,6 @@ SRC_URI:append:powerpc = "\
16PV = "1.1.0" 16PV = "1.1.0"
17SRCREV = "b7bfe0b08c52fdc72e0c1d9d4dcb2129f1642bd6" 17SRCREV = "b7bfe0b08c52fdc72e0c1d9d4dcb2129f1642bd6"
18 18
19S = "${WORKDIR}/git"
20
21inherit pkgconfig linuxloader siteinfo 19inherit pkgconfig linuxloader siteinfo
22 20
23DEPENDS += "musl-obstack" 21DEPENDS += "musl-obstack"
diff --git a/meta/recipes-core/musl/libc-test_git.bb b/meta/recipes-core/musl/libc-test_git.bb
index 619a959fd2..71a111cfa4 100644
--- a/meta/recipes-core/musl/libc-test_git.bb
+++ b/meta/recipes-core/musl/libc-test_git.bb
@@ -18,8 +18,6 @@ SRC_URI = " \
18 18
19PV = "0+git" 19PV = "0+git"
20 20
21S = "${WORKDIR}/git"
22
23# libc-test 'make' or 'make run' command is designed to build and run tests. It 21# libc-test 'make' or 'make run' command is designed to build and run tests. It
24# reports both build and test failures. The commands should be run on target. 22# reports both build and test failures. The commands should be run on target.
25do_compile() { 23do_compile() {
@@ -50,7 +48,7 @@ do_install () {
50} 48}
51 49
52do_install_ptest_base:append() { 50do_install_ptest_base:append() {
53 install -Dm 0755 ${WORKDIR}/run-libc-ptests ${D}${PTEST_PATH}/run-libc-ptests 51 install -Dm 0755 ${UNPACKDIR}/run-libc-ptests ${D}${PTEST_PATH}/run-libc-ptests
54} 52}
55 53
56COMPATIBLE_HOST = "null" 54COMPATIBLE_HOST = "null"
diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
index 3faf8f00c3..4bcbaef7ea 100644
--- a/meta/recipes-core/musl/libssp-nonshared.bb
+++ b/meta/recipes-core/musl/libssp-nonshared.bb
@@ -11,13 +11,13 @@ SRC_URI = "file://stack_chk.c"
11 11
12INHIBIT_DEFAULT_DEPS = "1" 12INHIBIT_DEFAULT_DEPS = "1"
13 13
14DEPENDS = "virtual/${TARGET_PREFIX}binutils \ 14DEPENDS = "virtual/cross-binutils \
15 virtual/${TARGET_PREFIX}gcc \ 15 virtual/cross-cc \
16" 16"
17 17
18do_configure[noexec] = "1" 18do_configure[noexec] = "1"
19 19
20S = "${WORKDIR}" 20S = "${UNPACKDIR}"
21 21
22do_compile() { 22do_compile() {
23 ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c stack_chk.c -o stack_chk.o 23 ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c stack_chk.c -o stack_chk.o
diff --git a/meta/recipes-core/musl/libucontext_1.2.bb b/meta/recipes-core/musl/libucontext_1.3.2.bb
index 4e34df1439..c5b802207b 100644
--- a/meta/recipes-core/musl/libucontext_1.2.bb
+++ b/meta/recipes-core/musl/libucontext_1.3.2.bb
@@ -8,12 +8,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ebea527af0602d509b7f4c49533fb1bd"
8SECTION = "libs" 8SECTION = "libs"
9DEPENDS = "" 9DEPENDS = ""
10 10
11SRCREV = "4dde3417b4bb4b1b1545bd913be337680b5e28c3" 11SRCREV = "a0323579ac50b9a9d4033754d089f1fed0f59a00"
12SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \ 12SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \
13 " 13 "
14 14
15S = "${WORKDIR}/git"
16
17COMPATIBLE_HOST = ".*-musl.*" 15COMPATIBLE_HOST = ".*-musl.*"
18 16
19valid_archs = " \ 17valid_archs = " \
@@ -50,3 +48,9 @@ def map_kernel_arch(a, d):
50 48
51EXTRA_OEMESON = "-Dcpu=${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}" 49EXTRA_OEMESON = "-Dcpu=${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
52inherit meson 50inherit meson
51
52ARM_TARGET_CPPFLAGS = ""
53ARM_TARGET_CPPFLAGS:append:arm = "${@bb.utils.contains('TARGET_FPU', 'hard', ' -DFORCE_HARD_FLOAT', '', d)}"
54ARM_TARGET_CPPFLAGS:append:arm = "${@bb.utils.contains('TARGET_FPU', 'soft', ' -DFORCE_SOFT_FLOAT', '', d)}"
55
56TARGET_CPPFLAGS .= "${ARM_TARGET_CPPFLAGS}"
diff --git a/meta/recipes-core/musl/musl-legacy-error.bb b/meta/recipes-core/musl/musl-legacy-error.bb
index 5ce5a233ab..b40075c0b6 100644
--- a/meta/recipes-core/musl/musl-legacy-error.bb
+++ b/meta/recipes-core/musl/musl-legacy-error.bb
@@ -13,7 +13,7 @@ do_compile[noexec] = "1"
13 13
14INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
15 15
16S = "${WORKDIR}" 16S = "${UNPACKDIR}"
17 17
18do_install() { 18do_install() {
19 install -Dm 0644 ${S}/error.h -t ${D}${includedir} 19 install -Dm 0644 ${S}/error.h -t ${D}${includedir}
diff --git a/meta/recipes-core/musl/musl-locales_git.bb b/meta/recipes-core/musl/musl-locales_git.bb
index 1373c60daf..c8510596cf 100644
--- a/meta/recipes-core/musl/musl-locales_git.bb
+++ b/meta/recipes-core/musl/musl-locales_git.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://git.adelielinux.org/adelie/musl-locales;protocol=https;branch=m
12PV = "1.0+git" 12PV = "1.0+git"
13SRCREV = "5663f5bfd30bf9e1e0ba3fc5fe2da6725969f30e" 13SRCREV = "5663f5bfd30bf9e1e0ba3fc5fe2da6725969f30e"
14 14
15S = "${WORKDIR}/git"
16
17DEPENDS = "virtual/libintl gettext-native" 15DEPENDS = "virtual/libintl gettext-native"
18 16
19PROVIDES = "virtual/libc-locale" 17PROVIDES = "virtual/libc-locale"
@@ -82,4 +80,21 @@ FILES:locale-base-ru-ru += "${datadir}/i18n/locales/musl/ru_RU.UTF-8"
82FILES:locale-base-sr-rs += "${datadir}/i18n/locales/musl/sr_RS.UTF-8" 80FILES:locale-base-sr-rs += "${datadir}/i18n/locales/musl/sr_RS.UTF-8"
83FILES:locale-base-sv-se += "${datadir}/i18n/locales/musl/sv_SE.UTF-8" 81FILES:locale-base-sv-se += "${datadir}/i18n/locales/musl/sv_SE.UTF-8"
84 82
83RRECOMMENDS:locale-base-cs-cz += "${PN}"
84RRECOMMENDS:locale-base-de-ch += "${PN}"
85RRECOMMENDS:locale-base-de-de += "${PN}"
86RRECOMMENDS:locale-base-en-gb += "${PN}"
87RRECOMMENDS:locale-base-en-us += "${PN}"
88RRECOMMENDS:locale-base-es-es += "${PN}"
89RRECOMMENDS:locale-base-fi-fi += "${PN}"
90RRECOMMENDS:locale-base-fr-ca += "${PN}"
91RRECOMMENDS:locale-base-fr-fr += "${PN}"
92RRECOMMENDS:locale-base-it-it += "${PN}"
93RRECOMMENDS:locale-base-nb-no += "${PN}"
94RRECOMMENDS:locale-base-nl-nl += "${PN}"
95RRECOMMENDS:locale-base-pt-br += "${PN}"
96RRECOMMENDS:locale-base-ru-ru += "${PN}"
97RRECOMMENDS:locale-base-sr-sr += "${PN}"
98RRECOMMENDS:locale-base-sv-se += "${PN}"
99
85UPSTREAM_CHECK_COMMITS = "1" 100UPSTREAM_CHECK_COMMITS = "1"
diff --git a/meta/recipes-core/musl/musl-obstack.bb b/meta/recipes-core/musl/musl-obstack.bb
index 4c71a141b2..d8a5ae8d82 100644
--- a/meta/recipes-core/musl/musl-obstack.bb
+++ b/meta/recipes-core/musl/musl-obstack.bb
@@ -16,7 +16,5 @@ UPSTREAM_CHECK_COMMITS = "1"
16 16
17inherit autotools pkgconfig 17inherit autotools pkgconfig
18 18
19S = "${WORKDIR}/git"
20
21COMPATIBLE_HOST = ".*-musl.*" 19COMPATIBLE_HOST = ".*-musl.*"
22 20
diff --git a/meta/recipes-core/musl/musl-utils.bb b/meta/recipes-core/musl/musl-utils.bb
index 8280333daf..4b685640c8 100644
--- a/meta/recipes-core/musl/musl-utils.bb
+++ b/meta/recipes-core/musl/musl-utils.bb
@@ -17,8 +17,6 @@ UPSTREAM_CHECK_COMMITS = "1"
17 17
18inherit autotools 18inherit autotools
19 19
20S = "${WORKDIR}/git"
21
22PACKAGES =+ "${PN}-iconv" 20PACKAGES =+ "${PN}-iconv"
23 21
24FILES:${PN}-iconv = "${bindir}/iconv" 22FILES:${PN}-iconv = "${bindir}/iconv"
diff --git a/meta/recipes-core/musl/musl.inc b/meta/recipes-core/musl/musl.inc
index 6ca52b186a..ce45de2d23 100644
--- a/meta/recipes-core/musl/musl.inc
+++ b/meta/recipes-core/musl/musl.inc
@@ -9,7 +9,7 @@ standards-conformance and safety."
9HOMEPAGE = "http://www.musl-libc.org/" 9HOMEPAGE = "http://www.musl-libc.org/"
10LICENSE = "MIT" 10LICENSE = "MIT"
11SECTION = "libs" 11SECTION = "libs"
12LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b03f1cc25363d094011f8f4fd8bcfb68" 12LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=0c2904cdc34777fb4067732bae145506"
13 13
14INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
15 15
@@ -25,10 +25,13 @@ MIPS_INSTRUCTION_SET = "mips"
25ARM_INSTRUCTION_SET:armv5 = "arm" 25ARM_INSTRUCTION_SET:armv5 = "arm"
26ARM_INSTRUCTION_SET:armv4 = "arm" 26ARM_INSTRUCTION_SET:armv4 = "arm"
27 27
28# 1.2.4 doesn't support riscv32
29COMPATIBLE_HOST:riscv32 = "null"
30
31# Enable out of tree build 28# Enable out of tree build
32B = "${WORKDIR}/build" 29B = "${WORKDIR}/build"
33 30
34do_configure[cleandirs] = "${B}" 31do_configure[cleandirs] = "${B}"
32
33python () {
34 multilibs = d.getVar("MULTILIBS")
35 if multilibs:
36 raise bb.parse.SkipRecipe("musl is not compatible with multilibs")
37}
diff --git a/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
index 8b097f3276..06ab27f0eb 100644
--- a/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
+++ b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
@@ -1,4 +1,4 @@
1From f95b6fd0475a95c00e886219271cb5c93838e3c3 Mon Sep 17 00:00:00 2001 1From 665ecc610c261d5e98710aa0c6ccf6e4991eaf58 Mon Sep 17 00:00:00 2001
2From: Amarnath Valluri <amarnath.valluri@intel.com> 2From: Amarnath Valluri <amarnath.valluri@intel.com>
3Date: Wed, 18 Jan 2017 16:14:37 +0200 3Date: Wed, 18 Jan 2017 16:14:37 +0200
4Subject: [PATCH 1/2] Make dynamic linker a relative symlink to libc 4Subject: [PATCH 1/2] Make dynamic linker a relative symlink to libc
@@ -35,7 +35,7 @@ index e8cc4436..466d9afd 100644
35 install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),) 35 install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
36 36
37diff --git a/tools/install.sh b/tools/install.sh 37diff --git a/tools/install.sh b/tools/install.sh
38index d913b60b..b6a7f797 100755 38index 855a8ca2..a2e6a5eb 100755
39--- a/tools/install.sh 39--- a/tools/install.sh
40+++ b/tools/install.sh 40+++ b/tools/install.sh
41@@ -6,18 +6,20 @@ 41@@ -6,18 +6,20 @@
@@ -61,15 +61,15 @@ index d913b60b..b6a7f797 100755
61 m) mode=$OPTARG ;; 61 m) mode=$OPTARG ;;
62 ?) usage ;; 62 ?) usage ;;
63 esac 63 esac
64@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP 64@@ -49,7 +51,7 @@ umask 077
65 umask 077
66 65
67 if test "$symlink" ; then 66 if test "$symlink" ; then
67 umask 000
68-ln -s "$1" "$tmp" 68-ln -s "$1" "$tmp"
69+ln $symlinkflags "$1" "$tmp" 69+ln $symlinkflags "$1" "$tmp"
70 umask 077
70 else 71 else
71 cat < "$1" > "$tmp" 72 cat < "$1" > "$tmp"
72 chmod "$mode" "$tmp"
73-- 73--
742.37.2 742.43.0
75 75
diff --git a/meta/recipes-core/musl/musl/0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch b/meta/recipes-core/musl/musl/0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch
new file mode 100644
index 0000000000..78ba903ca6
--- /dev/null
+++ b/meta/recipes-core/musl/musl/0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch
@@ -0,0 +1,70 @@
1From 31dce8e958f5185e7fda653214da12bbc75f244e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 4 Dec 2024 11:16:43 -0800
4Subject: [PATCH] Update syscalls for r32/rv64 from kernel 6.4 through 6.10
5
6Upstream-Status: Submitted [https://www.openwall.com/lists/musl/2024/12/04/3]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 arch/riscv32/bits/syscall.h.in | 11 +++++++++++
10 arch/riscv64/bits/syscall.h.in | 11 +++++++++++
11 2 files changed, 22 insertions(+)
12
13diff --git a/arch/riscv32/bits/syscall.h.in b/arch/riscv32/bits/syscall.h.in
14index 9228d840..a54d9ffc 100644
15--- a/arch/riscv32/bits/syscall.h.in
16+++ b/arch/riscv32/bits/syscall.h.in
17@@ -216,6 +216,7 @@
18 #define __NR_perf_event_open 241
19 #define __NR_accept4 242
20 #define __NR_arch_specific_syscall 244
21+#define __NR_riscv_hwprobe 258
22 #define __NR_prlimit64 261
23 #define __NR_fanotify_init 262
24 #define __NR_fanotify_mark 263
25@@ -295,6 +296,16 @@
26 #define __NR_cachestat 451
27 #define __NR_fchmodat2 452
28 #define __NR_futex __NR_futex_time64
29+#define __NR_map_shadow_stack 453
30+#define __NR_futex_wake 454
31+#define __NR_futex_wait 455
32+#define __NR_futex_requeue 456
33+#define __NR_statmount 457
34+#define __NR_listmount 458
35+#define __NR_lsm_get_self_attr 459
36+#define __NR_lsm_list_modules 461
37+#define __NR_lsm_set_self_attr 460
38+#define __NR_mseal 462
39
40 #define __NR_sysriscv __NR_arch_specific_syscall
41 #define __NR_riscv_flush_icache (__NR_sysriscv + 15)
42diff --git a/arch/riscv64/bits/syscall.h.in b/arch/riscv64/bits/syscall.h.in
43index e362bd0e..6991a89c 100644
44--- a/arch/riscv64/bits/syscall.h.in
45+++ b/arch/riscv64/bits/syscall.h.in
46@@ -242,6 +242,7 @@
47 #define __NR_accept4 242
48 #define __NR_recvmmsg 243
49 #define __NR_arch_specific_syscall 244
50+#define __NR_riscv_hwprobe 258
51 #define __NR_wait4 260
52 #define __NR_prlimit64 261
53 #define __NR_fanotify_init 262
54@@ -304,6 +305,16 @@
55 #define __NR_set_mempolicy_home_node 450
56 #define __NR_cachestat 451
57 #define __NR_fchmodat2 452
58+#define __NR_map_shadow_stack 453
59+#define __NR_futex_wake 454
60+#define __NR_futex_wait 455
61+#define __NR_futex_requeue 456
62+#define __NR_statmount 457
63+#define __NR_listmount 458
64+#define __NR_lsm_get_self_attr 459
65+#define __NR_lsm_list_modules 461
66+#define __NR_lsm_set_self_attr 460
67+#define __NR_mseal 462
68
69 #define __NR_sysriscv __NR_arch_specific_syscall
70 #define __NR_riscv_flush_icache (__NR_sysriscv + 15)
diff --git a/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
index 59bfae5a27..04630b32ee 100644
--- a/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
+++ b/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
@@ -1,4 +1,4 @@
1From 3cce8716c6c3ae2e0c835caeac3780ec35090b2d Mon Sep 17 00:00:00 2001 1From e27de983ef70257ca1fd7f5096eea41613612ecf Mon Sep 17 00:00:00 2001
2From: Serhey Popovych <serhe.popovych@gmail.com> 2From: Serhey Popovych <serhe.popovych@gmail.com>
3Date: Tue, 11 Dec 2018 05:44:20 -0500 3Date: Tue, 11 Dec 2018 05:44:20 -0500
4Subject: [PATCH 2/2] ldso: Use syslibdir and libdir as default pathes to 4Subject: [PATCH 2/2] ldso: Use syslibdir and libdir as default pathes to
@@ -36,10 +36,10 @@ index 466d9afd..d2f458fa 100644
36 36
37 LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS) 37 LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS)
38diff --git a/ldso/dynlink.c b/ldso/dynlink.c 38diff --git a/ldso/dynlink.c b/ldso/dynlink.c
39index cc677952..b0e8815b 100644 39index 324aa859..7d3ab44c 100644
40--- a/ldso/dynlink.c 40--- a/ldso/dynlink.c
41+++ b/ldso/dynlink.c 41+++ b/ldso/dynlink.c
42@@ -29,6 +29,8 @@ 42@@ -35,6 +35,8 @@ static size_t ldso_page_size;
43 #define realloc __libc_realloc 43 #define realloc __libc_realloc
44 #define free __libc_free 44 #define free __libc_free
45 45
@@ -48,7 +48,7 @@ index cc677952..b0e8815b 100644
48 static void error_impl(const char *, ...); 48 static void error_impl(const char *, ...);
49 static void error_noop(const char *, ...); 49 static void error_noop(const char *, ...);
50 static void (*error)(const char *, ...) = error_noop; 50 static void (*error)(const char *, ...) = error_noop;
51@@ -1097,7 +1099,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) 51@@ -1159,7 +1161,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by)
52 sys_path = ""; 52 sys_path = "";
53 } 53 }
54 } 54 }
@@ -58,5 +58,5 @@ index cc677952..b0e8815b 100644
58 } 58 }
59 pathname = buf; 59 pathname = buf;
60-- 60--
612.37.2 612.43.0
62 62
diff --git a/meta/recipes-core/musl/musl/0003-elf.h-add-typedefs-for-Elf64_Relr-and-Elf32_Relr.patch b/meta/recipes-core/musl/musl/0003-elf.h-add-typedefs-for-Elf64_Relr-and-Elf32_Relr.patch
deleted file mode 100644
index 45d40cd5b4..0000000000
--- a/meta/recipes-core/musl/musl/0003-elf.h-add-typedefs-for-Elf64_Relr-and-Elf32_Relr.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 65b0ac0d998bf0f36924a7c27ed9e702b2a5a453 Mon Sep 17 00:00:00 2001
2From: Violet Purcell <vimproved@inventati.org>
3Date: Sat, 4 Nov 2023 12:09:20 -0400
4Subject: [PATCH] elf.h: add typedefs for Elf64_Relr and Elf32_Relr
5
6These were overlooked when DT_RELR was added in commit
7d32dadd60efb9d3b255351a3b532f8e4c3dd0db1, potentially breaking
8software that treats presence of the DT_RELR macro as implying they
9exist.
10
11Upstream-Status: Backport [1.2.5]
12
13Signed-off-by: Zang Ruochen <zangruochen@loongson.cn>
14
15---
16 include/elf.h | 5 +++++
17 1 file changed, 5 insertions(+)
18
19diff --git a/include/elf.h b/include/elf.h
20index 23f2c4bc..72d17c3a 100644
21--- a/include/elf.h
22+++ b/include/elf.h
23@@ -558,6 +558,11 @@ typedef struct {
24
25
26
27+typedef Elf32_Word Elf32_Relr;
28+typedef Elf64_Xword Elf64_Relr;
29+
30+
31+
32 #define ELF32_R_SYM(val) ((val) >> 8)
33 #define ELF32_R_TYPE(val) ((val) & 0xff)
34 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
35--
362.25.1
37
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index 324269a968..51e429b093 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -4,24 +4,22 @@
4require musl.inc 4require musl.inc
5inherit linuxloader 5inherit linuxloader
6 6
7SRCREV = "79bdacff83a6bd5b70ff5ae5eb8b6de82c2f7c30" 7SRCREV = "ae3a8c93a663b553e65f096498937083dad210d2"
8 8
9BASEVER = "1.2.4" 9BASEVER = "1.2.5"
10 10
11PV = "${BASEVER}+git" 11PV = "${BASEVER}+git"
12 12
13SRC_URI = "git://git.etalabs.net/git/musl;branch=master;protocol=https \ 13SRC_URI = "git://git.musl-libc.org/musl;branch=master \
14 file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ 14 file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
15 file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ 15 file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
16 file://0003-elf.h-add-typedefs-for-Elf64_Relr-and-Elf32_Relr.patch \ 16 file://0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch \
17 " 17 "
18 18
19S = "${WORKDIR}/git"
20
21PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt" 19PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt"
22 20
23DEPENDS = "virtual/${TARGET_PREFIX}binutils \ 21DEPENDS = "virtual/cross-binutils \
24 virtual/${TARGET_PREFIX}gcc \ 22 virtual/cross-cc \
25 libgcc-initial \ 23 libgcc-initial \
26 linux-libc-headers \ 24 linux-libc-headers \
27 bsd-headers \ 25 bsd-headers \
@@ -30,7 +28,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \
30GLIBC_LDSO = "${@get_glibc_loader(d)}" 28GLIBC_LDSO = "${@get_glibc_loader(d)}"
31MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}" 29MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}"
32 30
33export CROSS_COMPILE="${TARGET_PREFIX}" 31export CROSS_COMPILE = "${TARGET_PREFIX}"
34 32
35LDFLAGS += "-Wl,-soname,libc.so" 33LDFLAGS += "-Wl,-soname,libc.so"
36 34
diff --git a/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch b/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch
deleted file mode 100644
index 1232c8c2a8..0000000000
--- a/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch
+++ /dev/null
@@ -1,462 +0,0 @@
1From 3d54a41f12e9aa059f06e66e72d872f2283395b6 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Sun, 30 Jul 2023 21:14:00 -0700
4Subject: [PATCH] Fix CVE-2023-29491
5
6CVE: CVE-2023-29491
7
8Upstream-Status: Backport [http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=eb51b1ea1f75a0ec17c9c5937cb28df1e8eeec56]
9
10Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11---
12 ncurses/tinfo/lib_tgoto.c | 10 +++-
13 ncurses/tinfo/lib_tparm.c | 116 ++++++++++++++++++++++++++++++++-----
14 ncurses/tinfo/read_entry.c | 3 +
15 progs/tic.c | 6 ++
16 progs/tparm_type.c | 9 +++
17 progs/tparm_type.h | 2 +
18 progs/tput.c | 61 ++++++++++++++++---
19 7 files changed, 185 insertions(+), 22 deletions(-)
20
21diff --git a/ncurses/tinfo/lib_tgoto.c b/ncurses/tinfo/lib_tgoto.c
22index 9cf5e100..c50ed4df 100644
23--- a/ncurses/tinfo/lib_tgoto.c
24+++ b/ncurses/tinfo/lib_tgoto.c
25@@ -207,6 +207,14 @@ tgoto(const char *string, int x, int y)
26 result = tgoto_internal(string, x, y);
27 else
28 #endif
29- result = TIPARM_2(string, y, x);
30+ if ((result = TIPARM_2(string, y, x)) == NULL) {
31+ /*
32+ * Because termcap did not provide a more general solution such as
33+ * tparm(), it was necessary to handle single-parameter capabilities
34+ * using tgoto(). The internal _nc_tiparm() function returns a NULL
35+ * for that case; retry for the single-parameter case.
36+ */
37+ result = TIPARM_1(string, y);
38+ }
39 returnPtr(result);
40 }
41diff --git a/ncurses/tinfo/lib_tparm.c b/ncurses/tinfo/lib_tparm.c
42index d9bdfd8f..a10a3877 100644
43--- a/ncurses/tinfo/lib_tparm.c
44+++ b/ncurses/tinfo/lib_tparm.c
45@@ -1086,6 +1086,64 @@ tparam_internal(TPARM_STATE *tps, const char *string, TPARM_DATA *data)
46 return (TPS(out_buff));
47 }
48
49+#ifdef CUR
50+/*
51+ * Only a few standard capabilities accept string parameters. The others that
52+ * are parameterized accept only numeric parameters.
53+ */
54+static bool
55+check_string_caps(TPARM_DATA *data, const char *string)
56+{
57+ bool result = FALSE;
58+
59+#define CHECK_CAP(name) (VALID_STRING(name) && !strcmp(name, string))
60+
61+ /*
62+ * Disallow string parameters unless we can check them against a terminal
63+ * description.
64+ */
65+ if (cur_term != NULL) {
66+ int want_type = 0;
67+
68+ if (CHECK_CAP(pkey_key))
69+ want_type = 2; /* function key #1, type string #2 */
70+ else if (CHECK_CAP(pkey_local))
71+ want_type = 2; /* function key #1, execute string #2 */
72+ else if (CHECK_CAP(pkey_xmit))
73+ want_type = 2; /* function key #1, transmit string #2 */
74+ else if (CHECK_CAP(plab_norm))
75+ want_type = 2; /* label #1, show string #2 */
76+ else if (CHECK_CAP(pkey_plab))
77+ want_type = 6; /* function key #1, type string #2, show string #3 */
78+#if NCURSES_XNAMES
79+ else {
80+ char *check;
81+
82+ check = tigetstr("Cs");
83+ if (CHECK_CAP(check))
84+ want_type = 1; /* style #1 */
85+
86+ check = tigetstr("Ms");
87+ if (CHECK_CAP(check))
88+ want_type = 3; /* storage unit #1, content #2 */
89+ }
90+#endif
91+
92+ if (want_type == data->tparm_type) {
93+ result = TRUE;
94+ } else {
95+ T(("unexpected string-parameter"));
96+ }
97+ }
98+ return result;
99+}
100+
101+#define ValidCap() (myData.tparm_type == 0 || \
102+ check_string_caps(&myData, string))
103+#else
104+#define ValidCap() 1
105+#endif
106+
107 #if NCURSES_TPARM_VARARGS
108
109 NCURSES_EXPORT(char *)
110@@ -1100,7 +1158,7 @@ tparm(const char *string, ...)
111 tps->tname = "tparm";
112 #endif /* TRACE */
113
114- if (tparm_setup(cur_term, string, &myData) == OK) {
115+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
116 va_list ap;
117
118 va_start(ap, string);
119@@ -1135,7 +1193,7 @@ tparm(const char *string,
120 tps->tname = "tparm";
121 #endif /* TRACE */
122
123- if (tparm_setup(cur_term, string, &myData) == OK) {
124+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
125
126 myData.param[0] = a1;
127 myData.param[1] = a2;
128@@ -1166,7 +1224,7 @@ tiparm(const char *string, ...)
129 tps->tname = "tiparm";
130 #endif /* TRACE */
131
132- if (tparm_setup(cur_term, string, &myData) == OK) {
133+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
134 va_list ap;
135
136 va_start(ap, string);
137@@ -1179,7 +1237,25 @@ tiparm(const char *string, ...)
138 }
139
140 /*
141- * The internal-use flavor ensures that the parameters are numbers, not strings
142+ * The internal-use flavor ensures that parameters are numbers, not strings.
143+ * In addition to ensuring that they are numbers, it ensures that the parameter
144+ * count is consistent with intended usage.
145+ *
146+ * Unlike the general-purpose tparm/tiparm, these internal calls are fairly
147+ * well defined:
148+ *
149+ * expected == 0 - not applicable
150+ * expected == 1 - set color, or vertical/horizontal addressing
151+ * expected == 2 - cursor addressing
152+ * expected == 4 - initialize color or color pair
153+ * expected == 9 - set attributes
154+ *
155+ * Only for the last case (set attributes) should a parameter be optional.
156+ * Also, a capability which calls for more parameters than expected should be
157+ * ignored.
158+ *
159+ * Return a null if the parameter-checks fail. Otherwise, return a pointer to
160+ * the formatted capability string.
161 */
162 NCURSES_EXPORT(char *)
163 _nc_tiparm(int expected, const char *string, ...)
164@@ -1189,22 +1265,36 @@ _nc_tiparm(int expected, const char *string, ...)
165 char *result = NULL;
166
167 _nc_tparm_err = 0;
168+ T((T_CALLED("_nc_tiparm(%d, %s, ...)"), expected, _nc_visbuf(string)));
169 #ifdef TRACE
170 tps->tname = "_nc_tiparm";
171 #endif /* TRACE */
172
173- if (tparm_setup(cur_term, string, &myData) == OK
174- && myData.num_actual <= expected
175- && myData.tparm_type == 0) {
176- va_list ap;
177+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
178+ if (myData.num_actual == 0) {
179+ T(("missing parameter%s, expected %s%d",
180+ expected > 1 ? "s" : "",
181+ expected == 9 ? "up to " : "",
182+ expected));
183+ } else if (myData.num_actual > expected) {
184+ T(("too many parameters, have %d, expected %d",
185+ myData.num_actual,
186+ expected));
187+ } else if (expected != 9 && myData.num_actual != expected) {
188+ T(("expected %d parameters, have %d",
189+ myData.num_actual,
190+ expected));
191+ } else {
192+ va_list ap;
193
194- va_start(ap, string);
195- tparm_copy_valist(&myData, FALSE, ap);
196- va_end(ap);
197+ va_start(ap, string);
198+ tparm_copy_valist(&myData, FALSE, ap);
199+ va_end(ap);
200
201- result = tparam_internal(tps, string, &myData);
202+ result = tparam_internal(tps, string, &myData);
203+ }
204 }
205- return result;
206+ returnPtr(result);
207 }
208
209 /*
210diff --git a/ncurses/tinfo/read_entry.c b/ncurses/tinfo/read_entry.c
211index 2b1875ed..341337d2 100644
212--- a/ncurses/tinfo/read_entry.c
213+++ b/ncurses/tinfo/read_entry.c
214@@ -323,6 +323,9 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
215 || bool_count < 0
216 || num_count < 0
217 || str_count < 0
218+ || bool_count > BOOLCOUNT
219+ || num_count > NUMCOUNT
220+ || str_count > STRCOUNT
221 || str_size < 0) {
222 returnDB(TGETENT_NO);
223 }
224diff --git a/progs/tic.c b/progs/tic.c
225index 93a0b491..888927e2 100644
226--- a/progs/tic.c
227+++ b/progs/tic.c
228@@ -2270,9 +2270,15 @@ check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
229
230 _nc_reset_tparm(NULL);
231 switch (actual) {
232+ case Str:
233+ result = TPARM_1(value, strings[1]);
234+ break;
235 case Num_Str:
236 result = TPARM_2(value, numbers[1], strings[2]);
237 break;
238+ case Str_Str:
239+ result = TPARM_2(value, strings[1], strings[2]);
240+ break;
241 case Num_Str_Str:
242 result = TPARM_3(value, numbers[1], strings[2], strings[3]);
243 break;
244diff --git a/progs/tparm_type.c b/progs/tparm_type.c
245index 3da4a077..644aa62a 100644
246--- a/progs/tparm_type.c
247+++ b/progs/tparm_type.c
248@@ -47,6 +47,7 @@ tparm_type(const char *name)
249 {code, {longname} }, \
250 {code, {ti} }, \
251 {code, {tc} }
252+#define XD(code, onlyname) TD(code, onlyname, onlyname, onlyname)
253 TParams result = Numbers;
254 /* *INDENT-OFF* */
255 static const struct {
256@@ -58,6 +59,10 @@ tparm_type(const char *name)
257 TD(Num_Str, "pkey_xmit", "pfx", "px"),
258 TD(Num_Str, "plab_norm", "pln", "pn"),
259 TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
260+#if NCURSES_XNAMES
261+ XD(Str, "Cs"),
262+ XD(Str_Str, "Ms"),
263+#endif
264 };
265 /* *INDENT-ON* */
266
267@@ -80,12 +85,16 @@ guess_tparm_type(int nparam, char **p_is_s)
268 case 1:
269 if (!p_is_s[0])
270 result = Numbers;
271+ if (p_is_s[0])
272+ result = Str;
273 break;
274 case 2:
275 if (!p_is_s[0] && !p_is_s[1])
276 result = Numbers;
277 if (!p_is_s[0] && p_is_s[1])
278 result = Num_Str;
279+ if (p_is_s[0] && p_is_s[1])
280+ result = Str_Str;
281 break;
282 case 3:
283 if (!p_is_s[0] && !p_is_s[1] && !p_is_s[2])
284diff --git a/progs/tparm_type.h b/progs/tparm_type.h
285index 7c102a30..af5bcf0f 100644
286--- a/progs/tparm_type.h
287+++ b/progs/tparm_type.h
288@@ -45,8 +45,10 @@
289 typedef enum {
290 Other = -1
291 ,Numbers = 0
292+ ,Str
293 ,Num_Str
294 ,Num_Str_Str
295+ ,Str_Str
296 } TParams;
297
298 extern TParams tparm_type(const char *name);
299diff --git a/progs/tput.c b/progs/tput.c
300index 4cd0c5ba..41508b72 100644
301--- a/progs/tput.c
302+++ b/progs/tput.c
303@@ -1,5 +1,5 @@
304 /****************************************************************************
305- * Copyright 2018-2021,2022 Thomas E. Dickey *
306+ * Copyright 2018-2022,2023 Thomas E. Dickey *
307 * Copyright 1998-2016,2017 Free Software Foundation, Inc. *
308 * *
309 * Permission is hereby granted, free of charge, to any person obtaining a *
310@@ -47,12 +47,15 @@
311 #include <transform.h>
312 #include <tty_settings.h>
313
314-MODULE_ID("$Id: tput.c,v 1.99 2022/02/26 23:19:31 tom Exp $")
315+MODULE_ID("$Id: tput.c,v 1.102 2023/04/08 16:26:36 tom Exp $")
316
317 #define PUTS(s) fputs(s, stdout)
318
319 const char *_nc_progname = "tput";
320
321+static bool opt_v = FALSE; /* quiet, do not show warnings */
322+static bool opt_x = FALSE; /* clear scrollback if possible */
323+
324 static bool is_init = FALSE;
325 static bool is_reset = FALSE;
326 static bool is_clear = FALSE;
327@@ -81,6 +84,7 @@ usage(const char *optstring)
328 KEEP(" -S << read commands from standard input")
329 KEEP(" -T TERM use this instead of $TERM")
330 KEEP(" -V print curses-version")
331+ KEEP(" -v verbose, show warnings")
332 KEEP(" -x do not try to clear scrollback")
333 KEEP("")
334 KEEP("Commands:")
335@@ -148,7 +152,7 @@ exit_code(int token, int value)
336 * Returns nonzero on error.
337 */
338 static int
339-tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
340+tput_cmd(int fd, TTY * settings, int argc, char **argv, int *used)
341 {
342 NCURSES_CONST char *name;
343 char *s;
344@@ -231,7 +235,9 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
345 } else if (VALID_STRING(s)) {
346 if (argc > 1) {
347 int k;
348+ int narg;
349 int analyzed;
350+ int provided;
351 int popcount;
352 long numbers[1 + NUM_PARM];
353 char *strings[1 + NUM_PARM];
354@@ -271,14 +277,45 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
355
356 popcount = 0;
357 _nc_reset_tparm(NULL);
358+ /*
359+ * Count the number of numeric parameters which are provided.
360+ */
361+ provided = 0;
362+ for (narg = 1; narg < argc; ++narg) {
363+ char *ending = NULL;
364+ long check = strtol(argv[narg], &ending, 10);
365+ if (check < 0 || ending == argv[narg] || *ending != '\0')
366+ break;
367+ provided = narg;
368+ }
369 switch (paramType) {
370+ case Str:
371+ s = TPARM_1(s, strings[1]);
372+ analyzed = 1;
373+ if (provided == 0 && argc >= 1)
374+ provided++;
375+ break;
376+ case Str_Str:
377+ s = TPARM_2(s, strings[1], strings[2]);
378+ analyzed = 2;
379+ if (provided == 0 && argc >= 1)
380+ provided++;
381+ if (provided == 1 && argc >= 2)
382+ provided++;
383+ break;
384 case Num_Str:
385 s = TPARM_2(s, numbers[1], strings[2]);
386 analyzed = 2;
387+ if (provided == 1 && argc >= 2)
388+ provided++;
389 break;
390 case Num_Str_Str:
391 s = TPARM_3(s, numbers[1], strings[2], strings[3]);
392 analyzed = 3;
393+ if (provided == 1 && argc >= 2)
394+ provided++;
395+ if (provided == 2 && argc >= 3)
396+ provided++;
397 break;
398 case Numbers:
399 analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
400@@ -316,7 +353,13 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
401 if (analyzed < popcount) {
402 analyzed = popcount;
403 }
404- *used += analyzed;
405+ if (opt_v && (analyzed != provided)) {
406+ fprintf(stderr, "%s: %s parameters for \"%s\"\n",
407+ _nc_progname,
408+ (analyzed < provided ? "extra" : "missing"),
409+ argv[0]);
410+ }
411+ *used += provided;
412 }
413
414 /* use putp() in order to perform padding */
415@@ -339,7 +382,6 @@ main(int argc, char **argv)
416 int used;
417 TTY old_settings;
418 TTY tty_settings;
419- bool opt_x = FALSE; /* clear scrollback if possible */
420 bool is_alias;
421 bool need_tty;
422
423@@ -348,7 +390,7 @@ main(int argc, char **argv)
424
425 term = getenv("TERM");
426
427- while ((c = getopt(argc, argv, is_alias ? "T:Vx" : "ST:Vx")) != -1) {
428+ while ((c = getopt(argc, argv, is_alias ? "T:Vvx" : "ST:Vvx")) != -1) {
429 switch (c) {
430 case 'S':
431 cmdline = FALSE;
432@@ -361,6 +403,9 @@ main(int argc, char **argv)
433 case 'V':
434 puts(curses_version());
435 ExitProgram(EXIT_SUCCESS);
436+ case 'v': /* verbose */
437+ opt_v = TRUE;
438+ break;
439 case 'x': /* do not try to clear scrollback */
440 opt_x = TRUE;
441 break;
442@@ -404,7 +449,7 @@ main(int argc, char **argv)
443 usage(NULL);
444 while (argc > 0) {
445 tty_settings = old_settings;
446- code = tput_cmd(fd, &tty_settings, opt_x, argc, argv, &used);
447+ code = tput_cmd(fd, &tty_settings, argc, argv, &used);
448 if (code != 0)
449 break;
450 argc -= used;
451@@ -439,7 +484,7 @@ main(int argc, char **argv)
452 while (argnum > 0) {
453 int code;
454 tty_settings = old_settings;
455- code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, &used);
456+ code = tput_cmd(fd, &tty_settings, argnum, argnow, &used);
457 if (code != 0) {
458 if (result == 0)
459 result = ErrSystem(0); /* will return value >4 */
460--
4612.40.0
462
diff --git a/meta/recipes-core/ncurses/files/0001-Updating-reset-code-ncurses-6.4-patch-20231104.patch b/meta/recipes-core/ncurses/files/0001-Updating-reset-code-ncurses-6.4-patch-20231104.patch
deleted file mode 100644
index 121db6bffe..0000000000
--- a/meta/recipes-core/ncurses/files/0001-Updating-reset-code-ncurses-6.4-patch-20231104.patch
+++ /dev/null
@@ -1,499 +0,0 @@
1From 135d37072755704b8d018e5de74e62ff3f28c930 Mon Sep 17 00:00:00 2001
2From: Thomas E. Dickey <dickey@invisible-island.net>
3Date: Sun, 5 Nov 2023 05:54:54 +0530
4Subject: [PATCH] Updating reset code - ncurses 6.4 - patch 20231104
5
6+ modify reset command to avoid altering clocal if the terminal uses a
7 modem (prompted by discussion with Werner Fink, Michal Suchanek,
8 OpenSUSE #1201384, Debian #60377).
9+ build-fixes for --with-caps variations.
10+ correct a couple of section-references in INSTALL.
11
12Signed-off-by: Thomas E. Dickey <dickey@invisible-island.net>
13
14Upstream-Status: Backport [https://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=135d37072755704b8d018e5de74e62ff3f28c930]
15
16Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
17---
18 INSTALL | 8 +-
19 include/curses.events | 2 +-
20 ncurses/tinfo/lib_tparm.c | 2 +
21 progs/reset_cmd.c | 281 +++++++++++++++++++++-----------------
22 progs/tabs.c | 10 +-
23 progs/tic.c | 4 +
24 6 files changed, 176 insertions(+), 131 deletions(-)
25
26diff --git a/INSTALL b/INSTALL
27index d9c1dd12..d0a39af0 100644
28--- a/INSTALL
29+++ b/INSTALL
30@@ -47,7 +47,7 @@ If you are converting from BSD curses and do not have root access, be sure
31 to read the BSD CONVERSION NOTES section below.
32
33 If you are trying to build applications using gpm with ncurses,
34-read the USING NCURSES WITH GPM section below.
35+read the USING GPM section below.
36
37 If you are cross-compiling, see the note below on BUILDING WITH A CROSS-COMPILER.
38
39@@ -79,7 +79,7 @@ INSTALLATION PROCEDURE:
40 The --prefix option to configure changes the root directory for installing
41 ncurses. The default is normally in subdirectories of /usr/local, except
42 for systems where ncurses is normally installed as a system library (see
43- "IF YOU ARE A SYSTEM INTEGRATOR"). Use --prefix=/usr to replace your
44+ "FOR SYSTEM INTEGRATORS"). Use --prefix=/usr to replace your
45 default curses distribution.
46
47 The package gets installed beneath the --prefix directory as follows:
48@@ -176,7 +176,7 @@ INSTALLATION PROCEDURE:
49 You can make curses and terminfo fall back to an existing file of termcap
50 definitions by configuring with --enable-termcap. If you do this, the
51 library will search /etc/termcap before the terminfo database, and will
52- also interpret the contents of the TERM environment variable. See the
53+ also interpret the contents of the $TERM environment variable. See the
54 section BSD CONVERSION NOTES below.
55
56 3. Type `make'. Ignore any warnings, no error messages should be produced.
57@@ -1231,7 +1231,7 @@ CONFIGURE OPTIONS:
58 Specify a search-list of terminfo directories which will be compiled
59 into the ncurses library (default: DATADIR/terminfo)
60
61- This is a colon-separated list, like the TERMINFO_DIRS environment
62+ This is a colon-separated list, like the $TERMINFO_DIRS environment
63 variable.
64
65 --with-termlib[=XXX]
66diff --git a/include/curses.events b/include/curses.events
67index 25a2583f..468bde18 100644
68--- a/include/curses.events
69+++ b/include/curses.events
70@@ -50,6 +50,6 @@ typedef struct
71 extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
72 extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
73
74-#define KEY_EVENT 0633 /* We were interrupted by an event */
75+#define KEY_EVENT 0634 /* We were interrupted by an event */
76
77 #endif /* NCURSES_WGETCH_EVENTS */
78diff --git a/ncurses/tinfo/lib_tparm.c b/ncurses/tinfo/lib_tparm.c
79index a10a3877..cd972c0f 100644
80--- a/ncurses/tinfo/lib_tparm.c
81+++ b/ncurses/tinfo/lib_tparm.c
82@@ -1113,8 +1113,10 @@ check_string_caps(TPARM_DATA *data, const char *string)
83 want_type = 2; /* function key #1, transmit string #2 */
84 else if (CHECK_CAP(plab_norm))
85 want_type = 2; /* label #1, show string #2 */
86+#ifdef pkey_plab
87 else if (CHECK_CAP(pkey_plab))
88 want_type = 6; /* function key #1, type string #2, show string #3 */
89+#endif
90 #if NCURSES_XNAMES
91 else {
92 char *check;
93diff --git a/progs/reset_cmd.c b/progs/reset_cmd.c
94index eff3af72..aec4b077 100644
95--- a/progs/reset_cmd.c
96+++ b/progs/reset_cmd.c
97@@ -75,6 +75,9 @@ MODULE_ID("$Id: reset_cmd.c,v 1.28 2021/10/02 18:08:44 tom Exp $")
98 # endif
99 #endif
100
101+#define set_flags(target, mask) target |= mask
102+#define clear_flags(target, mask) target &= ~((unsigned)(mask))
103+
104 static FILE *my_file;
105
106 static bool use_reset = FALSE; /* invoked as reset */
107@@ -188,6 +191,79 @@ out_char(int c)
108 #define reset_char(item, value) \
109 tty_settings->c_cc[item] = CHK(tty_settings->c_cc[item], value)
110
111+/*
112+ * Simplify ifdefs
113+ */
114+#ifndef BSDLY
115+#define BSDLY 0
116+#endif
117+#ifndef CRDLY
118+#define CRDLY 0
119+#endif
120+#ifndef ECHOCTL
121+#define ECHOCTL 0
122+#endif
123+#ifndef ECHOKE
124+#define ECHOKE 0
125+#endif
126+#ifndef ECHOPRT
127+#define ECHOPRT 0
128+#endif
129+#ifndef FFDLY
130+#define FFDLY 0
131+#endif
132+#ifndef IMAXBEL
133+#define IMAXBEL 0
134+#endif
135+#ifndef IUCLC
136+#define IUCLC 0
137+#endif
138+#ifndef IXANY
139+#define IXANY 0
140+#endif
141+#ifndef NLDLY
142+#define NLDLY 0
143+#endif
144+#ifndef OCRNL
145+#define OCRNL 0
146+#endif
147+#ifndef OFDEL
148+#define OFDEL 0
149+#endif
150+#ifndef OFILL
151+#define OFILL 0
152+#endif
153+#ifndef OLCUC
154+#define OLCUC 0
155+#endif
156+#ifndef ONLCR
157+#define ONLCR 0
158+#endif
159+#ifndef ONLRET
160+#define ONLRET 0
161+#endif
162+#ifndef ONOCR
163+#define ONOCR 0
164+#endif
165+#ifndef OXTABS
166+#define OXTABS 0
167+#endif
168+#ifndef TAB3
169+#define TAB3 0
170+#endif
171+#ifndef TABDLY
172+#define TABDLY 0
173+#endif
174+#ifndef TOSTOP
175+#define TOSTOP 0
176+#endif
177+#ifndef VTDLY
178+#define VTDLY 0
179+#endif
180+#ifndef XCASE
181+#define XCASE 0
182+#endif
183+
184 /*
185 * Reset the terminal mode bits to a sensible state. Very useful after
186 * a child program dies in raw mode.
187@@ -195,6 +271,10 @@ out_char(int c)
188 void
189 reset_tty_settings(int fd, TTY * tty_settings, int noset)
190 {
191+ unsigned mask;
192+#ifdef TIOCMGET
193+ int modem_bits;
194+#endif
195 GET_TTY(fd, tty_settings);
196
197 #ifdef TERMIOS
198@@ -228,106 +308,65 @@ reset_tty_settings(int fd, TTY * tty_settings, int noset)
199 reset_char(VWERASE, CWERASE);
200 #endif
201
202- tty_settings->c_iflag &= ~((unsigned) (IGNBRK
203- | PARMRK
204- | INPCK
205- | ISTRIP
206- | INLCR
207- | IGNCR
208-#ifdef IUCLC
209- | IUCLC
210-#endif
211-#ifdef IXANY
212- | IXANY
213-#endif
214- | IXOFF));
215-
216- tty_settings->c_iflag |= (BRKINT
217- | IGNPAR
218- | ICRNL
219- | IXON
220-#ifdef IMAXBEL
221- | IMAXBEL
222-#endif
223- );
224-
225- tty_settings->c_oflag &= ~((unsigned) (0
226-#ifdef OLCUC
227- | OLCUC
228-#endif
229-#ifdef OCRNL
230- | OCRNL
231-#endif
232-#ifdef ONOCR
233- | ONOCR
234-#endif
235-#ifdef ONLRET
236- | ONLRET
237-#endif
238-#ifdef OFILL
239- | OFILL
240-#endif
241-#ifdef OFDEL
242- | OFDEL
243-#endif
244-#ifdef NLDLY
245- | NLDLY
246-#endif
247-#ifdef CRDLY
248- | CRDLY
249-#endif
250-#ifdef TABDLY
251- | TABDLY
252-#endif
253-#ifdef BSDLY
254- | BSDLY
255-#endif
256-#ifdef VTDLY
257- | VTDLY
258-#endif
259-#ifdef FFDLY
260- | FFDLY
261-#endif
262- ));
263-
264- tty_settings->c_oflag |= (OPOST
265-#ifdef ONLCR
266- | ONLCR
267-#endif
268- );
269-
270- tty_settings->c_cflag &= ~((unsigned) (CSIZE
271- | CSTOPB
272- | PARENB
273- | PARODD
274- | CLOCAL));
275- tty_settings->c_cflag |= (CS8 | CREAD);
276- tty_settings->c_lflag &= ~((unsigned) (ECHONL
277- | NOFLSH
278-#ifdef TOSTOP
279- | TOSTOP
280-#endif
281-#ifdef ECHOPTR
282- | ECHOPRT
283-#endif
284-#ifdef XCASE
285- | XCASE
286-#endif
287- ));
288-
289- tty_settings->c_lflag |= (ISIG
290- | ICANON
291- | ECHO
292- | ECHOE
293- | ECHOK
294-#ifdef ECHOCTL
295- | ECHOCTL
296-#endif
297-#ifdef ECHOKE
298- | ECHOKE
299-#endif
300- );
301-#endif
302+ clear_flags(tty_settings->c_iflag, (IGNBRK
303+ | PARMRK
304+ | INPCK
305+ | ISTRIP
306+ | INLCR
307+ | IGNCR
308+ | IUCLC
309+ | IXANY
310+ | IXOFF));
311+
312+ set_flags(tty_settings->c_iflag, (BRKINT
313+ | IGNPAR
314+ | ICRNL
315+ | IXON
316+ | IMAXBEL));
317+
318+ clear_flags(tty_settings->c_oflag, (0
319+ | OLCUC
320+ | OCRNL
321+ | ONOCR
322+ | ONLRET
323+ | OFILL
324+ | OFDEL
325+ | NLDLY
326+ | CRDLY
327+ | TABDLY
328+ | BSDLY
329+ | VTDLY
330+ | FFDLY));
331+
332+ set_flags(tty_settings->c_oflag, (OPOST
333+ | ONLCR));
334+
335+ mask = (CSIZE | CSTOPB | PARENB | PARODD);
336+#ifdef TIOCMGET
337+ /* leave clocal alone if this appears to use a modem */
338+ if (ioctl(fd, TIOCMGET, &modem_bits) == -1)
339+ mask |= CLOCAL;
340+#else
341+ /* cannot check - use the behavior from tset */
342+ mask |= CLOCAL;
343+#endif
344+ clear_flags(tty_settings->c_cflag, mask);
345+
346+ set_flags(tty_settings->c_cflag, (CS8 | CREAD));
347+ clear_flags(tty_settings->c_lflag, (ECHONL
348+ | NOFLSH
349+ | TOSTOP
350+ | ECHOPRT
351+ | XCASE));
352+
353+ set_flags(tty_settings->c_lflag, (ISIG
354+ | ICANON
355+ | ECHO
356+ | ECHOE
357+ | ECHOK
358+ | ECHOCTL
359+ | ECHOKE));
360+#endif /* TERMIOS */
361
362 if (!noset) {
363 SET_TTY(fd, tty_settings);
364@@ -402,29 +441,23 @@ set_conversions(TTY * tty_settings)
365 #if defined(EXP_WIN32_DRIVER)
366 /* FIXME */
367 #else
368-#ifdef ONLCR
369- tty_settings->c_oflag |= ONLCR;
370-#endif
371- tty_settings->c_iflag |= ICRNL;
372- tty_settings->c_lflag |= ECHO;
373-#ifdef OXTABS
374- tty_settings->c_oflag |= OXTABS;
375-#endif /* OXTABS */
376+ set_flags(tty_settings->c_oflag, ONLCR);
377+ set_flags(tty_settings->c_iflag, ICRNL);
378+ set_flags(tty_settings->c_lflag, ECHO);
379+ set_flags(tty_settings->c_oflag, OXTABS);
380
381 /* test used to be tgetflag("NL") */
382 if (VALID_STRING(newline) && newline[0] == '\n' && !newline[1]) {
383 /* Newline, not linefeed. */
384-#ifdef ONLCR
385- tty_settings->c_oflag &= ~((unsigned) ONLCR);
386-#endif
387- tty_settings->c_iflag &= ~((unsigned) ICRNL);
388+ clear_flags(tty_settings->c_oflag, ONLCR);
389+ clear_flags(tty_settings->c_iflag, ICRNL);
390 }
391-#ifdef OXTABS
392+#if OXTABS
393 /* test used to be tgetflag("pt") */
394 if (VALID_STRING(set_tab) && VALID_STRING(clear_all_tabs))
395- tty_settings->c_oflag &= ~OXTABS;
396+ clear_flags(tty_settings->c_oflag, OXTABS);
397 #endif /* OXTABS */
398- tty_settings->c_lflag |= (ECHOE | ECHOK);
399+ set_flags(tty_settings->c_lflag, (ECHOE | ECHOK));
400 #endif
401 }
402
403@@ -490,7 +523,7 @@ send_init_strings(int fd GCC_UNUSED, TTY * old_settings)
404 bool need_flush = FALSE;
405
406 (void) old_settings;
407-#ifdef TAB3
408+#if TAB3
409 if (old_settings != 0 &&
410 old_settings->c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
411 old_settings->c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
412@@ -512,22 +545,22 @@ send_init_strings(int fd GCC_UNUSED, TTY * old_settings)
413
414 if (VALID_STRING(clear_margins)) {
415 need_flush |= sent_string(clear_margins);
416- } else
417+ }
418 #if defined(set_lr_margin)
419- if (VALID_STRING(set_lr_margin)) {
420+ else if (VALID_STRING(set_lr_margin)) {
421 need_flush |= sent_string(TIPARM_2(set_lr_margin, 0, columns - 1));
422- } else
423+ }
424 #endif
425 #if defined(set_left_margin_parm) && defined(set_right_margin_parm)
426- if (VALID_STRING(set_left_margin_parm)
427- && VALID_STRING(set_right_margin_parm)) {
428+ else if (VALID_STRING(set_left_margin_parm)
429+ && VALID_STRING(set_right_margin_parm)) {
430 need_flush |= sent_string(TIPARM_1(set_left_margin_parm, 0));
431 need_flush |= sent_string(TIPARM_1(set_right_margin_parm,
432 columns - 1));
433- } else
434+ }
435 #endif
436- if (VALID_STRING(set_left_margin)
437- && VALID_STRING(set_right_margin)) {
438+ else if (VALID_STRING(set_left_margin)
439+ && VALID_STRING(set_right_margin)) {
440 need_flush |= to_left_margin();
441 need_flush |= sent_string(set_left_margin);
442 if (VALID_STRING(parm_right_cursor)) {
443diff --git a/progs/tabs.c b/progs/tabs.c
444index 7378d116..d904330b 100644
445--- a/progs/tabs.c
446+++ b/progs/tabs.c
447@@ -370,7 +370,9 @@ do_set_margin(int margin, bool no_op)
448 }
449 tputs(set_left_margin, 1, putch);
450 }
451- } else if (VALID_STRING(set_left_margin_parm)) {
452+ }
453+#if defined(set_left_margin_parm) && defined(set_right_margin_parm)
454+ else if (VALID_STRING(set_left_margin_parm)) {
455 result = TRUE;
456 if (!no_op) {
457 if (VALID_STRING(set_right_margin_parm)) {
458@@ -379,12 +381,16 @@ do_set_margin(int margin, bool no_op)
459 tputs(TIPARM_2(set_left_margin_parm, margin, max_cols), 1, putch);
460 }
461 }
462- } else if (VALID_STRING(set_lr_margin)) {
463+ }
464+#endif
465+#if defined(set_lr_margin)
466+ else if (VALID_STRING(set_lr_margin)) {
467 result = TRUE;
468 if (!no_op) {
469 tputs(TIPARM_2(set_lr_margin, margin, max_cols), 1, putch);
470 }
471 }
472+#endif
473 return result;
474 }
475
476diff --git a/progs/tic.c b/progs/tic.c
477index 888927e2..78b568fa 100644
478--- a/progs/tic.c
479+++ b/progs/tic.c
480@@ -3142,6 +3142,7 @@ guess_ANSI_VTxx(TERMTYPE2 *tp)
481 * In particular, any ECMA-48 terminal should support these, though the details
482 * for u9 are implementation dependent.
483 */
484+#if defined(user6) && defined(user7) && defined(user8) && defined(user9)
485 static void
486 check_user_6789(TERMTYPE2 *tp)
487 {
488@@ -3177,6 +3178,9 @@ check_user_6789(TERMTYPE2 *tp)
489 break;
490 }
491 }
492+#else
493+#define check_user_6789(tp) /* nothing */
494+#endif
495
496 /* other sanity-checks (things that we don't want in the normal
497 * logic that reads a terminfo entry)
498--
4992.40.0
diff --git a/meta/recipes-core/ncurses/files/0001-tic-hang.patch b/meta/recipes-core/ncurses/files/0001-tic-hang.patch
index f98a943e5c..8cb92a3939 100644
--- a/meta/recipes-core/ncurses/files/0001-tic-hang.patch
+++ b/meta/recipes-core/ncurses/files/0001-tic-hang.patch
@@ -1,7 +1,7 @@
1From 168ba7a681be73ac024438e33e14fde1d5aea97d Mon Sep 17 00:00:00 2001 1From a51a53f0eecfd4d083aba8dfcd47c65e93978ff1 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 30 Mar 2018 10:02:24 +0800 3Date: Fri, 30 Mar 2018 10:02:24 +0800
4Subject: [PATCH 1/2] tic hang 4Subject: [PATCH] tic hang
5 5
6Upstream-Status: Inappropriate [configuration] 6Upstream-Status: Inappropriate [configuration]
7 7
@@ -17,10 +17,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17 1 file changed, 5 insertions(+), 6 deletions(-) 17 1 file changed, 5 insertions(+), 6 deletions(-)
18 18
19diff --git a/misc/terminfo.src b/misc/terminfo.src 19diff --git a/misc/terminfo.src b/misc/terminfo.src
20index 84f4810..6b385ec 100644 20index 5d575b8e..f9cc6880 100644
21--- a/misc/terminfo.src 21--- a/misc/terminfo.src
22+++ b/misc/terminfo.src 22+++ b/misc/terminfo.src
23@@ -5562,12 +5562,11 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm, 23@@ -6518,12 +6518,11 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
24 # The value for kbs (see konsole-vt100) reflects local customization rather 24 # The value for kbs (see konsole-vt100) reflects local customization rather
25 # than the settings used for XFree86 xterm. 25 # than the settings used for XFree86 xterm.
26 konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm, 26 konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
@@ -38,6 +38,3 @@ index 84f4810..6b385ec 100644
38 38
39 # Obsolete: vt100.keymap 39 # Obsolete: vt100.keymap
40 # KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but 40 # KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
41--
421.8.3.1
43
diff --git a/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch b/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
index 66f26c06ab..11ca66c8e8 100644
--- a/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
+++ b/meta/recipes-core/ncurses/files/0002-configure-reproducible.patch
@@ -1,4 +1,4 @@
1From ec87e53066a9942e9aaba817d71268342f5e83b9 Mon Sep 17 00:00:00 2001 1From 63cf58044f4ab3297c5a2d0e132e87ebfa80c753 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Wed, 16 Aug 2017 14:45:27 +0800 3Date: Wed, 16 Aug 2017 14:45:27 +0800
4Subject: [PATCH] configure: reproducible 4Subject: [PATCH] configure: reproducible
@@ -13,16 +13,15 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
13Rebase to 6.1 13Rebase to 6.1
14 14
15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16
17--- 16---
18 configure | 2 +- 17 configure | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-) 18 1 file changed, 1 insertion(+), 1 deletion(-)
20 19
21diff --git a/configure b/configure 20diff --git a/configure b/configure
22index 421cf859..a1b7840d 100755 21index 488d93fc..005d44e2 100755
23--- a/configure 22--- a/configure
24+++ b/configure 23+++ b/configure
25@@ -5072,7 +5072,7 @@ else 24@@ -5129,7 +5129,7 @@ else
26 ;; 25 ;;
27 (*) 26 (*)
28 cf_cv_ar_flags=unknown 27 cf_cv_ar_flags=unknown
diff --git a/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch b/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
index a15694d4d4..d89399bbe5 100644
--- a/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
+++ b/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
@@ -1,4 +1,4 @@
1From 10cd0c12a6e14fb4f0498c299c1dd32720b710da Mon Sep 17 00:00:00 2001 1From 5962a5ee2885f67a396f7e8955ac1bbd7f15d4aa Mon Sep 17 00:00:00 2001
2From: Nathan Rossi <nathan@nathanrossi.com> 2From: Nathan Rossi <nathan@nathanrossi.com>
3Date: Mon, 14 Dec 2020 13:39:02 +1000 3Date: Mon, 14 Dec 2020 13:39:02 +1000
4Subject: [PATCH] gen-pkgconfig.in: Do not include LDFLAGS in generated pc 4Subject: [PATCH] gen-pkgconfig.in: Do not include LDFLAGS in generated pc
@@ -10,13 +10,12 @@ includes build host specific paths and options (e.g. uninative and
10 10
11Upstream-Status: Inappropriate [OE Specific] 11Upstream-Status: Inappropriate [OE Specific]
12Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> 12Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
13
14--- 13---
15 misc/gen-pkgconfig.in | 2 +- 14 misc/gen-pkgconfig.in | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-) 15 1 file changed, 1 insertion(+), 1 deletion(-)
17 16
18diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in 17diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
19index a45dd54f..85273054 100644 18index 89a5cd4a..07d94d17 100644
20--- a/misc/gen-pkgconfig.in 19--- a/misc/gen-pkgconfig.in
21+++ b/misc/gen-pkgconfig.in 20+++ b/misc/gen-pkgconfig.in
22@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; then 21@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; then
diff --git a/meta/recipes-core/ncurses/files/exit_prototype.patch b/meta/recipes-core/ncurses/files/exit_prototype.patch
index fd961512e0..299852d2c0 100644
--- a/meta/recipes-core/ncurses/files/exit_prototype.patch
+++ b/meta/recipes-core/ncurses/files/exit_prototype.patch
@@ -1,28 +1,27 @@
1From 4a769a441d7e57a23017c3037cde3e53fb9f35fe Mon Sep 17 00:00:00 2001 1From af798dceafec8a9ea3f83fc250d784511ca0a29c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 30 Aug 2022 15:58:32 -0700 3Date: Tue, 30 Aug 2022 15:58:32 -0700
4Subject: [PATCH] Add needed headers for including mbstate_t and exit() 4Subject: [PATCH] Add needed headers for including mbstate_t and exit()
5 5
6Upstream-Status: Inappropriate [Reconfigure will solve it] 6Upstream-Status: Inappropriate [Reconfigure will solve it]
7Signed-off-by: Khem Raj <raj.khem@gmail.com> 7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9--- 8---
10 configure | 2 ++ 9 configure | 2 ++
11 1 file changed, 2 insertions(+) 10 1 file changed, 2 insertions(+)
12 11
13diff --git a/configure b/configure 12diff --git a/configure b/configure
14index f377f551..163f8899 100755 13index 005d44e2..72fa6c23 100755
15--- a/configure 14--- a/configure
16+++ b/configure 15+++ b/configure
17@@ -3423,6 +3423,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext" 16@@ -3462,6 +3462,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
18 cat >"conftest.$ac_ext" <<_ACEOF 17 cat >"conftest.$ac_ext" <<_ACEOF
19 #line 3424 "configure" 18 #line 3463 "configure"
20 #include "confdefs.h" 19 #include "confdefs.h"
21+#include <stdlib.h> 20+#include <stdlib.h>
22 $ac_declaration 21 $ac_declaration
23 int 22 int
24 main (void) 23 main (void)
25@@ -13111,6 +13112,7 @@ cat >"conftest.$ac_ext" <<_ACEOF 24@@ -13533,6 +13534,7 @@ cat >"conftest.$ac_ext" <<_ACEOF
26 #include <stdlib.h> 25 #include <stdlib.h>
27 #include <stdarg.h> 26 #include <stdarg.h>
28 #include <stdio.h> 27 #include <stdio.h>
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index 761b6a3d31..951f96beb5 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -2,7 +2,7 @@ SUMMARY = "The New Curses library"
2DESCRIPTION = "SVr4 and XSI-Curses compatible curses library and terminfo tools including tic, infocmp, captoinfo. Supports color, multiple highlights, forms-drawing characters, and automatic recognition of keypad and function-key sequences. Extensions include resizable windows and mouse support on both xterm and Linux console using the gpm library." 2DESCRIPTION = "SVr4 and XSI-Curses compatible curses library and terminfo tools including tic, infocmp, captoinfo. Supports color, multiple highlights, forms-drawing characters, and automatic recognition of keypad and function-key sequences. Extensions include resizable windows and mouse support on both xterm and Linux console using the gpm library."
3HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html" 3HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=c5a4600fdef86384c41ca33ecc70a4b8;endline=27" 5LIC_FILES_CHKSUM = "file://COPYING;md5=6f291ee54551d9d8d992ecd623fe4bc7;endline=27"
6SECTION = "libs" 6SECTION = "libs"
7DEPENDS = "ncurses-native" 7DEPENDS = "ncurses-native"
8DEPENDS:class-native = "" 8DEPENDS:class-native = ""
@@ -13,15 +13,13 @@ BINCONFIG = "${bindir}/ncurses5-config ${bindir}/ncursesw5-config \
13inherit autotools binconfig-disabled multilib_header pkgconfig 13inherit autotools binconfig-disabled multilib_header pkgconfig
14 14
15# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/ 15# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/
16SRC_URI = "git://github.com/mirror/ncurses.git;protocol=https;branch=master" 16SRC_URI = "git://github.com/ThomasDickey/ncurses-snapshots.git;protocol=https;branch=master"
17 17
18EXTRA_AUTORECONF = "-I m4" 18EXTRA_AUTORECONF = "-I m4"
19 19
20CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes" 20CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes"
21CACHED_CONFIGUREVARS:append:linux = " cf_cv_working_poll=yes" 21CACHED_CONFIGUREVARS:append:linux = " cf_cv_working_poll=yes"
22 22
23EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'"
24
25# Whether to enable separate widec libraries; must be 'true' or 'false' 23# Whether to enable separate widec libraries; must be 'true' or 'false'
26# 24#
27# TODO: remove this variable when widec is supported in every setup? 25# TODO: remove this variable when widec is supported in every setup?
@@ -30,6 +28,9 @@ ENABLE_WIDEC ?= "true"
30# _GNU_SOURCE is required for widec stuff and is not detected automatically 28# _GNU_SOURCE is required for widec stuff and is not detected automatically
31CPPFLAGS += "-D_GNU_SOURCE" 29CPPFLAGS += "-D_GNU_SOURCE"
32 30
31# Check if we still need it when next release (6.6) happens
32CFLAGS += "-std=gnu17"
33
33# natives don't generally look in base_libdir 34# natives don't generally look in base_libdir
34base_libdir:class-native = "${libdir}" 35base_libdir:class-native = "${libdir}"
35 36
@@ -72,6 +73,7 @@ ncurses_configure() {
72 --without-debug \ 73 --without-debug \
73 --without-ada \ 74 --without-ada \
74 --without-gpm \ 75 --without-gpm \
76 --with-xterm-kbs=del \
75 --enable-hard-tabs \ 77 --enable-hard-tabs \
76 --enable-xmc-glitch \ 78 --enable-xmc-glitch \
77 --enable-colorfgbg \ 79 --enable-colorfgbg \
@@ -173,7 +175,6 @@ do_install() {
173 oe_runmake -C narrowc ${_install_cfgs} \ 175 oe_runmake -C narrowc ${_install_cfgs} \
174 install.data 176 install.data
175 177
176
177 ! ${ENABLE_WIDEC} || \ 178 ! ${ENABLE_WIDEC} || \
178 oe_runmake -C widec ${_install_cfgs} ${_install_opts} 179 oe_runmake -C widec ${_install_cfgs} ${_install_opts}
179 180
@@ -181,7 +182,7 @@ do_install() {
181 182
182 # include some basic terminfo files 183 # include some basic terminfo files
183 # stolen ;) from gentoo and modified a bit 184 # stolen ;) from gentoo and modified a bit
184 for x in ansi console dumb linux rxvt screen screen-256color sun vt52 vt100 vt102 vt200 vt220 xterm-color xterm-xfree86 xterm-256color 185 for x in alacritty ansi console dumb linux rxvt screen screen-256color sun vt52 vt100 vt102 vt200 vt220 xterm-color xterm-xfree86 xterm-256color
185 do 186 do
186 local termfile="$(find "${D}${datadir}/terminfo/" -name "${x}" 2>/dev/null)" 187 local termfile="$(find "${D}${datadir}/terminfo/" -name "${x}" 2>/dev/null)"
187 local basedir="$(basename $(dirname "${termfile}"))" 188 local basedir="$(basename $(dirname "${termfile}"))"
@@ -261,7 +262,6 @@ python populate_packages:prepend () {
261 do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) 262 do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True)
262} 263}
263 264
264
265inherit update-alternatives 265inherit update-alternatives
266 266
267ALTERNATIVE_PRIORITY = "100" 267ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-core/ncurses/ncurses_6.4.bb b/meta/recipes-core/ncurses/ncurses_6.5.bb
index 2c621525f9..bba3495266 100644
--- a/meta/recipes-core/ncurses/ncurses_6.4.bb
+++ b/meta/recipes-core/ncurses/ncurses_6.5.bb
@@ -4,14 +4,11 @@ SRC_URI += "file://0001-tic-hang.patch \
4 file://0002-configure-reproducible.patch \ 4 file://0002-configure-reproducible.patch \
5 file://0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch \ 5 file://0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch \
6 file://exit_prototype.patch \ 6 file://exit_prototype.patch \
7 file://0001-Fix-CVE-2023-29491.patch \
8 file://0001-Updating-reset-code-ncurses-6.4-patch-20231104.patch \
9 " 7 "
10# commit id corresponds to the revision in package version 8# commit id corresponds to the revision in package version
11SRCREV = "79b9071f2be20a24c7be031655a5638f6032f29f" 9SRCREV = "1c55d64d9d3e00399a21f04e9cac1e472ab5f70a"
12S = "${WORKDIR}/git"
13EXTRA_OECONF += "--with-abi-version=5" 10EXTRA_OECONF += "--with-abi-version=5"
14UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)$" 11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+_\d+)$"
15 12
16# This is needed when using patchlevel versions like 6.1+20181013 13# This is needed when using patchlevel versions like 6.1+20181013
17#CVE_VERSION = "${@d.getVar("PV").split('+')[0]}.${@d.getVar("PV").split('+')[1]}" 14#CVE_VERSION = "${@d.getVar("PV").split('+')[0]}.${@d.getVar("PV").split('+')[1]}"
diff --git a/meta/recipes-core/ncurses/site_config/headers b/meta/recipes-core/ncurses/site_config/headers
deleted file mode 100644
index 087b7bfd5e..0000000000
--- a/meta/recipes-core/ncurses/site_config/headers
+++ /dev/null
@@ -1,5 +0,0 @@
1curses.h
2ncurses/curses.h
3ncurses.h
4ncurses/termcap.h
5
diff --git a/meta/recipes-core/netbase/netbase_6.4.bb b/meta/recipes-core/netbase/netbase_6.5.bb
index 5a448a4b91..c6cf798421 100644
--- a/meta/recipes-core/netbase/netbase_6.4.bb
+++ b/meta/recipes-core/netbase/netbase_6.5.bb
@@ -10,7 +10,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz"
10 10
11inherit allarch 11inherit allarch
12 12
13SRC_URI[sha256sum] = "fa6621826ff1150e581bd90bc3c8a4ecafe5df90404f207db6dcdf2c75f26ad7" 13SRC_URI[sha256sum] = "9116047aebbaa1698934052d01c6e09b4c3aed643e93df63d2ddcbec243c26d1"
14 14
15UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/" 15UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
16 16
@@ -22,4 +22,4 @@ do_install () {
22 install -m 0644 ${S}/etc/ethertypes ${D}${sysconfdir}/ethertypes 22 install -m 0644 ${S}/etc/ethertypes ${D}${sysconfdir}/ethertypes
23} 23}
24 24
25S = "${WORKDIR}/netbase" 25S = "${UNPACKDIR}/netbase"
diff --git a/meta/recipes-core/newlib/libgloss_git.bb b/meta/recipes-core/newlib/libgloss_git.bb
index 7e34e33c7a..92bb81050b 100644
--- a/meta/recipes-core/newlib/libgloss_git.bb
+++ b/meta/recipes-core/newlib/libgloss_git.bb
@@ -6,7 +6,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/libgloss:"
6 6
7SRC_URI:append = " file://libgloss-build-without-nostdinc.patch" 7SRC_URI:append = " file://libgloss-build-without-nostdinc.patch"
8SRC_URI:append:powerpc = " file://fix-rs6000-crt0.patch" 8SRC_URI:append:powerpc = " file://fix-rs6000-crt0.patch"
9SRC_URI:append:powerpc = " file://fix-rs6000-cflags.patch"
10 9
11do_configure() { 10do_configure() {
12 ${S}/libgloss/configure ${EXTRA_OECONF} 11 ${S}/libgloss/configure ${EXTRA_OECONF}
@@ -22,8 +21,12 @@ do_install:append() {
22 install -d ${D}${libdir} 21 install -d ${D}${libdir}
23 mv -v ${D}${prefix}/${TARGET_SYS}/lib/* ${D}${libdir} 22 mv -v ${D}${prefix}/${TARGET_SYS}/lib/* ${D}${libdir}
24 23
25 # Remove original directory 24 # Remove original directory
26 rmdir -p --ignore-fail-on-non-empty ${D}${prefix}/${TARGET_SYS}/lib 25 rmdir -p --ignore-fail-on-non-empty ${D}${prefix}/${TARGET_SYS}/lib
26 # Remove empty include dir
27 rmdir ${D}/${prefix}/${TARGET_SYS}/include
28 rmdir ${D}/${prefix}/${TARGET_SYS}/
29
27} 30}
28 31
29# Split packages correctly 32# Split packages correctly
diff --git a/meta/recipes-core/newlib/newlib.inc b/meta/recipes-core/newlib/newlib.inc
index 6113f5e831..a8794dd1d9 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -8,26 +8,32 @@ LIC_FILES_CHKSUM = " \
8 file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ 8 file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
9 file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ 9 file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
10 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ 10 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://COPYING.LIBGLOSS;md5=c0469b6ebb847a75781066be515f032d \ 11 file://COPYING.LIBGLOSS;md5=faa6f6ad545714df2a7d1276ed899f15 \
12 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ 12 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
13 file://COPYING.NEWLIB;md5=4f1a15846ffee91e352418563e1bce27 \ 13 file://COPYING.NEWLIB;md5=61255563bbcda142f581b94591b6a589 \
14 file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \ 14 file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \
15 " 15 "
16 16
17BASEVER = "4.4.0" 17BASEVER = "4.5.0"
18PV = "${BASEVER}+git" 18PV = "${BASEVER}+git"
19SRC_URI = "git://sourceware.org/git/newlib-cygwin.git;protocol=https;branch=main" 19SRC_URI = "git://sourceware.org/git/newlib-cygwin.git;protocol=https;branch=main"
20SRCREV="ad11e2587f83d61357a32c61c36d72ea4f39315e" 20SRCREV = "5e5e51f1dc56a99eb4648c28e00d73b6ea44a8b0"
21 21
22INHIBIT_DEFAULT_DEPS = "1" 22INHIBIT_DEFAULT_DEPS = "1"
23DEPENDS = "virtual/${TARGET_PREFIX}gcc" 23DEPENDS = "virtual/cross-cc"
24 24
25S = "${WORKDIR}/git"
26B = "${WORKDIR}/build" 25B = "${WORKDIR}/build"
27 26
28## disable stdlib 27## disable stdlib
29TARGET_CC_ARCH:append = " -nostdlib" 28TARGET_CC_ARCH:append = " -nostdlib"
30 29
30# Both the C library and the application should share the same mcmodel.
31# Use the medium-any code model for the RISC-V 64 bit implementation,
32# since medlow can only access addresses below 0x80000000 and RAM
33# starts at 0x80000000 on RISC-V 64
34# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB)
35TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
36
31EXTRA_OECONF = " \ 37EXTRA_OECONF = " \
32 --build=${BUILD_SYS} \ 38 --build=${BUILD_SYS} \
33 --target=${TARGET_SYS} \ 39 --target=${TARGET_SYS} \
diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
index 8906906bc3..e1906d05d8 100644
--- a/meta/recipes-core/os-release/os-release.bb
+++ b/meta/recipes-core/os-release/os-release.bb
@@ -24,7 +24,7 @@ ID = "${DISTRO}"
24NAME = "${DISTRO_NAME}" 24NAME = "${DISTRO_NAME}"
25VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}" 25VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
26VERSION_ID = "${DISTRO_VERSION}" 26VERSION_ID = "${DISTRO_VERSION}"
27VERSION_CODENAME = "${DISTRO_CODENAME}" 27VERSION_CODENAME = "${@d.getVar('DISTRO_CODENAME') or ''}"
28PRETTY_NAME = "${DISTRO_NAME} ${VERSION}" 28PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
29 29
30# The vendor field is hardcoded to "openembedded" deliberately. We'd 30# The vendor field is hardcoded to "openembedded" deliberately. We'd
@@ -38,7 +38,7 @@ PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
38# the CPE. 38# the CPE.
39 39
40CPE_DISTRO ??= "${DISTRO}" 40CPE_DISTRO ??= "${DISTRO}"
41CPE_NAME="cpe:/o:openembedded:${CPE_DISTRO}:${VERSION_ID}" 41CPE_NAME = "cpe:/o:openembedded:${CPE_DISTRO}:${VERSION_ID}"
42 42
43BUILD_ID ?= "${DATETIME}" 43BUILD_ID ?= "${DATETIME}"
44BUILD_ID[vardepsexclude] = "DATETIME" 44BUILD_ID[vardepsexclude] = "DATETIME"
diff --git a/meta/recipes-core/ovmf/ovmf-shell-image.bb b/meta/recipes-core/ovmf/ovmf-shell-image.bb
index 4d7958eb5f..5aafba97e0 100644
--- a/meta/recipes-core/ovmf/ovmf-shell-image.bb
+++ b/meta/recipes-core/ovmf/ovmf-shell-image.bb
@@ -1,5 +1,5 @@
1SUMMARY = "boot image with UEFI shell and tools" 1SUMMARY = "boot image with UEFI shell and tools"
2COMPATIBLE_HOST:class-target='(i.86|x86_64).*' 2COMPATIBLE_HOST:class-target = '(i.86|x86_64).*'
3 3
4# For this image recipe, only the wic format with a 4# For this image recipe, only the wic format with a
5# single vfat partition makes sense. Because we have no 5# single vfat partition makes sense. Because we have no
diff --git a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
index 490d9e8046..cee5042846 100644
--- a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
@@ -1,4 +1,4 @@
1From d8df6b6433351763e1db791dd84d432983d2b249 Mon Sep 17 00:00:00 2001 1From 61583b59620946683551f43c6110e656604a252f Mon Sep 17 00:00:00 2001
2From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> 2From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
3Date: Thu, 9 Jun 2016 02:23:01 -0700 3Date: Thu, 9 Jun 2016 02:23:01 -0700
4Subject: [PATCH 1/4] ovmf: update path to native BaseTools 4Subject: [PATCH 1/4] ovmf: update path to native BaseTools
@@ -16,7 +16,7 @@ Upstream-Status: Inappropriate [oe-core cross compile specific]
16 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
17 17
18diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh 18diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
19index b0334fb76e..094f86f096 100755 19index 279f0d099a..285f061bf4 100755
20--- a/OvmfPkg/build.sh 20--- a/OvmfPkg/build.sh
21+++ b/OvmfPkg/build.sh 21+++ b/OvmfPkg/build.sh
22@@ -24,7 +24,7 @@ then 22@@ -24,7 +24,7 @@ then
@@ -29,5 +29,5 @@ index b0334fb76e..094f86f096 100755
29 source edksetup.sh BaseTools 29 source edksetup.sh BaseTools
30 else 30 else
31-- 31--
322.30.2 322.39.5
33 33
diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index eeedc9e20f..11d97c739a 100644
--- a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,7 +1,7 @@
1From ac9df4fb92965f1f95a5bdbde5f2f86d0c569711 Mon Sep 17 00:00:00 2001 1From aacbf7c91732b9959e569e90844cf9de078b2f14 Mon Sep 17 00:00:00 2001
2From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> 2From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
3Date: Fri, 26 Jul 2019 17:34:26 -0400 3Date: Fri, 26 Jul 2019 17:34:26 -0400
4Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake 4Subject: [PATCH 2/4] BaseTools: makefile: adjust to build in under bitbake
5 5
6Prepend the build flags with those of bitbake. This is to build 6Prepend the build flags with those of bitbake. This is to build
7using the bitbake native sysroot include and library directories. 7using the bitbake native sysroot include and library directories.
@@ -65,5 +65,5 @@ index d369908a09..22c670f316 100644
65 # 65 #
66 # Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults 66 # Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults
67-- 67--
682.30.2 682.39.5
69 69
diff --git a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
index c0c763c1cf..4a20548c61 100644
--- a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
+++ b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
@@ -1,4 +1,4 @@
1From 03e536b20d0b72cf078052f6748de8df3836625c Mon Sep 17 00:00:00 2001 1From 96fa2a7f2f54f1e6330275b5eba07e1efdbd865b Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 14 Jun 2021 19:56:28 +0200 3Date: Mon, 14 Jun 2021 19:56:28 +0200
4Subject: [PATCH 3/4] debug prefix map 4Subject: [PATCH 3/4] debug prefix map
@@ -21,20 +21,18 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
21 BaseTools/Conf/tools_def.template | 18 +++++++++--------- 21 BaseTools/Conf/tools_def.template | 18 +++++++++---------
22 1 file changed, 9 insertions(+), 9 deletions(-) 22 1 file changed, 9 insertions(+), 9 deletions(-)
23 23
24diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
25index 503a6687c1..10ac38ef9e 100755
26--- a/BaseTools/Conf/tools_def.template 24--- a/BaseTools/Conf/tools_def.template
27+++ b/BaseTools/Conf/tools_def.template 25+++ b/BaseTools/Conf/tools_def.template
28@@ -739,7 +739,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_ 26@@ -920,7 +920,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --a
29 *_*_*_DTCPP_PATH = DEF(DTCPP_BIN)
30 *_*_*_DTC_PATH = DEF(DTC_BIN) 27 *_*_*_DTC_PATH = DEF(DTC_BIN)
31 28
32-DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common 29 # All supported GCC archs except LOONGARCH64 support -mstack-protector-guard=global, so set that on everything except LOONGARCH64
33+DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ENV(GCC_PREFIX_MAP) 30-DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -fstack-protector
34 DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie 31+DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -fstack-protector ENV(GCC_PREFIX_MAP)
35 DEFINE GCC_LOONGARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mabi=lp64d -fno-asynchronous-unwind-tables -fno-plt -Wno-address -fno-short-enums -fsigned-char -ffunction-sections -fdata-sections 32 DEFINE GCC_IA32_X64_CC_FLAGS = -mstack-protector-guard=global
36 DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access 33 DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie -mstack-protector-guard=global
37@@ -759,8 +759,8 @@ DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,Refere 34 DEFINE GCC_LOONGARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mabi=lp64d -fno-asynchronous-unwind-tables -Wno-address -fno-short-enums -fsigned-char -ffunction-sections -fdata-sections
35@@ -941,8 +941,8 @@ DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF
38 DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) 36 DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
39 DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) 37 DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
40 DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map 38 DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
@@ -45,7 +43,7 @@ index 503a6687c1..10ac38ef9e 100755
45 DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h 43 DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
46 DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h 44 DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h
47 DEFINE GCC_ASLCC_FLAGS = -x c 45 DEFINE GCC_ASLCC_FLAGS = -x c
48@@ -913,7 +913,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS = -mabi=lp64d -march=loongarch64 DEF( 46@@ -1095,7 +1095,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS
49 *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) 47 *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS)
50 *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) 48 *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
51 *_GCC48_IA32_OBJCOPY_FLAGS = 49 *_GCC48_IA32_OBJCOPY_FLAGS =
@@ -54,7 +52,7 @@ index 503a6687c1..10ac38ef9e 100755
54 52
55 DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) 53 DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS)
56 RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set-variable 54 RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set-variable
57@@ -941,7 +941,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set 55@@ -1123,7 +1123,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(
58 *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS) 56 *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS)
59 *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) 57 *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
60 *_GCC48_X64_OBJCOPY_FLAGS = 58 *_GCC48_X64_OBJCOPY_FLAGS =
@@ -63,7 +61,7 @@ index 503a6687c1..10ac38ef9e 100755
63 61
64 DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) 62 DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS)
65 RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Wno-unused-but-set-variable 63 RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Wno-unused-but-set-variable
66@@ -1050,7 +1050,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s 64@@ -1232,7 +1232,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(G
67 *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS) 65 *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS)
68 *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) 66 *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
69 *_GCC49_IA32_OBJCOPY_FLAGS = 67 *_GCC49_IA32_OBJCOPY_FLAGS =
@@ -72,7 +70,7 @@ index 503a6687c1..10ac38ef9e 100755
72 70
73 DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) 71 DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS)
74 RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable 72 RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
75@@ -1078,7 +1078,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set 73@@ -1260,7 +1260,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(
76 *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS) 74 *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS)
77 *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) 75 *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
78 *_GCC49_X64_OBJCOPY_FLAGS = 76 *_GCC49_X64_OBJCOPY_FLAGS =
@@ -81,7 +79,7 @@ index 503a6687c1..10ac38ef9e 100755
81 79
82 DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) 80 DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS)
83 RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable 81 RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
84@@ -1337,7 +1337,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 82@@ -1519,7 +1519,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS
85 *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie 83 *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
86 *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) 84 *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
87 *_GCC5_IA32_OBJCOPY_FLAGS = 85 *_GCC5_IA32_OBJCOPY_FLAGS =
@@ -90,7 +88,7 @@ index 503a6687c1..10ac38ef9e 100755
90 88
91 DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto 89 DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto
92 DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 90 DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
93@@ -1369,7 +1369,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, 91@@ -1551,7 +1551,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(G
94 *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) 92 *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)
95 *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) 93 *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
96 *_GCC5_X64_OBJCOPY_FLAGS = 94 *_GCC5_X64_OBJCOPY_FLAGS =
@@ -99,6 +97,3 @@ index 503a6687c1..10ac38ef9e 100755
99 97
100 DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO 98 DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO
101 DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os 99 DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
102--
1032.30.2
104
diff --git a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
index c3fdc3d863..0ddb86f530 100644
--- a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
+++ b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
@@ -1,4 +1,4 @@
1From c59850367a190d70dec43e0a66f399a4d8a5ffed Mon Sep 17 00:00:00 2001 1From fc2d3c17ff2a7b39e8d47b788eeaac5e1487cdee Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 14 Jun 2021 19:57:30 +0200 3Date: Mon, 14 Jun 2021 19:57:30 +0200
4Subject: [PATCH 4/4] reproducible 4Subject: [PATCH 4/4] reproducible
@@ -34,13 +34,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
34 .../Source/Python/AutoGen/ModuleAutoGen.py | 5 +++- 34 .../Source/Python/AutoGen/ModuleAutoGen.py | 5 +++-
35 4 files changed, 24 insertions(+), 16 deletions(-) 35 4 files changed, 24 insertions(+), 16 deletions(-)
36 36
37diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
38index 9c17c90b16..fcc7864141 100644
39--- a/BaseTools/Source/C/GenFw/Elf64Convert.c 37--- a/BaseTools/Source/C/GenFw/Elf64Convert.c
40+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c 38+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
41@@ -15,6 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent 39@@ -15,6 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Pa
42 #ifndef __GNUC__
43 #include <windows.h> 40 #include <windows.h>
41 #undef RUNTIME_FUNCTION
44 #include <io.h> 42 #include <io.h>
45+#else 43+#else
46+#define _GNU_SOURCE 44+#define _GNU_SOURCE
@@ -56,7 +54,7 @@ index 9c17c90b16..fcc7864141 100644
56 54
57 // 55 //
58 // Add more space in the .debug data region for the DllCharacteristicsEx 56 // Add more space in the .debug data region for the DllCharacteristicsEx
59@@ -2261,7 +2263,7 @@ WriteDebug64 ( 57@@ -2310,7 +2312,7 @@ WriteDebug64 (
60 EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; 58 EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;
61 EFI_IMAGE_DEBUG_EX_DLLCHARACTERISTICS_ENTRY *DllEntry; 59 EFI_IMAGE_DEBUG_EX_DLLCHARACTERISTICS_ENTRY *DllEntry;
62 60
@@ -65,7 +63,7 @@ index 9c17c90b16..fcc7864141 100644
65 63
66 NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); 64 NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
67 DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]; 65 DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];
68@@ -2294,7 +2296,7 @@ WriteDebug64 ( 66@@ -2343,7 +2345,7 @@ WriteDebug64 (
69 67
70 Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); 68 Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
71 Nb10->Signature = CODEVIEW_SIGNATURE_NB10; 69 Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
@@ -74,8 +72,6 @@ index 9c17c90b16..fcc7864141 100644
74 } 72 }
75 73
76 STATIC 74 STATIC
77diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py
78index 752a1a1f6a..02054cccf8 100644
79--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py 75--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py
80+++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py 76+++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py
81@@ -70,6 +70,9 @@ class TargetDescBlock(object): 77@@ -70,6 +70,9 @@ class TargetDescBlock(object):
@@ -88,11 +84,9 @@ index 752a1a1f6a..02054cccf8 100644
88 def AddInput(self, Input): 84 def AddInput(self, Input):
89 if Input not in self.Inputs: 85 if Input not in self.Inputs:
90 self.Inputs.append(Input) 86 self.Inputs.append(Input)
91diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
92index daec9c6d54..0e8cc20efe 100755
93--- a/BaseTools/Source/Python/AutoGen/GenMake.py 87--- a/BaseTools/Source/Python/AutoGen/GenMake.py
94+++ b/BaseTools/Source/Python/AutoGen/GenMake.py 88+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
95@@ -575,7 +575,7 @@ cleanlib: 89@@ -576,7 +576,7 @@ cleanlib:
96 os.remove(RespFileList) 90 os.remove(RespFileList)
97 91
98 # convert source files and binary files to build targets 92 # convert source files and binary files to build targets
@@ -101,7 +95,7 @@ index daec9c6d54..0e8cc20efe 100755
101 if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: 95 if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0:
102 EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", 96 EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build",
103 ExtraData="[%s]" % str(MyAgo)) 97 ExtraData="[%s]" % str(MyAgo))
104@@ -726,7 +726,7 @@ cleanlib: 98@@ -727,7 +727,7 @@ cleanlib:
105 OutputFile = '' 99 OutputFile = ''
106 DepsFileList = [] 100 DepsFileList = []
107 101
@@ -110,7 +104,7 @@ index daec9c6d54..0e8cc20efe 100755
110 if Cmd[2]: 104 if Cmd[2]:
111 for CopyCmd in Cmd[2]: 105 for CopyCmd in Cmd[2]:
112 Src, Dst = CopyCmd 106 Src, Dst = CopyCmd
113@@ -759,7 +759,7 @@ cleanlib: 107@@ -760,7 +760,7 @@ cleanlib:
114 self.BuildTargetList.append('\t%s' % CmdString) 108 self.BuildTargetList.append('\t%s' % CmdString)
115 109
116 self.ParseSecCmd(DepsFileList, Cmd[1]) 110 self.ParseSecCmd(DepsFileList, Cmd[1])
@@ -119,7 +113,7 @@ index daec9c6d54..0e8cc20efe 100755
119 self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile))) 113 self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile)))
120 self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd)) 114 self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd))
121 self.FfsOutputFileList = [] 115 self.FfsOutputFileList = []
122@@ -798,13 +798,13 @@ cleanlib: 116@@ -799,13 +799,13 @@ cleanlib:
123 117
124 def CommandExceedLimit(self): 118 def CommandExceedLimit(self):
125 FlagDict = { 119 FlagDict = {
@@ -140,7 +134,7 @@ index daec9c6d54..0e8cc20efe 100755
140 } 134 }
141 135
142 RespDict = {} 136 RespDict = {}
143@@ -1007,9 +1007,9 @@ cleanlib: 137@@ -1019,9 +1019,9 @@ cleanlib:
144 if not self.ObjTargetDict.get(T.Target.SubDir): 138 if not self.ObjTargetDict.get(T.Target.SubDir):
145 self.ObjTargetDict[T.Target.SubDir] = set() 139 self.ObjTargetDict[T.Target.SubDir] = set()
146 self.ObjTargetDict[T.Target.SubDir].add(NewFile) 140 self.ObjTargetDict[T.Target.SubDir].add(NewFile)
@@ -152,8 +146,6 @@ index daec9c6d54..0e8cc20efe 100755
152 # Generate related macros if needed 146 # Generate related macros if needed
153 if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros: 147 if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros:
154 self.FileListMacros[T.FileListMacro] = [] 148 self.FileListMacros[T.FileListMacro] = []
155diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
156index d05410b329..99b3f64aba 100755
157--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py 149--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
158+++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py 150+++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
159@@ -1474,6 +1474,9 @@ class ModuleAutoGen(AutoGen): 151@@ -1474,6 +1474,9 @@ class ModuleAutoGen(AutoGen):
@@ -175,6 +167,3 @@ index d05410b329..99b3f64aba 100755
175 167
176 # Ignore generating makefile when it is a binary module 168 # Ignore generating makefile when it is a binary module
177 if self.IsBinaryModule: 169 if self.IsBinaryModule:
178--
1792.30.2
180
diff --git a/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-1.patch b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-1.patch
new file mode 100644
index 0000000000..066dfa0ff0
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-1.patch
@@ -0,0 +1,43 @@
1From 2c8fb3e5164effc8a370e800fe91db7341e69116 Mon Sep 17 00:00:00 2001
2From: Doug Flick <dougflick@microsoft.com>
3Date: Mon, 7 Apr 2025 11:23:41 -0700
4Subject: [PATCH 1/4] SecurityPkg: Update SecurityFixes.yaml for CVE-2024-38797
5
6This commit updates the SecurityFixes.yaml file to include
7information about the CVE-2024-38797 vulnerability.
8
9Signed-off-by: Doug Flick <DougFlick@microsoft.com>
10
11CVE: CVE-2024-38797
12Upstream-Status: Backport [https://github.com/tianocore/edk2/pull/10928/commits/519366f542e9370bee982b1c3687ffedb5cabc21]
13Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
14---
15 SecurityPkg/SecurityFixes.yaml | 15 +++++++++++++++
16 1 file changed, 15 insertions(+)
17
18diff --git a/SecurityPkg/SecurityFixes.yaml b/SecurityPkg/SecurityFixes.yaml
19index b4006b4..06b597a 100644
20--- a/SecurityPkg/SecurityFixes.yaml
21+++ b/SecurityPkg/SecurityFixes.yaml
22@@ -40,3 +40,18 @@ CVE_2022_36764:
23 - Library\DxeTpmMeasureBootLib\DxeTpmMeasureBootLib.c
24 links:
25 - https://bugzilla.tianocore.org/show_bug.cgi?id=4118
26+CVE_2024_38797:
27+ commit-titles:
28+ - "SecurityPkg: Out of bound read in HashPeImageByType()"
29+ - "SecurityPkg: Improving HashPeImageByType () logic"
30+ - "SecurityPkg: Improving SecureBootConfigImpl:HashPeImageByType () logic"
31+ cve: CVE-2024-38797
32+ date_reported: 2024-06-04 12:00 UTC
33+ description: Out of bound read in HashPeImageByType()
34+ note:
35+ files_impacted:
36+ - SecurityPkg\Library\DxeImageVerificationLib\DxeImageVerificationLib.c
37+ - SecurityPkg\VariableAuthenticated\SecureBootConfigDxe\SecureBootConfigImpl.c
38+ links:
39+ - https://bugzilla.tianocore.org/show_bug.cgi?id=2214
40+ - https://github.com/tianocore/edk2/security/advisories/GHSA-4wjw-6xmf-44xf
41--
422.34.1
43
diff --git a/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-2.patch b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-2.patch
new file mode 100644
index 0000000000..9bf6645681
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-2.patch
@@ -0,0 +1,63 @@
1From 1a7be26382c4a34504875f094e15fe371d44192e Mon Sep 17 00:00:00 2001
2From: Doug Flick <dougflick@microsoft.com>
3Date: Thu, 3 Oct 2024 09:37:18 -0700
4Subject: [PATCH 2/4] SecurityPkg: Out of bound read in HashPeImageByType()
5
6In HashPeImageByType(), the hash of PE/COFF image is calculated.
7This function may get untrusted input.
8
9Inside this function, the following code verifies the loaded image has
10the correct format, by reading the second byte of the buffer.
11
12```c
13 if ((*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) {
14 ...
15 }
16```
17
18The input image is not trusted and that may not have the second byte to
19read. So this poses an out of bound read error.
20
21With below fix we are assuring that we don't do out of bound read. i.e,
22we make sure that AuthDataSize is greater than 1.
23
24```c
25 if (AuthDataSize > 1
26 && (*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE){
27 ...
28 }
29```
30
31AuthDataSize size is verified before reading the second byte.
32So if AuthDataSize is less than 2, the second byte will not be read, and
33the out of bound read situation won't occur.
34
35Tested the patch on real platform with and without TPM connected and
36verified image is booting fine.
37
38Authored-by: Raj AlwinX Selvaraj <Alw...@intel.com>
39Signed-off-by: Doug Flick <DougFlick@microsoft.com>
40
41CVE: CVE-2024-38797
42Upstream-Status: Backport [https://github.com/tianocore/edk2/pull/10928/commits/2dcdb41b564aa3cb846644b4b1722a0b3ae5e06b]
43Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
44---
45 .../Library/DxeImageVerificationLib/DxeImageVerificationLib.c | 2 +-
46 1 file changed, 1 insertion(+), 1 deletion(-)
47
48diff --git a/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c b/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
49index b05da19..2afa2c9 100644
50--- a/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
51+++ b/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
52@@ -642,7 +642,7 @@ HashPeImageByType (
53 // This field has the fixed offset (+32) in final Authenticode ASN.1 data.
54 // Fixed offset (+32) is calculated based on two bytes of length encoding.
55 //
56- if ((*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) {
57+ if ((AuthDataSize > 1) && ((*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE)) {
58 //
59 // Only support two bytes of Long Form of Length Encoding.
60 //
61--
622.34.1
63
diff --git a/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-3.patch b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-3.patch
new file mode 100644
index 0000000000..169c78daab
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-3.patch
@@ -0,0 +1,99 @@
1From 4db363db013a92937431234252fc9d84e44fc120 Mon Sep 17 00:00:00 2001
2From: Doug Flick <dougflick@microsoft.com>
3Date: Thu, 3 Oct 2024 10:16:57 -0700
4Subject: [PATCH 3/4] SecurityPkg: Improving HashPeImageByType () logic
5
6Namely:
7
8(1) The TWO_BYTE_ENCODE check is independent of Index. If it evalutes
9 to TRUE for Index==0, then it will evaluate to TRUE for all other
10 Index values as well. As a result, the (Index == HASHALG_MAX)
11 condition will fire after the loop, and we'll return
12 EFI_UNSUPPORTED.
13
14 While this is correct, functionally speaking, it is wasteful to
15 keep re-checking TWO_BYTE_ENCODE in the loop body. The check
16 should be made at the top of the function, and EFI_UNSUPPORTED
17 should be returned at once, if appropriate.
18
19(2) If the hash algorithm selected by Index has such a large OID that
20 the OID comparison cannot even be performed (because AuthDataSize
21 is not large enough for containing the OID in question, starting
22 at offset 32), then the function returns EFI_UNSUPPORTED at once.
23
24 This is bogus; this case should simply be treated as an OID
25 mismatch, and the loop should advance to the next Index value /
26 hash algorithm candidate. A remaining hash algo may have a shorter
27 OID and yield an OID match.
28
29Signed-off-by: Doug Flick <DougFlick@microsoft.com>
30
31CVE: CVE-2024-38797
32Upstream-Status: Backport [https://github.com/tianocore/edk2/pull/10928/commits/5df518ec510324f48ed1cf0376150960644b41f0]
33Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
34---
35 .../DxeImageVerificationLib.c | 37 ++++++++++---------
36 1 file changed, 19 insertions(+), 18 deletions(-)
37
38diff --git a/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c b/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
39index 2afa2c9..2eca39d 100644
40--- a/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
41+++ b/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
42@@ -618,6 +618,7 @@ Done:
43 @param[in] AuthDataSize Size of the Authenticode Signature in bytes.
44
45 @retval EFI_UNSUPPORTED Hash algorithm is not supported.
46+ @retval EFI_BAD_BUFFER_SIZE AuthData provided is invalid size.
47 @retval EFI_SUCCESS Hash successfully.
48
49 **/
50@@ -629,28 +630,28 @@ HashPeImageByType (
51 {
52 UINT8 Index;
53
54- for (Index = 0; Index < HASHALG_MAX; Index++) {
55+ //
56+ // Check the Hash algorithm in PE/COFF Authenticode.
57+ // According to PKCS#7 Definition:
58+ // SignedData ::= SEQUENCE {
59+ // version Version,
60+ // digestAlgorithms DigestAlgorithmIdentifiers,
61+ // contentInfo ContentInfo,
62+ // .... }
63+ // The DigestAlgorithmIdentifiers can be used to determine the hash algorithm in PE/COFF hashing
64+ // This field has the fixed offset (+32) in final Authenticode ASN.1 data.
65+ // Fixed offset (+32) is calculated based on two bytes of length encoding.
66+ //
67+ if ((AuthDataSize > 1) && ((*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE)) {
68 //
69- // Check the Hash algorithm in PE/COFF Authenticode.
70- // According to PKCS#7 Definition:
71- // SignedData ::= SEQUENCE {
72- // version Version,
73- // digestAlgorithms DigestAlgorithmIdentifiers,
74- // contentInfo ContentInfo,
75- // .... }
76- // The DigestAlgorithmIdentifiers can be used to determine the hash algorithm in PE/COFF hashing
77- // This field has the fixed offset (+32) in final Authenticode ASN.1 data.
78- // Fixed offset (+32) is calculated based on two bytes of length encoding.
79+ // Only support two bytes of Long Form of Length Encoding.
80 //
81- if ((AuthDataSize > 1) && ((*(AuthData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE)) {
82- //
83- // Only support two bytes of Long Form of Length Encoding.
84- //
85- continue;
86- }
87+ return EFI_BAD_BUFFER_SIZE;
88+ }
89
90+ for (Index = 0; Index < HASHALG_MAX; Index++) {
91 if (AuthDataSize < 32 + mHash[Index].OidLength) {
92- return EFI_UNSUPPORTED;
93+ continue;
94 }
95
96 if (CompareMem (AuthData + 32, mHash[Index].OidValue, mHash[Index].OidLength) == 0) {
97--
982.34.1
99
diff --git a/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-4.patch b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-4.patch
new file mode 100644
index 0000000000..86bc950e7d
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/CVE-2024-38797-4.patch
@@ -0,0 +1,97 @@
1From cb3342702c5c1f8a4ddbb6d503a98ed720d14eb3 Mon Sep 17 00:00:00 2001
2From: Doug Flick <dougflick@microsoft.com>
3Date: Fri, 17 Jan 2025 11:30:17 -0800
4Subject: [PATCH 4/4] SecurityPkg: Improving
5 SecureBootConfigImpl:HashPeImageByType () logic
6
7Namely:
8
9(1) The TWO_BYTE_ENCODE check is independent of Index. If it evalutes
10 to TRUE for Index==0, then it will evaluate to TRUE for all other
11 Index values as well. As a result, the (Index == HASHALG_MAX)
12 condition will fire after the loop, and we'll return
13 EFI_UNSUPPORTED.
14
15 While this is correct, functionally speaking, it is wasteful to
16 keep re-checking TWO_BYTE_ENCODE in the loop body. The check
17 should be made at the top of the function, and EFI_UNSUPPORTED
18 should be returned at once, if appropriate.
19
20(2) If the hash algorithm selected by Index has such a large OID that
21 the OID comparison cannot even be performed (because AuthDataSize
22 is not large enough for containing the OID in question, starting
23 at offset 32), then the function returns EFI_UNSUPPORTED at once.
24
25 This is bogus; this case should simply be treated as an OID
26 mismatch, and the loop should advance to the next Index value /
27 hash algorithm candidate. A remaining hash algo may have a shorter
28 OID and yield an OID match.
29
30Signed-off-by: Doug Flick <DougFlick@microsoft.com>
31
32CVE: CVE-2024-38797
33Upstream-Status: Backport [https://github.com/tianocore/edk2/pull/10928/commits/8676572908b950dd4d1f8985006011be99c0a5b6]
34Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
35---
36 .../SecureBootConfigImpl.c | 37 +++++++++++--------
37 1 file changed, 21 insertions(+), 16 deletions(-)
38
39diff --git a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c
40index 6d4560c..155e755 100644
41--- a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c
42+++ b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c
43@@ -2096,30 +2096,35 @@ HashPeImageByType (
44 {
45 UINT8 Index;
46 WIN_CERTIFICATE_EFI_PKCS *PkcsCertData;
47+ UINT32 PkcsCertSize;
48
49 PkcsCertData = (WIN_CERTIFICATE_EFI_PKCS *)(mImageBase + mSecDataDir->Offset);
50+ PkcsCertSize = mSecDataDir->SizeOfCert;
51
52- for (Index = 0; Index < HASHALG_MAX; Index++) {
53+ //
54+ // Check the Hash algorithm in PE/COFF Authenticode.
55+ // According to PKCS#7 Definition:
56+ // SignedData ::= SEQUENCE {
57+ // version Version,
58+ // digestAlgorithms DigestAlgorithmIdentifiers,
59+ // contentInfo ContentInfo,
60+ // .... }
61+ // The DigestAlgorithmIdentifiers can be used to determine the hash algorithm in PE/COFF hashing
62+ // This field has the fixed offset (+32) in final Authenticode ASN.1 data.
63+ // Fixed offset (+32) is calculated based on two bytes of length encoding.
64+ //
65+ if ((PkcsCertSize > 1) && ((*(PkcsCertData->CertData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE)) {
66 //
67- // Check the Hash algorithm in PE/COFF Authenticode.
68- // According to PKCS#7 Definition:
69- // SignedData ::= SEQUENCE {
70- // version Version,
71- // digestAlgorithms DigestAlgorithmIdentifiers,
72- // contentInfo ContentInfo,
73- // .... }
74- // The DigestAlgorithmIdentifiers can be used to determine the hash algorithm in PE/COFF hashing
75- // This field has the fixed offset (+32) in final Authenticode ASN.1 data.
76- // Fixed offset (+32) is calculated based on two bytes of length encoding.
77+ // Only support two bytes of Long Form of Length Encoding.
78 //
79- if ((*(PkcsCertData->CertData + 1) & TWO_BYTE_ENCODE) != TWO_BYTE_ENCODE) {
80- //
81- // Only support two bytes of Long Form of Length Encoding.
82- //
83+ return EFI_BAD_BUFFER_SIZE;
84+ }
85+
86+ for (Index = 0; Index < HASHALG_MAX; Index++) {
87+ if (PkcsCertSize < 32 + mHash[Index].OidLength) {
88 continue;
89 }
90
91- //
92 if (CompareMem (PkcsCertData->CertData + 32, mHash[Index].OidValue, mHash[Index].OidLength) == 0) {
93 break;
94 }
95--
962.34.1
97
diff --git a/meta/recipes-core/ovmf/ovmf/CVE-2025-2295.patch b/meta/recipes-core/ovmf/ovmf/CVE-2025-2295.patch
new file mode 100644
index 0000000000..038a3f2dbc
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/CVE-2025-2295.patch
@@ -0,0 +1,56 @@
1From 4b028816b5619ede6c3720664478055e09151516 Mon Sep 17 00:00:00 2001
2From: Madhavan <madavtechy@gmail.com>
3Date: Fri, 14 Mar 2025 14:15:13 -0400
4Subject: [PATCH] NetworkPkg/IScsiDxe:Fix for Remote Memory Exposure in ISCSI
5 bz4206
6
7Used SafeUint32Add to calculate and validate OutTransferLength with
8boundary check in IScsiOnR2TRcvd to avoid integer overflow
9
10Signed-off-by: Madhavan <madavtechy@gmail.com>
11
12CVE: CVE-2025-2295
13Upstream-Status: Backport [https://github.com/tianocore/edk2/commit/17cdc512f02a2dfd1b9e24133da56fdda099abda]
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15---
16 NetworkPkg/IScsiDxe/IScsiProto.c | 10 ++++++++--
17 1 file changed, 8 insertions(+), 2 deletions(-)
18
19diff --git a/NetworkPkg/IScsiDxe/IScsiProto.c b/NetworkPkg/IScsiDxe/IScsiProto.c
20index ef587649a0..fb48e6304d 100644
21--- a/NetworkPkg/IScsiDxe/IScsiProto.c
22+++ b/NetworkPkg/IScsiDxe/IScsiProto.c
23@@ -1,7 +1,7 @@
24 /** @file
25 The implementation of iSCSI protocol based on RFC3720.
26
27-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
28+Copyright (c) 2004 - 2025, Intel Corporation. All rights reserved.<BR>
29 SPDX-License-Identifier: BSD-2-Clause-Patent
30
31 **/
32@@ -2682,6 +2682,7 @@ IScsiOnR2TRcvd (
33 EFI_STATUS Status;
34 ISCSI_XFER_CONTEXT *XferContext;
35 UINT8 *Data;
36+ UINT32 TransferLength;
37
38 R2THdr = (ISCSI_READY_TO_TRANSFER *)NetbufGetByte (Pdu, 0, NULL);
39 if (R2THdr == NULL) {
40@@ -2712,7 +2713,12 @@ IScsiOnR2TRcvd (
41 XferContext->Offset = R2THdr->BufferOffset;
42 XferContext->DesiredLength = R2THdr->DesiredDataTransferLength;
43
44- if (((XferContext->Offset + XferContext->DesiredLength) > Packet->OutTransferLength) ||
45+ Status = SafeUint32Add (XferContext->Offset, XferContext->DesiredLength, &TransferLength);
46+ if (EFI_ERROR (Status)) {
47+ return EFI_PROTOCOL_ERROR;
48+ }
49+
50+ if ((TransferLength > Packet->OutTransferLength) ||
51 (XferContext->DesiredLength > Tcb->Conn->Session->MaxBurstLength)
52 )
53 {
54--
552.48.1
56
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 35ca8d1834..08879966c3 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776
12PACKAGECONFIG ??= "" 12PACKAGECONFIG ??= ""
13PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}" 13PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}"
14PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}" 14PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}"
15PACKAGECONFIG[debug] = ",,,"
15PACKAGECONFIG[secureboot] = ",,," 16PACKAGECONFIG[secureboot] = ",,,"
16PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,," 17PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,,"
17 18
@@ -24,10 +25,15 @@ SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
24 file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \ 25 file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
25 file://0003-debug-prefix-map.patch \ 26 file://0003-debug-prefix-map.patch \
26 file://0004-reproducible.patch \ 27 file://0004-reproducible.patch \
28 file://CVE-2025-2295.patch \
29 file://CVE-2024-38797-1.patch \
30 file://CVE-2024-38797-2.patch \
31 file://CVE-2024-38797-3.patch \
32 file://CVE-2024-38797-4.patch \
27 " 33 "
28 34
29PV = "edk2-stable202402" 35PV = "edk2-stable202502"
30SRCREV = "edc6681206c1a8791981a2f911d2fb8b3d2f5768" 36SRCREV = "fbe0805b2091393406952e84724188f8c1941837"
31UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)" 37UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
32 38
33CVE_PRODUCT = "edk2" 39CVE_PRODUCT = "edk2"
@@ -48,17 +54,15 @@ inherit deploy
48 54
49PARALLEL_MAKE = "" 55PARALLEL_MAKE = ""
50 56
51S = "${WORKDIR}/git"
52
53DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native" 57DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native"
54 58
55EDK_TOOLS_DIR="edk2_basetools" 59EDK_TOOLS_DIR = "edk2_basetools"
56 60
57# OVMF has trouble building with the default optimization of -O2. 61# OVMF has trouble building with the default optimization of -O2.
58BUILD_OPTIMIZATION="-pipe" 62BUILD_OPTIMIZATION = ""
59 63
60# OVMF supports IA only, although it could conceivably support ARM someday. 64# OVMF supports IA only, although it could conceivably support ARM someday.
61COMPATIBLE_HOST:class-target='(i.86|x86_64).*' 65COMPATIBLE_HOST:class-target = '(i.86|x86_64).*'
62 66
63# Additional build flags for OVMF with Secure Boot. 67# Additional build flags for OVMF with Secure Boot.
64# Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD". 68# Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD".
@@ -67,6 +71,8 @@ OVMF_SECURE_BOOT_FLAGS = "-DSECURE_BOOT_ENABLE=TRUE ${OVMF_SECURE_BOOT_EXTRA_FLA
67 71
68export PYTHON_COMMAND = "${HOSTTOOLS_DIR}/python3" 72export PYTHON_COMMAND = "${HOSTTOOLS_DIR}/python3"
69 73
74OVMF_BUILD_TYPE = "${@bb.utils.contains('PACKAGECONFIG', 'debug', 'DEBUG', 'RELEASE', d)}"
75
70do_patch[postfuncs] += "fix_basetools_location" 76do_patch[postfuncs] += "fix_basetools_location"
71fix_basetools_location () { 77fix_basetools_location () {
72} 78}
@@ -139,7 +145,7 @@ fix_toolchain:append:class-native() {
139export NASM_PREFIX_MAP = "--debug-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}" 145export NASM_PREFIX_MAP = "--debug-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}"
140export GCC_PREFIX_MAP = "${DEBUG_PREFIX_MAP} -Wno-stringop-overflow -Wno-maybe-uninitialized" 146export GCC_PREFIX_MAP = "${DEBUG_PREFIX_MAP} -Wno-stringop-overflow -Wno-maybe-uninitialized"
141 147
142GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')" 148GCC_VER = "$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')"
143 149
144fixup_target_tools() { 150fixup_target_tools() {
145 case ${1} in 151 case ${1} in
@@ -200,11 +206,11 @@ do_compile:class-target() {
200 fi 206 fi
201 FIXED_GCCVER=$(fixup_target_tools ${GCC_VER}) 207 FIXED_GCCVER=$(fixup_target_tools ${GCC_VER})
202 bbnote FIXED_GCCVER is ${FIXED_GCCVER} 208 bbnote FIXED_GCCVER is ${FIXED_GCCVER}
203 build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/RELEASE_${FIXED_GCCVER}" 209 build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/${OVMF_BUILD_TYPE}_${FIXED_GCCVER}"
204 210
205 bbnote "Building without Secure Boot." 211 bbnote "Building without Secure Boot."
206 rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX 212 rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX
207 ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} 213 ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b ${OVMF_BUILD_TYPE} -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS}
208 ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.fd 214 ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.fd
209 ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.code.fd 215 ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.code.fd
210 ln ${build_dir}/FV/OVMF_VARS.fd ${WORKDIR}/ovmf/ovmf.vars.fd 216 ln ${build_dir}/FV/OVMF_VARS.fd ${WORKDIR}/ovmf/ovmf.vars.fd
@@ -214,7 +220,7 @@ do_compile:class-target() {
214 # Repeat build with the Secure Boot flags. 220 # Repeat build with the Secure Boot flags.
215 bbnote "Building with Secure Boot." 221 bbnote "Building with Secure Boot."
216 rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX 222 rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX
217 ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} ${OVMF_SECURE_BOOT_FLAGS} 223 ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b ${OVMF_BUILD_TYPE} -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} ${OVMF_SECURE_BOOT_FLAGS}
218 ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd 224 ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd
219 ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd 225 ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd
220 ln ${build_dir}/${OVMF_ARCH}/EnrollDefaultKeys.efi ${WORKDIR}/ovmf/ 226 ln ${build_dir}/${OVMF_ARCH}/EnrollDefaultKeys.efi ${WORKDIR}/ovmf/
@@ -223,6 +229,7 @@ do_compile:class-target() {
223 229
224do_install:class-native() { 230do_install:class-native() {
225 install -d ${D}/${bindir}/edk2_basetools 231 install -d ${D}/${bindir}/edk2_basetools
232 find ${S}/BaseTools -name \*.pyc -exec rm -rf \{\} \;
226 cp -r ${S}/BaseTools ${D}/${bindir}/${EDK_TOOLS_DIR} 233 cp -r ${S}/BaseTools ${D}/${bindir}/${EDK_TOOLS_DIR}
227} 234}
228 235
diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb b/meta/recipes-core/packagegroups/packagegroup-base.bb
index 70a1035003..fd61ba4437 100644
--- a/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -39,9 +39,6 @@ PACKAGES = ' \
39 \ 39 \
40 ' 40 '
41 41
42# Override by distro if needed
43VIRTUAL-RUNTIME_keymaps ?= "keymaps"
44
45# 42#
46# packagegroup-base contain stuff needed for base system (machine related) 43# packagegroup-base contain stuff needed for base system (machine related)
47# 44#
@@ -75,7 +72,6 @@ RDEPENDS:packagegroup-base = "\
75 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \ 72 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \
76 " 73 "
77 74
78
79RRECOMMENDS:packagegroup-base = "\ 75RRECOMMENDS:packagegroup-base = "\
80 kernel-module-nls-utf8 \ 76 kernel-module-nls-utf8 \
81 kernel-module-input \ 77 kernel-module-input \
@@ -122,7 +118,7 @@ python __anonymous () {
122# packages added by distribution 118# packages added by distribution
123# 119#
124SUMMARY:packagegroup-distro-base = "${DISTRO} extras" 120SUMMARY:packagegroup-distro-base = "${DISTRO} extras"
125DEPENDS_packagegroup-distro-base = "${DISTRO_EXTRA_DEPENDS}" 121DEPENDS:packagegroup-distro-base = "${DISTRO_EXTRA_DEPENDS}"
126RDEPENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RDEPENDS}" 122RDEPENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RDEPENDS}"
127RRECOMMENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}" 123RRECOMMENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
128 124
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
index fecc3334ea..5cdd161811 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
@@ -9,10 +9,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
9 9
10inherit packagegroup 10inherit packagegroup
11 11
12# Distro can override the following VIRTUAL-RUNTIME providers:
13VIRTUAL-RUNTIME_dev_manager ?= "udev"
14VIRTUAL-RUNTIME_keymaps ?= "keymaps"
15
16EFI_PROVIDER ??= "grub-efi" 12EFI_PROVIDER ??= "grub-efi"
17 13
18SYSVINIT_SCRIPTS = "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', '${VIRTUAL-RUNTIME_base-utils-hwclock}', '', d)} \ 14SYSVINIT_SCRIPTS = "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', '${VIRTUAL-RUNTIME_base-utils-hwclock}', '', d)} \
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
index 56ff1d2b06..f19fd64ec1 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -8,7 +8,6 @@ PACKAGE_ARCH = "${TUNE_PKGARCH}"
8 8
9inherit packagegroup 9inherit packagegroup
10 10
11
12MTRACE = "" 11MTRACE = ""
13MTRACE:libc-glibc = "libc-mtrace" 12MTRACE:libc-glibc = "libc-mtrace"
14 13
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index b3a24b71de..54915e4f0c 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -4,7 +4,6 @@
4 4
5SUMMARY = "Profiling tools" 5SUMMARY = "Profiling tools"
6 6
7
8PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
9 8
10inherit packagegroup 9inherit packagegroup
@@ -50,12 +49,12 @@ VALGRIND:armv4 = ""
50VALGRIND:armv5 = "" 49VALGRIND:armv5 = ""
51VALGRIND:armv6 = "" 50VALGRIND:armv6 = ""
52VALGRIND:armeb = "" 51VALGRIND:armeb = ""
53VALGRIND:aarch64 = ""
54VALGRIND:riscv64 = "" 52VALGRIND:riscv64 = ""
55VALGRIND:riscv32 = "" 53VALGRIND:riscv32 = ""
56VALGRIND:powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', '', 'valgrind', d)}" 54VALGRIND:powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', '', 'valgrind', d)}"
57VALGRIND:linux-gnux32 = "" 55VALGRIND:linux-gnux32 = ""
58VALGRIND:linux-gnun32 = "" 56VALGRIND:linux-gnun32 = ""
57VALGRIND:loongarch64 = ""
59 58
60RDEPENDS:${PN} = "\ 59RDEPENDS:${PN} = "\
61 ${PROFILETOOLS} \ 60 ${PROFILETOOLS} \
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index 34af40a43f..25561f6878 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -4,7 +4,6 @@
4 4
5SUMMARY = "Testing tools/applications" 5SUMMARY = "Testing tools/applications"
6 6
7
8PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
9 8
10inherit packagegroup 9inherit packagegroup
@@ -13,9 +12,11 @@ inherit packagegroup
13KEXECTOOLS ?= "kexec" 12KEXECTOOLS ?= "kexec"
14KEXECTOOLS:e5500-64b ?= "" 13KEXECTOOLS:e5500-64b ?= ""
15KEXECTOOLS:microblaze ?= "" 14KEXECTOOLS:microblaze ?= ""
15KEXECTOOLS:mipsarcho32 ?= ""
16KEXECTOOLS:nios2 ?= "" 16KEXECTOOLS:nios2 ?= ""
17KEXECTOOLS:riscv64 ?= "" 17KEXECTOOLS:riscv64 ?= ""
18KEXECTOOLS:riscv32 ?= "" 18KEXECTOOLS:riscv32 ?= ""
19KEXECTOOLS:loongarch64 ?= ""
19 20
20# go does not support ppc32, only ppc64 21# go does not support ppc32, only ppc64
21# https://github.com/golang/go/issues/22885 22# https://github.com/golang/go/issues/22885
@@ -44,7 +45,6 @@ X11TOOLS = "\
44 " 45 "
45 46
46RDEPENDS:${PN} = "\ 47RDEPENDS:${PN} = "\
47 blktool \
48 ${KEXECTOOLS} \ 48 ${KEXECTOOLS} \
49 alsa-utils-amixer \ 49 alsa-utils-amixer \
50 alsa-utils-aplay \ 50 alsa-utils-aplay \
diff --git a/meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb
index bb10a2d34f..7e220d2cce 100644
--- a/meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb
@@ -5,7 +5,7 @@ inherit cross-canadian packagegroup
5 5
6PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" 6PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
7 7
8RUST="rust-cross-canadian-${TRANSLATED_TARGET_ARCH}" 8RUST = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
9 9
10RDEPENDS:${PN} = " \ 10RDEPENDS:${PN} = " \
11 ${@all_multilib_tune_values(d, 'RUST')} \ 11 ${@all_multilib_tune_values(d, 'RUST')} \
diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index df71695a97..c386267781 100644
--- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -107,7 +107,6 @@ RDEPENDS:packagegroup-self-hosted-debug = " \
107 ${STRACE} \ 107 ${STRACE} \
108 tcf-agent" 108 tcf-agent"
109 109
110
111RDEPENDS:packagegroup-self-hosted-extended = "\ 110RDEPENDS:packagegroup-self-hosted-extended = "\
112 bzip2 \ 111 bzip2 \
113 chrpath \ 112 chrpath \
@@ -178,7 +177,6 @@ RDEPENDS:packagegroup-self-hosted-extended = "\
178 zstd \ 177 zstd \
179 " 178 "
180 179
181
182RDEPENDS:packagegroup-self-hosted-graphics = "\ 180RDEPENDS:packagegroup-self-hosted-graphics = "\
183 adwaita-icon-theme \ 181 adwaita-icon-theme \
184 builder \ 182 builder \
diff --git a/meta/recipes-core/picolibc/picolibc-helloworld_git.bb b/meta/recipes-core/picolibc/picolibc-helloworld_git.bb
new file mode 100644
index 0000000000..573a571c24
--- /dev/null
+++ b/meta/recipes-core/picolibc/picolibc-helloworld_git.bb
@@ -0,0 +1,40 @@
1require picolibc.inc
2
3# baremetal-image overrides
4BAREMETAL_BINNAME ?= "hello_picolibc_${MACHINE}"
5IMAGE_LINK_NAME ?= "baremetal-picolibc-image-${MACHINE}"
6IMAGE_NAME_SUFFIX ?= ""
7QB_DEFAULT_KERNEL ?= "${IMAGE_LINK_NAME}.elf"
8
9inherit baremetal-image
10
11COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemuriscv32|qemuriscv64"
12
13# Use semihosting to test via QEMU
14QB_OPT_APPEND:append = " -semihosting-config enable=on"
15
16# picolibc comes with a set of linker scripts, set the file
17# according to the architecture being built.
18PICOLIBC_LINKERSCRIPT:qemuarm64 = "aarch64.ld"
19PICOLIBC_LINKERSCRIPT:qemuarm = "arm.ld"
20PICOLIBC_LINKERSCRIPT:qemuriscv32 = "riscv.ld"
21PICOLIBC_LINKERSCRIPT:qemuriscv64 = "riscv.ld"
22
23# Simple compile function that manually exemplifies usage; as noted,
24# use a custom linker script, the GCC specs provided by picolibc
25# and semihost to be able to test via QEMU's monitor
26do_compile(){
27 ${CC} ${CFLAGS} ${LDFLAGS} --verbose -T${S}/hello-world/${PICOLIBC_LINKERSCRIPT} -specs=picolibc.specs --oslib=semihost -o ${BAREMETAL_BINNAME}.elf ${S}/hello-world/hello-world.c
28 ${OBJCOPY} -O binary ${BAREMETAL_BINNAME}.elf ${BAREMETAL_BINNAME}.bin
29}
30
31do_install(){
32 install -d ${D}/${base_libdir}/firmware
33 install -m 755 ${B}/${BAREMETAL_BINNAME}.elf ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf
34 install -m 755 ${B}/${BAREMETAL_BINNAME}.bin ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin
35}
36
37FILES:${PN} += " \
38 ${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf \
39 ${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin \
40"
diff --git a/meta/recipes-core/picolibc/picolibc.inc b/meta/recipes-core/picolibc/picolibc.inc
new file mode 100644
index 0000000000..68c32894a7
--- /dev/null
+++ b/meta/recipes-core/picolibc/picolibc.inc
@@ -0,0 +1,20 @@
1SUMMARY = "C Libraries for Smaller Embedded Systems"
2HOMEPAGE = "https://keithp.com/picolibc"
3DESCRIPTION = "Picolibc is a set of standard C libraries, both libc and libm, designed for smaller embedded systems with limited ROM and RAM. Picolibc includes code from Newlib and AVR Libc."
4SECTION = "libs"
5
6# Newlib based code but GPL related bits removed, test/printf-tests.c and test/testcases.c
7# are GPLv2 and GeneratePicolibcCrossFile.sh is AGPL3 but not part of the artifacts.
8LICENSE = "BSD-2-Clause & BSD-3-Clause"
9LIC_FILES_CHKSUM = " \
10 file://COPYING.GPL2;md5=59530bdf33659b29e73d4adb9f9f6552 \
11 file://COPYING.NEWLIB;md5=08ae03456feb75b81cfdb359e0f1ef85 \
12 file://COPYING.picolibc;md5=e50fa9458a40929689861ed472d46bc7 \
13 "
14
15BASEVER = "1.8.6"
16PV = "${BASEVER}+git"
17SRC_URI = "git://github.com/picolibc/picolibc.git;protocol=https;branch=main"
18SRCREV = "764ef4e401a8f4c6a86ab723533841f072885a5b"
19
20B = "${WORKDIR}/build"
diff --git a/meta/recipes-core/picolibc/picolibc/avoid_polluting_cross_directories.patch b/meta/recipes-core/picolibc/picolibc/avoid_polluting_cross_directories.patch
new file mode 100644
index 0000000000..da6460c95c
--- /dev/null
+++ b/meta/recipes-core/picolibc/picolibc/avoid_polluting_cross_directories.patch
@@ -0,0 +1,119 @@
1Upstream-Status: Pending
2
3Picolibc uses its own specs file: picolibc.specs to facilitate compilation, this
4needs to be passed down to GCC via the -specs argument.
5
6Using this specs file overrides some of the default options our toolchain was
7built with, in this case, they modify the include_dir and lib_dir paths used for
8compilation, their intention was to add support for -picolibc-prefix and
9-picolibc-buildtype arguments via the C preprocessor.
10
11-isystem %{-picolibc-prefix=*:%*/include/; -picolibc-buildtype=*:/usr/include/%*; :/usr/include} %(picolibc_cpp)
12
13This had the unwanted effect of defaulting to /usr/include for include_dir if
14those arguments are not being passed, this works fine for their flow but for us
15it pollutes the include directories with paths from the host. The same effect is
16applicable for lib_dir and for the c runtime file.
17
18Our toolchain relies on --sysroot to avoid using any paths from the host, here we
19manually add support for a third possible argument: -sysroot , if this is passed
20then the paths used by the compiler will be relative to the path passed by the
21--sysroot= cmdline argument, setting back the behavior that we intended in the
22first place.
23
24
25Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
26
27Index: git/meson.build
28===================================================================
29--- git.orig/meson.build
30+++ git/meson.build
31@@ -622,12 +622,13 @@ else
32 #
33 picolibc_prefix_format = '-picolibc-prefix=*:@0@'
34 picolibc_buildtype_format = '-picolibc-buildtype=*:@0@'
35+sysroot_format = '-sysroot=*:@0@'
36 gen_format = '@0@'
37
38 #
39 # How to glue the three options together
40 #
41-specs_option_format = '%{@0@; @1@; :@2@}'
42+specs_option_format = '%{@0@; @1@; @2@; :@3@}'
43
44 #
45 # Build the -isystem value
46@@ -639,10 +640,13 @@ isystem_prefix = picolibc_prefix_format.
47 buildtype_include_dir = specs_prefix_format.format(get_option('includedir') / '%*')
48 isystem_buildtype = picolibc_buildtype_format.format(buildtype_include_dir)
49
50+sysroot_include_dir = '%*'
51+isystem_sysroot = sysroot_format.format(sysroot_include_dir)
52+
53 gen_include_dir = specs_prefix_format.format(get_option('includedir'))
54 isystem_gen = gen_format.format(gen_include_dir)
55
56-specs_isystem = '-isystem ' + specs_option_format.format(isystem_prefix, isystem_buildtype, isystem_gen)
57+specs_isystem = '-isystem ' + specs_option_format.format(isystem_prefix, isystem_buildtype, isystem_sysroot, isystem_gen)
58
59 #
60 # Build the non-multilib -L value
61@@ -654,10 +658,13 @@ lib_prefix = picolibc_prefix_format.form
62 buildtype_lib_dir = specs_prefix_format.format(get_option('libdir') / '%*')
63 lib_buildtype = picolibc_buildtype_format.format(buildtype_lib_dir)
64
65+sysroot_lib_dir = '%*'
66+lib_sysroot = sysroot_format.format(sysroot_lib_dir)
67+
68 gen_lib_dir = specs_prefix_format.format(get_option('libdir'))
69 lib_gen = gen_format.format(gen_lib_dir)
70
71-specs_libpath = '-L' + specs_option_format.format(lib_prefix, lib_buildtype, lib_gen)
72+specs_libpath = '-L' + specs_option_format.format(lib_prefix, lib_buildtype, lib_sysroot, lib_gen)
73
74 #
75 # Build the non-multilib *startfile options
76@@ -669,6 +676,9 @@ crt0_prefix = picolibc_prefix_format.for
77 buildtype_crt0_path = specs_prefix_format.format(get_option('libdir') / '%*' / crt0_expr)
78 crt0_buildtype = picolibc_buildtype_format.format(buildtype_crt0_path)
79
80+sysroot_crt0_path = '%*' + '/' + get_option('libdir') + '/' + '%*' + '/' + crt0_expr
81+crt0_sysroot = picolibc_buildtype_format.format(sysroot_crt0_path)
82+
83 gen_crt0_path = specs_prefix_format.format(get_option('libdir') / crt0_expr)
84 crt0_gen = gen_format.format(gen_crt0_path)
85
86@@ -686,10 +696,13 @@ if enable_multilib
87 buildtype_multilib_dir = specs_prefix_format.format(get_option('libdir') / '%*/%M')
88 multilib_buildtype = picolibc_buildtype_format.format(buildtype_multilib_dir)
89
90+ sysroot_multilib_dir = '%*' + '/' + get_option('libdir') + '/' + '%*/%M'
91+ multilib_sysroot = sysroot_format.format(sysroot_multilib_dir)
92+
93 gen_multilib_dir = specs_prefix_format.format(get_option('libdir') / '%M')
94 multilib_gen = gen_format.format(gen_multilib_dir)
95
96- specs_multilibpath = '-L' + specs_option_format.format(multilib_prefix, multilib_buildtype, multilib_gen)
97+ specs_multilibpath = '-L' + specs_option_format.format(multilib_prefix, multilib_buildtype, multilib_sysroot, multilib_gen)
98
99 #
100 # Prepend the multilib -L option to the non-multilib option
101@@ -705,6 +718,9 @@ if enable_multilib
102 buildtype_multilib_crt0_path = specs_prefix_format.format(get_option('libdir') / '%*/%M' / crt0_expr)
103 crt0_buildtype = picolibc_buildtype_format.format(buildtype_multilib_crt0_path)
104
105+ sysroot_multilib_crt0_path = '%*' + prefix + '/' + get_option('libdir') + '/' + '/%M' + '/' + crt0_expr
106+ crt0_sysroot = sysroot_format.format(sysroot_multilib_crt0_path)
107+
108 gen_multilib_crt0_path = specs_prefix_format.format(get_option('libdir') / '%M' / crt0_expr)
109 crt0_gen = gen_format.format(gen_multilib_crt0_path)
110 endif
111@@ -714,7 +730,7 @@ endif
112 # above. As there's only one value, it's either the
113 # multilib path or the non-multilib path
114 #
115-specs_startfile = specs_option_format.format(crt0_prefix, crt0_buildtype, crt0_gen)
116+specs_startfile = specs_option_format.format(crt0_prefix, crt0_buildtype, crt0_sysroot, crt0_gen)
117 endif
118
119 specs_data = configuration_data()
diff --git a/meta/recipes-core/picolibc/picolibc/no-early-compiler-checks.cross b/meta/recipes-core/picolibc/picolibc/no-early-compiler-checks.cross
new file mode 100644
index 0000000000..87bfbad3c5
--- /dev/null
+++ b/meta/recipes-core/picolibc/picolibc/no-early-compiler-checks.cross
@@ -0,0 +1,6 @@
1# We need to explicitly bypass mesons sanity check to avoid early compiler errors
2# otherwise meson will try to compile AND run test applications:
3# ../git/meson.build:35:0: ERROR: Executables created by c compiler are not runnable...
4
5[properties]
6skip_sanity_check=true \ No newline at end of file
diff --git a/meta/recipes-core/picolibc/picolibc_git.bb b/meta/recipes-core/picolibc/picolibc_git.bb
new file mode 100644
index 0000000000..eaa6c8de1e
--- /dev/null
+++ b/meta/recipes-core/picolibc/picolibc_git.bb
@@ -0,0 +1,34 @@
1require picolibc.inc
2
3INHIBIT_DEFAULT_DEPS = "1"
4DEPENDS = "virtual/cross-cc"
5
6PROVIDES += "virtual/libc virtual/libiconv virtual/libintl"
7
8COMPATIBLE_HOST:libc-musl:class-target = "null"
9COMPATIBLE_HOST:libc-glibc:class-target = "null"
10COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemuriscv32|qemuriscv64"
11
12SRC_URI:append = " file://avoid_polluting_cross_directories.patch"
13SRC_URI:append = " file://no-early-compiler-checks.cross"
14
15# This is being added by picolibc meson files as well to avoid
16# early compiler tests from failing, cant remember why I added it
17# to the newlib recipe but I would assume it was for the same reason
18TARGET_CC_ARCH:append = " -nostdlib"
19
20# When using RISCV64 use medany for both C library and application recipes
21TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
22
23inherit meson
24
25MESON_CROSS_FILE:append = " --cross-file=${UNPACKDIR}/no-early-compiler-checks.cross"
26
27PACKAGECONFIG ??= " specsdir"
28# Install GCC specs on libdir
29PACKAGECONFIG[specsdir] = "-Dspecsdir=${libdir},-Dspecsdir=none"
30
31FILES:${PN}-dev:append = " ${libdir}/*.specs ${libdir}/*.ld"
32
33# No rpm package is actually created but -dev depends on it, avoid dnf error
34DEV_PKG_DEPENDENCY:libc-picolibc = ""
diff --git a/meta/recipes-core/psplash/files/fb.rules b/meta/recipes-core/psplash/files/fb.rules
new file mode 100644
index 0000000000..accdb8386c
--- /dev/null
+++ b/meta/recipes-core/psplash/files/fb.rules
@@ -0,0 +1 @@
SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="psplash-start@%k.service psplash-systemd.service"
diff --git a/meta/recipes-core/psplash/files/psplash-init b/meta/recipes-core/psplash/files/psplash-init
index e0f80bcdc0..e0f80bcdc0 100755..100644
--- a/meta/recipes-core/psplash/files/psplash-init
+++ b/meta/recipes-core/psplash/files/psplash-init
diff --git a/meta/recipes-core/psplash/files/psplash-start.service b/meta/recipes-core/psplash/files/psplash-start@.service
index bec9368427..1bc3642fc2 100644
--- a/meta/recipes-core/psplash/files/psplash-start.service
+++ b/meta/recipes-core/psplash/files/psplash-start@.service
@@ -3,11 +3,10 @@ Description=Start psplash boot splash screen
3DefaultDependencies=no 3DefaultDependencies=no
4RequiresMountsFor=/run 4RequiresMountsFor=/run
5ConditionFileIsExecutable=/usr/bin/psplash 5ConditionFileIsExecutable=/usr/bin/psplash
6After=dev-%i.device
7Wants=dev-%i.device
6 8
7[Service] 9[Service]
8Type=notify 10Type=notify
9ExecStart=/usr/bin/psplash 11ExecStart=/usr/bin/psplash
10RemainAfterExit=yes 12RemainAfterExit=yes
11
12[Install]
13WantedBy=sysinit.target
diff --git a/meta/recipes-core/psplash/files/psplash-systemd.service b/meta/recipes-core/psplash/files/psplash-systemd.service
index e93e3deb35..15a894d577 100644
--- a/meta/recipes-core/psplash/files/psplash-systemd.service
+++ b/meta/recipes-core/psplash/files/psplash-systemd.service
@@ -1,14 +1,13 @@
1[Unit] 1[Unit]
2Description=Start psplash-systemd progress communication helper 2Description=Start psplash-systemd progress communication helper
3DefaultDependencies=no 3DefaultDependencies=no
4After=psplash-start.service 4After=psplash-start@fb0.service
5Requires=psplash-start.service 5Requires=psplash-start@fb0.service
6RequiresMountsFor=/run 6RequiresMountsFor=/run
7ConditionFileIsExecutable=/usr/bin/psplash 7ConditionFileIsExecutable=/usr/bin/psplash
8ConditionFileIsExecutable=/usr/bin/psplash-systemd
9ConditionPathExists=/run/psplash_fifo
8 10
9[Service] 11[Service]
10ExecStart=/usr/bin/psplash-systemd 12ExecStart=-/usr/bin/psplash-systemd
11RemainAfterExit=yes 13RemainAfterExit=yes
12
13[Install]
14WantedBy=sysinit.target
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 40937098e6..3be0e26a0c 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -6,13 +6,14 @@ LICENSE = "GPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=8;md5=8f232c1e95929eacab37f00900580224" 6LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=8;md5=8f232c1e95929eacab37f00900580224"
7DEPENDS = "gdk-pixbuf-native" 7DEPENDS = "gdk-pixbuf-native"
8 8
9SRCREV = "ecc1913756698d0c87ad8fa10e44b29537f09ad1" 9SRCREV = "53ae74a36bf17675228552abb927d2f981940a6a"
10PV = "0.1+git" 10PV = "0.1+git"
11 11
12SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https \ 12SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https \
13 file://psplash-init \ 13 file://psplash-init \
14 file://psplash-start.service \ 14 file://psplash-start@.service \
15 file://psplash-systemd.service \ 15 file://psplash-systemd.service \
16 file://fb.rules \
16 ${SPLASH_IMAGES}" 17 ${SPLASH_IMAGES}"
17UPSTREAM_CHECK_COMMITS = "1" 18UPSTREAM_CHECK_COMMITS = "1"
18 19
@@ -61,8 +62,6 @@ python __anonymous() {
61 d.appendVar("RDEPENDS:%s" % pn, " %s" % ep) 62 d.appendVar("RDEPENDS:%s" % pn, " %s" % ep)
62} 63}
63 64
64S = "${WORKDIR}/git"
65
66inherit autotools pkgconfig update-rc.d update-alternatives systemd 65inherit autotools pkgconfig update-rc.d update-alternatives systemd
67 66
68PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} progress-bar fullscreen" 67PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} progress-bar fullscreen"
@@ -80,7 +79,7 @@ python do_compile () {
80 import subprocess 79 import subprocess
81 80
82 # Build a separate executable for each splash image 81 # Build a separate executable for each splash image
83 workdir = d.getVar('WORKDIR') 82 workdir = d.getVar('UNPACKDIR')
84 convertscript = "%s/make-image-header.sh" % d.getVar('S') 83 convertscript = "%s/make-image-header.sh" % d.getVar('S')
85 destfile = "%s/psplash-poky-img.h" % d.getVar('B') 84 destfile = "%s/psplash-poky-img.h" % d.getVar('B')
86 localfiles = d.getVar('SPLASH_LOCALPATHS').split() 85 localfiles = d.getVar('SPLASH_LOCALPATHS').split()
@@ -103,7 +102,7 @@ python do_compile () {
103do_install:append() { 102do_install:append() {
104 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 103 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
105 install -d ${D}${sysconfdir}/init.d/ 104 install -d ${D}${sysconfdir}/init.d/
106 install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh 105 install -m 0755 ${UNPACKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
107 106
108 # make fifo for psplash 107 # make fifo for psplash
109 install -d ${D}/mnt 108 install -d ${D}/mnt
@@ -112,8 +111,10 @@ do_install:append() {
112 111
113 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 112 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
114 install -d ${D}${systemd_system_unitdir} 113 install -d ${D}${systemd_system_unitdir}
115 install -m 644 ${WORKDIR}/psplash-start.service ${D}/${systemd_system_unitdir} 114 install -m 644 ${UNPACKDIR}/psplash-start@.service ${D}/${systemd_system_unitdir}
116 install -m 644 ${WORKDIR}/psplash-systemd.service ${D}/${systemd_system_unitdir} 115 install -m 644 ${UNPACKDIR}/psplash-systemd.service ${D}/${systemd_system_unitdir}
116 install -d ${D}${sysconfdir}/udev/rules.d
117 install -m 0644 ${UNPACKDIR}/fb.rules ${D}${sysconfdir}/udev/rules.d/
117 fi 118 fi
118 119
119 install -d ${D}${bindir} 120 install -d ${D}${bindir}
@@ -124,7 +125,7 @@ do_install:append() {
124} 125}
125 126
126SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}" 127SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
127SYSTEMD_SERVICE:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'psplash-start.service psplash-systemd.service', '', d)}" 128SYSTEMD_SERVICE:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'psplash-start@.service psplash-systemd.service', '', d)}"
128 129
129INITSCRIPT_NAME = "psplash.sh" 130INITSCRIPT_NAME = "psplash.sh"
130INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ." 131INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
diff --git a/meta/recipes-core/readline/files/inputrc b/meta/recipes-core/readline/files/inputrc
index b5c4c8af24..4a2874bccc 100644
--- a/meta/recipes-core/readline/files/inputrc
+++ b/meta/recipes-core/readline/files/inputrc
@@ -24,12 +24,12 @@ set output-meta on
24$if mode=emacs 24$if mode=emacs
25 25
26# allow the use of the Home/End keys 26# allow the use of the Home/End keys
27# "\e[1~": beginning-of-line 27"\e[1~": beginning-of-line
28# "\e[4~": end-of-line 28"\e[4~": end-of-line
29 29
30# allow the use of the Delete/Insert keys 30# allow the use of the Delete/Insert keys
31# "\e[3~": delete-char 31"\e[3~": delete-char
32# "\e[2~": quoted-insert 32"\e[2~": quoted-insert
33 33
34# mappings for "page up" and "page down" to step to the beginning/end 34# mappings for "page up" and "page down" to step to the beginning/end
35# of the history 35# of the history
diff --git a/meta/recipes-core/readline/readline.inc b/meta/recipes-core/readline/readline.inc
index 4aefc5636d..555bd0876f 100644
--- a/meta/recipes-core/readline/readline.inc
+++ b/meta/recipes-core/readline/readline.inc
@@ -38,7 +38,7 @@ do_install:append () {
38 rmdir ${D}${datadir}/${BPN} || true 38 rmdir ${D}${datadir}/${BPN} || true
39 39
40 install -m 0755 -d ${D}${sysconfdir} 40 install -m 0755 -d ${D}${sysconfdir}
41 install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc 41 install -m 0644 ${UNPACKDIR}/inputrc ${D}${sysconfdir}/inputrc
42} 42}
43 43
44BBCLASSEXTEND = "native nativesdk" 44BBCLASSEXTEND = "native nativesdk"
@@ -54,4 +54,4 @@ ALTERNATIVE_LINK_NAME[history.3] = "${mandir}/man3/history.3"
54# OpenSuse injects versions into libreadline leading to conficits between our native one and theirs 54# OpenSuse injects versions into libreadline leading to conficits between our native one and theirs
55# see their spec file for where this is injected. Extra versioning is harmless so we just do the same. 55# see their spec file for where this is injected. Extra versioning is harmless so we just do the same.
56SRC_URI:append:class-native = " file://rl-native.map" 56SRC_URI:append:class-native = " file://rl-native.map"
57LDFLAGS:append:class-native = " -Wl,--version-script=${WORKDIR}/rl-native.map" 57LDFLAGS:append:class-native = " -Wl,--version-script=${UNPACKDIR}/rl-native.map"
diff --git a/meta/recipes-core/readline/readline/0001-Add-fix-for-packages-that-are-not-compatible-with-C2.patch b/meta/recipes-core/readline/readline/0001-Add-fix-for-packages-that-are-not-compatible-with-C2.patch
new file mode 100644
index 0000000000..3bb4d53960
--- /dev/null
+++ b/meta/recipes-core/readline/readline/0001-Add-fix-for-packages-that-are-not-compatible-with-C2.patch
@@ -0,0 +1,29 @@
1From 9459ee899a291c55f08341df63e9a1b9b7af200a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 16 Mar 2025 12:48:46 -0700
4Subject: [PATCH] Add fix for packages that are not compatible with C23
5
6Fixes builds with GCC-15
7Sourced from Fedora: https://src.fedoraproject.org/rpms/readline/c/c47eb813afb942128253213ad5b8221770557e48?branch=rawhide
8
9Help getting packages like bluez5 building
10
11Upstream-Status: Submitted [https://lists.gnu.org/archive/html/bug-readline/2025-03/msg00001.html]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 rlstdc.h | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/rlstdc.h b/rlstdc.h
18index 2aaa30b..a7a0ef3 100644
19--- a/rlstdc.h
20+++ b/rlstdc.h
21@@ -44,7 +44,7 @@
22
23 /* Moved from config.h.in because readline.h:rl_message depends on these
24 defines. */
25-#if defined (__STDC__) && defined (HAVE_STDARG_H)
26+#if defined (__STDC__)
27 # define PREFER_STDARG
28 # define USE_VARARGS
29 #else
diff --git a/meta/recipes-core/readline/readline/norpath.patch b/meta/recipes-core/readline/readline/norpath.patch
index 5d71582b70..34534aff0a 100644
--- a/meta/recipes-core/readline/readline/norpath.patch
+++ b/meta/recipes-core/readline/readline/norpath.patch
@@ -6,11 +6,17 @@ Upstream-Status: Inappropriate
6 6
7RP 2012/2/23 7RP 2012/2/23
8 8
9Index: readline-6.2/support/shobj-conf 9Rebase to 8.2.13
10=================================================================== 10Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
11--- readline-6.2.orig/support/shobj-conf 2012-02-23 11:06:37.193179379 +0000 11---
12+++ readline-6.2/support/shobj-conf 2012-02-23 11:06:50.049178918 +0000 12 support/shobj-conf | 2 +-
13@@ -114,7 +114,7 @@ 13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/support/shobj-conf b/support/shobj-conf
16index cd7634d..029123a 100644
17--- a/support/shobj-conf
18+++ b/support/shobj-conf
19@@ -128,7 +128,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*)
14 SHOBJ_LD='${CC}' 20 SHOBJ_LD='${CC}'
15 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' 21 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
16 22
@@ -19,3 +25,6 @@ Index: readline-6.2/support/shobj-conf
19 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' 25 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
20 ;; 26 ;;
21 27
28--
292.27.0
30
diff --git a/meta/recipes-core/readline/readline/readline82-001.patch b/meta/recipes-core/readline/readline/readline82-001.patch
deleted file mode 100644
index 4e9839db9c..0000000000
--- a/meta/recipes-core/readline/readline/readline82-001.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-001
6
7Bug-Reported-by: Kan-Ru Chen <koster@debian.org>
8Bug-Reference-ID:
9Bug-Reference-URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021109
10
11Bug-Description:
12
13Starting a readline application with an invalid locale specification for
14LC_ALL/LANG/LC_CTYPE can cause it crash on the first call to readline.
15
16Patch (apply with `patch -p0'):
17
18Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20
21*** ../readline-8.2-patched/nls.c 2022-08-15 09:38:51.000000000 -0400
22--- nls.c 2022-10-05 09:23:22.000000000 -0400
23***************
24*** 142,145 ****
25--- 142,149 ----
26 lspec = "";
27 ret = setlocale (LC_CTYPE, lspec); /* ok, since it does not change locale */
28+ if (ret == 0 || *ret == 0)
29+ ret = setlocale (LC_CTYPE, (char *)NULL);
30+ if (ret == 0 || *ret == 0)
31+ ret = RL_DEFAULT_LOCALE;
32 #else
33 ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
34
35*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
36--- patchlevel 2014-03-21 08:28:40.000000000 -0400
37***************
38*** 1,3 ****
39 # Do not edit -- exists only for use by patch
40
41! 0
42--- 1,3 ----
43 # Do not edit -- exists only for use by patch
44
45! 1
diff --git a/meta/recipes-core/readline/readline/readline82-002.patch b/meta/recipes-core/readline/readline/readline82-002.patch
deleted file mode 100644
index 5629685dc1..0000000000
--- a/meta/recipes-core/readline/readline/readline82-002.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-002
6
7Bug-Reported-by: srobertson@peratonlabs.com
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-09/msg00049.html
10
11Bug-Description:
12
13It's possible for readline to try to zero out a line that's not null-
14terminated, leading to a memory fault.
15
16Patch (apply with `patch -p0'):
17
18Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20
21*** ../readline-8.2-patched/display.c 2022-04-05 10:47:31.000000000 -0400
22--- display.c 2022-12-13 13:11:22.000000000 -0500
23***************
24*** 2684,2692 ****
25
26 if (visible_line)
27! {
28! temp = visible_line;
29! while (*temp)
30! *temp++ = '\0';
31! }
32 rl_on_new_line ();
33 forced_display++;
34--- 2735,2740 ----
35
36 if (visible_line)
37! memset (visible_line, 0, line_size);
38!
39 rl_on_new_line ();
40 forced_display++;
41*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
42--- patchlevel 2014-03-21 08:28:40.000000000 -0400
43***************
44*** 1,3 ****
45 # Do not edit -- exists only for use by patch
46
47! 1
48--- 1,3 ----
49 # Do not edit -- exists only for use by patch
50
51! 2
diff --git a/meta/recipes-core/readline/readline/readline82-003.patch b/meta/recipes-core/readline/readline/readline82-003.patch
deleted file mode 100644
index 61570bf4f4..0000000000
--- a/meta/recipes-core/readline/readline/readline82-003.patch
+++ /dev/null
@@ -1,46 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-003
6
7Bug-Reported-by: Stefan Klinger <readline-gnu.org@stefan-klinger.de>
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2023-08/msg00018.html
10
11Bug-Description:
12
13Patch (apply with `patch -p0'):
14
15The custom color prefix that readline uses to color possible completions
16must have a leading `.'.
17
18Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20
21*** ../readline-8.2-patched/colors.c 2021-12-08 11:38:25.000000000 -0500
22--- colors.c 2023-08-28 16:40:04.000000000 -0400
23***************
24*** 74,78 ****
25 static void restore_default_color (void);
26
27! #define RL_COLOR_PREFIX_EXTENSION "readline-colored-completion-prefix"
28
29 COLOR_EXT_TYPE *_rl_color_ext_list = 0;
30--- 74,78 ----
31 static void restore_default_color (void);
32
33! #define RL_COLOR_PREFIX_EXTENSION ".readline-colored-completion-prefix"
34
35 COLOR_EXT_TYPE *_rl_color_ext_list = 0;
36*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
37--- patchlevel 2014-03-21 08:28:40.000000000 -0400
38***************
39*** 1,3 ****
40 # Do not edit -- exists only for use by patch
41
42! 2
43--- 1,3 ----
44 # Do not edit -- exists only for use by patch
45
46! 3
diff --git a/meta/recipes-core/readline/readline/readline82-004.patch b/meta/recipes-core/readline/readline/readline82-004.patch
deleted file mode 100644
index cedc3d0fe4..0000000000
--- a/meta/recipes-core/readline/readline/readline82-004.patch
+++ /dev/null
@@ -1,68 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-004
6
7Bug-Reported-by: Henry Bent <henry.r.bent@gmail.com>
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-11/msg00044.html
10
11Bug-Description:
12
13Patch (apply with `patch -p0'):
14
15There are systems that supply one of select or pselect, but not both.
16
17Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19
20*** ../readline-8.2-patched/input.c 2022-04-08 15:43:24.000000000 -0400
21--- input.c 2022-11-28 09:41:08.000000000 -0500
22***************
23*** 152,156 ****
24--- 152,158 ----
25 int _rl_timeout_init (void);
26 int _rl_timeout_sigalrm_handler (void);
27+ #if defined (RL_TIMEOUT_USE_SELECT)
28 int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *);
29+ #endif
30
31 static void _rl_timeout_handle (void);
32***************
33*** 249,253 ****
34 int chars_avail, k;
35 char input;
36! #if defined(HAVE_SELECT)
37 fd_set readfds, exceptfds;
38 struct timeval timeout;
39--- 251,255 ----
40 int chars_avail, k;
41 char input;
42! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
43 fd_set readfds, exceptfds;
44 struct timeval timeout;
45***************
46*** 806,810 ****
47 unsigned char c;
48 int fd;
49! #if defined (HAVE_PSELECT)
50 sigset_t empty_set;
51 fd_set readfds;
52--- 815,819 ----
53 unsigned char c;
54 int fd;
55! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
56 sigset_t empty_set;
57 fd_set readfds;
58*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
59--- patchlevel 2014-03-21 08:28:40.000000000 -0400
60***************
61*** 1,3 ****
62 # Do not edit -- exists only for use by patch
63
64! 3
65--- 1,3 ----
66 # Do not edit -- exists only for use by patch
67
68! 4
diff --git a/meta/recipes-core/readline/readline/readline82-005.patch b/meta/recipes-core/readline/readline/readline82-005.patch
deleted file mode 100644
index 69c2e4f77a..0000000000
--- a/meta/recipes-core/readline/readline/readline82-005.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-005
6
7Bug-Reported-by: Simon Marchi <simon.marchi@polymtl.ca>
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00005.html
10
11Bug-Description:
12
13If an application is using readline in callback mode, and a signal arrives
14after readline checks for it in rl_callback_read_char() but before it
15restores the application's signal handlers, it won't get processed until the
16next time the application calls rl_callback_read_char(). Readline needs to
17check for and resend any pending signals after restoring the application's
18signal handlers.
19
20Patch (apply with `patch -p0'):
21
22Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
23Signed-off-by: Khem Raj <raj.khem@gmail.com>
24
25*** ../readline-8.2-patched/callback.c 2022-04-29 12:02:56.000000000 -0400
26--- callback.c 2022-10-11 10:59:06.000000000 -0400
27***************
28*** 116,120 ****
29 do { \
30 if (rl_persistent_signal_handlers == 0) \
31! rl_clear_signals (); \
32 return; \
33 } while (0)
34--- 116,123 ----
35 do { \
36 if (rl_persistent_signal_handlers == 0) \
37! { \
38! rl_clear_signals (); \
39! if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
40! } \
41 return; \
42 } while (0)
43*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
44--- patchlevel 2014-03-21 08:28:40.000000000 -0400
45***************
46*** 1,3 ****
47 # Do not edit -- exists only for use by patch
48
49! 4
50--- 1,3 ----
51 # Do not edit -- exists only for use by patch
52
53! 5
diff --git a/meta/recipes-core/readline/readline/readline82-006.patch b/meta/recipes-core/readline/readline/readline82-006.patch
deleted file mode 100644
index d66afe82c9..0000000000
--- a/meta/recipes-core/readline/readline/readline82-006.patch
+++ /dev/null
@@ -1,102 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-006
6
7Bug-Reported-by: Tom de Vries <tdevries@suse.de>
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00001.html
10
11Bug-Description:
12
13This is a variant of the same issue as the one fixed by patch 5. In this
14case, the signal arrives and is pending before readline calls rl_getc().
15When this happens, the pending signal will be handled by the loop, but may
16alter or destroy some state that the callback uses. Readline needs to treat
17this case the same way it would if a signal interrupts pselect/select, so
18compound operations like searches and reading numeric arguments get cleaned
19up properly.
20
21Patch (apply with `patch -p0'):
22
23Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
24Signed-off-by: Khem Raj <raj.khem@gmail.com>
25
26*** ../readline-8.2-patched/input.c 2022-12-22 16:15:48.000000000 -0500
27--- input.c 2023-01-10 11:53:45.000000000 -0500
28***************
29*** 812,816 ****
30 rl_getc (FILE *stream)
31 {
32! int result;
33 unsigned char c;
34 int fd;
35--- 812,816 ----
36 rl_getc (FILE *stream)
37 {
38! int result, ostate, osig;
39 unsigned char c;
40 int fd;
41***************
42*** 823,828 ****
43--- 823,842 ----
44 while (1)
45 {
46+ osig = _rl_caught_signal;
47+ ostate = rl_readline_state;
48+
49 RL_CHECK_SIGNALS ();
50
51+ #if defined (READLINE_CALLBACKS)
52+ /* Do signal handling post-processing here, but just in callback mode
53+ for right now because the signal cleanup can change some of the
54+ callback state, and we need to either let the application have a
55+ chance to react or abort some current operation that gets cleaned
56+ up by rl_callback_sigcleanup(). If not, we'll just run through the
57+ loop again. */
58+ if (osig != 0 && (ostate & RL_STATE_CALLBACK))
59+ goto postproc_signal;
60+ #endif
61+
62 /* We know at this point that _rl_caught_signal == 0 */
63
64***************
65*** 888,891 ****
66--- 902,908 ----
67
68 handle_error:
69+ osig = _rl_caught_signal;
70+ ostate = rl_readline_state;
71+
72 /* If the error that we received was EINTR, then try again,
73 this is simply an interrupted system call to read (). We allow
74***************
75*** 928,933 ****
76--- 945,959 ----
77 #endif /* SIGALRM */
78
79+ postproc_signal:
80+ /* POSIX says read(2)/pselect(2)/select(2) don't return EINTR for any
81+ reason other than being interrupted by a signal, so we can safely
82+ call the application's signal event hook. */
83 if (rl_signal_event_hook)
84 (*rl_signal_event_hook) ();
85+ #if defined (READLINE_CALLBACKS)
86+ else if (osig == SIGINT && (ostate & RL_STATE_CALLBACK) && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG)))
87+ /* just these cases for now */
88+ _rl_abort_internal ();
89+ #endif
90 }
91 }
92*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
93--- patchlevel 2014-03-21 08:28:40.000000000 -0400
94***************
95*** 1,3 ****
96 # Do not edit -- exists only for use by patch
97
98! 5
99--- 1,3 ----
100 # Do not edit -- exists only for use by patch
101
102! 6
diff --git a/meta/recipes-core/readline/readline/readline82-007.patch b/meta/recipes-core/readline/readline/readline82-007.patch
deleted file mode 100644
index 9fa1ccb552..0000000000
--- a/meta/recipes-core/readline/readline/readline82-007.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-007
6
7Bug-Reported-by: Kevin Pulo <kev@pulo.com.au>
8Bug-Reference-ID:
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-11/msg00002.html
10
11Bug-Description:
12
13If readline is called with no prompt, it should display a newline if return
14is typed on an empty line. It should still suppress the final newline if
15return is typed on the last (empty) line of a multi-line command.
16
17Patch (apply with `patch -p0'):
18
19Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21
22*** ../readline-8.2-patched/display.c 2022-04-05 10:47:31.000000000 -0400
23--- display.c 2022-12-13 13:11:22.000000000 -0500
24***************
25*** 3342,3348 ****
26 &last_face[_rl_screenwidth - 1 + woff], 1);
27 }
28! _rl_vis_botlin = 0;
29! if (botline_length > 0 || _rl_last_c_pos > 0)
30 rl_crlf ();
31 fflush (rl_outstream);
32 rl_display_fixed++;
33--- 3394,3400 ----
34 &last_face[_rl_screenwidth - 1 + woff], 1);
35 }
36! if ((_rl_vis_botlin == 0 && botline_length == 0) || botline_length > 0 || _rl_last_c_pos > 0)
37 rl_crlf ();
38+ _rl_vis_botlin = 0;
39 fflush (rl_outstream);
40 rl_display_fixed++;
41*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
42--- patchlevel 2014-03-21 08:28:40.000000000 -0400
43***************
44*** 1,3 ****
45 # Do not edit -- exists only for use by patch
46
47! 6
48--- 1,3 ----
49 # Do not edit -- exists only for use by patch
50
51! 7
diff --git a/meta/recipes-core/readline/readline/readline82-008.patch b/meta/recipes-core/readline/readline/readline82-008.patch
deleted file mode 100644
index 660cb1e00b..0000000000
--- a/meta/recipes-core/readline/readline/readline82-008.patch
+++ /dev/null
@@ -1,80 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-008
6
7Bug-Reported-by:
8Bug-Reference-ID:
9Bug-Reference-URL:
10
11Bug-Description:
12
13Add missing prototypes for several function declarations.
14
15Patch (apply with `patch -p0'):
16
17Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19
20*** ../readline-8.2-patched/text.c Wed Oct 27 11:03:59 2021
21--- text.c Thu Nov 16 16:24:58 2023
22***************
23*** 1765,1770 ****
24 #if defined (READLINE_CALLBACKS)
25 static int
26! _rl_char_search_callback (data)
27! _rl_callback_generic_arg *data;
28 {
29 _rl_callback_func = 0;
30--- 1765,1769 ----
31 #if defined (READLINE_CALLBACKS)
32 static int
33! _rl_char_search_callback (_rl_callback_generic_arg *data)
34 {
35 _rl_callback_func = 0;
36*** ../readline-8.2-patched/bind.c Wed Feb 9 11:02:22 2022
37--- bind.c Thu Nov 16 16:25:17 2023
38***************
39*** 1168,1174 ****
40
41 static int
42! parse_comparison_op (s, indp)
43! const char *s;
44! int *indp;
45 {
46 int i, peekc, op;
47--- 1168,1172 ----
48
49 static int
50! parse_comparison_op (const char *s, int *indp)
51 {
52 int i, peekc, op;
53*** ../readline-8.2-patched/rltty.c Fri Feb 18 11:14:22 2022
54--- rltty.c Thu Nov 16 16:25:36 2023
55***************
56*** 81,86 ****
57 to get the tty settings. */
58 static void
59! set_winsize (tty)
60! int tty;
61 {
62 #if defined (TIOCGWINSZ)
63--- 81,85 ----
64 to get the tty settings. */
65 static void
66! set_winsize (int tty)
67 {
68 #if defined (TIOCGWINSZ)
69
70*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
71--- patchlevel 2014-03-21 08:28:40.000000000 -0400
72***************
73*** 1,3 ****
74 # Do not edit -- exists only for use by patch
75
76! 7
77--- 1,3 ----
78 # Do not edit -- exists only for use by patch
79
80! 8
diff --git a/meta/recipes-core/readline/readline/readline82-009.patch b/meta/recipes-core/readline/readline/readline82-009.patch
deleted file mode 100644
index 1fcf7b3535..0000000000
--- a/meta/recipes-core/readline/readline/readline82-009.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-009
6
7Bug-Reported-by: Stefan H. Holek <stefan@epy.co.at>
8Bug-Reference-ID: <50F8DA45-B7F3-4DE1-AB94-19AE42649CDC@epy.co.at>
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00021.html
10
11Bug-Description:
12
13Fix issue where the directory name portion of the word to be completed (the
14part that is passed to opendir()) requires both tilde expansion and dequoting.
15Readline only performed tilde expansion in this case, so filename completion
16would fail.
17
18Patch (apply with `patch -p0'):
19
20Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
21Signed-off-by: Khem Raj <raj.khem@gmail.com>
22
23*** ../readline-8.2-patched/complete.c 2022-04-05 10:47:06.000000000 -0400
24--- complete.c 2022-10-26 15:08:51.000000000 -0400
25***************
26*** 2527,2531 ****
27 xfree (dirname);
28 dirname = temp;
29! tilde_dirname = 1;
30 }
31
32--- 2527,2532 ----
33 xfree (dirname);
34 dirname = temp;
35! if (*dirname != '~')
36! tilde_dirname = 1; /* indicate successful tilde expansion */
37 }
38
39***************
40*** 2546,2554 ****
41 users_dirname = savestring (dirname);
42 }
43! else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function)
44 {
45! /* delete single and double quotes */
46 xfree (dirname);
47! dirname = savestring (users_dirname);
48 }
49 directory = opendir (dirname);
50--- 2547,2560 ----
51 users_dirname = savestring (dirname);
52 }
53! else if (rl_completion_found_quote && rl_filename_dequoting_function)
54 {
55! /* We already ran users_dirname through the dequoting function.
56! If tilde_dirname == 1, we successfully performed tilde expansion
57! on dirname. Now we need to reconcile those results. We either
58! just copy the already-dequoted users_dirname or tilde expand it
59! if we tilde-expanded dirname. */
60! temp = tilde_dirname ? tilde_expand (users_dirname) : savestring (users_dirname);
61 xfree (dirname);
62! dirname = temp;
63 }
64 directory = opendir (dirname);
65
66*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
67--- patchlevel 2014-03-21 08:28:40.000000000 -0400
68***************
69*** 1,3 ****
70 # Do not edit -- exists only for use by patch
71
72! 8
73--- 1,3 ----
74 # Do not edit -- exists only for use by patch
75
76! 9
diff --git a/meta/recipes-core/readline/readline/readline82-010.patch b/meta/recipes-core/readline/readline/readline82-010.patch
deleted file mode 100644
index 6152953e91..0000000000
--- a/meta/recipes-core/readline/readline/readline82-010.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1 READLINE PATCH REPORT
2 =====================
3
4Readline-Release: 8.2
5Patch-ID: readline82-010
6
7Bug-Reported-by: Martin Castillo <castilma@uni-bremen.de>
8Bug-Reference-ID: <2d42153b-cf65-caba-dff1-cd3bc6268c7e@uni-bremen.de>
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2023-01/msg00000.html
10
11Bug-Description:
12
13Fix the case where text to be completed from the line buffer (quoted) is
14compared to the common prefix of the possible matches (unquoted) and the
15quoting makes the former appear to be longer than the latter. Readline
16assumes the match doesn't add any characters to the word and doesn't display
17multiple matches.
18
19Patch (apply with `patch -p0'):
20
21Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
22Signed-off-by: Khem Raj <raj.khem@gmail.com>
23
24*** ../readline-8.2-patched/complete.c Tue Apr 5 10:47:06 2022
25--- complete.c Sat Jan 7 14:19:45 2023
26***************
27*** 2032,2038 ****
28 text = rl_copy_text (start, end);
29 matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
30 /* nontrivial_lcd is set if the common prefix adds something to the word
31 being completed. */
32! nontrivial_lcd = matches && compare_match (text, matches[0]) != 0;
33 if (what_to_do == '!' || what_to_do == '@')
34 tlen = strlen (text);
35--- 2038,2060 ----
36 text = rl_copy_text (start, end);
37 matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
38+ /* If TEXT contains quote characters, it will be dequoted as part of
39+ generating the matches, and the matches will not contain any quote
40+ characters. We need to dequote TEXT before performing the comparison.
41+ Since compare_match performs the dequoting, and we only want to do it
42+ once, we don't call compare_matches after dequoting TEXT; we call
43+ strcmp directly. */
44 /* nontrivial_lcd is set if the common prefix adds something to the word
45 being completed. */
46! if (rl_filename_completion_desired && rl_filename_quoting_desired &&
47! rl_completion_found_quote && rl_filename_dequoting_function)
48! {
49! char *t;
50! t = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
51! xfree (text);
52! text = t;
53! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
54! }
55! else
56! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
57 if (what_to_do == '!' || what_to_do == '@')
58 tlen = strlen (text);
59
60*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500
61--- patchlevel 2014-03-21 08:28:40.000000000 -0400
62***************
63*** 1,3 ****
64 # Do not edit -- exists only for use by patch
65
66! 9
67--- 1,3 ----
68 # Do not edit -- exists only for use by patch
69
70! 10
diff --git a/meta/recipes-core/readline/readline_8.2.13.bb b/meta/recipes-core/readline/readline_8.2.13.bb
new file mode 100644
index 0000000000..19b5cb6f58
--- /dev/null
+++ b/meta/recipes-core/readline/readline_8.2.13.bb
@@ -0,0 +1,7 @@
1require readline.inc
2
3SRC_URI += "file://norpath.patch \
4 file://0001-Add-fix-for-packages-that-are-not-compatible-with-C2.patch \
5 "
6
7SRC_URI[archive.sha256sum] = "0e5be4d2937e8bd9b7cd60d46721ce79f88a33415dd68c2d738fb5924638f656"
diff --git a/meta/recipes-core/readline/readline_8.2.bb b/meta/recipes-core/readline/readline_8.2.bb
deleted file mode 100644
index f0dba31251..0000000000
--- a/meta/recipes-core/readline/readline_8.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1require readline.inc
2
3SRC_URI += " file://norpath.patch"
4
5SRC_URI += "file://readline82-001.patch;striplevel=0 \
6 file://readline82-002.patch;striplevel=0 \
7 file://readline82-003.patch;striplevel=0 \
8 file://readline82-004.patch;striplevel=0 \
9 file://readline82-005.patch;striplevel=0 \
10 file://readline82-006.patch;striplevel=0 \
11 file://readline82-007.patch;striplevel=0 \
12 file://readline82-008.patch;striplevel=0 \
13 file://readline82-009.patch;striplevel=0 \
14 file://readline82-010.patch;striplevel=0 \
15 "
16
17SRC_URI[archive.sha256sum] = "3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35"
diff --git a/meta/recipes-core/seatd/seatd/init b/meta/recipes-core/seatd/seatd/init
index 0589c765ac..405000c16f 100644
--- a/meta/recipes-core/seatd/seatd/init
+++ b/meta/recipes-core/seatd/seatd/init
@@ -15,7 +15,7 @@ killproc() {
15 15
16case "$1" in 16case "$1" in
17 start) 17 start)
18 seatd -g video -n 1 > /tmp/seatd-start-notify & 18 seatd -g seat -n 1 > /tmp/seatd-start-notify &
19 [ -s /tmp/seatd-start-notify ] && exit 0 19 [ -s /tmp/seatd-start-notify ] && exit 0
20 sleep 0.1 20 sleep 0.1
21 [ -s /tmp/seatd-start-notify ] && exit 0 21 [ -s /tmp/seatd-start-notify ] && exit 0
diff --git a/meta/recipes-core/seatd/seatd_0.8.0.bb b/meta/recipes-core/seatd/seatd_0.8.0.bb
deleted file mode 100644
index 14c5b1b7ae..0000000000
--- a/meta/recipes-core/seatd/seatd_0.8.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "A minimal seat management daemon, and a universal seat management library."
2DESCRIPTION = "Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root."
3HOMEPAGE = "https://git.sr.ht/~kennylevinsen/seatd"
4
5LICENSE = "MIT"
6
7LIC_FILES_CHKSUM = "file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a"
8
9SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https;branch=master \
10 file://init"
11SRCREV = "3e9ef69f14f630a719dd464f3c90a7932f1c8296"
12S = "${WORKDIR}/git"
13
14inherit meson pkgconfig update-rc.d
15
16# https://www.openwall.com/lists/musl/2020/01/20/3
17CFLAGS:append:libc-musl:powerpc64le = " -Wno-error=overflow"
18
19PACKAGECONFIG ?= " \
20 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
21 libseat-builtin \
22"
23
24PACKAGECONFIG[libseat-builtin] = "-Dlibseat-builtin=enabled,-Dlibseat-builtin=disabled"
25PACKAGECONFIG[systemd] = ",,systemd"
26
27do_install:append() {
28 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
29 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/seatd
30 fi
31}
32
33INITSCRIPT_NAME = "seatd"
34INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
35INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
diff --git a/meta/recipes-core/seatd/seatd_0.9.1.bb b/meta/recipes-core/seatd/seatd_0.9.1.bb
new file mode 100644
index 0000000000..3be27dda9d
--- /dev/null
+++ b/meta/recipes-core/seatd/seatd_0.9.1.bb
@@ -0,0 +1,48 @@
1SUMMARY = "A minimal seat management daemon, and a universal seat management library."
2DESCRIPTION = "Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root."
3HOMEPAGE = "https://git.sr.ht/~kennylevinsen/seatd"
4
5LICENSE = "MIT"
6
7LIC_FILES_CHKSUM = "file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a"
8
9SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https;branch=master \
10 file://init"
11SRCREV = "566ffeb032af42865dc1210e48cec08368059bb9"
12
13inherit meson pkgconfig systemd update-rc.d useradd
14
15# https://www.openwall.com/lists/musl/2020/01/20/3
16CFLAGS:append:libc-musl:powerpc64le = " -Wno-error=overflow"
17#../git/common/connection.c:154:55: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare]
18# 154 | for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg)) {
19# | ^~~~~~~~~~~~~~~~~~~~~~
20#/mnt/b/yoe/master/sources/poky/build/tmp/work/riscv64-poky-linux-musl/seatd/0.9.1/recipe-sysroot/usr/include/sys/socket.h:358:44: note: expanded from macro 'CMSG_NXTHDR'
21# 358 | __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
22# | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23#1 error generated.
24CFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare"
25
26PACKAGECONFIG ?= " \
27 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
28 libseat-builtin \
29"
30
31PACKAGECONFIG[libseat-builtin] = "-Dlibseat-builtin=enabled,-Dlibseat-builtin=disabled"
32PACKAGECONFIG[systemd] = "-Dlibseat-logind=systemd,,systemd"
33
34do_install:append() {
35 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
36 install -Dm755 ${UNPACKDIR}/init ${D}/${sysconfdir}/init.d/seatd
37 fi
38 install -Dm644 ${S}/contrib/systemd/seatd.service ${D}${systemd_unitdir}/system/seatd.service
39}
40
41USERADD_PACKAGES = "${PN}"
42GROUPADD_PARAM:${PN} = "-r seat"
43
44INITSCRIPT_NAME = "seatd"
45INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
46INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
47
48SYSTEMD_SERVICE:${PN} = "seatd.service"
diff --git a/meta/recipes-core/sysfsutils/files/0001-Modify-my_strncat-function.patch b/meta/recipes-core/sysfsutils/files/0001-Modify-my_strncat-function.patch
new file mode 100644
index 0000000000..a8a49a80cd
--- /dev/null
+++ b/meta/recipes-core/sysfsutils/files/0001-Modify-my_strncat-function.patch
@@ -0,0 +1,34 @@
1From a13fc5a57ea7c6b1761bc204cb79d8ce4745f57a Mon Sep 17 00:00:00 2001
2From: songliang <YS.songliang@h3c.com>
3Date: Wed, 4 Jun 2025 15:58:53 +0800
4Subject: [PATCH] Modify "my_strncat" function
5
6The meaning of the "len" parameter in the my_strncat function is the size limit for copying characters from "from", not the size limit for "to" after copying.
7Also, the "#define safestrcat(to, from) my_strncat(to, from, sizeof(to) - strlen(to) - 1)" has already imposed a limit on max based on the size of "to".
8Modify the function to prevent truncation of content when too many bytes are passed to the my_strcat function.
9
10Upstream-Status: Submitted [https://github.com/linux-ras/sysfsutils/pull/30/commits/c2326946c0c2a4206c9b079a9fe25f7f9115295c]
11Signed-off-by: songliang <YS.songliang@h3c.com>
12Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
13---
14 lib/sysfs_utils.c | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/lib/sysfs_utils.c b/lib/sysfs_utils.c
18index 46e0849..c0176d1 100644
19--- a/lib/sysfs_utils.c
20+++ b/lib/sysfs_utils.c
21@@ -375,8 +375,8 @@ char *my_strncat(char *to, const char *from, size_t max)
22 {
23 size_t i = 0;
24
25- while (i < max && to[i] != '\0')
26+ while (to[i] != '\0')
27 i++;
28- my_strncpy(to+i, from, max-i);
29+ my_strncpy(to+i, from, max);
30 return to;
31 }
32--
332.34.1
34
diff --git a/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb b/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
index 86cc06a2cd..5040d8864e 100644
--- a/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
+++ b/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
@@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dcc19fa9307a50017fca61423a7d9754 \
9 file://cmd/GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 9 file://cmd/GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://lib/LGPL;md5=4fbd65380cdd255951079008b364516c" 10 file://lib/LGPL;md5=4fbd65380cdd255951079008b364516c"
11 11
12SRC_URI = "git://github.com/linux-ras/sysfsutils.git;protocol=https;branch=master" 12SRC_URI = "git://github.com/linux-ras/sysfsutils.git;protocol=https;branch=master \
13 file://0001-Modify-my_strncat-function.patch \
14"
13 15
14SRCREV = "da2f1f8500c0af6663a56ce2bff07f67e60a92e0" 16SRCREV = "da2f1f8500c0af6663a56ce2bff07f67e60a92e0"
15 17
16S = "${WORKDIR}/git"
17
18inherit autotools 18inherit autotools
19 19
20PACKAGES =+ "libsysfs" 20PACKAGES =+ "libsysfs"
diff --git a/meta/recipes-core/systemd/dlopen-deps.inc b/meta/recipes-core/systemd/dlopen-deps.inc
new file mode 100644
index 0000000000..e0b333398c
--- /dev/null
+++ b/meta/recipes-core/systemd/dlopen-deps.inc
@@ -0,0 +1,81 @@
1PACKAGEFUNCS =+ "package_generate_dlopen_deps"
2
3python package_generate_dlopen_deps() {
4 # https://systemd.io/ELF_DLOPEN_METADATA/
5
6 import struct, json
7
8 def extract_segment(filename, segment):
9 """
10 Return the named segment from the ELF.
11 """
12 import tempfile, subprocess
13
14 with tempfile.NamedTemporaryFile() as f:
15 try:
16 cmd = [d.getVar("OBJCOPY"), "--dump-section", f"{segment}={f.name}", filename]
17 subprocess.run(cmd, check=True)
18 with open(f.name, "rb") as f2:
19 return f2.read()
20 except subprocess.CalledProcessError as e:
21 # binutils-objcopy has 0 exit code if the segment can't be found, but llvm-objcopy
22 # does not. Assume the failure isn't critical and ignore errors.
23 if e.returncode == 1:
24 return b""
25 raise e
26
27 def parse(buffer, is_little):
28 deps = []
29 offset = 0
30 while offset < len(buffer):
31 format = f"{'<' if is_little else '>'}iii"
32 name_size, desc_size, note_type = struct.unpack_from(format, buffer, offset)
33 offset += struct.calcsize(format)
34
35 format = f"{name_size}s0i{desc_size}s0i"
36 if note_type == 0x407c0c0a:
37 name_b, desc_b = struct.unpack_from(format, buffer, offset)
38 name = name_b.strip(b"\x00").decode("ascii")
39 if name == "FDO":
40 desc = desc_b.strip(b"\x00").decode("utf-8")
41 deps.append(*json.loads(desc))
42 offset += struct.calcsize(format)
43 return deps
44
45 dep_map = {
46 "required": "RDEPENDS",
47 "recommended": "RRECOMMENDS",
48 "suggested": "RSUGGESTS"
49 }
50
51 shlibs = oe.package.read_shlib_providers(d)
52
53 for pkg, files in pkgfiles.items():
54 # Skip -dbg packages as we won't need to generate dependencies for those
55 # but scanning can take time
56 if pkg.endswith("-dbg"):
57 continue
58
59 for f in files:
60 # Skip symlinks, just look for real libraries
61 if cpath.islink(f):
62 continue
63
64 if ".so." in f or f.endswith(".so"):
65 try:
66 elf = oe.qa.ELFFile(f)
67 elf.open()
68 for dep in parse(extract_segment(f, ".note.dlopen"), elf.isLittleEndian()):
69 for soname in dep["soname"]:
70 if soname in shlibs:
71 # TODO assumes the first match is good
72 package, version = list(shlibs[soname].values())[0]
73 dependency = dep_map[dep["priority"]]
74 bb.note(f"{pkg}: adding {dependency} on {package} via .note.dlopen")
75 d.appendVar(f"{dependency}:{pkg}", f" {package} (>= {version})")
76 else:
77 bb.warn(f"cannot find {soname}")
78 except oe.qa.NotELFFileError as e:
79 bb.note(f"Cannot extract ELF notes: {e}")
80 pass
81}
diff --git a/meta/recipes-core/systemd/systemd-boot-native_255.4.bb b/meta/recipes-core/systemd/systemd-boot-native_257.6.bb
index 73db59b14e..05ebe7b63e 100644
--- a/meta/recipes-core/systemd/systemd-boot-native_255.4.bb
+++ b/meta/recipes-core/systemd/systemd-boot-native_257.6.bb
@@ -1,4 +1,5 @@
1require systemd.inc 1require systemd.inc
2FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
2 3
3inherit native 4inherit native
4 5
@@ -8,8 +9,10 @@ deltask do_compile
8do_install () { 9do_install () {
9 install -Dm 0755 ${S}/src/ukify/ukify.py ${D}${bindir}/ukify 10 install -Dm 0755 ${S}/src/ukify/ukify.py ${D}${bindir}/ukify
10} 11}
11addtask install after do_unpack 12addtask install after do_patch
12 13
13PACKAGES = "${PN}" 14PACKAGES = "${PN}"
14 15
15FILES:${PN} = "${bindir}/ukify" 16FILES:${PN} = "${bindir}/ukify"
17
18RDEPENDS:${PN} += "python3-pefile-native"
diff --git a/meta/recipes-core/systemd/systemd-boot_255.4.bb b/meta/recipes-core/systemd/systemd-boot_257.6.bb
index 4ee25ee72f..c6c443f929 100644
--- a/meta/recipes-core/systemd/systemd-boot_255.4.bb
+++ b/meta/recipes-core/systemd/systemd-boot_257.6.bb
@@ -3,15 +3,15 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
3 3
4require conf/image-uefi.conf 4require conf/image-uefi.conf
5 5
6DEPENDS = "intltool-native libcap util-linux gperf-native python3-jinja2-native python3-pyelftools-native" 6DEPENDS = "libcap util-linux gperf-native python3-jinja2-native python3-pyelftools-native"
7 7
8inherit meson pkgconfig gettext 8inherit meson pkgconfig gettext
9inherit deploy 9inherit deploy
10 10
11LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} " 11LDFLAGS =+ "${@ " ".join(d.getVar('LD').split()[1:])} "
12 12
13EFI_LD = "bfd" 13EFI_LD = "bfd"
14LDFLAGS:append = " -fuse-ld=${EFI_LD}" 14LDFLAGS += "-fuse-ld=${EFI_LD}"
15 15
16do_write_config[vardeps] += "EFI_LD" 16do_write_config[vardeps] += "EFI_LD"
17do_write_config:append() { 17do_write_config:append() {
@@ -47,20 +47,28 @@ FILES:${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}"
47 47
48RDEPENDS:${PN} += "virtual-systemd-bootconf" 48RDEPENDS:${PN} += "virtual-systemd-bootconf"
49 49
50# efi portions use -mgeneral-regs-only option which conflicts with SSE
51# especially clang throws errors about it
52# error: the 'sse' unit is not supported with this instruction set
53TUNE_CCARGS:remove = "-mfpmath=sse"
54
50CFLAGS:append:libc-musl = " -D__DEFINED_wchar_t" 55CFLAGS:append:libc-musl = " -D__DEFINED_wchar_t"
51 56
52COMPATIBLE_HOST = "(aarch64.*|arm.*|x86_64.*|i.86.*)-linux" 57# arm-poky-linux-musleabi-clang: error: unsupported option '-mgeneral-regs-only' for target 'arm-poky-linux-musleabi'
58TOOLCHAIN:arm = "gcc"
59
60COMPATIBLE_HOST = "(aarch64.*|arm.*|x86_64.*|i.86.*|riscv.*)-linux"
53COMPATIBLE_HOST:x86-x32 = "null" 61COMPATIBLE_HOST:x86-x32 = "null"
54 62
55do_install() { 63do_install() {
56 install -d ${D}${EFI_FILES_PATH} 64 install -d ${D}${EFI_FILES_PATH}
57 install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE} 65 install ${B}/src/boot/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}
58} 66}
59 67
60do_deploy () { 68do_deploy () {
61 install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} 69 install ${B}/src/boot/systemd-boot*.efi ${DEPLOYDIR}
62 install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR} 70 install ${B}/src/boot/linux*.efi.stub ${DEPLOYDIR}
63 install ${B}/src/boot/efi/addon*.efi.stub ${DEPLOYDIR} 71 install ${B}/src/boot/addon*.efi.stub ${DEPLOYDIR}
64} 72}
65 73
66addtask deploy before do_build after do_compile 74addtask deploy before do_build after do_compile
diff --git a/meta/recipes-core/systemd/systemd-bootconf_1.00.bb b/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
index 19637546a9..5efac3e410 100644
--- a/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
+++ b/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
@@ -7,7 +7,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
7 7
8inherit systemd-boot-cfg 8inherit systemd-boot-cfg
9 9
10S = "${WORKDIR}" 10S = "${UNPACKDIR}"
11 11
12LABELS = "boot" 12LABELS = "boot"
13 13
diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb
index c03d97f9c9..d6da34e9b8 100644
--- a/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -2,10 +2,9 @@ SUMMARY = "Enhances systemd compatilibity with existing SysVinit scripts"
2HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd" 2HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
3LICENSE = "MIT" 3LICENSE = "MIT"
4 4
5
6PACKAGE_WRITE_DEPS += "systemd-systemctl-native" 5PACKAGE_WRITE_DEPS += "systemd-systemctl-native"
7 6
8S = "${WORKDIR}" 7S = "${UNPACKDIR}"
9 8
10inherit features_check 9inherit features_check
11 10
@@ -25,7 +24,7 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \
25 syslog.busybox \ 24 syslog.busybox \
26" 25"
27 26
28pkg_postinst:${PN} () { 27pkg_postinst_ontarget:${PN} () {
29 28
30 test -d $D${sysconfdir}/init.d || exit 0 29 test -d $D${sysconfdir}/init.d || exit 0
31 cd $D${sysconfdir}/init.d 30 cd $D${sysconfdir}/init.d
diff --git a/meta/recipes-core/systemd/systemd-conf_1.0.bb b/meta/recipes-core/systemd/systemd-conf_1.0.bb
index 2355936631..60066cd60a 100644
--- a/meta/recipes-core/systemd/systemd-conf_1.0.bb
+++ b/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -21,19 +21,21 @@ SRC_URI = "\
21 file://wired.network \ 21 file://wired.network \
22" 22"
23 23
24S = "${UNPACKDIR}"
25
24do_install() { 26do_install() {
25 install -D -m0644 ${WORKDIR}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf 27 install -D -m0644 ${S}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf
26 install -D -m0644 ${WORKDIR}/logind.conf ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf 28 install -D -m0644 ${S}/logind.conf ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf
27 install -D -m0644 ${WORKDIR}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf 29 install -D -m0644 ${S}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf
28 30
29 if ${@bb.utils.contains('PACKAGECONFIG', 'dhcp-ethernet', 'true', 'false', d)}; then 31 if ${@bb.utils.contains('PACKAGECONFIG', 'dhcp-ethernet', 'true', 'false', d)}; then
30 install -D -m0644 ${WORKDIR}/wired.network ${D}${systemd_unitdir}/network/80-wired.network 32 install -D -m0644 ${S}/wired.network ${D}${systemd_unitdir}/network/80-wired.network
31 fi 33 fi
32} 34}
33 35
34# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52 36# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
35do_install:append:qemuall() { 37do_install:append:qemuall() {
36 install -D -m0644 ${WORKDIR}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf 38 install -D -m0644 ${S}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf
37} 39}
38 40
39PACKAGE_ARCH = "${MACHINE_ARCH}" 41PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-core/systemd/systemd-machine-units_1.0.bb b/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
index 8df7ff7cf1..a366f199ee 100644
--- a/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
+++ b/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
5 5
6PACKAGE_ARCH = "${MACHINE_ARCH}" 6PACKAGE_ARCH = "${MACHINE_ARCH}"
7 7
8
9inherit systemd features_check 8inherit systemd features_check
10REQUIRED_DISTRO_FEATURES += "usrmerge" 9REQUIRED_DISTRO_FEATURES += "usrmerge"
11SYSTEMD_SERVICE:${PN} = "" 10SYSTEMD_SERVICE:${PN} = ""
diff --git a/meta/recipes-core/systemd/systemd-serialgetty.bb b/meta/recipes-core/systemd/systemd-serialgetty.bb
index 44a93ac684..c3fe9d5b6d 100644
--- a/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -1,15 +1,13 @@
1SUMMARY = "Serial terminal support for systemd" 1SUMMARY = "Serial terminal support for systemd (using SERIAL_CONSOLES)"
2HOMEPAGE = "https://www.freedesktop.org/wiki/Software/systemd/" 2HOMEPAGE = "https://www.freedesktop.org/wiki/Software/systemd/"
3LICENSE = "GPL-2.0-or-later" 3LICENSE = "GPL-2.0-or-later"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
5 5
6 6# Note that this recipe explicitly creates a serial-getty@ service for every tty
7SERIAL_CONSOLES ?= "115200;ttyS0" 7# in SERIAL_CONSOLES. This is typically not always needed with systemd as it
8SERIAL_TERM ?= "linux" 8# will probe at boot and generate getty instances for any active consoles as
9 9# required. This recipe (enabled via disabling serial-getty-generator in systemd)
10SRC_URI = "file://serial-getty@.service" 10# should only be used if the generator is not appropriate.
11
12S = "${WORKDIR}"
13 11
14# As this package is tied to systemd, only build it when we're also building systemd. 12# As this package is tied to systemd, only build it when we're also building systemd.
15inherit features_check 13inherit features_check
@@ -19,11 +17,7 @@ REQUIRED_DISTRO_FEATURES += "usrmerge"
19do_install() { 17do_install() {
20 if [ ! -z "${SERIAL_CONSOLES}" ] ; then 18 if [ ! -z "${SERIAL_CONSOLES}" ] ; then
21 default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'` 19 default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'`
22 install -d ${D}${systemd_system_unitdir}/
23 install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/ 20 install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
24 install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_system_unitdir}/
25 sed -i -e "s/\@BAUDRATE\@/$default_baudrate/g" ${D}${systemd_system_unitdir}/serial-getty@.service
26 sed -i -e "s/\@TERM\@/${SERIAL_TERM}/g" ${D}${systemd_system_unitdir}/serial-getty@.service
27 21
28 tmp="${SERIAL_CONSOLES}" 22 tmp="${SERIAL_CONSOLES}"
29 for entry in $tmp ; do 23 for entry in $tmp ; do
@@ -35,7 +29,7 @@ do_install() {
35 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service 29 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service
36 else 30 else
37 # install custom service file for the non-default baudrate 31 # install custom service file for the non-default baudrate
38 install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service 32 install -m 0644 ${S}/serial-getty@.service ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service
39 sed -i -e "s/\@BAUDRATE\@/$baudrate/g" ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service 33 sed -i -e "s/\@BAUDRATE\@/$baudrate/g" ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service
40 # enable the service 34 # enable the service
41 ln -sf ${systemd_system_unitdir}/serial-getty$baudrate@.service \ 35 ln -sf ${systemd_system_unitdir}/serial-getty$baudrate@.service \
@@ -46,7 +40,7 @@ do_install() {
46} 40}
47 41
48# This is a machine specific file 42# This is a machine specific file
49FILES:${PN} = "${systemd_system_unitdir}/*.service ${sysconfdir}"
50PACKAGE_ARCH = "${MACHINE_ARCH}" 43PACKAGE_ARCH = "${MACHINE_ARCH}"
44FILES:${PN} = "${sysconfdir}"
51 45
52ALLOW_EMPTY:${PN} = "1" 46ALLOW_EMPTY:${PN} = "1"
diff --git a/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service b/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
deleted file mode 100644
index b16fe1188e..0000000000
--- a/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
+++ /dev/null
@@ -1,45 +0,0 @@
1# SPDX-License-Identifier: LGPL-2.1+
2#
3# This file is part of systemd.
4#
5# systemd is free software; you can redistribute it and/or modify it
6# under the terms of the GNU Lesser General Public License as published by
7# the Free Software Foundation; either version 2.1 of the License, or
8# (at your option) any later version.
9
10[Unit]
11Description=Serial Getty on %I
12Documentation=man:agetty(8) man:systemd-getty-generator(8)
13Documentation=http://0pointer.de/blog/projects/serial-console.html
14PartOf=dev-%i.device
15ConditionPathExists=/dev/%i
16After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
17After=rc-local.service
18
19# If additional gettys are spawned during boot then we should make
20# sure that this is synchronized before getty.target, even though
21# getty.target didn't actually pull it in.
22Before=getty.target
23IgnoreOnIsolate=yes
24
25# IgnoreOnIsolate causes issues with sulogin, if someone isolates
26# rescue.target or starts rescue.service from multi-user.target or
27# graphical.target.
28Conflicts=rescue.service
29Before=rescue.service
30
31[Service]
32Environment="TERM=@TERM@"
33ExecStart=-/sbin/agetty -8 -L %I @BAUDRATE@ $TERM
34Type=idle
35Restart=always
36UtmpIdentifier=%I
37TTYPath=/dev/%I
38TTYReset=yes
39TTYVHangup=yes
40KillMode=process
41IgnoreSIGPIPE=no
42SendSIGHUP=yes
43
44[Install]
45WantedBy=getty.target
diff --git a/meta/recipes-core/systemd/systemd-systemctl-native.bb b/meta/recipes-core/systemd/systemd-systemctl-native.bb
deleted file mode 100644
index 54283bcba1..0000000000
--- a/meta/recipes-core/systemd/systemd-systemctl-native.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1SUMMARY = "Wrapper for enabling systemd services"
2
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5
6
7inherit native
8
9SRC_URI = "file://systemctl"
10
11S = "${WORKDIR}"
12
13do_install() {
14 install -d ${D}${bindir}
15 install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
16}
diff --git a/meta/recipes-core/systemd/systemd-systemctl-native_257.6.bb b/meta/recipes-core/systemd/systemd-systemctl-native_257.6.bb
new file mode 100644
index 0000000000..041a040a26
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd-systemctl-native_257.6.bb
@@ -0,0 +1,16 @@
1SUMMARY = "Systemctl executable from systemd"
2
3require systemd.inc
4
5DEPENDS = "gperf-native libcap-native util-linux-native python3-jinja2-native"
6
7inherit pkgconfig meson native
8
9MESON_TARGET = "systemctl:executable"
10MESON_INSTALL_TAGS = "systemctl"
11EXTRA_OEMESON += "-Dlink-systemctl-shared=false"
12
13# Systemctl is supposed to operate on target, but the target sysroot is not
14# determined at run-time, but rather set during configure
15# More details are here https://github.com/systemd/systemd/issues/35897#issuecomment-2665405887
16EXTRA_OEMESON += "--sysconfdir ${sysconfdir_native}"
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
deleted file mode 100755
index 2229bc7b6d..0000000000
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ /dev/null
@@ -1,362 +0,0 @@
1#!/usr/bin/env python3
2"""systemctl: subset of systemctl used for image construction
3
4Mask/preset systemd units
5"""
6
7import argparse
8import fnmatch
9import os
10import re
11import sys
12
13from collections import namedtuple
14from itertools import chain
15from pathlib import Path
16
17version = 1.0
18
19ROOT = Path("/")
20SYSCONFDIR = Path("etc")
21BASE_LIBDIR = Path("lib")
22LIBDIR = Path("usr", "lib")
23
24locations = list()
25
26
27class SystemdFile():
28 """Class representing a single systemd configuration file"""
29
30 _clearable_keys = ['WantedBy']
31
32 def __init__(self, root, path, instance_unit_name):
33 self.sections = dict()
34 self._parse(root, path)
35 dirname = os.path.basename(path.name) + ".d"
36 for location in locations:
37 files = (root / location / "system" / dirname).glob("*.conf")
38 if instance_unit_name:
39 inst_dirname = instance_unit_name + ".d"
40 files = chain(files, (root / location / "system" / inst_dirname).glob("*.conf"))
41 for path2 in sorted(files):
42 self._parse(root, path2)
43
44 def _parse(self, root, path):
45 """Parse a systemd syntax configuration file
46
47 Args:
48 path: A pathlib.Path object pointing to the file
49
50 """
51 skip_re = re.compile(r"^\s*([#;]|$)")
52 section_re = re.compile(r"^\s*\[(?P<section>.*)\]")
53 kv_re = re.compile(r"^\s*(?P<key>[^\s]+)\s*=\s*(?P<value>.*)")
54 section = None
55
56 if path.is_symlink():
57 try:
58 path.resolve()
59 except FileNotFoundError:
60 # broken symlink, try relative to root
61 path = root / Path(os.readlink(str(path))).relative_to(ROOT)
62
63 with path.open() as f:
64 for line in f:
65 if skip_re.match(line):
66 continue
67
68 line = line.strip()
69 m = section_re.match(line)
70 if m:
71 if m.group('section') not in self.sections:
72 section = dict()
73 self.sections[m.group('section')] = section
74 else:
75 section = self.sections[m.group('section')]
76 continue
77
78 while line.endswith("\\"):
79 line += f.readline().rstrip("\n")
80
81 m = kv_re.match(line)
82 k = m.group('key')
83 v = m.group('value')
84 if k not in section:
85 section[k] = list()
86
87 # If we come across a "key=" line for a "clearable key", then
88 # forget all preceding assignments. This works because we are
89 # processing files in correct parse order.
90 if k in self._clearable_keys and not v:
91 del section[k]
92 continue
93
94 section[k].extend(v.split())
95
96 def get(self, section, prop):
97 """Get a property from section
98
99 Args:
100 section: Section to retrieve property from
101 prop: Property to retrieve
102
103 Returns:
104 List representing all properties of type prop in section.
105
106 Raises:
107 KeyError: if ``section`` or ``prop`` not found
108 """
109 return self.sections[section][prop]
110
111
112class Presets():
113 """Class representing all systemd presets"""
114 def __init__(self, scope, root):
115 self.directives = list()
116 self._collect_presets(scope, root)
117
118 def _parse_presets(self, presets):
119 """Parse presets out of a set of preset files"""
120 skip_re = re.compile(r"^\s*([#;]|$)")
121 directive_re = re.compile(r"^\s*(?P<action>enable|disable)\s+(?P<unit_name>(.+))")
122
123 Directive = namedtuple("Directive", "action unit_name")
124 for preset in presets:
125 with preset.open() as f:
126 for line in f:
127 m = directive_re.match(line)
128 if m:
129 directive = Directive(action=m.group('action'),
130 unit_name=m.group('unit_name'))
131 self.directives.append(directive)
132 elif skip_re.match(line):
133 pass
134 else:
135 sys.exit("Unparsed preset line in {}".format(preset))
136
137 def _collect_presets(self, scope, root):
138 """Collect list of preset files"""
139 presets = dict()
140 for location in locations:
141 paths = (root / location / scope).glob("*.preset")
142 for path in paths:
143 # earlier names override later ones
144 if path.name not in presets:
145 presets[path.name] = path
146
147 self._parse_presets([v for k, v in sorted(presets.items())])
148
149 def state(self, unit_name):
150 """Return state of preset for unit_name
151
152 Args:
153 presets: set of presets
154 unit_name: name of the unit
155
156 Returns:
157 None: no matching preset
158 `enable`: unit_name is enabled
159 `disable`: unit_name is disabled
160 """
161 for directive in self.directives:
162 if fnmatch.fnmatch(unit_name, directive.unit_name):
163 return directive.action
164
165 return None
166
167
168def add_link(path, target):
169 try:
170 path.parent.mkdir(parents=True)
171 except FileExistsError:
172 pass
173 if not path.is_symlink():
174 print("ln -s {} {}".format(target, path))
175 path.symlink_to(target)
176
177
178class SystemdUnitNotFoundError(Exception):
179 def __init__(self, path, unit):
180 self.path = path
181 self.unit = unit
182
183
184class SystemdUnit():
185 def __init__(self, root, unit):
186 self.root = root
187 self.unit = unit
188 self.config = None
189
190 def _path_for_unit(self, unit):
191 for location in locations:
192 path = self.root / location / "system" / unit
193 if path.exists() or path.is_symlink():
194 return path
195
196 raise SystemdUnitNotFoundError(self.root, unit)
197
198 def _process_deps(self, config, service, location, prop, dirstem, instance):
199 systemdir = self.root / SYSCONFDIR / "systemd" / "system"
200
201 target = ROOT / location.relative_to(self.root)
202 try:
203 for dependent in config.get('Install', prop):
204 # expand any %i to instance (ignoring escape sequence %%)
205 dependent = re.sub("([^%](%%)*)%i", "\\g<1>{}".format(instance), dependent)
206 wants = systemdir / "{}.{}".format(dependent, dirstem) / service
207 add_link(wants, target)
208
209 except KeyError:
210 pass
211
212 def enable(self, units_enabled=[]):
213 # if we're enabling an instance, first extract the actual instance
214 # then figure out what the template unit is
215 template = re.match(r"[^@]+@(?P<instance>[^\.]*)\.", self.unit)
216 instance_unit_name = None
217 if template:
218 instance = template.group('instance')
219 if instance != "":
220 instance_unit_name = self.unit
221 unit = re.sub(r"@[^\.]*\.", "@.", self.unit, 1)
222 else:
223 instance = None
224 unit = self.unit
225
226 path = self._path_for_unit(unit)
227
228 if path.is_symlink():
229 # ignore aliases
230 return
231
232 config = SystemdFile(self.root, path, instance_unit_name)
233 if instance == "":
234 try:
235 default_instance = config.get('Install', 'DefaultInstance')[0]
236 except KeyError:
237 # no default instance, so nothing to enable
238 return
239
240 service = self.unit.replace("@.",
241 "@{}.".format(default_instance))
242 else:
243 service = self.unit
244
245 self._process_deps(config, service, path, 'WantedBy', 'wants', instance)
246 self._process_deps(config, service, path, 'RequiredBy', 'requires', instance)
247
248 try:
249 for also in config.get('Install', 'Also'):
250 try:
251 units_enabled.append(unit)
252 if also not in units_enabled:
253 SystemdUnit(self.root, also).enable(units_enabled)
254 except SystemdUnitNotFoundError as e:
255 sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit))
256
257 except KeyError:
258 pass
259
260 systemdir = self.root / SYSCONFDIR / "systemd" / "system"
261 target = ROOT / path.relative_to(self.root)
262 try:
263 for dest in config.get('Install', 'Alias'):
264 alias = systemdir / dest
265 add_link(alias, target)
266
267 except KeyError:
268 pass
269
270 def mask(self):
271 systemdir = self.root / SYSCONFDIR / "systemd" / "system"
272 add_link(systemdir / self.unit, "/dev/null")
273
274
275def collect_services(root):
276 """Collect list of service files"""
277 services = set()
278 for location in locations:
279 paths = (root / location / "system").glob("*")
280 for path in paths:
281 if path.is_dir():
282 continue
283 services.add(path.name)
284
285 return services
286
287
288def preset_all(root):
289 presets = Presets('system-preset', root)
290 services = collect_services(root)
291
292 for service in services:
293 state = presets.state(service)
294
295 if state == "enable" or state is None:
296 try:
297 SystemdUnit(root, service).enable()
298 except SystemdUnitNotFoundError:
299 sys.exit("Error: Systemctl preset_all issue in %s" % service)
300
301 # If we populate the systemd links we also create /etc/machine-id, which
302 # allows systemd to boot with the filesystem read-only before generating
303 # a real value and then committing it back.
304 #
305 # For the stateless configuration, where /etc is generated at runtime
306 # (for example on a tmpfs), this script shouldn't run at all and we
307 # allow systemd to completely populate /etc.
308 (root / SYSCONFDIR / "machine-id").touch()
309
310
311def main():
312 if sys.version_info < (3, 4, 0):
313 sys.exit("Python 3.4 or greater is required")
314
315 parser = argparse.ArgumentParser()
316 parser.add_argument('command', nargs='?', choices=['enable', 'mask',
317 'preset-all'])
318 parser.add_argument('service', nargs=argparse.REMAINDER)
319 parser.add_argument('--root')
320 parser.add_argument('--preset-mode',
321 choices=['full', 'enable-only', 'disable-only'],
322 default='full')
323
324 args = parser.parse_args()
325
326 root = Path(args.root) if args.root else ROOT
327
328 locations.append(SYSCONFDIR / "systemd")
329 # Handle the usrmerge case by ignoring /lib when it's a symlink
330 if not (root / BASE_LIBDIR).is_symlink():
331 locations.append(BASE_LIBDIR / "systemd")
332 locations.append(LIBDIR / "systemd")
333
334 command = args.command
335 if not command:
336 parser.print_help()
337 return 0
338
339 if command == "mask":
340 for service in args.service:
341 try:
342 SystemdUnit(root, service).mask()
343 except SystemdUnitNotFoundError as e:
344 sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit))
345 elif command == "enable":
346 for service in args.service:
347 try:
348 SystemdUnit(root, service).enable()
349 except SystemdUnitNotFoundError as e:
350 sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit))
351 elif command == "preset-all":
352 if len(args.service) != 0:
353 sys.exit("Too many arguments.")
354 if args.preset_mode != "enable-only":
355 sys.exit("Only enable-only is supported as preset-mode.")
356 preset_all(root)
357 else:
358 raise RuntimeError()
359
360
361if __name__ == '__main__':
362 main()
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index a35db5091e..101457140f 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later"
15LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ 15LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
16 file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" 16 file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
17 17
18SRCREV = "387a14a7b67b8b76adaed4175e14bb7e39b2f738" 18SRCREV = "00a12c234e2506f5cab683460199575f13c454db"
19SRCBRANCH = "v255-stable" 19SRCBRANCH = "v257-stable"
20SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" 20SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH};tag=v${PV}"
21 21
22S = "${WORKDIR}/git" 22CVE_PRODUCT = "systemd"
diff --git a/meta/recipes-core/systemd/systemd/00-create-volatile.conf b/meta/recipes-core/systemd/systemd/00-create-volatile.conf
index c4277221a2..1092bda010 100644
--- a/meta/recipes-core/systemd/systemd/00-create-volatile.conf
+++ b/meta/recipes-core/systemd/systemd/00-create-volatile.conf
@@ -1,8 +1,9 @@
1#This goes hand-in-hand with the base-files of OE-Core. The file must 1# This goes hand-in-hand with the base-files of OE-Core. The file must
2# be sorted before 'systemd.conf' becuase this attempts to create a file 2# be sorted before 'systemd.conf' because this attempts to create a file
3# inside /var/log. 3# inside /var/log.
4 4
5 5
6d /run/lock 1777 - - - 6d /run/lock 1777 - - -
7d /var/volatile/log - - - - 7d /var/volatile/log - - - -
8d /var/volatile/tmp 1777 - - 8d /var/volatile/tmp 1777 - -
9L /var/tmp - - - - /var/volatile/tmp
diff --git a/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch b/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch
new file mode 100644
index 0000000000..850e356b2f
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch
@@ -0,0 +1,30 @@
1From 425ad51e727058b48dd4580fd6afe7e51e96a28a Mon Sep 17 00:00:00 2001
2From: Peter Kjellerstedt <pkj@axis.com>
3Date: Tue, 21 Jan 2025 05:02:00 +0100
4Subject: [PATCH] Do not create /var/log/README
5
6/var/log/README is a link to /usr/share/doc/systemd/README.logs. The
7latter is packaged in systemd-doc and likely not installed, which leaves
8/var/log/README as a dead link. Since /var/log/README is not very
9useful, just remove it.
10
11Upstream-Status: Inappropriate [OE specific]
12Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
13---
14 tmpfiles.d/legacy.conf.in | 3 ---
15 1 file changed, 3 deletions(-)
16
17diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in
18index b475500e58..650c91a8da 100644
19--- a/tmpfiles.d/legacy.conf.in
20+++ b/tmpfiles.d/legacy.conf.in
21@@ -13,9 +13,6 @@
22
23 d /run/lock 0755 root root -
24 L /var/lock - - - - ../run/lock
25-{% if CREATE_LOG_DIRS %}
26-L$ /var/log/README - - - - ../..{{DOC_DIR}}/README.logs
27-{% endif %}
28
29 {% if HAVE_SYSV_COMPAT %}
30 # /run/lock/subsys is used for serializing SysV service execution, and
diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
index be231cf6b2..5101f9227e 100644
--- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -1,7 +1,7 @@
1From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 1From e5fd143f215f072404c544f694cb026a4231503e Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Thu, 21 Feb 2019 16:23:24 +0800 3Date: Thu, 21 Feb 2019 16:23:24 +0800
4Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time 4Subject: [PATCH 01/26] binfmt: Don't install dependency links at install time
5 for the binfmt services 5 for the binfmt services
6 6
7use [Install] blocks so that they get created when the service is enabled 7use [Install] blocks so that they get created when the service is enabled
@@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
25 3 files changed, 7 insertions(+), 2 deletions(-) 25 3 files changed, 7 insertions(+), 2 deletions(-)
26 26
27diff --git a/units/meson.build b/units/meson.build 27diff --git a/units/meson.build b/units/meson.build
28index e7bfb7f838..1d5ec4b178 100644 28index 96f4852741..0a3a4fee67 100644
29--- a/units/meson.build 29--- a/units/meson.build
30+++ b/units/meson.build 30+++ b/units/meson.build
31@@ -154,7 +154,6 @@ units = [ 31@@ -156,7 +156,6 @@ units = [
32 { 32 {
33 'file' : 'proc-sys-fs-binfmt_misc.automount', 33 'file' : 'proc-sys-fs-binfmt_misc.automount',
34 'conditions' : ['ENABLE_BINFMT'], 34 'conditions' : ['ENABLE_BINFMT'],
@@ -36,7 +36,7 @@ index e7bfb7f838..1d5ec4b178 100644
36 }, 36 },
37 { 37 {
38 'file' : 'proc-sys-fs-binfmt_misc.mount', 38 'file' : 'proc-sys-fs-binfmt_misc.mount',
39@@ -251,7 +250,6 @@ units = [ 39@@ -258,7 +257,6 @@ units = [
40 { 40 {
41 'file' : 'systemd-binfmt.service.in', 41 'file' : 'systemd-binfmt.service.in',
42 'conditions' : ['ENABLE_BINFMT'], 42 'conditions' : ['ENABLE_BINFMT'],
@@ -45,7 +45,7 @@ index e7bfb7f838..1d5ec4b178 100644
45 { 45 {
46 'file' : 'systemd-bless-boot.service.in', 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 47diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
48index 5d212015a5..6c2900ca77 100644 48index 7ec21e76c9..fee4d1345f 100644
49--- a/units/proc-sys-fs-binfmt_misc.automount 49--- a/units/proc-sys-fs-binfmt_misc.automount
50+++ b/units/proc-sys-fs-binfmt_misc.automount 50+++ b/units/proc-sys-fs-binfmt_misc.automount
51@@ -22,3 +22,6 @@ Before=shutdown.target 51@@ -22,3 +22,6 @@ Before=shutdown.target
@@ -56,11 +56,11 @@ index 5d212015a5..6c2900ca77 100644
56+[Install] 56+[Install]
57+WantedBy=sysinit.target 57+WantedBy=sysinit.target
58diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in 58diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
59index 6861c76674..531e9fbd90 100644 59index 318bf8efc2..6ef684861d 100644
60--- a/units/systemd-binfmt.service.in 60--- a/units/systemd-binfmt.service.in
61+++ b/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 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 63 Documentation=https://systemd.io/API_FILE_SYSTEMS
64 DefaultDependencies=no 64 DefaultDependencies=no
65 Conflicts=shutdown.target 65 Conflicts=shutdown.target
66+Wants=proc-sys-fs-binfmt_misc.automount 66+Wants=proc-sys-fs-binfmt_misc.automount
diff --git a/meta/recipes-core/systemd/systemd/0008-implment-systemd-sysv-install-for-OE.patch b/meta/recipes-core/systemd/systemd/0002-implment-systemd-sysv-install-for-OE.patch
index acff18dc43..d8bb572261 100644
--- a/meta/recipes-core/systemd/systemd/0008-implment-systemd-sysv-install-for-OE.patch
+++ b/meta/recipes-core/systemd/systemd/0002-implment-systemd-sysv-install-for-OE.patch
@@ -1,7 +1,7 @@
1From 5712d56f1cd654d2e5d2e9117ff77fe4c299f76b Mon Sep 17 00:00:00 2001 1From fab8c573d06340868f070446118673b1c23584c5 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 5 Sep 2015 06:31:47 +0000 3Date: Sat, 5 Sep 2015 06:31:47 +0000
4Subject: [PATCH] implment systemd-sysv-install for OE 4Subject: [PATCH 02/26] implment systemd-sysv-install for OE
5 5
6Use update-rc.d for enabling/disabling and status command 6Use update-rc.d for enabling/disabling and status command
7to check the status of the sysv service 7to check the status of the sysv service
@@ -39,5 +39,5 @@ index cb58d8243b..000bdf6165 100755
39 *) 39 *)
40 usage ;; 40 usage ;;
41-- 41--
422.39.2 422.34.1
43 43
diff --git a/meta/recipes-core/systemd/systemd/0001-missing_type.h-add-comparison_fn_t.patch b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-comparison_fn_t.patch
index 2aa5dee6b5..f2094eb71d 100644
--- a/meta/recipes-core/systemd/systemd/0001-missing_type.h-add-comparison_fn_t.patch
+++ b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-comparison_fn_t.patch
@@ -1,7 +1,7 @@
1From 01195eb9f7d59139fb45df506ac6b3968c14a57f Mon Sep 17 00:00:00 2001 1From f99ef6c4407b56e8d15455fe27eb732ada87215b Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 13:55:12 +0800 3Date: Mon, 25 Feb 2019 13:55:12 +0800
4Subject: [PATCH 01/22] missing_type.h: add comparison_fn_t 4Subject: [PATCH 03/26] missing_type.h: add comparison_fn_t
5 5
6Make it work with musl where comparison_fn_t and is not provided. 6Make it work with musl where comparison_fn_t and is not provided.
7 7
@@ -21,12 +21,12 @@ Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
21 3 files changed, 6 insertions(+) 21 3 files changed, 6 insertions(+)
22 22
23diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h 23diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
24index f6233090a9..6c0456349d 100644 24index 1d17705c35..fc33b76ec1 100644
25--- a/src/basic/missing_type.h 25--- a/src/basic/missing_type.h
26+++ b/src/basic/missing_type.h 26+++ b/src/basic/missing_type.h
27@@ -10,3 +10,7 @@ 27@@ -10,3 +10,7 @@
28 #if !HAVE_CHAR16_T 28 #if !HAVE_CHAR16_T
29 #define char16_t uint16_t 29 # define char16_t uint16_t
30 #endif 30 #endif
31+ 31+
32+#ifndef __GLIBC__ 32+#ifndef __GLIBC__
@@ -45,10 +45,10 @@ index 9c818bd747..ef10c8be2c 100644
45 /* This is the same as glibc's internal __compar_d_fn_t type. glibc exports a public comparison_fn_t, for the 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 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 47diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
48index ae91534198..7f67eea38b 100644 48index 7dcc35d8d5..87b8d6aad6 100644
49--- a/src/libsystemd/sd-journal/catalog.c 49--- a/src/libsystemd/sd-journal/catalog.c
50+++ b/src/libsystemd/sd-journal/catalog.c 50+++ b/src/libsystemd/sd-journal/catalog.c
51@@ -28,6 +28,7 @@ 51@@ -29,6 +29,7 @@
52 #include "string-util.h" 52 #include "string-util.h"
53 #include "strv.h" 53 #include "strv.h"
54 #include "tmpfile-util.h" 54 #include "tmpfile-util.h"
diff --git a/meta/recipes-core/systemd/systemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch b/meta/recipes-core/systemd/systemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch
deleted file mode 100644
index 5595b5bc23..0000000000
--- a/meta/recipes-core/systemd/systemd/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/recipes-core/systemd/systemd/0002-add-fallback-parse_printf_format-implementation.patch b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
index 900a931632..47b8583e7a 100644
--- a/meta/recipes-core/systemd/systemd/0002-add-fallback-parse_printf_format-implementation.patch
+++ b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -1,7 +1,7 @@
1From 872b72739e62123867ce6c4f82aa37de24cc3f75 Mon Sep 17 00:00:00 2001 1From 34fe809cf686c1a81db5f3f027e33fece350ba0b Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Sat, 22 May 2021 20:26:24 +0200 3Date: Sat, 22 May 2021 20:26:24 +0200
4Subject: [PATCH 02/22] add fallback parse_printf_format implementation 4Subject: [PATCH 04/26] add fallback parse_printf_format implementation
5 5
6Upstream-Status: Inappropriate [musl specific] 6Upstream-Status: Inappropriate [musl specific]
7 7
@@ -22,22 +22,22 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
22 create mode 100644 src/basic/parse-printf-format.h 22 create mode 100644 src/basic/parse-printf-format.h
23 23
24diff --git a/meson.build b/meson.build 24diff --git a/meson.build b/meson.build
25index 7419e2b0b0..01fd3ffc19 100644 25index bffda86845..4146f4beef 100644
26--- a/meson.build 26--- a/meson.build
27+++ b/meson.build 27+++ b/meson.build
28@@ -725,6 +725,7 @@ endif 28@@ -770,6 +770,7 @@ foreach header : ['crypt.h',
29 foreach header : ['crypt.h', 29 'linux/ioprio.h',
30 'linux/memfd.h', 30 'linux/memfd.h',
31 'linux/vm_sockets.h', 31 'linux/time_types.h',
32+ 'printf.h', 32+ 'printf.h',
33 'sys/auxv.h', 33 'sys/auxv.h',
34 'sys/sdt.h',
34 'threads.h', 35 'threads.h',
35 'valgrind/memcheck.h',
36diff --git a/src/basic/meson.build b/src/basic/meson.build 36diff --git a/src/basic/meson.build b/src/basic/meson.build
37index d7450d8b44..c3e3daf4bd 100644 37index e02f787c75..9435df895d 100644
38--- a/src/basic/meson.build 38--- a/src/basic/meson.build
39+++ b/src/basic/meson.build 39+++ b/src/basic/meson.build
40@@ -183,6 +183,11 @@ endforeach 40@@ -188,6 +188,11 @@ endforeach
41 41
42 basic_sources += generated_gperf_headers 42 basic_sources += generated_gperf_headers
43 43
@@ -392,7 +392,7 @@ index 0000000000..47be7522d7
392+ 392+
393+#endif /* HAVE_PRINTF_H */ 393+#endif /* HAVE_PRINTF_H */
394diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h 394diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
395index 4e93ac90c9..f9deb6f662 100644 395index 0a2239d022..43a765dacd 100644
396--- a/src/basic/stdio-util.h 396--- a/src/basic/stdio-util.h
397+++ b/src/basic/stdio-util.h 397+++ b/src/basic/stdio-util.h
398@@ -1,12 +1,12 @@ 398@@ -1,12 +1,12 @@
@@ -408,9 +408,9 @@ index 4e93ac90c9..f9deb6f662 100644
408+#include "parse-printf-format.h" 408+#include "parse-printf-format.h"
409 409
410 _printf_(3, 4) 410 _printf_(3, 4)
411 static inline char *snprintf_ok(char *buf, size_t len, const char *format, ...) { 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 412diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
413index be23b2fe75..69a2eb6404 100644 413index 7d02b57d7b..75e8e08add 100644
414--- a/src/libsystemd/sd-journal/journal-send.c 414--- a/src/libsystemd/sd-journal/journal-send.c
415+++ b/src/libsystemd/sd-journal/journal-send.c 415+++ b/src/libsystemd/sd-journal/journal-send.c
416@@ -2,7 +2,6 @@ 416@@ -2,7 +2,6 @@
diff --git a/meta/recipes-core/systemd/systemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta/recipes-core/systemd/systemd/0005-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index 15877bea88..1b5e0d54c4 100644
--- a/meta/recipes-core/systemd/systemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ b/meta/recipes-core/systemd/systemd/0005-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -1,7 +1,7 @@
1From 5325ab5813617f35f03806ec420829dde7104387 Mon Sep 17 00:00:00 2001 1From d368a0317c747961f69a455a09a3de3fd13410a2 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 14:56:21 +0800 3Date: Mon, 25 Feb 2019 14:56:21 +0800
4Subject: [PATCH 04/22] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not 4Subject: [PATCH 05/26] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
5 defined 5 defined
6 6
7If the standard library doesn't provide brace 7If the standard library doesn't provide brace
@@ -64,11 +64,11 @@ index 802ca8c655..23818a67c6 100644
64 return -ENOENT; 64 return -ENOENT;
65 if (k == GLOB_NOSPACE) 65 if (k == GLOB_NOSPACE)
66diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c 66diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
67index 9b3e73cce0..3790ba3be5 100644 67index 49d71f15c7..0a49ebcc17 100644
68--- a/src/test/test-glob-util.c 68--- a/src/test/test-glob-util.c
69+++ b/src/test/test-glob-util.c 69+++ b/src/test/test-glob-util.c
70@@ -34,6 +34,12 @@ TEST(glob_first) { 70@@ -34,6 +34,12 @@ TEST(glob_first) {
71 assert_se(first == NULL); 71 ASSERT_NULL(first);
72 } 72 }
73 73
74+/* Don't fail if the standard library 74+/* Don't fail if the standard library
@@ -115,7 +115,7 @@ index 9b3e73cce0..3790ba3be5 100644
115 115
116 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); 116 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
117diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c 117diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
118index 230ec09b97..2cc5f391d7 100644 118index 86bf16356d..da552dbaab 100644
119--- a/src/tmpfiles/tmpfiles.c 119--- a/src/tmpfiles/tmpfiles.c
120+++ b/src/tmpfiles/tmpfiles.c 120+++ b/src/tmpfiles/tmpfiles.c
121@@ -73,6 +73,12 @@ 121@@ -73,6 +73,12 @@
@@ -131,7 +131,7 @@ index 230ec09b97..2cc5f391d7 100644
131 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates 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 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 133 * properly owned directories beneath /tmp, /var/tmp, /run, which are
134@@ -2434,7 +2440,9 @@ finish: 134@@ -2573,7 +2579,9 @@ finish:
135 135
136 static int glob_item(Context *c, Item *i, action_t action) { 136 static int glob_item(Context *c, Item *i, action_t action) {
137 _cleanup_globfree_ glob_t g = { 137 _cleanup_globfree_ glob_t g = {
@@ -139,9 +139,9 @@ index 230ec09b97..2cc5f391d7 100644
139 .gl_opendir = (void *(*)(const char *)) opendir_nomod, 139 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
140+#endif 140+#endif
141 }; 141 };
142 int r = 0, k; 142 int r;
143 143
144@@ -2461,7 +2469,9 @@ static int glob_item_recursively( 144@@ -2601,7 +2609,9 @@ static int glob_item_recursively(
145 fdaction_t action) { 145 fdaction_t action) {
146 146
147 _cleanup_globfree_ glob_t g = { 147 _cleanup_globfree_ glob_t g = {
@@ -149,7 +149,7 @@ index 230ec09b97..2cc5f391d7 100644
149 .gl_opendir = (void *(*)(const char *)) opendir_nomod, 149 .gl_opendir = (void *(*)(const char *)) opendir_nomod,
150+#endif 150+#endif
151 }; 151 };
152 int r = 0, k; 152 int r;
153 153
154-- 154--
1552.34.1 1552.34.1
diff --git a/meta/recipes-core/systemd/systemd/0005-add-missing-FTW_-macros-for-musl.patch b/meta/recipes-core/systemd/systemd/0006-add-missing-FTW_-macros-for-musl.patch
index a1dfca22cd..578411c4cf 100644
--- a/meta/recipes-core/systemd/systemd/0005-add-missing-FTW_-macros-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0006-add-missing-FTW_-macros-for-musl.patch
@@ -1,7 +1,7 @@
1From dad7f897c0de654fa5592fda3e90f874639849f9 Mon Sep 17 00:00:00 2001 1From 54b6e10aea2b0fb52782c3a71f06654a89b46bff Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:00:06 +0800 3Date: Mon, 25 Feb 2019 15:00:06 +0800
4Subject: [PATCH 05/22] add missing FTW_ macros for musl 4Subject: [PATCH 06/26] add missing FTW_ macros for musl
5 5
6This is to avoid build failures like below for musl. 6This is to avoid build failures like below for musl.
7 7
@@ -16,7 +16,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
16 2 files changed, 5 insertions(+) 16 2 files changed, 5 insertions(+)
17 17
18diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h 18diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
19index 6c0456349d..73a5b90e3c 100644 19index fc33b76ec1..34a36d83f0 100644
20--- a/src/basic/missing_type.h 20--- a/src/basic/missing_type.h
21+++ b/src/basic/missing_type.h 21+++ b/src/basic/missing_type.h
22@@ -14,3 +14,7 @@ 22@@ -14,3 +14,7 @@
diff --git a/meta/recipes-core/systemd/systemd/0006-Use-uintmax_t-for-handling-rlim_t.patch b/meta/recipes-core/systemd/systemd/0007-Use-uintmax_t-for-handling-rlim_t.patch
index 4be14b72ec..b4a570e1f5 100644
--- a/meta/recipes-core/systemd/systemd/0006-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/meta/recipes-core/systemd/systemd/0007-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,7 +1,7 @@
1From 96e975a2412a20e5f80bd3ab144057d275eb8597 Mon Sep 17 00:00:00 2001 1From 85d8c4c27e855d54c1740902a836c8f2aea9bebc Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:12:41 +0800 3Date: Mon, 25 Feb 2019 15:12:41 +0800
4Subject: [PATCH 06/22] Use uintmax_t for handling rlim_t 4Subject: [PATCH 07/26] Use uintmax_t for handling rlim_t
5 5
6PRIu{32,64} is not right format to represent rlim_t type 6PRIu{32,64} is not right format to represent rlim_t type
7therefore use %ju and typecast the rlim_t variables to 7therefore use %ju and typecast the rlim_t variables to
@@ -27,10 +27,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
27 3 files changed, 9 insertions(+), 15 deletions(-) 27 3 files changed, 9 insertions(+), 15 deletions(-)
28 28
29diff --git a/src/basic/format-util.h b/src/basic/format-util.h 29diff --git a/src/basic/format-util.h b/src/basic/format-util.h
30index 8719df3e29..9becc96066 100644 30index b528c005ca..41c4c095be 100644
31--- a/src/basic/format-util.h 31--- a/src/basic/format-util.h
32+++ b/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)); 33@@ -41,13 +41,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
34 # error Unknown timex member size 34 # error Unknown timex member size
35 #endif 35 #endif
36 36
@@ -46,10 +46,10 @@ index 8719df3e29..9becc96066 100644
46 #if SIZEOF_DEV_T == 8 46 #if SIZEOF_DEV_T == 8
47 # define DEV_FMT "%" PRIu64 47 # define DEV_FMT "%" PRIu64
48diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c 48diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
49index c1f0b2b974..61c5412582 100644 49index a9f7b87f28..059c67731d 100644
50--- a/src/basic/rlimit-util.c 50--- a/src/basic/rlimit-util.c
51+++ b/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) { 52@@ -47,7 +47,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
53 fixed.rlim_max == highest.rlim_max) 53 fixed.rlim_max == highest.rlim_max)
54 return 0; 54 return 0;
55 55
@@ -58,7 +58,7 @@ index c1f0b2b974..61c5412582 100644
58 58
59 return RET_NERRNO(setrlimit(resource, &fixed)); 59 return RET_NERRNO(setrlimit(resource, &fixed));
60 } 60 }
61@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { 61@@ -310,13 +310,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
62 if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) 62 if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
63 r = free_and_strdup(&s, "infinity"); 63 r = free_and_strdup(&s, "infinity");
64 else if (rl->rlim_cur >= RLIM_INFINITY) 64 else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -76,7 +76,7 @@ index c1f0b2b974..61c5412582 100644
76 if (r < 0) 76 if (r < 0)
77 return -ENOMEM; 77 return -ENOMEM;
78 78
79@@ -422,7 +422,7 @@ int rlimit_nofile_safe(void) { 79@@ -425,7 +425,7 @@ int rlimit_nofile_safe(void) {
80 rl.rlim_max = MIN(rl.rlim_max, (rlim_t) read_nr_open()); 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); 81 rl.rlim_cur = MIN((rlim_t) FD_SETSIZE, rl.rlim_max);
82 if (setrlimit(RLIMIT_NOFILE, &rl) < 0) 82 if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
@@ -86,10 +86,10 @@ index c1f0b2b974..61c5412582 100644
86 return 1; 86 return 1;
87 } 87 }
88diff --git a/src/core/execute.c b/src/core/execute.c 88diff --git a/src/core/execute.c b/src/core/execute.c
89index bd3da0c401..df1870fd2f 100644 89index 3d55b0b772..4824ff159e 100644
90--- a/src/core/execute.c 90--- a/src/core/execute.c
91+++ b/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) { 92@@ -1162,9 +1162,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
93 for (unsigned i = 0; i < RLIM_NLIMITS; i++) 93 for (unsigned i = 0; i < RLIM_NLIMITS; i++)
94 if (c->rlimit[i]) { 94 if (c->rlimit[i]) {
95 fprintf(f, "%sLimit%s: " RLIM_FMT "\n", 95 fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
diff --git a/meta/recipes-core/systemd/systemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta/recipes-core/systemd/systemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
deleted file mode 100644
index 8d6084239e..0000000000
--- a/meta/recipes-core/systemd/systemd/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/recipes-core/systemd/systemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta/recipes-core/systemd/systemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
index c1a8bb19fe..22e2ceadcc 100644
--- a/meta/recipes-core/systemd/systemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ b/meta/recipes-core/systemd/systemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -1,7 +1,7 @@
1From bab07e779ff23d5593bb118efaaa31b60a6dce87 Mon Sep 17 00:00:00 2001 1From f4cd939c7cc1ce0a59bab2693768f2c95d9ced00 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 27 May 2018 08:36:44 -0700 3Date: Sun, 27 May 2018 08:36:44 -0700
4Subject: [PATCH 08/22] Define glibc compatible basename() for non-glibc 4Subject: [PATCH 08/26] Define glibc compatible basename() for non-glibc
5 systems 5 systems
6 6
7Fixes builds with musl, even though systemd is adamant about 7Fixes builds with musl, even though systemd is adamant about
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 4 insertions(+) 15 1 file changed, 4 insertions(+)
16 16
17diff --git a/src/basic/string-util.h b/src/basic/string-util.h 17diff --git a/src/basic/string-util.h b/src/basic/string-util.h
18index b6d8be3083..0a29036c4c 100644 18index cc6aa183c0..0b035125cd 100644
19--- a/src/basic/string-util.h 19--- a/src/basic/string-util.h
20+++ b/src/basic/string-util.h 20+++ b/src/basic/string-util.h
21@@ -26,6 +26,10 @@ 21@@ -27,6 +27,10 @@
22 #define URI_UNRESERVED ALPHANUMERICAL "-._~" /* [RFC3986] */ 22 #define URI_UNRESERVED ALPHANUMERICAL "-._~" /* [RFC3986] */
23 #define URI_VALID URI_RESERVED URI_UNRESERVED /* [RFC3986] */ 23 #define URI_VALID URI_RESERVED URI_UNRESERVED /* [RFC3986] */
24 24
diff --git a/meta/recipes-core/systemd/systemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta/recipes-core/systemd/systemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index 3ff0177ae3..8e3eb15b54 100644
--- a/meta/recipes-core/systemd/systemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/meta/recipes-core/systemd/systemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -1,7 +1,7 @@
1From 25093c5017725b8577c444dfea0f42ad85b43522 Mon Sep 17 00:00:00 2001 1From 6959db351fdd551d46e22667deec6032552b2662 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 4 Jul 2018 15:00:44 +0800 3Date: Wed, 4 Jul 2018 15:00:44 +0800
4Subject: [PATCH 09/22] Do not disable buffering when writing to oom_score_adj 4Subject: [PATCH 09/26] Do not disable buffering when writing to oom_score_adj
5 5
6On musl, disabling buffering when writing to oom_score_adj will 6On musl, disabling buffering when writing to oom_score_adj will
7cause the following error. 7cause the following error.
@@ -24,10 +24,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
24 1 file changed, 1 insertion(+), 1 deletion(-) 24 1 file changed, 1 insertion(+), 1 deletion(-)
25 25
26diff --git a/src/basic/process-util.c b/src/basic/process-util.c 26diff --git a/src/basic/process-util.c b/src/basic/process-util.c
27index 201c5596ae..ea51595b6c 100644 27index 3253a9c3fb..772c4082a1 100644
28--- a/src/basic/process-util.c 28--- a/src/basic/process-util.c
29+++ b/src/basic/process-util.c 29+++ b/src/basic/process-util.c
30@@ -1716,7 +1716,7 @@ int set_oom_score_adjust(int value) { 30@@ -1848,7 +1848,7 @@ int set_oom_score_adjust(int value) {
31 xsprintf(t, "%i", value); 31 xsprintf(t, "%i", value);
32 32
33 return write_string_file("/proc/self/oom_score_adj", t, 33 return write_string_file("/proc/self/oom_score_adj", t,
diff --git a/meta/recipes-core/systemd/systemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta/recipes-core/systemd/systemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index cf59ac7d06..0dfb77890e 100644
--- a/meta/recipes-core/systemd/systemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/meta/recipes-core/systemd/systemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -1,7 +1,7 @@
1From 2adbe9773cd65c48eec9df96868d4a738927c8d9 Mon Sep 17 00:00:00 2001 1From b7f6c245b4ae72999f23eecc2bbb6d6fb8db667c Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 10 Jul 2018 15:40:17 +0800 3Date: Tue, 10 Jul 2018 15:40:17 +0800
4Subject: [PATCH 10/22] distinguish XSI-compliant strerror_r from GNU-specifi 4Subject: [PATCH 10/26] distinguish XSI-compliant strerror_r from GNU-specifi
5 strerror_r 5 strerror_r
6 6
7XSI-compliant strerror_r and GNU-specifi strerror_r are different. 7XSI-compliant strerror_r and GNU-specifi strerror_r are different.
@@ -24,10 +24,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
24 2 files changed, 15 insertions(+), 1 deletion(-) 24 2 files changed, 15 insertions(+), 1 deletion(-)
25 25
26diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c 26diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
27index 77b2e1a0fd..fdba0e0142 100644 27index 58c24d25c0..69a0d09d42 100644
28--- a/src/libsystemd/sd-bus/bus-error.c 28--- a/src/libsystemd/sd-bus/bus-error.c
29+++ b/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) { 30@@ -405,7 +405,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
31 return; 31 return;
32 32
33 errno = 0; 33 errno = 0;
@@ -40,7 +40,7 @@ index 77b2e1a0fd..fdba0e0142 100644
40 if (errno == ERANGE || strlen(x) >= k - 1) { 40 if (errno == ERANGE || strlen(x) >= k - 1) {
41 free(m); 41 free(m);
42 k *= 2; 42 k *= 2;
43@@ -593,8 +598,12 @@ const char* _bus_error_message(const sd_bus_error *e, int error, char buf[static 43@@ -590,8 +595,12 @@ const char* _bus_error_message(const sd_bus_error *e, int error, char buf[static
44 44
45 if (e && e->message) 45 if (e && e->message)
46 return e->message; 46 return e->message;
@@ -55,7 +55,7 @@ index 77b2e1a0fd..fdba0e0142 100644
55 55
56 static bool map_ok(const sd_bus_error_map *map) { 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 57diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
58index 69a2eb6404..1561859650 100644 58index 75e8e08add..41e5c7c2b8 100644
59--- a/src/libsystemd/sd-journal/journal-send.c 59--- a/src/libsystemd/sd-journal/journal-send.c
60+++ b/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 61@@ -361,7 +361,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
diff --git a/meta/recipes-core/systemd/systemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta/recipes-core/systemd/systemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
index e481b2e2e4..16d741cf87 100644
--- a/meta/recipes-core/systemd/systemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ b/meta/recipes-core/systemd/systemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -1,7 +1,7 @@
1From 49c446cfb78cf74a909bed8c3798b77a5469866a Mon Sep 17 00:00:00 2001 1From 43b0269e850a2fbcb6ca615258aa8f8a9b4f6a9d Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 15:44:54 +0800 3Date: Mon, 25 Feb 2019 15:44:54 +0800
4Subject: [PATCH 11/22] avoid redefinition of prctl_mm_map structure 4Subject: [PATCH 11/26] avoid redefinition of prctl_mm_map structure
5 5
6Fix the following compile failure: 6Fix the following compile failure:
7error: redefinition of 'struct prctl_mm_map' 7error: redefinition of 'struct prctl_mm_map'
@@ -14,7 +14,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
14 1 file changed, 2 insertions(+) 14 1 file changed, 2 insertions(+)
15 15
16diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h 16diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
17index 7d9e395c92..88c2d7dfac 100644 17index 2c9f9f6c50..65a984b564 100644
18--- a/src/basic/missing_prctl.h 18--- a/src/basic/missing_prctl.h
19+++ b/src/basic/missing_prctl.h 19+++ b/src/basic/missing_prctl.h
20@@ -1,7 +1,9 @@ 20@@ -1,7 +1,9 @@
@@ -25,8 +25,8 @@ index 7d9e395c92..88c2d7dfac 100644
25 #include <linux/prctl.h> 25 #include <linux/prctl.h>
26+#endif 26+#endif
27 27
28 /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */ 28 #include "macro.h"
29 #ifndef PR_CAP_AMBIENT 29
30-- 30--
312.34.1 312.34.1
32 32
diff --git a/meta/recipes-core/systemd/systemd/0012-do-not-disable-buffer-in-writing-files.patch b/meta/recipes-core/systemd/systemd/0012-do-not-disable-buffer-in-writing-files.patch
index 66be79077e..0bbc6bbac7 100644
--- a/meta/recipes-core/systemd/systemd/0012-do-not-disable-buffer-in-writing-files.patch
+++ b/meta/recipes-core/systemd/systemd/0012-do-not-disable-buffer-in-writing-files.patch
@@ -1,7 +1,7 @@
1From e4885a8e60f883d9217e26e1db3754c2906aca31 Mon Sep 17 00:00:00 2001 1From eaf26fdad00448b8cd336eb5db51e0baa8d8e588 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Fri, 1 Mar 2019 15:22:15 +0800 3Date: Mon, 16 Dec 2024 14:37:25 +0800
4Subject: [PATCH 12/22] do not disable buffer in writing files 4Subject: [PATCH 12/26] do not disable buffer in writing files
5 5
6Do not disable buffer in writing files, otherwise we get 6Do not disable buffer in writing files, otherwise we get
7failure at boot for musl like below. 7failure at boot for musl like below.
@@ -22,80 +22,43 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
22Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 22Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
23[rebased for systemd 255.1] 23[rebased for systemd 255.1]
24--- 24---
25 src/basic/cgroup-util.c | 12 ++++++------ 25 src/basic/cgroup-util.c | 4 ++--
26 src/basic/namespace-util.c | 4 ++-- 26 src/basic/namespace-util.c | 4 ++--
27 src/basic/procfs-util.c | 4 ++-- 27 src/basic/procfs-util.c | 4 ++--
28 src/basic/sysctl-util.c | 2 +- 28 src/basic/sysctl-util.c | 2 +-
29 src/binfmt/binfmt.c | 6 +++--- 29 src/binfmt/binfmt.c | 6 +++---
30 src/core/cgroup.c | 2 +- 30 src/core/cgroup.c | 2 +-
31 src/core/ipe-setup.c | 2 +-
31 src/core/main.c | 2 +- 32 src/core/main.c | 2 +-
32 src/core/smack-setup.c | 8 ++++---- 33 src/core/smack-setup.c | 6 +++---
33 src/home/homework.c | 2 +- 34 src/home/homework.c | 2 +-
34 src/libsystemd/sd-device/sd-device.c | 2 +- 35 src/libsystemd/sd-device/sd-device.c | 2 +-
35 src/nspawn/nspawn-cgroup.c | 2 +- 36 src/nspawn/nspawn-cgroup.c | 2 +-
36 src/nspawn/nspawn.c | 6 +++--- 37 src/nspawn/nspawn.c | 6 +++---
37 src/shared/binfmt-util.c | 2 +- 38 src/shared/binfmt-util.c | 2 +-
38 src/shared/cgroup-setup.c | 4 ++-- 39 src/shared/cgroup-setup.c | 12 ++++++------
39 src/shared/coredump-util.c | 4 ++-- 40 src/shared/coredump-util.c | 2 +-
40 src/shared/hibernate-util.c | 4 ++-- 41 src/shared/hibernate-util.c | 4 ++--
41 src/shared/smack-util.c | 2 +- 42 src/shared/smack-util.c | 2 +-
42 src/shared/watchdog.c | 2 +- 43 src/sleep/sleep.c | 2 +-
43 src/sleep/sleep.c | 4 ++--
44 src/storagetm/storagetm.c | 24 ++++++++++++------------ 44 src/storagetm/storagetm.c | 24 ++++++++++++------------
45 src/udev/udev-rules.c | 1 -
46 src/vconsole/vconsole-setup.c | 2 +- 45 src/vconsole/vconsole-setup.c | 2 +-
47 22 files changed, 50 insertions(+), 51 deletions(-) 46 21 files changed, 47 insertions(+), 47 deletions(-)
48 47
49diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c 48diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
50index d2be79622f..e65fecb68d 100644 49index 309dccb45a..7aec5072a0 100644
51--- a/src/basic/cgroup-util.c 50--- a/src/basic/cgroup-util.c
52+++ b/src/basic/cgroup-util.c 51+++ b/src/basic/cgroup-util.c
53@@ -417,7 +417,7 @@ int cg_kill_kernel_sigkill(const char *path) { 52@@ -495,7 +495,7 @@ int cg_kill_kernel_sigkill(const char *path) {
54 if (r < 0) 53 if (r < 0)
55 return r; 54 return r;
56 55
57- r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER); 56- r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
58+ r = write_string_file(killfile, "1", 0); 57+ r = write_string_file(killfile, "1", 0);
59 if (r < 0) 58 if (r < 0)
60 return r; 59 return log_debug_errno(r, "Failed to write to cgroup.kill for cgroup '%s': %m", path);
61
62@@ -843,7 +843,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
63
64 sc = strstrip(contents);
65 if (isempty(sc)) {
66- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
67+ r = write_string_file(fs, agent, 0);
68 if (r < 0)
69 return r;
70 } else if (!path_equal(sc, agent))
71@@ -861,7 +861,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
72 60
73 sc = strstrip(contents); 61@@ -1721,7 +1721,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
74 if (streq(sc, "0")) {
75- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
76+ r = write_string_file(fs, "1", 0);
77 if (r < 0)
78 return r;
79
80@@ -888,7 +888,7 @@ int cg_uninstall_release_agent(const char *controller) {
81 if (r < 0)
82 return r;
83
84- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
85+ r = write_string_file(fs, "0", 0);
86 if (r < 0)
87 return r;
88
89@@ -898,7 +898,7 @@ int cg_uninstall_release_agent(const char *controller) {
90 if (r < 0)
91 return r;
92
93- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
94+ r = write_string_file(fs, "", 0);
95 if (r < 0)
96 return r;
97
98@@ -1814,7 +1814,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
99 if (r < 0) 62 if (r < 0)
100 return r; 63 return r;
101 64
@@ -105,29 +68,29 @@ index d2be79622f..e65fecb68d 100644
105 68
106 int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) { 69 int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
107diff --git a/src/basic/namespace-util.c b/src/basic/namespace-util.c 70diff --git a/src/basic/namespace-util.c b/src/basic/namespace-util.c
108index 2101f617ad..63817bae17 100644 71index 332e8cdfd5..804498127d 100644
109--- a/src/basic/namespace-util.c 72--- a/src/basic/namespace-util.c
110+++ b/src/basic/namespace-util.c 73+++ b/src/basic/namespace-util.c
111@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) { 74@@ -359,12 +359,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) {
112 freeze(); 75 freeze();
113 76
114 xsprintf(path, "/proc/" PID_FMT "/uid_map", pid); 77 xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
115- r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER); 78- r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
116+ r = write_string_file(path, uid_map, 0); 79+ r = write_string_file(path, uid_map, 0);
117 if (r < 0) 80 if (r < 0)
118 return log_error_errno(r, "Failed to write UID map: %m"); 81 return log_debug_errno(r, "Failed to write UID map: %m");
119 82
120 xsprintf(path, "/proc/" PID_FMT "/gid_map", pid); 83 xsprintf(path, "/proc/" PID_FMT "/gid_map", pid);
121- r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER); 84- r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
122+ r = write_string_file(path, gid_map, 0); 85+ r = write_string_file(path, gid_map, 0);
123 if (r < 0) 86 if (r < 0)
124 return log_error_errno(r, "Failed to write GID map: %m"); 87 return log_debug_errno(r, "Failed to write GID map: %m");
125 88
126diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c 89diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
127index 6cb0ddf575..247cf9e1d1 100644 90index d7cfcd9105..58fb5918a3 100644
128--- a/src/basic/procfs-util.c 91--- a/src/basic/procfs-util.c
129+++ b/src/basic/procfs-util.c 92+++ b/src/basic/procfs-util.c
130@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limit) { 93@@ -63,13 +63,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
131 * decrease it, as threads-max is the much more relevant sysctl. */ 94 * decrease it, as threads-max is the much more relevant sysctl. */
132 if (limit > pid_max-1) { 95 if (limit > pid_max-1) {
133 sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */ 96 sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
@@ -144,15 +107,15 @@ index 6cb0ddf575..247cf9e1d1 100644
144 uint64_t threads_max; 107 uint64_t threads_max;
145 108
146diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c 109diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
147index b66a6622ae..8d1c93008a 100644 110index 2feb4917d7..4c74620a00 100644
148--- a/src/basic/sysctl-util.c 111--- a/src/basic/sysctl-util.c
149+++ b/src/basic/sysctl-util.c 112+++ b/src/basic/sysctl-util.c
150@@ -58,7 +58,7 @@ int sysctl_write(const char *property, const char *value) { 113@@ -97,7 +97,7 @@ int sysctl_write_full(const char *property, const char *value, Hashmap **shadow)
151 114 if (r < 0)
152 log_debug("Setting '%s' to '%s'", p, value); 115 return r;
153 116
154- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL); 117- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
155+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL); 118+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0 | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
156 } 119 }
157 120
158 int sysctl_writef(const char *property, const char *format, ...) { 121 int sysctl_writef(const char *property, const char *format, ...) {
@@ -188,23 +151,36 @@ index d21f3f79ff..258607cc7e 100644
188 log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m"); 151 log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
189 else 152 else
190diff --git a/src/core/cgroup.c b/src/core/cgroup.c 153diff --git a/src/core/cgroup.c b/src/core/cgroup.c
191index 61ac4df1a6..ea18970196 100644 154index 6933aae54d..ab6fccc0e4 100644
192--- a/src/core/cgroup.c 155--- a/src/core/cgroup.c
193+++ b/src/core/cgroup.c 156+++ b/src/core/cgroup.c
194@@ -4578,7 +4578,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) { 157@@ -5175,7 +5175,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) {
195 u->freezer_state = FREEZER_THAWING; 158 if (r < 0)
196 } 159 return r;
197 160
198- r = write_string_file(path, one_zero(action == FREEZER_FREEZE), WRITE_STRING_FILE_DISABLE_BUFFER); 161- r = write_string_file(path, one_zero(objective == FREEZER_FROZEN), WRITE_STRING_FILE_DISABLE_BUFFER);
199+ r = write_string_file(path, one_zero(action == FREEZER_FREEZE), 0); 162+ r = write_string_file(path, one_zero(objective == FREEZER_FROZEN), 0);
200 if (r < 0) 163 if (r < 0)
201 return r; 164 return r;
202 165
166diff --git a/src/core/ipe-setup.c b/src/core/ipe-setup.c
167index 4648d43829..80d03d87d4 100644
168--- a/src/core/ipe-setup.c
169+++ b/src/core/ipe-setup.c
170@@ -94,7 +94,7 @@ int ipe_setup(void) {
171 if (!activate_path)
172 return log_oom();
173
174- r = write_string_file(activate_path, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
175+ r = write_string_file(activate_path, "1", 0);
176 if (r == -ESTALE) {
177 log_debug_errno(r,
178 "IPE policy %s is already loaded with a version that is equal or higher, skipping.",
203diff --git a/src/core/main.c b/src/core/main.c 179diff --git a/src/core/main.c b/src/core/main.c
204index 3f71cc0947..0e5aec3e9e 100644 180index 172742c769..e68ce2a6d8 100644
205--- a/src/core/main.c 181--- a/src/core/main.c
206+++ b/src/core/main.c 182+++ b/src/core/main.c
207@@ -1678,7 +1678,7 @@ static void initialize_core_pattern(bool skip_setup) { 183@@ -1826,7 +1826,7 @@ static void initialize_core_pattern(bool skip_setup) {
208 if (getpid_cached() != 1) 184 if (getpid_cached() != 1)
209 return; 185 return;
210 186
@@ -214,7 +190,7 @@ index 3f71cc0947..0e5aec3e9e 100644
214 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", 190 log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
215 arg_early_core_pattern); 191 arg_early_core_pattern);
216diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c 192diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
217index 7ea902b6f9..1aef2988d0 100644 193index 7ea902b6f9..ee4cd56023 100644
218--- a/src/core/smack-setup.c 194--- a/src/core/smack-setup.c
219+++ b/src/core/smack-setup.c 195+++ b/src/core/smack-setup.c
220@@ -321,17 +321,17 @@ int mac_smack_setup(bool *loaded_policy) { 196@@ -321,17 +321,17 @@ int mac_smack_setup(bool *loaded_policy) {
@@ -230,8 +206,7 @@ index 7ea902b6f9..1aef2988d0 100644
230 if (r < 0) 206 if (r < 0)
231 log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m"); 207 log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
232 r = write_string_file("/sys/fs/smackfs/netlabel", 208 r = write_string_file("/sys/fs/smackfs/netlabel",
233- "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER); 209 "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
234+ "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
235 if (r < 0) 210 if (r < 0)
236 log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m"); 211 log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
237- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER); 212- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
@@ -240,23 +215,23 @@ index 7ea902b6f9..1aef2988d0 100644
240 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m"); 215 log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
241 #endif 216 #endif
242diff --git a/src/home/homework.c b/src/home/homework.c 217diff --git a/src/home/homework.c b/src/home/homework.c
243index 066483e342..5f92dd7064 100644 218index 00e74894b3..7457113efe 100644
244--- a/src/home/homework.c 219--- a/src/home/homework.c
245+++ b/src/home/homework.c 220+++ b/src/home/homework.c
246@@ -278,7 +278,7 @@ static void drop_caches_now(void) { 221@@ -304,7 +304,7 @@ static void drop_caches_now(void) {
247 * for details. We write "2" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but 222 * for details. We write "3" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but
248 * not more. */ 223 * not more. */
249 224
250- r = write_string_file("/proc/sys/vm/drop_caches", "2\n", WRITE_STRING_FILE_DISABLE_BUFFER); 225- r = write_string_file("/proc/sys/vm/drop_caches", "3\n", WRITE_STRING_FILE_DISABLE_BUFFER);
251+ r = write_string_file("/proc/sys/vm/drop_caches", "2\n", 0); 226+ r = write_string_file("/proc/sys/vm/drop_caches", "3\n", 0);
252 if (r < 0) 227 if (r < 0)
253 log_warning_errno(r, "Failed to drop caches, ignoring: %m"); 228 log_warning_errno(r, "Failed to drop caches, ignoring: %m");
254 else 229 else
255diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c 230diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
256index 2fbc619a34..09d9591e37 100644 231index 01fa90b1ff..83ab655bf4 100644
257--- a/src/libsystemd/sd-device/sd-device.c 232--- a/src/libsystemd/sd-device/sd-device.c
258+++ b/src/libsystemd/sd-device/sd-device.c 233+++ b/src/libsystemd/sd-device/sd-device.c
259@@ -2516,7 +2516,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, 234@@ -2564,7 +2564,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
260 if (!value) 235 if (!value)
261 return -ENOMEM; 236 return -ENOMEM;
262 237
@@ -266,23 +241,23 @@ index 2fbc619a34..09d9591e37 100644
266 /* On failure, clear cache entry, as we do not know how it fails. */ 241 /* On failure, clear cache entry, as we do not know how it fails. */
267 device_remove_cached_sysattr_value(device, sysattr); 242 device_remove_cached_sysattr_value(device, sysattr);
268diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c 243diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
269index a5002437c6..b12e6cd9c9 100644 244index 4f28b4a225..c899c218b2 100644
270--- a/src/nspawn/nspawn-cgroup.c 245--- a/src/nspawn/nspawn-cgroup.c
271+++ b/src/nspawn/nspawn-cgroup.c 246+++ b/src/nspawn/nspawn-cgroup.c
272@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { 247@@ -93,7 +93,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
273 fn = strjoina(tree, cgroup, "/cgroup.procs"); 248 fn = strjoina(tree, cgroup, "/cgroup.procs");
274 249
275 sprintf(pid_string, PID_FMT, pid); 250 sprintf(pid_string, PID_FMT, pid);
276- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755); 251- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
277+ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755); 252+ r = write_string_file(fn, pid_string, 0|WRITE_STRING_FILE_MKDIR_0755);
278 if (r < 0) { 253 if (r < 0) {
279 log_error_errno(r, "Failed to move process: %m"); 254 log_error_errno(r, "Failed to move process: %m");
280 goto finish; 255 goto finish;
281diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c 256diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
282index 6ab604d3dc..bbec6b686c 100644 257index 500725d35f..745b6815db 100644
283--- a/src/nspawn/nspawn.c 258--- a/src/nspawn/nspawn.c
284+++ b/src/nspawn/nspawn.c 259+++ b/src/nspawn/nspawn.c
285@@ -2688,7 +2688,7 @@ static int reset_audit_loginuid(void) { 260@@ -2857,7 +2857,7 @@ static int reset_audit_loginuid(void) {
286 if (streq(p, "4294967295")) 261 if (streq(p, "4294967295"))
287 return 0; 262 return 0;
288 263
@@ -291,7 +266,7 @@ index 6ab604d3dc..bbec6b686c 100644
291 if (r < 0) { 266 if (r < 0) {
292 log_error_errno(r, 267 log_error_errno(r,
293 "Failed to reset audit login UID. This probably means that your kernel is too\n" 268 "Failed to reset audit login UID. This probably means that your kernel is too\n"
294@@ -4141,7 +4141,7 @@ static int setup_uid_map( 269@@ -4588,7 +4588,7 @@ static int setup_uid_map(
295 return log_oom(); 270 return log_oom();
296 271
297 xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid); 272 xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
@@ -300,7 +275,7 @@ index 6ab604d3dc..bbec6b686c 100644
300 if (r < 0) 275 if (r < 0)
301 return log_error_errno(r, "Failed to write UID map: %m"); 276 return log_error_errno(r, "Failed to write UID map: %m");
302 277
303@@ -4151,7 +4151,7 @@ static int setup_uid_map( 278@@ -4598,7 +4598,7 @@ static int setup_uid_map(
304 return log_oom(); 279 return log_oom();
305 280
306 xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid); 281 xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
@@ -323,10 +298,10 @@ index a26175474b..1413a9c72c 100644
323 return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m"); 298 return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
324 299
325diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c 300diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
326index 934a16eaf3..c921ced861 100644 301index 49d40f60d8..0f4aa8512a 100644
327--- a/src/shared/cgroup-setup.c 302--- a/src/shared/cgroup-setup.c
328+++ b/src/shared/cgroup-setup.c 303+++ b/src/shared/cgroup-setup.c
329@@ -351,7 +351,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { 304@@ -369,7 +369,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
330 305
331 xsprintf(c, PID_FMT "\n", pid); 306 xsprintf(c, PID_FMT "\n", pid);
332 307
@@ -335,29 +310,56 @@ index 934a16eaf3..c921ced861 100644
335 if (r == -EOPNOTSUPP && cg_is_threaded(path) > 0) 310 if (r == -EOPNOTSUPP && cg_is_threaded(path) > 0)
336 /* When the threaded mode is used, we cannot read/write the file. Let's return recognizable error. */ 311 /* When the threaded mode is used, we cannot read/write the file. Let's return recognizable error. */
337 return -EUCLEAN; 312 return -EUCLEAN;
338@@ -966,7 +966,7 @@ int cg_enable_everywhere( 313@@ -399,7 +399,7 @@ int cg_fd_attach(int fd, pid_t pid) {
339 return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p); 314
340 } 315 xsprintf(c, PID_FMT "\n", pid);
341
342- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
343+ r = write_string_stream(f, s, 0);
344 if (r < 0) {
345 log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
346 FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
347diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c
348index 805503f366..01a7ccb291 100644
349--- a/src/shared/coredump-util.c
350+++ b/src/shared/coredump-util.c
351@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value) {
352 xsprintf(t, "0x%"PRIx64, value);
353 316
354 return write_string_file("/proc/self/coredump_filter", t, 317- return write_string_file_at(fd, "cgroup.procs", c, WRITE_STRING_FILE_DISABLE_BUFFER);
355- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER); 318+ return write_string_file_at(fd, "cgroup.procs", c, 0);
356+ 0);
357 } 319 }
358 320
359 /* Turn off core dumps but only if we're running outside of a container. */ 321 int cg_attach_fallback(const char *controller, const char *path, pid_t pid) {
360@@ -173,7 +173,7 @@ void disable_coredumps(void) { 322@@ -1049,7 +1049,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
323
324 sc = strstrip(contents);
325 if (isempty(sc)) {
326- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
327+ r = write_string_file(fs, agent, 0);
328 if (r < 0)
329 return r;
330 } else if (!path_equal(sc, agent))
331@@ -1067,7 +1067,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
332
333 sc = strstrip(contents);
334 if (streq(sc, "0")) {
335- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
336+ r = write_string_file(fs, "1", 0);
337 if (r < 0)
338 return r;
339
340@@ -1094,7 +1094,7 @@ int cg_uninstall_release_agent(const char *controller) {
341 if (r < 0)
342 return r;
343
344- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
345+ r = write_string_file(fs, "0", 0);
346 if (r < 0)
347 return r;
348
349@@ -1104,7 +1104,7 @@ int cg_uninstall_release_agent(const char *controller) {
350 if (r < 0)
351 return r;
352
353- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
354+ r = write_string_file(fs, "", 0);
355 if (r < 0)
356 return r;
357
358diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c
359index 805503f366..3234a1d76e 100644
360--- a/src/shared/coredump-util.c
361+++ b/src/shared/coredump-util.c
362@@ -180,7 +180,7 @@ void disable_coredumps(void) {
361 if (detect_container() > 0) 363 if (detect_container() > 0)
362 return; 364 return;
363 365
@@ -367,10 +369,10 @@ index 805503f366..01a7ccb291 100644
367 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m"); 369 log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
368 } 370 }
369diff --git a/src/shared/hibernate-util.c b/src/shared/hibernate-util.c 371diff --git a/src/shared/hibernate-util.c b/src/shared/hibernate-util.c
370index 3eb13d48f6..d09b901be1 100644 372index 1213fdc2c7..4c26e6a4ee 100644
371--- a/src/shared/hibernate-util.c 373--- a/src/shared/hibernate-util.c
372+++ b/src/shared/hibernate-util.c 374+++ b/src/shared/hibernate-util.c
373@@ -481,7 +481,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) { 375@@ -498,7 +498,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
374 376
375 /* We write the offset first since it's safer. Note that this file is only available in 4.17+, so 377 /* We write the offset first since it's safer. Note that this file is only available in 4.17+, so
376 * fail gracefully if it doesn't exist and we're only overwriting it with 0. */ 378 * fail gracefully if it doesn't exist and we're only overwriting it with 0. */
@@ -379,7 +381,7 @@ index 3eb13d48f6..d09b901be1 100644
379 if (r == -ENOENT) { 381 if (r == -ENOENT) {
380 if (offset != 0) 382 if (offset != 0)
381 return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), 383 return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
382@@ -497,7 +497,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) { 384@@ -514,7 +514,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
383 log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.", 385 log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.",
384 offset_str, device); 386 offset_str, device);
385 387
@@ -389,7 +391,7 @@ index 3eb13d48f6..d09b901be1 100644
389 return log_error_errno(r, 391 return log_error_errno(r,
390 "Failed to write device '%s' (%s) to /sys/power/resume: %m", 392 "Failed to write device '%s' (%s) to /sys/power/resume: %m",
391diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c 393diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c
392index 1f88e724d0..feb18b320a 100644 394index d0a79b2635..0c82d9943a 100644
393--- a/src/shared/smack-util.c 395--- a/src/shared/smack-util.c
394+++ b/src/shared/smack-util.c 396+++ b/src/shared/smack-util.c
395@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) { 397@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
@@ -401,46 +403,24 @@ index 1f88e724d0..feb18b320a 100644
401 if (r < 0) 403 if (r < 0)
402 return r; 404 return r;
403 405
404diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c
405index 4c1a968718..6faf6806a5 100644
406--- a/src/shared/watchdog.c
407+++ b/src/shared/watchdog.c
408@@ -93,7 +93,7 @@ static int set_pretimeout_governor(const char *governor) {
409
410 r = write_string_file(sys_fn,
411 governor,
412- WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
413+ WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
414 if (r < 0)
415 return log_error_errno(r, "Failed to set pretimeout_governor to '%s': %m", governor);
416
417diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c 406diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
418index 21af3e9e52..6d4b84b5d5 100644 407index 181bb4ccef..2dbb3f4bc6 100644
419--- a/src/sleep/sleep.c 408--- a/src/sleep/sleep.c
420+++ b/src/sleep/sleep.c 409+++ b/src/sleep/sleep.c
421@@ -137,7 +137,7 @@ static int write_state(int fd, char * const *states) { 410@@ -158,7 +158,7 @@ static int write_mode(const char *path, char * const *modes) {
422 if (k < 0) 411 assert(path);
423 return RET_GATHER(r, k);
424
425- k = write_string_stream(f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
426+ k = write_string_stream(f, *state, 0);
427 if (k >= 0) {
428 log_debug("Using sleep state '%s'.", *state);
429 return 0;
430@@ -155,7 +155,7 @@ static int write_mode(char * const *modes) {
431 STRV_FOREACH(mode, modes) {
432 int k;
433 412
434- k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER); 413 STRV_FOREACH(mode, modes) {
435+ k = write_string_file("/sys/power/disk", *mode, 0); 414- r = write_string_file(path, *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
436 if (k >= 0) { 415+ r = write_string_file(path, *mode, 0);
437 log_debug("Using sleep disk mode '%s'.", *mode); 416 if (r >= 0) {
417 log_debug("Using sleep mode '%s' for %s.", *mode, path);
438 return 0; 418 return 0;
439diff --git a/src/storagetm/storagetm.c b/src/storagetm/storagetm.c 419diff --git a/src/storagetm/storagetm.c b/src/storagetm/storagetm.c
440index ae63baaf79..82eeca479a 100644 420index ca8e886d37..5c27c54f09 100644
441--- a/src/storagetm/storagetm.c 421--- a/src/storagetm/storagetm.c
442+++ b/src/storagetm/storagetm.c 422+++ b/src/storagetm/storagetm.c
443@@ -186,7 +186,7 @@ static int nvme_subsystem_unlink(NvmeSubsystem *s) { 423@@ -197,7 +197,7 @@ static int nvme_subsystem_unlink(NvmeSubsystem *s) {
444 if (!enable_fn) 424 if (!enable_fn)
445 return log_oom(); 425 return log_oom();
446 426
@@ -449,7 +429,7 @@ index ae63baaf79..82eeca479a 100644
449 if (r < 0) 429 if (r < 0)
450 log_warning_errno(r, "Failed to disable namespace '%s' of NVME subsystem '%s', ignoring: %m", e->d_name, s->name); 430 log_warning_errno(r, "Failed to disable namespace '%s' of NVME subsystem '%s', ignoring: %m", e->d_name, s->name);
451 431
452@@ -254,7 +254,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) { 432@@ -265,7 +265,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
453 _cleanup_free_ char *truncated = strndup(w, 40); /* kernel refuses more than 40 chars (as per nvme spec) */ 433 _cleanup_free_ char *truncated = strndup(w, 40); /* kernel refuses more than 40 chars (as per nvme spec) */
454 434
455 /* The default string stored in 'attr_model' is "Linux" btw. */ 435 /* The default string stored in 'attr_model' is "Linux" btw. */
@@ -458,7 +438,7 @@ index ae63baaf79..82eeca479a 100644
458 if (r < 0) 438 if (r < 0)
459 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", w); 439 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", w);
460 } 440 }
461@@ -268,7 +268,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) { 441@@ -279,7 +279,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
462 return log_oom(); 442 return log_oom();
463 443
464 /* The default string stored in 'attr_firmware' is `uname -r` btw, but truncated to 8 chars. */ 444 /* The default string stored in 'attr_firmware' is `uname -r` btw, but truncated to 8 chars. */
@@ -467,7 +447,7 @@ index ae63baaf79..82eeca479a 100644
467 if (r < 0) 447 if (r < 0)
468 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", truncated); 448 log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", truncated);
469 } 449 }
470@@ -295,7 +295,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) { 450@@ -306,7 +306,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
471 if (!truncated) 451 if (!truncated)
472 return log_oom(); 452 return log_oom();
473 453
@@ -476,7 +456,7 @@ index ae63baaf79..82eeca479a 100644
476 if (r < 0) 456 if (r < 0)
477 log_warning_errno(r, "Failed to set serial of subsystem to '%s', ignoring: %m", truncated); 457 log_warning_errno(r, "Failed to set serial of subsystem to '%s', ignoring: %m", truncated);
478 } 458 }
479@@ -345,7 +345,7 @@ static int nvme_namespace_write_metadata(int namespace_fd, sd_device *device, co 459@@ -356,7 +356,7 @@ static int nvme_namespace_write_metadata(int namespace_fd, sd_device *device, co
480 id = id128_digest(j, l); 460 id = id128_digest(j, l);
481 } 461 }
482 462
@@ -485,7 +465,7 @@ index ae63baaf79..82eeca479a 100644
485 if (r < 0) 465 if (r < 0)
486 log_warning_errno(r, "Failed to set uuid of namespace to '%s', ignoring: %m", SD_ID128_TO_UUID_STRING(id)); 466 log_warning_errno(r, "Failed to set uuid of namespace to '%s', ignoring: %m", SD_ID128_TO_UUID_STRING(id));
487 467
488@@ -408,7 +408,7 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi 468@@ -419,7 +419,7 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi
489 if (subsystem_fd < 0) 469 if (subsystem_fd < 0)
490 return log_error_errno(subsystem_fd, "Failed to create NVME subsystem '%s': %m", j); 470 return log_error_errno(subsystem_fd, "Failed to create NVME subsystem '%s': %m", j);
491 471
@@ -494,7 +474,7 @@ index ae63baaf79..82eeca479a 100644
494 if (r < 0) 474 if (r < 0)
495 return log_error_errno(r, "Failed to set 'attr_allow_any_host' flag: %m"); 475 return log_error_errno(r, "Failed to set 'attr_allow_any_host' flag: %m");
496 476
497@@ -423,11 +423,11 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi 477@@ -434,11 +434,11 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi
498 478
499 /* We use /proc/$PID/fd/$FD rather than /proc/self/fd/$FD, because this string is visible to others 479 /* We use /proc/$PID/fd/$FD rather than /proc/self/fd/$FD, because this string is visible to others
500 * via configfs, and by including the PID it's clear to who the stuff belongs. */ 480 * via configfs, and by including the PID it's clear to who the stuff belongs. */
@@ -508,7 +488,7 @@ index ae63baaf79..82eeca479a 100644
508 if (r < 0) 488 if (r < 0)
509 return log_error_errno(r, "Failed to write 'enable' attribute: %m"); 489 return log_error_errno(r, "Failed to write 'enable' attribute: %m");
510 490
511@@ -557,19 +557,19 @@ static int nvme_port_add_portnr( 491@@ -568,19 +568,19 @@ static int nvme_port_add_portnr(
512 return 0; 492 return 0;
513 } 493 }
514 494
@@ -532,23 +512,11 @@ index ae63baaf79..82eeca479a 100644
532 if (r < 0) 512 if (r < 0)
533 return log_error_errno(r, "Failed to set IP address on NVME port %" PRIu16 ": %m", portnr); 513 return log_error_errno(r, "Failed to set IP address on NVME port %" PRIu16 ": %m", portnr);
534 514
535diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
536index febe345b4c..a90b610ba1 100644
537--- a/src/udev/udev-rules.c
538+++ b/src/udev/udev-rules.c
539@@ -2711,7 +2711,6 @@ static int udev_rule_apply_token_to_event(
540 log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value);
541 r = write_string_file(buf, value,
542 WRITE_STRING_FILE_VERIFY_ON_FAILURE |
543- WRITE_STRING_FILE_DISABLE_BUFFER |
544 WRITE_STRING_FILE_AVOID_NEWLINE |
545 WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
546 if (r < 0)
547diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c 515diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
548index 4d82c65f0a..3a3d861b83 100644 516index ba742dda69..6f20e81615 100644
549--- a/src/vconsole/vconsole-setup.c 517--- a/src/vconsole/vconsole-setup.c
550+++ b/src/vconsole/vconsole-setup.c 518+++ b/src/vconsole/vconsole-setup.c
551@@ -261,7 +261,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) { 519@@ -277,7 +277,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
552 static int toggle_utf8_sysfs(bool utf8) { 520 static int toggle_utf8_sysfs(bool utf8) {
553 int r; 521 int r;
554 522
diff --git a/meta/recipes-core/systemd/systemd/0013-Handle-__cpu_mask-usage.patch b/meta/recipes-core/systemd/systemd/0013-Handle-__cpu_mask-usage.patch
index 43f75373a6..35009cba42 100644
--- a/meta/recipes-core/systemd/systemd/0013-Handle-__cpu_mask-usage.patch
+++ b/meta/recipes-core/systemd/systemd/0013-Handle-__cpu_mask-usage.patch
@@ -1,7 +1,7 @@
1From 2f90f8463423cfbb7e83fcef42f1071018c3b56e Mon Sep 17 00:00:00 2001 1From ab4fda874b26542de96720db58cb0e8704a40108 Mon Sep 17 00:00:00 2001
2From: Scott Murray <scott.murray@konsulko.com> 2From: Scott Murray <scott.murray@konsulko.com>
3Date: Fri, 13 Sep 2019 19:26:27 -0400 3Date: Fri, 13 Sep 2019 19:26:27 -0400
4Subject: [PATCH 13/22] Handle __cpu_mask usage 4Subject: [PATCH 13/26] Handle __cpu_mask usage
5 5
6Fixes errors: 6Fixes errors:
7 7
@@ -24,7 +24,7 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
24 2 files changed, 3 insertions(+), 1 deletion(-) 24 2 files changed, 3 insertions(+), 1 deletion(-)
25 25
26diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h 26diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
27index 3c63a58826..4c2d4347fc 100644 27index 2c477d8a01..c026ce77a6 100644
28--- a/src/shared/cpu-set-util.h 28--- a/src/shared/cpu-set-util.h
29+++ b/src/shared/cpu-set-util.h 29+++ b/src/shared/cpu-set-util.h
30@@ -6,6 +6,8 @@ 30@@ -6,6 +6,8 @@
diff --git a/meta/recipes-core/systemd/systemd/0014-Handle-missing-gshadow.patch b/meta/recipes-core/systemd/systemd/0014-Handle-missing-gshadow.patch
index a751e1ba6f..0aabae6d82 100644
--- a/meta/recipes-core/systemd/systemd/0014-Handle-missing-gshadow.patch
+++ b/meta/recipes-core/systemd/systemd/0014-Handle-missing-gshadow.patch
@@ -1,7 +1,7 @@
1From b7c827bb44edbb6251c9fcdb80aa03982c0e7bf3 Mon Sep 17 00:00:00 2001 1From c5165f6adf8a9cfe8c0784c598b87d7d7e8b7d1a Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com> 2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Tue, 10 Mar 2020 11:05:20 +0000 3Date: Tue, 10 Mar 2020 11:05:20 +0000
4Subject: [PATCH 14/22] Handle missing gshadow 4Subject: [PATCH 14/26] Handle missing gshadow
5 5
6gshadow usage is now present in the userdb code. Mask all uses of it to 6gshadow usage is now present in the userdb code. Mask all uses of it to
7allow compilation on musl 7allow compilation on musl
@@ -17,10 +17,10 @@ Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
17 3 files changed, 30 insertions(+), 1 deletion(-) 17 3 files changed, 30 insertions(+), 1 deletion(-)
18 18
19diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c 19diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
20index 414a49331b..1a4e1b628c 100644 20index 9223a2e6ca..f9eb1a5b64 100644
21--- a/src/shared/user-record-nss.c 21--- a/src/shared/user-record-nss.c
22+++ b/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( 23@@ -286,8 +286,10 @@ int nss_group_to_group_record(
24 if (isempty(grp->gr_name)) 24 if (isempty(grp->gr_name))
25 return -EINVAL; 25 return -EINVAL;
26 26
@@ -31,7 +31,7 @@ index 414a49331b..1a4e1b628c 100644
31 31
32 g = group_record_new(); 32 g = group_record_new();
33 if (!g) 33 if (!g)
34@@ -346,6 +348,7 @@ int nss_group_to_group_record( 34@@ -303,6 +305,7 @@ int nss_group_to_group_record(
35 35
36 g->gid = grp->gr_gid; 36 g->gid = grp->gr_gid;
37 37
@@ -39,15 +39,15 @@ index 414a49331b..1a4e1b628c 100644
39 if (sgrp) { 39 if (sgrp) {
40 if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) { 40 if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
41 g->hashed_password = strv_new(sgrp->sg_passwd); 41 g->hashed_password = strv_new(sgrp->sg_passwd);
42@@ -361,6 +364,7 @@ int nss_group_to_group_record( 42@@ -318,6 +321,7 @@ int nss_group_to_group_record(
43 if (r < 0) 43 if (r < 0)
44 return r; 44 return r;
45 } 45 }
46+#endif 46+#endif
47 47
48 r = json_build(&g->json, JSON_BUILD_OBJECT( 48 r = sd_json_buildo(
49 JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)), 49 &g->json,
50@@ -387,6 +391,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re 50@@ -345,6 +349,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
51 assert(ret_sgrp); 51 assert(ret_sgrp);
52 assert(ret_buffer); 52 assert(ret_buffer);
53 53
@@ -55,7 +55,7 @@ index 414a49331b..1a4e1b628c 100644
55 for (;;) { 55 for (;;) {
56 _cleanup_free_ char *buf = NULL; 56 _cleanup_free_ char *buf = NULL;
57 struct sgrp sgrp, *result; 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 58@@ -373,6 +378,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
59 buflen *= 2; 59 buflen *= 2;
60 buf = mfree(buf); 60 buf = mfree(buf);
61 } 61 }
@@ -65,25 +65,25 @@ index 414a49331b..1a4e1b628c 100644
65 } 65 }
66 66
67 int nss_group_record_by_name( 67 int nss_group_record_by_name(
68@@ -426,7 +434,9 @@ int nss_group_record_by_name( 68@@ -383,7 +391,9 @@ int nss_group_record_by_name(
69 struct group grp, *result; 69 _cleanup_free_ char *sbuf = NULL;
70 _cleanup_free_ struct group *result = NULL;
70 bool incomplete = false; 71 bool incomplete = false;
71 size_t buflen = 4096;
72+#if ENABLE_GSHADOW 72+#if ENABLE_GSHADOW
73 struct sgrp sgrp, *sresult = NULL; 73 struct sgrp sgrp, *sresult = NULL;
74+#endif 74+#endif
75 int r; 75 int r;
76 76
77 assert(name); 77 assert(name);
78@@ -455,6 +465,7 @@ int nss_group_record_by_name( 78@@ -392,6 +402,7 @@ int nss_group_record_by_name(
79 buf = mfree(buf); 79 if (r < 0)
80 } 80 return r;
81 81
82+#if ENABLE_GSHADOW 82+#if ENABLE_GSHADOW
83 if (with_shadow) { 83 if (with_shadow) {
84 r = nss_sgrp_for_group(result, &sgrp, &sbuf); 84 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
85 if (r < 0) { 85 if (r < 0) {
86@@ -466,6 +477,9 @@ int nss_group_record_by_name( 86@@ -403,6 +414,9 @@ int nss_group_record_by_name(
87 incomplete = true; 87 incomplete = true;
88 88
89 r = nss_group_to_group_record(result, sresult, ret); 89 r = nss_group_to_group_record(result, sresult, ret);
@@ -93,25 +93,24 @@ index 414a49331b..1a4e1b628c 100644
93 if (r < 0) 93 if (r < 0)
94 return r; 94 return r;
95 95
96@@ -483,7 +497,9 @@ int nss_group_record_by_gid( 96@@ -419,13 +433,16 @@ int nss_group_record_by_gid(
97 struct group grp, *result; 97 _cleanup_free_ char *sbuf = NULL;
98 _cleanup_free_ struct group *result = NULL;
98 bool incomplete = false; 99 bool incomplete = false;
99 size_t buflen = 4096;
100+#if ENABLE_GSHADOW 100+#if ENABLE_GSHADOW
101 struct sgrp sgrp, *sresult = NULL; 101 struct sgrp sgrp, *sresult = NULL;
102+#endif 102+#endif
103 int r; 103 int r;
104 104
105 for (;;) { 105 r = getgrgid_malloc(gid, &result);
106@@ -509,6 +525,7 @@ int nss_group_record_by_gid( 106 if (r < 0)
107 buf = mfree(buf); 107 return r;
108 }
109 108
110+#if ENABLE_GSHADOW 109+#if ENABLE_GSHADOW
111 if (with_shadow) { 110 if (with_shadow) {
112 r = nss_sgrp_for_group(result, &sgrp, &sbuf); 111 r = nss_sgrp_for_group(result, &sgrp, &sbuf);
113 if (r < 0) { 112 if (r < 0) {
114@@ -520,6 +537,9 @@ int nss_group_record_by_gid( 113@@ -437,6 +454,9 @@ int nss_group_record_by_gid(
115 incomplete = true; 114 incomplete = true;
116 115
117 r = nss_group_to_group_record(result, sresult, ret); 116 r = nss_group_to_group_record(result, sresult, ret);
@@ -138,10 +137,10 @@ index 22ab04d6ee..4e52e7a911 100644
138 #include <shadow.h> 137 #include <shadow.h>
139 138
140diff --git a/src/shared/userdb.c b/src/shared/userdb.c 139diff --git a/src/shared/userdb.c b/src/shared/userdb.c
141index f60d48ace4..e878199a28 100644 140index ff83d4bf90..54d36cc706 100644
142--- a/src/shared/userdb.c 141--- a/src/shared/userdb.c
143+++ b/src/shared/userdb.c 142+++ b/src/shared/userdb.c
144@@ -1038,13 +1038,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) { 143@@ -1042,13 +1042,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
145 if (gr) { 144 if (gr) {
146 _cleanup_free_ char *buffer = NULL; 145 _cleanup_free_ char *buffer = NULL;
147 bool incomplete = false; 146 bool incomplete = false;
@@ -158,7 +157,7 @@ index f60d48ace4..e878199a28 100644
158 if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) { 157 if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
159 r = nss_sgrp_for_group(gr, &sgrp, &buffer); 158 r = nss_sgrp_for_group(gr, &sgrp, &buffer);
160 if (r < 0) { 159 if (r < 0) {
161@@ -1057,6 +1059,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) { 160@@ -1061,6 +1063,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
162 } 161 }
163 162
164 r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret); 163 r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
diff --git a/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
index e112766a9b..1443c5082b 100644
--- a/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -1,7 +1,7 @@
1From 3dc9d9d410bcce54fddfd94f43f7f77f3aa8e281 Mon Sep 17 00:00:00 2001 1From ef9ad83759f78de983d2d7c4f95bc48b83bb8f66 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 12 Apr 2021 23:44:53 -0700 3Date: Mon, 12 Apr 2021 23:44:53 -0700
4Subject: [PATCH 15/22] missing_syscall.h: Define MIPS ABI defines for musl 4Subject: [PATCH 15/26] missing_syscall.h: Define MIPS ABI defines for musl
5 5
6musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64 6musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
7unlike glibc where these are provided by libc headers, therefore define 7unlike glibc where these are provided by libc headers, therefore define
@@ -15,8 +15,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 src/shared/base-filesystem.c | 1 + 15 src/shared/base-filesystem.c | 1 +
16 2 files changed, 7 insertions(+) 16 2 files changed, 7 insertions(+)
17 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 18--- a/src/basic/missing_syscall.h
21+++ b/src/basic/missing_syscall.h 19+++ b/src/basic/missing_syscall.h
22@@ -20,6 +20,12 @@ 20@@ -20,6 +20,12 @@
@@ -31,9 +29,7 @@ index d795efd8f2..d6729d3c1d 100644
31+ 29+
32 #include "macro.h" 30 #include "macro.h"
33 #include "missing_keyctl.h" 31 #include "missing_keyctl.h"
34 #include "missing_stat.h" 32 #include "missing_sched.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 33--- a/src/shared/base-filesystem.c
38+++ b/src/shared/base-filesystem.c 34+++ b/src/shared/base-filesystem.c
39@@ -20,6 +20,7 @@ 35@@ -20,6 +20,7 @@
@@ -42,8 +38,5 @@ index 7ae921a113..0ef9d1fd39 100644
42 #include "user-util.h" 38 #include "user-util.h"
43+#include "missing_syscall.h" 39+#include "missing_syscall.h"
44 40
45 typedef struct BaseFilesystem { 41 typedef enum BaseFilesystemFlags {
46 const char *dir; /* directory or symlink to create */ 42 BASE_FILESYSTEM_IGNORE_ON_FAILURE = 1 << 0,
47--
482.34.1
49
diff --git a/meta/recipes-core/systemd/systemd/0016-pass-correct-parameters-to-getdents64.patch b/meta/recipes-core/systemd/systemd/0016-pass-correct-parameters-to-getdents64.patch
index 0be817e62d..b802106155 100644
--- a/meta/recipes-core/systemd/systemd/0016-pass-correct-parameters-to-getdents64.patch
+++ b/meta/recipes-core/systemd/systemd/0016-pass-correct-parameters-to-getdents64.patch
@@ -1,7 +1,7 @@
1From 0994b59dba9f248ad31cb7087046dc00b72cb4ea Mon Sep 17 00:00:00 2001 1From 9079b158779a9c395c24f882f72a1c734795045d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 21 Jan 2022 15:15:11 -0800 3Date: Fri, 21 Jan 2022 15:15:11 -0800
4Subject: [PATCH 16/22] pass correct parameters to getdents64 4Subject: [PATCH 16/26] pass correct parameters to getdents64
5 5
6Fixes 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] 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]
@@ -20,10 +20,10 @@ Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
20 1 file changed, 1 insertion(+), 1 deletion(-) 20 1 file changed, 1 insertion(+), 1 deletion(-)
21 21
22diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c 22diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
23index 5e98b7a5d8..aef065047b 100644 23index 378fd92b06..5b567b457d 100644
24--- a/src/basic/recurse-dir.c 24--- a/src/basic/recurse-dir.c
25+++ b/src/basic/recurse-dir.c 25+++ b/src/basic/recurse-dir.c
26@@ -55,7 +55,7 @@ int readdir_all(int dir_fd, 26@@ -56,7 +56,7 @@ int readdir_all(int dir_fd,
27 bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX); 27 bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
28 assert(bs > de->buffer_size); 28 assert(bs > de->buffer_size);
29 29
diff --git a/meta/recipes-core/systemd/systemd/0017-Adjust-for-musl-headers.patch b/meta/recipes-core/systemd/systemd/0017-Adjust-for-musl-headers.patch
index 4176522a1c..5a2bc3c552 100644
--- a/meta/recipes-core/systemd/systemd/0017-Adjust-for-musl-headers.patch
+++ b/meta/recipes-core/systemd/systemd/0017-Adjust-for-musl-headers.patch
@@ -1,7 +1,7 @@
1From 3c094d443ca30f19114392fd8ef274af6eabc12d Mon Sep 17 00:00:00 2001 1From be9d8f221ab9d31c0df8b2b3e66172bb9bc0f71f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 21 Jan 2022 22:19:37 -0800 3Date: Fri, 21 Jan 2022 22:19:37 -0800
4Subject: [PATCH 17/22] Adjust for musl headers 4Subject: [PATCH 17/26] Adjust for musl headers
5 5
6Upstream-Status: Inappropriate [musl specific] 6Upstream-Status: Inappropriate [musl specific]
7 7
@@ -10,11 +10,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
10[Rebased for v255.1] 10[Rebased for v255.1]
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12--- 12---
13 src/basic/linux/ethtool.h | 3 ++-
13 src/libsystemd-network/sd-dhcp6-client.c | 2 +- 14 src/libsystemd-network/sd-dhcp6-client.c | 2 +-
14 src/network/netdev/bareudp.c | 2 +- 15 src/network/netdev/bareudp.c | 2 +-
15 src/network/netdev/batadv.c | 2 +- 16 src/network/netdev/batadv.c | 2 +-
16 src/network/netdev/bond.c | 2 +- 17 src/network/netdev/bond.c | 2 +-
17 src/network/netdev/bridge.c | 2 +- 18 src/network/netdev/bridge.c | 3 ++-
18 src/network/netdev/dummy.c | 2 +- 19 src/network/netdev/dummy.c | 2 +-
19 src/network/netdev/geneve.c | 2 +- 20 src/network/netdev/geneve.c | 2 +-
20 src/network/netdev/ifb.c | 2 +- 21 src/network/netdev/ifb.c | 2 +-
@@ -34,7 +35,6 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
34 src/network/netdev/vxlan.c | 2 +- 35 src/network/netdev/vxlan.c | 2 +-
35 src/network/netdev/wireguard.c | 2 +- 36 src/network/netdev/wireguard.c | 2 +-
36 src/network/netdev/xfrm.c | 2 +- 37 src/network/netdev/xfrm.c | 2 +-
37 src/network/networkd-bridge-mdb.c | 4 ++--
38 src/network/networkd-dhcp-common.c | 3 ++- 38 src/network/networkd-dhcp-common.c | 3 ++-
39 src/network/networkd-dhcp-prefix-delegation.c | 3 ++- 39 src/network/networkd-dhcp-prefix-delegation.c | 3 ++-
40 src/network/networkd-dhcp-server.c | 2 +- 40 src/network/networkd-dhcp-server.c | 2 +-
@@ -42,16 +42,28 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
42 src/network/networkd-ipv6ll.c | 2 +- 42 src/network/networkd-ipv6ll.c | 2 +-
43 src/network/networkd-link.c | 2 +- 43 src/network/networkd-link.c | 2 +-
44 src/network/networkd-ndisc.c | 2 +- 44 src/network/networkd-ndisc.c | 2 +-
45 src/network/networkd-route.c | 8 ++++----
46 src/network/networkd-setlink.c | 2 +- 45 src/network/networkd-setlink.c | 2 +-
47 src/network/networkd-sysctl.c | 2 +- 46 src/network/networkd-sysctl.c | 2 +-
48 src/shared/linux/ethtool.h | 3 ++-
49 src/shared/netif-util.c | 2 +- 47 src/shared/netif-util.c | 2 +-
50 src/udev/udev-builtin-net_id.c | 2 +- 48 src/udev/udev-builtin-net_id.c | 2 +-
51 38 files changed, 45 insertions(+), 42 deletions(-) 49 36 files changed, 40 insertions(+), 36 deletions(-)
52 50
51diff --git a/src/basic/linux/ethtool.h b/src/basic/linux/ethtool.h
52index a32293ba20..2aad67e9c0 100644
53--- a/src/basic/linux/ethtool.h
54+++ b/src/basic/linux/ethtool.h
55@@ -16,7 +16,8 @@
56
57 #include <linux/const.h>
58 #include <linux/types.h>
59-#include <linux/if_ether.h>
60+#include <netinet/if_ether.h>
61+//#include <linux/if_ether.h>
62
63 #include <limits.h> /* for INT_MAX */
64
53diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c 65diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
54index c20367dfc9..b8d4cd8c2a 100644 66index 3e992d7cad..c7e1ff4dbf 100644
55--- a/src/libsystemd-network/sd-dhcp6-client.c 67--- a/src/libsystemd-network/sd-dhcp6-client.c
56+++ b/src/libsystemd-network/sd-dhcp6-client.c 68+++ b/src/libsystemd-network/sd-dhcp6-client.c
57@@ -5,7 +5,7 @@ 69@@ -5,7 +5,7 @@
@@ -64,7 +76,7 @@ index c20367dfc9..b8d4cd8c2a 100644
64 76
65 #include "sd-dhcp6-client.h" 77 #include "sd-dhcp6-client.h"
66diff --git a/src/network/netdev/bareudp.c b/src/network/netdev/bareudp.c 78diff --git a/src/network/netdev/bareudp.c b/src/network/netdev/bareudp.c
67index 1df886573b..c8b6714726 100644 79index e122abd97f..c120c2969b 100644
68--- a/src/network/netdev/bareudp.c 80--- a/src/network/netdev/bareudp.c
69+++ b/src/network/netdev/bareudp.c 81+++ b/src/network/netdev/bareudp.c
70@@ -2,7 +2,7 @@ 82@@ -2,7 +2,7 @@
@@ -77,7 +89,7 @@ index 1df886573b..c8b6714726 100644
77 #include "bareudp.h" 89 #include "bareudp.h"
78 #include "netlink-util.h" 90 #include "netlink-util.h"
79diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c 91diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c
80index 26da0231d4..2e8002af8c 100644 92index 9806d8eb7c..19c3d881c2 100644
81--- a/src/network/netdev/batadv.c 93--- a/src/network/netdev/batadv.c
82+++ b/src/network/netdev/batadv.c 94+++ b/src/network/netdev/batadv.c
83@@ -3,7 +3,7 @@ 95@@ -3,7 +3,7 @@
@@ -90,7 +102,7 @@ index 26da0231d4..2e8002af8c 100644
90 #include "batadv.h" 102 #include "batadv.h"
91 #include "fileio.h" 103 #include "fileio.h"
92diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c 104diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
93index 4d75a0d6bf..985b3197e0 100644 105index b866940b7a..a0eaf0a866 100644
94--- a/src/network/netdev/bond.c 106--- a/src/network/netdev/bond.c
95+++ b/src/network/netdev/bond.c 107+++ b/src/network/netdev/bond.c
96@@ -1,7 +1,7 @@ 108@@ -1,7 +1,7 @@
@@ -103,20 +115,21 @@ index 4d75a0d6bf..985b3197e0 100644
103 #include "alloc-util.h" 115 #include "alloc-util.h"
104 #include "bond.h" 116 #include "bond.h"
105diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c 117diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
106index 3e394edadf..f12f667687 100644 118index d3ba4989d9..4f7301c4f1 100644
107--- a/src/network/netdev/bridge.c 119--- a/src/network/netdev/bridge.c
108+++ b/src/network/netdev/bridge.c 120+++ b/src/network/netdev/bridge.c
109@@ -2,7 +2,7 @@ 121@@ -2,7 +2,8 @@
110 122
123 /* Make sure the net/if.h header is included before any linux/ one */
111 #include <net/if.h> 124 #include <net/if.h>
112 #include <netinet/in.h>
113-#include <linux/if_arp.h> 125-#include <linux/if_arp.h>
126+#include <netinet/in.h>
114+//#include <linux/if_arp.h> 127+//#include <linux/if_arp.h>
115 #include <linux/if_bridge.h> 128 #include <linux/if_bridge.h>
129 #include <netinet/in.h>
116 130
117 #include "bridge.h"
118diff --git a/src/network/netdev/dummy.c b/src/network/netdev/dummy.c 131diff --git a/src/network/netdev/dummy.c b/src/network/netdev/dummy.c
119index 00df1d2787..77b506b422 100644 132index 8b2893d5b4..412123f036 100644
120--- a/src/network/netdev/dummy.c 133--- a/src/network/netdev/dummy.c
121+++ b/src/network/netdev/dummy.c 134+++ b/src/network/netdev/dummy.c
122@@ -1,6 +1,6 @@ 135@@ -1,6 +1,6 @@
@@ -128,18 +141,18 @@ index 00df1d2787..77b506b422 100644
128 #include "dummy.h" 141 #include "dummy.h"
129 142
130diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c 143diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c
131index bc655ec7ff..a77e8e17e4 100644 144index 1d68be9bc8..539151c49e 100644
132--- a/src/network/netdev/geneve.c 145--- a/src/network/netdev/geneve.c
133+++ b/src/network/netdev/geneve.c 146+++ b/src/network/netdev/geneve.c
134@@ -2,7 +2,7 @@ 147@@ -2,7 +2,7 @@
135 148
149 /* Make sure the net/if.h header is included before any linux/ one */
136 #include <net/if.h> 150 #include <net/if.h>
137 #include <netinet/in.h>
138-#include <linux/if_arp.h> 151-#include <linux/if_arp.h>
139+//#include <linux/if_arp.h> 152+//#include <linux/if_arp.h>
153 #include <netinet/in.h>
140 154
141 #include "alloc-util.h" 155 #include "alloc-util.h"
142 #include "conf-parser.h"
143diff --git a/src/network/netdev/ifb.c b/src/network/netdev/ifb.c 156diff --git a/src/network/netdev/ifb.c b/src/network/netdev/ifb.c
144index d7ff44cb9e..e037629ae4 100644 157index d7ff44cb9e..e037629ae4 100644
145--- a/src/network/netdev/ifb.c 158--- a/src/network/netdev/ifb.c
@@ -154,7 +167,7 @@ index d7ff44cb9e..e037629ae4 100644
154 #include "ifb.h" 167 #include "ifb.h"
155 168
156diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c 169diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c
157index d5fe299b7b..c9c8002eac 100644 170index 6932c62e2a..fc458da9e8 100644
158--- a/src/network/netdev/ipoib.c 171--- a/src/network/netdev/ipoib.c
159+++ b/src/network/netdev/ipoib.c 172+++ b/src/network/netdev/ipoib.c
160@@ -1,6 +1,6 @@ 173@@ -1,6 +1,6 @@
@@ -166,11 +179,11 @@ index d5fe299b7b..c9c8002eac 100644
166 179
167 #include "ipoib.h" 180 #include "ipoib.h"
168diff --git a/src/network/netdev/ipvlan.c b/src/network/netdev/ipvlan.c 181diff --git a/src/network/netdev/ipvlan.c b/src/network/netdev/ipvlan.c
169index 05d5d010f6..d440f49537 100644 182index 6e50f72aaa..49acfee25e 100644
170--- a/src/network/netdev/ipvlan.c 183--- a/src/network/netdev/ipvlan.c
171+++ b/src/network/netdev/ipvlan.c 184+++ b/src/network/netdev/ipvlan.c
172@@ -2,7 +2,7 @@ 185@@ -3,7 +3,7 @@
173 186 /* Make sure the net/if.h header is included before any linux/ one */
174 #include <net/if.h> 187 #include <net/if.h>
175 #include <netinet/in.h> 188 #include <netinet/in.h>
176-#include <linux/if_arp.h> 189-#include <linux/if_arp.h>
@@ -179,7 +192,7 @@ index 05d5d010f6..d440f49537 100644
179 #include "conf-parser.h" 192 #include "conf-parser.h"
180 #include "ipvlan.h" 193 #include "ipvlan.h"
181diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c 194diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
182index 17d6acefb6..679d0984f9 100644 195index 6dd434f803..f9fbe9f51a 100644
183--- a/src/network/netdev/macsec.c 196--- a/src/network/netdev/macsec.c
184+++ b/src/network/netdev/macsec.c 197+++ b/src/network/netdev/macsec.c
185@@ -1,7 +1,7 @@ 198@@ -1,7 +1,7 @@
@@ -192,11 +205,11 @@ index 17d6acefb6..679d0984f9 100644
192 #include <linux/if_macsec.h> 205 #include <linux/if_macsec.h>
193 #include <linux/genetlink.h> 206 #include <linux/genetlink.h>
194diff --git a/src/network/netdev/macvlan.c b/src/network/netdev/macvlan.c 207diff --git a/src/network/netdev/macvlan.c b/src/network/netdev/macvlan.c
195index 203807e3a5..8ab09a387e 100644 208index fd112b58e1..b038740bda 100644
196--- a/src/network/netdev/macvlan.c 209--- a/src/network/netdev/macvlan.c
197+++ b/src/network/netdev/macvlan.c 210+++ b/src/network/netdev/macvlan.c
198@@ -2,7 +2,7 @@ 211@@ -3,7 +3,7 @@
199 212 /* Make sure the net/if.h header is included before any linux/ one */
200 #include <net/if.h> 213 #include <net/if.h>
201 #include <netinet/in.h> 214 #include <netinet/in.h>
202-#include <linux/if_arp.h> 215-#include <linux/if_arp.h>
@@ -205,11 +218,11 @@ index 203807e3a5..8ab09a387e 100644
205 #include "conf-parser.h" 218 #include "conf-parser.h"
206 #include "macvlan.h" 219 #include "macvlan.h"
207diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c 220diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
208index 57127a861a..7f787d0b9f 100644 221index c2986aafb5..147f1c95d0 100644
209--- a/src/network/netdev/netdev.c 222--- a/src/network/netdev/netdev.c
210+++ b/src/network/netdev/netdev.c 223+++ b/src/network/netdev/netdev.c
211@@ -2,7 +2,7 @@ 224@@ -3,7 +3,7 @@
212 225 /* Make sure the net/if.h header is included before any linux/ one */
213 #include <net/if.h> 226 #include <net/if.h>
214 #include <netinet/in.h> 227 #include <netinet/in.h>
215-#include <linux/if_arp.h> 228-#include <linux/if_arp.h>
@@ -218,7 +231,7 @@ index 57127a861a..7f787d0b9f 100644
218 231
219 #include "alloc-util.h" 232 #include "alloc-util.h"
220diff --git a/src/network/netdev/netdevsim.c b/src/network/netdev/netdevsim.c 233diff --git a/src/network/netdev/netdevsim.c b/src/network/netdev/netdevsim.c
221index 15d5c132f9..a3ffa48b15 100644 234index 59958c3bbe..61169016b0 100644
222--- a/src/network/netdev/netdevsim.c 235--- a/src/network/netdev/netdevsim.c
223+++ b/src/network/netdev/netdevsim.c 236+++ b/src/network/netdev/netdevsim.c
224@@ -1,6 +1,6 @@ 237@@ -1,6 +1,6 @@
@@ -242,7 +255,7 @@ index ff372092e6..eef66811f4 100644
242 #include "nlmon.h" 255 #include "nlmon.h"
243 256
244diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c 257diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c
245index db84e7cf6e..93d5642962 100644 258index af05cfda81..f659bed3a6 100644
246--- a/src/network/netdev/tunnel.c 259--- a/src/network/netdev/tunnel.c
247+++ b/src/network/netdev/tunnel.c 260+++ b/src/network/netdev/tunnel.c
248@@ -2,7 +2,7 @@ 261@@ -2,7 +2,7 @@
@@ -267,46 +280,47 @@ index 380547ee1e..137c1adf8a 100644
267 #include "vcan.h" 280 #include "vcan.h"
268 281
269diff --git a/src/network/netdev/veth.c b/src/network/netdev/veth.c 282diff --git a/src/network/netdev/veth.c b/src/network/netdev/veth.c
270index e0f5b4ebb1..8a424ed03d 100644 283index 54d3b59734..f3f75e22b5 100644
271--- a/src/network/netdev/veth.c 284--- a/src/network/netdev/veth.c
272+++ b/src/network/netdev/veth.c 285+++ b/src/network/netdev/veth.c
273@@ -3,7 +3,7 @@ 286@@ -3,7 +3,7 @@
274 #include <errno.h> 287 /* Make sure the net/if.h header is included before any linux/ one */
275 #include <net/if.h> 288 #include <net/if.h>
276 #include <netinet/in.h> 289 #include <errno.h>
277-#include <linux/if_arp.h> 290-#include <linux/if_arp.h>
278+//#include <linux/if_arp.h> 291+//#include <linux/if_arp.h>
279 #include <linux/veth.h> 292 #include <linux/veth.h>
293 #include <netinet/in.h>
280 294
281 #include "netlink-util.h"
282diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c 295diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c
283index 2390206993..efec630e30 100644 296index 60e49a5b8a..266fd58813 100644
284--- a/src/network/netdev/vlan.c 297--- a/src/network/netdev/vlan.c
285+++ b/src/network/netdev/vlan.c 298+++ b/src/network/netdev/vlan.c
286@@ -2,7 +2,7 @@ 299@@ -3,7 +3,7 @@
287 300 /* Make sure the net/if.h header is included before any linux/ one */
288 #include <errno.h>
289 #include <net/if.h> 301 #include <net/if.h>
302 #include <errno.h>
290-#include <linux/if_arp.h> 303-#include <linux/if_arp.h>
291+//#include <linux/if_arp.h> 304+//#include <linux/if_arp.h>
292 #include <linux/if_vlan.h> 305 #include <linux/if_vlan.h>
293 306
294 #include "parse-util.h" 307 #include "parse-util.h"
295diff --git a/src/network/netdev/vrf.c b/src/network/netdev/vrf.c 308diff --git a/src/network/netdev/vrf.c b/src/network/netdev/vrf.c
296index b75ec2bcc6..6aeeea640b 100644 309index c35419f859..4d1d3ef141 100644
297--- a/src/network/netdev/vrf.c 310--- a/src/network/netdev/vrf.c
298+++ b/src/network/netdev/vrf.c 311+++ b/src/network/netdev/vrf.c
299@@ -2,7 +2,7 @@ 312@@ -2,8 +2,8 @@
300 313
314 /* Make sure the net/if.h header is included before any linux/ one */
301 #include <net/if.h> 315 #include <net/if.h>
302 #include <netinet/in.h>
303-#include <linux/if_arp.h> 316-#include <linux/if_arp.h>
317 #include <netinet/in.h>
304+//#include <linux/if_arp.h> 318+//#include <linux/if_arp.h>
305 319
306 #include "vrf.h" 320 #include "vrf.h"
307 321
308diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c 322diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c
309index c0343f45b6..f9e718f40b 100644 323index 2de89b8e24..ce1b8f9b69 100644
310--- a/src/network/netdev/vxcan.c 324--- a/src/network/netdev/vxcan.c
311+++ b/src/network/netdev/vxcan.c 325+++ b/src/network/netdev/vxcan.c
312@@ -1,7 +1,7 @@ 326@@ -1,7 +1,7 @@
@@ -319,11 +333,11 @@ index c0343f45b6..f9e718f40b 100644
319 #include "vxcan.h" 333 #include "vxcan.h"
320 334
321diff --git a/src/network/netdev/vxlan.c b/src/network/netdev/vxlan.c 335diff --git a/src/network/netdev/vxlan.c b/src/network/netdev/vxlan.c
322index b11fdbbd0d..a971a917f0 100644 336index d8a066370d..8f94eeb763 100644
323--- a/src/network/netdev/vxlan.c 337--- a/src/network/netdev/vxlan.c
324+++ b/src/network/netdev/vxlan.c 338+++ b/src/network/netdev/vxlan.c
325@@ -2,7 +2,7 @@ 339@@ -3,7 +3,7 @@
326 340 /* Make sure the net/if.h header is included before any linux/ one */
327 #include <net/if.h> 341 #include <net/if.h>
328 #include <netinet/in.h> 342 #include <netinet/in.h>
329-#include <linux/if_arp.h> 343-#include <linux/if_arp.h>
@@ -332,18 +346,18 @@ index b11fdbbd0d..a971a917f0 100644
332 #include "conf-parser.h" 346 #include "conf-parser.h"
333 #include "alloc-util.h" 347 #include "alloc-util.h"
334diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c 348diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c
335index 4c7d837c41..6df6dfb816 100644 349index 8d1dddf828..5182783f45 100644
336--- a/src/network/netdev/wireguard.c 350--- a/src/network/netdev/wireguard.c
337+++ b/src/network/netdev/wireguard.c 351+++ b/src/network/netdev/wireguard.c
338@@ -6,7 +6,7 @@ 352@@ -5,7 +5,7 @@
339 #include <sys/ioctl.h> 353
354 /* Make sure the net/if.h header is included before any linux/ one */
340 #include <net/if.h> 355 #include <net/if.h>
341 #include <netinet/in.h>
342-#include <linux/if_arp.h> 356-#include <linux/if_arp.h>
343+//#include <linux/if_arp.h> 357+//#include <linux/if_arp.h>
344 #include <linux/ipv6_route.h> 358 #include <linux/ipv6_route.h>
345 359 #include <netinet/in.h>
346 #include "sd-resolve.h" 360 #include <sys/ioctl.h>
347diff --git a/src/network/netdev/xfrm.c b/src/network/netdev/xfrm.c 361diff --git a/src/network/netdev/xfrm.c b/src/network/netdev/xfrm.c
348index 905bfc0bdf..39e34dbb3b 100644 362index 905bfc0bdf..39e34dbb3b 100644
349--- a/src/network/netdev/xfrm.c 363--- a/src/network/netdev/xfrm.c
@@ -356,29 +370,8 @@ index 905bfc0bdf..39e34dbb3b 100644
356 370
357 #include "missing_network.h" 371 #include "missing_network.h"
358 #include "xfrm.h" 372 #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 373diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
381index 080b15387c..efe8283957 100644 374index 8b64dfe8f0..caa2885728 100644
382--- a/src/network/networkd-dhcp-common.c 375--- a/src/network/networkd-dhcp-common.c
383+++ b/src/network/networkd-dhcp-common.c 376+++ b/src/network/networkd-dhcp-common.c
384@@ -1,7 +1,8 @@ 377@@ -1,7 +1,8 @@
@@ -392,7 +385,7 @@ index 080b15387c..efe8283957 100644
392 #include "bus-error.h" 385 #include "bus-error.h"
393 #include "bus-locator.h" 386 #include "bus-locator.h"
394diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c 387diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c
395index af2fe9efcd..511565700f 100644 388index 16426de981..3d8efc05f1 100644
396--- a/src/network/networkd-dhcp-prefix-delegation.c 389--- a/src/network/networkd-dhcp-prefix-delegation.c
397+++ b/src/network/networkd-dhcp-prefix-delegation.c 390+++ b/src/network/networkd-dhcp-prefix-delegation.c
398@@ -1,6 +1,5 @@ 391@@ -1,6 +1,5 @@
@@ -402,7 +395,7 @@ index af2fe9efcd..511565700f 100644
402 395
403 #include "dhcp6-lease-internal.h" 396 #include "dhcp6-lease-internal.h"
404 #include "hashmap.h" 397 #include "hashmap.h"
405@@ -20,6 +19,8 @@ 398@@ -21,6 +20,8 @@
406 #include "strv.h" 399 #include "strv.h"
407 #include "tunnel.h" 400 #include "tunnel.h"
408 401
@@ -412,7 +405,7 @@ index af2fe9efcd..511565700f 100644
412 assert(link); 405 assert(link);
413 406
414diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c 407diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
415index 607fe0053c..9ce4005874 100644 408index c35102af74..3be469ae16 100644
416--- a/src/network/networkd-dhcp-server.c 409--- a/src/network/networkd-dhcp-server.c
417+++ b/src/network/networkd-dhcp-server.c 410+++ b/src/network/networkd-dhcp-server.c
418@@ -1,7 +1,7 @@ 411@@ -1,7 +1,7 @@
@@ -425,7 +418,7 @@ index 607fe0053c..9ce4005874 100644
425 418
426 #include "sd-dhcp-server.h" 419 #include "sd-dhcp-server.h"
427diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c 420diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
428index efbae6d868..1ea2151d50 100644 421index d94ac1a213..b8fe82cb6a 100644
429--- a/src/network/networkd-dhcp4.c 422--- a/src/network/networkd-dhcp4.c
430+++ b/src/network/networkd-dhcp4.c 423+++ b/src/network/networkd-dhcp4.c
431@@ -3,7 +3,7 @@ 424@@ -3,7 +3,7 @@
@@ -436,9 +429,9 @@ index efbae6d868..1ea2151d50 100644
436+//#include <linux/if_arp.h> 429+//#include <linux/if_arp.h>
437 430
438 #include "alloc-util.h" 431 #include "alloc-util.h"
439 #include "dhcp-client-internal.h" 432 #include "device-private.h"
440diff --git a/src/network/networkd-ipv6ll.c b/src/network/networkd-ipv6ll.c 433diff --git a/src/network/networkd-ipv6ll.c b/src/network/networkd-ipv6ll.c
441index 32229a3fc7..662a345d6e 100644 434index 04f51ab530..c4580754f7 100644
442--- a/src/network/networkd-ipv6ll.c 435--- a/src/network/networkd-ipv6ll.c
443+++ b/src/network/networkd-ipv6ll.c 436+++ b/src/network/networkd-ipv6ll.c
444@@ -1,7 +1,7 @@ 437@@ -1,7 +1,7 @@
@@ -451,10 +444,10 @@ index 32229a3fc7..662a345d6e 100644
451 #include "in-addr-util.h" 444 #include "in-addr-util.h"
452 #include "networkd-address.h" 445 #include "networkd-address.h"
453diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c 446diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
454index ee5f0f2c0a..ea5269a2de 100644 447index 3c042e6c18..05fe2cb900 100644
455--- a/src/network/networkd-link.c 448--- a/src/network/networkd-link.c
456+++ b/src/network/networkd-link.c 449+++ b/src/network/networkd-link.c
457@@ -3,7 +3,7 @@ 450@@ -4,7 +4,7 @@
458 #include <net/if.h> 451 #include <net/if.h>
459 #include <netinet/in.h> 452 #include <netinet/in.h>
460 #include <linux/if.h> 453 #include <linux/if.h>
@@ -464,7 +457,7 @@ index ee5f0f2c0a..ea5269a2de 100644
464 #include <linux/netdevice.h> 457 #include <linux/netdevice.h>
465 #include <sys/socket.h> 458 #include <sys/socket.h>
466diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c 459diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
467index ab9eeb13a5..dd96fe7483 100644 460index 33e86fb04e..51292871fc 100644
468--- a/src/network/networkd-ndisc.c 461--- a/src/network/networkd-ndisc.c
469+++ b/src/network/networkd-ndisc.c 462+++ b/src/network/networkd-ndisc.c
470@@ -6,7 +6,7 @@ 463@@ -6,7 +6,7 @@
@@ -476,33 +469,8 @@ index ab9eeb13a5..dd96fe7483 100644
476 469
477 #include "sd-ndisc.h" 470 #include "sd-ndisc.h"
478 471
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 472diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c
505index 2298f9ea3a..7d5f87de53 100644 473index 8519e6e7a0..7aca2bbecc 100644
506--- a/src/network/networkd-setlink.c 474--- a/src/network/networkd-setlink.c
507+++ b/src/network/networkd-setlink.c 475+++ b/src/network/networkd-setlink.c
508@@ -2,7 +2,7 @@ 476@@ -2,7 +2,7 @@
@@ -512,10 +480,10 @@ index 2298f9ea3a..7d5f87de53 100644
512-#include <linux/if_arp.h> 480-#include <linux/if_arp.h>
513+//#include <linux/if_arp.h> 481+//#include <linux/if_arp.h>
514 #include <linux/if_bridge.h> 482 #include <linux/if_bridge.h>
483 #include <linux/ipv6.h>
515 484
516 #include "missing_network.h"
517diff --git a/src/network/networkd-sysctl.c b/src/network/networkd-sysctl.c 485diff --git a/src/network/networkd-sysctl.c b/src/network/networkd-sysctl.c
518index 2b226b2e2a..f12a474e2f 100644 486index 10a35bc44b..84c6b68ee4 100644
519--- a/src/network/networkd-sysctl.c 487--- a/src/network/networkd-sysctl.c
520+++ b/src/network/networkd-sysctl.c 488+++ b/src/network/networkd-sysctl.c
521@@ -2,7 +2,7 @@ 489@@ -2,7 +2,7 @@
@@ -525,24 +493,10 @@ index 2b226b2e2a..f12a474e2f 100644
525-#include <linux/if_arp.h> 493-#include <linux/if_arp.h>
526+//#include <linux/if_arp.h> 494+//#include <linux/if_arp.h>
527 495
528 #include "missing_network.h" 496 #include "sd-messages.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 497
544diff --git a/src/shared/netif-util.c b/src/shared/netif-util.c 498diff --git a/src/shared/netif-util.c b/src/shared/netif-util.c
545index f56c5646c1..5af28ff119 100644 499index 978ce42341..899b5f613f 100644
546--- a/src/shared/netif-util.c 500--- a/src/shared/netif-util.c
547+++ b/src/shared/netif-util.c 501+++ b/src/shared/netif-util.c
548@@ -1,7 +1,7 @@ 502@@ -1,7 +1,7 @@
@@ -555,10 +509,10 @@ index f56c5646c1..5af28ff119 100644
555 #include "arphrd-util.h" 509 #include "arphrd-util.h"
556 #include "device-util.h" 510 #include "device-util.h"
557diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c 511diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
558index f528a46b8e..830318cda5 100644 512index 09c04b9a7f..4686897dbf 100644
559--- a/src/udev/udev-builtin-net_id.c 513--- a/src/udev/udev-builtin-net_id.c
560+++ b/src/udev/udev-builtin-net_id.c 514+++ b/src/udev/udev-builtin-net_id.c
561@@ -18,7 +18,7 @@ 515@@ -19,7 +19,7 @@
562 #include <stdarg.h> 516 #include <stdarg.h>
563 #include <unistd.h> 517 #include <unistd.h>
564 #include <linux/if.h> 518 #include <linux/if.h>
diff --git a/meta/recipes-core/systemd/systemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch b/meta/recipes-core/systemd/systemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
index 75f6b9094a..a92b8cc80f 100644
--- a/meta/recipes-core/systemd/systemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
+++ b/meta/recipes-core/systemd/systemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
@@ -1,7 +1,7 @@
1From be02bd0876a061728661535a709d313e39fe1ac3 Mon Sep 17 00:00:00 2001 1From 349f9a0f9ecfc6575a3d9eeaffe89536e6a43914 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 8 Nov 2022 13:31:34 -0800 3Date: Tue, 8 Nov 2022 13:31:34 -0800
4Subject: [PATCH 18/22] test-bus-error: strerror() is assumed to be GNU 4Subject: [PATCH 18/26] test-bus-error: strerror() is assumed to be GNU
5 specific version mark it so 5 specific version mark it so
6 6
7Upstream-Status: Inappropriate [Upstream systemd only supports glibc] 7Upstream-Status: Inappropriate [Upstream systemd only supports glibc]
@@ -13,7 +13,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 2 files changed, 4 insertions(+), 1 deletion(-) 13 2 files changed, 4 insertions(+), 1 deletion(-)
14 14
15diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c 15diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c
16index a55f3f9856..4123bf3da0 100644 16index 91045c06c2..a06b9bac0c 100644
17--- a/src/libsystemd/sd-bus/test-bus-error.c 17--- a/src/libsystemd/sd-bus/test-bus-error.c
18+++ b/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) { 19@@ -99,7 +99,9 @@ TEST(error) {
@@ -27,7 +27,7 @@ index a55f3f9856..4123bf3da0 100644
27 assert_se(sd_bus_error_get_errno(&error) == EBUSY); 27 assert_se(sd_bus_error_get_errno(&error) == EBUSY);
28 assert_se(sd_bus_error_is_set(&error)); 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 29diff --git a/src/test/test-errno-util.c b/src/test/test-errno-util.c
30index 376d532281..967cfd4d67 100644 30index ab463bd1b3..e2ebcaaf33 100644
31--- a/src/test/test-errno-util.c 31--- a/src/test/test-errno-util.c
32+++ b/src/test/test-errno-util.c 32+++ b/src/test/test-errno-util.c
33@@ -4,7 +4,7 @@ 33@@ -4,7 +4,7 @@
diff --git a/meta/recipes-core/systemd/systemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch b/meta/recipes-core/systemd/systemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
index e038b73678..56083cc7b3 100644
--- a/meta/recipes-core/systemd/systemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
@@ -1,7 +1,7 @@
1From 46d80840bfe37e67d4f18c37a77751ea1fe63a07 Mon Sep 17 00:00:00 2001 1From 28fa1d5f56c6ddee9e336e6f2051c55e9f2f98b4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Jan 2023 23:39:46 -0800 3Date: Mon, 23 Jan 2023 23:39:46 -0800
4Subject: [PATCH 19/22] errno-util: Make STRERROR portable for musl 4Subject: [PATCH 19/26] errno-util: Make STRERROR portable for musl
5 5
6Sadly, systemd has decided to use yet another GNU extention in a macro 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 7lets make this such that we can use XSI compliant strerror_r() for
@@ -11,11 +11,11 @@ Upstream-Status: Inappropriate [musl specific]
11 11
12Signed-off-by: Khem Raj <raj.khem@gmail.com> 12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13--- 13---
14 src/basic/errno-util.h | 12 ++++++++++-- 14 src/basic/errno-util.h | 10 +++++++++-
15 1 file changed, 10 insertions(+), 2 deletions(-) 15 1 file changed, 9 insertions(+), 1 deletion(-)
16 16
17diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h 17diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h
18index 27804e6382..274c1c6ef1 100644 18index 48b76e4bf7..6e7653e2d9 100644
19--- a/src/basic/errno-util.h 19--- a/src/basic/errno-util.h
20+++ b/src/basic/errno-util.h 20+++ b/src/basic/errno-util.h
21@@ -15,8 +15,16 @@ 21@@ -15,8 +15,16 @@
@@ -23,9 +23,8 @@ index 27804e6382..274c1c6ef1 100644
23 * 23 *
24 * Note that we use the GNU variant of strerror_r() here. */ 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) 25-#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN)
26-
27+static inline const char * STRERROR(int errnum); 26+static inline const char * STRERROR(int errnum);
28+ 27
29+static inline const char * STRERROR(int errnum) { 28+static inline const char * STRERROR(int errnum) {
30+#ifdef __GLIBC__ 29+#ifdef __GLIBC__
31+ return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN); 30+ return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN);
diff --git a/meta/recipes-core/systemd/systemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch b/meta/recipes-core/systemd/systemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
index b83fffe793..16df44cd86 100644
--- a/meta/recipes-core/systemd/systemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
+++ b/meta/recipes-core/systemd/systemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
@@ -1,7 +1,7 @@
1From 9eb4867b4e2dbdb2484ae854022aff97e2f0feb3 Mon Sep 17 00:00:00 2001 1From 66de8a53849f76f5596327c38ae5f002b9f534cd Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 2 Aug 2023 12:06:27 -0700 3Date: Wed, 2 Aug 2023 12:06:27 -0700
4Subject: [PATCH 20/22] sd-event: Make malloc_trim() conditional on glibc 4Subject: [PATCH 20/26] sd-event: Make malloc_trim() conditional on glibc
5 5
6musl does not have this API 6musl does not have this API
7 7
@@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 1 file changed, 3 insertions(+), 1 deletion(-) 12 1 file changed, 3 insertions(+), 1 deletion(-)
13 13
14diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c 14diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
15index 288798a0dc..6419a7f216 100644 15index 7aea7d2581..d3f4001f53 100644
16--- a/src/libsystemd/sd-event/sd-event.c 16--- a/src/libsystemd/sd-event/sd-event.c
17+++ b/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( 18@@ -1881,7 +1881,7 @@ _public_ int sd_event_add_exit(
19 } 19 }
20 20
21 _public_ int sd_event_trim_memory(void) { 21 _public_ int sd_event_trim_memory(void) {
@@ -24,7 +24,7 @@ index 288798a0dc..6419a7f216 100644
24 24
25 /* A default implementation of a memory pressure callback. Simply releases our own allocation caches 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 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) { 27@@ -1895,7 +1895,9 @@ _public_ int sd_event_trim_memory(void) {
28 28
29 usec_t before_timestamp = now(CLOCK_MONOTONIC); 29 usec_t before_timestamp = now(CLOCK_MONOTONIC);
30 hashmap_trim_pools(); 30 hashmap_trim_pools();
diff --git a/meta/recipes-core/systemd/systemd/0021-shared-Do-not-use-malloc_info-on-musl.patch b/meta/recipes-core/systemd/systemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
index 7eff069bb7..7ab56ef8fb 100644
--- a/meta/recipes-core/systemd/systemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
@@ -1,7 +1,7 @@
1From 502597b9ddd6b145541b23fadca0b1d3ca9f6367 Mon Sep 17 00:00:00 2001 1From 93d13363c605fb2de484f38f3726f8fbad1c3540 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 2 Aug 2023 12:20:40 -0700 3Date: Wed, 2 Aug 2023 12:20:40 -0700
4Subject: [PATCH 21/22] shared: Do not use malloc_info on musl 4Subject: [PATCH 21/26] shared: Do not use malloc_info on musl
5 5
6Upstream-Status: Inappropriate [musl-specific] 6Upstream-Status: Inappropriate [musl-specific]
7Signed-off-by: Khem Raj <raj.khem@gmail.com> 7Signed-off-by: Khem Raj <raj.khem@gmail.com>
@@ -11,10 +11,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
11 2 files changed, 5 insertions(+), 4 deletions(-) 11 2 files changed, 5 insertions(+), 4 deletions(-)
12 12
13diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c 13diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
14index 74f148c8b4..2d862a123d 100644 14index ff80e580fc..a628a29d0c 100644
15--- a/src/shared/bus-util.c 15--- a/src/shared/bus-util.c
16+++ b/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 17@@ -787,15 +787,16 @@ static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdat
18 _cleanup_close_ int fd = -EBADF; 18 _cleanup_close_ int fd = -EBADF;
19 size_t dump_size; 19 size_t dump_size;
20 FILE *f; 20 FILE *f;
diff --git a/meta/recipes-core/systemd/systemd/0022-avoid-missing-LOCK_EX-declaration.patch b/meta/recipes-core/systemd/systemd/0022-avoid-missing-LOCK_EX-declaration.patch
index 24f3bf74a0..d06967f8d5 100644
--- a/meta/recipes-core/systemd/systemd/0022-avoid-missing-LOCK_EX-declaration.patch
+++ b/meta/recipes-core/systemd/systemd/0022-avoid-missing-LOCK_EX-declaration.patch
@@ -1,7 +1,7 @@
1From fd52f1764647e03a35e8f0ed0ef952049073ccbd Mon Sep 17 00:00:00 2001 1From 5b8df64993b68a5a4af0f214d8cae77f4e716593 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 2 Jan 2024 11:03:27 +0800 3Date: Tue, 2 Jan 2024 11:03:27 +0800
4Subject: [PATCH 22/22] avoid missing LOCK_EX declaration 4Subject: [PATCH 22/26] avoid missing LOCK_EX declaration
5 5
6This only happens on MUSL. Include sys/file.h to avoid compilation 6This only happens on MUSL. Include sys/file.h to avoid compilation
7error about missing LOCK_EX declaration. 7error about missing LOCK_EX declaration.
@@ -10,15 +10,28 @@ Upstream-Status: Inappropriate [musl specific]
10 10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12--- 12---
13 src/basic/fd-util.h | 1 +
13 src/core/exec-invoke.c | 1 + 14 src/core/exec-invoke.c | 1 +
14 src/shared/dev-setup.h | 1 + 15 src/shared/dev-setup.h | 1 +
15 2 files changed, 2 insertions(+) 16 3 files changed, 3 insertions(+)
16 17
18diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h
19index 93b254c680..5f0b1a816d 100644
20--- a/src/basic/fd-util.h
21+++ b/src/basic/fd-util.h
22@@ -6,6 +6,7 @@
23 #include <stdbool.h>
24 #include <stdio.h>
25 #include <sys/socket.h>
26+#include <sys/file.h>
27
28 #include "macro.h"
29 #include "missing_fcntl.h"
17diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c 30diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c
18index 70d963e269..7084811439 100644 31index 9d636f5529..6be43caa57 100644
19--- a/src/core/exec-invoke.c 32--- a/src/core/exec-invoke.c
20+++ b/src/core/exec-invoke.c 33+++ b/src/core/exec-invoke.c
21@@ -4,6 +4,7 @@ 34@@ -5,6 +5,7 @@
22 #include <sys/ioctl.h> 35 #include <sys/ioctl.h>
23 #include <sys/mount.h> 36 #include <sys/mount.h>
24 #include <sys/prctl.h> 37 #include <sys/prctl.h>
@@ -27,7 +40,7 @@ index 70d963e269..7084811439 100644
27 #if HAVE_PAM 40 #if HAVE_PAM
28 #include <security/pam_appl.h> 41 #include <security/pam_appl.h>
29diff --git a/src/shared/dev-setup.h b/src/shared/dev-setup.h 42diff --git a/src/shared/dev-setup.h b/src/shared/dev-setup.h
30index 5339bc4e5e..0697495f23 100644 43index 92ba6cf764..ba01a0ae55 100644
31--- a/src/shared/dev-setup.h 44--- a/src/shared/dev-setup.h
32+++ b/src/shared/dev-setup.h 45+++ b/src/shared/dev-setup.h
33@@ -2,6 +2,7 @@ 46@@ -2,6 +2,7 @@
@@ -36,7 +49,7 @@ index 5339bc4e5e..0697495f23 100644
36 #include <sys/types.h> 49 #include <sys/types.h>
37+#include <sys/file.h> 50+#include <sys/file.h>
38 51
39 int lock_dev_console(void); 52 int dev_setup(const char *prefix, uid_t uid, gid_t gid);
40 53
41-- 54--
422.34.1 552.34.1
diff --git a/meta/recipes-core/systemd/systemd/0023-include-signal.h-to-avoid-the-undeclared-error.patch b/meta/recipes-core/systemd/systemd/0023-include-signal.h-to-avoid-the-undeclared-error.patch
new file mode 100644
index 0000000000..c8bcd9e355
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0023-include-signal.h-to-avoid-the-undeclared-error.patch
@@ -0,0 +1,27 @@
1From e39afec7e5a2f3a9de7202affab4d0340ba879d7 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 2 Jul 2024 22:18:47 -0700
4Subject: [PATCH 23/26] include signal.h to avoid the 'undeclared' error
5
6Upstream-Status: Inappropriate [musl specific]
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 src/basic/pidref.h | 1 +
11 1 file changed, 1 insertion(+)
12
13diff --git a/src/basic/pidref.h b/src/basic/pidref.h
14index 42ddf4e50b..b9cf53680f 100644
15--- a/src/basic/pidref.h
16+++ b/src/basic/pidref.h
17@@ -3,6 +3,7 @@
18
19 typedef struct PidRef PidRef;
20
21+#include <signal.h>
22 #include "macro.h"
23 #include "process-util.h"
24
25--
262.34.1
27
diff --git a/meta/recipes-core/systemd/systemd/0024-undef-stdin-for-references-using-stdin-as-a-struct-m.patch b/meta/recipes-core/systemd/systemd/0024-undef-stdin-for-references-using-stdin-as-a-struct-m.patch
new file mode 100644
index 0000000000..9532e6b9af
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0024-undef-stdin-for-references-using-stdin-as-a-struct-m.patch
@@ -0,0 +1,48 @@
1From 5a4334fde21b896cd75b2d1a56e06a4f365e9c4d Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 2 Jul 2024 22:44:31 -0700
4Subject: [PATCH 24/26] undef stdin for references using stdin as a struct
5 member
6
7In musl stdio.h, we have:
8include/stdio.h:#define stdin (stdin)
9
10This causes error when a struct member is also named stdin. undef it.
11
12Upstream-Status: Inappropriate [musl specific]
13
14Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
15---
16 src/shared/edit-util.c | 2 ++
17 src/systemctl/systemctl-edit.c | 2 ++
18 2 files changed, 4 insertions(+)
19
20diff --git a/src/shared/edit-util.c b/src/shared/edit-util.c
21index e37609c2e1..1b212ae7b4 100644
22--- a/src/shared/edit-util.c
23+++ b/src/shared/edit-util.c
24@@ -3,6 +3,8 @@
25 #include <errno.h>
26 #include <stdio.h>
27
28+#undef stdin
29+
30 #include "alloc-util.h"
31 #include "copy.h"
32 #include "edit-util.h"
33diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c
34index c42a31153d..7695ceeead 100644
35--- a/src/systemctl/systemctl-edit.c
36+++ b/src/systemctl/systemctl-edit.c
37@@ -13,6 +13,8 @@
38 #include "systemctl.h"
39 #include "terminal-util.h"
40
41+#undef stdin
42+
43 int verb_cat(int argc, char *argv[], void *userdata) {
44 _cleanup_hashmap_free_ Hashmap *cached_id_map = NULL, *cached_name_map = NULL;
45 _cleanup_(lookup_paths_done) LookupPaths lp = {};
46--
472.34.1
48
diff --git a/meta/recipes-core/systemd/systemd/0025-adjust-header-inclusion-order-to-avoid-redeclaration.patch b/meta/recipes-core/systemd/systemd/0025-adjust-header-inclusion-order-to-avoid-redeclaration.patch
new file mode 100644
index 0000000000..d791ad2da1
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0025-adjust-header-inclusion-order-to-avoid-redeclaration.patch
@@ -0,0 +1,288 @@
1From a90044320eecda424ed678d283ef60806c70fcda Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 2 Jul 2024 23:23:57 -0700
4Subject: [PATCH 25/26] adjust header inclusion order to avoid redeclaration
5
6Upstream-Status: Inappropriate [musl specific]
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 src/basic/parse-util.c | 3 ++-
11 src/libsystemd-network/ndisc-option.c | 6 +++---
12 src/libsystemd-network/sd-radv.c | 5 +++--
13 src/network/netdev/l2tp-tunnel.c | 9 ++++-----
14 src/network/netdev/l2tp-tunnel.h | 6 +++---
15 src/network/netdev/wireguard.c | 2 +-
16 src/network/networkctl-link-info.c | 4 ++--
17 src/network/networkd-bridge-mdb.c | 3 ++-
18 src/network/networkd-route.c | 8 ++++----
19 src/resolve/resolved-dns-stream.c | 5 +++--
20 src/resolve/resolved-manager.c | 5 +++--
21 src/shared/conf-parser.c | 3 ++-
22 12 files changed, 32 insertions(+), 27 deletions(-)
23
24diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
25index faa5344921..0fc9d12c89 100644
26--- a/src/basic/parse-util.c
27+++ b/src/basic/parse-util.c
28@@ -2,7 +2,6 @@
29
30 #include <errno.h>
31 #include <inttypes.h>
32-#include <linux/ipv6.h>
33 #include <net/if.h>
34 #include <stdio.h>
35 #include <stdlib.h>
36@@ -20,6 +19,8 @@
37 #include "string-util.h"
38 #include "strv.h"
39
40+#include <linux/ipv6.h>
41+
42 int parse_boolean(const char *v) {
43 if (!v)
44 return -EINVAL;
45diff --git a/src/libsystemd-network/ndisc-option.c b/src/libsystemd-network/ndisc-option.c
46index 3aab51f51b..feeb4c78e5 100644
47--- a/src/libsystemd-network/ndisc-option.c
48+++ b/src/libsystemd-network/ndisc-option.c
49@@ -1,8 +1,5 @@
50 /* SPDX-License-Identifier: LGPL-2.1-or-later */
51
52-#include <linux/ipv6.h>
53-#include <netinet/icmp6.h>
54-
55 #include "dns-resolver-internal.h"
56 #include "dns-domain.h"
57 #include "ether-addr-util.h"
58@@ -16,6 +13,9 @@
59 #include "strv.h"
60 #include "unaligned.h"
61
62+#include <linux/ipv6.h>
63+#include <netinet/icmp6.h>
64+
65 /* RFC does not say anything about the maximum number of options, but let's limit the number of options for
66 * safety. Typically, the number of options in an ICMPv6 message should be only a few. */
67 #define MAX_OPTIONS 128
68diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c
69index f241929ad5..7cef3c3f71 100644
70--- a/src/libsystemd-network/sd-radv.c
71+++ b/src/libsystemd-network/sd-radv.c
72@@ -3,8 +3,6 @@
73 Copyright © 2017 Intel Corporation. All rights reserved.
74 ***/
75
76-#include <linux/ipv6.h>
77-#include <netinet/icmp6.h>
78 #include <netinet/in.h>
79 #include <arpa/inet.h>
80
81@@ -29,6 +27,9 @@
82 #include "strv.h"
83 #include "unaligned.h"
84
85+#include <linux/ipv6.h>
86+#include <netinet/icmp6.h>
87+
88 int sd_radv_new(sd_radv **ret) {
89 _cleanup_(sd_radv_unrefp) sd_radv *ra = NULL;
90
91diff --git a/src/network/netdev/l2tp-tunnel.c b/src/network/netdev/l2tp-tunnel.c
92index c87e44797b..437b40c114 100644
93--- a/src/network/netdev/l2tp-tunnel.c
94+++ b/src/network/netdev/l2tp-tunnel.c
95@@ -1,10 +1,5 @@
96 /* SPDX-License-Identifier: LGPL-2.1-or-later */
97
98-#include <netinet/in.h>
99-#include <linux/if_arp.h>
100-#include <linux/l2tp.h>
101-#include <linux/genetlink.h>
102-
103 #include "conf-parser.h"
104 #include "hashmap.h"
105 #include "l2tp-tunnel.h"
106@@ -17,6 +12,10 @@
107 #include "string-table.h"
108 #include "string-util.h"
109
110+#include <netinet/in.h>
111+#include <linux/l2tp.h>
112+#include <linux/genetlink.h>
113+
114 static const char* const l2tp_l2spec_type_table[_NETDEV_L2TP_L2SPECTYPE_MAX] = {
115 [NETDEV_L2TP_L2SPECTYPE_NONE] = "none",
116 [NETDEV_L2TP_L2SPECTYPE_DEFAULT] = "default",
117diff --git a/src/network/netdev/l2tp-tunnel.h b/src/network/netdev/l2tp-tunnel.h
118index c558ed49de..8419ef34c5 100644
119--- a/src/network/netdev/l2tp-tunnel.h
120+++ b/src/network/netdev/l2tp-tunnel.h
121@@ -1,13 +1,13 @@
122 /* SPDX-License-Identifier: LGPL-2.1-or-later */
123 #pragma once
124
125-#include <netinet/in.h>
126-#include <linux/l2tp.h>
127-
128 #include "in-addr-util.h"
129 #include "netdev.h"
130 #include "networkd-util.h"
131
132+#include <netinet/in.h>
133+#include <linux/l2tp.h>
134+
135 typedef enum L2tpL2specType {
136 NETDEV_L2TP_L2SPECTYPE_NONE = L2TP_L2SPECTYPE_NONE,
137 NETDEV_L2TP_L2SPECTYPE_DEFAULT = L2TP_L2SPECTYPE_DEFAULT,
138diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c
139index 5182783f45..79b21cb4ba 100644
140--- a/src/network/netdev/wireguard.c
141+++ b/src/network/netdev/wireguard.c
142@@ -5,9 +5,9 @@
143
144 /* Make sure the net/if.h header is included before any linux/ one */
145 #include <net/if.h>
146+#include <netinet/in.h>
147 //#include <linux/if_arp.h>
148 #include <linux/ipv6_route.h>
149-#include <netinet/in.h>
150 #include <sys/ioctl.h>
151
152 #include "sd-resolve.h"
153diff --git a/src/network/networkctl-link-info.c b/src/network/networkctl-link-info.c
154index f356d3c231..216c442de1 100644
155--- a/src/network/networkctl-link-info.c
156+++ b/src/network/networkctl-link-info.c
157@@ -1,7 +1,5 @@
158 /* SPDX-License-Identifier: LGPL-2.1-or-later */
159
160-#include <linux/if_tunnel.h>
161-
162 #include "bus-common-errors.h"
163 #include "bus-error.h"
164 #include "bus-util.h"
165@@ -16,6 +14,8 @@
166 #include "strxcpyx.h"
167 #include "wifi-util.h"
168
169+#include <linux/if_tunnel.h>
170+
171 /* use 128 kB for receive socket kernel queue, we shouldn't need more here */
172 #define RCVBUF_SIZE (128*1024)
173
174diff --git a/src/network/networkd-bridge-mdb.c b/src/network/networkd-bridge-mdb.c
175index 358ca4d294..fe87f7c093 100644
176--- a/src/network/networkd-bridge-mdb.c
177+++ b/src/network/networkd-bridge-mdb.c
178@@ -2,7 +2,6 @@
179
180 /* Make sure the net/if.h header is included before any linux/ one */
181 #include <net/if.h>
182-#include <linux/if_bridge.h>
183
184 #include "netlink-util.h"
185 #include "networkd-bridge-mdb.h"
186@@ -13,6 +12,8 @@
187 #include "string-util.h"
188 #include "vlan-util.h"
189
190+#include <linux/if_bridge.h>
191+
192 #define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
193
194 /* remove MDB entry. */
195diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
196index 0f3f79ec4f..325743bebf 100644
197--- a/src/network/networkd-route.c
198+++ b/src/network/networkd-route.c
199@@ -1,9 +1,5 @@
200 /* SPDX-License-Identifier: LGPL-2.1-or-later */
201
202-#include <linux/if.h>
203-#include <linux/ipv6_route.h>
204-#include <linux/nexthop.h>
205-
206 #include "alloc-util.h"
207 #include "event-util.h"
208 #include "netlink-util.h"
209@@ -21,6 +17,10 @@
210 #include "vrf.h"
211 #include "wireguard.h"
212
213+#include <linux/if.h>
214+#include <linux/ipv6_route.h>
215+#include <linux/nexthop.h>
216+
217 static Route* route_detach_impl(Route *route) {
218 assert(route);
219 assert(!!route->network + !!route->manager + !!route->wireguard <= 1);
220diff --git a/src/resolve/resolved-dns-stream.c b/src/resolve/resolved-dns-stream.c
221index e57af66221..f66d8f0606 100644
222--- a/src/resolve/resolved-dns-stream.c
223+++ b/src/resolve/resolved-dns-stream.c
224@@ -1,7 +1,5 @@
225 /* SPDX-License-Identifier: LGPL-2.1-or-later */
226
227-#include <linux/if_arp.h>
228-#include <netinet/tcp.h>
229 #include <unistd.h>
230
231 #include "alloc-util.h"
232@@ -12,6 +10,9 @@
233 #include "resolved-dns-stream.h"
234 #include "resolved-manager.h"
235
236+//#include <linux/if_arp.h>
237+#include <netinet/tcp.h>
238+
239 #define DNS_STREAMS_MAX 128
240
241 #define DNS_QUERIES_PER_STREAM 32
242diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c
243index dbaad81734..b988e75851 100644
244--- a/src/resolve/resolved-manager.c
245+++ b/src/resolve/resolved-manager.c
246@@ -1,8 +1,6 @@
247 /* SPDX-License-Identifier: LGPL-2.1-or-later */
248
249 #include <fcntl.h>
250-#include <linux/ipv6.h>
251-#include <netinet/in.h>
252 #include <poll.h>
253 #include <sys/ioctl.h>
254 #include <sys/stat.h>
255@@ -46,6 +44,9 @@
256 #include "utf8.h"
257 #include "varlink-util.h"
258
259+#include <linux/ipv6.h>
260+#include <netinet/in.h>
261+
262 #define SEND_TIMEOUT_USEC (200 * USEC_PER_MSEC)
263
264 static int manager_process_link(sd_netlink *rtnl, sd_netlink_message *mm, void *userdata) {
265diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
266index eaa8a5f11c..03379e7474 100644
267--- a/src/shared/conf-parser.c
268+++ b/src/shared/conf-parser.c
269@@ -2,7 +2,6 @@
270
271 #include <errno.h>
272 #include <limits.h>
273-#include <linux/ipv6.h>
274 #include <stdint.h>
275 #include <stdio.h>
276 #include <stdlib.h>
277@@ -47,6 +46,8 @@
278 #include "time-util.h"
279 #include "utf8.h"
280
281+#include <linux/ipv6.h>
282+
283 DEFINE_PRIVATE_HASH_OPS_WITH_VALUE_DESTRUCTOR(config_file_hash_ops_fclose,
284 char, path_hash_func, path_compare,
285 FILE, safe_fclose);
286--
2872.34.1
288
diff --git a/meta/recipes-core/systemd/systemd/0026-build-path.c-avoid-boot-time-segfault-for-musl.patch b/meta/recipes-core/systemd/systemd/0026-build-path.c-avoid-boot-time-segfault-for-musl.patch
new file mode 100644
index 0000000000..a7549ee151
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0026-build-path.c-avoid-boot-time-segfault-for-musl.patch
@@ -0,0 +1,31 @@
1From f2a7cf1d2a2bc2516a180809efd85c828cd9c7f4 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 3 Jul 2024 07:18:42 -0700
4Subject: [PATCH 26/26] build-path.c: avoid boot time segfault for musl
5
6This function, at runtime, should return -ENOEXEC. For musl, it
7somehow segfaults. I think it's related to getauxval, but it's
8really does not matter, just return -ENOEXEC.
9
10Upstream-Status: Inappropriate [musl specific]
11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13---
14 src/basic/build-path.c | 1 +
15 1 file changed, 1 insertion(+)
16
17diff --git a/src/basic/build-path.c b/src/basic/build-path.c
18index b5972658df..4ef551034e 100644
19--- a/src/basic/build-path.c
20+++ b/src/basic/build-path.c
21@@ -151,6 +151,7 @@ int get_build_exec_dir(char **ret) {
22 */
23
24 static int runpath_cached = -ERRNO_MAX-1;
25+ return -ENOEXEC;
26 if (runpath_cached == -ERRNO_MAX-1) {
27 const char *runpath = NULL;
28
29--
302.34.1
31
diff --git a/meta/recipes-core/systemd/systemd_255.4.bb b/meta/recipes-core/systemd/systemd_257.6.bb
index e7498c802d..5f7f20c434 100644
--- a/meta/recipes-core/systemd/systemd_255.4.bb
+++ b/meta/recipes-core/systemd/systemd_257.6.bb
@@ -4,11 +4,11 @@ PROVIDES = "udev"
4 4
5PE = "1" 5PE = "1"
6 6
7DEPENDS = "intltool-native gperf-native libcap util-linux python3-jinja2-native" 7DEPENDS = "gperf-native libcap util-linux python3-jinja2-native"
8 8
9SECTION = "base/shell" 9SECTION = "base/shell"
10 10
11inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check 11inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives systemd gettext bash-completion manpages features_check mime
12 12
13# unmerged-usr support is deprecated upstream, taints the system and will be 13# unmerged-usr support is deprecated upstream, taints the system and will be
14# removed in the near future. Fail the build if it is not enabled. 14# removed in the near future. Fail the build if it is not enabled.
@@ -26,20 +26,19 @@ SRC_URI += " \
26 file://init \ 26 file://init \
27 file://99-default.preset \ 27 file://99-default.preset \
28 file://systemd-pager.sh \ 28 file://systemd-pager.sh \
29 file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ 29 file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
30 file://0008-implment-systemd-sysv-install-for-OE.patch \ 30 file://0002-implment-systemd-sysv-install-for-OE.patch \
31 file://0001-Do-not-create-var-log-README.patch \
31 " 32 "
32 33
33# patches needed by musl 34# patches needed by musl
34SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}" 35SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
35SRC_URI_MUSL = "\ 36SRC_URI_MUSL = "\
36 file://0001-missing_type.h-add-comparison_fn_t.patch \ 37 file://0003-missing_type.h-add-comparison_fn_t.patch \
37 file://0002-add-fallback-parse_printf_format-implementation.patch \ 38 file://0004-add-fallback-parse_printf_format-implementation.patch \
38 file://0003-src-basic-missing.h-check-for-missing-strndupa.patch \ 39 file://0005-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
39 file://0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \ 40 file://0006-add-missing-FTW_-macros-for-musl.patch \
40 file://0005-add-missing-FTW_-macros-for-musl.patch \ 41 file://0007-Use-uintmax_t-for-handling-rlim_t.patch \
41 file://0006-Use-uintmax_t-for-handling-rlim_t.patch \
42 file://0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
43 file://0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ 42 file://0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
44 file://0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ 43 file://0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
45 file://0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ 44 file://0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
@@ -55,6 +54,10 @@ SRC_URI_MUSL = "\
55 file://0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch \ 54 file://0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
56 file://0021-shared-Do-not-use-malloc_info-on-musl.patch \ 55 file://0021-shared-Do-not-use-malloc_info-on-musl.patch \
57 file://0022-avoid-missing-LOCK_EX-declaration.patch \ 56 file://0022-avoid-missing-LOCK_EX-declaration.patch \
57 file://0023-include-signal.h-to-avoid-the-undeclared-error.patch \
58 file://0024-undef-stdin-for-references-using-stdin-as-a-struct-m.patch \
59 file://0025-adjust-header-inclusion-order-to-avoid-redeclaration.patch \
60 file://0026-build-path.c-avoid-boot-time-segfault-for-musl.patch \
58 " 61 "
59 62
60PAM_PLUGINS = " \ 63PAM_PLUGINS = " \
@@ -65,14 +68,13 @@ PAM_PLUGINS = " \
65" 68"
66 69
67PACKAGECONFIG ??= " \ 70PACKAGECONFIG ??= " \
68 ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam pni-names selinux smack usrmerge polkit seccomp', d)} \ 71 ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit apparmor efi ldconfig pam pni-names selinux smack polkit seccomp', d)} \
69 ${@bb.utils.contains('DISTRO_FEATURES', 'minidebuginfo', 'coredump elfutils', '', d)} \ 72 ${@bb.utils.contains('DISTRO_FEATURES', 'minidebuginfo', 'coredump elfutils', '', d)} \
70 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \ 73 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
71 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \ 74 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
72 ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ 75 ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit', 'link-udev-shared', d)} \
73 backlight \ 76 backlight \
74 binfmt \ 77 binfmt \
75 cgroupv2 \
76 gshadow \ 78 gshadow \
77 hibernate \ 79 hibernate \
78 hostnamed \ 80 hostnamed \
@@ -90,9 +92,9 @@ PACKAGECONFIG ??= " \
90 quotacheck \ 92 quotacheck \
91 randomseed \ 93 randomseed \
92 resolved \ 94 resolved \
95 serial-getty-generator \
93 set-time-epoch \ 96 set-time-epoch \
94 sysusers \ 97 sysusers \
95 sysvinit \
96 timedated \ 98 timedated \
97 timesyncd \ 99 timesyncd \
98 userdb \ 100 userdb \
@@ -128,68 +130,72 @@ TARGET_CC_ARCH:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 -D_LARGEFILE64_SOURCE"
128# systemd-serialgetty.bb - not enabled by default. 130# systemd-serialgetty.bb - not enabled by default.
129PACKAGECONFIG[serial-getty-generator] = "" 131PACKAGECONFIG[serial-getty-generator] = ""
130 132
131PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl" 133PACKAGECONFIG[acl] = "-Dacl=enabled,-Dacl=disabled,acl"
132PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit" 134PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit"
135PACKAGECONFIG[apparmor] = "-Dapparmor=enabled,-Dapparmor=disabled,apparmor"
133PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false" 136PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
134PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false" 137PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
135PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2" 138PACKAGECONFIG[bpf-framework] = "-Dbpf-framework=enabled,-Dbpf-framework=disabled,clang-native bpftool-native libbpf,libbpf"
136PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid" 139PACKAGECONFIG[bzip2] = "-Dbzip2=enabled,-Dbzip2=disabled,bzip2"
137PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false" 140PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
138PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup,,cryptsetup" 141PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=enabled,-Dlibcryptsetup=disabled,cryptsetup,,cryptsetup"
139PACKAGECONFIG[cryptsetup-plugins] = "-Dlibcryptsetup-plugins=true,-Dlibcryptsetup-plugins=false,cryptsetup,,cryptsetup" 142PACKAGECONFIG[cryptsetup-plugins] = "-Dlibcryptsetup-plugins=enabled,-Dlibcryptsetup-plugins=disabled,cryptsetup,,cryptsetup"
140PACKAGECONFIG[tpm2] = "-Dtpm2=true,-Dtpm2=false,tpm2-tss,tpm2-tss libtss2 libtss2-tcti-device" 143PACKAGECONFIG[tpm2] = "-Dtpm2=enabled,-Dtpm2=disabled,tpm2-tss,tpm2-tss libtss2 libtss2-tcti-device"
141# If multiple compression libraries are enabled, the format to use for compression is chosen implicitly, 144# If multiple compression libraries are enabled, the format to use for compression is chosen implicitly,
142# so if you want to compress with e.g. lz4 you cannot enable zstd, so you cannot read zstd-compressed journal files. 145# so if you want to compress with e.g. lz4 you cannot enable zstd, so you cannot read zstd-compressed journal files.
143# This option allows to enable all compression formats for reading, but choosing a specific one for writing. 146# This option allows to enable all compression formats for reading, but choosing a specific one for writing.
144PACKAGECONFIG[default-compression-lz4] = "-Dlz4=true -Ddefault-compression=lz4,,lz4" 147PACKAGECONFIG[default-compression-lz4] = "-Dlz4=true -Ddefault-compression=lz4,,lz4"
145PACKAGECONFIG[default-compression-xz] = "-Dxz=true -Ddefault-compression=xz,,xz" 148PACKAGECONFIG[default-compression-xz] = "-Dxz=true -Ddefault-compression=xz,,xz"
146PACKAGECONFIG[default-compression-zstd] = "-Dzstd=true -Ddefault-compression=zstd,,zstd" 149PACKAGECONFIG[default-compression-zstd] = "-Dzstd=true -Ddefault-compression=zstd,,zstd"
147PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus" 150PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
148PACKAGECONFIG[efi] = "-Defi=true -Dbootloader=true,-Defi=false -Dbootloader=false,python3-pyelftools-native" 151PACKAGECONFIG[efi] = "-Defi=true -Dbootloader=enabled,-Defi=false -Dbootloader=disabled,python3-pyelftools-native"
149PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils,,libelf libdw" 152PACKAGECONFIG[elfutils] = "-Delfutils=enabled,-Delfutils=disabled,elfutils,,libelf libdw"
153PACKAGECONFIG[fido] = "-Dlibfido2=enabled,-Dlibfido2=disabled,libfido2"
150PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false" 154PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
151PACKAGECONFIG[repart] = "-Drepart=true,-Drepart=false" 155PACKAGECONFIG[repart] = "-Drepart=enabled,-Drepart=disabled"
152PACKAGECONFIG[homed] = "-Dhomed=true,-Dhomed=false" 156PACKAGECONFIG[homed] = "-Dhomed=enabled,-Dhomed=disabled"
153# Sign the journal for anti-tampering 157# Sign the journal for anti-tampering
154PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt" 158PACKAGECONFIG[gcrypt] = "-Dgcrypt=enabled,-Dgcrypt=disabled,libgcrypt"
155PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" 159PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls"
156PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" 160PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
157PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false" 161PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
158PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false" 162PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
159PACKAGECONFIG[idn] = "-Didn=true,-Didn=false" 163PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
160PACKAGECONFIG[ima] = "-Dima=true,-Dima=false" 164PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
161# importd requires journal-upload/xz/zlib/bzip2/gcrypt 165# importd requires journal-upload/xz/zlib/bzip2/gcrypt
162PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false,glib-2.0" 166PACKAGECONFIG[importd] = "-Dimportd=enabled,-Dimportd=disabled,glib-2.0"
163# Update NAT firewall rules 167# Update NAT firewall rules
164PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables" 168PACKAGECONFIG[iptc] = "-Dlibiptc=enabled,-Dlibiptc=disabled,iptables"
165PACKAGECONFIG[journal-color] = ",,,less" 169PACKAGECONFIG[journal-color] = ",,,less"
166PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl" 170PACKAGECONFIG[journal-upload] = "-Dlibcurl=enabled,-Dlibcurl=disabled,curl"
167PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod" 171PACKAGECONFIG[kmod] = "-Dkmod=enabled,-Dkmod=disabled,kmod,libkmod"
168PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig" 172PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
169PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn,,libidn" 173PACKAGECONFIG[libidn] = "-Dlibidn=enabled,-Dlibidn=disabled,libidn,,libidn"
170PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2,,libidn2" 174PACKAGECONFIG[libidn2] = "-Dlibidn2=enabled,-Dlibidn2=disabled,libidn2,,libidn2"
171# Link udev shared with systemd helper library. 175# Link udev shared with systemd helper library.
172# If enabled the udev package depends on the systemd package (which has the needed shared library). 176# If enabled the udev package depends on the systemd package (which has the needed shared library).
173PACKAGECONFIG[link-udev-shared] = "-Dlink-udev-shared=true,-Dlink-udev-shared=false" 177PACKAGECONFIG[link-udev-shared] = "-Dlink-udev-shared=true,-Dlink-udev-shared=false"
174PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false" 178PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
175PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false" 179PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
176PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4" 180PACKAGECONFIG[lz4] = "-Dlz4=enabled,-Dlz4=disabled,lz4"
177PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false" 181PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
178PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" 182PACKAGECONFIG[manpages] = "-Dman=enabled,-Dman=disabled,python3-lxml-native libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
179PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" 183PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=enabled,-Dmicrohttpd=disabled,libmicrohttpd"
184PACKAGECONFIG[mountfsd] = "-Dmountfsd=true,-Dmountfsd=false"
180PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname" 185PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname"
186PACKAGECONFIG[nsresourced] = "-Dnsresourced=true,-Dnsresourced=false"
181PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" 187PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
182PACKAGECONFIG[no-dns-fallback] = "-Ddns-servers=" 188PACKAGECONFIG[no-dns-fallback] = "-Ddns-servers="
183PACKAGECONFIG[no-ntp-fallback] = "-Dntp-servers=" 189PACKAGECONFIG[no-ntp-fallback] = "-Dntp-servers="
184PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false,,libnss-systemd" 190PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false,,libnss-systemd"
185PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false" 191PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=enabled,-Dnss-mymachines=disabled"
186PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false" 192PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=enabled,-Dnss-resolve=disabled"
187PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false" 193PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false"
188PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl" 194PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
189PACKAGECONFIG[p11kit] = "-Dp11kit=true,-Dp11kit=false,p11-kit" 195PACKAGECONFIG[p11kit] = "-Dp11kit=enabled,-Dp11kit=disabled,p11-kit"
190PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}" 196PACKAGECONFIG[pam] = "-Dpam=enabled,-Dpam=disabled,libpam,${PAM_PLUGINS}"
191PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2" 197PACKAGECONFIG[pcre2] = "-Dpcre2=enabled,-Dpcre2=disabled,libpcre2"
192PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false" 198PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled"
193# If polkit is disabled and networkd+hostnamed are in use, enabling this option and 199# If polkit is disabled and networkd+hostnamed are in use, enabling this option and
194# using dbus-broker will allow networkd to be authorized to change the 200# using dbus-broker will allow networkd to be authorized to change the
195# hostname without acquiring additional privileges 201# hostname without acquiring additional privileges
@@ -197,13 +203,13 @@ PACKAGECONFIG[polkit_hostnamed_fallback] = ",,,,dbus-broker,polkit"
197PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false" 203PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false"
198PACKAGECONFIG[pstore] = "-Dpstore=true,-Dpstore=false" 204PACKAGECONFIG[pstore] = "-Dpstore=true,-Dpstore=false"
199PACKAGECONFIG[pni-names] = ",,," 205PACKAGECONFIG[pni-names] = ",,,"
200PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode,,qrencode" 206PACKAGECONFIG[qrencode] = "-Dqrencode=enabled,-Dqrencode=disabled,qrencode,,qrencode"
201PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false" 207PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
202PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false" 208PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
203PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false" 209PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
204PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false" 210PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
205PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp" 211PACKAGECONFIG[seccomp] = "-Dseccomp=enabled,-Dseccomp=disabled,libseccomp"
206PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell" 212PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,initscripts-sushell"
207PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false" 213PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
208PACKAGECONFIG[sysext] = "-Dsysext=true, -Dsysext=false" 214PACKAGECONFIG[sysext] = "-Dsysext=true, -Dsysext=false"
209PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false" 215PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
@@ -216,7 +222,6 @@ def build_epoch(d):
216PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0" 222PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0"
217PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false" 223PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
218PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false" 224PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
219PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
220PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true" 225PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true"
221PACKAGECONFIG[userdb] = "-Duserdb=true,-Duserdb=false" 226PACKAGECONFIG[userdb] = "-Duserdb=true,-Duserdb=false"
222PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" 227PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
@@ -225,30 +230,26 @@ PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setu
225PACKAGECONFIG[wheel-group] = "-Dwheel-group=true, -Dwheel-group=false" 230PACKAGECONFIG[wheel-group] = "-Dwheel-group=true, -Dwheel-group=false"
226PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false" 231PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false"
227# Verify keymaps on locale change 232# Verify keymaps on locale change
228PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" 233PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=enabled,-Dxkbcommon=disabled,libxkbcommon"
229PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" 234PACKAGECONFIG[xz] = "-Dxz=enabled,-Dxz=disabled,xz"
230PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib" 235PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib"
231PACKAGECONFIG[zstd] = "-Dzstd=true,-Dzstd=false,zstd" 236PACKAGECONFIG[zstd] = "-Dzstd=enabled,-Dzstd=disabled,zstd"
232 237
233RESOLV_CONF ??= "" 238RESOLV_CONF ??= ""
234 239
235# Helper variables to clarify locations. This mirrors the logic in systemd's 240# bpf-framework: pass the recipe-sysroot to the compiler used to build
236# build system. 241# the eBPFs, so that it can find needed system includes in there.
237rootprefix ?= "${root_prefix}" 242CFLAGS:append = " --sysroot=${STAGING_DIR_TARGET}"
238rootlibdir ?= "${base_libdir}" 243LDFLAGS:append:aarch64 = " ${@bb.utils.contains('PACKAGECONFIG', 'openssl', '-Wl,-z,gcs-report-dynamic=none', '', d)}"
239rootlibexecdir = "${rootprefix}/lib"
240 244
241EXTRA_OEMESON += "-Dnobody-user=nobody \ 245EXTRA_OEMESON += "-Dnobody-user=nobody \
242 -Dnobody-group=nogroup \ 246 -Dnobody-group=nogroup \
243 -Drootlibdir=${rootlibdir} \
244 -Drootprefix=${rootprefix} \
245 -Ddefault-locale=C \ 247 -Ddefault-locale=C \
246 -Dmode=release \ 248 -Dmode=release \
247 -Dsystem-alloc-uid-min=101 \ 249 -Dsystem-alloc-uid-min=101 \
248 -Dsystem-uid-max=999 \ 250 -Dsystem-uid-max=999 \
249 -Dsystem-alloc-gid-min=101 \ 251 -Dsystem-alloc-gid-min=101 \
250 -Dsystem-gid-max=999 \ 252 -Dsystem-gid-max=999 \
251 -Dcreate-log-dirs=false \
252 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', '-Ddefault-mdns=no -Ddefault-llmnr=no', '', d)} \ 253 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', '-Ddefault-mdns=no -Ddefault-llmnr=no', '', d)} \
253 " 254 "
254 255
@@ -269,45 +270,56 @@ EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
269# The 60 seconds is watchdog's default vaule. 270# The 60 seconds is watchdog's default vaule.
270WATCHDOG_TIMEOUT ??= "60" 271WATCHDOG_TIMEOUT ??= "60"
271 272
273# To make use of the hardware watchdog it is sufficient to set WATCHDOG_RUNTIME_SEC
274# (RuntimeWatchdogSec= option in /etc/systemd/system.conf) to a value like 20s
275# and the watchdog is enabled. (defaults is no hardware watchdog use)
276WATCHDOG_RUNTIME_SEC ??= ""
277
272do_install() { 278do_install() {
273 meson_do_install 279 meson_do_install
274 # Change the root user's home directory in /lib/sysusers.d/basic.conf. 280
275 # This is done merely for backward compatibility with previous systemd recipes. 281 if ${@bb.utils.contains('PACKAGECONFIG', 'sysusers', 'true', 'false', d)}; then
276 # systemd hardcodes root user's HOME to be "/root". Changing to use other values 282 # Change the root user's home directory in /lib/sysusers.d/basic.conf.
277 # may have unexpected runtime behaviors. 283 # This is done merely for backward compatibility with previous systemd recipes.
278 if [ "${ROOT_HOME}" != "/root" ]; then 284 # systemd hardcodes root user's HOME to be "/root". Changing to use other values
279 bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd" 285 # may have unexpected runtime behaviors.
280 sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf 286 if [ "${ROOT_HOME}" != "/root" ]; then
287 bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd"
288 sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf
289 fi
281 fi 290 fi
282 install -d ${D}/${base_sbindir} 291 install -d ${D}/${base_sbindir}
283 if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then 292
284 # Provided by a separate recipe 293 if ! ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'true', 'false', d)}; then
285 rm ${D}${systemd_system_unitdir}/serial-getty* -f 294 # Remove the serial-getty generator and instead use explicit services
295 # created by the systemd-serialgetty recipe
296 find ${D} -name \*getty-generator\* -delete
286 fi 297 fi
287 298
288 # Provide support for initramfs 299 # Provide support for initramfs
289 [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init 300 [ ! -e ${D}/init ] && ln -s ${nonarch_libdir}/systemd/systemd ${D}/init
290 [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd 301 [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${nonarch_libdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
291 302
292 install -d ${D}${sysconfdir}/udev/rules.d/ 303 install -d ${D}${sysconfdir}/udev/rules.d/
293 install -d ${D}${nonarch_libdir}/tmpfiles.d 304 install -d ${D}${nonarch_libdir}/tmpfiles.d
294 for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do 305 for rule in $(find ${UNPACKDIR} -maxdepth 1 -type f -name "*.rules"); do
295 install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/ 306 install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/
296 done 307 done
297 308
298 install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${nonarch_libdir}/tmpfiles.d/ 309 install -m 0644 ${UNPACKDIR}/00-create-volatile.conf ${D}${nonarch_libdir}/tmpfiles.d/
299 310
300 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then 311 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
301 install -d ${D}${sysconfdir}/init.d 312 install -d ${D}${sysconfdir}/init.d
302 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd 313 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
303 sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd 314 sed -i s%@UDEVD@%${nonarch_libdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
304 install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install 315 install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
305 fi 316 fi
306 317
307 if "${@'true' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else 'false'}"; then 318 if ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-log.txt', 'true', 'false', d)}; then
308 # /var/log is typically a symbolic link to inside /var/volatile, 319 # base-files recipe provides /var/log which is a symlink to /var/volatile/log
309 # which is expected to be empty.
310 rm -rf ${D}${localstatedir}/log 320 rm -rf ${D}${localstatedir}/log
321 printf 'L\t\t%s/log\t\t-\t-\t-\t-\t%s/volatile/log\n' "${localstatedir}" \
322 "${localstatedir}" >>${D}${nonarch_libdir}/tmpfiles.d/00-create-volatile.conf
311 elif [ -e ${D}${localstatedir}/log/journal ]; then 323 elif [ -e ${D}${localstatedir}/log/journal ]; then
312 chown root:systemd-journal ${D}${localstatedir}/log/journal 324 chown root:systemd-journal ${D}${localstatedir}/log/journal
313 325
@@ -317,9 +329,9 @@ do_install() {
317 329
318 # if the user requests /tmp be on persistent storage (i.e. not volatile) 330 # if the user requests /tmp be on persistent storage (i.e. not volatile)
319 # then don't use a tmpfs for /tmp 331 # then don't use a tmpfs for /tmp
320 if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then 332 if ! ${@bb.utils.contains('FILESYSTEM_PERMS_TABLES', 'files/fs-perms-volatile-tmp.txt', 'true', 'false', d)}; then
321 rm -f ${D}${rootlibdir}/systemd/system/tmp.mount 333 rm -f ${D}${nonarch_libdir}/systemd/system/tmp.mount
322 rm -f ${D}${rootlibdir}/systemd/system/local-fs.target.wants/tmp.mount 334 rm -f ${D}${nonarch_libdir}/systemd/system/local-fs.target.wants/tmp.mount
323 fi 335 fi
324 336
325 install -d ${D}${systemd_system_unitdir}/graphical.target.wants 337 install -d ${D}${systemd_system_unitdir}/graphical.target.wants
@@ -329,7 +341,7 @@ do_install() {
329 install -d ${D}${systemd_system_unitdir}/rescue.target.wants 341 install -d ${D}${systemd_system_unitdir}/rescue.target.wants
330 342
331 # Create symlinks for systemd-update-utmp-runlevel.service 343 # Create symlinks for systemd-update-utmp-runlevel.service
332 if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then 344 if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)} && ${@bb.utils.contains('PACKAGECONFIG', 'sysvinit', 'true', 'false', d)}; then
333 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service 345 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
334 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service 346 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
335 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/poweroff.target.wants/systemd-update-utmp-runlevel.service 347 ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_system_unitdir}/poweroff.target.wants/systemd-update-utmp-runlevel.service
@@ -350,7 +362,7 @@ do_install() {
350 ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd 362 ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
351 else 363 else
352 resolv_conf="${@bb.utils.contains('RESOLV_CONF', 'stub-resolv', 'run/systemd/resolve/stub-resolv.conf', 'run/systemd/resolve/resolv.conf', d)}" 364 resolv_conf="${@bb.utils.contains('RESOLV_CONF', 'stub-resolv', 'run/systemd/resolve/stub-resolv.conf', 'run/systemd/resolve/resolv.conf', d)}"
353 sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../${resolv_conf}%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf 365 sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../${resolv_conf}%g" ${D}${exec_prefix}/lib/tmpfiles.d/systemd-resolve.conf
354 ln -s ../${resolv_conf} ${D}${sysconfdir}/resolv-conf.systemd 366 ln -s ../${resolv_conf} ${D}${sysconfdir}/resolv-conf.systemd
355 fi 367 fi
356 if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then 368 if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
@@ -358,21 +370,13 @@ do_install() {
358 rm -r ${D}${sysconfdir}/X11 370 rm -r ${D}${sysconfdir}/X11
359 fi 371 fi
360 372
361 # If polkit is setup fixup permissions and ownership
362 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
363 if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
364 chmod 700 ${D}${datadir}/polkit-1/rules.d
365 chown polkitd:root ${D}${datadir}/polkit-1/rules.d
366 fi
367 fi
368
369 # If polkit is not available and a fallback was requested, install a drop-in that allows networkd to 373 # If polkit is not available and a fallback was requested, install a drop-in that allows networkd to
370 # request hostname changes via DBUS without elevating its privileges 374 # request hostname changes via DBUS without elevating its privileges
371 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then 375 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then
372 install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/ 376 install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
373 install -m 0644 ${WORKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/ 377 install -m 0644 ${UNPACKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
374 install -d ${D}${datadir}/dbus-1/system.d/ 378 install -d ${D}${datadir}/dbus-1/system.d/
375 install -m 0644 ${WORKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/ 379 install -m 0644 ${UNPACKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/
376 fi 380 fi
377 381
378 # create link for existing udev rules 382 # create link for existing udev rules
@@ -380,28 +384,36 @@ do_install() {
380 384
381 # install default policy for presets 385 # install default policy for presets
382 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto 386 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
383 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset 387 install -Dm 0644 ${UNPACKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
384 388
385 # add a profile fragment to disable systemd pager with busybox less 389 # add a profile fragment to disable systemd pager with busybox less
386 install -Dm 0644 ${WORKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh 390 install -Dm 0644 ${UNPACKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh
387 391
388 if [ -n "${WATCHDOG_TIMEOUT}" ]; then 392 if [ -n "${WATCHDOG_TIMEOUT}" ]; then
389 sed -i -e 's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \ 393 sed -i -e 's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \
390 ${D}/${sysconfdir}/systemd/system.conf 394 ${D}/${sysconfdir}/systemd/system.conf
391 fi 395 fi
396
397 if [ -n "${WATCHDOG_RUNTIME_SEC}" ]; then
398 sed -i -e 's/#RuntimeWatchdogSec=off/RuntimeWatchdogSec=${WATCHDOG_RUNTIME_SEC}/' \
399 ${D}/${sysconfdir}/systemd/system.conf
400 fi
392 401
393 if ${@bb.utils.contains('PACKAGECONFIG', 'pni-names', 'true', 'false', d)}; then 402 if ${@bb.utils.contains('PACKAGECONFIG', 'pni-names', 'true', 'false', d)}; then
394 if ! grep -q '^NamePolicy=.*mac' ${D}${rootlibexecdir}/systemd/network/99-default.link; then 403 if ! grep -q '^NamePolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then
395 sed -i '/^NamePolicy=/s/$/ mac/' ${D}${rootlibexecdir}/systemd/network/99-default.link 404 sed -i '/^NamePolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link
396 fi 405 fi
397 if ! grep -q 'AlternativeNamesPolicy=.*mac' ${D}${rootlibexecdir}/systemd/network/99-default.link; then 406 if ! grep -q 'AlternativeNamesPolicy=.*mac' ${D}${nonarch_libdir}/systemd/network/99-default.link; then
398 sed -i '/AlternativeNamesPolicy=/s/$/ mac/' ${D}${rootlibexecdir}/systemd/network/99-default.link 407 sed -i '/AlternativeNamesPolicy=/s/$/ mac/' ${D}${nonarch_libdir}/systemd/network/99-default.link
399 fi 408 fi
409 else
410 # Actively disable Predictable Network Interface Names
411 sed -i 's/^NamePolicy=.*/NamePolicy=/;s/^AlternativeNamesPolicy=.*/AlternativeNamesPolicy=/' ${D}${nonarch_libdir}/systemd/network/99-default.link
400 fi 412 fi
401} 413}
402 414
403python populate_packages:prepend (){ 415python populate_packages:prepend (){
404 systemdlibdir = d.getVar("rootlibdir") 416 systemdlibdir = d.getVar("libdir")
405 do_split_packages(d, systemdlibdir, r'^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True) 417 do_split_packages(d, systemdlibdir, r'^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
406} 418}
407PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*" 419PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
@@ -418,6 +430,8 @@ PACKAGE_BEFORE_PN = "\
418 ${PN}-journal-upload \ 430 ${PN}-journal-upload \
419 ${PN}-journal-remote \ 431 ${PN}-journal-remote \
420 ${PN}-kernel-install \ 432 ${PN}-kernel-install \
433 ${PN}-mime \
434 ${PN}-networkd \
421 ${PN}-rpm-macros \ 435 ${PN}-rpm-macros \
422 ${PN}-udev-rules \ 436 ${PN}-udev-rules \
423 ${PN}-vconsole-setup \ 437 ${PN}-vconsole-setup \
@@ -446,6 +460,7 @@ SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfm
446 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ 460 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
447 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ 461 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
448 ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ 462 ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
463 ${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)} \
449" 464"
450SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service" 465SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service"
451 466
@@ -454,13 +469,14 @@ USERADD_PACKAGES = "${PN} \
454 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ 469 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
455 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ 470 ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
456 ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ 471 ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
472 ${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)} \
457" 473"
458GROUPADD_PARAM:${PN} = "-r systemd-journal;" 474GROUPADD_PARAM:${PN} = "-r systemd-journal;"
459GROUPADD_PARAM:udev = "-r render" 475GROUPADD_PARAM:udev = "-r render"
460GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}" 476GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}"
461USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}" 477USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}"
462USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /sbin/nologin systemd-network;', '', d)}" 478USERADD_PARAM:${PN}-networkd = "--system -d / -M --shell /sbin/nologin systemd-network"
463USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" 479USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${datadir}/polkit-1 polkitd;', '', d)}"
464USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}" 480USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}"
465USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}" 481USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}"
466USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'oomd', '--system -d / -M --shell /sbin/nologin systemd-oom;', '', d)}" 482USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'oomd', '--system -d / -M --shell /sbin/nologin systemd-oom;', '', d)}"
@@ -480,7 +496,7 @@ RDEPENDS:${PN}-initramfs = "${PN}"
480 496
481FILES:${PN}-gui = "${bindir}/systemadm" 497FILES:${PN}-gui = "${bindir}/systemadm"
482 498
483FILES:${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ 499FILES:${PN}-vconsole-setup = "${nonarch_libdir}/systemd/systemd-vconsole-setup \
484 ${systemd_system_unitdir}/systemd-vconsole-setup.service \ 500 ${systemd_system_unitdir}/systemd-vconsole-setup.service \
485 ${systemd_system_unitdir}/sysinit.target.wants/systemd-vconsole-setup.service" 501 ${systemd_system_unitdir}/sysinit.target.wants/systemd-vconsole-setup.service"
486 502
@@ -496,15 +512,14 @@ FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
496 512
497FILES:${PN}-binfmt = "${sysconfdir}/binfmt.d/ \ 513FILES:${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
498 ${exec_prefix}/lib/binfmt.d \ 514 ${exec_prefix}/lib/binfmt.d \
499 ${rootlibexecdir}/systemd/systemd-binfmt \ 515 ${nonarch_libdir}/systemd/systemd-binfmt \
500 ${systemd_system_unitdir}/proc-sys-fs-binfmt_misc.* \ 516 ${systemd_system_unitdir}/proc-sys-fs-binfmt_misc.* \
501 ${systemd_system_unitdir}/systemd-binfmt.service" 517 ${systemd_system_unitdir}/systemd-binfmt.service"
502RRECOMMENDS:${PN}-binfmt = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', 'kernel-module-binfmt-misc', '', d)}" 518RRECOMMENDS:${PN}-binfmt = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', 'kernel-module-binfmt-misc', '', d)}"
503 519
504RDEPENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}" 520RDEPENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}"
505 521
506 522FILES:${PN}-journal-gatewayd = "${nonarch_libdir}/systemd/systemd-journal-gatewayd \
507FILES:${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \
508 ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ 523 ${systemd_system_unitdir}/systemd-journal-gatewayd.service \
509 ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ 524 ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \
510 ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \ 525 ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \
@@ -512,20 +527,20 @@ FILES:${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewa
512 " 527 "
513SYSTEMD_SERVICE:${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket" 528SYSTEMD_SERVICE:${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket"
514 529
515FILES:${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \ 530FILES:${PN}-journal-upload = "${nonarch_libdir}/systemd/systemd-journal-upload \
516 ${systemd_system_unitdir}/systemd-journal-upload.service \ 531 ${systemd_system_unitdir}/systemd-journal-upload.service \
517 ${sysconfdir}/systemd/journal-upload.conf \ 532 ${sysconfdir}/systemd/journal-upload.conf \
518 " 533 "
519SYSTEMD_SERVICE:${PN}-journal-upload = "systemd-journal-upload.service" 534SYSTEMD_SERVICE:${PN}-journal-upload = "systemd-journal-upload.service"
520 535
521FILES:${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \ 536FILES:${PN}-journal-remote = "${nonarch_libdir}/systemd/systemd-journal-remote \
537 ${nonarch_libdir}/sysusers.d/systemd-remote.conf \
522 ${sysconfdir}/systemd/journal-remote.conf \ 538 ${sysconfdir}/systemd/journal-remote.conf \
523 ${systemd_system_unitdir}/systemd-journal-remote.service \ 539 ${systemd_system_unitdir}/systemd-journal-remote.service \
524 ${systemd_system_unitdir}/systemd-journal-remote.socket \ 540 ${systemd_system_unitdir}/systemd-journal-remote.socket \
525 " 541 "
526SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket" 542SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket"
527 543
528
529FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \ 544FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
530 ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ 545 ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
531 ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \ 546 ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \
@@ -545,10 +560,10 @@ FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.c
545 ${systemd_system_unitdir}/systemd-machined.service \ 560 ${systemd_system_unitdir}/systemd-machined.service \
546 ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \ 561 ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \
547 ${systemd_system_unitdir}/var-lib-machines.mount \ 562 ${systemd_system_unitdir}/var-lib-machines.mount \
548 ${rootlibexecdir}/systemd/systemd-import \ 563 ${nonarch_libdir}/systemd/systemd-import \
549 ${rootlibexecdir}/systemd/systemd-importd \ 564 ${nonarch_libdir}/systemd/systemd-importd \
550 ${rootlibexecdir}/systemd/systemd-machined \ 565 ${nonarch_libdir}/systemd/systemd-machined \
551 ${rootlibexecdir}/systemd/systemd-pull \ 566 ${nonarch_libdir}/systemd/systemd-pull \
552 ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \ 567 ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
553 ${exec_prefix}/lib/tmpfiles.d/README \ 568 ${exec_prefix}/lib/tmpfiles.d/README \
554 ${systemd_system_unitdir}/systemd-nspawn@.service \ 569 ${systemd_system_unitdir}/systemd-nspawn@.service \
@@ -586,28 +601,18 @@ FILES:${PN}-extra-utils = "\
586 ${bindir}/systemd-cgls \ 601 ${bindir}/systemd-cgls \
587 ${bindir}/systemd-cgtop \ 602 ${bindir}/systemd-cgtop \
588 ${bindir}/systemd-stdio-bridge \ 603 ${bindir}/systemd-stdio-bridge \
589 ${base_bindir}/systemd-ask-password \
590 ${base_bindir}/systemd-tty-ask-password-agent \
591 ${base_sbindir}/mount.ddi \ 604 ${base_sbindir}/mount.ddi \
592 ${systemd_system_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.path \ 605 ${systemd_system_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.path \
593 ${systemd_system_unitdir}/systemd-ask-password-console.path \
594 ${systemd_system_unitdir}/systemd-ask-password-console.service \
595 ${systemd_system_unitdir}/systemd-ask-password-wall.path \
596 ${systemd_system_unitdir}/systemd-ask-password-wall.service \
597 ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-console.path \
598 ${systemd_system_unitdir}/sysinit.target.wants/systemd-ask-password-wall.path \
599 ${systemd_system_unitdir}/sysinit.target.wants/systemd-pcrphase.path \ 606 ${systemd_system_unitdir}/sysinit.target.wants/systemd-pcrphase.path \
600 ${systemd_system_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.path \ 607 ${systemd_system_unitdir}/sysinit.target.wants/systemd-pcrphase-sysinit.path \
601 ${systemd_system_unitdir}/multi-user.target.wants/systemd-ask-password-wall.path \ 608 ${nonarch_libdir}/systemd/systemd-resolve-host \
602 ${rootlibexecdir}/systemd/systemd-resolve-host \ 609 ${nonarch_libdir}/systemd/systemd-ac-power \
603 ${rootlibexecdir}/systemd/systemd-ac-power \ 610 ${nonarch_libdir}/systemd/systemd-activate \
604 ${rootlibexecdir}/systemd/systemd-activate \ 611 ${nonarch_libdir}/systemd/systemd-measure \
605 ${rootlibexecdir}/systemd/systemd-measure \ 612 ${nonarch_libdir}/systemd/systemd-pcrphase \
606 ${rootlibexecdir}/systemd/systemd-pcrphase \ 613 ${nonarch_libdir}/systemd/systemd-socket-proxyd \
607 ${rootlibexecdir}/systemd/systemd-socket-proxyd \ 614 ${nonarch_libdir}/systemd/systemd-sleep \
608 ${rootlibexecdir}/systemd/systemd-reply-password \ 615 ${nonarch_libdir}/systemd/system-sleep \
609 ${rootlibexecdir}/systemd/systemd-sleep \
610 ${rootlibexecdir}/systemd/system-sleep \
611 ${systemd_system_unitdir}/systemd-hibernate.service \ 616 ${systemd_system_unitdir}/systemd-hibernate.service \
612 ${systemd_system_unitdir}/systemd-hybrid-sleep.service \ 617 ${systemd_system_unitdir}/systemd-hybrid-sleep.service \
613 ${systemd_system_unitdir}/systemd-pcrphase-initrd.service \ 618 ${systemd_system_unitdir}/systemd-pcrphase-initrd.service \
@@ -615,25 +620,48 @@ FILES:${PN}-extra-utils = "\
615 ${systemd_system_unitdir}/systemd-pcrphase-sysinit.service \ 620 ${systemd_system_unitdir}/systemd-pcrphase-sysinit.service \
616 ${systemd_system_unitdir}/systemd-suspend.service \ 621 ${systemd_system_unitdir}/systemd-suspend.service \
617 ${systemd_system_unitdir}/sleep.target \ 622 ${systemd_system_unitdir}/sleep.target \
618 ${rootlibexecdir}/systemd/systemd-initctl \ 623 ${nonarch_libdir}/systemd/systemd-initctl \
619 ${systemd_system_unitdir}/systemd-initctl.service \ 624 ${systemd_system_unitdir}/systemd-initctl.service \
620 ${systemd_system_unitdir}/systemd-initctl.socket \ 625 ${systemd_system_unitdir}/systemd-initctl.socket \
621 ${systemd_system_unitdir}/sockets.target.wants/systemd-initctl.socket \ 626 ${systemd_system_unitdir}/sockets.target.wants/systemd-initctl.socket \
622 ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \ 627 ${nonarch_libdir}/systemd/system-generators/systemd-gpt-auto-generator \
623 ${rootlibexecdir}/systemd/systemd-cgroups-agent \ 628 ${nonarch_libdir}/systemd/systemd-cgroups-agent \
629"
630
631FILES:${PN}-mime = "${MIMEDIR}"
632RRECOMMENDS:${PN} += "${PN}-mime"
633
634FILES:${PN}-networkd = "\
635 ${bindir}/networkctl \
636 ${datadir}/dbus-1/system-services/org.freedesktop.network1.service \
637 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
638 ${datadir}/polkit-1/actions/org.freedesktop.network1.policy \
639 ${nonarch_libdir}/sysusers.d/systemd-network.conf \
640 ${nonarch_libdir}/tmpfiles.d/systemd-network.conf \
641 ${sysconfdir}/systemd/networkd.conf \
642 ${systemd_system_unitdir}/systemd-networkd* \
643 ${systemd_unitdir}/network/*.network \
644 ${systemd_unitdir}/network/*.network.example \
645 ${systemd_unitdir}/networkd.conf \
646 ${systemd_unitdir}/systemd-networkd* \
624" 647"
648# systemd-networkd-persistent-storage.service BindsTo=systemd-networkd.service
649# systemd-networkd.service has Also=systemd-networkd-wait-online.service
650SYSTEMD_SERVICE:${PN}-networkd = "systemd-networkd.service"
651CONFFILES:${PN}-networkd = "${sysconfdir}/systemd/networkd.conf"
652RDEPENDS:${PN}-networkd += "${PN}"
653RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)}"
625 654
626FILES:${PN}-udev-rules = "\ 655FILES:${PN}-udev-rules = "\
627 ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \ 656 ${nonarch_libdir}/udev/rules.d/70-uaccess.rules \
628 ${rootlibexecdir}/udev/rules.d/71-seat.rules \ 657 ${nonarch_libdir}/udev/rules.d/71-seat.rules \
629 ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \ 658 ${nonarch_libdir}/udev/rules.d/73-seat-late.rules \
630 ${rootlibexecdir}/udev/rules.d/99-systemd.rules \ 659 ${nonarch_libdir}/udev/rules.d/99-systemd.rules \
631" 660"
632 661
633CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \ 662CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
634 ${sysconfdir}/systemd/journald.conf \ 663 ${sysconfdir}/systemd/journald.conf \
635 ${sysconfdir}/systemd/logind.conf \ 664 ${sysconfdir}/systemd/logind.conf \
636 ${sysconfdir}/systemd/networkd.conf \
637 ${sysconfdir}/systemd/pstore.conf \ 665 ${sysconfdir}/systemd/pstore.conf \
638 ${sysconfdir}/systemd/resolved.conf \ 666 ${sysconfdir}/systemd/resolved.conf \
639 ${sysconfdir}/systemd/sleep.conf \ 667 ${sysconfdir}/systemd/sleep.conf \
@@ -669,8 +697,10 @@ FILES:${PN} = " ${base_bindir}/* \
669 ${sysconfdir}/init.d/README \ 697 ${sysconfdir}/init.d/README \
670 ${sysconfdir}/resolv-conf.systemd \ 698 ${sysconfdir}/resolv-conf.systemd \
671 ${sysconfdir}/X11/xinit/xinitrc.d/* \ 699 ${sysconfdir}/X11/xinit/xinitrc.d/* \
672 ${rootlibexecdir}/systemd/* \ 700 ${sysconfdir}/ssh/ssh_config.d/20-systemd-ssh-proxy.conf \
673 ${rootlibdir}/systemd/libsystemd-core* \ 701 ${sysconfdir}/ssh/sshd_config.d/20-systemd-userdb.conf \
702 ${nonarch_libdir}/systemd/* \
703 ${libdir}/systemd/libsystemd-core* \
674 ${libdir}/pam.d \ 704 ${libdir}/pam.d \
675 ${nonarch_libdir}/pam.d \ 705 ${nonarch_libdir}/pam.d \
676 ${systemd_unitdir}/* \ 706 ${systemd_unitdir}/* \
@@ -695,11 +725,10 @@ FILES:${PN} = " ${base_bindir}/* \
695 ${exec_prefix}/lib/environment.d \ 725 ${exec_prefix}/lib/environment.d \
696 ${exec_prefix}/lib/pcrlock.d \ 726 ${exec_prefix}/lib/pcrlock.d \
697 ${localstatedir} \ 727 ${localstatedir} \
698 ${rootlibexecdir}/modprobe.d/systemd.conf \ 728 ${nonarch_libdir}/modprobe.d/systemd.conf \
699 ${rootlibexecdir}/modprobe.d/README \ 729 ${nonarch_libdir}/modprobe.d/README \
700 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ 730 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
701 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ 731 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
702 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
703 ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ 732 ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \
704 ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ 733 ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \
705 ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \ 734 ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \
@@ -713,11 +742,11 @@ FILES:${PN} = " ${base_bindir}/* \
713 742
714FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" 743FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
715 744
716RDEPENDS:${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck util-linux-swaponoff" 745RDEPENDS:${PN} += "kmod ${VIRTUAL-RUNTIME_dbus} util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck util-linux-swaponoff util-linux-mkswap"
717RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" 746RDEPENDS:${PN} += "systemd-serialgetty"
718RDEPENDS:${PN} += "volatile-binds" 747RDEPENDS:${PN} += "volatile-binds"
719 748
720RRECOMMENDS:${PN} += "systemd-extra-utils \ 749RRECOMMENDS:${PN} += "${PN}-extra-utils \
721 udev-hwdb \ 750 udev-hwdb \
722 e2fsprogs-e2fsck \ 751 e2fsprogs-e2fsck \
723 kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \ 752 kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \
@@ -731,7 +760,7 @@ INSANE_SKIP:${PN}-dbg += "libdir"
731INSANE_SKIP:${PN}-doc += " libdir" 760INSANE_SKIP:${PN}-doc += " libdir"
732INSANE_SKIP:libsystemd-shared += "libdir" 761INSANE_SKIP:libsystemd-shared += "libdir"
733 762
734FILES:libsystemd-shared = "${rootlibdir}/systemd/libsystemd-shared*.so" 763FILES:libsystemd-shared = "${libdir}/systemd/libsystemd-shared*.so"
735 764
736RPROVIDES:udev = "hotplug" 765RPROVIDES:udev = "hotplug"
737 766
@@ -739,58 +768,58 @@ RDEPENDS:udev-bash-completion += "bash-completion"
739RDEPENDS:udev-hwdb += "udev" 768RDEPENDS:udev-hwdb += "udev"
740 769
741FILES:udev += "${base_sbindir}/udevd \ 770FILES:udev += "${base_sbindir}/udevd \
742 ${rootlibexecdir}/systemd/network/99-default.link \ 771 ${nonarch_libdir}/systemd/network/99-default.link \
743 ${rootlibexecdir}/systemd/systemd-udevd \ 772 ${nonarch_libdir}/systemd/systemd-udevd \
744 ${rootlibexecdir}/udev/accelerometer \ 773 ${nonarch_libdir}/udev/accelerometer \
745 ${rootlibexecdir}/udev/ata_id \ 774 ${nonarch_libdir}/udev/ata_id \
746 ${rootlibexecdir}/udev/cdrom_id \ 775 ${nonarch_libdir}/udev/cdrom_id \
747 ${rootlibexecdir}/udev/collect \ 776 ${nonarch_libdir}/udev/collect \
748 ${rootlibexecdir}/udev/dmi_memory_id \ 777 ${nonarch_libdir}/udev/dmi_memory_id \
749 ${rootlibexecdir}/udev/fido_id \ 778 ${nonarch_libdir}/udev/fido_id \
750 ${rootlibexecdir}/udev/findkeyboards \ 779 ${nonarch_libdir}/udev/findkeyboards \
751 ${rootlibexecdir}/udev/iocost \ 780 ${nonarch_libdir}/udev/iocost \
752 ${rootlibexecdir}/udev/keyboard-force-release.sh \ 781 ${nonarch_libdir}/udev/keyboard-force-release.sh \
753 ${rootlibexecdir}/udev/keymap \ 782 ${nonarch_libdir}/udev/keymap \
754 ${rootlibexecdir}/udev/mtd_probe \ 783 ${nonarch_libdir}/udev/mtd_probe \
755 ${rootlibexecdir}/udev/scsi_id \ 784 ${nonarch_libdir}/udev/scsi_id \
756 ${rootlibexecdir}/udev/v4l_id \ 785 ${nonarch_libdir}/udev/v4l_id \
757 ${rootlibexecdir}/udev/keymaps \ 786 ${nonarch_libdir}/udev/keymaps \
758 ${rootlibexecdir}/udev/rules.d/50-udev-default.rules \ 787 ${nonarch_libdir}/udev/rules.d/50-udev-default.rules \
759 ${rootlibexecdir}/udev/rules.d/60-autosuspend.rules \ 788 ${nonarch_libdir}/udev/rules.d/60-autosuspend.rules \
760 ${rootlibexecdir}/udev/rules.d/60-autosuspend-chromiumos.rules \ 789 ${nonarch_libdir}/udev/rules.d/60-autosuspend-chromiumos.rules \
761 ${rootlibexecdir}/udev/rules.d/60-block.rules \ 790 ${nonarch_libdir}/udev/rules.d/60-block.rules \
762 ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \ 791 ${nonarch_libdir}/udev/rules.d/60-cdrom_id.rules \
763 ${rootlibexecdir}/udev/rules.d/60-dmi-id.rules \ 792 ${nonarch_libdir}/udev/rules.d/60-dmi-id.rules \
764 ${rootlibexecdir}/udev/rules.d/60-drm.rules \ 793 ${nonarch_libdir}/udev/rules.d/60-drm.rules \
765 ${rootlibexecdir}/udev/rules.d/60-evdev.rules \ 794 ${nonarch_libdir}/udev/rules.d/60-evdev.rules \
766 ${rootlibexecdir}/udev/rules.d/60-fido-id.rules \ 795 ${nonarch_libdir}/udev/rules.d/60-fido-id.rules \
767 ${rootlibexecdir}/udev/rules.d/60-infiniband.rules \ 796 ${nonarch_libdir}/udev/rules.d/60-infiniband.rules \
768 ${rootlibexecdir}/udev/rules.d/60-input-id.rules \ 797 ${nonarch_libdir}/udev/rules.d/60-input-id.rules \
769 ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ 798 ${nonarch_libdir}/udev/rules.d/60-persistent-alsa.rules \
770 ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ 799 ${nonarch_libdir}/udev/rules.d/60-persistent-input.rules \
771 ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ 800 ${nonarch_libdir}/udev/rules.d/60-persistent-storage.rules \
772 ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ 801 ${nonarch_libdir}/udev/rules.d/60-persistent-storage-mtd.rules \
773 ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ 802 ${nonarch_libdir}/udev/rules.d/60-persistent-storage-tape.rules \
774 ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ 803 ${nonarch_libdir}/udev/rules.d/60-persistent-v4l.rules \
775 ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ 804 ${nonarch_libdir}/udev/rules.d/60-sensor.rules \
776 ${rootlibexecdir}/udev/rules.d/60-serial.rules \ 805 ${nonarch_libdir}/udev/rules.d/60-serial.rules \
777 ${rootlibexecdir}/udev/rules.d/61-autosuspend-manual.rules \ 806 ${nonarch_libdir}/udev/rules.d/61-autosuspend-manual.rules \
778 ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \ 807 ${nonarch_libdir}/udev/rules.d/64-btrfs.rules \
779 ${rootlibexecdir}/udev/rules.d/70-camera.rules \ 808 ${nonarch_libdir}/udev/rules.d/70-camera.rules \
780 ${rootlibexecdir}/udev/rules.d/70-joystick.rules \ 809 ${nonarch_libdir}/udev/rules.d/70-joystick.rules \
781 ${rootlibexecdir}/udev/rules.d/70-memory.rules \ 810 ${nonarch_libdir}/udev/rules.d/70-memory.rules \
782 ${rootlibexecdir}/udev/rules.d/70-mouse.rules \ 811 ${nonarch_libdir}/udev/rules.d/70-mouse.rules \
783 ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \ 812 ${nonarch_libdir}/udev/rules.d/70-power-switch.rules \
784 ${rootlibexecdir}/udev/rules.d/70-touchpad.rules \ 813 ${nonarch_libdir}/udev/rules.d/70-touchpad.rules \
785 ${rootlibexecdir}/udev/rules.d/75-net-description.rules \ 814 ${nonarch_libdir}/udev/rules.d/75-net-description.rules \
786 ${rootlibexecdir}/udev/rules.d/75-probe_mtd.rules \ 815 ${nonarch_libdir}/udev/rules.d/75-probe_mtd.rules \
787 ${rootlibexecdir}/udev/rules.d/78-sound-card.rules \ 816 ${nonarch_libdir}/udev/rules.d/78-sound-card.rules \
788 ${rootlibexecdir}/udev/rules.d/80-drivers.rules \ 817 ${nonarch_libdir}/udev/rules.d/80-drivers.rules \
789 ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \ 818 ${nonarch_libdir}/udev/rules.d/80-net-setup-link.rules \
790 ${rootlibexecdir}/udev/rules.d/81-net-dhcp.rules \ 819 ${nonarch_libdir}/udev/rules.d/81-net-dhcp.rules \
791 ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \ 820 ${nonarch_libdir}/udev/rules.d/90-vconsole.rules \
792 ${rootlibexecdir}/udev/rules.d/90-iocost.rules \ 821 ${nonarch_libdir}/udev/rules.d/90-iocost.rules \
793 ${rootlibexecdir}/udev/rules.d/README \ 822 ${nonarch_libdir}/udev/rules.d/README \
794 ${sysconfdir}/udev \ 823 ${sysconfdir}/udev \
795 ${sysconfdir}/init.d/systemd-udevd \ 824 ${sysconfdir}/init.d/systemd-udevd \
796 ${systemd_system_unitdir}/*udev* \ 825 ${systemd_system_unitdir}/*udev* \
@@ -802,7 +831,7 @@ FILES:udev += "${base_sbindir}/udevd \
802 " 831 "
803 832
804FILES:udev-bash-completion = "${datadir}/bash-completion/completions/udevadm" 833FILES:udev-bash-completion = "${datadir}/bash-completion/completions/udevadm"
805FILES:udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \ 834FILES:udev-hwdb = "${nonarch_libdir}/udev/hwdb.d \
806 " 835 "
807 836
808RCONFLICTS:${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" 837RCONFLICTS:${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}"
@@ -831,7 +860,9 @@ python do_warn_musl() {
831} 860}
832addtask warn_musl before do_configure 861addtask warn_musl before do_configure
833 862
834ALTERNATIVE:${PN} = "halt reboot shutdown poweroff runlevel ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}" 863ALTERNATIVE:${PN} = "halt reboot shutdown poweroff \
864 ${@bb.utils.contains('PACKAGECONFIG', 'sysvinit', 'runlevel', '', d)} \
865 ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}"
835 866
836ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" 867ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
837ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" 868ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
@@ -857,6 +888,12 @@ ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
857ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" 888ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
858ALTERNATIVE_PRIORITY[runlevel] ?= "300" 889ALTERNATIVE_PRIORITY[runlevel] ?= "300"
859 890
891pkg_postinst:${PN}:append () {
892 if ${@bb.utils.contains('PACKAGECONFIG', 'set-time-epoch', 'true', 'false', d)}; then
893 touch $D${nonarch_libdir}/clock-epoch
894 fi
895}
896
860pkg_postinst:${PN}:libc-glibc () { 897pkg_postinst:${PN}:libc-glibc () {
861 if ${@bb.utils.contains('PACKAGECONFIG', 'myhostname', 'true', 'false', d)}; then 898 if ${@bb.utils.contains('PACKAGECONFIG', 'myhostname', 'true', 'false', d)}; then
862 sed -e '/^hosts:/s/\s*\<myhostname\>//' \ 899 sed -e '/^hosts:/s/\s*\<myhostname\>//' \
@@ -885,15 +922,19 @@ pkg_prerm:${PN}:libc-glibc () {
885 fi 922 fi
886} 923}
887 924
888PACKAGE_WRITE_DEPS += "qemu-native" 925PACKAGE_WRITE_DEPS += "qemuwrapper-cross"
926
889pkg_postinst:udev-hwdb () { 927pkg_postinst:udev-hwdb () {
890 if test -n "$D"; then 928 if test -n "$D"; then
891 $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}" base_bindir="${base_bindir}" 929 $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} \
930 rootlibexecdir="${nonarch_libdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}" base_bindir="${base_bindir}"
892 else 931 else
893 udevadm hwdb --update 932 systemd-hwdb update
894 fi 933 fi
895} 934}
896 935
897pkg_prerm:udev-hwdb () { 936pkg_prerm:udev-hwdb () {
898 rm -f $D${sysconfdir}/udev/hwdb.bin 937 rm -f $D${sysconfdir}/udev/hwdb.bin
899} 938}
939
940require dlopen-deps.inc
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 6bbe517df1..c77266e71e 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -2,11 +2,10 @@ SUMMARY = "Inittab configuration for SysVinit"
2LICENSE = "GPL-2.0-only" 2LICENSE = "GPL-2.0-only"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
4 4
5
6SRC_URI = "file://inittab \ 5SRC_URI = "file://inittab \
7 file://start_getty" 6 file://start_getty"
8 7
9S = "${WORKDIR}" 8S = "${UNPACKDIR}"
10 9
11INHIBIT_DEFAULT_DEPS = "1" 10INHIBIT_DEFAULT_DEPS = "1"
12 11
@@ -16,9 +15,9 @@ do_compile() {
16 15
17do_install() { 16do_install() {
18 install -d ${D}${sysconfdir} 17 install -d ${D}${sysconfdir}
19 install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab 18 install -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab
20 install -d ${D}${base_bindir} 19 install -d ${D}${base_bindir}
21 install -m 0755 ${WORKDIR}/start_getty ${D}${base_bindir}/start_getty 20 install -m 0755 ${S}/start_getty ${D}${base_bindir}/start_getty
22 sed -e 's,/usr/bin,${bindir},g' -i ${D}${base_bindir}/start_getty 21 sed -e 's,/usr/bin,${bindir},g' -i ${D}${base_bindir}/start_getty
23 22
24 CONSOLES="${SERIAL_CONSOLES}" 23 CONSOLES="${SERIAL_CONSOLES}"
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch b/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch
deleted file mode 100644
index 5e4053bad1..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/0001-hddown-include-libgen.h-for-basename-API.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From a07c1d94e79840c59563741b45e690e77d4f3dfa Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 3 Dec 2023 20:09:30 -0800
4Subject: [PATCH] hddown: include libgen.h for basename API
5
6musl has removed the non-prototype declaration of basename from string.h [1] which now results in build errors with clang-17+ compiler
7
8include libgen.h for using the posix declaration of the funciton.
9
10Fixes
11
12hddown.c:135:8: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
13 135 | ptr = basename(lnk);
14 | ^ ~~~~~~~~~~~~~
15
16[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
17
18Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/21]
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20---
21 src/hddown.c | 1 +
22 1 file changed, 1 insertion(+)
23
24diff --git a/src/hddown.c b/src/hddown.c
25index 7a2cf28..3b31bc0 100644
26--- a/src/hddown.c
27+++ b/src/hddown.c
28@@ -24,6 +24,7 @@ char *v_hddown = "@(#)hddown.c 1.02 22-Apr-2003 miquels@cistron.nl";
29 #ifndef _GNU_SOURCE
30 #define _GNU_SOURCE
31 #endif
32+#include <libgen.h>
33 #include <stdio.h>
34 #include <stdlib.h>
35 #include <unistd.h>
36--
372.43.0
38
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
deleted file mode 100644
index 60fbd87534..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From c710a3accd1fabdb671274e1a458405282d51e0c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 6 Aug 2018 15:38:58 -0700
4Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7Upstream-Status: Pending
8
9---
10 src/bootlogd.c | 1 +
11 src/mountpoint.c | 1 +
12 src/shutdown.c | 1 +
13 3 files changed, 3 insertions(+)
14
15diff --git a/src/bootlogd.c b/src/bootlogd.c
16index 787db87..8b07903 100644
17--- a/src/bootlogd.c
18+++ b/src/bootlogd.c
19@@ -29,6 +29,7 @@
20 #include <sys/types.h>
21 #include <sys/time.h>
22 #include <sys/stat.h>
23+#include <sys/sysmacros.h>
24 #include <sys/ioctl.h>
25 #include <sys/utsname.h>
26 #include <time.h>
27diff --git a/src/mountpoint.c b/src/mountpoint.c
28index 5f20522..94df7a1 100644
29--- a/src/mountpoint.c
30+++ b/src/mountpoint.c
31@@ -25,6 +25,7 @@
32
33 #include <sys/types.h>
34 #include <sys/stat.h>
35+#include <sys/sysmacros.h>
36 #include <unistd.h>
37 #include <stdlib.h>
38 #include <string.h>
39diff --git a/src/shutdown.c b/src/shutdown.c
40index b744a2c..40b7faf 100644
41--- a/src/shutdown.c
42+++ b/src/shutdown.c
43@@ -40,6 +40,7 @@
44 #endif
45 #include <sys/types.h>
46 #include <sys/stat.h>
47+#include <sys/sysmacros.h>
48 #include <sys/wait.h>
49 #ifdef __linux__
50 #include <sys/sysmacros.h> /* brought in my LFS patch */
diff --git a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
index 5c39fb001b..1ac54fb667 100644
--- a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
@@ -1,33 +1,33 @@
1From c3a068cf24a22bea7349849ec111ae8d91a54db4 Mon Sep 17 00:00:00 2001 1From f040b04c50d13755b2063c4db0e0be0647cf5d14 Mon Sep 17 00:00:00 2001
2From: Jeff Dike <jdike@x86_64.user-mode-linux.org> 2From: Jeff Dike <jdike@x86_64.user-mode-linux.org>
3Date: Wed, 14 Jul 2010 14:35:52 -0400 3Date: Wed, 14 Jul 2010 14:35:52 -0400
4Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a 4Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a
5 5
6Upstream-Status: Inappropriate [configuration] 6The src Makefile was checking for libcrypt.a on the host, not in the
7 7build environment. This patch checks for $LCRYPT in the environment
8# The src Makefile was checking for libcrypt.a on the host, not in the 8and uses it if it's there.
9# build environment. This patch checks for $LCRYPT in the environment 9jdike@linux.intel.com
10# and uses it if it's there.
11# - jdike@linux.intel.com
12 10
11Upstream-Status: Inappropriate [configuration]
13--- 12---
14 src/Makefile | 11 ++--------- 13 src/Makefile | 12 ++----------
15 1 file changed, 2 insertions(+), 9 deletions(-) 14 1 file changed, 2 insertions(+), 10 deletions(-)
16 15
17diff --git a/src/Makefile b/src/Makefile 16diff --git a/src/Makefile b/src/Makefile
18index 5b1a5a2..b686394 100644 17index 6d9f01c..b12a233 100644
19--- a/src/Makefile 18--- a/src/Makefile
20+++ b/src/Makefile 19+++ b/src/Makefile
21@@ -97,15 +97,8 @@ else 20@@ -97,16 +97,8 @@ else
21 SULOGINLIBS =
22 endif 22 endif
23 23
24 # Additional libs for GNU libc. 24-# Additional libs for GNU libc.
25-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),) 25-ifneq ($(wildcard $(ROOT)/$(usrdir)/lib*/libcrypt.*),)
26- SULOGINLIBS += -lcrypt 26- SULOGINLIBS += -lcrypt
27-endif 27-endif
28- 28-
29-# Additional libs for GNU libc / multiarch on Debian based systems. 29-# Additional libs for GNU libc / multiarch on Debian based systems.
30-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),) 30-ifneq ($(wildcard $(ROOT)/$(usrdir)/lib/*/libcrypt.*),)
31-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt) 31-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)
32- SULOGINLIBS += -lcrypt 32- SULOGINLIBS += -lcrypt
33-endif 33-endif
diff --git a/meta/recipes-core/sysvinit/sysvinit/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch
deleted file mode 100644
index bc6d493c2b..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/install.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From 5e35aa105e7a2e85db2a89fee4114090b1ac55be Mon Sep 17 00:00:00 2001
2From: Qing He <qing.he@intel.com>
3Date: Fri, 18 Jun 2010 09:40:30 +0800
4Subject: [PATCH] sysvinit: upgrade to version 2.88dsf
5
6Upstream-Status: Submitted [https://github.com/slicer69/sysvinit/pull/13]
7
8---
9 src/Makefile | 53 +++++++++++++++++++++++++++++-----------------------
10 1 file changed, 30 insertions(+), 23 deletions(-)
11
12diff --git a/src/Makefile b/src/Makefile
13index 1b368dc..5b1a5a2 100644
14--- a/src/Makefile
15+++ b/src/Makefile
16@@ -77,7 +77,14 @@ else
17 INSTALL_DATA = install -m 644
18 endif
19 INSTALL_DIR = install -m 755 -d
20-MANDIR = /usr/share/man
21+
22+ROOT ?=
23+base_bindir ?= /bin
24+base_sbindir ?= /sbin
25+bindir ?= /usr/bin
26+sysconfdir ?= /etc
27+includedir ?= /usr/include
28+mandir ?= /usr/share/man
29
30 ifeq ($(WITH_SELINUX),yes)
31 SELINUX_DEF = -DWITH_SELINUX
32@@ -191,43 +198,43 @@ clobber: cleanobjs
33 distclean: clobber
34
35 install: all
36- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
37- $(INSTALL_DIR) $(ROOT)/usr/bin/
38+ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/
39+ $(INSTALL_DIR) $(ROOT)$(bindir)/
40 for i in $(BIN); do \
41- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
42+ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \
43 done
44 for i in $(SBIN); do \
45- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \
46+ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \
47 done
48 for i in $(USRBIN); do \
49- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \
50+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
51 done
52 # $(INSTALL_DIR) $(ROOT)/etc/
53 $(INSTALL_DIR) $(ROOT)/etc/inittab.d
54 # $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/etc/
55- ln -sf halt $(ROOT)/sbin/reboot
56- ln -sf halt $(ROOT)/sbin/poweroff
57- ln -sf init $(ROOT)/sbin/telinit
58- ln -sf /sbin/killall5 $(ROOT)/bin/pidof
59- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
60- ln -sf last $(ROOT)/usr/bin/lastb; \
61+ ln -sf halt $(ROOT)$(base_sbindir)/reboot
62+ ln -sf halt $(ROOT)$(base_sbindir)/poweroff
63+ ln -sf init $(ROOT)$(base_sbindir)/telinit
64+ ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof
65+ if [ ! -f $(ROOT)$(bindir)/lastb ]; then \
66+ ln -sf last $(ROOT)$(bindir)/lastb; \
67 fi
68- $(INSTALL_DIR) $(ROOT)/usr/include/
69- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/
70- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/
71- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/
72- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/
73+ $(INSTALL_DIR) $(ROOT)$(includedir)/
74+ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/
75+ $(INSTALL_DIR) $(ROOT)$(mandir)/man1/
76+ $(INSTALL_DIR) $(ROOT)$(mandir)/man5/
77+ $(INSTALL_DIR) $(ROOT)$(mandir)/man8/
78 for man in $(MAN1); do \
79- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/; \
80- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \
81+ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man1/; \
82+ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man1/$$man ; \
83 done
84 for man in $(MAN5); do \
85- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/; \
86- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \
87+ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man5/; \
88+ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man5/$$man ; \
89 done
90 for man in $(MAN8); do \
91- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/; \
92- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \
93+ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man8/; \
94+ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man8/$$man ; \
95 done
96 ifeq ($(ROOT),)
97 #
diff --git a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
deleted file mode 100644
index 8ef292ed12..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
+++ /dev/null
@@ -1,191 +0,0 @@
1From 0e441712d0e366a0384ff3fa879f5a2d2607c24f Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Wed, 24 Jul 2013 17:07:22 +0800
4Subject: [PATCH] pidof: add -m option
5
6When used with -o, will also omit any processes that have the same
7argv[0] and argv[1] as any explicitly omitted process ids. This can be
8used to avoid multiple shell scripts concurrently calling pidof returning
9each other's pids.
10
11https://bugzilla.redhat.com/show_bug.cgi?id=883856
12
13Upstream-Status: Backport
14Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166
15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17
18---
19 man/pidof.8 | 6 +++++
20 src/killall5.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++---
21 2 files changed, 65 insertions(+), 3 deletions(-)
22
23diff --git a/man/pidof.8 b/man/pidof.8
24index 6866cb3..a87d878 100644
25--- a/man/pidof.8
26+++ b/man/pidof.8
27@@ -25,6 +25,7 @@ pidof - find the process ID of a running program
28 .RB [ \-n ]
29 .RB [ \-x ]
30 .RB [ \-z ]
31+.RB [ \-m ]
32 .RB [ \-o
33 .IR omitpid[,omitpid...] ]
34 .RB [ \-o
35@@ -77,6 +78,11 @@ is shown. The default separator is a space.
36 Tells \fIpidof\fP to omit processes with that process id. The special
37 pid \fB%PPID\fP can be used to name the parent process of the \fBpidof\fP
38 program, in other words the calling shell or shell script.
39+.IP -m
40+When used with -o, will also omit any processes that have the same
41+argv[0] and argv[1] as any explicitly omitted process ids. This can be
42+used to avoid multiple shell scripts concurrently calling pidof returning
43+each other's pids.
44 .SH "EXIT STATUS"
45 .TP
46 .B 0
47diff --git a/src/killall5.c b/src/killall5.c
48index b0728fa..72289e3 100644
49--- a/src/killall5.c
50+++ b/src/killall5.c
51@@ -121,6 +121,7 @@ typedef struct _s_nfs
52
53 /* List of processes. */
54 PROC *plist;
55+PROC *olist;
56
57 /* List of processes to omit. */
58 OMIT *omit;
59@@ -356,6 +357,20 @@ static void clear_mnt(void)
60 }
61 }
62
63+static void clear_omit(void)
64+{
65+ OMIT *o;
66+ PROC *p;
67+ for (o = omit; o; o = omit) {
68+ omit = omit->next;
69+ free(o);
70+ }
71+ for (p = olist; p; p = olist) {
72+ olist = olist->next;
73+ free(p);
74+ }
75+}
76+
77 /*
78 * Check if path is a shadow off a NFS partition.
79 */
80@@ -481,6 +496,7 @@ int readproc()
81 DIR *dir;
82 FILE *fp;
83 PROC *p, *n;
84+ OMIT *o, *m;
85 struct dirent *d;
86 char path[PATH_MAX+1];
87 char buf[PATH_MAX+1];
88@@ -670,6 +686,17 @@ int readproc()
89 p->next = plist;
90 plist = p;
91 p->pid = pid;
92+ /* Could be smarter, but it's a small list. */
93+ m = omit;
94+ for (o = omit; m; o = m) {
95+ m = o->next;
96+ if (o->pid == p->pid) {
97+ n = (PROC*)xmalloc(sizeof(PROC));
98+ *n = *p;
99+ n->next = olist;
100+ olist = n;
101+ }
102+ }
103 }
104 closedir(dir);
105
106@@ -870,6 +897,26 @@ PIDQ_HEAD *pidof(char *prog)
107 return q;
108 }
109
110+int matches(PROC *o, PROC *p)
111+{
112+ int ret = 0;
113+ char *oargv1, *pargv1;
114+ if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
115+ if (o->argv1 && p->argv1) {
116+ if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL)
117+ oargv1 = strdup(o->argv1);
118+ if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL)
119+ pargv1 = strdup(p->argv1);
120+ if (! strcmp(oargv1, pargv1)) {
121+ ret = 1;
122+ }
123+ free(oargv1);
124+ free(pargv1);
125+ }
126+ }
127+ return ret;
128+}
129+
130 /* Give usage message and exit. */
131 void usage(void)
132 {
133@@ -920,6 +967,7 @@ void nsyslog(int pri, char *fmt, ...)
134 #define PIDOF_OMIT 0x02
135 #define PIDOF_NETFS 0x04
136 #define PIDOF_QUIET 0x08
137+#define PIDOF_OMIT_OMIT_MATCHES 0x08
138
139 /*
140 * Pidof functionality.
141@@ -937,6 +985,7 @@ int main_pidof(int argc, char **argv)
142 char tmp[512];
143 char sep = ' ';
144
145+ olist = (PROC*)0;
146 omit = (OMIT*)0;
147 nlist = (NFS*)0;
148 opterr = 0;
149@@ -944,7 +993,7 @@ int main_pidof(int argc, char **argv)
150 if ((token = getenv("PIDOF_NETFS")) && (strcmp(token,"no") != 0))
151 flags |= PIDOF_NETFS;
152
153- while ((opt = getopt(argc,argv,"qhco:d:sxzn")) != EOF) switch (opt) {
154+ while ((opt = getopt(argc,argv,"qhcmo:d:sxzn")) != EOF) switch (opt) {
155 case '?':
156 nsyslog(LOG_ERR,"invalid options on command line!\n");
157 closelog();
158@@ -995,6 +1044,9 @@ int main_pidof(int argc, char **argv)
159 case 'z':
160 list_dz_processes = TRUE;
161 break;
162+ case 'm':
163+ flags |= PIDOF_OMIT_OMIT_MATCHES;
164+ break;
165 case 'n':
166 flags |= PIDOF_NETFS;
167 break;
168@@ -1026,10 +1078,13 @@ int main_pidof(int argc, char **argv)
169 pid_t spid = 0;
170 while ((p = get_next_from_pid_q(q))) {
171 if ((flags & PIDOF_OMIT) && omit) {
172- OMIT * optr;
173- for (optr = omit; optr; optr = optr->next) {
174+ PROC * optr;
175+ for (optr = olist; optr; optr = optr->next) {
176 if (optr->pid == p->pid)
177 break;
178+ if (flags & PIDOF_OMIT_OMIT_MATCHES)
179+ if (matches(optr, p))
180+ break;
181 }
182
183 /*
184@@ -1071,6 +1126,7 @@ int main_pidof(int argc, char **argv)
185 printf("\n");
186 }
187
188+ clear_omit();
189 clear_mnt();
190
191 closelog();
diff --git a/meta/recipes-core/sysvinit/sysvinit/realpath.patch b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
deleted file mode 100644
index b559aa3b49..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/realpath.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1From eb158c97f19d473d01befe96359a7f93ae834517 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 Nov 2015 00:10:03 +0000
4Subject: [PATCH] Fix build on musl use realpath() API its available on all
5 libcs
6
7realpath() API doesnt work on systems with PATH_MAX set to be unlimited e.g. GNU/Hurd
8However for Linux it should always work
9
10Upstream-Status: Inappropriate [Linux specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13
14---
15 src/killall5.c | 4 ++--
16 src/mountpoint.c | 1 +
17 src/wall.c | 1 +
18 3 files changed, 4 insertions(+), 2 deletions(-)
19
20diff --git a/src/killall5.c b/src/killall5.c
21index a664954..9798423 100644
22--- a/src/killall5.c
23+++ b/src/killall5.c
24@@ -977,9 +977,9 @@ int matches(PROC *o, PROC *p)
25 char *oargv1, *pargv1;
26 if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
27 if (o->argv1 && p->argv1) {
28- if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL)
29+ if ((oargv1 = realpath(o->argv1, NULL)) == NULL)
30 oargv1 = strdup(o->argv1);
31- if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL)
32+ if ((pargv1 = realpath(p->argv1, NULL)) == NULL)
33 pargv1 = strdup(p->argv1);
34 if (! strcmp(oargv1, pargv1)) {
35 ret = 1;
36diff --git a/src/mountpoint.c b/src/mountpoint.c
37index b24335e..5f20522 100644
38--- a/src/mountpoint.c
39+++ b/src/mountpoint.c
40@@ -23,6 +23,7 @@
41 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
42 */
43
44+#include <sys/types.h>
45 #include <sys/stat.h>
46 #include <unistd.h>
47 #include <stdlib.h>
48diff --git a/src/wall.c b/src/wall.c
49index d3a2c70..00826e9 100644
50--- a/src/wall.c
51+++ b/src/wall.c
52@@ -30,6 +30,7 @@
53 #include <pwd.h>
54 #include <syslog.h>
55 #include <sys/types.h>
56+#include <time.h>
57 #include "init.h"
58
59
diff --git a/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch b/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch
deleted file mode 100644
index 89d65c23b7..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/sysvinit_remove_linux_fs.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1# From glibc 2.36, <linux/mount.h> (included from <linux/fs.h>) and
2# <sys/mount.h> (included from glibc) are no longer compatible:
3# https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
4
5Upstream-Status: Pending
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7
8--- sysvinit-3.04/src/sulogin.c.orig 2022-08-07 23:07:42.952576274 +0200
9+++ sysvinit-3.04/src/sulogin.c 2022-08-07 23:08:26.511470983 +0200
10@@ -51,7 +51,6 @@
11 #ifdef __linux__
12 # include <sys/statfs.h>
13 # include <sys/mount.h>
14-# include <linux/fs.h>
15 # include <linux/magic.h>
16 # include <linux/major.h>
17 # ifndef TMPFS_MAGIC
diff --git a/meta/recipes-core/sysvinit/sysvinit_3.04.bb b/meta/recipes-core/sysvinit/sysvinit_3.14.bb
index 6a612468f3..d4bb797624 100644
--- a/meta/recipes-core/sysvinit/sysvinit_3.04.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_3.14.bb
@@ -9,25 +9,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
9 9
10RDEPENDS:${PN} = "${PN}-inittab" 10RDEPENDS:${PN} = "${PN}-inittab"
11 11
12SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \ 12GITHUB_BASE_URI = "https://github.com/slicer69/${BPN}/releases/"
13 file://install.patch \ 13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \
14 file://crypt-lib.patch \ 14 file://crypt-lib.patch \
15 file://pidof-add-m-option.patch \
16 file://realpath.patch \
17 file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \
18 file://sysvinit_remove_linux_fs.patch \
19 file://rcS-default \ 15 file://rcS-default \
20 file://rc \ 16 file://rc \
21 file://rcS \ 17 file://rcS \
22 file://bootlogd.init \ 18 file://bootlogd.init \
23 file://01_bootlogd \ 19 file://01_bootlogd \
24 file://0001-hddown-include-libgen.h-for-basename-API.patch \
25 " 20 "
26SRC_URI[sha256sum] = "2a621fe6e4528bc91308b74867ddaaebbdf7753f02395c0c5bae817bd2b7e3a5" 21SRC_URI[sha256sum] = "c90874b8c054a35991fb8c4d30c443ed1e9b1815ff6165c7b483f558be4e4b53"
27 22
28S = "${WORKDIR}/sysvinit-${PV}" 23S = "${UNPACKDIR}/sysvinit-${PV}"
29 24
30inherit update-alternatives features_check 25inherit update-alternatives features_check github-releases
31DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt" 26DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt"
32do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot" 27do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
33 28
@@ -97,18 +92,18 @@ do_install () {
97 92
98 sed -e \ 93 sed -e \
99 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \ 94 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \
100 ${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS 95 ${UNPACKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS
101 chmod 0644 ${D}${sysconfdir}/default/rcS 96 chmod 0644 ${D}${sysconfdir}/default/rcS
102 install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d 97 install -m 0755 ${UNPACKDIR}/rc ${D}${sysconfdir}/init.d
103 install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d 98 install -m 0755 ${UNPACKDIR}/rcS ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd 99 install -m 0755 ${UNPACKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
105 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd 100 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
106 101
107 update-rc.d -r ${D} bootlogd start 07 S . 102 update-rc.d -r ${D} bootlogd start 07 S .
108 update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 . 103 update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 .
109 104
110 install -d ${D}${sysconfdir}/default/volatiles 105 install -d ${D}${sysconfdir}/default/volatiles
111 install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles 106 install -m 0644 ${UNPACKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles
112 107
113 chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown 108 chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
114 chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown 109 chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
diff --git a/meta/recipes-core/ttyrun/ttyrun_2.32.0.bb b/meta/recipes-core/ttyrun/ttyrun_2.38.0.bb
index 9a8be15dab..90380e51ea 100644
--- a/meta/recipes-core/ttyrun/ttyrun_2.32.0.bb
+++ b/meta/recipes-core/ttyrun/ttyrun_2.38.0.bb
@@ -6,10 +6,10 @@ HOMEPAGE = "https://github.com/ibm-s390-linux/s390-tools"
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=f5118f167b055bfd7c3450803f1847af" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=f5118f167b055bfd7c3450803f1847af"
8 8
9SRC_URI = "git://github.com/ibm-s390-linux/s390-tools;protocol=https;branch=master" 9SRC_URI = "git://github.com/ibm-s390-linux/s390-tools;protocol=https;branch=master;tag=v${PV}"
10SRCREV = "9eea78b3ad8ab3710fb3b2d80b9cd058d7c8aba7" 10SRCREV = "660bab6e68fded26b2117e1dcec0844549a22fed"
11 11
12S = "${WORKDIR}/git" 12CVE_PRODUCT = "s390-tools"
13 13
14EXTRA_OEMAKE = "\ 14EXTRA_OEMAKE = "\
15 V=1 \ 15 V=1 \
diff --git a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
new file mode 100644
index 0000000000..668aa731ac
--- /dev/null
+++ b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch
@@ -0,0 +1,138 @@
1From 95c871b7b912f39539777ac222ef7f8798bb0225 Mon Sep 17 00:00:00 2001
2From: Masahisa Kojima <kojima.masahisa@socionext.com>
3Date: Thu, 25 Apr 2024 17:23:10 +0900
4Subject: [PATCH] random-util.c: sync dev_urandom implementation to
5 systemd-udev
6
7Current dev_urandom() assumes that reading /dev/urandom
8will never block regardless if the random pool is fully
9initialized or not.
10This assumption is no longer applicable since linux kerrnel
11enforces the /dev/urandom entropy initialization from
12v5.18-rc2 with the commit:
1348bff1053c17 ("random: opportunistically initialize on /dev/urandom reads").
14
15With this, when we use the linux v5.18-rc2 or later,
16dev_urandom() will block if enough random pool is not supplied.
17It causes the boot delay, typically 1024msec(4msec * 256 = 1024msec)
18delay to fill the 256 bits entropy for the case CONFIG_HZ=250.
19
20To prevent this boot delay, this commit syncs dev_urandom()
21implementation to the systemd-udev.
22The systemd-udev implementation of reading /dev/urandom is as follows.
23 - Try to get random with calling getrandom(GRND_INSECURE)
24 - If kernel does not support GRND_INSECURE, fallback to GRND_NONBLOCK
25 - If enough entropy is not supplied, fallback to reading /dev/urandom,
26 this will block when the kernel version is v5.18-rc2 or later
27
28With this modification, dev_urandom() tries not to block
29as much as possible.
30
31This modification still keeps the backword compatibility,
32dev_random() will never block if the commit(48bff1053c17) is not
33applied to the linux kernel, the behavior is same as before
34in this case.
35
36Upstream-Status: Backport [a49a3aaa460add6ae7ea208b4cac630e56fe1180]
37Signed-off-by: Masahisa Kojima <kojima.masahisa@socionext.com>
38---
39 src/shared/missing.h | 4 +++
40 src/shared/random-util.c | 70 ++++++++++++++++++----------------------
41 2 files changed, 35 insertions(+), 39 deletions(-)
42
43diff --git a/src/shared/missing.h b/src/shared/missing.h
44index 1967840cdbf3..1caec0f9207c 100644
45--- a/src/shared/missing.h
46+++ b/src/shared/missing.h
47@@ -79,6 +79,10 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) {
48 #define GRND_RANDOM 0x0002
49 #endif
50
51+#ifndef GRND_INSECURE
52+#define GRND_INSECURE 0x0004
53+#endif
54+
55 #ifndef BTRFS_IOCTL_MAGIC
56 #define BTRFS_IOCTL_MAGIC 0x94
57 #endif
58diff --git a/src/shared/random-util.c b/src/shared/random-util.c
59index 01a28c8ef4e9..852b00e4ce2b 100644
60--- a/src/shared/random-util.c
61+++ b/src/shared/random-util.c
62@@ -31,45 +31,37 @@
63 #include "util.h"
64
65 int dev_urandom(void *p, size_t n) {
66- static int have_syscall = -1;
67-
68- _cleanup_close_ int fd = -1;
69- int r;
70-
71- /* Gathers some randomness from the kernel. This call will
72- * never block, and will always return some data from the
73- * kernel, regardless if the random pool is fully initialized
74- * or not. It thus makes no guarantee for the quality of the
75- * returned entropy, but is good enough for or usual usecases
76- * of seeding the hash functions for hashtable */
77-
78- /* Use the getrandom() syscall unless we know we don't have
79- * it, or when the requested size is too large for it. */
80- if (have_syscall != 0 || (size_t) (int) n != n) {
81- r = getrandom(p, n, GRND_NONBLOCK);
82- if (r == (int) n) {
83- have_syscall = true;
84- return 0;
85- }
86-
87- if (r < 0) {
88- if (errno == ENOSYS)
89- /* we lack the syscall, continue with
90- * reading from /dev/urandom */
91- have_syscall = false;
92- else if (errno == EAGAIN)
93- /* not enough entropy for now. Let's
94- * remember to use the syscall the
95- * next time, again, but also read
96- * from /dev/urandom for now, which
97- * doesn't care about the current
98- * amount of entropy. */
99- have_syscall = true;
100- else
101- return -errno;
102- } else
103- /* too short read? */
104- return -ENODATA;
105+ static bool have_getrandom = true, have_grndinsecure = true;
106+ _cleanup_close_ int fd = -EBADF;
107+
108+ if (n == 0)
109+ return 0;
110+
111+ for (;;) {
112+ ssize_t l;
113+
114+ if (!have_getrandom)
115+ break;
116+
117+ l = getrandom(p, n, have_grndinsecure ? GRND_INSECURE : GRND_NONBLOCK);
118+ if (l > 0) {
119+ if ((size_t) l == n)
120+ return 0; /* Done reading, success. */
121+ p = (uint8_t *) p + l;
122+ n -= l;
123+ continue; /* Interrupted by a signal; keep going. */
124+ } else if (l == 0)
125+ break; /* Weird, so fallback to /dev/urandom. */
126+ else if (errno == ENOSYS) {
127+ have_getrandom = false;
128+ break; /* No syscall, so fallback to /dev/urandom. */
129+ } else if (errno == EINVAL && have_grndinsecure) {
130+ have_grndinsecure = false;
131+ continue; /* No GRND_INSECURE; fallback to GRND_NONBLOCK. */
132+ } else if (errno == EAGAIN && !have_grndinsecure)
133+ break; /* Will block, but no GRND_INSECURE, so fallback to /dev/urandom. */
134+
135+ break; /* Unexpected, so just give up and fallback to /dev/urandom. */
136 }
137
138 fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY);
diff --git a/meta/recipes-core/udev/eudev/init b/meta/recipes-core/udev/eudev/init
index 477a525b21..790cd3b933 100644
--- a/meta/recipes-core/udev/eudev/init
+++ b/meta/recipes-core/udev/eudev/init
@@ -27,8 +27,7 @@ make_static_nodes () {
27 [ -e /lib/modules/$(uname -r)/modules.devname ] || return 0 27 [ -e /lib/modules/$(uname -r)/modules.devname ] || return 0
28 [ -x @KMOD@ ] || return 0 28 [ -x @KMOD@ ] || return 0
29 29
30 #output to /proc/self/fd/1 since /dev/stdout not created by udevd yet 30 @KMOD@ static-nodes --format=tmpfiles |
31 @KMOD@ static-nodes --format=tmpfiles --output=/proc/self/fd/1 |
32 while read TTYPE TPATH TMODE TUSER TGROUP TAGE TARG; do 31 while read TTYPE TPATH TMODE TUSER TGROUP TAGE TARG; do
33 case "${TTYPE}" in 32 case "${TTYPE}" in
34 'd') 33 'd')
diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.14.bb
index 18696679c8..a2d222e655 100644
--- a/meta/recipes-core/udev/eudev_3.2.14.bb
+++ b/meta/recipes-core/udev/eudev_3.2.14.bb
@@ -13,13 +13,14 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
13 file://netifnames.patch \ 13 file://netifnames.patch \
14 file://init \ 14 file://init \
15 file://local.rules \ 15 file://local.rules \
16 file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \
16 " 17 "
17 18
18SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f" 19SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
19 20
20GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases" 21GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
21 22
22inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases 23inherit autotools update-rc.d pkgconfig features_check manpages github-releases
23 24
24CONFLICT_DISTRO_FEATURES = "systemd" 25CONFLICT_DISTRO_FEATURES = "systemd"
25 26
@@ -42,12 +43,12 @@ PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
42 43
43do_install:append() { 44do_install:append() {
44 install -d ${D}${sysconfdir}/init.d 45 install -d ${D}${sysconfdir}/init.d
45 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev 46 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/udev
46 sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev 47 sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev
47 sed -i s%@KMOD@%${base_bindir}/kmod% ${D}${sysconfdir}/init.d/udev 48 sed -i s%@KMOD@%${base_bindir}/kmod% ${D}${sysconfdir}/init.d/udev
48 49
49 install -d ${D}${sysconfdir}/udev/rules.d 50 install -d ${D}${sysconfdir}/udev/rules.d
50 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules 51 install -m 0644 ${UNPACKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
51 52
52 # Use classic network interface naming scheme if no 'pni-names' distro feature 53 # Use classic network interface naming scheme if no 'pni-names' distro feature
53 if ${@bb.utils.contains('DISTRO_FEATURES', 'pni-names', 'false', 'true', d)}; then 54 if ${@bb.utils.contains('DISTRO_FEATURES', 'pni-names', 'false', 'true', d)}; then
@@ -76,7 +77,7 @@ RDEPENDS:${PN} += "kmod"
76RPROVIDES:${PN} = "hotplug udev" 77RPROVIDES:${PN} = "hotplug udev"
77RPROVIDES:${PN}-hwdb += "udev-hwdb" 78RPROVIDES:${PN}-hwdb += "udev-hwdb"
78 79
79PACKAGE_WRITE_DEPS += "qemu-native" 80PACKAGE_WRITE_DEPS += "qemuwrapper-cross"
80pkg_postinst:${PN}-hwdb () { 81pkg_postinst:${PN}-hwdb () {
81 if test -n "$D"; then 82 if test -n "$D"; then
82 $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} 83 $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
diff --git a/meta/recipes-core/udev/udev-extraconf/mount.sh b/meta/recipes-core/udev/udev-extraconf/mount.sh
index c19e2aa68a..0cbae48729 100644
--- a/meta/recipes-core/udev/udev-extraconf/mount.sh
+++ b/meta/recipes-core/udev/udev-extraconf/mount.sh
@@ -83,11 +83,11 @@ automount_systemd() {
83 83
84 MOUNT="$MOUNT -o silent" 84 MOUNT="$MOUNT -o silent"
85 85
86 # If filesystemtype is vfat, change the ownership group to 'disk', and 86 # If filesystemtype is vfat, change the ownership group to mount group, and
87 # grant it with w/r/x permissions. 87 # grant it with w/r/x permissions.
88 case $ID_FS_TYPE in 88 case $ID_FS_TYPE in
89 vfat|fat) 89 vfat|fat)
90 MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" 90 MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^@MOUNT_GROUP@:/{print $3}' /etc/group`"
91 ;; 91 ;;
92 swap) 92 swap)
93 return ;; 93 return ;;
@@ -98,7 +98,7 @@ automount_systemd() {
98 ;; 98 ;;
99 esac 99 esac
100 100
101 if ! $MOUNT --no-block -t auto $DEVNAME "$MOUNT_BASE/$name" 101 if ! $MOUNT --collect --no-block -t auto $DEVNAME "$MOUNT_BASE/$name"
102 then 102 then
103 #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"$MOUNT_BASE/$name\" failed!" 103 #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"$MOUNT_BASE/$name\" failed!"
104 rm_dir "$MOUNT_BASE/$name" 104 rm_dir "$MOUNT_BASE/$name"
@@ -138,11 +138,11 @@ automount() {
138 MOUNT="$MOUNT -o silent" 138 MOUNT="$MOUNT -o silent"
139 fi 139 fi
140 140
141 # If filesystem type is vfat, change the ownership group to 'disk', and 141 # If filesystem type is vfat, change the ownership group to mount group, and
142 # grant it with w/r/x permissions. 142 # grant it with w/r/x permissions.
143 case $ID_FS_TYPE in 143 case $ID_FS_TYPE in
144 vfat|fat) 144 vfat|fat)
145 MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" 145 MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^@MOUNT_GROUP@:/{print $3}' /etc/group`"
146 ;; 146 ;;
147 swap) 147 swap)
148 return ;; 148 return ;;
diff --git a/meta/recipes-core/udev/udev-extraconf/network.sh b/meta/recipes-core/udev/udev-extraconf/network.sh
index 3ee92714af..500e60ae61 100644
--- a/meta/recipes-core/udev/udev-extraconf/network.sh
+++ b/meta/recipes-core/udev/udev-extraconf/network.sh
@@ -6,44 +6,12 @@ echo "$INTERFACE" | grep -q wifi && exit 0
6# udevd does clearenv(). Export shell PATH to children. 6# udevd does clearenv(). Export shell PATH to children.
7export PATH 7export PATH
8 8
9# Check if /etc/init.d/network has been run yet to see if we are
10# called by starting /etc/rcS.d/S03udev and not by hotplugging a device
11#
12# At this stage, network interfaces should not be brought up
13# automatically because:
14# a) /etc/init.d/network has not been run yet (security issue)
15# b) /var has not been populated yet so /etc/resolv,conf points to
16# oblivion, making the network unusable
17#
18
19spoofp="`grep ^spoofprotect /etc/network/options`"
20if test -z "$spoofp"
21then
22 # This is the default from /etc/init.d/network
23 spoofp_val=yes
24else
25 spoofp_val=${spoofp#spoofprotect=}
26fi
27
28test "$spoofp_val" = yes && spoofp_val=1 || spoofp_val=0
29
30# I think it is safe to assume that "lo" will always be there ;)
31if test "`cat /proc/sys/net/ipv4/conf/lo/rp_filter`" != "$spoofp_val" -a -n "$spoofp_val"
32then
33 echo "$INTERFACE" >> /dev/udev_network_queue
34 exit 0
35fi
36
37#
38# Code taken from pcmcia-cs:/etc/pcmcia/network
39#
40
41# if this interface has an entry in /etc/network/interfaces, let ifupdown 9# if this interface has an entry in /etc/network/interfaces, let ifupdown
42# handle it 10# handle it
43if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then 11if grep -q "iface \+$INTERFACE" /etc/network/interfaces; then
44 case $ACTION in 12 case $ACTION in
45 add) 13 add)
46 ifconfig | grep -q "^$INTERFACE" || ifup $INTERFACE 14 ip addr show dev "$INTERFACE" up | grep -q "$INTERFACE" || ifup $INTERFACE
47 ;; 15 ;;
48 remove) 16 remove)
49 ifdown $INTERFACE 17 ifdown $INTERFACE
diff --git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index 30f1fe76d0..2ba6606c05 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.1.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -13,28 +13,31 @@ SRC_URI = " \
13 file://localextra.rules \ 13 file://localextra.rules \
14" 14"
15 15
16S = "${WORKDIR}" 16S = "${UNPACKDIR}"
17 17
18MOUNT_BASE = "/run/media" 18MOUNT_BASE = "/run/media"
19MOUNT_GROUP ?= "disk"
19 20
20do_install() { 21do_install() {
21 install -d ${D}${sysconfdir}/udev/rules.d 22 install -d ${D}${sysconfdir}/udev/rules.d
22 23
23 install -m 0644 ${WORKDIR}/automount.rules ${D}${sysconfdir}/udev/rules.d/automount.rules 24 install -m 0644 ${S}/automount.rules ${D}${sysconfdir}/udev/rules.d/automount.rules
24 install -m 0644 ${WORKDIR}/autonet.rules ${D}${sysconfdir}/udev/rules.d/autonet.rules 25 install -m 0644 ${S}/autonet.rules ${D}${sysconfdir}/udev/rules.d/autonet.rules
25 install -m 0644 ${WORKDIR}/localextra.rules ${D}${sysconfdir}/udev/rules.d/localextra.rules 26 install -m 0644 ${S}/localextra.rules ${D}${sysconfdir}/udev/rules.d/localextra.rules
26 27
27 install -d ${D}${sysconfdir}/udev/mount.ignorelist.d 28 install -d ${D}${sysconfdir}/udev/mount.ignorelist.d
28 install -m 0644 ${WORKDIR}/mount.ignorelist ${D}${sysconfdir}/udev/ 29 install -m 0644 ${S}/mount.ignorelist ${D}${sysconfdir}/udev/
29 30
30 install -d ${D}${sysconfdir}/udev/scripts/ 31 install -d ${D}${sysconfdir}/udev/scripts/
31 32
32 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh 33 install -m 0755 ${S}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh
33 sed -i 's|@systemd_unitdir@|${systemd_unitdir}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 34 sed -e 's|@systemd_unitdir@|${systemd_unitdir}|g' \
34 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 35 -e 's|@base_sbindir@|${base_sbindir}|g' \
35 sed -i 's|@MOUNT_BASE@|${MOUNT_BASE}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 36 -e 's|@MOUNT_BASE@|${MOUNT_BASE}|g' \
37 -e 's|@MOUNT_GROUP@|${MOUNT_GROUP}|g' \
38 -i ${D}${sysconfdir}/udev/scripts/mount.sh
36 39
37 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts 40 install -m 0755 ${S}/network.sh ${D}${sysconfdir}/udev/scripts
38} 41}
39 42
40pkg_postinst:${PN} () { 43pkg_postinst:${PN} () {
diff --git a/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb b/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
index ba622fe716..124b7d32a2 100644
--- a/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
+++ b/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
@@ -8,11 +8,10 @@ LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f5354
8 8
9SRC_URI = "git://git.yoctoproject.org/update-rc.d;branch=master;protocol=https" 9SRC_URI = "git://git.yoctoproject.org/update-rc.d;branch=master;protocol=https"
10SRCREV = "b8f950105010270a768aa12245d6abf166346015" 10SRCREV = "b8f950105010270a768aa12245d6abf166346015"
11PV .= "+git"
11 12
12UPSTREAM_CHECK_COMMITS = "1" 13UPSTREAM_CHECK_COMMITS = "1"
13 14
14S = "${WORKDIR}/git"
15
16inherit allarch 15inherit allarch
17 16
18do_compile() { 17do_compile() {
diff --git a/meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb b/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb
index ec04c1d384..5ad2997c27 100644
--- a/meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb
+++ b/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb
@@ -3,15 +3,17 @@
3 3
4require util-linux.inc 4require util-linux.inc
5 5
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c \
8 file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af"
9
6inherit autotools gettext pkgconfig 10inherit autotools gettext pkgconfig
7 11
8S = "${WORKDIR}/util-linux-${PV}" 12S = "${UNPACKDIR}/util-linux-${PV}"
9 13
10EXTRA_AUTORECONF += "--exclude=gtkdocize" 14EXTRA_AUTORECONF += "--exclude=gtkdocize"
11EXTRA_OECONF += "--disable-all-programs --enable-libuuid" 15EXTRA_OECONF += "--disable-all-programs --enable-libuuid"
12 16
13LICENSE = "BSD-3-Clause"
14
15do_install:append() { 17do_install:append() {
16 rm -rf ${D}${datadir} ${D}${bindir} ${D}${base_bindir} ${D}${sbindir} ${D}${base_sbindir} ${D}${exec_prefix}/sbin 18 rm -rf ${D}${datadir} ${D}${bindir} ${D}${base_bindir} ${D}${sbindir} ${D}${base_sbindir} ${D}${exec_prefix}/sbin
17} 19}
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc
index d506783f9a..111f29cb92 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -6,31 +6,9 @@ disk partitioning, kernel message management, filesystem creation, and system lo
6 6
7SECTION = "base" 7SECTION = "base"
8 8
9LICENSE = "GPL-1.0-or-later & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT"
10LICENSE:${PN}-fcntl-lock = "MIT"
11LICENSE:${PN}-fdisk = "GPL-1.0-or-later"
12LICENSE:${PN}-libblkid = "LGPL-2.1-or-later"
13LICENSE:${PN}-libfdisk = "LGPL-2.1-or-later"
14LICENSE:${PN}-libmount = "LGPL-2.1-or-later"
15LICENSE:${PN}-libsmartcols = "LGPL-2.1-or-later"
16
17LIC_FILES_CHKSUM = "file://README.licensing;md5=cc80239f106687ab39ef0271ff5cf4ba \
18 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
19 file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
20 file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
21 file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af \
22 file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
23 file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c \
24 file://libmount/COPYING;md5=7c7e39fb7d70ffe5d693a643e29987c2 \
25 file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
26 file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
27 file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
28 "
29
30FILESEXTRAPATHS:prepend := "${THISDIR}/util-linux:" 9FILESEXTRAPATHS:prepend := "${THISDIR}/util-linux:"
31MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" 10MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
32SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.xz \ 11SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.xz \
33 file://mit-license.patch \
34 file://configure-sbindir.patch \ 12 file://configure-sbindir.patch \
35 file://runuser.pamd \ 13 file://runuser.pamd \
36 file://runuser-l.pamd \ 14 file://runuser-l.pamd \
@@ -38,8 +16,12 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
38 file://run-ptest \ 16 file://run-ptest \
39 file://display_testname_for_subtest.patch \ 17 file://display_testname_for_subtest.patch \
40 file://avoid_parallel_tests.patch \ 18 file://avoid_parallel_tests.patch \
41 file://0001-login-utils-include-libgen.h-for-basename-API.patch \
42 file://fcntl-lock.c \ 19 file://fcntl-lock.c \
20 file://0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch \
21 file://0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch \
22 file://0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch \
43 " 23 "
44 24
45SRC_URI[sha256sum] = "7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f" 25SRC_URI[sha256sum] = "81ee93b3cfdfeb7d7c4090cedeba1d7bbce9141fd0b501b686b3fe475ddca4c6"
26
27CVE_PRODUCT = "util-linux"
diff --git a/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch b/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch
deleted file mode 100644
index 6258710e1e..0000000000
--- a/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From d44e3ad1f6f8b5c1b3098bb7d537943a4c21d22f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 3 Dec 2023 19:59:46 -0800
4Subject: [PATCH] login-utils: include libgen.h for basename API
5
6musl has removed the non-prototype declaration of basename from string.h [1] which now results in build errors with clang-17+ compiler
7
8include libgen.h for using the posix declaration of the funciton.
9
10Fixes
11
12../util-linux-2.39.2/login-utils/su-common.c:847:20: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
13 847 | shell_basename = basename(shell);
14 | ^
15
16[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
17
18Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2615]
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20
21---
22 login-utils/su-common.c | 10 +++++++---
23 1 file changed, 7 insertions(+), 3 deletions(-)
24
25diff --git a/login-utils/su-common.c b/login-utils/su-common.c
26index b674920..3297c78 100644
27--- a/login-utils/su-common.c
28+++ b/login-utils/su-common.c
29@@ -26,6 +26,7 @@
30 #include <sys/types.h>
31 #include <pwd.h>
32 #include <grp.h>
33+#include <libgen.h>
34 #include <security/pam_appl.h>
35 #ifdef HAVE_SECURITY_PAM_MISC_H
36 # include <security/pam_misc.h>
37@@ -840,17 +841,20 @@ static void run_shell(
38 su->simulate_login ? " login" : "",
39 su->fast_startup ? " fast-start" : ""));
40
41+ char* tmp = xstrdup(shell);
42 if (su->simulate_login) {
43 char *arg0;
44 char *shell_basename;
45
46- shell_basename = basename(shell);
47+ shell_basename = basename(tmp);
48 arg0 = xmalloc(strlen(shell_basename) + 2);
49 arg0[0] = '-';
50 strcpy(arg0 + 1, shell_basename);
51 args[0] = arg0;
52- } else
53- args[0] = basename(shell);
54+ } else {
55+ args[0] = basename(tmp);
56+ }
57+ free(tmp);
58
59 if (su->fast_startup)
60 args[argno++] = "-f";
diff --git a/meta/recipes-core/util-linux/util-linux/0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch b/meta/recipes-core/util-linux/util-linux/0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch
new file mode 100644
index 0000000000..e3f9112192
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux/0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch
@@ -0,0 +1,36 @@
1From b3a1d92a9078fada31b2cf64b802edd616026766 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 26 May 2025 15:24:16 +0800
4Subject: [PATCH] lsfd/mkfds-foreign-sockets: skip when lacking sock_diag
5 ability
6
7The ENDPOINTS will need sock_diag ability. The kernel might not
8enable related configs. Check and skip in case of lacking such ability.
9
10Fixes: https://github.com/util-linux/util-linux/issues/3590
11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13
14Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/3591]
15
16Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
17---
18 tests/ts/lsfd/mkfds-foreign-sockets | 2 ++
19 1 file changed, 2 insertions(+)
20
21diff --git a/tests/ts/lsfd/mkfds-foreign-sockets b/tests/ts/lsfd/mkfds-foreign-sockets
22index cd94da799..76138a7a6 100755
23--- a/tests/ts/lsfd/mkfds-foreign-sockets
24+++ b/tests/ts/lsfd/mkfds-foreign-sockets
25@@ -30,6 +30,8 @@ ts_skip_nonroot
26 ts_skip_qemu_user
27 ts_cd "$TS_OUTDIR"
28
29+lsfd_check_sockdiag "unix"
30+
31 declare -A tcase
32 tcase[NAME]="state=connected"
33 tcase[SOCK.NETNS]=
34--
352.34.1
36
diff --git a/meta/recipes-core/util-linux/util-linux/0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch b/meta/recipes-core/util-linux/util-linux/0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch
new file mode 100644
index 0000000000..dece0e94b7
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux/0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch
@@ -0,0 +1,36 @@
1From d2eeccf36542d506b660641a07a44f3976772897 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Thu, 15 May 2025 16:44:33 +0800
4Subject: [PATCH] tests/ts/kill/decode: avoid using shell built-in kill command
5
6This test case should do the same as other kill test cases, avoiding
7using shell built-in kill command.
8
9Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
10
11Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/d2eeccf36542d506b660641a07a44f3976772897]
12
13Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
14---
15 tests/ts/kill/decode | 5 +++++
16 1 file changed, 5 insertions(+)
17
18diff --git a/tests/ts/kill/decode b/tests/ts/kill/decode
19index 03bc25ff6..57149899e 100755
20--- a/tests/ts/kill/decode
21+++ b/tests/ts/kill/decode
22@@ -18,6 +18,11 @@ TS_DESC="decode functions"
23 . "$TS_TOPDIR/functions.sh"
24 ts_init "$*"
25
26+# make sure we do not use shell built-in command
27+if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then
28+ TS_CMD_KILL="$(which kill)"
29+fi
30+
31 ts_skip_qemu_user
32
33 ts_check_test_command "$TS_CMD_KILL"
34--
352.34.1
36
diff --git a/meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch b/meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch
new file mode 100644
index 0000000000..f4e2f9e745
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch
@@ -0,0 +1,58 @@
1From c5d5e8873029d170fcab38a6fbd5d5a355574b9f Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 4 Jun 2025 16:27:19 +0800
4Subject: [PATCH] ts/kill/decode: use RTMIN from 'kill -L' instead of
5 hardcoding 34
6
7glibc uses 34 as the value of SIGRTMIN:
8https://sourceware.org/git/?p=glibc.git;a=blob;f=signal/allocrtsig.c;h=8ed8e37dd6c41f94be6eef042ce9db1af1153228;hb=HEAD#l27 """
9static int current_rtmin = __SIGRTMIN + RESERVED_SIGRT; """
10
11musl uses 35 as the value of SIGRTMIN:
12https://git.musl-libc.org/cgit/musl/tree/src/signal/sigrtmin.c
13
14With the hardcoded 34, test case fails with the following difference:
15
16-Ignored: HUP QUIT TRAP PIPE ALRM
17+Ignored: HUP QUIT TRAP PIPE ALRM 34
18
19Extract the value of RTMIN from 'kill -L' to avoid such hardcoding.
20
21Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
22
23Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/c5d5e8873029d170fcab38a6fbd5d5a355574b9f]
24
25Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
26---
27 tests/ts/kill/decode | 9 +++++++--
28 1 file changed, 7 insertions(+), 2 deletions(-)
29
30diff --git a/tests/ts/kill/decode b/tests/ts/kill/decode
31index 57149899e..524b4e5e2 100755
32--- a/tests/ts/kill/decode
33+++ b/tests/ts/kill/decode
34@@ -53,14 +53,19 @@ ACK=
35 # Sending one more USR1 is for making the signal pending state.
36 "$TS_CMD_KILL" -USR1 "$PID"
37 "$TS_CMD_KILL" -d "$PID" | {
38- if [[ $("$TS_CMD_KILL" --list=34) == RT0 ]]; then
39+ SIGRTMIN=$("$TS_CMD_KILL" -L | grep -o '[0-9]\+ RTMIN' | cut -d " " -f 1)
40+ if [[ $("$TS_CMD_KILL" --list=$SIGRTMIN) == RT0 ]]; then
41 # See man signal(7).
42 # The Linux kernel supports a range of 33 different real-time signals,
43 # numbered 32 to 64. However, the glibc POSIX threads implementation in‐
44 # ternally uses two (for NPTL) or three (for LinuxThreads) real-time sig‐
45 # nals (see pthreads(7)), and adjusts the value of SIGRTMIN suitably (to
46 # 34 or 35).
47- sed -e s/' 32 33'// -e s/' 34'//
48+ sed_cmd="sed"
49+ for ((i=32; i<=SIGRTMIN; i++)); do
50+ sed_cmd+=" -e s/' $i'//"
51+ done
52+ eval $sed_cmd
53 else
54 cat
55 fi
56--
572.34.1
58
diff --git a/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch b/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
index 85ad7a5575..fe92afbc53 100644
--- a/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
+++ b/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
1From 0b05e4695a0616badef71dfa459a00ef6ff1b521 Mon Sep 17 00:00:00 2001 1From 43030388e831642d36cb7b9d4b63755e9696714a Mon Sep 17 00:00:00 2001
2From: Tudor Florea <tudor.florea@enea.com> 2From: Tudor Florea <tudor.florea@enea.com>
3Date: Mon, 14 Jun 2021 14:00:31 +0200 3Date: Mon, 14 Jun 2021 14:00:31 +0200
4Subject: [PATCH] util-linux: Add ptest 4Subject: [PATCH] util-linux: Add ptest
@@ -9,13 +9,12 @@ Revert run.sh script accordingly to serialize running tests
9 9
10Signed-off-by: Tudor Florea <tudor.florea@enea.com> 10Signed-off-by: Tudor Florea <tudor.florea@enea.com>
11Upstream-Status: Inappropriate 11Upstream-Status: Inappropriate
12
13--- 12---
14 configure.ac | 2 +- 13 configure.ac | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
16 15
17diff --git a/configure.ac b/configure.ac 16diff --git a/configure.ac b/configure.ac
18index 890212f..870e817 100644 17index 43a23a5..4a84531 100644
19--- a/configure.ac 18--- a/configure.ac
20+++ b/configure.ac 19+++ b/configure.ac
21@@ -11,7 +11,7 @@ AC_CONFIG_MACRO_DIR([m4]) 20@@ -11,7 +11,7 @@ AC_CONFIG_MACRO_DIR([m4])
diff --git a/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch b/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
index 75adeca188..ebb32a6845 100644
--- a/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
+++ b/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
@@ -1,4 +1,4 @@
1From c79222a9a5e3425c55e150edc0b7ac59c573aa2f Mon Sep 17 00:00:00 2001 1From 378998bf82e3b6ff46569077b29f95e72b734681 Mon Sep 17 00:00:00 2001
2From: Phil Blundell <pb@pbcl.net> 2From: Phil Blundell <pb@pbcl.net>
3Date: Mon, 24 Sep 2012 07:24:51 +0100 3Date: Mon, 24 Sep 2012 07:24:51 +0100
4Subject: [PATCH] util-linux: Ensure that ${sbindir} is respected 4Subject: [PATCH] util-linux: Ensure that ${sbindir} is respected
@@ -9,16 +9,15 @@ fix the test, the [ ] syntax was getting eaten by autoconf
9Signed-off-by: Phil Blundell <pb@pbcl.net> 9Signed-off-by: Phil Blundell <pb@pbcl.net>
10Signed-off-by: Saul Wold <sgw@linux.intel.com 10Signed-off-by: Saul Wold <sgw@linux.intel.com
11Upstream-Status: Inappropriate [configuration] 11Upstream-Status: Inappropriate [configuration]
12
13--- 12---
14 configure.ac | 5 ++++- 13 configure.ac | 5 ++++-
15 1 file changed, 4 insertions(+), 1 deletion(-) 14 1 file changed, 4 insertions(+), 1 deletion(-)
16 15
17diff --git a/configure.ac b/configure.ac 16diff --git a/configure.ac b/configure.ac
18index 36c24b4..890212f 100644 17index a5d9102..43a23a5 100644
19--- a/configure.ac 18--- a/configure.ac
20+++ b/configure.ac 19+++ b/configure.ac
21@@ -102,7 +102,10 @@ AC_SUBST([runstatedir]) 20@@ -110,7 +110,10 @@ AC_SUBST([runstatedir])
22 usrbin_execdir='${exec_prefix}/bin' 21 usrbin_execdir='${exec_prefix}/bin'
23 AC_SUBST([usrbin_execdir]) 22 AC_SUBST([usrbin_execdir])
24 23
diff --git a/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch b/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
index 815ae9c915..fa4ae02bc3 100644
--- a/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
+++ b/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
@@ -1,20 +1,19 @@
1From fc5de1de898fd1a372a2fd2fa493dc57323a029d Mon Sep 17 00:00:00 2001 1From 728c2abd889d225535008c3e7a1eef4b8a0aeea2 Mon Sep 17 00:00:00 2001
2From: Tudor Florea <tudor.florea@enea.com> 2From: Tudor Florea <tudor.florea@enea.com>
3Date: Thu, 3 Dec 2015 04:08:00 +0100 3Date: Thu, 3 Dec 2015 04:08:00 +0100
4Subject: [PATCH] Display testname for subtest 4Subject: [PATCH] Display testname for subtest
5 5
6Signed-off-by: Tudor Florea <tudor.florea@enea.com> 6Signed-off-by: Tudor Florea <tudor.florea@enea.com>
7Upstream-Status: Pending 7Upstream-Status: Pending
8
9--- 8---
10 tests/functions.sh | 2 +- 9 tests/functions.sh | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-) 10 1 file changed, 1 insertion(+), 1 deletion(-)
12 11
13diff --git a/tests/functions.sh b/tests/functions.sh 12diff --git a/tests/functions.sh b/tests/functions.sh
14index 5a562a3..098145e 100644 13index 1d7a425..b1f0986 100644
15--- a/tests/functions.sh 14--- a/tests/functions.sh
16+++ b/tests/functions.sh 15+++ b/tests/functions.sh
17@@ -437,7 +437,7 @@ function ts_init_subtest { 16@@ -455,7 +455,7 @@ function ts_init_subtest {
18 17
19 if [ "$TS_PARSABLE" != "yes" ]; then 18 if [ "$TS_PARSABLE" != "yes" ]; then
20 [ $TS_NSUBTESTS -eq 1 ] && echo 19 [ $TS_NSUBTESTS -eq 1 ] && echo
diff --git a/meta/recipes-core/util-linux/util-linux/mit-license.patch b/meta/recipes-core/util-linux/util-linux/mit-license.patch
deleted file mode 100644
index afbec98f18..0000000000
--- a/meta/recipes-core/util-linux/util-linux/mit-license.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1From 5b8fab1584017d9d9be008c23b90128bba41a7b5 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Thu, 28 Mar 2024 12:16:57 +0000
4Subject: [PATCH] README.licensing/flock: Add MIT license mention
5
6Looking at the license text, flock.c is under the MIT license (see
7https://spdx.org/licenses/MIT).
8
9Add an SPDX license identifier header and add to the list of licenses the
10source so everything is correctly listed/identified.
11
12Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
13
14Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2870]
15
16---
17 README.licensing | 2 ++
18 sys-utils/flock.c | 4 +++-
19 2 files changed, 5 insertions(+), 1 deletion(-)
20
21diff --git a/README.licensing b/README.licensing
22index 4454f8392a..535ad34813 100644
23--- a/README.licensing
24+++ b/README.licensing
25@@ -12,6 +12,8 @@ There is code under:
26
27 * LGPL-2.1-or-later - GNU Lesser General Public License 2.1 or any later version
28
29+ * MIT - MIT License
30+
31 * BSD-2-Clause - Simplified BSD License
32
33 * BSD-3-Clause - BSD 3-Clause "New" or "Revised" License
34diff --git a/sys-utils/flock.c b/sys-utils/flock.c
35index fed29d7270..7d878ff810 100644
36--- a/sys-utils/flock.c
37+++ b/sys-utils/flock.c
38@@ -1,4 +1,6 @@
39-/* Copyright 2003-2005 H. Peter Anvin - All Rights Reserved
40+/* SPDX-License-Identifier: MIT
41+ *
42+ * Copyright 2003-2005 H. Peter Anvin - All Rights Reserved
43 *
44 * Permission is hereby granted, free of charge, to any person
45 * obtaining a copy of this software and associated documentation
diff --git a/meta/recipes-core/util-linux/util-linux/ptest.patch b/meta/recipes-core/util-linux/util-linux/ptest.patch
index 6221de7182..ad23001cfa 100644
--- a/meta/recipes-core/util-linux/util-linux/ptest.patch
+++ b/meta/recipes-core/util-linux/util-linux/ptest.patch
@@ -1,24 +1,23 @@
1From d0a69ce80c579cbb7627a2f20e8b92e006a8d8ad Mon Sep 17 00:00:00 2001 1From 18bf6aded9b2a75185ae4b23a41cd2e4322c5e31 Mon Sep 17 00:00:00 2001
2From: Tudor Florea <tudor.florea@enea.com> 2From: Tudor Florea <tudor.florea@enea.com>
3Date: Thu, 3 Dec 2015 04:08:00 +0100 3Date: Thu, 3 Dec 2015 04:08:00 +0100
4Subject: [PATCH] Define TESTS variable 4Subject: [PATCH] Define TESTS variable
5 5
6Signed-off-by: Tudor Florea <tudor.florea@enea.com> 6Signed-off-by: Tudor Florea <tudor.florea@enea.com>
7Upstream-Status: Pending 7Upstream-Status: Pending
8
9--- 8---
10 Makefile.am | 1 + 9 Makefile.am | 1 +
11 1 file changed, 1 insertion(+) 10 1 file changed, 1 insertion(+)
12 11
13diff --git a/Makefile.am b/Makefile.am 12diff --git a/Makefile.am b/Makefile.am
14index effbb02..7d2bd1e 100644 13index 01e9970..c3313ff 100644
15--- a/Makefile.am 14--- a/Makefile.am
16+++ b/Makefile.am 15+++ b/Makefile.am
17@@ -57,6 +57,7 @@ systemdsystemunit_DATA = 16@@ -66,6 +66,7 @@ sysusers_DATA =
18 dist_bashcompletion_DATA = 17 dist_bashcompletion_DATA =
19 check_PROGRAMS = 18 check_PROGRAMS =
20 dist_check_SCRIPTS = 19 dist_check_SCRIPTS =
21+TESTS = $(check_PROGRAMS) 20+TESTS = $(check_PROGRAMS)
22 21
23 PATHFILES = 22 BUILT_SOURCES =
24 ADOCFILES_COMMON = 23
diff --git a/meta/recipes-core/util-linux/util-linux/run-ptest b/meta/recipes-core/util-linux/util-linux/run-ptest
index 7b6b1d1dc2..1410229172 100644
--- a/meta/recipes-core/util-linux/util-linux/run-ptest
+++ b/meta/recipes-core/util-linux/util-linux/run-ptest
@@ -22,9 +22,8 @@ modprobe loop
22# for a long description of mount namespaces in Linux 22# for a long description of mount namespaces in Linux
23mount --make-shared / 23mount --make-shared /
24 24
25# lsfd/option-inet has races in the test script: 25# lsfd/mkfds-bpf* have issues with the gcc 15 upgrade
26# https://github.com/util-linux/util-linux/issues/2399 26./tests/run.sh --use-system-commands --parsable --show-diff --exclude='lsfd/mkfds-bpf-map lsfd/mkfds-bpf-prog' | sed -u '{
27./tests/run.sh --use-system-commands --parsable --show-diff --exclude=lsfd/option-inet | sed -u '{
28 s/^\(.*\):\(.*\) \.\.\. OK$/PASS: \1:\2/ 27 s/^\(.*\):\(.*\) \.\.\. OK$/PASS: \1:\2/
29 s/^\(.*\):\(.*\) \.\.\. FAILED \(.*\)$/FAIL: \1:\2 \3/ 28 s/^\(.*\):\(.*\) \.\.\. FAILED \(.*\)$/FAIL: \1:\2 \3/
30 s/^\(.*\):\(.*\) \.\.\. SKIPPED \(.*\)$/SKIP: \1:\2 \3/ 29 s/^\(.*\):\(.*\) \.\.\. SKIPPED \(.*\)$/SKIP: \1:\2 \3/
diff --git a/meta/recipes-core/util-linux/util-linux_2.39.3.bb b/meta/recipes-core/util-linux/util-linux_2.41.bb
index 83b3f4e05b..41fb3e5951 100644
--- a/meta/recipes-core/util-linux/util-linux_2.39.3.bb
+++ b/meta/recipes-core/util-linux/util-linux_2.41.bb
@@ -1,5 +1,58 @@
1require util-linux.inc 1require util-linux.inc
2 2
3# Most of the applications and the libraries are linked with libcommon.la,
4# which uses these licenses
5LIBCOMMON_LICENSES = "LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & MIT"
6
7# The default license is GPL-2.0-or-later
8DEFAULT_LICENSES = "GPL-2.0-or-later & ${LIBCOMMON_LICENSES}"
9
10LICENSE = "GPL-1.0-or-later & GPL-2.0-only & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause-UC & MIT & EUPL-1.2"
11LICENSE:${PN}-bash-completion = "GPL-2.0-or-later"
12LICENSE:${PN}-dev = "${LIBCOMMON_LICENSES}"
13# All dynamic packages use ${DEFAULT_LICENSES} with the following exceptions
14LICENSE:${PN}-cal = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
15LICENSE:${PN}-col = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
16LICENSE:${PN}-colcrt = "BSD-4-Clause-UC"
17LICENSE:${PN}-colrm = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
18LICENSE:${PN}-column = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
19LICENSE:${PN}-coresched = "EUPL-1.2 & ${LIBCOMMON_LICENSES}"
20LICENSE:${PN}-fcntl-lock = "MIT"
21LICENSE:${PN}-fdisk = "GPL-1.0-or-later & ${DEFAULT_LICENSES}"
22LICENSE:${PN}-fsfreeze = "GPL-1.0-or-later"
23LICENSE:${PN}-hexdump = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
24LICENSE:${PN}-kill = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
25LICENSE:${PN}-libblkid = "${LIBCOMMON_LICENSES}"
26LICENSE:${PN}-libfdisk = "${LIBCOMMON_LICENSES}"
27LICENSE:${PN}-libmount = "${LIBCOMMON_LICENSES}"
28LICENSE:${PN}-libsmartcols = "${LIBCOMMON_LICENSES}"
29LICENSE:${PN}-logger = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
30LICENSE:${PN}-look = "BSD-4-Clause-UC"
31LICENSE:${PN}-lscpu = "GPL-2.0-only & ${DEFAULT_LICENSES}"
32LICENSE:${PN}-mesg = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
33LICENSE:${PN}-nsenter = "GPL-2.0-only & ${DEFAULT_LICENSES}"
34LICENSE:${PN}-renice = "BSD-4-Clause-UC"
35LICENSE:${PN}-rev = "BSD-4-Clause-UC"
36LICENSE:${PN}-script = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
37LICENSE:${PN}-ul = "BSD-4-Clause-UC"
38LICENSE:${PN}-vipw = "BSD-4-Clause-UC & ${DEFAULT_LICENSES}"
39LICENSE:${PN}-wall = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
40LICENSE:${PN}-whereis = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
41LICENSE:${PN}-write = "BSD-4-Clause-UC & ${LIBCOMMON_LICENSES}"
42
43LIC_FILES_CHKSUM = "file://README.licensing;md5=55e895a80bdd4ffc65e167a76d2e7569 \
44 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
45 file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
46 file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
47 file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af \
48 file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
49 file://Documentation/licenses/COPYING.EUPL-1.2;md5=c075d2767167a2355b23392018a1cbbd \
50 file://libmount/COPYING;md5=7c7e39fb7d70ffe5d693a643e29987c2 \
51 file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
52 file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
53 file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
54 "
55
3inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest gtk-doc 56inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest gtk-doc
4DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-libuuid" 57DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-libuuid"
5 58
@@ -11,6 +64,9 @@ python util_linux_binpackages () {
11 pn = d.getVar('PN') 64 pn = d.getVar('PN')
12 d.appendVar('RRECOMMENDS:%s' % pn, ' %s' % pkg) 65 d.appendVar('RRECOMMENDS:%s' % pn, ' %s' % pkg)
13 66
67 if not d.getVar('LICENSE:' + pkg):
68 d.setVar('LICENSE:' + pkg, '${DEFAULT_LICENSES}')
69
14 if d.getVar('ALTERNATIVE:' + pkg): 70 if d.getVar('ALTERNATIVE:' + pkg):
15 return 71 return
16 if d.getVarFlag('ALTERNATIVE_LINK_NAME', modulename): 72 if d.getVarFlag('ALTERNATIVE_LINK_NAME', modulename):
@@ -59,7 +115,8 @@ python util_linux_libpackages() {
59 115
60PACKAGESPLITFUNCS =+ "util_linux_libpackages" 116PACKAGESPLITFUNCS =+ "util_linux_libpackages"
61 117
62PACKAGES_DYNAMIC = "^${PN}-.*" 118PACKAGES_DYNAMIC = "^${PN}(?!.*-native)-.*"
119PACKAGES_DYNAMIC:class-native = "^${BPN}-.*-native"
63 120
64UTIL_LINUX_LIBDIR = "${libdir}" 121UTIL_LINUX_LIBDIR = "${libdir}"
65UTIL_LINUX_LIBDIR:class-target = "${base_libdir}" 122UTIL_LINUX_LIBDIR:class-target = "${base_libdir}"
@@ -90,7 +147,10 @@ EXTRA_OECONF:append = " --disable-hwclock-gplv3"
90# build host versions during development 147# build host versions during development
91# 148#
92PACKAGECONFIG ?= "pcre2" 149PACKAGECONFIG ?= "pcre2"
93PACKAGECONFIG:class-target ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'chfn-chsh pam', '', d)}" 150PACKAGECONFIG:class-target ?= "\
151 libmount-mountfd-support \
152 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'chfn-chsh pam lastlog2', '', d)} \
153"
94# inherit manpages requires this to be present, however util-linux does not have 154# inherit manpages requires this to be present, however util-linux does not have
95# configuration options, and installs manpages always 155# configuration options, and installs manpages always
96PACKAGECONFIG[manpages] = "" 156PACKAGECONFIG[manpages] = ""
@@ -106,6 +166,14 @@ PACKAGECONFIG[pcre2] = ",,libpcre2"
106PACKAGECONFIG[cryptsetup] = "--with-cryptsetup,--without-cryptsetup,cryptsetup" 166PACKAGECONFIG[cryptsetup] = "--with-cryptsetup,--without-cryptsetup,cryptsetup"
107PACKAGECONFIG[chfn-chsh] = "--enable-chfn-chsh,--disable-chfn-chsh," 167PACKAGECONFIG[chfn-chsh] = "--enable-chfn-chsh,--disable-chfn-chsh,"
108PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux" 168PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
169PACKAGECONFIG[lastlog2] = "--enable-liblastlog2,--disable-liblastlog2,sqlite3"
170# Using the new file descriptors based mount kernel API can cause rootfs remount failure with some older kernels.
171# Of currently supported LTS kernels, the old mount API should be used with:
172# - versions prior to 6.6.18 in the 6.6.y series.
173# - versions prior to 6.1.79 in the 6.1.y series.
174# - versions till at least 5.15.164 in the 5.15.y series.
175# - with 5.10.y, 5.4.y and 4.19.y series kernels, libmount seemed to use the old API regardless of this option.
176PACKAGECONFIG[libmount-mountfd-support] = "--enable-libmount-mountfd-support,--disable-libmount-mountfd-support"
109 177
110EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'" 178EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'"
111 179
@@ -117,6 +185,9 @@ FILES:${PN}-mount = "${sysconfdir}/default/mountall"
117FILES:${PN}-runuser = "${sysconfdir}/pam.d/runuser*" 185FILES:${PN}-runuser = "${sysconfdir}/pam.d/runuser*"
118FILES:${PN}-su = "${sysconfdir}/pam.d/su-l" 186FILES:${PN}-su = "${sysconfdir}/pam.d/su-l"
119CONFFILES:${PN}-su = "${sysconfdir}/pam.d/su-l" 187CONFFILES:${PN}-su = "${sysconfdir}/pam.d/su-l"
188FILES:${PN}-lastlog2 += "${base_libdir}/security/pam_lastlog2.so \
189 ${nonarch_libdir}/tmpfiles.d/lastlog2.conf \
190 ${sysconfdir}/default/volatiles/99_lastlog2"
120FILES:${PN}-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ 191FILES:${PN}-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \
121 ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ 192 ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \
122 ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" 193 ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*"
@@ -135,8 +206,8 @@ RDEPENDS:${PN}-dev += " util-linux-libuuid-dev"
135 206
136RPROVIDES:${PN}-dev = "${PN}-libblkid-dev ${PN}-libmount-dev" 207RPROVIDES:${PN}-dev = "${PN}-libblkid-dev ${PN}-libmount-dev"
137 208
138RDEPENDS:${PN}-bash-completion += "${PN}-lsblk" 209RDEPENDS:${PN}-bash-completion += "${PN}-lsblk ${PN}-findmnt"
139RDEPENDS:${PN}-ptest += "bash bc btrfs-tools coreutils e2fsprogs findutils grep iproute2 kmod procps sed socat which xz" 210RDEPENDS:${PN}-ptest += "bash bc btrfs-tools coreutils e2fsprogs findutils grep iproute2 kmod procps sed socat which xz diffutils"
140RRECOMMENDS:${PN}-ptest += "kernel-module-scsi-debug kernel-module-sd-mod kernel-module-loop kernel-module-algif-hash" 211RRECOMMENDS:${PN}-ptest += "kernel-module-scsi-debug kernel-module-sd-mod kernel-module-loop kernel-module-algif-hash"
141RDEPENDS:${PN}-swaponoff = "${PN}-swapon ${PN}-swapoff" 212RDEPENDS:${PN}-swaponoff = "${PN}-swapon ${PN}-swapoff"
142ALLOW_EMPTY:${PN}-swaponoff = "1" 213ALLOW_EMPTY:${PN}-swaponoff = "1"
@@ -147,18 +218,21 @@ SYSTEMD_AUTO_ENABLE:${PN}-uuidd = "disable"
147SYSTEMD_SERVICE:${PN}-fstrim = "fstrim.timer fstrim.service" 218SYSTEMD_SERVICE:${PN}-fstrim = "fstrim.timer fstrim.service"
148SYSTEMD_AUTO_ENABLE:${PN}-fstrim = "disable" 219SYSTEMD_AUTO_ENABLE:${PN}-fstrim = "disable"
149 220
221do_compile:prepend () {
222 # this is a workaround for the unnecessary remake problem. Issue and PR are as below:
223 # https://github.com/util-linux/util-linux/issues/3061
224 # https://github.com/util-linux/util-linux/pull/3064
225 # When newly release tarball contains the above fix, the following workaround could be dropped.
226 [ -e ${S}/libsmartcols/src/filter-scanner.c ] && touch ${S}/libsmartcols/src/filter-scanner.c
227 [ -e ${S}/libsmartcols/src/filter-parser.c ] && touch ${S}/libsmartcols/src/filter-parser.c
228}
229
150do_compile:append () { 230do_compile:append () {
151 cp ${WORKDIR}/fcntl-lock.c ${S}/fcntl-lock.c 231 cp ${UNPACKDIR}/fcntl-lock.c ${S}/fcntl-lock.c
152 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/fcntl-lock.c -o ${B}/fcntl-lock 232 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/fcntl-lock.c -o ${B}/fcntl-lock
153} 233}
154 234
155do_install () { 235do_install:append () {
156 # with ccache the timestamps on compiled files may
157 # end up earlier than on their inputs, this allows
158 # for the resultant compilation in the install step.
159 oe_runmake 'CC=${CC}' 'LD=${LD}' \
160 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install
161
162 mkdir -p ${D}${base_bindir} 236 mkdir -p ${D}${base_bindir}
163 237
164 sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" 238 sbinprogs="agetty ctrlaltdel cfdisk vipw vigr"
@@ -194,12 +268,24 @@ do_install () {
194do_install:append:class-target () { 268do_install:append:class-target () {
195 if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then 269 if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
196 install -d ${D}${sysconfdir}/pam.d 270 install -d ${D}${sysconfdir}/pam.d
197 install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser 271 install -m 0644 ${UNPACKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser
198 install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l 272 install -m 0644 ${UNPACKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l
199 # Required for "su -" aka "su --login" because 273 # Required for "su -" aka "su --login" because
200 # otherwise it uses "other", which has "auth pam_deny.so" 274 # otherwise it uses "other", which has "auth pam_deny.so"
201 # and thus prevents the operation. 275 # and thus prevents the operation.
202 ln -s su ${D}${sysconfdir}/pam.d/su-l 276 ln -s su ${D}${sysconfdir}/pam.d/su-l
277
278 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
279 install -d ${D}${nonarch_libdir}/tmpfiles.d
280 install -m 0644 ${S}/misc-utils/lastlog2-tmpfiles.conf.in \
281 ${D}${nonarch_libdir}/tmpfiles.d/lastlog2.conf
282 fi
283
284 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
285 install -d ${D}${sysconfdir}/default/volatiles
286 echo "d root root 0755 /var/lib/lastlog none" \
287 > ${D}${sysconfdir}/default/volatiles/99_lastlog2
288 fi
203 fi 289 fi
204} 290}
205# nologin causes a conflict with shadow-native 291# nologin causes a conflict with shadow-native
@@ -282,8 +368,11 @@ blkid.8 eject.1 findfs.8 fsck.8 kill.1 last.1 lastb.1 libblkid.3 logger.1 mesg.1
282mountpoint.1 nologin.8 rfkill.8 sulogin.8 utmpdump.1 uuid.3 wall.1\ 368mountpoint.1 nologin.8 rfkill.8 sulogin.8 utmpdump.1 uuid.3 wall.1\
283" 369"
284ALTERNATIVE:${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'su.1', '', d)}" 370ALTERNATIVE:${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'su.1', '', d)}"
371ALTERNATIVE:${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'chfn-chsh', 'chfn.1 chsh.1', '', d)}"
285 372
286ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8" 373ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8"
374ALTERNATIVE_LINK_NAME[chfn.1] = "${mandir}/man1/chfn.1"
375ALTERNATIVE_LINK_NAME[chsh.1] = "${mandir}/man1/chsh.1"
287ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1" 376ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1"
288ALTERNATIVE_LINK_NAME[findfs.8] = "${mandir}/man8/findfs.8" 377ALTERNATIVE_LINK_NAME[findfs.8] = "${mandir}/man8/findfs.8"
289ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" 378ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
@@ -319,13 +408,15 @@ do_install_ptest() {
319 cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/ 408 cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/
320 cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected 409 cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected
321 cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ 410 cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/
322 cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} 411 cp ${B}/config.h ${D}${PTEST_PATH}
323 412
324 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest 413 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest
325 414
326 # chfn needs PAM
327 if ! ${@bb.utils.contains('PACKAGECONFIG', 'pam', 'true', 'false', d)}; then 415 if ! ${@bb.utils.contains('PACKAGECONFIG', 'pam', 'true', 'false', d)}; then
416 # chfn needs PAM
328 rm -rf ${D}${PTEST_PATH}/tests/ts/chfn 417 rm -rf ${D}${PTEST_PATH}/tests/ts/chfn
418 # su is not enabled when pam is not in PACKAGECONFIG
419 rm -rf ${D}${PTEST_PATH}/tests/ts/su
329 fi 420 fi
330 # remove raid tests, known failures and avoid dependency on mdadm therefore 421 # remove raid tests, known failures and avoid dependency on mdadm therefore
331 # See https://github.com/util-linux/util-linux/commit/7519c3edab120b14623931d5ddb16fdc6e7cad5d 422 # See https://github.com/util-linux/util-linux/commit/7519c3edab120b14623931d5ddb16fdc6e7cad5d
@@ -339,6 +430,7 @@ do_install_ptest() {
339do_install_ptest:append:libc-musl() { 430do_install_ptest:append:libc-musl() {
340 for t in tests/ts/col/multibyte \ 431 for t in tests/ts/col/multibyte \
341 tests/ts/lib/timeutils \ 432 tests/ts/lib/timeutils \
433 tests/ts/misc/enosys \
342 tests/ts/dmesg/limit; do 434 tests/ts/dmesg/limit; do
343 rm -rf ${D}${PTEST_PATH}/$t 435 rm -rf ${D}${PTEST_PATH}/$t
344 done 436 done
diff --git a/meta/recipes-core/volatile-binds/files/mount-copybind b/meta/recipes-core/volatile-binds/files/mount-copybind
index ddc4357615..5885880534 100755
--- a/meta/recipes-core/volatile-binds/files/mount-copybind
+++ b/meta/recipes-core/volatile-binds/files/mount-copybind
@@ -45,9 +45,11 @@ if [ -d "$mountpoint" ]; then
45 45
46 # Fast version of calculating `dirname ${spec}`/.`basename ${spec}`-work 46 # Fast version of calculating `dirname ${spec}`/.`basename ${spec}`-work
47 overlay_workdir="${spec%/*}/.${spec##*/}-work" 47 overlay_workdir="${spec%/*}/.${spec##*/}-work"
48 mkdir "${overlay_workdir}" 48 if [ "$MOUNT_COPYBIND_AVOID_OVERLAYFS" != 1 ]; then
49 mkdir "${overlay_workdir}"
50 fi
49 51
50 # Try to mount using overlay, which is must faster than copying files. 52 # Try to mount using overlay, which is much faster than copying files.
51 # If that fails, fall back to slower copy. 53 # If that fails, fall back to slower copy.
52 if command -v selinuxenabled > /dev/null 2>&1; then 54 if command -v selinuxenabled > /dev/null 2>&1; then
53 if selinuxenabled; then 55 if selinuxenabled; then
@@ -55,6 +57,7 @@ if [ -d "$mountpoint" ]; then
55 fi 57 fi
56 fi 58 fi
57 if [ "$MOUNT_COPYBIND_AVOID_OVERLAYFS" = 1 ] || ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir""$mountcontext" "$mountpoint" > /dev/null 2>&1; then 59 if [ "$MOUNT_COPYBIND_AVOID_OVERLAYFS" = 1 ] || ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir""$mountcontext" "$mountpoint" > /dev/null 2>&1; then
60 rm -rf "$overlay_workdir"
58 61
59 if [ "$specdir_existed" != "yes" ]; then 62 if [ "$specdir_existed" != "yes" ]; then
60 cp -aPR "$mountpoint"/. "$spec/" 63 cp -aPR "$mountpoint"/. "$spec/"
diff --git a/meta/recipes-core/volatile-binds/volatile-binds.bb b/meta/recipes-core/volatile-binds/volatile-binds.bb
index cca8a65fb4..857bcc93ff 100644
--- a/meta/recipes-core/volatile-binds/volatile-binds.bb
+++ b/meta/recipes-core/volatile-binds/volatile-binds.bb
@@ -9,7 +9,7 @@ SRC_URI = "\
9 file://volatile-binds.service.in \ 9 file://volatile-binds.service.in \
10" 10"
11 11
12S = "${WORKDIR}" 12S = "${UNPACKDIR}"
13 13
14inherit allarch systemd features_check 14inherit allarch systemd features_check
15 15
@@ -64,7 +64,6 @@ END
64 "$var_lib_servicefile" 64 "$var_lib_servicefile"
65 fi 65 fi
66} 66}
67do_compile[dirs] = "${WORKDIR}"
68 67
69do_install () { 68do_install () {
70 install -d ${D}${base_sbindir} 69 install -d ${D}${base_sbindir}
@@ -82,4 +81,3 @@ do_install () {
82 ln -s /dev/null ${D}${sysconfdir}/tmpfiles.d/etc.conf 81 ln -s /dev/null ${D}${sysconfdir}/tmpfiles.d/etc.conf
83 ln -s /dev/null ${D}${sysconfdir}/tmpfiles.d/home.conf 82 ln -s /dev/null ${D}${sysconfdir}/tmpfiles.d/home.conf
84} 83}
85do_install[dirs] = "${WORKDIR}"
diff --git a/meta/recipes-core/zlib/site_config/headers b/meta/recipes-core/zlib/site_config/headers
deleted file mode 100644
index 50268918aa..0000000000
--- a/meta/recipes-core/zlib/site_config/headers
+++ /dev/null
@@ -1 +0,0 @@
1zlib.h
diff --git a/meta/recipes-core/zlib/zlib_1.3.1.bb b/meta/recipes-core/zlib/zlib_1.3.1.bb
index e6a81ef789..e62c50c5df 100644
--- a/meta/recipes-core/zlib/zlib_1.3.1.bb
+++ b/meta/recipes-core/zlib/zlib_1.3.1.bb
@@ -19,7 +19,7 @@ SRC_URI[sha256sum] = "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b
19# to PREMIRRORS so it is also searched automatically. 19# to PREMIRRORS so it is also searched automatically.
20PREMIRRORS:append = " https://zlib.net/ https://zlib.net/fossils/" 20PREMIRRORS:append = " https://zlib.net/ https://zlib.net/fossils/"
21 21
22CFLAGS += "-D_REENTRANT" 22CFLAGS += "-D_REENTRANT -fPIE"
23 23
24RDEPENDS:${PN}-ptest += "make" 24RDEPENDS:${PN}-ptest += "make"
25 25
@@ -47,4 +47,6 @@ do_install_ptest() {
47BBCLASSEXTEND = "native nativesdk" 47BBCLASSEXTEND = "native nativesdk"
48 48
49CVE_STATUS[CVE-2023-45853] = "not-applicable-config: we don't build minizip" 49CVE_STATUS[CVE-2023-45853] = "not-applicable-config: we don't build minizip"
50CVE_STATUS[CVE-2023-6992] = "cpe-incorrect: this CVE is for cloudflare zlib" 50
51# Adding 'CVE_PRODUCT' to avoid false detection of CVEs
52CVE_PRODUCT = "zlib:zlib gnu:zlib"