summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/bin/bitbake-prserv26
-rwxr-xr-xbitbake/bin/bitbake-selftest2
-rwxr-xr-xbitbake/bin/bitbake-setup310
-rw-r--r--bitbake/lib/bb/asyncrpc/client.py22
-rw-r--r--bitbake/lib/bb/build.py2
-rw-r--r--bitbake/lib/bb/cooker.py8
-rw-r--r--bitbake/lib/bb/fetch2/svn.py3
-rw-r--r--bitbake/lib/bb/runqueue.py8
-rw-r--r--bitbake/lib/bb/siggen.py2
-rw-r--r--bitbake/lib/bb/tests/fetch.py10
-rw-r--r--bitbake/lib/prserv/__init__.py97
-rw-r--r--bitbake/lib/prserv/client.py15
-rw-r--r--bitbake/lib/prserv/db.py452
-rw-r--r--bitbake/lib/prserv/serv.py139
-rw-r--r--bitbake/lib/prserv/tests.py386
-rw-r--r--documentation/brief-yoctoprojectqs/index.rst5
-rw-r--r--documentation/migration-guides/release-4.0.rst1
-rw-r--r--documentation/migration-guides/release-notes-4.0.18.rst191
-rw-r--r--documentation/migration-guides/release-notes-5.0.rst55
-rw-r--r--documentation/poky.yaml.in26
-rw-r--r--documentation/ref-manual/svg/releases.svg99
-rwxr-xr-xdocumentation/set_versions.py8
-rw-r--r--meta-poky/conf/templates/default/local.conf.sample2
-rw-r--r--meta-selftest/recipes-test/fortran/fortran-helloworld.bb2
-rw-r--r--meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb16
-rw-r--r--meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb2
-rw-r--r--meta-selftest/recipes-test/wrapper/cmdline-shebang-wrapper-test.bb2
-rw-r--r--meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb2
-rw-r--r--meta/classes-global/base.bbclass4
-rw-r--r--meta/classes-global/insane.bbclass4
-rw-r--r--meta/classes-global/sstate.bbclass2
-rw-r--r--meta/classes-recipe/cmake.bbclass2
-rw-r--r--meta/classes-recipe/kernel-yocto.bbclass38
-rw-r--r--meta/classes-recipe/kernel.bbclass4
-rw-r--r--meta/classes-recipe/ptest.bbclass4
-rw-r--r--meta/classes/create-spdx-2.2.bbclass16
-rw-r--r--meta/conf/bitbake.conf1
-rw-r--r--meta/conf/distro/include/maintainers.inc1
-rw-r--r--meta/lib/oe/package_manager/ipk/__init__.py8
-rw-r--r--meta/lib/oe/patch.py8
-rw-r--r--meta/lib/oe/reproducible.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py12
-rw-r--r--meta/recipes-bsp/acpid/acpid.inc4
-rw-r--r--meta/recipes-bsp/alsa-state/alsa-state.bb8
-rw-r--r--meta/recipes-bsp/keymaps/keymaps_1.0.bb2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc4
-rw-r--r--meta/recipes-bsp/usbinit/usbinit.bb2
-rw-r--r--meta/recipes-connectivity/avahi/avahi_0.8.bb4
-rw-r--r--meta/recipes-connectivity/bind/bind_9.18.26.bb6
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5.inc2
-rw-r--r--meta/recipes-connectivity/connman/connman-gnome_0.7.bb2
-rw-r--r--meta/recipes-connectivity/connman/connman.inc2
-rw-r--r--meta/recipes-connectivity/dhcpcd/dhcpcd_10.0.6.bb2
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_2.5.bb10
-rw-r--r--meta/recipes-connectivity/kea/kea_2.4.1.bb4
-rw-r--r--meta/recipes-connectivity/neard/neard_0.19.bb2
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.4.bb14
-rw-r--r--meta/recipes-connectivity/ofono/ofono_2.4.bb2
-rw-r--r--meta/recipes-connectivity/openssh/openssh_9.7p1.bb4
-rw-r--r--meta/recipes-connectivity/openssl/openssl_3.3.0.bb2
-rw-r--r--meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb4
-rw-r--r--meta/recipes-connectivity/ppp/ppp_2.5.0.bb22
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb2
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb8
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb8
-rw-r--r--meta/recipes-core/base-files/base-files_3.0.14.bb24
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.36.1.bb2
-rw-r--r--meta/recipes-core/busybox/busybox.inc46
-rw-r--r--meta/recipes-core/dbus/dbus_1.14.10.bb4
-rw-r--r--meta/recipes-core/dropbear/dropbear_2024.84.bb12
-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)31
-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)2
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch (renamed from meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch)20
-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)4
-rw-r--r--meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch88
-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)4
-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.80.0.bb5
-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.80.0.bb1
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc71
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc6
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc2
-rw-r--r--meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb2
-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-qemu-stale-process.patch (renamed from meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch)0
-rw-r--r--meta/recipes-core/glibc/glibc_2.39.bb7
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.41.bb2
-rw-r--r--meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb8
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb22
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb2
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb58
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb2
-rw-r--r--meta/recipes-core/readline/readline.inc4
-rw-r--r--meta/recipes-core/seatd/seatd_0.8.0.bb2
-rw-r--r--meta/recipes-core/systemd/systemd-conf_1.0.bb10
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty.bb4
-rw-r--r--meta/recipes-core/systemd/systemd-systemctl-native.bb2
-rw-r--r--meta/recipes-core/systemd/systemd_255.4.bb14
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb4
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_3.04.bb10
-rw-r--r--meta/recipes-core/udev/eudev_3.2.14.bb4
-rw-r--r--meta/recipes-core/udev/udev-extraconf_1.1.bb12
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.39.3.bb8
-rw-r--r--meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb2
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.28.3.bb4
-rw-r--r--meta/recipes-devtools/cmake/cmake_3.28.3.bb8
-rw-r--r--meta/recipes-devtools/distcc/distcc_3.4.bb6
-rw-r--r--meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb2
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb2
-rw-r--r--meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb2
-rw-r--r--meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb6
-rw-r--r--meta/recipes-devtools/llvm/llvm_git.bb2
-rw-r--r--meta/recipes-devtools/lua/lua_5.4.6.bb4
-rw-r--r--meta/recipes-devtools/meson/meson_1.3.1.bb8
-rw-r--r--meta/recipes-devtools/opkg/opkg_0.6.3.bb2
-rw-r--r--meta/recipes-devtools/pkgconf/pkgconf_2.2.0.bb6
-rw-r--r--meta/recipes-devtools/pkgconfig/pkgconfig_git.bb4
-rw-r--r--meta/recipes-devtools/pseudo/pseudo.inc4
-rw-r--r--meta/recipes-devtools/python/python3-maturin-crates.inc474
-rw-r--r--meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch102
-rw-r--r--meta/recipes-devtools/python/python3-maturin_1.5.1.bb (renamed from meta/recipes-devtools/python/python3-maturin_1.4.0.bb)3
-rw-r--r--meta/recipes-devtools/python/python3-pytest_8.2.0.bb (renamed from meta/recipes-devtools/python/python3-pytest_8.1.1.bb)2
-rw-r--r--meta/recipes-devtools/python/python3_3.12.3.bb7
-rw-r--r--meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb4
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb2
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb2
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc4
-rw-r--r--meta/recipes-devtools/repo/repo_2.45.bb2
-rw-r--r--meta/recipes-devtools/rsync/rsync_3.3.0.bb2
-rw-r--r--meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb6
-rw-r--r--meta/recipes-devtools/rust/rust-cross-canadian.inc2
-rw-r--r--meta/recipes-devtools/strace/strace_6.8.bb (renamed from meta/recipes-devtools/strace/strace_6.7.bb)2
-rw-r--r--meta/recipes-devtools/tcf-agent/tcf-agent_git.bb4
-rw-r--r--meta/recipes-extended/at/at_3.2.5.bb8
-rw-r--r--meta/recipes-extended/bc/bc_1.07.1.bb2
-rw-r--r--meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch2
-rw-r--r--meta/recipes-extended/cronie/cronie_1.7.2.bb6
-rw-r--r--meta/recipes-extended/cups/cups.inc4
-rw-r--r--meta/recipes-extended/iptables/iptables_1.8.10.bb8
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.76.bb6
-rw-r--r--meta/recipes-extended/ltp/ltp_20240129.bb1
-rw-r--r--meta/recipes-extended/man-db/man-db_2.12.1.bb2
-rw-r--r--meta/recipes-extended/mdadm/mdadm_4.3.bb2
-rw-r--r--meta/recipes-extended/pam/libpam_1.6.1.bb6
-rw-r--r--meta/recipes-extended/procps/procps_4.0.4.bb2
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb4
-rw-r--r--meta/recipes-extended/screen/screen_4.9.1.bb2
-rw-r--r--meta/recipes-extended/shadow/shadow-securetty_4.6.bb2
-rw-r--r--meta/recipes-extended/shadow/shadow.inc8
-rw-r--r--meta/recipes-extended/sudo/sudo_1.9.15p5.bb2
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.5.2.bb2
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.7.5.bb4
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb4
-rw-r--r--meta/recipes-extended/watchdog/watchdog-config.bb4
-rw-r--r--meta/recipes-extended/watchdog/watchdog_5.16.bb4
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb6
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch11
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb (renamed from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb)8
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_24.0.5.bb (renamed from meta/recipes-graphics/mesa/mesa-gl_24.0.3.bb)0
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc2
-rw-r--r--meta/recipes-graphics/mesa/mesa_24.0.5.bb (renamed from meta/recipes-graphics/mesa/mesa_24.0.3.bb)0
-rw-r--r--meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb2
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.25.0.bb2
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb16
-rw-r--r--meta/recipes-graphics/wayland/weston_13.0.0.bb8
-rw-r--r--meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb2
-rw-r--r--meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb4
-rw-r--r--meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb6
-rw-r--r--meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb8
-rw-r--r--meta/recipes-kernel/kmod/kmod_31.bb2
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb11
-rw-r--r--meta/recipes-kernel/linux/cve-exclusion_6.6.inc1300
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_6.6.bb28
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb2
-rw-r--r--meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb2
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc2
-rw-r--r--meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb2
-rw-r--r--meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb2
-rw-r--r--meta/recipes-sato/pcmanfm/pcmanfm_1.3.2.bb2
-rw-r--r--meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc4
-rw-r--r--meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb2
-rw-r--r--meta/recipes-support/libical/libical_3.0.18.bb3
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_6.16.bb6
-rw-r--r--meta/recipes-support/user-creation/xuser-account_0.1.bb2
-rw-r--r--scripts/lib/recipetool/append.py6
-rwxr-xr-xscripts/oe-debuginfod17
215 files changed, 3706 insertions, 1784 deletions
diff --git a/bitbake/bin/bitbake-prserv b/bitbake/bin/bitbake-prserv
index ad0a069401..580e021fda 100755
--- a/bitbake/bin/bitbake-prserv
+++ b/bitbake/bin/bitbake-prserv
@@ -16,11 +16,18 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib
16import prserv 16import prserv
17import prserv.serv 17import prserv.serv
18 18
19VERSION = "1.1.0" 19VERSION = "2.0.0"
20 20
21PRHOST_DEFAULT="0.0.0.0" 21PRHOST_DEFAULT="0.0.0.0"
22PRPORT_DEFAULT=8585 22PRPORT_DEFAULT=8585
23 23
24def init_logger(logfile, loglevel):
25 numeric_level = getattr(logging, loglevel.upper(), None)
26 if not isinstance(numeric_level, int):
27 raise ValueError("Invalid log level: %s" % loglevel)
28 FORMAT = "%(asctime)-15s %(message)s"
29 logging.basicConfig(level=numeric_level, filename=logfile, format=FORMAT)
30
24def main(): 31def main():
25 parser = argparse.ArgumentParser( 32 parser = argparse.ArgumentParser(
26 description="BitBake PR Server. Version=%s" % VERSION, 33 description="BitBake PR Server. Version=%s" % VERSION,
@@ -70,12 +77,25 @@ def main():
70 action="store_true", 77 action="store_true",
71 help="open database in read-only mode", 78 help="open database in read-only mode",
72 ) 79 )
80 parser.add_argument(
81 "-u",
82 "--upstream",
83 default=os.environ.get("PRSERVER_UPSTREAM", None),
84 help="Upstream PR service (host:port)",
85 )
73 86
74 args = parser.parse_args() 87 args = parser.parse_args()
75 prserv.init_logger(os.path.abspath(args.log), args.loglevel) 88 init_logger(os.path.abspath(args.log), args.loglevel)
76 89
77 if args.start: 90 if args.start:
78 ret=prserv.serv.start_daemon(args.file, args.host, args.port, os.path.abspath(args.log), args.read_only) 91 ret=prserv.serv.start_daemon(
92 args.file,
93 args.host,
94 args.port,
95 os.path.abspath(args.log),
96 args.read_only,
97 args.upstream
98 )
79 elif args.stop: 99 elif args.stop:
80 ret=prserv.serv.stop_daemon(args.host, args.port) 100 ret=prserv.serv.stop_daemon(args.host, args.port)
81 else: 101 else:
diff --git a/bitbake/bin/bitbake-selftest b/bitbake/bin/bitbake-selftest
index f25f23b1ae..ce901232fe 100755
--- a/bitbake/bin/bitbake-selftest
+++ b/bitbake/bin/bitbake-selftest
@@ -15,6 +15,7 @@ import unittest
15try: 15try:
16 import bb 16 import bb
17 import hashserv 17 import hashserv
18 import prserv
18 import layerindexlib 19 import layerindexlib
19except RuntimeError as exc: 20except RuntimeError as exc:
20 sys.exit(str(exc)) 21 sys.exit(str(exc))
@@ -33,6 +34,7 @@ tests = ["bb.tests.codeparser",
33 "bb.tests.utils", 34 "bb.tests.utils",
34 "bb.tests.compression", 35 "bb.tests.compression",
35 "hashserv.tests", 36 "hashserv.tests",
37 "prserv.tests",
36 "layerindexlib.tests.layerindexobj", 38 "layerindexlib.tests.layerindexobj",
37 "layerindexlib.tests.restapi", 39 "layerindexlib.tests.restapi",
38 "layerindexlib.tests.cooker"] 40 "layerindexlib.tests.cooker"]
diff --git a/bitbake/bin/bitbake-setup b/bitbake/bin/bitbake-setup
new file mode 100755
index 0000000000..5baa073082
--- /dev/null
+++ b/bitbake/bin/bitbake-setup
@@ -0,0 +1,310 @@
1#!/usr/bin/env python3
2
3#
4# SPDX-License-Identifier: GPL-2.0-only
5#
6
7import logging
8import os
9import sys
10import argparse
11import warnings
12import json
13import shutil
14import time
15import stat
16import tempfile
17
18bindir = os.path.abspath(os.path.dirname(__file__))
19topdir = os.path.dirname(bindir)
20sys.path[0:0] = [os.path.join(topdir, 'lib')]
21
22import bb.msg
23import bb.process
24
25logger = bb.msg.logger_create('bitbake-setup', sys.stdout)
26
27def init_bb_cache(args):
28 dldir = os.path.join(args.cachedir, 'downloads')
29 persistdir = os.path.join(args.cachedir, 'cache')
30
31 d = bb.data.init()
32 d.setVar("DL_DIR", dldir)
33 d.setVar("PERSISTENT_DIR", persistdir)
34 d.setVar("__BBSRCREV_SEEN", "1")
35 if args.no_network:
36 d.setVar("BB_SRCREV_POLICY", "cache")
37 bb.fetch.fetcher_init(d)
38 return d
39
40def get_config_name(config):
41 return os.path.basename(config).split('.')[0]
42
43def copy_and_commit_config(config_path, dest_config_dir):
44 shutil.copy(config_path, dest_config_dir)
45
46 bb.process.run("git -C {} add .".format(dest_config_dir))
47 bb.process.run("git -C {} commit -a -m 'Configuration at {}'".format(dest_config_dir, time.asctime()))
48
49def _write_layer_list(dest, repodirs):
50 layers = []
51 for r in repodirs:
52 for root, dirs, files in os.walk(os.path.join(dest,r)):
53 if os.path.basename(root) == 'conf' and 'layer.conf' in files:
54 layers.append(os.path.relpath(os.path.dirname(root), dest))
55 layers_f = os.path.join(dest, ".oe-layers.json")
56 with open(layers_f, 'w') as f:
57 json.dump({"version":"1.0","layers":layers}, f, sort_keys=True, indent=4)
58
59def checkout_layers(layers, layerdir, d):
60 repodirs = []
61 oesetupbuild = None
62 for r_name in layers:
63 r_data = layers[r_name]
64 repodir = r_data["path"]
65 repodirs.append(repodir)
66
67 r_remote = r_data['git-remote']
68 rev = r_remote['rev']
69 remotes = r_remote['remotes']
70
71 for remote in remotes:
72 type,host,path,user,pswd,params = bb.fetch.decodeurl(remotes[remote]["uri"])
73 fetchuri = bb.fetch.encodeurl(('git',host,path,user,pswd,params))
74 fetcher = bb.fetch.Fetch(["{};protocol={};rev={};nobranch=1;destsuffix={}".format(fetchuri,type,rev,repodir)], d)
75 fetcher.download()
76 fetcher.unpack(layerdir)
77
78 if os.path.exists(os.path.join(layerdir, repodir, 'scripts/oe-setup-build')):
79 oesetupbuild = os.path.join(layerdir, repodir, 'scripts/oe-setup-build')
80
81 _write_layer_list(layerdir, repodirs)
82
83 if oesetupbuild:
84 oesetupbuild_symlink = os.path.join(layerdir, 'setup-build')
85 if os.path.exists(oesetupbuild_symlink):
86 os.remove(oesetupbuild_symlink)
87 os.symlink(os.path.relpath(oesetupbuild,layerdir),oesetupbuild_symlink)
88
89def setup_build(config, layerdir, builddir):
90 oesetupbuild = os.path.join(layerdir, 'setup-build')
91 if not os.path.exists(oesetupbuild):
92 print("Cannot complete setting up a build directory as oe-setup-build was not found; please use oe-init-build-env manually.")
93 return
94 template = config["template"]
95 backup_builddir = None
96 if os.path.exists(builddir):
97 backup_builddir = builddir + "-backup.{}".format(time.strftime("%Y%m%d%H%M%S"))
98 os.rename(builddir, backup_builddir)
99 print("Existing build directory renamed to {}".format(backup_builddir))
100 bb.process.run("{} setup -c {} -b {} --no-shell".format(oesetupbuild, template, builddir))
101 if backup_builddir:
102 config_diff_stdout, config_diff_stderr = bb.process.run("diff -uNr {} {}".format(os.path.join(backup_builddir, 'conf'), os.path.join(builddir, 'conf')))
103 if config_diff_stdout:
104 print("The bitbake configuration has changed:")
105 print(config_diff_stdout)
106 build_script = os.path.join(builddir, "build.sh")
107 init_script = os.path.join(builddir, "init-build-env")
108 targets = " && ".join(config["targets"])
109 shell = os.environ["SHELL"]
110 with open(build_script,'w') as f:
111 f.write("#!{}\n. {} && {}\n".format(shell, init_script, targets))
112 st = os.stat(build_script)
113 os.chmod(build_script, st.st_mode | stat.S_IEXEC)
114 print("\nRun {} to build using this configuration.".format(build_script))
115
116def get_registry_config(registry_path, id, dest_dir):
117 for root, dirs, files in os.walk(registry_path):
118 for f in files:
119 if f.endswith('.conf.json') and id == get_config_name(f):
120 shutil.copy(os.path.join(root, f), dest_dir)
121 return f
122 raise Exception("Unable to find {} in available configurations; use 'list' sub-command to see what is available".format(id))
123
124def obtain_config(upstream_config, dest_dir, args, d):
125 if upstream_config["type"] == 'local':
126 shutil.copy(upstream_config['path'], dest_dir)
127 basename = os.path.basename(upstream_config['path'])
128 elif upstream_config["type"] == 'network':
129 bb.process.run("wget {}".format(upstream_config["uri"]), cwd=dest_dir)
130 basename = os.path.basename(upstream_config['uri'])
131 elif upstream_config["type"] == 'registry':
132 registry_path = update_registry(upstream_config["registry"], args.cachedir, d)
133 basename = get_registry_config(registry_path, upstream_config["id"], dest_dir)
134 else:
135 raise Exception("Unknown configuration type: {}".format(upstream_config["type"]))
136 return os.path.join(dest_dir, basename)
137
138def update_build_config(config_path, confdir, builddir, layerdir, d, update_layers_only=False):
139 build_config = json.load(open(config_path))["configuration"]["bitbake-setup"]["default"]
140 layer_config = json.load(open(config_path))["sources"]
141 if not update_layers_only:
142 copy_and_commit_config(config_path, confdir)
143 checkout_layers(layer_config, layerdir, d)
144 setup_build(build_config, layerdir, builddir)
145
146def init_config(args, d):
147 topbuilddir = args.build_dir or os.path.join(os.path.expanduser('~'), 'builds', get_config_name(args.config))
148 os.makedirs(topbuilddir)
149 print("Initializing build in {}".format(topbuilddir))
150
151 if os.path.exists(args.config):
152 upstream_config = {'type':'local','path':os.path.abspath(args.config)}
153 elif args.config.startswith("http://") or args.config.startswith("https://"):
154 upstream_config = {'type':'network','uri':args.config}
155 else:
156 upstream_config = {'type':'registry','registry':args.registry,'id':args.config}
157
158 with open(os.path.join(topbuilddir, "config-upstream.json"),'w') as s:
159 json.dump(upstream_config, s, sort_keys=True, indent=4)
160
161 confdir = os.path.join(topbuilddir, "config")
162 builddir = os.path.join(topbuilddir, "build")
163 layerdir = os.path.join(topbuilddir, "layers")
164
165 os.makedirs(confdir)
166 os.makedirs(layerdir)
167
168 bb.process.run("git -C {} init -b main".format(confdir))
169 bb.process.run("git -C {} commit --allow-empty -m 'Initial commit'".format(confdir))
170
171 with tempfile.TemporaryDirectory(dir=topbuilddir, prefix='config-tmp-') as tmpdirname:
172 config_path = obtain_config(upstream_config, tmpdirname, args, d)
173 update_build_config(config_path, confdir, builddir, layerdir, d)
174
175def print_diff(file1, file2):
176 try:
177 bb.process.run('diff -u {} {}'.format(file1, file2))
178 except bb.process.ExecutionError as e:
179 if e.exitcode == 1:
180 print(e.stdout)
181 else:
182 raise e
183
184def are_layers_changed(layers, layerdir, d):
185 changed = False
186 for r_name in layers:
187 r_data = layers[r_name]
188 repodir = r_data["path"]
189
190 r_remote = r_data['git-remote']
191 rev = r_remote['rev']
192 remotes = r_remote['remotes']
193
194 for remote in remotes:
195 type,host,path,user,pswd,params = bb.fetch.decodeurl(remotes[remote]["uri"])
196 fetchuri = bb.fetch.encodeurl(('git',host,path,user,pswd,params))
197 fetcher = bb.fetch.FetchData("{};protocol={};rev={};nobranch=1;destsuffix={}".format(fetchuri,type,rev,repodir), d)
198 upstream_revision = fetcher.method.latest_revision(fetcher, d, 'default')
199 rev_parse_result = bb.process.run('git -C {} rev-parse HEAD'.format(os.path.join(layerdir, repodir)))
200 local_revision = rev_parse_result[0].strip()
201 if upstream_revision != local_revision:
202 changed = True
203 print('Layer repository {} checked out into {} updated revision {} from {} to {}'.format(remotes[remote]["uri"], os.path.join(layerdir, repodir), rev, local_revision, upstream_revision))
204
205 return changed
206
207def build_status(args, d, update=False):
208 topbuilddir = args.build_dir
209
210 confdir = os.path.join(topbuilddir, "config")
211 builddir = os.path.join(topbuilddir, "build")
212 layerdir = os.path.join(topbuilddir, "layers")
213
214 upstream_config = json.load(open(os.path.join(topbuilddir, "config-upstream.json")))
215
216 with tempfile.TemporaryDirectory(dir=topbuilddir, prefix='config-tmp-') as tmpdirname:
217 current_config_path = obtain_config(upstream_config, tmpdirname, args, d)
218
219 current_config = open(current_config_path).read()
220 build_config_path = os.path.join(confdir, os.path.basename(current_config_path))
221 build_config = open(build_config_path).read()
222 if current_config != build_config:
223 print('Top level configuration has changed:')
224 print_diff(build_config_path, current_config_path)
225 if update:
226 update_build_config(current_config_path, confdir, builddir, layerdir, d)
227 return
228
229 if are_layers_changed(json.loads(build_config)["sources"], layerdir, d):
230 if update:
231 update_build_config(build_config_path, confdir, builddir, layerdir, d, update_layers_only=True)
232 return
233
234 print("Configuration has not changed.")
235
236def build_update(args, d):
237 build_status(args, d, update=True)
238
239def update_registry(registry, cachedir, d):
240 registrydir = 'configurations'
241 fetcher = bb.fetch.Fetch(["{};destsuffix={}".format(registry, registrydir)], d)
242 fetcher.download()
243 fetcher.unpack(cachedir)
244 return os.path.join(cachedir, registrydir)
245
246def list_registry(registry_path):
247 print("Available configurations:")
248 for root, dirs, files in os.walk(registry_path):
249 for f in files:
250 if f.endswith('.conf.json'):
251 config_name = get_config_name(f)
252 config_desc = json.load(open(os.path.join(root, f)))["description"]
253 print("{}\t{}".format(config_name, config_desc))
254
255def list_configs(args, d):
256 registry_path = update_registry(args.registry, args.cachedir, d)
257 list_registry(registry_path)
258
259def main():
260 parser = argparse.ArgumentParser(
261 description="BitBake setup utility",
262 epilog="Use %(prog)s <subcommand> --help to get help on a specific command"
263 )
264 parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
265 parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
266 parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
267 parser.add_argument('--registry', default='git://github.com/kanavin/bitbake-setup-configurations.git;protocol=https;branch=main;rev=main', help='Git repository with configuration files (in bitbake SRC_URI format)')
268 parser.add_argument('--cachedir', default=os.path.join(os.path.expanduser('~'), '.bitbake-setup'), help='Directory where downloaded configurations and layers are cached for reproducibility and offline builds')
269 parser.add_argument('--no-network', action='store_true', help='Do not check whether configuration repositories and layer repositories have been updated; use only the local cache.')
270
271 subparsers = parser.add_subparsers()
272
273 parser_init = subparsers.add_parser('init', help='Initialize a configuration')
274 parser_init.add_argument('config', help="path/URL/id to a configuration file")
275 parser_init.add_argument('--build-dir', help="Where to initialize the build", required=False)
276 parser_init.set_defaults(func=init_config)
277
278 parser_status = subparsers.add_parser('status', help='Check if the build configuration needs to be updated')
279 parser_status.add_argument('build_dir', help="Path to the build")
280 parser_status.set_defaults(func=build_status)
281
282 parser_status = subparsers.add_parser('update', help='Update a build configuration')
283 parser_status.add_argument('build_dir', help="Path to the build")
284 parser_status.set_defaults(func=build_update)
285
286 parser_list = subparsers.add_parser('list', help='List available configurations')
287 parser_list.set_defaults(func=list_configs)
288
289 args = parser.parse_args()
290
291 logging.basicConfig(stream=sys.stdout)
292 if args.debug:
293 logger.setLevel(logging.DEBUG)
294 elif args.quiet:
295 logger.setLevel(logging.ERROR)
296
297 # Need to re-run logger_create with color argument
298 # (will be the same logger since it has the same name)
299 bb.msg.logger_create('bitbake-setup', output=sys.stdout,
300 color=args.color,
301 level=logger.getEffectiveLevel())
302
303 d = init_bb_cache(args)
304 if 'func' in args:
305 args.func(args, d)
306 else:
307 from argparse import Namespace
308 parser.print_help()
309
310main()
diff --git a/bitbake/lib/bb/asyncrpc/client.py b/bitbake/lib/bb/asyncrpc/client.py
index a350b4fb12..65f3f8964d 100644
--- a/bitbake/lib/bb/asyncrpc/client.py
+++ b/bitbake/lib/bb/asyncrpc/client.py
@@ -24,6 +24,9 @@ ADDR_TYPE_UNIX = 0
24ADDR_TYPE_TCP = 1 24ADDR_TYPE_TCP = 1
25ADDR_TYPE_WS = 2 25ADDR_TYPE_WS = 2
26 26
27WEBSOCKETS_MIN_VERSION = (9, 1)
28
29
27def parse_address(addr): 30def parse_address(addr):
28 if addr.startswith(UNIX_PREFIX): 31 if addr.startswith(UNIX_PREFIX):
29 return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],)) 32 return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],))
@@ -39,6 +42,7 @@ def parse_address(addr):
39 42
40 return (ADDR_TYPE_TCP, (host, int(port))) 43 return (ADDR_TYPE_TCP, (host, int(port)))
41 44
45
42class AsyncClient(object): 46class AsyncClient(object):
43 def __init__( 47 def __init__(
44 self, 48 self,
@@ -86,6 +90,24 @@ class AsyncClient(object):
86 async def connect_websocket(self, uri): 90 async def connect_websocket(self, uri):
87 import websockets 91 import websockets
88 92
93 try:
94 version = tuple(
95 int(v)
96 for v in websockets.__version__.split(".")[
97 0 : len(WEBSOCKETS_MIN_VERSION)
98 ]
99 )
100 except ValueError:
101 raise ImportError(
102 f"Unable to parse websockets version '{websockets.__version__}'"
103 )
104
105 if version < WEBSOCKETS_MIN_VERSION:
106 min_ver_str = ".".join(str(v) for v in WEBSOCKETS_MIN_VERSION)
107 raise ImportError(
108 f"Websockets version {websockets.__version__} is less than minimum required version {min_ver_str}"
109 )
110
89 async def connect_sock(): 111 async def connect_sock():
90 websocket = await websockets.connect(uri, ping_interval=None) 112 websocket = await websockets.connect(uri, ping_interval=None)
91 return WebsocketConnection(websocket, self.timeout) 113 return WebsocketConnection(websocket, self.timeout)
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 44d08f5c55..ab8bce3d57 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -197,6 +197,8 @@ def exec_func(func, d, dirs = None):
197 for cdir in d.expand(cleandirs).split(): 197 for cdir in d.expand(cleandirs).split():
198 bb.utils.remove(cdir, True) 198 bb.utils.remove(cdir, True)
199 bb.utils.mkdirhier(cdir) 199 bb.utils.mkdirhier(cdir)
200 if cdir == oldcwd:
201 os.chdir(cdir)
200 202
201 if flags and dirs is None: 203 if flags and dirs is None:
202 dirs = flags.get('dirs') 204 dirs = flags.get('dirs')
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index c5bfef55d6..939a999974 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -315,13 +315,13 @@ class BBCooker:
315 dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db" 315 dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
316 upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None 316 upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None
317 if upstream: 317 if upstream:
318 import socket
319 try: 318 try:
320 sock = socket.create_connection(upstream.split(":"), 5) 319 with hashserv.create_client(upstream) as client:
321 sock.close() 320 client.ping()
322 except socket.error as e: 321 except (ConnectionError, ImportError) as e:
323 bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s" 322 bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s"
324 % (upstream, repr(e))) 323 % (upstream, repr(e)))
324 upstream = None
325 325
326 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR") 326 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
327 self.hashserv = hashserv.create_server( 327 self.hashserv = hashserv.create_server(
diff --git a/bitbake/lib/bb/fetch2/svn.py b/bitbake/lib/bb/fetch2/svn.py
index d40e4d2909..0852108e7d 100644
--- a/bitbake/lib/bb/fetch2/svn.py
+++ b/bitbake/lib/bb/fetch2/svn.py
@@ -210,3 +210,6 @@ class Svn(FetchMethod):
210 210
211 def _build_revision(self, ud, d): 211 def _build_revision(self, ud, d):
212 return ud.revision 212 return ud.revision
213
214 def supports_checksum(self, urldata):
215 return False
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index bc7e18175d..6b43f303d5 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1290,7 +1290,7 @@ class RunQueueData:
1290 return len(self.runtaskentries) 1290 return len(self.runtaskentries)
1291 1291
1292 def prepare_task_hash(self, tid): 1292 def prepare_task_hash(self, tid):
1293 bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches) 1293 self.runtaskentries[tid].taskhash_deps = bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
1294 self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches) 1294 self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
1295 self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid) 1295 self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
1296 1296
@@ -2445,7 +2445,8 @@ class RunQueueExecute:
2445 unihash = self.rqdata.runtaskentries[task].unihash 2445 unihash = self.rqdata.runtaskentries[task].unihash
2446 deps = self.filtermcdeps(task, mc, deps) 2446 deps = self.filtermcdeps(task, mc, deps)
2447 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn] 2447 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
2448 taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn] 2448 taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps
2449 taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
2449 2450
2450 self.taskdepdata_cache = taskdepdata_cache 2451 self.taskdepdata_cache = taskdepdata_cache
2451 2452
@@ -2812,7 +2813,8 @@ class RunQueueExecute:
2812 taskhash = self.rqdata.runtaskentries[revdep].hash 2813 taskhash = self.rqdata.runtaskentries[revdep].hash
2813 unihash = self.rqdata.runtaskentries[revdep].unihash 2814 unihash = self.rqdata.runtaskentries[revdep].unihash
2814 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn] 2815 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
2815 taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn] 2816 taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps
2817 taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
2816 for revdep2 in deps: 2818 for revdep2 in deps:
2817 if revdep2 not in taskdepdata: 2819 if revdep2 not in taskdepdata:
2818 additional.append(revdep2) 2820 additional.append(revdep2)
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 8ab08ec961..03dfda6f3c 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -381,7 +381,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
381 self.taints[tid] = taint 381 self.taints[tid] = taint
382 logger.warning("%s is tainted from a forced run" % tid) 382 logger.warning("%s is tainted from a forced run" % tid)
383 383
384 return 384 return set(dep for _, dep in self.runtaskdeps[tid])
385 385
386 def get_taskhash(self, tid, deps, dataCaches): 386 def get_taskhash(self, tid, deps, dataCaches):
387 387
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index e5d85f9dac..ed7a39a723 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -511,7 +511,8 @@ class MirrorUriTest(FetcherTest):
511 mirrorvar = "http://.*/.* file:///somepath/downloads/ " \ 511 mirrorvar = "http://.*/.* file:///somepath/downloads/ " \
512 "git://someserver.org/bitbake git://git.openembedded.org/bitbake " \ 512 "git://someserver.org/bitbake git://git.openembedded.org/bitbake " \
513 "https://.*/.* file:///someotherpath/downloads/ " \ 513 "https://.*/.* file:///someotherpath/downloads/ " \
514 "http://.*/.* file:///someotherpath/downloads/" 514 "http://.*/.* file:///someotherpath/downloads/ " \
515 "svn://svn.server1.com/ svn://svn.server2.com/"
515 516
516 def test_urireplace(self): 517 def test_urireplace(self):
517 self.d.setVar("FILESPATH", ".") 518 self.d.setVar("FILESPATH", ".")
@@ -535,6 +536,13 @@ class MirrorUriTest(FetcherTest):
535 uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d) 536 uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
536 self.assertEqual(uris, ['file:///someotherpath/downloads/bitbake-1.0.tar.gz']) 537 self.assertEqual(uris, ['file:///someotherpath/downloads/bitbake-1.0.tar.gz'])
537 538
539 def test_urilistsvn(self):
540 # Catch svn:// -> svn:// bug
541 fetcher = bb.fetch.FetchData("svn://svn.server1.com/isource/svnroot/reponame/tags/tagname;module=path_in_tagnamefolder;protocol=https;rev=2", self.d)
542 mirrors = bb.fetch2.mirror_from_string(self.mirrorvar)
543 uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
544 self.assertEqual(uris, ['svn://svn.server2.com/isource/svnroot/reponame/tags/tagname;module=path_in_tagnamefolder;protocol=https;rev=2'])
545
538 def test_mirror_of_mirror(self): 546 def test_mirror_of_mirror(self):
539 # Test if mirror of a mirror works 547 # Test if mirror of a mirror works
540 mirrorvar = self.mirrorvar + " http://.*/.* http://otherdownloads.yoctoproject.org/downloads/" 548 mirrorvar = self.mirrorvar + " http://.*/.* http://otherdownloads.yoctoproject.org/downloads/"
diff --git a/bitbake/lib/prserv/__init__.py b/bitbake/lib/prserv/__init__.py
index 0e0aa34d0e..a817b03c1e 100644
--- a/bitbake/lib/prserv/__init__.py
+++ b/bitbake/lib/prserv/__init__.py
@@ -4,17 +4,92 @@
4# SPDX-License-Identifier: GPL-2.0-only 4# SPDX-License-Identifier: GPL-2.0-only
5# 5#
6 6
7__version__ = "1.0.0"
8 7
9import os, time 8__version__ = "2.0.0"
10import sys, logging
11 9
12def init_logger(logfile, loglevel): 10import logging
13 numeric_level = getattr(logging, loglevel.upper(), None) 11logger = logging.getLogger("BitBake.PRserv")
14 if not isinstance(numeric_level, int):
15 raise ValueError("Invalid log level: %s" % loglevel)
16 FORMAT = "%(asctime)-15s %(message)s"
17 logging.basicConfig(level=numeric_level, filename=logfile, format=FORMAT)
18 12
19class NotFoundError(Exception): 13from bb.asyncrpc.client import parse_address, ADDR_TYPE_UNIX, ADDR_TYPE_WS
20 pass 14
15def create_server(addr, dbpath, upstream=None, read_only=False):
16 from . import serv
17
18 s = serv.PRServer(dbpath, upstream=upstream, read_only=read_only)
19 host, port = addr.split(":")
20 s.start_tcp_server(host, int(port))
21
22 return s
23
24def increase_revision(ver):
25 """Take a revision string such as "1" or "1.2.3" or even a number and increase its last number
26 This fails if the last number is not an integer"""
27
28 fields=str(ver).split('.')
29 last = fields[-1]
30
31 try:
32 val = int(last)
33 except Exception as e:
34 logger.critical("Unable to increase revision value %s: %s" % (ver, e))
35 raise e
36
37 return ".".join(fields[0:-1] + list(str(val + 1)))
38
39def _revision_greater_or_equal(rev1, rev2):
40 """Compares x.y.z revision numbers, using integer comparison
41 Returns True if rev1 is greater or equal to rev2"""
42
43 fields1 = rev1.split(".")
44 fields2 = rev2.split(".")
45 l1 = len(fields1)
46 l2 = len(fields2)
47
48 for i in range(l1):
49 val1 = int(fields1[i])
50 if i < l2:
51 val2 = int(fields2[i])
52 if val2 < val1:
53 return True
54 elif val2 > val1:
55 return False
56 else:
57 return True
58 return True
59
60def revision_smaller(rev1, rev2):
61 """Compares x.y.z revision numbers, using integer comparison
62 Returns True if rev1 is strictly smaller than rev2"""
63 return not(_revision_greater_or_equal(rev1, rev2))
64
65def revision_greater(rev1, rev2):
66 """Compares x.y.z revision numbers, using integer comparison
67 Returns True if rev1 is strictly greater than rev2"""
68 return _revision_greater_or_equal(rev1, rev2) and (rev1 != rev2)
69
70def create_client(addr):
71 from . import client
72
73 c = client.PRClient()
74
75 try:
76 (typ, a) = parse_address(addr)
77 c.connect_tcp(*a)
78 return c
79 except Exception as e:
80 c.close()
81 raise e
82
83async def create_async_client(addr):
84 from . import client
85
86 c = client.PRAsyncClient()
87
88 try:
89 (typ, a) = parse_address(addr)
90 await c.connect_tcp(*a)
91 return c
92
93 except Exception as e:
94 await c.close()
95 raise e
diff --git a/bitbake/lib/prserv/client.py b/bitbake/lib/prserv/client.py
index 8471ee3046..9f5794c433 100644
--- a/bitbake/lib/prserv/client.py
+++ b/bitbake/lib/prserv/client.py
@@ -6,6 +6,7 @@
6 6
7import logging 7import logging
8import bb.asyncrpc 8import bb.asyncrpc
9from . import create_async_client
9 10
10logger = logging.getLogger("BitBake.PRserv") 11logger = logging.getLogger("BitBake.PRserv")
11 12
@@ -13,16 +14,16 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
13 def __init__(self): 14 def __init__(self):
14 super().__init__("PRSERVICE", "1.0", logger) 15 super().__init__("PRSERVICE", "1.0", logger)
15 16
16 async def getPR(self, version, pkgarch, checksum): 17 async def getPR(self, version, pkgarch, checksum, history=False):
17 response = await self.invoke( 18 response = await self.invoke(
18 {"get-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}} 19 {"get-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "history": history}}
19 ) 20 )
20 if response: 21 if response:
21 return response["value"] 22 return response["value"]
22 23
23 async def test_pr(self, version, pkgarch, checksum): 24 async def test_pr(self, version, pkgarch, checksum, history=False):
24 response = await self.invoke( 25 response = await self.invoke(
25 {"test-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}} 26 {"test-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "history": history}}
26 ) 27 )
27 if response: 28 if response:
28 return response["value"] 29 return response["value"]
@@ -48,9 +49,9 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
48 if response: 49 if response:
49 return response["value"] 50 return response["value"]
50 51
51 async def export(self, version, pkgarch, checksum, colinfo): 52 async def export(self, version, pkgarch, checksum, colinfo, history=False):
52 response = await self.invoke( 53 response = await self.invoke(
53 {"export": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "colinfo": colinfo}} 54 {"export": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "colinfo": colinfo, "history": history}}
54 ) 55 )
55 if response: 56 if response:
56 return (response["metainfo"], response["datainfo"]) 57 return (response["metainfo"], response["datainfo"])
@@ -65,7 +66,7 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
65class PRClient(bb.asyncrpc.Client): 66class PRClient(bb.asyncrpc.Client):
66 def __init__(self): 67 def __init__(self):
67 super().__init__() 68 super().__init__()
68 self._add_methods("getPR", "test_pr", "test_package", "importone", "export", "is_readonly") 69 self._add_methods("getPR", "test_pr", "test_package", "max_package_pr", "importone", "export", "is_readonly")
69 70
70 def _get_async_client(self): 71 def _get_async_client(self):
71 return PRAsyncClient() 72 return PRAsyncClient()
diff --git a/bitbake/lib/prserv/db.py b/bitbake/lib/prserv/db.py
index eb41508198..2da493ddf5 100644
--- a/bitbake/lib/prserv/db.py
+++ b/bitbake/lib/prserv/db.py
@@ -8,19 +8,13 @@ import logging
8import os.path 8import os.path
9import errno 9import errno
10import prserv 10import prserv
11import time 11import sqlite3
12 12
13try: 13from contextlib import closing
14 import sqlite3 14from . import increase_revision, revision_greater, revision_smaller
15except ImportError:
16 from pysqlite2 import dbapi2 as sqlite3
17 15
18logger = logging.getLogger("BitBake.PRserv") 16logger = logging.getLogger("BitBake.PRserv")
19 17
20sqlversion = sqlite3.sqlite_version_info
21if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
22 raise Exception("sqlite3 version 3.3.0 or later is required.")
23
24# 18#
25# "No History" mode - for a given query tuple (version, pkgarch, checksum), 19# "No History" mode - for a given query tuple (version, pkgarch, checksum),
26# the returned value will be the largest among all the values of the same 20# the returned value will be the largest among all the values of the same
@@ -29,287 +23,232 @@ if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
29# "History" mode - Return a new higher value for previously unseen query 23# "History" mode - Return a new higher value for previously unseen query
30# tuple (version, pkgarch, checksum), otherwise return historical value. 24# tuple (version, pkgarch, checksum), otherwise return historical value.
31# Value can decrement if returning to a previous build. 25# Value can decrement if returning to a previous build.
32#
33 26
34class PRTable(object): 27class PRTable(object):
35 def __init__(self, conn, table, nohist, read_only): 28 def __init__(self, conn, table, read_only):
36 self.conn = conn 29 self.conn = conn
37 self.nohist = nohist
38 self.read_only = read_only 30 self.read_only = read_only
39 self.dirty = False 31 self.table = table
40 if nohist: 32
41 self.table = "%s_nohist" % table 33 # Creating the table even if the server is read-only.
42 else: 34 # This avoids a race condition if a shared database
43 self.table = "%s_hist" % table 35 # is accessed by a read-only server first.
44 36
45 if self.read_only: 37 with closing(self.conn.cursor()) as cursor:
46 table_exists = self._execute( 38 cursor.execute("CREATE TABLE IF NOT EXISTS %s \
47 "SELECT count(*) FROM sqlite_master \
48 WHERE type='table' AND name='%s'" % (self.table))
49 if not table_exists:
50 raise prserv.NotFoundError
51 else:
52 self._execute("CREATE TABLE IF NOT EXISTS %s \
53 (version TEXT NOT NULL, \ 39 (version TEXT NOT NULL, \
54 pkgarch TEXT NOT NULL, \ 40 pkgarch TEXT NOT NULL, \
55 checksum TEXT NOT NULL, \ 41 checksum TEXT NOT NULL, \
56 value INTEGER, \ 42 value TEXT, \
57 PRIMARY KEY (version, pkgarch, checksum));" % self.table) 43 PRIMARY KEY (version, pkgarch, checksum, value));" % self.table)
58
59 def _execute(self, *query):
60 """Execute a query, waiting to acquire a lock if necessary"""
61 start = time.time()
62 end = start + 20
63 while True:
64 try:
65 return self.conn.execute(*query)
66 except sqlite3.OperationalError as exc:
67 if "is locked" in str(exc) and end > time.time():
68 continue
69 raise exc
70
71 def sync(self):
72 if not self.read_only:
73 self.conn.commit() 44 self.conn.commit()
74 self._execute("BEGIN EXCLUSIVE TRANSACTION")
75 45
76 def sync_if_dirty(self): 46 def _extremum_value(self, rows, is_max):
77 if self.dirty: 47 value = None
78 self.sync() 48
79 self.dirty = False 49 for row in rows:
50 current_value = row[0]
51 if value is None:
52 value = current_value
53 else:
54 if is_max:
55 is_new_extremum = revision_greater(current_value, value)
56 else:
57 is_new_extremum = revision_smaller(current_value, value)
58 if is_new_extremum:
59 value = current_value
60 return value
61
62 def _max_value(self, rows):
63 return self._extremum_value(rows, True)
64
65 def _min_value(self, rows):
66 return self._extremum_value(rows, False)
80 67
81 def test_package(self, version, pkgarch): 68 def test_package(self, version, pkgarch):
82 """Returns whether the specified package version is found in the database for the specified architecture""" 69 """Returns whether the specified package version is found in the database for the specified architecture"""
83 70
84 # Just returns the value if found or None otherwise 71 # Just returns the value if found or None otherwise
85 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=?;" % self.table, 72 with closing(self.conn.cursor()) as cursor:
86 (version, pkgarch)) 73 data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=?;" % self.table,
87 row=data.fetchone() 74 (version, pkgarch))
88 if row is not None: 75 row=data.fetchone()
89 return True 76 if row is not None:
90 else: 77 return True
91 return False 78 else:
79 return False
80
81 def test_checksum_value(self, version, pkgarch, checksum, value):
82 """Returns whether the specified value is found in the database for the specified package, architecture and checksum"""
83
84 with closing(self.conn.cursor()) as cursor:
85 data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and checksum=? and value=?;" % self.table,
86 (version, pkgarch, checksum, value))
87 row=data.fetchone()
88 if row is not None:
89 return True
90 else:
91 return False
92 92
93 def test_value(self, version, pkgarch, value): 93 def test_value(self, version, pkgarch, value):
94 """Returns whether the specified value is found in the database for the specified package and architecture""" 94 """Returns whether the specified value is found in the database for the specified package and architecture"""
95 95
96 # Just returns the value if found or None otherwise 96 # Just returns the value if found or None otherwise
97 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and value=?;" % self.table, 97 with closing(self.conn.cursor()) as cursor:
98 (version, pkgarch, value)) 98 data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and value=?;" % self.table,
99 row=data.fetchone() 99 (version, pkgarch, value))
100 if row is not None: 100 row=data.fetchone()
101 return True 101 if row is not None:
102 else: 102 return True
103 return False 103 else:
104 return False
104 105
105 def find_value(self, version, pkgarch, checksum): 106
107 def find_package_max_value(self, version, pkgarch):
108 """Returns the greatest value for (version, pkgarch), or None if not found. Doesn't create a new value"""
109
110 with closing(self.conn.cursor()) as cursor:
111 data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=?;" % (self.table),
112 (version, pkgarch))
113 rows = data.fetchall()
114 value = self._max_value(rows)
115 return value
116
117 def find_value(self, version, pkgarch, checksum, history=False):
106 """Returns the value for the specified checksum if found or None otherwise.""" 118 """Returns the value for the specified checksum if found or None otherwise."""
107 119
108 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, 120 if history:
109 (version, pkgarch, checksum)) 121 return self.find_min_value(version, pkgarch, checksum)
110 row=data.fetchone()
111 if row is not None:
112 return row[0]
113 else: 122 else:
114 return None 123 return self.find_max_value(version, pkgarch, checksum)
115 124
116 def find_max_value(self, version, pkgarch):
117 """Returns the greatest value for (version, pkgarch), or None if not found. Doesn't create a new value"""
118 125
119 data = self._execute("SELECT max(value) FROM %s where version=? AND pkgarch=?;" % (self.table), 126 def _find_extremum_value(self, version, pkgarch, checksum, is_max):
120 (version, pkgarch)) 127 """Returns the maximum (if is_max is True) or minimum (if is_max is False) value
121 row = data.fetchone() 128 for (version, pkgarch, checksum), or None if not found. Doesn't create a new value"""
122 if row is not None:
123 return row[0]
124 else:
125 return None
126
127 def _get_value_hist(self, version, pkgarch, checksum):
128 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
129 (version, pkgarch, checksum))
130 row=data.fetchone()
131 if row is not None:
132 return row[0]
133 else:
134 #no value found, try to insert
135 if self.read_only:
136 data = self._execute("SELECT ifnull(max(value)+1, 0) FROM %s where version=? AND pkgarch=?;" % (self.table),
137 (version, pkgarch))
138 row = data.fetchone()
139 if row is not None:
140 return row[0]
141 else:
142 return 0
143 129
144 try: 130 with closing(self.conn.cursor()) as cursor:
145 self._execute("INSERT INTO %s VALUES (?, ?, ?, (select ifnull(max(value)+1, 0) from %s where version=? AND pkgarch=?));" 131 data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=? AND checksum=?;" % (self.table),
146 % (self.table, self.table), 132 (version, pkgarch, checksum))
147 (version, pkgarch, checksum, version, pkgarch)) 133 rows = data.fetchall()
148 except sqlite3.IntegrityError as exc: 134 return self._extremum_value(rows, is_max)
149 logger.error(str(exc))
150 135
151 self.dirty = True 136 def find_max_value(self, version, pkgarch, checksum):
137 return self._find_extremum_value(version, pkgarch, checksum, True)
152 138
153 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, 139 def find_min_value(self, version, pkgarch, checksum):
154 (version, pkgarch, checksum)) 140 return self._find_extremum_value(version, pkgarch, checksum, False)
155 row=data.fetchone() 141
156 if row is not None: 142 def find_new_subvalue(self, version, pkgarch, base):
157 return row[0] 143 """Take and increase the greatest "<base>.y" value for (version, pkgarch), or return "<base>.0" if not found.
158 else: 144 This doesn't store a new value."""
159 raise prserv.NotFoundError 145
160 146 with closing(self.conn.cursor()) as cursor:
161 def _get_value_no_hist(self, version, pkgarch, checksum): 147 data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=? AND value LIKE '%s.%%';" % (self.table, base),
162 data=self._execute("SELECT value FROM %s \ 148 (version, pkgarch))
163 WHERE version=? AND pkgarch=? AND checksum=? AND \ 149 rows = data.fetchall()
164 value >= (select max(value) from %s where version=? AND pkgarch=?);" 150 value = self._max_value(rows)
165 % (self.table, self.table), 151
166 (version, pkgarch, checksum, version, pkgarch)) 152 if value is not None:
167 row=data.fetchone() 153 return increase_revision(value)
168 if row is not None:
169 return row[0]
170 else:
171 #no value found, try to insert
172 if self.read_only:
173 data = self._execute("SELECT ifnull(max(value)+1, 0) FROM %s where version=? AND pkgarch=?;" % (self.table),
174 (version, pkgarch))
175 return data.fetchone()[0]
176
177 try:
178 self._execute("INSERT OR REPLACE INTO %s VALUES (?, ?, ?, (select ifnull(max(value)+1, 0) from %s where version=? AND pkgarch=?));"
179 % (self.table, self.table),
180 (version, pkgarch, checksum, version, pkgarch))
181 except sqlite3.IntegrityError as exc:
182 logger.error(str(exc))
183 self.conn.rollback()
184
185 self.dirty = True
186
187 data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
188 (version, pkgarch, checksum))
189 row=data.fetchone()
190 if row is not None:
191 return row[0]
192 else: 154 else:
193 raise prserv.NotFoundError 155 return base + ".0"
194 156
195 def get_value(self, version, pkgarch, checksum): 157 def store_value(self, version, pkgarch, checksum, value):
196 if self.nohist: 158 """Store value in the database"""
197 return self._get_value_no_hist(version, pkgarch, checksum) 159
198 else: 160 if not self.read_only and not self.test_checksum_value(version, pkgarch, checksum, value):
199 return self._get_value_hist(version, pkgarch, checksum) 161 with closing(self.conn.cursor()) as cursor:
200 162 cursor.execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table),
201 def _import_hist(self, version, pkgarch, checksum, value):
202 if self.read_only:
203 return None
204
205 val = None
206 data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
207 (version, pkgarch, checksum))
208 row = data.fetchone()
209 if row is not None:
210 val=row[0]
211 else:
212 #no value found, try to insert
213 try:
214 self._execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table),
215 (version, pkgarch, checksum, value)) 163 (version, pkgarch, checksum, value))
216 except sqlite3.IntegrityError as exc: 164 self.conn.commit()
217 logger.error(str(exc))
218 165
219 self.dirty = True 166 def _get_value(self, version, pkgarch, checksum, history):
220 167
221 data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, 168 max_value = self.find_package_max_value(version, pkgarch)
222 (version, pkgarch, checksum))
223 row = data.fetchone()
224 if row is not None:
225 val = row[0]
226 return val
227 169
228 def _import_no_hist(self, version, pkgarch, checksum, value): 170 if max_value is None:
229 if self.read_only: 171 # version, pkgarch completely unknown. Return initial value.
230 return None 172 return "0"
231 173
232 try: 174 value = self.find_value(version, pkgarch, checksum, history)
233 #try to insert 175
234 self._execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table), 176 if value is None:
235 (version, pkgarch, checksum, value)) 177 # version, pkgarch found but not checksum. Create a new value from the maximum one
236 except sqlite3.IntegrityError as exc: 178 return increase_revision(max_value)
237 #already have the record, try to update 179
238 try: 180 if history:
239 self._execute("UPDATE %s SET value=? WHERE version=? AND pkgarch=? AND checksum=? AND value<?" 181 return value
240 % (self.table), 182
241 (value, version, pkgarch, checksum, value)) 183 # "no history" mode - If the value is not the maximum value for the package, need to increase it.
242 except sqlite3.IntegrityError as exc: 184 if max_value > value:
243 logger.error(str(exc)) 185 return increase_revision(max_value)
244
245 self.dirty = True
246
247 data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table,
248 (version, pkgarch, checksum, value))
249 row=data.fetchone()
250 if row is not None:
251 return row[0]
252 else: 186 else:
253 return None 187 return value
188
189 def get_value(self, version, pkgarch, checksum, history):
190 value = self._get_value(version, pkgarch, checksum, history)
191 if not self.read_only:
192 self.store_value(version, pkgarch, checksum, value)
193 return value
254 194
255 def importone(self, version, pkgarch, checksum, value): 195 def importone(self, version, pkgarch, checksum, value):
256 if self.nohist: 196 self.store_value(version, pkgarch, checksum, value)
257 return self._import_no_hist(version, pkgarch, checksum, value) 197 return value
258 else:
259 return self._import_hist(version, pkgarch, checksum, value)
260 198
261 def export(self, version, pkgarch, checksum, colinfo): 199 def export(self, version, pkgarch, checksum, colinfo, history=False):
262 metainfo = {} 200 metainfo = {}
263 #column info 201 with closing(self.conn.cursor()) as cursor:
264 if colinfo: 202 #column info
265 metainfo["tbl_name"] = self.table 203 if colinfo:
266 metainfo["core_ver"] = prserv.__version__ 204 metainfo["tbl_name"] = self.table
267 metainfo["col_info"] = [] 205 metainfo["core_ver"] = prserv.__version__
268 data = self._execute("PRAGMA table_info(%s);" % self.table) 206 metainfo["col_info"] = []
207 data = cursor.execute("PRAGMA table_info(%s);" % self.table)
208 for row in data:
209 col = {}
210 col["name"] = row["name"]
211 col["type"] = row["type"]
212 col["notnull"] = row["notnull"]
213 col["dflt_value"] = row["dflt_value"]
214 col["pk"] = row["pk"]
215 metainfo["col_info"].append(col)
216
217 #data info
218 datainfo = []
219
220 if history:
221 sqlstmt = "SELECT * FROM %s as T1 WHERE 1=1 " % self.table
222 else:
223 sqlstmt = "SELECT T1.version, T1.pkgarch, T1.checksum, T1.value FROM %s as T1, \
224 (SELECT version, pkgarch, max(value) as maxvalue FROM %s GROUP BY version, pkgarch) as T2 \
225 WHERE T1.version=T2.version AND T1.pkgarch=T2.pkgarch AND T1.value=T2.maxvalue " % (self.table, self.table)
226 sqlarg = []
227 where = ""
228 if version:
229 where += "AND T1.version=? "
230 sqlarg.append(str(version))
231 if pkgarch:
232 where += "AND T1.pkgarch=? "
233 sqlarg.append(str(pkgarch))
234 if checksum:
235 where += "AND T1.checksum=? "
236 sqlarg.append(str(checksum))
237
238 sqlstmt += where + ";"
239
240 if len(sqlarg):
241 data = cursor.execute(sqlstmt, tuple(sqlarg))
242 else:
243 data = cursor.execute(sqlstmt)
269 for row in data: 244 for row in data:
270 col = {} 245 if row["version"]:
271 col["name"] = row["name"] 246 col = {}
272 col["type"] = row["type"] 247 col["version"] = row["version"]
273 col["notnull"] = row["notnull"] 248 col["pkgarch"] = row["pkgarch"]
274 col["dflt_value"] = row["dflt_value"] 249 col["checksum"] = row["checksum"]
275 col["pk"] = row["pk"] 250 col["value"] = row["value"]
276 metainfo["col_info"].append(col) 251 datainfo.append(col)
277
278 #data info
279 datainfo = []
280
281 if self.nohist:
282 sqlstmt = "SELECT T1.version, T1.pkgarch, T1.checksum, T1.value FROM %s as T1, \
283 (SELECT version, pkgarch, max(value) as maxvalue FROM %s GROUP BY version, pkgarch) as T2 \
284 WHERE T1.version=T2.version AND T1.pkgarch=T2.pkgarch AND T1.value=T2.maxvalue " % (self.table, self.table)
285 else:
286 sqlstmt = "SELECT * FROM %s as T1 WHERE 1=1 " % self.table
287 sqlarg = []
288 where = ""
289 if version:
290 where += "AND T1.version=? "
291 sqlarg.append(str(version))
292 if pkgarch:
293 where += "AND T1.pkgarch=? "
294 sqlarg.append(str(pkgarch))
295 if checksum:
296 where += "AND T1.checksum=? "
297 sqlarg.append(str(checksum))
298
299 sqlstmt += where + ";"
300
301 if len(sqlarg):
302 data = self._execute(sqlstmt, tuple(sqlarg))
303 else:
304 data = self._execute(sqlstmt)
305 for row in data:
306 if row["version"]:
307 col = {}
308 col["version"] = row["version"]
309 col["pkgarch"] = row["pkgarch"]
310 col["checksum"] = row["checksum"]
311 col["value"] = row["value"]
312 datainfo.append(col)
313 return (metainfo, datainfo) 252 return (metainfo, datainfo)
314 253
315 def dump_db(self, fd): 254 def dump_db(self, fd):
@@ -322,9 +261,8 @@ class PRTable(object):
322 261
323class PRData(object): 262class PRData(object):
324 """Object representing the PR database""" 263 """Object representing the PR database"""
325 def __init__(self, filename, nohist=True, read_only=False): 264 def __init__(self, filename, read_only=False):
326 self.filename=os.path.abspath(filename) 265 self.filename=os.path.abspath(filename)
327 self.nohist=nohist
328 self.read_only = read_only 266 self.read_only = read_only
329 #build directory hierarchy 267 #build directory hierarchy
330 try: 268 try:
@@ -334,14 +272,15 @@ class PRData(object):
334 raise e 272 raise e
335 uri = "file:%s%s" % (self.filename, "?mode=ro" if self.read_only else "") 273 uri = "file:%s%s" % (self.filename, "?mode=ro" if self.read_only else "")
336 logger.debug("Opening PRServ database '%s'" % (uri)) 274 logger.debug("Opening PRServ database '%s'" % (uri))
337 self.connection=sqlite3.connect(uri, uri=True, isolation_level="EXCLUSIVE", check_same_thread = False) 275 self.connection=sqlite3.connect(uri, uri=True)
338 self.connection.row_factory=sqlite3.Row 276 self.connection.row_factory=sqlite3.Row
339 if not self.read_only: 277 self.connection.execute("PRAGMA synchronous = OFF;")
340 self.connection.execute("pragma synchronous = off;") 278 self.connection.execute("PRAGMA journal_mode = WAL;")
341 self.connection.execute("PRAGMA journal_mode = MEMORY;") 279 self.connection.commit()
342 self._tables={} 280 self._tables={}
343 281
344 def disconnect(self): 282 def disconnect(self):
283 self.connection.commit()
345 self.connection.close() 284 self.connection.close()
346 285
347 def __getitem__(self, tblname): 286 def __getitem__(self, tblname):
@@ -351,7 +290,7 @@ class PRData(object):
351 if tblname in self._tables: 290 if tblname in self._tables:
352 return self._tables[tblname] 291 return self._tables[tblname]
353 else: 292 else:
354 tableobj = self._tables[tblname] = PRTable(self.connection, tblname, self.nohist, self.read_only) 293 tableobj = self._tables[tblname] = PRTable(self.connection, tblname, self.read_only)
355 return tableobj 294 return tableobj
356 295
357 def __delitem__(self, tblname): 296 def __delitem__(self, tblname):
@@ -359,3 +298,4 @@ class PRData(object):
359 del self._tables[tblname] 298 del self._tables[tblname]
360 logger.info("drop table %s" % (tblname)) 299 logger.info("drop table %s" % (tblname))
361 self.connection.execute("DROP TABLE IF EXISTS %s;" % tblname) 300 self.connection.execute("DROP TABLE IF EXISTS %s;" % tblname)
301 self.connection.commit()
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py
index dc4be5b620..d3ee43dcb5 100644
--- a/bitbake/lib/prserv/serv.py
+++ b/bitbake/lib/prserv/serv.py
@@ -12,6 +12,7 @@ import sqlite3
12import prserv 12import prserv
13import prserv.db 13import prserv.db
14import errno 14import errno
15from . import create_async_client, revision_smaller, increase_revision
15import bb.asyncrpc 16import bb.asyncrpc
16 17
17logger = logging.getLogger("BitBake.PRserv") 18logger = logging.getLogger("BitBake.PRserv")
@@ -43,16 +44,15 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
43 except: 44 except:
44 self.server.table.sync() 45 self.server.table.sync()
45 raise 46 raise
46 else:
47 self.server.table.sync_if_dirty()
48 47
49 async def handle_test_pr(self, request): 48 async def handle_test_pr(self, request):
50 '''Finds the PR value corresponding to the request. If not found, returns None and doesn't insert a new value''' 49 '''Finds the PR value corresponding to the request. If not found, returns None and doesn't insert a new value'''
51 version = request["version"] 50 version = request["version"]
52 pkgarch = request["pkgarch"] 51 pkgarch = request["pkgarch"]
53 checksum = request["checksum"] 52 checksum = request["checksum"]
53 history = request["history"]
54 54
55 value = self.server.table.find_value(version, pkgarch, checksum) 55 value = self.server.table.find_value(version, pkgarch, checksum, history)
56 return {"value": value} 56 return {"value": value}
57 57
58 async def handle_test_package(self, request): 58 async def handle_test_package(self, request):
@@ -68,22 +68,110 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
68 version = request["version"] 68 version = request["version"]
69 pkgarch = request["pkgarch"] 69 pkgarch = request["pkgarch"]
70 70
71 value = self.server.table.find_max_value(version, pkgarch) 71 value = self.server.table.find_package_max_value(version, pkgarch)
72 return {"value": value} 72 return {"value": value}
73 73
74 async def handle_get_pr(self, request): 74 async def handle_get_pr(self, request):
75 version = request["version"] 75 version = request["version"]
76 pkgarch = request["pkgarch"] 76 pkgarch = request["pkgarch"]
77 checksum = request["checksum"] 77 checksum = request["checksum"]
78 history = request["history"]
78 79
79 response = None 80 if self.upstream_client is None:
80 try: 81 value = self.server.table.get_value(version, pkgarch, checksum, history)
81 value = self.server.table.get_value(version, pkgarch, checksum) 82 return {"value": value}
82 response = {"value": value}
83 except prserv.NotFoundError:
84 self.logger.error("failure storing value in database for (%s, %s)",version, checksum)
85 83
86 return response 84 # We have an upstream server.
85 # Check whether the local server already knows the requested configuration.
86 # If the configuration is a new one, the generated value we will add will
87 # depend on what's on the upstream server. That's why we're calling find_value()
88 # instead of get_value() directly.
89
90 value = self.server.table.find_value(version, pkgarch, checksum, history)
91 upstream_max = await self.upstream_client.max_package_pr(version, pkgarch)
92
93 if value is not None:
94
95 # The configuration is already known locally.
96
97 if history:
98 value = self.server.table.get_value(version, pkgarch, checksum, history)
99 else:
100 existing_value = value
101 # In "no history", we need to make sure the value doesn't decrease
102 # and is at least greater than the maximum upstream value
103 # and the maximum local value
104
105 local_max = self.server.table.find_package_max_value(version, pkgarch)
106 if revision_smaller(value, local_max):
107 value = increase_revision(local_max)
108
109 if revision_smaller(value, upstream_max):
110 # Ask upstream whether it knows the checksum
111 upstream_value = await self.upstream_client.test_pr(version, pkgarch, checksum)
112 if upstream_value is None:
113 # Upstream doesn't have our checksum, let create a new one
114 value = upstream_max + ".0"
115 else:
116 # Fine to take the same value as upstream
117 value = upstream_max
118
119 if not value == existing_value and not self.server.read_only:
120 self.server.table.store_value(version, pkgarch, checksum, value)
121
122 return {"value": value}
123
124 # The configuration is a new one for the local server
125 # Let's ask the upstream server whether it knows it
126
127 known_upstream = await self.upstream_client.test_package(version, pkgarch)
128
129 if not known_upstream:
130
131 # The package is not known upstream, must be a local-only package
132 # Let's compute the PR number using the local-only method
133
134 value = self.server.table.get_value(version, pkgarch, checksum, history)
135 return {"value": value}
136
137 # The package is known upstream, let's ask the upstream server
138 # whether it knows our new output hash
139
140 value = await self.upstream_client.test_pr(version, pkgarch, checksum)
141
142 if value is not None:
143
144 # Upstream knows this output hash, let's store it and use it too.
145
146 if not self.server.read_only:
147 self.server.table.store_value(version, pkgarch, checksum, value)
148 # If the local server is read only, won't be able to store the new
149 # value in the database and will have to keep asking the upstream server
150 return {"value": value}
151
152 # The output hash doesn't exist upstream, get the most recent number from upstream (x)
153 # Then, we want to have a new PR value for the local server: x.y
154
155 upstream_max = await self.upstream_client.max_package_pr(version, pkgarch)
156 # Here we know that the package is known upstream, so upstream_max can't be None
157 subvalue = self.server.table.find_new_subvalue(version, pkgarch, upstream_max)
158
159 if not self.server.read_only:
160 self.server.table.store_value(version, pkgarch, checksum, subvalue)
161
162 return {"value": subvalue}
163
164 async def process_requests(self):
165 if self.server.upstream is not None:
166 self.upstream_client = await create_async_client(self.server.upstream)
167 else:
168 self.upstream_client = None
169
170 try:
171 await super().process_requests()
172 finally:
173 if self.upstream_client is not None:
174 await self.upstream_client.close()
87 175
88 async def handle_import_one(self, request): 176 async def handle_import_one(self, request):
89 response = None 177 response = None
@@ -104,9 +192,10 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
104 pkgarch = request["pkgarch"] 192 pkgarch = request["pkgarch"]
105 checksum = request["checksum"] 193 checksum = request["checksum"]
106 colinfo = request["colinfo"] 194 colinfo = request["colinfo"]
195 history = request["history"]
107 196
108 try: 197 try:
109 (metainfo, datainfo) = self.server.table.export(version, pkgarch, checksum, colinfo) 198 (metainfo, datainfo) = self.server.table.export(version, pkgarch, checksum, colinfo, history)
110 except sqlite3.Error as exc: 199 except sqlite3.Error as exc:
111 self.logger.error(str(exc)) 200 self.logger.error(str(exc))
112 metainfo = datainfo = None 201 metainfo = datainfo = None
@@ -117,11 +206,12 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
117 return {"readonly": self.server.read_only} 206 return {"readonly": self.server.read_only}
118 207
119class PRServer(bb.asyncrpc.AsyncServer): 208class PRServer(bb.asyncrpc.AsyncServer):
120 def __init__(self, dbfile, read_only=False): 209 def __init__(self, dbfile, read_only=False, upstream=None):
121 super().__init__(logger) 210 super().__init__(logger)
122 self.dbfile = dbfile 211 self.dbfile = dbfile
123 self.table = None 212 self.table = None
124 self.read_only = read_only 213 self.read_only = read_only
214 self.upstream = upstream
125 215
126 def accept_client(self, socket): 216 def accept_client(self, socket):
127 return PRServerClient(socket, self) 217 return PRServerClient(socket, self)
@@ -134,27 +224,25 @@ class PRServer(bb.asyncrpc.AsyncServer):
134 self.logger.info("Started PRServer with DBfile: %s, Address: %s, PID: %s" % 224 self.logger.info("Started PRServer with DBfile: %s, Address: %s, PID: %s" %
135 (self.dbfile, self.address, str(os.getpid()))) 225 (self.dbfile, self.address, str(os.getpid())))
136 226
227 if self.upstream is not None:
228 self.logger.info("And upstream PRServer: %s " % (self.upstream))
229
137 return tasks 230 return tasks
138 231
139 async def stop(self): 232 async def stop(self):
140 self.table.sync_if_dirty()
141 self.db.disconnect() 233 self.db.disconnect()
142 await super().stop() 234 await super().stop()
143 235
144 def signal_handler(self):
145 super().signal_handler()
146 if self.table:
147 self.table.sync()
148
149class PRServSingleton(object): 236class PRServSingleton(object):
150 def __init__(self, dbfile, logfile, host, port): 237 def __init__(self, dbfile, logfile, host, port, upstream):
151 self.dbfile = dbfile 238 self.dbfile = dbfile
152 self.logfile = logfile 239 self.logfile = logfile
153 self.host = host 240 self.host = host
154 self.port = port 241 self.port = port
242 self.upstream = upstream
155 243
156 def start(self): 244 def start(self):
157 self.prserv = PRServer(self.dbfile) 245 self.prserv = PRServer(self.dbfile, upstream=self.upstream)
158 self.prserv.start_tcp_server(socket.gethostbyname(self.host), self.port) 246 self.prserv.start_tcp_server(socket.gethostbyname(self.host), self.port)
159 self.process = self.prserv.serve_as_process(log_level=logging.WARNING) 247 self.process = self.prserv.serve_as_process(log_level=logging.WARNING)
160 248
@@ -233,7 +321,7 @@ def run_as_daemon(func, pidfile, logfile):
233 os.remove(pidfile) 321 os.remove(pidfile)
234 os._exit(0) 322 os._exit(0)
235 323
236def start_daemon(dbfile, host, port, logfile, read_only=False): 324def start_daemon(dbfile, host, port, logfile, read_only=False, upstream=None):
237 ip = socket.gethostbyname(host) 325 ip = socket.gethostbyname(host)
238 pidfile = PIDPREFIX % (ip, port) 326 pidfile = PIDPREFIX % (ip, port)
239 try: 327 try:
@@ -249,7 +337,7 @@ def start_daemon(dbfile, host, port, logfile, read_only=False):
249 337
250 dbfile = os.path.abspath(dbfile) 338 dbfile = os.path.abspath(dbfile)
251 def daemon_main(): 339 def daemon_main():
252 server = PRServer(dbfile, read_only=read_only) 340 server = PRServer(dbfile, read_only=read_only, upstream=upstream)
253 server.start_tcp_server(ip, port) 341 server.start_tcp_server(ip, port)
254 server.serve_forever() 342 server.serve_forever()
255 343
@@ -336,6 +424,9 @@ def auto_start(d):
336 424
337 host = host_params[0].strip().lower() 425 host = host_params[0].strip().lower()
338 port = int(host_params[1]) 426 port = int(host_params[1])
427
428 upstream = d.getVar("PRSERV_UPSTREAM") or None
429
339 if is_local_special(host, port): 430 if is_local_special(host, port):
340 import bb.utils 431 import bb.utils
341 cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE")) 432 cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE"))
@@ -350,7 +441,7 @@ def auto_start(d):
350 auto_shutdown() 441 auto_shutdown()
351 if not singleton: 442 if not singleton:
352 bb.utils.mkdirhier(cachedir) 443 bb.utils.mkdirhier(cachedir)
353 singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), host, port) 444 singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), host, port, upstream)
354 singleton.start() 445 singleton.start()
355 if singleton: 446 if singleton:
356 host = singleton.host 447 host = singleton.host
diff --git a/bitbake/lib/prserv/tests.py b/bitbake/lib/prserv/tests.py
new file mode 100644
index 0000000000..8765b129f2
--- /dev/null
+++ b/bitbake/lib/prserv/tests.py
@@ -0,0 +1,386 @@
1#! /usr/bin/env python3
2#
3# Copyright (C) 2024 BitBake Contributors
4#
5# SPDX-License-Identifier: GPL-2.0-only
6#
7
8from . import create_server, create_client, increase_revision, revision_greater, revision_smaller, _revision_greater_or_equal
9import prserv.db as db
10from bb.asyncrpc import InvokeError
11import logging
12import os
13import sys
14import tempfile
15import unittest
16import socket
17import subprocess
18from pathlib import Path
19
20THIS_DIR = Path(__file__).parent
21BIN_DIR = THIS_DIR.parent.parent / "bin"
22
23version = "dummy-1.0-r0"
24pkgarch = "core2-64"
25other_arch = "aarch64"
26
27checksumX = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4f0"
28checksum0 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a0"
29checksum1 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a1"
30checksum2 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a2"
31checksum3 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a3"
32checksum4 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a4"
33checksum5 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a5"
34checksum6 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a6"
35checksum7 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a7"
36checksum8 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a8"
37checksum9 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a9"
38checksum10 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4aa"
39
40def server_prefunc(server, name):
41 logging.basicConfig(level=logging.DEBUG, filename='prserv-%s.log' % name, filemode='w',
42 format='%(levelname)s %(filename)s:%(lineno)d %(message)s')
43 server.logger.debug("Running server %s" % name)
44 sys.stdout = open('prserv-stdout-%s.log' % name, 'w')
45 sys.stderr = sys.stdout
46
47class PRTestSetup(object):
48
49 def start_server(self, name, dbfile, upstream=None, read_only=False, prefunc=server_prefunc):
50
51 def cleanup_server(server):
52 if server.process.exitcode is not None:
53 return
54 server.process.terminate()
55 server.process.join()
56
57 server = create_server(socket.gethostbyname("localhost") + ":0",
58 dbfile,
59 upstream=upstream,
60 read_only=read_only)
61
62 server.serve_as_process(prefunc=prefunc, args=(name,))
63 self.addCleanup(cleanup_server, server)
64
65 return server
66
67 def start_client(self, server_address):
68 def cleanup_client(client):
69 client.close()
70
71 client = create_client(server_address)
72 self.addCleanup(cleanup_client, client)
73
74 return client
75
76class FunctionTests(unittest.TestCase):
77
78 def setUp(self):
79 self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
80 self.addCleanup(self.temp_dir.cleanup)
81
82 def test_increase_revision(self):
83 self.assertEqual(increase_revision("1"), "2")
84 self.assertEqual(increase_revision("1.0"), "1.1")
85 self.assertEqual(increase_revision("1.1.1"), "1.1.2")
86 self.assertEqual(increase_revision("1.1.1.3"), "1.1.1.4")
87 self.assertRaises(ValueError, increase_revision, "1.a")
88 self.assertRaises(ValueError, increase_revision, "1.")
89 self.assertRaises(ValueError, increase_revision, "")
90
91 def test_revision_greater_or_equal(self):
92 self.assertTrue(_revision_greater_or_equal("2", "2"))
93 self.assertTrue(_revision_greater_or_equal("2", "1"))
94 self.assertTrue(_revision_greater_or_equal("10", "2"))
95 self.assertTrue(_revision_greater_or_equal("1.10", "1.2"))
96 self.assertFalse(_revision_greater_or_equal("1.2", "1.10"))
97 self.assertTrue(_revision_greater_or_equal("1.10", "1"))
98 self.assertTrue(_revision_greater_or_equal("1.10.1", "1.10"))
99 self.assertFalse(_revision_greater_or_equal("1.10.1", "1.10.2"))
100 self.assertTrue(_revision_greater_or_equal("1.10.1", "1.10.1"))
101 self.assertTrue(_revision_greater_or_equal("1.10.1", "1"))
102 self.assertTrue(revision_greater("1.20", "1.3"))
103 self.assertTrue(revision_smaller("1.3", "1.20"))
104
105 # DB tests
106
107 def test_db(self):
108 dbfile = os.path.join(self.temp_dir.name, "testtable.sqlite3")
109
110 self.db = db.PRData(dbfile)
111 self.table = self.db["PRMAIN"]
112
113 self.table.store_value(version, pkgarch, checksum0, "0")
114 self.table.store_value(version, pkgarch, checksum1, "1")
115 # "No history" mode supports multiple PRs for the same checksum
116 self.table.store_value(version, pkgarch, checksum0, "2")
117 self.table.store_value(version, pkgarch, checksum2, "1.0")
118
119 self.assertTrue(self.table.test_package(version, pkgarch))
120 self.assertFalse(self.table.test_package(version, other_arch))
121
122 self.assertTrue(self.table.test_value(version, pkgarch, "0"))
123 self.assertTrue(self.table.test_value(version, pkgarch, "1"))
124 self.assertTrue(self.table.test_value(version, pkgarch, "2"))
125
126 self.assertEqual(self.table.find_package_max_value(version, pkgarch), "2")
127
128 self.assertEqual(self.table.find_min_value(version, pkgarch, checksum0), "0")
129 self.assertEqual(self.table.find_max_value(version, pkgarch, checksum0), "2")
130
131 # Test history modes
132 self.assertEqual(self.table.find_value(version, pkgarch, checksum0, True), "0")
133 self.assertEqual(self.table.find_value(version, pkgarch, checksum0, False), "2")
134
135 self.assertEqual(self.table.find_new_subvalue(version, pkgarch, "3"), "3.0")
136 self.assertEqual(self.table.find_new_subvalue(version, pkgarch, "1"), "1.1")
137
138 # Revision comparison tests
139 self.table.store_value(version, pkgarch, checksum1, "1.3")
140 self.table.store_value(version, pkgarch, checksum1, "1.20")
141 self.assertEqual(self.table.find_min_value(version, pkgarch, checksum1), "1")
142 self.assertEqual(self.table.find_max_value(version, pkgarch, checksum1), "1.20")
143
144class PRBasicTests(PRTestSetup, unittest.TestCase):
145
146 def setUp(self):
147 self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
148 self.addCleanup(self.temp_dir.cleanup)
149
150 dbfile = os.path.join(self.temp_dir.name, "prtest-basic.sqlite3")
151
152 self.server1 = self.start_server("basic", dbfile)
153 self.client1 = self.start_client(self.server1.address)
154
155 def test_basic(self):
156
157 # Checks on non existing configuration
158
159 result = self.client1.test_pr(version, pkgarch, checksum0)
160 self.assertIsNone(result, "test_pr should return 'None' for a non existing PR")
161
162 result = self.client1.test_package(version, pkgarch)
163 self.assertFalse(result, "test_package should return 'False' for a non existing PR")
164
165 result = self.client1.max_package_pr(version, pkgarch)
166 self.assertIsNone(result, "max_package_pr should return 'None' for a non existing PR")
167
168 # Add a first configuration
169
170 result = self.client1.getPR(version, pkgarch, checksum0)
171 self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
172
173 result = self.client1.test_pr(version, pkgarch, checksum0)
174 self.assertEqual(result, "0", "test_pr should return '0' here, matching the result of getPR")
175
176 result = self.client1.test_package(version, pkgarch)
177 self.assertTrue(result, "test_package should return 'True' for an existing PR")
178
179 result = self.client1.max_package_pr(version, pkgarch)
180 self.assertEqual(result, "0", "max_package_pr should return '0' in the current test series")
181
182 # Check that the same request gets the same value
183
184 result = self.client1.getPR(version, pkgarch, checksum0)
185 self.assertEqual(result, "0", "getPR: asking for the same PR a second time in a row should return the same value.")
186
187 # Add new configurations
188
189 result = self.client1.getPR(version, pkgarch, checksum1)
190 self.assertEqual(result, "1", "getPR: second PR of a package should be '1'")
191
192 result = self.client1.test_pr(version, pkgarch, checksum1)
193 self.assertEqual(result, "1", "test_pr should return '1' here, matching the result of getPR")
194
195 result = self.client1.max_package_pr(version, pkgarch)
196 self.assertEqual(result, "1", "max_package_pr should return '1' in the current test series")
197
198 result = self.client1.getPR(version, pkgarch, checksum2)
199 self.assertEqual(result, "2", "getPR: second PR of a package should be '2'")
200
201 result = self.client1.test_pr(version, pkgarch, checksum2)
202 self.assertEqual(result, "2", "test_pr should return '2' here, matching the result of getPR")
203
204 result = self.client1.max_package_pr(version, pkgarch)
205 self.assertEqual(result, "2", "max_package_pr should return '2' in the current test series")
206
207 result = self.client1.getPR(version, pkgarch, checksum3)
208 self.assertEqual(result, "3", "getPR: second PR of a package should be '3'")
209
210 result = self.client1.test_pr(version, pkgarch, checksum3)
211 self.assertEqual(result, "3", "test_pr should return '3' here, matching the result of getPR")
212
213 result = self.client1.max_package_pr(version, pkgarch)
214 self.assertEqual(result, "3", "max_package_pr should return '3' in the current test series")
215
216 # Ask again for the first configuration
217
218 result = self.client1.getPR(version, pkgarch, checksum0)
219 self.assertEqual(result, "4", "getPR: should return '4' in this configuration")
220
221 # Ask again with explicit "no history" mode
222
223 result = self.client1.getPR(version, pkgarch, checksum0, False)
224 self.assertEqual(result, "4", "getPR: should return '4' in this configuration")
225
226 # Ask again with explicit "history" mode. This should return the first recorded PR for checksum0
227
228 result = self.client1.getPR(version, pkgarch, checksum0, True)
229 self.assertEqual(result, "0", "getPR: should return '0' in this configuration")
230
231 # Check again that another pkgarg resets the counters
232
233 result = self.client1.test_pr(version, other_arch, checksum0)
234 self.assertIsNone(result, "test_pr should return 'None' for a non existing PR")
235
236 result = self.client1.test_package(version, other_arch)
237 self.assertFalse(result, "test_package should return 'False' for a non existing PR")
238
239 result = self.client1.max_package_pr(version, other_arch)
240 self.assertIsNone(result, "max_package_pr should return 'None' for a non existing PR")
241
242 # Now add the configuration
243
244 result = self.client1.getPR(version, other_arch, checksum0)
245 self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
246
247 result = self.client1.test_pr(version, other_arch, checksum0)
248 self.assertEqual(result, "0", "test_pr should return '0' here, matching the result of getPR")
249
250 result = self.client1.test_package(version, other_arch)
251 self.assertTrue(result, "test_package should return 'True' for an existing PR")
252
253 result = self.client1.max_package_pr(version, other_arch)
254 self.assertEqual(result, "0", "max_package_pr should return '0' in the current test series")
255
256 result = self.client1.is_readonly()
257 self.assertFalse(result, "Server should not be described as 'read-only'")
258
259class PRUpstreamTests(PRTestSetup, unittest.TestCase):
260
261 def setUp(self):
262
263 self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
264 self.addCleanup(self.temp_dir.cleanup)
265
266 dbfile2 = os.path.join(self.temp_dir.name, "prtest-upstream2.sqlite3")
267 self.server2 = self.start_server("upstream2", dbfile2)
268 self.client2 = self.start_client(self.server2.address)
269
270 dbfile1 = os.path.join(self.temp_dir.name, "prtest-upstream1.sqlite3")
271 self.server1 = self.start_server("upstream1", dbfile1, upstream=self.server2.address)
272 self.client1 = self.start_client(self.server1.address)
273
274 dbfile0 = os.path.join(self.temp_dir.name, "prtest-local.sqlite3")
275 self.server0 = self.start_server("local", dbfile0, upstream=self.server1.address)
276 self.client0 = self.start_client(self.server0.address)
277 self.shared_db = dbfile0
278
279 def test_upstream_and_readonly(self):
280
281 # For identical checksums, all servers should return the same PR
282
283 result = self.client2.getPR(version, pkgarch, checksum0)
284 self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
285
286 result = self.client1.getPR(version, pkgarch, checksum0)
287 self.assertEqual(result, "0", "getPR: initial PR of a package should be '0' (same as upstream)")
288
289 result = self.client0.getPR(version, pkgarch, checksum0)
290 self.assertEqual(result, "0", "getPR: initial PR of a package should be '0' (same as upstream)")
291
292 # Now introduce new checksums on server1 for, same version
293
294 result = self.client1.getPR(version, pkgarch, checksum1)
295 self.assertEqual(result, "0.0", "getPR: first PR of a package which has a different checksum upstream should be '0.0'")
296
297 result = self.client1.getPR(version, pkgarch, checksum2)
298 self.assertEqual(result, "0.1", "getPR: second PR of a package that has a different checksum upstream should be '0.1'")
299
300 # Now introduce checksums on server0 for, same version
301
302 result = self.client1.getPR(version, pkgarch, checksum1)
303 self.assertEqual(result, "0.2", "getPR: can't decrease for known PR")
304
305 result = self.client1.getPR(version, pkgarch, checksum2)
306 self.assertEqual(result, "0.3")
307
308 result = self.client1.max_package_pr(version, pkgarch)
309 self.assertEqual(result, "0.3")
310
311 result = self.client0.getPR(version, pkgarch, checksum3)
312 self.assertEqual(result, "0.3.0", "getPR: first PR of a package that doesn't exist upstream should be '0.3.0'")
313
314 result = self.client0.getPR(version, pkgarch, checksum4)
315 self.assertEqual(result, "0.3.1", "getPR: second PR of a package that doesn't exist upstream should be '0.3.1'")
316
317 result = self.client0.getPR(version, pkgarch, checksum3)
318 self.assertEqual(result, "0.3.2")
319
320 # More upstream updates
321 # Here, we assume no communication between server2 and server0. server2 only impacts server0
322 # after impacting server1
323
324 self.assertEqual(self.client2.getPR(version, pkgarch, checksum5), "1")
325 self.assertEqual(self.client1.getPR(version, pkgarch, checksum6), "1.0")
326 self.assertEqual(self.client1.getPR(version, pkgarch, checksum7), "1.1")
327 self.assertEqual(self.client0.getPR(version, pkgarch, checksum8), "1.1.0")
328 self.assertEqual(self.client0.getPR(version, pkgarch, checksum9), "1.1.1")
329
330 # "history" mode tests
331
332 self.assertEqual(self.client2.getPR(version, pkgarch, checksum0, True), "0")
333 self.assertEqual(self.client1.getPR(version, pkgarch, checksum2, True), "0.1")
334 self.assertEqual(self.client0.getPR(version, pkgarch, checksum3, True), "0.3.0")
335
336 # More "no history" mode tests
337
338 self.assertEqual(self.client2.getPR(version, pkgarch, checksum0), "2")
339 self.assertEqual(self.client1.getPR(version, pkgarch, checksum0), "2") # Same as upstream
340 self.assertEqual(self.client0.getPR(version, pkgarch, checksum0), "2") # Same as upstream
341 self.assertEqual(self.client1.getPR(version, pkgarch, checksum7), "3") # This could be surprising, but since the previous revision was "2", increasing it yields "3".
342 # We don't know how many upstream servers we have
343 # Start read-only server with server1 as upstream
344 self.server_ro = self.start_server("local-ro", self.shared_db, upstream=self.server1.address, read_only=True)
345 self.client_ro = self.start_client(self.server_ro.address)
346
347 self.assertTrue(self.client_ro.is_readonly(), "Database should be described as 'read-only'")
348
349 # Checks on non existing configurations
350 self.assertIsNone(self.client_ro.test_pr(version, pkgarch, checksumX))
351 self.assertFalse(self.client_ro.test_package("unknown", pkgarch))
352
353 # Look up existing configurations
354 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum0), "3") # "no history" mode
355 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum0, True), "0") # "history" mode
356 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum3), "3")
357 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum3, True), "0.3.0")
358 self.assertEqual(self.client_ro.max_package_pr(version, pkgarch), "2") # normal as "3" was never saved
359
360 # Try to insert a new value. Here this one is know upstream.
361 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum7), "3")
362 # Try to insert a completely new value. As the max upstream value is already "3", it should be "3.0"
363 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum10), "3.0")
364 # Same with another value which only exists in the upstream upstream server
365 # This time, as the upstream server doesn't know it, it will ask its upstream server. So that's a known one.
366 self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum9), "3")
367
368class ScriptTests(unittest.TestCase):
369
370 def setUp(self):
371
372 self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
373 self.addCleanup(self.temp_dir.cleanup)
374 self.dbfile = os.path.join(self.temp_dir.name, "prtest.sqlite3")
375
376 def test_1_start_bitbake_prserv(self):
377 try:
378 subprocess.check_call([BIN_DIR / "bitbake-prserv", "--start", "-f", self.dbfile])
379 except subprocess.CalledProcessError as e:
380 self.fail("Failed to start bitbake-prserv: %s" % e.returncode)
381
382 def test_2_stop_bitbake_prserv(self):
383 try:
384 subprocess.check_call([BIN_DIR / "bitbake-prserv", "--stop"])
385 except subprocess.CalledProcessError as e:
386 self.fail("Failed to stop bitbake-prserv: %s" % e.returncode)
diff --git a/documentation/brief-yoctoprojectqs/index.rst b/documentation/brief-yoctoprojectqs/index.rst
index 61c5cbec36..4301bfd970 100644
--- a/documentation/brief-yoctoprojectqs/index.rst
+++ b/documentation/brief-yoctoprojectqs/index.rst
@@ -251,11 +251,14 @@ an entire Linux distribution, including the toolchain, from source.
251 To use such mirrors, uncomment the below lines in your ``conf/local.conf`` 251 To use such mirrors, uncomment the below lines in your ``conf/local.conf``
252 file in the :term:`Build Directory`:: 252 file in the :term:`Build Directory`::
253 253
254 BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687" 254 BB_HASHSERVE_UPSTREAM = "wss://hashserv.yoctoproject.org/ws"
255 SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH" 255 SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
256 BB_HASHSERVE = "auto" 256 BB_HASHSERVE = "auto"
257 BB_SIGNATURE_HANDLER = "OEEquivHash" 257 BB_SIGNATURE_HANDLER = "OEEquivHash"
258 258
259 The hash equivalence server needs a recent version of python
260 websockets installed to work correctly.
261
259#. **Start the Build:** Continue with the following command to build an OS 262#. **Start the Build:** Continue with the following command to build an OS
260 image for the target, which is ``core-image-sato`` in this example: 263 image for the target, which is ``core-image-sato`` in this example:
261 264
diff --git a/documentation/migration-guides/release-4.0.rst b/documentation/migration-guides/release-4.0.rst
index 685799e268..d848b3ef64 100644
--- a/documentation/migration-guides/release-4.0.rst
+++ b/documentation/migration-guides/release-4.0.rst
@@ -24,3 +24,4 @@ Release 4.0 (kirkstone)
24 release-notes-4.0.15 24 release-notes-4.0.15
25 release-notes-4.0.16 25 release-notes-4.0.16
26 release-notes-4.0.17 26 release-notes-4.0.17
27 release-notes-4.0.18
diff --git a/documentation/migration-guides/release-notes-4.0.18.rst b/documentation/migration-guides/release-notes-4.0.18.rst
new file mode 100644
index 0000000000..fc8cd83c02
--- /dev/null
+++ b/documentation/migration-guides/release-notes-4.0.18.rst
@@ -0,0 +1,191 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Release notes for Yocto-4.0.18 (Kirkstone)
4------------------------------------------
5
6Security Fixes in Yocto-4.0.18
7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8
9- curl: Fix :cve:`2024-2398`
10- expat: fix :cve:`2023-52426` and :cve:`2024-28757`
11- libssh2: fix :cve:`2023-48795`
12- ncurses: Fix :cve:`2023-50495`
13- nghttp2: Fix :cve:`2024-28182` and :cve:`2023-44487`
14- openssh: Ignore :cve:`2023-51767`
15- openssl: Fix :cve:`2024-2511`
16- perl: Ignore :cve:`2023-47100`
17- python3-cryptography: Fix :cve:`2024-26130`
18- python3-urllib3: Fix :cve:`2023-45803`
19- qemu: Fix :cve:`2023-6683`
20- ruby: fix :cve_mitre:`2024-27281`
21- rust: Ignore :cve:`2024-24576`
22- tiff: Fix :cve:`2023-52356` and :cve:`2023-6277`
23- xserver-xorg: Fix :cve:`2024-31080` and :cve:`2024-31081`
24- xwayland: Fix :cve:`2023-6816`, :cve:`2024-0408` and :cve:`2024-0409`
25
26
27Fixes in Yocto-4.0.18
28~~~~~~~~~~~~~~~~~~~~~
29
30- build-appliance-image: Update to kirkstone head revision
31- common-licenses: Backport missing license
32- contributor-guide: add notes for tests
33- contributor-guide: be more specific about meta-* trees
34- cups: fix typo in :cve:`2023-32360` backport patch
35- cve-update-nvd2-native: Add an age threshold for incremental update
36- cve-update-nvd2-native: Fix CVE configuration update
37- cve-update-nvd2-native: Fix typo in comment
38- cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
39- cve-update-nvd2-native: Remove rejected CVE from database
40- cve-update-nvd2-native: nvd_request_next: Improve comment
41- dev-manual: improve descriptions of 'bitbake -S printdiff'
42- dev-manual: packages: fix capitalization
43- docs: conf.py: properly escape backslashes for latex_elements
44- gcc: Backport sanitizer fix for 32-bit ALSR
45- glibc: Fix subscript typos for get_nscd_addresses
46- kernel-dev: join mkdir commands with -p
47- linux-firmware: Upgrade to 20240220
48- manuals: add initial sphinx-lint support
49- manuals: add initial stylechecks with Vale
50- manuals: document VIRTUAL-RUNTIME variables
51- manuals: fix duplicate "stylecheck" target
52- manuals: fix incorrect double backticks
53- manuals: fix trailing spaces
54- manuals: refer to new yocto-patches mailing list wherever appropriate
55- manuals: remove tab characters
56- manuals: replace hyphens with em dashes
57- manuals: use "manual page(s)"
58- migration-guides: add release notes for 4.0.17
59- poky.conf: bump version for 4.0.18
60- profile-manual: usage.rst: fix reference to bug report
61- profile-manual: usage.rst: formatting fixes
62- profile-manual: usage.rst: further style improvements
63- python3-urllib3: Upgrade to v1.26.18
64- ref-manual: add documentation of the variable :term:`SPDX_NAMESPACE_PREFIX`
65- ref-manual: tasks: do_cleanall: recommend using '-f' instead
66- ref-manual: tasks: do_cleansstate: recommend using '-f' instead for a shared sstate
67- ref-manual: variables: adding multiple groups in :term:`GROUPADD_PARAM`
68- ref-manual: variables: correct sdk installation default path
69- stress-ng: avoid calling sync during do_compile
70- systemd: Fix vlan qos mapping
71- tcl: Add a way to skip ptests
72- tcl: skip async and event tests in run-ptest
73- tcl: skip timing-dependent tests in run-ptest
74- valgrind: skip intermittently failing ptest
75- wireless-regdb: Upgrade to 2024.01.23
76- yocto-uninative: Update to 4.4 for glibc 2.39
77
78
79Known Issues in Yocto-4.0.18
80~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81
82- N/A
83
84
85Contributors to Yocto-4.0.18
86~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87
88- Alex Kiernan
89- Alex Stewart
90- Alexander Kanavin
91- BELOUARGA Mohamed
92- Claus Stovgaard
93- Colin McAllister
94- Geoff Parker
95- Haitao Liu
96- Harish Sadineni
97- Johan Bezem
98- Jonathan GUILLOT
99- Jörg Sommer
100- Khem Raj
101- Lee Chee Yang
102- Luca Ceresoli
103- Martin Jansa
104- Meenali Gupta
105- Michael Halstead
106- Michael Opdenacker
107- Peter Marko
108- Quentin Schulz
109- Ross Burton
110- Sana Kazi
111- Simone Weiß
112- Soumya Sambu
113- Steve Sakoman
114- Tan Wen Yan
115- Vijay Anusuri
116- Wang Mingyu
117- Yoann Congal
118- Yogita Urade
119- Zahir Hussain
120
121
122Repositories / Downloads for Yocto-4.0.18
123~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124
125poky
126
127- Repository Location: :yocto_git:`/poky`
128- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
129- Tag: :yocto_git:`yocto-4.0.18 </poky/log/?h=yocto-4.0.18>`
130- Git Revision: :yocto_git:`31751bba1c789f15f574773a659b8017d7bcf440 </poky/commit/?id=31751bba1c789f15f574773a659b8017d7bcf440>`
131- Release Artefact: poky-31751bba1c789f15f574773a659b8017d7bcf440
132- sha: 72d5aa65c3c37766ebc24b212740272c1d52342468548f9c070241d3522ad2ca
133- Download Locations:
134 http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/poky-31751bba1c789f15f574773a659b8017d7bcf440.tar.bz2
135 http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/poky-31751bba1c789f15f574773a659b8017d7bcf440.tar.bz2
136
137openembedded-core
138
139- Repository Location: :oe_git:`/openembedded-core`
140- Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
141- Tag: :oe_git:`yocto-4.0.18 </openembedded-core/log/?h=yocto-4.0.18>`
142- Git Revision: :oe_git:`b7182571242dc4e23e5250a449d90348e62a6abc </openembedded-core/commit/?id=b7182571242dc4e23e5250a449d90348e62a6abc>`
143- Release Artefact: oecore-b7182571242dc4e23e5250a449d90348e62a6abc
144- sha: 6f257e50c10ebae673dcf61a833b3270db6d22781f02f6794a370aac839f1020
145- Download Locations:
146 http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/oecore-b7182571242dc4e23e5250a449d90348e62a6abc.tar.bz2
147 http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/oecore-b7182571242dc4e23e5250a449d90348e62a6abc.tar.bz2
148
149meta-mingw
150
151- Repository Location: :yocto_git:`/meta-mingw`
152- Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
153- Tag: :yocto_git:`yocto-4.0.18 </meta-mingw/log/?h=yocto-4.0.18>`
154- Git Revision: :yocto_git:`f6b38ce3c90e1600d41c2ebb41e152936a0357d7 </meta-mingw/commit/?id=f6b38ce3c90e1600d41c2ebb41e152936a0357d7>`
155- Release Artefact: meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7
156- sha: 7d57167c19077f4ab95623d55a24c2267a3a3fb5ed83688659b4c03586373b25
157- Download Locations:
158 http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
159 http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
160
161meta-gplv2
162
163- Repository Location: :yocto_git:`/meta-gplv2`
164- Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
165- Tag: :yocto_git:`yocto-4.0.18 </meta-gplv2/log/?h=yocto-4.0.18>`
166- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
167- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
168- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
169- Download Locations:
170 http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
171 http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
172
173bitbake
174
175- Repository Location: :oe_git:`/bitbake`
176- Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
177- Tag: :oe_git:`yocto-4.0.18 </bitbake/log/?h=yocto-4.0.18>`
178- Git Revision: :oe_git:`40fd5f4eef7460ca67f32cfce8e229e67e1ff607 </bitbake/commit/?id=40fd5f4eef7460ca67f32cfce8e229e67e1ff607>`
179- Release Artefact: bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607
180- sha: 5d20a0e4c5d0fce44bd84778168714a261a30a4b83f67c88df3b8a7e7115e444
181- Download Locations:
182 http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
183 http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
184
185yocto-docs
186
187- Repository Location: :yocto_git:`/yocto-docs`
188- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
189- Tag: :yocto_git:`yocto-4.0.18 </yocto-docs/log/?h=yocto-4.0.18>`
190- Git Revision: :yocto_git:`fd1423141e7458ba557db465c171b0b4e9063987 </yocto-docs/commit/?id=fd1423141e7458ba557db465c171b0b4e9063987>`
191
diff --git a/documentation/migration-guides/release-notes-5.0.rst b/documentation/migration-guides/release-notes-5.0.rst
index 884a66771d..800ba20a27 100644
--- a/documentation/migration-guides/release-notes-5.0.rst
+++ b/documentation/migration-guides/release-notes-5.0.rst
@@ -936,3 +936,58 @@ Thanks to the following people who contributed to this release:
936Repositories / Downloads for Yocto-5.0 936Repositories / Downloads for Yocto-5.0
937~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
938 938
939poky
940
941- Repository Location: :yocto_git:`/poky`
942- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
943- Tag: :yocto_git:`yocto-5.0 </poky/log/?h=yocto-5.0>`
944- Git Revision: :yocto_git:`fb91a49387cfb0c8d48303bb3354325ba2a05587 </poky/commit/?id=fb91a49387cfb0c8d48303bb3354325ba2a05587>`
945- Release Artefact: poky-fb91a49387cfb0c8d48303bb3354325ba2a05587
946- sha: 8a0dff4b677b9414ab814ed35d1880196123732ea16ab2fafa388bcc509b32ab
947- Download Locations:
948 http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/poky-fb91a49387cfb0c8d48303bb3354325ba2a05587.tar.bz2
949 http://mirrors.kernel.org/yocto/yocto/yocto-5.0/poky-fb91a49387cfb0c8d48303bb3354325ba2a05587.tar.bz2
950
951openembedded-core
952
953- Repository Location: :oe_git:`/openembedded-core`
954- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
955- Tag: :oe_git:`yocto-5.0 </openembedded-core/log/?h=yocto-5.0>`
956- Git Revision: :oe_git:`b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277 </openembedded-core/commit/?id=b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277>`
957- Release Artefact: oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277
958- sha: c7fd05d1a00c70acba2540e60dce01a1bdc4701ebff9a808784960240c69261d
959- Download Locations:
960 http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277.tar.bz2
961 http://mirrors.kernel.org/yocto/yocto/yocto-5.0/oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277.tar.bz2
962
963meta-mingw
964
965- Repository Location: :yocto_git:`/meta-mingw`
966- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
967- Tag: :yocto_git:`yocto-5.0 </meta-mingw/log/?h=yocto-5.0>`
968- Git Revision: :yocto_git:`acbba477893ef87388effc4679b7f40ee49fc852 </meta-mingw/commit/?id=acbba477893ef87388effc4679b7f40ee49fc852>`
969- Release Artefact: meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852
970- sha: 3b7c2f475dad5130bace652b150367f587d44b391218b1364a8bbc430b48c54c
971- Download Locations:
972 http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
973 http://mirrors.kernel.org/yocto/yocto/yocto-5.0/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
974
975bitbake
976
977- Repository Location: :oe_git:`/bitbake`
978- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
979- Tag: :oe_git:`yocto-5.0 </bitbake/log/?h=yocto-5.0>`
980- Git Revision: :oe_git:`c86466d51e8ff14e57a734c1eec5bb651fdc73ef </bitbake/commit/?id=c86466d51e8ff14e57a734c1eec5bb651fdc73ef>`
981- Release Artefact: bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef
982- sha: 45c91294c1fa5a0044f1bb72a9bb69456bb458747114115af85c7664bf672d48
983- Download Locations:
984 http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef.tar.bz2
985 http://mirrors.kernel.org/yocto/yocto/yocto-5.0/bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef.tar.bz2
986
987yocto-docs
988
989- Repository Location: :yocto_git:`/yocto-docs`
990- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
991- Tag: :yocto_git:`yocto-5.0 </yocto-docs/log/?h=yocto-5.0>`
992- Git Revision: :yocto_git:`0cdc0afd3332459d30cfc8f4c2e62bdcc23f5ed5 </yocto-docs/commit/?id=0cdc0afd3332459d30cfc8f4c2e62bdcc23f5ed5>`
993
diff --git a/documentation/poky.yaml.in b/documentation/poky.yaml.in
index 7a686ac4e1..0c04b615ea 100644
--- a/documentation/poky.yaml.in
+++ b/documentation/poky.yaml.in
@@ -1,10 +1,10 @@
1DISTRO : "4.3" 1DISTRO : "5.0"
2DISTRO_NAME_NO_CAP : "nanbield" 2DISTRO_NAME_NO_CAP : "scarthgap"
3DISTRO_NAME : "Nanbield" 3DISTRO_NAME : "Scarthgap"
4DISTRO_NAME_NO_CAP_MINUS_ONE : "mickledore" 4DISTRO_NAME_NO_CAP_MINUS_ONE : "nanbield"
5DISTRO_NAME_NO_CAP_LTS : "kirkstone" 5DISTRO_NAME_NO_CAP_LTS : "scarthgap"
6YOCTO_DOC_VERSION : "4.3" 6YOCTO_DOC_VERSION : "5.0"
7DISTRO_REL_TAG : "yocto-4.3" 7DISTRO_REL_TAG : "yocto-5.0"
8DOCCONF_VERSION : "dev" 8DOCCONF_VERSION : "dev"
9BITBAKE_SERIES : "" 9BITBAKE_SERIES : ""
10YOCTO_DL_URL : "https://downloads.yoctoproject.org" 10YOCTO_DL_URL : "https://downloads.yoctoproject.org"
@@ -12,18 +12,18 @@ YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
12YOCTO_RELEASE_DL_URL : "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;" 12YOCTO_RELEASE_DL_URL : "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;"
13UBUNTU_HOST_PACKAGES_ESSENTIAL : "gawk wget git diffstat unzip texinfo gcc \ 13UBUNTU_HOST_PACKAGES_ESSENTIAL : "gawk wget git diffstat unzip texinfo gcc \
14 build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ 14 build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
15 xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ 15 xz-utils debianutils iputils-ping python3-git python3-jinja2 \
16 python3-subunit mesa-common-dev zstd liblz4-tool file locales libacl1 16 python3-subunit zstd liblz4-tool file locales libacl1
17 \n\ $ sudo locale-gen en_US.UTF-8" 17 \n\ $ sudo locale-gen en_US.UTF-8"
18FEDORA_HOST_PACKAGES_ESSENTIAL : "gawk make wget tar bzip2 gzip python3 unzip perl patch \ 18FEDORA_HOST_PACKAGES_ESSENTIAL : "gawk make wget tar bzip2 gzip python3 unzip perl patch \
19 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ 19 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
20 ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \ 20 ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
21 python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \ 21 python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \
22 python3-jinja2 SDL-devel rpcgen mesa-libGL-devel perl-FindBin perl-File-Compare \ 22 python3-jinja2 rpcgen perl-FindBin perl-File-Compare \
23 perl-File-Copy perl-locale zstd lz4 hostname glibc-langpack-en libacl" 23 perl-File-Copy perl-locale zstd lz4 hostname glibc-langpack-en libacl"
24OPENSUSE_HOST_PACKAGES_ESSENTIAL : "python gcc gcc-c++ git chrpath make wget python-xml \ 24OPENSUSE_HOST_PACKAGES_ESSENTIAL : "python gcc gcc-c++ git chrpath make wget python-xml \
25 diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \ 25 diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \
26 python3-pexpect xz which python3-Jinja2 Mesa-libEGL1 libSDL-devel rpcgen Mesa-dri-devel \ 26 python3-pexpect xz which python3-Jinja2 rpcgen \
27 zstd lz4 bzip2 gzip hostname libacl1 27 zstd lz4 bzip2 gzip hostname libacl1
28 \n\ $ sudo pip3 install GitPython" 28 \n\ $ sudo pip3 install GitPython"
29ALMALINUX_HOST_PACKAGES_ESSENTIAL : "-y epel-release 29ALMALINUX_HOST_PACKAGES_ESSENTIAL : "-y epel-release
@@ -33,8 +33,8 @@ ALMALINUX_HOST_PACKAGES_ESSENTIAL : "-y epel-release
33 \n\ $ sudo dnf install gawk make wget tar bzip2 gzip python3 unzip perl patch \ 33 \n\ $ sudo dnf install gawk make wget tar bzip2 gzip python3 unzip perl patch \
34 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache \ 34 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache \
35 socat perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip \ 35 socat perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip \
36 python3-GitPython python3-jinja2 python3-pexpect xz which SDL-devel \ 36 python3-GitPython python3-jinja2 python3-pexpect xz which \
37 rpcgen mesa-libGL-devel zstd lz4 cpio glibc-langpack-en libacl" 37 rpcgen zstd lz4 cpio glibc-langpack-en libacl"
38PIP3_HOST_PACKAGES_DOC : "$ sudo pip3 install sphinx sphinx_rtd_theme pyyaml" 38PIP3_HOST_PACKAGES_DOC : "$ sudo pip3 install sphinx sphinx_rtd_theme pyyaml"
39MIN_PYTHON_VERSION : "3.8.0" 39MIN_PYTHON_VERSION : "3.8.0"
40MIN_TAR_VERSION : "1.28" 40MIN_TAR_VERSION : "1.28"
diff --git a/documentation/ref-manual/svg/releases.svg b/documentation/ref-manual/svg/releases.svg
index 198d4632b1..036aa467cc 100644
--- a/documentation/ref-manual/svg/releases.svg
+++ b/documentation/ref-manual/svg/releases.svg
@@ -3,8 +3,8 @@
3 version="1.1" 3 version="1.1"
4 id="svg2" 4 id="svg2"
5 width="2040.0006" 5 width="2040.0006"
6 height="624.30518" 6 height="669.30511"
7 viewBox="0 0 2040.0006 624.30515" 7 viewBox="0 0 2040.0006 669.30509"
8 sodipodi:docname="releases.svg" 8 sodipodi:docname="releases.svg"
9 inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" 9 inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -409,8 +409,8 @@
409 id="namedview4" 409 id="namedview4"
410 showgrid="true" 410 showgrid="true"
411 inkscape:zoom="1.4472045" 411 inkscape:zoom="1.4472045"
412 inkscape:cx="736.24703" 412 inkscape:cx="987.76641"
413 inkscape:cy="312.32629" 413 inkscape:cy="357.93145"
414 inkscape:window-x="1728" 414 inkscape:window-x="1728"
415 inkscape:window-y="0" 415 inkscape:window-y="0"
416 inkscape:window-maximized="1" 416 inkscape:window-maximized="1"
@@ -427,13 +427,13 @@
427 type="xygrid" 427 type="xygrid"
428 id="grid1257" 428 id="grid1257"
429 originx="-289.99936" 429 originx="-289.99936"
430 originy="325" /> 430 originy="369.99998" />
431 </sodipodi:namedview> 431 </sodipodi:namedview>
432 <g 432 <g
433 inkscape:groupmode="layer" 433 inkscape:groupmode="layer"
434 inkscape:label="Image" 434 inkscape:label="Image"
435 id="g10" 435 id="g10"
436 transform="translate(-289.99936,325.00004)"> 436 transform="translate(-289.99936,370.00003)">
437 <path 437 <path
438 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 438 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
439 d="m 1080,220.00003 v -515.00007 0 0" 439 d="m 1080,220.00003 v -515.00007 0 0"
@@ -669,11 +669,11 @@
669 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 669 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
670 id="tspan10317-2-9-1-4">4.2</tspan></text> 670 id="tspan10317-2-9-1-4">4.2</tspan></text>
671 <g 671 <g
672 id="g1379"> 672 id="g1258">
673 <rect 673 <rect
674 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 674 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
675 id="rect917-0-0-4-4-9-4-5-38" 675 id="rect917-0-0-4-4-9-4-5-38"
676 width="140.00003" 676 width="120.00002"
677 height="45.000004" 677 height="45.000004"
678 x="1220" 678 x="1220"
679 y="-230.00005" 679 y="-230.00005"
@@ -696,53 +696,76 @@
696 id="tspan10317-2-9-1-4-6">4.3</tspan></text> 696 id="tspan10317-2-9-1-4-6">4.3</tspan></text>
697 </g> 697 </g>
698 <rect 698 <rect
699 style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 699 style="opacity:0.75;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
700 id="rect917-0-0-4-4-9-4-5-3-9" 700 id="rect917-0-0-4-4-9-4-5-3-9-2"
701 width="979.99994" 701 width="140"
702 height="45.000004" 702 height="45.000004"
703 x="1320" 703 x="1440"
704 y="-285.00003" 704 y="-340.00003"
705 ry="2.2558987" /> 705 ry="2.2558987" />
706 <text 706 <text
707 xml:space="preserve" 707 xml:space="preserve"
708 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 708 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
709 x="1373.233" 709 x="1487.233"
710 y="-265.32928" 710 y="-320.32928"
711 id="text1185-3-55-4-0-0-0-1-1-6"><tspan 711 id="text1185-3-55-4-0-0-0-1-1-6-4"><tspan
712 sodipodi:role="line" 712 sodipodi:role="line"
713 x="1373.233" 713 x="1487.233"
714 y="-265.32928" 714 y="-320.32928"
715 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 715 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
716 id="tspan957-2-8-6-3-9-7-4-2">Scarthgap</tspan><tspan 716 id="tspan957-2-8-6-3-9-7-4-2-0">Styhead</tspan><tspan
717 sodipodi:role="line" 717 sodipodi:role="line"
718 x="1373.233" 718 x="1487.233"
719 y="-247.33261" 719 y="-302.33261"
720 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 720 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
721 id="tspan10317-2-9-1-4-6-5">5.0</tspan></text> 721 id="tspan10317-2-9-1-4-6-5-6">5.1</tspan></text>
722 <rect 722 <g
723 id="g1591">
724 <rect
725 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
726 id="rect917-0-0-4-4-9-9"
727 width="960.00012"
728 height="45.000004"
729 x="859.99994"
730 y="-64.999992"
731 ry="2.2558987" />
732 <text
733 xml:space="preserve"
734 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
735 x="928.49872"
736 y="-45.648258"
737 id="text1185-3-55-4-0-0-9"><tspan
738 sodipodi:role="line"
739 x="928.49872"
740 y="-45.648258"
741 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
742 id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
743 sodipodi:role="line"
744 x="928.49872"
745 y="-27.651579"
746 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
747 id="tspan10317-2-9-0">4.0</tspan></text>
748 </g>
749 <path
750 id="rect917-0-0-4-4-9-9-9"
723 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 751 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
724 id="rect917-0-0-4-4-9-9" 752 d="m 1322.3015,-285.00003 c -1.2753,0 -2.302,1.00609 -2.302,2.25586 v 40.48828 c 0,1.24977 1.0267,2.25586 2.302,2.25586 h 975.0412 c 1.2754,0 2.302,-1.00609 2.302,-2.25586 v -40.48828 c 0,-1.24977 -1.0266,-2.25586 -2.302,-2.25586 z" />
725 width="960.00012"
726 height="45.000004"
727 x="859.99994"
728 y="-64.999992"
729 ry="2.2558987" />
730 <text 753 <text
731 xml:space="preserve" 754 xml:space="preserve"
732 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 755 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
733 x="928.49872" 756 x="1390.4988"
734 y="-45.648258" 757 y="-265.64832"
735 id="text1185-3-55-4-0-0-9"><tspan 758 id="text1185-3-55-4-0-0-9-0"><tspan
736 sodipodi:role="line" 759 sodipodi:role="line"
737 x="928.49872" 760 x="1390.4988"
738 y="-45.648258" 761 y="-265.64832"
739 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 762 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
740 id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan 763 id="tspan957-2-8-6-3-6-8">Scarthgap (LTS)</tspan><tspan
741 sodipodi:role="line" 764 sodipodi:role="line"
742 x="928.49872" 765 x="1390.4988"
743 y="-27.651579" 766 y="-247.65164"
744 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 767 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
745 id="tspan10317-2-9-0">4.0</tspan></text> 768 id="tspan10317-2-9-0-1">5.0</tspan></text>
746 <text 769 <text
747 xml:space="preserve" 770 xml:space="preserve"
748 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 771 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
diff --git a/documentation/set_versions.py b/documentation/set_versions.py
index 90e08fc5e0..dec0780834 100755
--- a/documentation/set_versions.py
+++ b/documentation/set_versions.py
@@ -26,9 +26,9 @@ ourversion = None
26if len(sys.argv) == 2: 26if len(sys.argv) == 2:
27 ourversion = sys.argv[1] 27 ourversion = sys.argv[1]
28 28
29activereleases = ["nanbield", "kirkstone", "dunfell"] 29activereleases = ["scarthgap", "nanbield", "kirkstone", "dunfell"]
30devbranch = "scarthgap" 30devbranch = "styhead"
31ltsseries = ["kirkstone", "dunfell"] 31ltsseries = ["scarthgap", "kirkstone", "dunfell"]
32 32
33# used by run-docs-builds to get the default page 33# used by run-docs-builds to get the default page
34if ourversion == "getlatest": 34if ourversion == "getlatest":
@@ -36,6 +36,7 @@ if ourversion == "getlatest":
36 sys.exit(0) 36 sys.exit(0)
37 37
38release_series = collections.OrderedDict() 38release_series = collections.OrderedDict()
39release_series["styhead"] = "5.1"
39release_series["scarthgap"] = "5.0" 40release_series["scarthgap"] = "5.0"
40release_series["nanbield"] = "4.3" 41release_series["nanbield"] = "4.3"
41release_series["mickledore"] = "4.2" 42release_series["mickledore"] = "4.2"
@@ -68,6 +69,7 @@ release_series["laverne"] = "0.9"
68 69
69 70
70bitbake_mapping = { 71bitbake_mapping = {
72 "styhead" : "2.10",
71 "scarthgap" : "2.8", 73 "scarthgap" : "2.8",
72 "nanbield" : "2.6", 74 "nanbield" : "2.6",
73 "mickledore" : "2.4", 75 "mickledore" : "2.4",
diff --git a/meta-poky/conf/templates/default/local.conf.sample b/meta-poky/conf/templates/default/local.conf.sample
index 1a93c9bdcf..72d3566294 100644
--- a/meta-poky/conf/templates/default/local.conf.sample
+++ b/meta-poky/conf/templates/default/local.conf.sample
@@ -238,7 +238,7 @@ BB_DISKMON_DIRS ??= "\
238# (CDN) kindly provided by JSDelivr, uncomment one of the SSTATE_MIRRORS lines, not both. 238# (CDN) kindly provided by JSDelivr, uncomment one of the SSTATE_MIRRORS lines, not both.
239# Using the CDN rather than the yoctoproject.org address is suggested/preferred. 239# Using the CDN rather than the yoctoproject.org address is suggested/preferred.
240# 240#
241#BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687" 241#BB_HASHSERVE_UPSTREAM = 'wss://hashserv.yoctoproject.org/ws'
242#SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH" 242#SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
243# 243#
244###SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" 244###SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"
diff --git a/meta-selftest/recipes-test/fortran/fortran-helloworld.bb b/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
index 3a46404477..a897966608 100644
--- a/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
+++ b/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
@@ -11,7 +11,7 @@ SECURITY_CFLAGS = ""
11SECURITY_LDFLAGS = "" 11SECURITY_LDFLAGS = ""
12 12
13do_compile() { 13do_compile() {
14 ${FC} ${LDFLAGS} ${WORKDIR}/hello.f95 -o ${B}/fortran-hello 14 ${FC} ${LDFLAGS} ${UNPACKDIR}/hello.f95 -o ${B}/fortran-hello
15} 15}
16 16
17do_install() { 17do_install() {
diff --git a/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb b/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
index e127b48b15..7698413d4d 100644
--- a/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
+++ b/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
@@ -17,20 +17,20 @@ SRC_URI = "file://installscript.sh \
17EXCLUDE_FROM_WORLD = "1" 17EXCLUDE_FROM_WORLD = "1"
18 18
19install_extrafunc() { 19install_extrafunc() {
20 install -m 0644 ${WORKDIR}/selftest-replaceme-inst-func ${D}${datadir}/selftest-replaceme-inst-func 20 install -m 0644 ${UNPACKDIR}/selftest-replaceme-inst-func ${D}${datadir}/selftest-replaceme-inst-func
21} 21}
22 22
23do_install() { 23do_install() {
24 install -d ${D}${datadir}/ 24 install -d ${D}${datadir}/
25 install -m 0644 ${WORKDIR}/selftest-replaceme-orig ${D}${datadir}/selftest-replaceme-orig 25 install -m 0644 ${UNPACKDIR}/selftest-replaceme-orig ${D}${datadir}/selftest-replaceme-orig
26 install -m 0644 ${WORKDIR}/selftest-replaceme-todir ${D}${datadir} 26 install -m 0644 ${UNPACKDIR}/selftest-replaceme-todir ${D}${datadir}
27 install -m 0644 ${WORKDIR}/file1 ${D}${datadir}/selftest-replaceme-renamed 27 install -m 0644 ${UNPACKDIR}/file1 ${D}${datadir}/selftest-replaceme-renamed
28 install -m 0644 ${WORKDIR}/subdir/fileinsubdir ${D}${datadir}/selftest-replaceme-subdir 28 install -m 0644 ${UNPACKDIR}/subdir/fileinsubdir ${D}${datadir}/selftest-replaceme-subdir
29 cp ${WORKDIR}/selftest-replaceme-inst-glob* ${D}${datadir}/selftest-replaceme-inst-globfile 29 cp ${UNPACKDIR}/selftest-replaceme-inst-glob* ${D}${datadir}/selftest-replaceme-inst-globfile
30 cp ${WORKDIR}/selftest-replaceme-inst-todir-glob* ${D}${datadir} 30 cp ${UNPACKDIR}/selftest-replaceme-inst-todir-glob* ${D}${datadir}
31 install -d ${D}${sysconfdir} 31 install -d ${D}${sysconfdir}
32 install -m 0644 ${S}/file2 ${D}${sysconfdir}/selftest-replaceme-patched 32 install -m 0644 ${S}/file2 ${D}${sysconfdir}/selftest-replaceme-patched
33 sh ${WORKDIR}/installscript.sh ${D}${datadir} 33 sh ${UNPACKDIR}/installscript.sh ${D}${datadir}
34 install_extrafunc 34 install_extrafunc
35} 35}
36 36
diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
index be346b8a0e..49c3fe827a 100644
--- a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
+++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
@@ -14,7 +14,7 @@ do_compile () {
14 14
15do_install () { 15do_install () {
16 install -d ${D}${bindir} 16 install -d ${D}${bindir}
17 install -m 755 ${WORKDIR}/gdb.sh ${D}${bindir}/ 17 install -m 755 ${S}/gdb.sh ${D}${bindir}/
18 install -m 755 hello1 ${D}${bindir}/hello1 18 install -m 755 hello1 ${D}${bindir}/hello1
19 ln ${D}${bindir}/hello1 ${D}${bindir}/hello2 19 ln ${D}${bindir}/hello1 ${D}${bindir}/hello2
20 20
diff --git a/meta-selftest/recipes-test/wrapper/cmdline-shebang-wrapper-test.bb b/meta-selftest/recipes-test/wrapper/cmdline-shebang-wrapper-test.bb
index c3d3548d4a..c91d00c8d9 100644
--- a/meta-selftest/recipes-test/wrapper/cmdline-shebang-wrapper-test.bb
+++ b/meta-selftest/recipes-test/wrapper/cmdline-shebang-wrapper-test.bb
@@ -9,7 +9,7 @@ EXCLUDE_FROM_WORLD = "1"
9do_install() { 9do_install() {
10 install -d ${D}${bindir} 10 install -d ${D}${bindir}
11 # was not able to make ownership preservation check 11 # was not able to make ownership preservation check
12 install -m 0400 ${WORKDIR}/test.awk ${D}${bindir}/test 12 install -m 0400 ${UNPACKDIR}/test.awk ${D}${bindir}/test
13 13
14 perm_old="$(stat --format='%a' ${D}${bindir}/test)" 14 perm_old="$(stat --format='%a' ${D}${bindir}/test)"
15 sed -i -e 's|@AWK_BIN@|${bindir}/awk|g' ${D}${bindir}/test 15 sed -i -e 's|@AWK_BIN@|${bindir}/awk|g' ${D}${bindir}/test
diff --git a/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb b/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
index 9437240fcf..0879bb17b9 100644
--- a/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
+++ b/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
@@ -7,7 +7,7 @@ SUMMARY = "An example kernel recipe that uses the linux-yocto and oe-core"
7# To use linux-yocto-custom in your layer, copy this recipe (optionally 7# To use linux-yocto-custom in your layer, copy this recipe (optionally
8# rename it as well) and modify it appropriately for your machine. i.e.: 8# rename it as well) and modify it appropriately for your machine. i.e.:
9# 9#
10# COMPATIBLE_MACHINE_yourmachine = "yourmachine" 10# COMPATIBLE_MACHINE:yourmachine = "yourmachine"
11# 11#
12# You must also provide a Linux kernel configuration. The most direct 12# You must also provide a Linux kernel configuration. The most direct
13# method is to copy your .config to files/defconfig in your layer, 13# method is to copy your .config to files/defconfig in your layer,
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass
index 0999b42daa..066f3848f7 100644
--- a/meta/classes-global/base.bbclass
+++ b/meta/classes-global/base.bbclass
@@ -153,7 +153,7 @@ python base_do_fetch() {
153} 153}
154 154
155addtask unpack after do_fetch 155addtask unpack after do_fetch
156do_unpack[dirs] = "${WORKDIR}" 156do_unpack[dirs] = "${UNPACKDIR}"
157 157
158do_unpack[cleandirs] = "${@d.getVar('S') if os.path.normpath(d.getVar('S')) != os.path.normpath(d.getVar('WORKDIR')) else os.path.join('${S}', 'patches')}" 158do_unpack[cleandirs] = "${@d.getVar('S') if os.path.normpath(d.getVar('S')) != os.path.normpath(d.getVar('WORKDIR')) else os.path.join('${S}', 'patches')}"
159 159
@@ -164,7 +164,7 @@ python base_do_unpack() {
164 164
165 try: 165 try:
166 fetcher = bb.fetch2.Fetch(src_uri, d) 166 fetcher = bb.fetch2.Fetch(src_uri, d)
167 fetcher.unpack(d.getVar('WORKDIR')) 167 fetcher.unpack(d.getVar('UNPACKDIR'))
168 except bb.fetch2.BBFetchException as e: 168 except bb.fetch2.BBFetchException as e:
169 bb.fatal("Bitbake Fetcher Error: " + repr(e)) 169 bb.fatal("Bitbake Fetcher Error: " + repr(e))
170} 170}
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index e963001d09..c32dfffd83 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -298,7 +298,7 @@ def package_qa_check_libdir(d):
298 try: 298 try:
299 elf.open() 299 elf.open()
300 messages.append("%s: found library in wrong location: %s" % (package, rel_path)) 300 messages.append("%s: found library in wrong location: %s" % (package, rel_path))
301 except (oe.qa.NotELFFileError): 301 except (oe.qa.NotELFFileError, FileNotFoundError):
302 pass 302 pass
303 if exec_re.match(rel_path): 303 if exec_re.match(rel_path):
304 if libdir not in rel_path and libexecdir not in rel_path: 304 if libdir not in rel_path and libexecdir not in rel_path:
@@ -307,7 +307,7 @@ def package_qa_check_libdir(d):
307 try: 307 try:
308 elf.open() 308 elf.open()
309 messages.append("%s: found library in wrong location: %s" % (package, rel_path)) 309 messages.append("%s: found library in wrong location: %s" % (package, rel_path))
310 except (oe.qa.NotELFFileError): 310 except (oe.qa.NotELFFileError, FileNotFoundError):
311 pass 311 pass
312 312
313 if messages: 313 if messages:
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 04539bbb99..76a7b59636 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -1115,7 +1115,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
1115 bb.parse.siggen.checkhashes(sq_data, missed, found, d) 1115 bb.parse.siggen.checkhashes(sq_data, missed, found, d)
1116 1116
1117 return found 1117 return found
1118setscene_depvalid[vardepsexclude] = "SSTATE_EXCLUDEDEPS_SYSROOT" 1118setscene_depvalid[vardepsexclude] = "SSTATE_EXCLUDEDEPS_SYSROOT _SSTATE_EXCLUDEDEPS_SYSROOT"
1119 1119
1120BB_SETSCENE_DEPVALID = "setscene_depvalid" 1120BB_SETSCENE_DEPVALID = "setscene_depvalid"
1121 1121
diff --git a/meta/classes-recipe/cmake.bbclass b/meta/classes-recipe/cmake.bbclass
index 3d3781ef33..e1c3d7ddb5 100644
--- a/meta/classes-recipe/cmake.bbclass
+++ b/meta/classes-recipe/cmake.bbclass
@@ -124,7 +124,7 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
124 124
125# only search in the paths provided so cmake doesnt pick 125# only search in the paths provided so cmake doesnt pick
126# up libraries and tools from the native build machine 126# up libraries and tools from the native build machine
127set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR}) 127set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${COREBASE}/scripts ${HOSTTOOLS_DIR} )
128set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) 128set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
129set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} ) 129set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} )
130set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) 130set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass
index 9a86616dad..6468e8aa90 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -63,7 +63,7 @@ def find_sccs(d):
63 return sources_list 63 return sources_list
64 64
65# check the SRC_URI for "kmeta" type'd git repositories. Return the name of 65# check the SRC_URI for "kmeta" type'd git repositories. Return the name of
66# the repository as it will be found in WORKDIR 66# the repository as it will be found in UNPACKDIR
67def find_kernel_feature_dirs(d): 67def find_kernel_feature_dirs(d):
68 feature_dirs=[] 68 feature_dirs=[]
69 fetch = bb.fetch2.Fetch([], d) 69 fetch = bb.fetch2.Fetch([], d)
@@ -147,24 +147,24 @@ do_kernel_metadata() {
147 # from the source tree, into a common location and normalized "defconfig" name, 147 # from the source tree, into a common location and normalized "defconfig" name,
148 # where the rest of the process will include and incoroporate it into the build 148 # where the rest of the process will include and incoroporate it into the build
149 # 149 #
150 # If the fetcher has already placed a defconfig in WORKDIR (from the SRC_URI), 150 # If the fetcher has already placed a defconfig in UNPACKDIR (from the SRC_URI),
151 # we don't overwrite it, but instead warn the user that SRC_URI defconfigs take 151 # we don't overwrite it, but instead warn the user that SRC_URI defconfigs take
152 # precendence. 152 # precendence.
153 # 153 #
154 if [ -n "${KBUILD_DEFCONFIG}" ]; then 154 if [ -n "${KBUILD_DEFCONFIG}" ]; then
155 if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then 155 if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then
156 if [ -f "${WORKDIR}/defconfig" ]; then 156 if [ -f "${UNPACKDIR}/defconfig" ]; then
157 # If the two defconfig's are different, warn that we overwrote the 157 # If the two defconfig's are different, warn that we overwrote the
158 # one already placed in WORKDIR 158 # one already placed in UNPACKDIR
159 cmp "${WORKDIR}/defconfig" "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" 159 cmp "${UNPACKDIR}/defconfig" "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}"
160 if [ $? -ne 0 ]; then 160 if [ $? -ne 0 ]; then
161 bbdebug 1 "detected SRC_URI or unpatched defconfig in WORKDIR. ${KBUILD_DEFCONFIG} copied over it" 161 bbdebug 1 "detected SRC_URI or unpatched defconfig in UNPACKDIR. ${KBUILD_DEFCONFIG} copied over it"
162 fi 162 fi
163 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig 163 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${UNPACKDIR}/defconfig
164 else 164 else
165 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig 165 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${UNPACKDIR}/defconfig
166 fi 166 fi
167 in_tree_defconfig="${WORKDIR}/defconfig" 167 in_tree_defconfig="${UNPACKDIR}/defconfig"
168 else 168 else
169 bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)" 169 bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)"
170 fi 170 fi
@@ -178,7 +178,7 @@ do_kernel_metadata() {
178 patches="${@" ".join(find_patches(d,'kernel-meta'))}" 178 patches="${@" ".join(find_patches(d,'kernel-meta'))}"
179 if [ -n "$patches" ]; then 179 if [ -n "$patches" ]; then
180 ( 180 (
181 cd ${WORKDIR}/kernel-meta 181 cd ${UNPACKDIR}/kernel-meta
182 182
183 # take the SRC_URI patches, and create a series file 183 # take the SRC_URI patches, and create a series file
184 # this is required to support some better processing 184 # this is required to support some better processing
@@ -193,11 +193,11 @@ do_kernel_metadata() {
193 # handling the rest of the kernel. This allows us 193 # handling the rest of the kernel. This allows us
194 # more flexibility for handling failures or advanced 194 # more flexibility for handling failures or advanced
195 # mergeing functinoality 195 # mergeing functinoality
196 message=$(kgit-s2q --gen -v --patches ${WORKDIR}/kernel-meta 2>&1) 196 message=$(kgit-s2q --gen -v --patches ${UNPACKDIR}/kernel-meta 2>&1)
197 if [ $? -ne 0 ]; then 197 if [ $? -ne 0 ]; then
198 # setup to try the patch again 198 # setup to try the patch again
199 kgit-s2q --prev 199 kgit-s2q --prev
200 bberror "Problem applying patches to: ${WORKDIR}/kernel-meta" 200 bberror "Problem applying patches to: ${UNPACKDIR}/kernel-meta"
201 bbfatal_log "\n($message)" 201 bbfatal_log "\n($message)"
202 fi 202 fi
203 ) 203 )
@@ -232,12 +232,12 @@ do_kernel_metadata() {
232 # SRC_URI. If they were supplied, we convert them into include directives 232 # SRC_URI. If they were supplied, we convert them into include directives
233 # for the update part of the process 233 # for the update part of the process
234 for f in ${feat_dirs}; do 234 for f in ${feat_dirs}; do
235 if [ -d "${WORKDIR}/$f/kernel-meta" ]; then 235 if [ -d "${UNPACKDIR}/$f/kernel-meta" ]; then
236 includes="$includes -I${WORKDIR}/$f/kernel-meta" 236 includes="$includes -I${UNPACKDIR}/$f/kernel-meta"
237 elif [ -d "${WORKDIR}/../oe-local-files/$f" ]; then 237 elif [ -d "${UNPACKDIR}/../oe-local-files/$f" ]; then
238 includes="$includes -I${WORKDIR}/../oe-local-files/$f" 238 includes="$includes -I${UNPACKDIR}/../oe-local-files/$f"
239 elif [ -d "${WORKDIR}/$f" ]; then 239 elif [ -d "${UNPACKDIR}/$f" ]; then
240 includes="$includes -I${WORKDIR}/$f" 240 includes="$includes -I${UNPACKDIR}/$f"
241 fi 241 fi
242 done 242 done
243 for s in ${sccs} ${patches}; do 243 for s in ${sccs} ${patches}; do
@@ -460,7 +460,7 @@ do_kernel_configme() {
460 config_flags="" 460 config_flags=""
461 ;; 461 ;;
462 *) 462 *)
463 if [ -f ${WORKDIR}/defconfig ]; then 463 if [ -f ${UNPACKDIR}/defconfig ]; then
464 config_flags="-n" 464 config_flags="-n"
465 fi 465 fi
466 ;; 466 ;;
diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index c0a2056fec..d6eedf942c 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -679,8 +679,8 @@ kernel_do_configure() {
679 679
680 # Copy defconfig to .config if .config does not exist. This allows 680 # Copy defconfig to .config if .config does not exist. This allows
681 # recipes to manage the .config themselves in do_configure:prepend(). 681 # recipes to manage the .config themselves in do_configure:prepend().
682 if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then 682 if [ -f "${UNPACKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
683 cp "${WORKDIR}/defconfig" "${B}/.config" 683 cp "${UNPACKDIR}/defconfig" "${B}/.config"
684 fi 684 fi
685 685
686 ${KERNEL_CONFIG_COMMAND} 686 ${KERNEL_CONFIG_COMMAND}
diff --git a/meta/classes-recipe/ptest.bbclass b/meta/classes-recipe/ptest.bbclass
index 348d729aef..0941572f8f 100644
--- a/meta/classes-recipe/ptest.bbclass
+++ b/meta/classes-recipe/ptest.bbclass
@@ -53,8 +53,8 @@ do_install_ptest() {
53} 53}
54 54
55do_install_ptest_base() { 55do_install_ptest_base() {
56 if [ -f ${WORKDIR}/run-ptest ]; then 56 if [ -f ${UNPACKDIR}/run-ptest ]; then
57 install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest 57 install -D ${UNPACKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
58 fi 58 fi
59 59
60 grep -q install-ptest: Makefile 2>/dev/null && oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest 60 grep -q install-ptest: Makefile 2>/dev/null && oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass
index 486efadba9..7c8a0b8b0f 100644
--- a/meta/classes/create-spdx-2.2.bbclass
+++ b/meta/classes/create-spdx-2.2.bbclass
@@ -28,7 +28,7 @@ SPDX_ARCHIVE_SOURCES ??= "0"
28SPDX_ARCHIVE_PACKAGED ??= "0" 28SPDX_ARCHIVE_PACKAGED ??= "0"
29 29
30SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org" 30SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org"
31SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdoc" 31SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdocs"
32SPDX_PRETTY ??= "0" 32SPDX_PRETTY ??= "0"
33 33
34SPDX_LICENSES ??= "${COREBASE}/meta/files/spdx-licenses.json" 34SPDX_LICENSES ??= "${COREBASE}/meta/files/spdx-licenses.json"
@@ -357,7 +357,13 @@ def collect_dep_recipes(d, doc, spdx_recipe):
357 with spdx_deps_file.open("r") as f: 357 with spdx_deps_file.open("r") as f:
358 deps = json.load(f) 358 deps = json.load(f)
359 359
360 for dep_pn, dep_hashfn in deps: 360 for dep_pn, dep_hashfn, in_taskhash in deps:
361 # If this dependency is not calculated in the taskhash skip it.
362 # Otherwise, it can result in broken links since this task won't
363 # rebuild and see the new SPDX ID if the dependency changes
364 if not in_taskhash:
365 continue
366
361 dep_recipe_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, "recipe-" + dep_pn, dep_hashfn) 367 dep_recipe_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, "recipe-" + dep_pn, dep_hashfn)
362 if not dep_recipe_path: 368 if not dep_recipe_path:
363 bb.fatal("Cannot find any SPDX file for recipe %s, %s" % (dep_pn, dep_hashfn)) 369 bb.fatal("Cannot find any SPDX file for recipe %s, %s" % (dep_pn, dep_hashfn))
@@ -478,7 +484,7 @@ def collect_direct_deps(d, dep_task):
478 for dep_name in this_dep[3]: 484 for dep_name in this_dep[3]:
479 dep_data = taskdepdata[dep_name] 485 dep_data = taskdepdata[dep_name]
480 if dep_data[1] == dep_task and dep_data[0] != pn: 486 if dep_data[1] == dep_task and dep_data[0] != pn:
481 deps.add((dep_data[0], dep_data[7])) 487 deps.add((dep_data[0], dep_data[7], dep_name in this_dep[8]))
482 488
483 return sorted(deps) 489 return sorted(deps)
484 490
@@ -721,9 +727,9 @@ def collect_package_providers(d):
721 providers = {} 727 providers = {}
722 728
723 deps = collect_direct_deps(d, "do_create_spdx") 729 deps = collect_direct_deps(d, "do_create_spdx")
724 deps.append((d.getVar("PN"), d.getVar("BB_HASHFILENAME"))) 730 deps.append((d.getVar("PN"), d.getVar("BB_HASHFILENAME"), True))
725 731
726 for dep_pn, dep_hashfn in deps: 732 for dep_pn, dep_hashfn, _ in deps:
727 localdata = d 733 localdata = d
728 recipe_data = oe.packagedata.read_pkgdata(dep_pn, localdata) 734 recipe_data = oe.packagedata.read_pkgdata(dep_pn, localdata)
729 if not recipe_data: 735 if not recipe_data:
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index ba8bd5f975..b2c500d873 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -405,6 +405,7 @@ STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
405STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*" 405STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
406BASE_WORKDIR ?= "${TMPDIR}/work" 406BASE_WORKDIR ?= "${TMPDIR}/work"
407WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}" 407WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
408UNPACKDIR ??= "${WORKDIR}"
408T = "${WORKDIR}/temp" 409T = "${WORKDIR}/temp"
409D = "${WORKDIR}/image" 410D = "${WORKDIR}/image"
410S = "${WORKDIR}/${BP}" 411S = "${WORKDIR}/${BP}"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index a11859890e..014cf32e40 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -205,6 +205,7 @@ RECIPE_MAINTAINER:pn-gi-docgen = "Alexander Kanavin <alex.kanavin@gmail.com>"
205RECIPE_MAINTAINER:pn-git = "Robert Yang <liezhi.yang@windriver.com>" 205RECIPE_MAINTAINER:pn-git = "Robert Yang <liezhi.yang@windriver.com>"
206RECIPE_MAINTAINER:pn-glew = "Anuj Mittal <anuj.mittal@intel.com>" 206RECIPE_MAINTAINER:pn-glew = "Anuj Mittal <anuj.mittal@intel.com>"
207RECIPE_MAINTAINER:pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>" 207RECIPE_MAINTAINER:pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>"
208RECIPE_MAINTAINER:pn-glib-2.0-initial = "Anuj Mittal <anuj.mittal@intel.com>"
208RECIPE_MAINTAINER:pn-glib-networking = "Anuj Mittal <anuj.mittal@intel.com>" 209RECIPE_MAINTAINER:pn-glib-networking = "Anuj Mittal <anuj.mittal@intel.com>"
209RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>" 210RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
210RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>" 211RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
diff --git a/meta/lib/oe/package_manager/ipk/__init__.py b/meta/lib/oe/package_manager/ipk/__init__.py
index 8cc9953a02..0f0038d00d 100644
--- a/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/meta/lib/oe/package_manager/ipk/__init__.py
@@ -4,6 +4,7 @@
4# SPDX-License-Identifier: GPL-2.0-only 4# SPDX-License-Identifier: GPL-2.0-only
5# 5#
6 6
7import glob
7import re 8import re
8import shutil 9import shutil
9import subprocess 10import subprocess
@@ -134,11 +135,16 @@ class OpkgDpkgPM(PackageManager):
134 tmp_dir = tempfile.mkdtemp() 135 tmp_dir = tempfile.mkdtemp()
135 current_dir = os.getcwd() 136 current_dir = os.getcwd()
136 os.chdir(tmp_dir) 137 os.chdir(tmp_dir)
137 data_tar = 'data.tar.zst'
138 138
139 try: 139 try:
140 cmd = [ar_cmd, 'x', pkg_path] 140 cmd = [ar_cmd, 'x', pkg_path]
141 output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) 141 output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
142 data_tar = glob.glob("data.tar.*")
143 if len(data_tar) != 1:
144 bb.fatal("Unable to extract %s package. Failed to identify "
145 "data tarball (found tarballs '%s').",
146 pkg_path, data_tar)
147 data_tar = data_tar[0]
142 cmd = [tar_cmd, 'xf', data_tar] 148 cmd = [tar_cmd, 'xf', data_tar]
143 output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) 149 output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
144 except subprocess.CalledProcessError as e: 150 except subprocess.CalledProcessError as e:
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index 60a0cc8291..58c6e34fe8 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -882,7 +882,7 @@ class UserResolver(Resolver):
882 os.chdir(olddir) 882 os.chdir(olddir)
883 883
884 884
885def patch_path(url, fetch, workdir, expand=True): 885def patch_path(url, fetch, unpackdir, expand=True):
886 """Return the local path of a patch, or return nothing if this isn't a patch""" 886 """Return the local path of a patch, or return nothing if this isn't a patch"""
887 887
888 local = fetch.localpath(url) 888 local = fetch.localpath(url)
@@ -891,7 +891,7 @@ def patch_path(url, fetch, workdir, expand=True):
891 base, ext = os.path.splitext(os.path.basename(local)) 891 base, ext = os.path.splitext(os.path.basename(local))
892 if ext in ('.gz', '.bz2', '.xz', '.Z'): 892 if ext in ('.gz', '.bz2', '.xz', '.Z'):
893 if expand: 893 if expand:
894 local = os.path.join(workdir, base) 894 local = os.path.join(unpackdir, base)
895 ext = os.path.splitext(base)[1] 895 ext = os.path.splitext(base)[1]
896 896
897 urldata = fetch.ud[url] 897 urldata = fetch.ud[url]
@@ -905,12 +905,12 @@ def patch_path(url, fetch, workdir, expand=True):
905 return local 905 return local
906 906
907def src_patches(d, all=False, expand=True): 907def src_patches(d, all=False, expand=True):
908 workdir = d.getVar('WORKDIR') 908 unpackdir = d.getVar('UNPACKDIR')
909 fetch = bb.fetch2.Fetch([], d) 909 fetch = bb.fetch2.Fetch([], d)
910 patches = [] 910 patches = []
911 sources = [] 911 sources = []
912 for url in fetch.urls: 912 for url in fetch.urls:
913 local = patch_path(url, fetch, workdir, expand) 913 local = patch_path(url, fetch, unpackdir, expand)
914 if not local: 914 if not local:
915 if all: 915 if all:
916 local = fetch.localpath(url) 916 local = fetch.localpath(url)
diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py
index 448befce33..a9f717159e 100644
--- a/meta/lib/oe/reproducible.py
+++ b/meta/lib/oe/reproducible.py
@@ -120,7 +120,7 @@ def get_source_date_epoch_from_git(d, sourcedir):
120 return int(p.stdout.decode('utf-8')) 120 return int(p.stdout.decode('utf-8'))
121 121
122def get_source_date_epoch_from_youngest_file(d, sourcedir): 122def get_source_date_epoch_from_youngest_file(d, sourcedir):
123 if sourcedir == d.getVar('WORKDIR'): 123 if sourcedir == d.getVar('UNPACKDIR'):
124 # These sources are almost certainly not from a tarball 124 # These sources are almost certainly not from a tarball
125 return None 125 return None
126 126
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py
index 51949e3c93..c8f9534e41 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -286,10 +286,13 @@ class DevtoolTestCase(OESelftestTestCase):
286 else: 286 else:
287 self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test') 287 self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test')
288 288
289 def _test_devtool_add_git_url(self, git_url, version, pn, resulting_src_uri): 289 def _test_devtool_add_git_url(self, git_url, version, pn, resulting_src_uri, srcrev=None):
290 self.track_for_cleanup(self.workspacedir) 290 self.track_for_cleanup(self.workspacedir)
291 self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') 291 self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
292 result = runCmd('devtool add --version %s %s %s' % (version, pn, git_url)) 292 command = 'devtool add --version %s %s %s' % (version, pn, git_url)
293 if srcrev :
294 command += ' --srcrev %s' %srcrev
295 result = runCmd(command)
293 self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') 296 self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created')
294 # Check the recipe name is correct 297 # Check the recipe name is correct
295 recipefile = get_bb_var('FILE', pn) 298 recipefile = get_bb_var('FILE', pn)
@@ -479,11 +482,12 @@ class DevtoolAddTests(DevtoolBase):
479 482
480 def test_devtool_add_git_style2(self): 483 def test_devtool_add_git_style2(self):
481 version = 'v3.1.0' 484 version = 'v3.1.0'
485 srcrev = 'v3.1.0'
482 pn = 'mbedtls' 486 pn = 'mbedtls'
483 # this will trigger reformat_git_uri with branch parameter in url 487 # this will trigger reformat_git_uri with branch parameter in url
484 git_url = "'git://git@github.com/ARMmbed/mbedtls.git;protocol=https'" 488 git_url = "'git://git@github.com/ARMmbed/mbedtls.git;protocol=https'"
485 resulting_src_uri = "gitsm://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master" 489 resulting_src_uri = "git://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master"
486 self._test_devtool_add_git_url(git_url, version, pn, resulting_src_uri) 490 self._test_devtool_add_git_url(git_url, version, pn, resulting_src_uri, srcrev)
487 491
488 def test_devtool_add_library(self): 492 def test_devtool_add_library(self):
489 # Fetch source 493 # Fetch source
diff --git a/meta/recipes-bsp/acpid/acpid.inc b/meta/recipes-bsp/acpid/acpid.inc
index 7b2f1c71c5..3d6f75f90f 100644
--- a/meta/recipes-bsp/acpid/acpid.inc
+++ b/meta/recipes-bsp/acpid/acpid.inc
@@ -27,13 +27,13 @@ SYSTEMD_SERVICE:${PN} = "acpid.service"
27 27
28do_install:append () { 28do_install:append () {
29 install -d ${D}${sysconfdir}/init.d 29 install -d ${D}${sysconfdir}/init.d
30 sed -e 's,/usr/sbin,${sbindir},g' ${WORKDIR}/init > ${D}${sysconfdir}/init.d/acpid 30 sed -e 's,/usr/sbin,${sbindir},g' ${UNPACKDIR}/init > ${D}${sysconfdir}/init.d/acpid
31 chmod 755 ${D}${sysconfdir}/init.d/acpid 31 chmod 755 ${D}${sysconfdir}/init.d/acpid
32 32
33 install -d ${D}${sysconfdir}/acpi 33 install -d ${D}${sysconfdir}/acpi
34 install -d ${D}${sysconfdir}/acpi/events 34 install -d ${D}${sysconfdir}/acpi/events
35 35
36 install -d ${D}${systemd_system_unitdir} 36 install -d ${D}${systemd_system_unitdir}
37 install -m 0644 ${WORKDIR}/acpid.service ${D}${systemd_system_unitdir} 37 install -m 0644 ${UNPACKDIR}/acpid.service ${D}${systemd_system_unitdir}
38 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/acpid.service 38 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/acpid.service
39} 39}
diff --git a/meta/recipes-bsp/alsa-state/alsa-state.bb b/meta/recipes-bsp/alsa-state/alsa-state.bb
index bd7f610f46..83384f2daf 100644
--- a/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -38,15 +38,15 @@ INITSCRIPT_PARAMS = "start 39 S . stop 31 0 6 ."
38do_install() { 38do_install() {
39 # Only install the init script when 'sysvinit' is in DISTRO_FEATURES. 39 # Only install the init script when 'sysvinit' is in DISTRO_FEATURES.
40 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then 40 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
41 sed -i -e "s:#STATEDIR#:${localstatedir}/lib/alsa:g" ${WORKDIR}/alsa-state-init 41 sed -i -e "s:#STATEDIR#:${localstatedir}/lib/alsa:g" ${S}/alsa-state-init
42 install -d ${D}${sysconfdir}/init.d 42 install -d ${D}${sysconfdir}/init.d
43 install -m 0755 ${WORKDIR}/alsa-state-init ${D}${sysconfdir}/init.d/alsa-state 43 install -m 0755 ${S}/alsa-state-init ${D}${sysconfdir}/init.d/alsa-state
44 fi 44 fi
45 45
46 install -d ${D}/${localstatedir}/lib/alsa 46 install -d ${D}/${localstatedir}/lib/alsa
47 install -d ${D}${sysconfdir} 47 install -d ${D}${sysconfdir}
48 install -m 0644 ${WORKDIR}/asound.conf ${D}${sysconfdir} 48 install -m 0644 ${S}/asound.conf ${D}${sysconfdir}
49 install -m 0644 ${WORKDIR}/*.state ${D}${localstatedir}/lib/alsa 49 install -m 0644 ${S}/*.state ${D}${localstatedir}/lib/alsa
50} 50}
51 51
52PACKAGES += "alsa-states" 52PACKAGES += "alsa-states"
diff --git a/meta/recipes-bsp/keymaps/keymaps_1.0.bb b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
index 3d5d127820..e30dd9dca2 100644
--- a/meta/recipes-bsp/keymaps/keymaps_1.0.bb
+++ b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
@@ -31,7 +31,7 @@ do_install () {
31 # THe ulitity this script provides could be achieved by systemd-vconsole-setup.service 31 # THe ulitity this script provides could be achieved by systemd-vconsole-setup.service
32 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then 32 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
33 install -d ${D}${sysconfdir}/init.d/ 33 install -d ${D}${sysconfdir}/init.d/
34 install -m 0755 ${WORKDIR}/keymap.sh ${D}${sysconfdir}/init.d/ 34 install -m 0755 ${S}/keymap.sh ${D}${sysconfdir}/init.d/
35 fi 35 fi
36} 36}
37 37
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
index f5b43f6e36..3a7afb81c8 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -157,9 +157,9 @@ do_install () {
157 fi 157 fi
158 fi 158 fi
159 159
160 if [ -e ${WORKDIR}/fw_env.config ] ; then 160 if [ -e ${UNPACKDIR}/fw_env.config ] ; then
161 install -d ${D}${sysconfdir} 161 install -d ${D}${sysconfdir}
162 install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config 162 install -m 644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
163 fi 163 fi
164 164
165 if [ -n "${SPL_BINARY}" ] 165 if [ -n "${SPL_BINARY}" ]
diff --git a/meta/recipes-bsp/usbinit/usbinit.bb b/meta/recipes-bsp/usbinit/usbinit.bb
index 3a50b835c2..b80191bddc 100644
--- a/meta/recipes-bsp/usbinit/usbinit.bb
+++ b/meta/recipes-bsp/usbinit/usbinit.bb
@@ -5,7 +5,7 @@ same wire, at higher speeds than most Wifi connections."
5HOMEPAGE = "http://linux-sunxi.org/USB_Gadget/Ethernet" 5HOMEPAGE = "http://linux-sunxi.org/USB_Gadget/Ethernet"
6 6
7LICENSE = "GPL-2.0-only" 7LICENSE = "GPL-2.0-only"
8LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" 8LIC_FILES_CHKSUM = "file://${S}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
9 9
10 10
11SRC_URI = "file://usb-gether \ 11SRC_URI = "file://usb-gether \
diff --git a/meta/recipes-connectivity/avahi/avahi_0.8.bb b/meta/recipes-connectivity/avahi/avahi_0.8.bb
index 1f18d4491d..a78e776a18 100644
--- a/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -184,8 +184,8 @@ SYSTEMD_SERVICE:${PN}-dnsconfd = "avahi-dnsconfd.service"
184 184
185do_install:append() { 185do_install:append() {
186 install -d ${D}${sysconfdir}/udhcpc.d 186 install -d ${D}${sysconfdir}/udhcpc.d
187 install ${WORKDIR}/00avahi-autoipd ${D}${sysconfdir}/udhcpc.d 187 install ${UNPACKDIR}/00avahi-autoipd ${D}${sysconfdir}/udhcpc.d
188 install ${WORKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d 188 install ${UNPACKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d
189} 189}
190 190
191# At the time the postinst runs, dbus might not be setup so only restart if running 191# At the time the postinst runs, dbus might not be setup so only restart if running
diff --git a/meta/recipes-connectivity/bind/bind_9.18.26.bb b/meta/recipes-connectivity/bind/bind_9.18.26.bb
index 2784f3bdd9..b99f92537c 100644
--- a/meta/recipes-connectivity/bind/bind_9.18.26.bb
+++ b/meta/recipes-connectivity/bind/bind_9.18.26.bb
@@ -68,15 +68,15 @@ do_install:append() {
68 68
69 # Install systemd related files 69 # Install systemd related files
70 install -d ${D}${sbindir} 70 install -d ${D}${sbindir}
71 install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir} 71 install -m 755 ${UNPACKDIR}/generate-rndc-key.sh ${D}${sbindir}
72 install -d ${D}${systemd_system_unitdir} 72 install -d ${D}${systemd_system_unitdir}
73 install -m 0644 ${WORKDIR}/named.service ${D}${systemd_system_unitdir} 73 install -m 0644 ${UNPACKDIR}/named.service ${D}${systemd_system_unitdir}
74 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ 74 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
75 -e 's,@SBINDIR@,${sbindir},g' \ 75 -e 's,@SBINDIR@,${sbindir},g' \
76 ${D}${systemd_system_unitdir}/named.service 76 ${D}${systemd_system_unitdir}/named.service
77 77
78 install -d ${D}${sysconfdir}/default 78 install -d ${D}${sysconfdir}/default
79 install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default 79 install -m 0644 ${UNPACKDIR}/bind9 ${D}${sysconfdir}/default
80 80
81 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 81 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
82 install -d ${D}${sysconfdir}/tmpfiles.d 82 install -d ${D}${sysconfdir}/tmpfiles.d
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index a31d7076ba..a1ffdeef8c 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -85,7 +85,7 @@ NOINST_TOOLS = " \
85 85
86do_install:append() { 86do_install:append() {
87 install -d ${D}${INIT_D_DIR} 87 install -d ${D}${INIT_D_DIR}
88 install -m 0755 ${WORKDIR}/init ${D}${INIT_D_DIR}/bluetooth 88 install -m 0755 ${UNPACKDIR}/init ${D}${INIT_D_DIR}/bluetooth
89 89
90 if [ -f ${D}/${sysconfdir}/init.d/bluetooth ]; then 90 if [ -f ${D}/${sysconfdir}/init.d/bluetooth ]; then
91 sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}/${sysconfdir}/init.d/bluetooth 91 sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}/${sysconfdir}/init.d/bluetooth
diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index fcd154b4b0..f6150d98ec 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -26,5 +26,5 @@ ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
26RDEPENDS:${PN} = "connman" 26RDEPENDS:${PN} = "connman"
27 27
28do_install:append() { 28do_install:append() {
29 install -m 0644 ${WORKDIR}/images/* ${D}/usr/share/icons/hicolor/22x22/apps/ 29 install -m 0644 ${UNPACKDIR}/images/* ${D}/usr/share/icons/hicolor/22x22/apps/
30} 30}
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc
index 7487ca0d0c..073061eeda 100644
--- a/meta/recipes-connectivity/connman/connman.inc
+++ b/meta/recipes-connectivity/connman/connman.inc
@@ -86,7 +86,7 @@ ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','sy
86do_install:append() { 86do_install:append() {
87 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then 87 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
88 install -d ${D}${sysconfdir}/init.d 88 install -d ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/connman ${D}${sysconfdir}/init.d/connman 89 install -m 0755 ${UNPACKDIR}/connman ${D}${sysconfdir}/init.d/connman
90 sed -i s%@DATADIR@%${datadir}% ${D}${sysconfdir}/init.d/connman 90 sed -i s%@DATADIR@%${datadir}% ${D}${sysconfdir}/init.d/connman
91 fi 91 fi
92 92
diff --git a/meta/recipes-connectivity/dhcpcd/dhcpcd_10.0.6.bb b/meta/recipes-connectivity/dhcpcd/dhcpcd_10.0.6.bb
index 6bde9b1f51..fd193b2cff 100644
--- a/meta/recipes-connectivity/dhcpcd/dhcpcd_10.0.6.bb
+++ b/meta/recipes-connectivity/dhcpcd/dhcpcd_10.0.6.bb
@@ -52,7 +52,7 @@ USERADD_PARAM:${PN} = "--system -d ${DBDIR} -M -s /bin/false -U dhcpcd"
52do_install:append () { 52do_install:append () {
53 # install systemd unit files 53 # install systemd unit files
54 install -d ${D}${systemd_system_unitdir} 54 install -d ${D}${systemd_system_unitdir}
55 install -m 0644 ${WORKDIR}/dhcpcd*.service ${D}${systemd_system_unitdir} 55 install -m 0644 ${UNPACKDIR}/dhcpcd*.service ${D}${systemd_system_unitdir}
56 56
57 chmod 700 ${D}${DBDIR} 57 chmod 700 ${D}${DBDIR}
58 chown dhcpcd:dhcpcd ${D}${DBDIR} 58 chown dhcpcd:dhcpcd ${D}${DBDIR}
diff --git a/meta/recipes-connectivity/inetutils/inetutils_2.5.bb b/meta/recipes-connectivity/inetutils/inetutils_2.5.bb
index 0f1a0736bd..afb0462c61 100644
--- a/meta/recipes-connectivity/inetutils/inetutils_2.5.bb
+++ b/meta/recipes-connectivity/inetutils/inetutils_2.5.bb
@@ -80,23 +80,23 @@ do_install:append () {
80 mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd 80 mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd
81 if [ -e ${D}${libexecdir}/rexecd ]; then 81 if [ -e ${D}${libexecdir}/rexecd ]; then
82 mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd 82 mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd
83 cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec 83 cp ${UNPACKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec
84 fi 84 fi
85 if [ -e ${D}${libexecdir}/rlogind ]; then 85 if [ -e ${D}${libexecdir}/rlogind ]; then
86 mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind 86 mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind
87 cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin 87 cp ${UNPACKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin
88 fi 88 fi
89 if [ -e ${D}${libexecdir}/rshd ]; then 89 if [ -e ${D}${libexecdir}/rshd ]; then
90 mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd 90 mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd
91 cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh 91 cp ${UNPACKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh
92 fi 92 fi
93 if [ -e ${D}${libexecdir}/talkd ]; then 93 if [ -e ${D}${libexecdir}/talkd ]; then
94 mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd 94 mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd
95 fi 95 fi
96 mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd 96 mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd
97 mv ${D}${libexecdir}/* ${D}${bindir}/ 97 mv ${D}${libexecdir}/* ${D}${bindir}/
98 cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet 98 cp ${UNPACKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet
99 cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd 99 cp ${UNPACKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd
100 100
101 sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/* 101 sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/*
102 if [ -e ${D}${libdir}/charset.alias ]; then 102 if [ -e ${D}${libdir}/charset.alias ]; then
diff --git a/meta/recipes-connectivity/kea/kea_2.4.1.bb b/meta/recipes-connectivity/kea/kea_2.4.1.bb
index 9f8758f379..6c1e457938 100644
--- a/meta/recipes-connectivity/kea/kea_2.4.1.bb
+++ b/meta/recipes-connectivity/kea/kea_2.4.1.bb
@@ -58,8 +58,8 @@ do_install:append() {
58 install -d ${D}${sysconfdir}/init.d 58 install -d ${D}${sysconfdir}/init.d
59 install -d ${D}${systemd_system_unitdir} 59 install -d ${D}${systemd_system_unitdir}
60 60
61 install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir} 61 install -m 0644 ${UNPACKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
62 install -m 0755 ${WORKDIR}/kea-*-server ${D}${sysconfdir}/init.d 62 install -m 0755 ${UNPACKDIR}/kea-*-server ${D}${sysconfdir}/init.d
63 sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \ 63 sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
64 -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 64 -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
65 ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl 65 ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
diff --git a/meta/recipes-connectivity/neard/neard_0.19.bb b/meta/recipes-connectivity/neard/neard_0.19.bb
index a98f436b98..94df1ac3d6 100644
--- a/meta/recipes-connectivity/neard/neard_0.19.bb
+++ b/meta/recipes-connectivity/neard/neard_0.19.bb
@@ -31,7 +31,7 @@ EXTRA_OECONF += "--enable-tools"
31do_install:append() { 31do_install:append() {
32 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 32 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
33 install -d ${D}${sysconfdir}/init.d/ 33 install -d ${D}${sysconfdir}/init.d/
34 sed "s:@installpath@:${libexecdir}/nfc:" ${WORKDIR}/neard.in \ 34 sed "s:@installpath@:${libexecdir}/nfc:" ${UNPACKDIR}/neard.in \
35 > ${D}${sysconfdir}/init.d/neard 35 > ${D}${sysconfdir}/init.d/neard
36 chmod 0755 ${D}${sysconfdir}/init.d/neard 36 chmod 0755 ${D}${sysconfdir}/init.d/neard
37 fi 37 fi
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.4.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.4.bb
index 2f2644f9a8..af7a74a5fb 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.4.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.4.bb
@@ -122,22 +122,22 @@ HIGH_RLIMIT_NOFILE ??= "4096"
122 122
123do_install:append () { 123do_install:append () {
124 install -d ${D}${sysconfdir}/init.d 124 install -d ${D}${sysconfdir}/init.d
125 install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver 125 install -m 0755 ${UNPACKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
126 install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon 126 install -m 0755 ${UNPACKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon
127 127
128 install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} 128 install -m 0755 ${UNPACKDIR}/nfs-utils.conf ${D}${sysconfdir}
129 install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} 129 install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir}
130 130
131 install -d ${D}${systemd_system_unitdir} 131 install -d ${D}${systemd_system_unitdir}
132 install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_system_unitdir}/ 132 install -m 0644 ${UNPACKDIR}/nfs-server.service ${D}${systemd_system_unitdir}/
133 install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_system_unitdir}/ 133 install -m 0644 ${UNPACKDIR}/nfs-mountd.service ${D}${systemd_system_unitdir}/
134 install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_system_unitdir}/ 134 install -m 0644 ${UNPACKDIR}/nfs-statd.service ${D}${systemd_system_unitdir}/
135 sed -i -e 's,@SBINDIR@,${sbindir},g' \ 135 sed -i -e 's,@SBINDIR@,${sbindir},g' \
136 -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 136 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
137 -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ 137 -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
138 ${D}${systemd_system_unitdir}/*.service 138 ${D}${systemd_system_unitdir}/*.service
139 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 139 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
140 install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/ 140 install -m 0644 ${UNPACKDIR}/proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/
141 install -d ${D}${systemd_system_unitdir}/sysinit.target.wants/ 141 install -d ${D}${systemd_system_unitdir}/sysinit.target.wants/
142 ln -sf ../proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/sysinit.target.wants/proc-fs-nfsd.mount 142 ln -sf ../proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/sysinit.target.wants/proc-fs-nfsd.mount
143 fi 143 fi
diff --git a/meta/recipes-connectivity/ofono/ofono_2.4.bb b/meta/recipes-connectivity/ofono/ofono_2.4.bb
index dae5cc3c25..5e1e5f3b6a 100644
--- a/meta/recipes-connectivity/ofono/ofono_2.4.bb
+++ b/meta/recipes-connectivity/ofono/ofono_2.4.bb
@@ -37,7 +37,7 @@ do_configure:prepend() {
37 37
38do_install:append() { 38do_install:append() {
39 install -d ${D}${sysconfdir}/init.d/ 39 install -d ${D}${sysconfdir}/init.d/
40 install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono 40 install -m 0755 ${UNPACKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
41} 41}
42 42
43PACKAGES =+ "${PN}-tests" 43PACKAGES =+ "${PN}-tests"
diff --git a/meta/recipes-connectivity/openssh/openssh_9.7p1.bb b/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
index d1468c59fc..36ffa49398 100644
--- a/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
+++ b/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
@@ -102,8 +102,8 @@ CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no"
102 102
103do_configure:prepend () { 103do_configure:prepend () {
104 export LD="${CC}" 104 export LD="${CC}"
105 install -m 0644 ${WORKDIR}/sshd_config ${B}/ 105 install -m 0644 ${UNPACKDIR}/sshd_config ${B}/
106 install -m 0644 ${WORKDIR}/ssh_config ${B}/ 106 install -m 0644 ${UNPACKDIR}/ssh_config ${B}/
107} 107}
108 108
109do_compile_ptest() { 109do_compile_ptest() {
diff --git a/meta/recipes-connectivity/openssl/openssl_3.3.0.bb b/meta/recipes-connectivity/openssl/openssl_3.3.0.bb
index 2cdaf4c75d..66cb361baa 100644
--- a/meta/recipes-connectivity/openssl/openssl_3.3.0.bb
+++ b/meta/recipes-connectivity/openssl/openssl_3.3.0.bb
@@ -181,7 +181,7 @@ do_install:append:class-native () {
181 181
182do_install:append:class-nativesdk () { 182do_install:append:class-nativesdk () {
183 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d 183 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
184 install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh 184 install -m 644 ${UNPACKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
185 sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh 185 sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
186} 186}
187 187
diff --git a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
index 099c58bfc7..0c3085d3a8 100644
--- a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
+++ b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
@@ -15,10 +15,10 @@ S = "${WORKDIR}"
15 15
16do_install() { 16do_install() {
17 install -d ${D}${sysconfdir}/ppp/peers 17 install -d ${D}${sysconfdir}/ppp/peers
18 install -m 0644 ${WORKDIR}/host-peer ${D}${sysconfdir}/ppp/peers/host 18 install -m 0644 ${S}/host-peer ${D}${sysconfdir}/ppp/peers/host
19 19
20 install -d ${D}${sbindir} 20 install -d ${D}${sbindir}
21 install -m 0755 ${WORKDIR}/ppp-dialin ${D}${sbindir} 21 install -m 0755 ${S}/ppp-dialin ${D}${sbindir}
22} 22}
23 23
24USERADD_PACKAGES = "${PN}" 24USERADD_PACKAGES = "${PN}"
diff --git a/meta/recipes-connectivity/ppp/ppp_2.5.0.bb b/meta/recipes-connectivity/ppp/ppp_2.5.0.bb
index 5f0c75de83..36e2585de4 100644
--- a/meta/recipes-connectivity/ppp/ppp_2.5.0.bb
+++ b/meta/recipes-connectivity/ppp/ppp_2.5.0.bb
@@ -35,20 +35,20 @@ do_install:append () {
35 mkdir -p ${D}${bindir}/ ${D}${sysconfdir}/init.d 35 mkdir -p ${D}${bindir}/ ${D}${sysconfdir}/init.d
36 mkdir -p ${D}${sysconfdir}/ppp/ip-up.d/ 36 mkdir -p ${D}${sysconfdir}/ppp/ip-up.d/
37 mkdir -p ${D}${sysconfdir}/ppp/ip-down.d/ 37 mkdir -p ${D}${sysconfdir}/ppp/ip-down.d/
38 install -m 0755 ${WORKDIR}/pon ${D}${bindir}/pon 38 install -m 0755 ${UNPACKDIR}/pon ${D}${bindir}/pon
39 install -m 0755 ${WORKDIR}/poff ${D}${bindir}/poff 39 install -m 0755 ${UNPACKDIR}/poff ${D}${bindir}/poff
40 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/ppp 40 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/ppp
41 install -m 0755 ${WORKDIR}/ip-up ${D}${sysconfdir}/ppp/ 41 install -m 0755 ${UNPACKDIR}/ip-up ${D}${sysconfdir}/ppp/
42 install -m 0755 ${WORKDIR}/ip-down ${D}${sysconfdir}/ppp/ 42 install -m 0755 ${UNPACKDIR}/ip-down ${D}${sysconfdir}/ppp/
43 install -m 0755 ${WORKDIR}/08setupdns ${D}${sysconfdir}/ppp/ip-up.d/ 43 install -m 0755 ${UNPACKDIR}/08setupdns ${D}${sysconfdir}/ppp/ip-up.d/
44 install -m 0755 ${WORKDIR}/92removedns ${D}${sysconfdir}/ppp/ip-down.d/ 44 install -m 0755 ${UNPACKDIR}/92removedns ${D}${sysconfdir}/ppp/ip-down.d/
45 mkdir -p ${D}${sysconfdir}/chatscripts 45 mkdir -p ${D}${sysconfdir}/chatscripts
46 mkdir -p ${D}${sysconfdir}/ppp/peers 46 mkdir -p ${D}${sysconfdir}/ppp/peers
47 install -m 0755 ${WORKDIR}/pap ${D}${sysconfdir}/chatscripts 47 install -m 0755 ${UNPACKDIR}/pap ${D}${sysconfdir}/chatscripts
48 install -m 0755 ${WORKDIR}/ppp_on_boot ${D}${sysconfdir}/ppp/ppp_on_boot 48 install -m 0755 ${UNPACKDIR}/ppp_on_boot ${D}${sysconfdir}/ppp/ppp_on_boot
49 install -m 0755 ${WORKDIR}/provider ${D}${sysconfdir}/ppp/peers/provider 49 install -m 0755 ${UNPACKDIR}/provider ${D}${sysconfdir}/ppp/peers/provider
50 install -d ${D}${systemd_system_unitdir} 50 install -d ${D}${systemd_system_unitdir}
51 install -m 0644 ${WORKDIR}/ppp@.service ${D}${systemd_system_unitdir} 51 install -m 0644 ${UNPACKDIR}/ppp@.service ${D}${systemd_system_unitdir}
52 sed -i -e 's,@SBINDIR@,${sbindir},g' \ 52 sed -i -e 's,@SBINDIR@,${sbindir},g' \
53 ${D}${systemd_system_unitdir}/ppp@.service 53 ${D}${systemd_system_unitdir}/ppp@.service
54} 54}
diff --git a/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
index 226cb7ee77..c3ce5bc22e 100644
--- a/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
+++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
@@ -29,7 +29,7 @@ do_compile () {
29 29
30do_install () { 30do_install () {
31 install -d ${D}${sysconfdir}/default/volatiles 31 install -d ${D}${sysconfdir}/default/volatiles
32 install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles 32 install -m 0644 ${UNPACKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles
33 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 33 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
34 install -d ${D}${sysconfdir}/tmpfiles.d 34 install -d ${D}${sysconfdir}/tmpfiles.d
35 echo "d /run/${BPN}/interface - - - -" \ 35 echo "d /run/${BPN}/interface - - - -" \
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb
index ddd10e6eeb..4a62ddacd5 100644
--- a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb
@@ -8,12 +8,14 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
8 8
9INHIBIT_DEFAULT_DEPS = "1" 9INHIBIT_DEFAULT_DEPS = "1"
10 10
11COMPATIBLE_MACHINE = "^qemu.*$"
12
11do_install () { 13do_install () {
12 install -d ${D}${sysconfdir}/dropbear 14 install -d ${D}${sysconfdir}/dropbear
13 install ${WORKDIR}/dropbear_rsa_host_key -m 0600 ${D}${sysconfdir}/dropbear/ 15 install ${UNPACKDIR}/dropbear_rsa_host_key -m 0600 ${D}${sysconfdir}/dropbear/
14 16
15 install -d ${D}${sysconfdir}/ssh 17 install -d ${D}${sysconfdir}/ssh
16 install ${WORKDIR}/openssh/* ${D}${sysconfdir}/ssh/ 18 install ${UNPACKDIR}/openssh/* ${D}${sysconfdir}/ssh/
17 chmod 0600 ${D}${sysconfdir}/ssh/* 19 chmod 0600 ${D}${sysconfdir}/ssh/*
18 chmod 0644 ${D}${sysconfdir}/ssh/*.pub 20 chmod 0644 ${D}${sysconfdir}/ssh/*.pub
19} \ No newline at end of file 21}
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
index 22028ce957..8113bcab09 100644
--- a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
@@ -62,15 +62,15 @@ do_install () {
62 oe_runmake -C wpa_supplicant DESTDIR="${D}" install 62 oe_runmake -C wpa_supplicant DESTDIR="${D}" install
63 63
64 install -d ${D}${docdir}/wpa_supplicant 64 install -d ${D}${docdir}/wpa_supplicant
65 install -m 644 wpa_supplicant/README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant 65 install -m 644 wpa_supplicant/README ${UNPACKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant
66 66
67 install -d ${D}${sysconfdir} 67 install -d ${D}${sysconfdir}
68 install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf 68 install -m 600 ${UNPACKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf
69 69
70 install -d ${D}${sysconfdir}/network/if-pre-up.d/ 70 install -d ${D}${sysconfdir}/network/if-pre-up.d/
71 install -d ${D}${sysconfdir}/network/if-post-down.d/ 71 install -d ${D}${sysconfdir}/network/if-post-down.d/
72 install -d ${D}${sysconfdir}/network/if-down.d/ 72 install -d ${D}${sysconfdir}/network/if-down.d/
73 install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant 73 install -m 755 ${UNPACKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant
74 ln -sf ../if-pre-up.d/wpa-supplicant ${D}${sysconfdir}/network/if-post-down.d/wpa-supplicant 74 ln -sf ../if-pre-up.d/wpa-supplicant ${D}${sysconfdir}/network/if-post-down.d/wpa-supplicant
75 75
76 install -d ${D}/${sysconfdir}/dbus-1/system.d 76 install -d ${D}/${sysconfdir}/dbus-1/system.d
@@ -84,7 +84,7 @@ do_install () {
84 fi 84 fi
85 85
86 install -d ${D}/etc/default/volatiles 86 install -d ${D}/etc/default/volatiles
87 install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles 87 install -m 0644 ${UNPACKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles
88 88
89 install -d ${D}${includedir} 89 install -d ${D}${includedir}
90 install -m 0644 ${S}/src/common/wpa_ctrl.h ${D}${includedir} 90 install -m 0644 ${S}/src/common/wpa_ctrl.h ${D}${includedir}
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..42a8026e63 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
@@ -113,23 +113,23 @@ do_install () {
113 ln -snf ../run ${D}${localstatedir}/run 113 ln -snf ../run ${D}${localstatedir}/run
114 ln -snf ../run/lock ${D}${localstatedir}/lock 114 ln -snf ../run/lock ${D}${localstatedir}/lock
115 115
116 install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts 116 install -m 0644 ${S}/hosts ${D}${sysconfdir}/hosts
117 ${BASEFILESISSUEINSTALL} 117 ${BASEFILESISSUEINSTALL}
118 118
119 rotation=`cat ${WORKDIR}/rotation` 119 rotation=`cat ${S}/rotation`
120 if [ "$rotation" != "0" ]; then 120 if [ "$rotation" != "0" ]; then
121 install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation 121 install -m 0644 ${S}/rotation ${D}${sysconfdir}/rotation
122 fi 122 fi
123 123
124 install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab 124 install -m 0644 ${S}/fstab ${D}${sysconfdir}/fstab
125 install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile 125 install -m 0644 ${S}/profile ${D}${sysconfdir}/profile
126 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile 126 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
127 sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile 127 sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
128 install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells 128 install -m 0644 ${S}/shells ${D}${sysconfdir}/shells
129 install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile 129 install -m 0755 ${S}/share/dot.profile ${D}${sysconfdir}/skel/.profile
130 install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc 130 install -m 0755 ${S}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
131 install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf 131 install -m 0644 ${S}/host.conf ${D}${sysconfdir}/host.conf
132 install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd 132 install -m 0644 ${S}/motd ${D}${sysconfdir}/motd
133 133
134 ln -sf /proc/mounts ${D}${sysconfdir}/mtab 134 ln -sf /proc/mounts ${D}${sysconfdir}/mtab
135 135
@@ -145,12 +145,12 @@ do_install () {
145} 145}
146 146
147do_install:append:libc-glibc () { 147do_install:append:libc-glibc () {
148 install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf 148 install -m 0644 ${S}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf
149} 149}
150 150
151DISTRO_VERSION[vardepsexclude] += "DATE" 151DISTRO_VERSION[vardepsexclude] += "DATE"
152do_install_basefilesissue () { 152do_install_basefilesissue () {
153 install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir} 153 install -m 644 ${S}/issue* ${D}${sysconfdir}
154 if [ -n "${DISTRO_NAME}" ]; then 154 if [ -n "${DISTRO_NAME}" ]; then
155 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue 155 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
156 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net 156 printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb b/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb
index 6904a91930..1f179d8560 100644
--- a/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb
+++ b/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb
@@ -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
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index f5d7c3f9c8..67a9111e5b 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -114,7 +114,7 @@ do_prepare_config () {
114 export KCONFIG_NOTIMESTAMP=1 114 export KCONFIG_NOTIMESTAMP=1
115 115
116 sed -e '/CONFIG_STATIC/d' \ 116 sed -e '/CONFIG_STATIC/d' \
117 < ${WORKDIR}/defconfig > ${S}/.config 117 < ${UNPACKDIR}/defconfig > ${S}/.config
118 echo "# CONFIG_STATIC is not set" >> .config 118 echo "# CONFIG_STATIC is not set" >> .config
119 for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \ 119 for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \
120 ${S}/.config 120 ${S}/.config
@@ -280,67 +280,67 @@ do_install () {
280 fi 280 fi
281 281
282 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then 282 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then
283 install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/syslog 283 install -m 0755 ${UNPACKDIR}/syslog ${D}${sysconfdir}/init.d/syslog
284 install -m 644 ${WORKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf 284 install -m 644 ${UNPACKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf
285 install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf 285 install -m 644 ${UNPACKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf
286 fi 286 fi
287 if grep -q "CONFIG_CROND=y" ${B}/.config; then 287 if grep -q "CONFIG_CROND=y" ${B}/.config; then
288 install -m 0755 ${WORKDIR}/busybox-cron ${D}${sysconfdir}/init.d/ 288 install -m 0755 ${UNPACKDIR}/busybox-cron ${D}${sysconfdir}/init.d/
289 fi 289 fi
290 if grep -q "CONFIG_HTTPD=y" ${B}/.config; then 290 if grep -q "CONFIG_HTTPD=y" ${B}/.config; then
291 install -m 0755 ${WORKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/ 291 install -m 0755 ${UNPACKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/
292 install -d ${D}/srv/www 292 install -d ${D}/srv/www
293 fi 293 fi
294 if grep -q "CONFIG_UDHCPD=y" ${B}/.config; then 294 if grep -q "CONFIG_UDHCPD=y" ${B}/.config; then
295 install -m 0755 ${WORKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/ 295 install -m 0755 ${UNPACKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/
296 fi 296 fi
297 if grep -q "CONFIG_HWCLOCK=y" ${B}/.config; then 297 if grep -q "CONFIG_HWCLOCK=y" ${B}/.config; then
298 install -m 0755 ${WORKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/ 298 install -m 0755 ${UNPACKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/
299 fi 299 fi
300 if grep -q "CONFIG_UDHCPC=y" ${B}/.config; then 300 if grep -q "CONFIG_UDHCPC=y" ${B}/.config; then
301 install -d ${D}${sysconfdir}/udhcpc.d 301 install -d ${D}${sysconfdir}/udhcpc.d
302 install -d ${D}${datadir}/udhcpc 302 install -d ${D}${datadir}/udhcpc
303 install -m 0755 ${WORKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default 303 install -m 0755 ${UNPACKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default
304 sed -i "s:/SBIN_DIR/:${base_sbindir}/:" ${D}${sysconfdir}/udhcpc.d/50default 304 sed -i "s:/SBIN_DIR/:${base_sbindir}/:" ${D}${sysconfdir}/udhcpc.d/50default
305 install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script 305 install -m 0755 ${UNPACKDIR}/default.script ${D}${datadir}/udhcpc/default.script
306 fi 306 fi
307 if grep -q "CONFIG_INETD=y" ${B}/.config; then 307 if grep -q "CONFIG_INETD=y" ${B}/.config; then
308 install -m 0755 ${WORKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN} 308 install -m 0755 ${UNPACKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN}
309 sed -i "s:/usr/sbin/:${sbindir}/:" ${D}${sysconfdir}/init.d/inetd.${BPN} 309 sed -i "s:/usr/sbin/:${sbindir}/:" ${D}${sysconfdir}/init.d/inetd.${BPN}
310 install -m 0644 ${WORKDIR}/inetd.conf ${D}${sysconfdir}/ 310 install -m 0644 ${UNPACKDIR}/inetd.conf ${D}${sysconfdir}/
311 fi 311 fi
312 if grep -q "CONFIG_MDEV=y" ${B}/.config; then 312 if grep -q "CONFIG_MDEV=y" ${B}/.config; then
313 install -m 0755 ${WORKDIR}/mdev ${D}${sysconfdir}/init.d/mdev 313 install -m 0755 ${UNPACKDIR}/mdev ${D}${sysconfdir}/init.d/mdev
314 if grep "CONFIG_FEATURE_MDEV_CONF=y" ${B}/.config; then 314 if grep "CONFIG_FEATURE_MDEV_CONF=y" ${B}/.config; then
315 install -m 644 ${WORKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf 315 install -m 644 ${UNPACKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf
316 install -d ${D}${sysconfdir}/mdev 316 install -d ${D}${sysconfdir}/mdev
317 install -m 0755 ${WORKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev 317 install -m 0755 ${UNPACKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev
318 install -m 0755 ${WORKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev 318 install -m 0755 ${UNPACKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev
319 fi 319 fi
320 fi 320 fi
321 if grep -q "CONFIG_INIT=y" ${B}/.config && ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','busybox','true','false',d)}; then 321 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 322 install -D -m 0755 ${UNPACKDIR}/rcS ${D}${sysconfdir}/init.d/rcS
323 install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK 323 install -D -m 0755 ${UNPACKDIR}/rcK ${D}${sysconfdir}/init.d/rcK
324 install -D -m 0755 ${WORKDIR}/rcS.default ${D}${sysconfdir}/default/rcS 324 install -D -m 0755 ${UNPACKDIR}/rcS.default ${D}${sysconfdir}/default/rcS
325 fi 325 fi
326 326
327 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 327 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
328 if grep -q "CONFIG_KLOGD=y" ${B}/.config; then 328 if grep -q "CONFIG_KLOGD=y" ${B}/.config; then
329 install -d ${D}${systemd_system_unitdir} 329 install -d ${D}${systemd_system_unitdir}
330 sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ 330 sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-klogd.service.in \
331 > ${D}${systemd_system_unitdir}/busybox-klogd.service 331 > ${D}${systemd_system_unitdir}/busybox-klogd.service
332 fi 332 fi
333 333
334 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then 334 if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then
335 install -d ${D}${systemd_system_unitdir} 335 install -d ${D}${systemd_system_unitdir}
336 sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ 336 sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-syslog.service.in \
337 > ${D}${systemd_system_unitdir}/busybox-syslog.service 337 > ${D}${systemd_system_unitdir}/busybox-syslog.service
338 if [ ! -e ${D}${systemd_system_unitdir}/busybox-klogd.service ] ; then 338 if [ ! -e ${D}${systemd_system_unitdir}/busybox-klogd.service ] ; then
339 sed -i '/klog/d' ${D}${systemd_system_unitdir}/busybox-syslog.service 339 sed -i '/klog/d' ${D}${systemd_system_unitdir}/busybox-syslog.service
340 fi 340 fi
341 if [ -f ${WORKDIR}/busybox-syslog.default ] ; then 341 if [ -f ${UNPACKDIR}/busybox-syslog.default ] ; then
342 install -d ${D}${sysconfdir}/default 342 install -d ${D}${sysconfdir}/default
343 install -m 0644 ${WORKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog 343 install -m 0644 ${UNPACKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog
344 fi 344 fi
345 fi 345 fi
346 fi 346 fi
diff --git a/meta/recipes-core/dbus/dbus_1.14.10.bb b/meta/recipes-core/dbus/dbus_1.14.10.bb
index 4fe7af7512..6a08f6984e 100644
--- a/meta/recipes-core/dbus/dbus_1.14.10.bb
+++ b/meta/recipes-core/dbus/dbus_1.14.10.bb
@@ -129,8 +129,8 @@ do_install() {
129 129
130 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 130 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
131 install -d ${D}${sysconfdir}/init.d 131 install -d ${D}${sysconfdir}/init.d
132 sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh 132 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 133 install -m 0755 ${S}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
134 install -d ${D}${sysconfdir}/default/volatiles 134 install -d ${D}${sysconfdir}/default/volatiles
135 echo "d messagebus messagebus 0755 /run/dbus none" \ 135 echo "d messagebus messagebus 0755 /run/dbus none" \
136 > ${D}${sysconfdir}/default/volatiles/99_dbus 136 > ${D}${sysconfdir}/default/volatiles/99_dbus
diff --git a/meta/recipes-core/dropbear/dropbear_2024.84.bb b/meta/recipes-core/dropbear/dropbear_2024.84.bb
index 69c7b04c55..3ea64b13d0 100644
--- a/meta/recipes-core/dropbear/dropbear_2024.84.bb
+++ b/meta/recipes-core/dropbear/dropbear_2024.84.bb
@@ -76,7 +76,7 @@ do_install() {
76 ${D}${sbindir} \ 76 ${D}${sbindir} \
77 ${D}${localstatedir} 77 ${D}${localstatedir}
78 78
79 install -m 0644 ${WORKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear 79 install -m 0644 ${UNPACKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear
80 80
81 install -m 0755 dropbearmulti ${D}${sbindir}/ 81 install -m 0755 dropbearmulti ${D}${sbindir}/
82 82
@@ -94,18 +94,18 @@ do_install() {
94 -e 's,/usr/sbin,${sbindir},g' \ 94 -e 's,/usr/sbin,${sbindir},g' \
95 -e 's,/var,${localstatedir},g' \ 95 -e 's,/var,${localstatedir},g' \
96 -e 's,/usr/bin,${bindir},g' \ 96 -e 's,/usr/bin,${bindir},g' \
97 -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
98 chmod 755 ${D}${sysconfdir}/init.d/dropbear 98 chmod 755 ${D}${sysconfdir}/init.d/dropbear
99 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 99 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
100 install -d ${D}${sysconfdir}/pam.d 100 install -d ${D}${sysconfdir}/pam.d
101 install -m 0644 ${WORKDIR}/dropbear ${D}${sysconfdir}/pam.d/ 101 install -m 0644 ${UNPACKDIR}/dropbear ${D}${sysconfdir}/pam.d/
102 fi 102 fi
103 103
104 # deal with systemd unit files 104 # deal with systemd unit files
105 install -d ${D}${systemd_system_unitdir} 105 install -d ${D}${systemd_system_unitdir}
106 install -m 0644 ${WORKDIR}/dropbearkey.service ${D}${systemd_system_unitdir} 106 install -m 0644 ${UNPACKDIR}/dropbearkey.service ${D}${systemd_system_unitdir}
107 install -m 0644 ${WORKDIR}/dropbear@.service ${D}${systemd_system_unitdir} 107 install -m 0644 ${UNPACKDIR}/dropbear@.service ${D}${systemd_system_unitdir}
108 install -m 0644 ${WORKDIR}/dropbear.socket ${D}${systemd_system_unitdir} 108 install -m 0644 ${UNPACKDIR}/dropbear.socket ${D}${systemd_system_unitdir}
109 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ 109 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
110 -e 's,@BINDIR@,${bindir},g' \ 110 -e 's,@BINDIR@,${bindir},g' \
111 -e 's,@SBINDIR@,${sbindir},g' \ 111 -e 's,@SBINDIR@,${sbindir},g' \
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..f6eba04fd4 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 0561dcbf0918631d8106c3f6c2d8e92a5ec4b887 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 77cba7b..25d709e 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@@ -883,17 +883,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',
@@ -42,16 +46,17 @@ index 5f91586..1a95f4f 100644
42 version : glib_version, 46 version : glib_version,
43 install_dir : glib_pkgconfigreldir, 47 install_dir : glib_pkgconfigreldir,
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 d2efeba..5f5841d 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@@ -447,9 +447,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..129bc7f8ae 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 ccb25e8c0bab54eac8ba0e9d7083ce81461ab72a 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..3e12f8abbe 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 caab40411d8520dae77a4b7933ebaffbb00559fe 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 59c2b0f..77cba7b 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@@ -1007,6 +1007,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..9b0b83afa4 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 65c036b1ede453e89893076f4ece21c946505096 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
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/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
index 32b4cea409..a2f9dd9672 100644
--- 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/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
@@ -1,4 +1,4 @@
1From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001 1From 01810df82fae752428d3756c85edb2eb7bbf3c15 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 13 Feb 2019 15:32:05 +0100 3Date: Wed, 13 Feb 2019 15:32:05 +0100
4Subject: [PATCH] Set host_machine correctly when building with mingw32 4Subject: [PATCH] Set host_machine correctly when building with mingw32
@@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12 3 files changed, 8 insertions(+), 5 deletions(-) 12 3 files changed, 8 insertions(+), 5 deletions(-)
13 13
14diff --git a/gio/tests/meson.build b/gio/tests/meson.build 14diff --git a/gio/tests/meson.build b/gio/tests/meson.build
15index 4ef3343..e498e7e 100644 15index 232ecca..563298b 100644
16--- a/gio/tests/meson.build 16--- a/gio/tests/meson.build
17+++ b/gio/tests/meson.build 17+++ b/gio/tests/meson.build
18@@ -29,7 +29,7 @@ endif 18@@ -29,7 +29,7 @@ endif
@@ -24,16 +24,16 @@ index 4ef3343..e498e7e 100644
24 common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] 24 common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
25 endif 25 endif
26 26
27@@ -230,7 +230,7 @@ if have_dbus_daemon 27@@ -244,7 +244,7 @@ if have_dbus_daemon
28 endif 28 endif
29 29
30 # Test programs buildable on UNIX only 30 # Test programs buildable on UNIX only
31-if host_machine.system() != 'windows' 31-if host_machine.system() != 'windows'
32+if host_system != 'windows' 32+if host_system != 'windows'
33 gio_tests += { 33 gio_tests += {
34 'file' : {}, 34 'file' : {
35 'gdbus-peer-object-manager' : {}, 35 # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
36@@ -562,7 +562,7 @@ if host_machine.system() != 'windows' 36@@ -593,7 +593,7 @@ if host_machine.system() != 'windows'
37 endif # unix 37 endif # unix
38 38
39 # Test programs buildable on Windows only 39 # Test programs buildable on Windows only
@@ -42,7 +42,7 @@ index 4ef3343..e498e7e 100644
42 gio_tests += {'win32-streams' : {}} 42 gio_tests += {'win32-streams' : {}}
43 endif 43 endif
44 44
45@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl' 45@@ -663,7 +663,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
46 } 46 }
47 endif 47 endif
48 48
@@ -52,10 +52,10 @@ index 4ef3343..e498e7e 100644
52 'gdbus-example-unix-fd-client' : { 52 'gdbus-example-unix-fd-client' : {
53 'install' : false, 53 'install' : false,
54diff --git a/glib/tests/meson.build b/glib/tests/meson.build 54diff --git a/glib/tests/meson.build b/glib/tests/meson.build
55index d80c86e..5329cda 100644 55index f6efc59..83eb5a5 100644
56--- a/glib/tests/meson.build 56--- a/glib/tests/meson.build
57+++ b/glib/tests/meson.build 57+++ b/glib/tests/meson.build
58@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD') 58@@ -226,7 +226,7 @@ if glib_conf.has('HAVE_EVENTFD')
59 } 59 }
60 endif 60 endif
61 61
@@ -65,7 +65,7 @@ index d80c86e..5329cda 100644
65 glib_tests += { 65 glib_tests += {
66 'gpoll' : { 66 'gpoll' : {
67diff --git a/meson.build b/meson.build 67diff --git a/meson.build b/meson.build
68index 813c9b7..6ee775e 100644 68index 7534542..2560686 100644
69--- a/meson.build 69--- a/meson.build
70+++ b/meson.build 70+++ b/meson.build
71@@ -54,6 +54,9 @@ else 71@@ -54,6 +54,9 @@ else
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..bb84f3969e 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 e8b4f53b567339aad90b585673d55a5c6176535a 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,7 +13,7 @@ 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 f7dc039..f708876 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@@ -1068,7 +1068,7 @@ main (int argc,
diff --git a/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
new file mode 100644
index 0000000000..76e5f58748
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
@@ -0,0 +1,88 @@
1From 4e6be5d15e5d2f8e494d22a3d49b623064f9c1a5 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Tue, 23 Apr 2024 11:24:34 +0200
4Subject: [PATCH] girepository/introspection: correctly install .gir files into
5 custom locations provided via meson option
6
7Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4020]
8Signed-off-by: Alexander Kanavin <alex@linutronix.de>
9---
10 girepository/introspection/meson.build | 9 +++++++++
11 1 file changed, 9 insertions(+)
12
13diff --git a/girepository/introspection/meson.build b/girepository/introspection/meson.build
14index 9405686..862ca61 100644
15--- a/girepository/introspection/meson.build
16+++ b/girepository/introspection/meson.build
17@@ -49,6 +49,7 @@ glib_gir = gnome.generate_gir(libglib,
18 export_packages: 'glib-2.0',
19 header: 'glib.h',
20 install: true,
21+ install_dir_gir: glib_girdir,
22 dependencies: [
23 libgobject_dep,
24 ],
25@@ -76,6 +77,7 @@ if host_system == 'windows'
26 header: 'glib.h',
27 includes: [ glib_gir[0] ],
28 install: true,
29+ install_dir_gir: glib_girdir,
30 dependencies: [
31 libgobject_dep,
32 ],
33@@ -104,6 +106,7 @@ else
34 header: 'glib.h',
35 includes: [ glib_gir[0] ],
36 install: true,
37+ install_dir_gir: glib_girdir,
38 dependencies: [
39 libgobject_dep,
40 ],
41@@ -137,6 +140,7 @@ gobject_gir = gnome.generate_gir(libgobject,
42 header: 'glib-object.h',
43 includes: [ glib_gir[0] ],
44 install: true,
45+ install_dir_gir: glib_girdir,
46 env: gi_gen_env_variables,
47 extra_args: gir_args + [
48 '-DGOBJECT_COMPILATION',
49@@ -162,6 +166,7 @@ gmodule_gir = gnome.generate_gir(libgmodule,
50 header: 'gmodule.h',
51 includes: [ glib_gir[0] ],
52 install: true,
53+ install_dir_gir: glib_girdir,
54 dependencies: [
55 libglib_dep,
56 ],
57@@ -224,6 +229,7 @@ gio_gir = gnome.generate_gir(libgio,
58 header: 'gio/gio.h',
59 includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ],
60 install: true,
61+ install_dir_gir: glib_girdir,
62 dependencies: [
63 libglib_dep,
64 libgobject_dep,
65@@ -249,6 +255,7 @@ if host_system == 'windows'
66 header: 'gio/gio.h',
67 includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
68 install: true,
69+ install_dir_gir: glib_girdir,
70 dependencies: [
71 libglib_dep,
72 libgobject_dep,
73@@ -277,6 +284,7 @@ else
74 header: 'gio/gio.h',
75 includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
76 install: true,
77+ install_dir_gir: glib_girdir,
78 dependencies: [
79 libglib_dep,
80 libgobject_dep,
81@@ -314,6 +322,7 @@ girepository_gir = gnome.generate_gir(libgirepository,
82 header: 'girepository/girepository.h',
83 includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
84 install: true,
85+ install_dir_gir: glib_girdir,
86 dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ],
87 extra_args: gir_args + libgirepository_gir_args,
88 )
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..2f80529987 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 3dc2e741e18ccb740e98eb4e808ff83153b70e83 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 2560686..5c46d0b 100644
18--- a/meson.build 18--- a/meson.build
19+++ b/meson.build 19+++ b/meson.build
20@@ -1938,7 +1938,7 @@ atomicdefine = ''' 20@@ -2024,7 +2024,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..82955de671 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 59525eedfbbfe4a16fdd0b340bc3f2479431c7d5 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 5c46d0b..222c1a1 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@@ -1022,7 +1022,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..a51c186b00 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 e6784ba43af83e22556921786c8f15e4cd246298 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
@@ -32,7 +32,7 @@ index aa5af43..56e8e2e 100755
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 e10b910..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 @@
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..d6e9019f39 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 47ea2576a13d5bc86692b4ba8cb4a8f2fd38c6ca 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 1e14955..3c09bb5 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@@ -1259,11 +1259,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@@ -1282,8 +1277,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..b1c62cc39c 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 682d8a616ca111c0e45c8a9cb02e992e63c69586 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.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
new file mode 100644
index 0000000000..7da2838265
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
@@ -0,0 +1,5 @@
1require glib.inc
2PACKAGES = ""
3PACKAGECONFIG = ""
4
5
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.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
new file mode 100644
index 0000000000..e22810a55b
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
@@ -0,0 +1 @@
require glib.inc
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index fac8875d84..780aa24573 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -28,21 +28,24 @@ 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
33GTKDOC_MESON_OPTION = "gtk_doc"
34 32
35S = "${WORKDIR}/glib-${PV}" 33S = "${WORKDIR}/glib-${PV}"
36 34
37PACKAGECONFIG ??= "libmount \ 35PACKAGECONFIG ??= "libmount \
36 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)} \
38 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 37 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
38PACKAGECONFIG:class-native = ""
39
39PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux" 40PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
40PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native" 41PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, python3-docutils-native"
41PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils" 42PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils"
42PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false," 43PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,"
43PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux" 44PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
45PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,gobject-introspection-native gobject-introspection glib-2.0-initial"
44 46
45EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false" 47EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false"
48EXTRA_OEMESON:append:class-target = " ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''}"
46 49
47do_configure:prepend() { 50do_configure:prepend() {
48 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in 51 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -53,14 +56,16 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
53 ${libexecdir}/*gio-querymodules \ 56 ${libexecdir}/*gio-querymodules \
54 ${libexecdir}/*gio-launch-desktop \ 57 ${libexecdir}/*gio-launch-desktop \
55 ${datadir}/glib-2.0/dtds \ 58 ${datadir}/glib-2.0/dtds \
56 ${datadir}/glib-2.0/schemas" 59 ${datadir}/glib-2.0/schemas \
57 60 ${libdir}/girepository-*/*.typelib \
61"
58FILES:${PN}-dev += "${libdir}/glib-2.0/include \ 62FILES:${PN}-dev += "${libdir}/glib-2.0/include \
59 ${libdir}/gio/modules/lib*${SOLIBSDEV} \ 63 ${libdir}/gio/modules/lib*${SOLIBSDEV} \
60 ${libdir}/gio/modules/*.la \ 64 ${libdir}/gio/modules/*.la \
61 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \ 65 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
62 ${datadir}/glib-2.0/schemas/gschema.dtd \ 66 ${datadir}/glib-2.0/schemas/gschema.dtd \
63 ${datadir}/glib-2.0/valgrind/glib.supp \ 67 ${datadir}/glib-2.0/valgrind/glib.supp \
68 ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir \
64 ${datadir}/gettext/its" 69 ${datadir}/gettext/its"
65FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb" 70FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
66FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \ 71FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
@@ -204,3 +209,57 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
204 locale-base-pl-pl.iso-8859-2 \ 209 locale-base-pl-pl.iso-8859-2 \
205 locale-base-tr-tr \ 210 locale-base-tr-tr \
206 " 211 "
212
213PE = "1"
214
215SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
216
217SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
218 file://run-ptest \
219 file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
220 file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
221 file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
222 file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
223 file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
224 file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
225 file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
226 file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
227 file://skip-timeout.patch \
228 file://0001-girepository-introspection-correctly-install-.gir-fi.patch \
229 "
230SRC_URI:append:class-native = " file://relocate-modules.patch \
231 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
232 "
233
234SRC_URI[sha256sum] = "8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d"
235
236# Find any meson cross files in FILESPATH that are relevant for the current
237# build (using siteinfo) and add them to EXTRA_OEMESON.
238inherit siteinfo
239def find_meson_cross_files(d):
240 if bb.data.inherits_class('native', d):
241 return ""
242
243 thisdir = os.path.normpath(d.getVar("THISDIR"))
244 import collections
245 sitedata = siteinfo_data(d)
246 # filename -> found
247 files = collections.OrderedDict()
248 for path in d.getVar("FILESPATH").split(":"):
249 for element in sitedata:
250 filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
251 sanitized_path = filename.replace(thisdir, "${THISDIR}")
252 if sanitized_path == filename:
253 if os.path.exists(filename):
254 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))
255 continue
256 files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
257
258 items = ["--cross-file=" + k for k,v in files.items() if v]
259 d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
260 items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
261 d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
262
263python () {
264 find_meson_cross_files(d)
265}
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 1ef987be0a..0c5e3b4c3d 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -69,9 +69,9 @@ inherit multilib_header
69 69
70do_install() { 70do_install() {
71 oe_runmake install_root=${D} install 71 oe_runmake install_root=${D} install
72 install -Dm 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf 72 install -Dm 0644 ${UNPACKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf
73 install -d ${D}${localedir} 73 install -d ${D}${localedir}
74 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED" 74 make -f ${UNPACKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
75 # get rid of some broken files... 75 # get rid of some broken files...
76 for i in ${GLIBC_BROKEN_LOCALES}; do 76 for i in ${GLIBC_BROKEN_LOCALES}; do
77 sed -i "/$i/d" ${WORKDIR}/SUPPORTED 77 sed -i "/$i/d" ${WORKDIR}/SUPPORTED
@@ -101,7 +101,7 @@ do_install() {
101 install -d ${D}${localstatedir}/db/nscd 101 install -d ${D}${localstatedir}/db/nscd
102 install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd 102 install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd
103 install -m 0755 ${S}/nscd/nscd.conf ${D}${sysconfdir}/nscd.conf 103 install -m 0755 ${S}/nscd/nscd.conf ${D}${sysconfdir}/nscd.conf
104 install -m 0755 ${WORKDIR}/makedbs.sh ${D}${localstatedir}/db 104 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 105 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 106 sed -i "s|\(enable-cache\t\+netgroup\t\+\)yes|\1no|" ${D}${sysconfdir}/nscd.conf
107 107
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index 618a574566..4fc6986ffc 100644
--- a/meta/recipes-core/glibc/glibc-version.inc
+++ b/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
1SRCBRANCH ?= "release/2.39/master" 1SRCBRANCH ?= "release/2.39/master"
2PV = "2.39+git" 2PV = "2.39+git"
3SRCREV_glibc ?= "1b9c1a0047fb26a65a9b2a7b8cd977243f7d353c" 3SRCREV_glibc ?= "31da30f23cddd36db29d5b6a1c7619361b271fb4"
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"
diff --git a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb b/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
index be49ca4cb7..b760230aec 100644
--- a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
+++ b/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
@@ -76,7 +76,7 @@ do_install_ptest_base () {
76 done 76 done
77 77
78 install -d ${D}${PTEST_PATH} 78 install -d ${D}${PTEST_PATH}
79 cp ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/ 79 cp ${UNPACKDIR}/run-ptest ${D}${PTEST_PATH}/
80 80
81} 81}
82 82
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-qemu-stale-process.patch
index c0a467fcec..c0a467fcec 100644
--- a/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch
+++ b/meta/recipes-core/glibc/glibc/0023-qemu-stale-process.patch
diff --git a/meta/recipes-core/glibc/glibc_2.39.bb b/meta/recipes-core/glibc/glibc_2.39.bb
index 9122472689..988e43c014 100644
--- a/meta/recipes-core/glibc/glibc_2.39.bb
+++ b/meta/recipes-core/glibc/glibc_2.39.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-2024-2961"
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,8 +52,7 @@ 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-qemu-stale-process.patch \
52 file://0024-qemu-stale-process.patch \
53" 56"
54S = "${WORKDIR}/git" 57S = "${WORKDIR}/git"
55B = "${WORKDIR}/build-${TARGET_SYS}" 58B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
index 16425ea9e4..c7004ab41d 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
@@ -35,7 +35,7 @@ do_install () {
35 35
36 # If volatiles are used, then we'll also need /run/network there too. 36 # If volatiles are used, then we'll also need /run/network there too.
37 install -d ${D}/etc/default/volatiles 37 install -d ${D}/etc/default/volatiles
38 install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles 38 install -m 0644 ${UNPACKDIR}/99_network ${D}/etc/default/volatiles
39 39
40 install -m 0755 ifup ${D}${base_sbindir}/ 40 install -m 0755 ifup ${D}${base_sbindir}/
41 ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown 41 ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown
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..49c7fd71b1 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
@@ -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..01d2771e3f 100644
--- a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -7,7 +7,7 @@ SRC_URI = "file://init-boot.sh"
7S = "${WORKDIR}" 7S = "${WORKDIR}"
8 8
9do_install() { 9do_install() {
10 install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init 10 install -m 0755 ${S}/init-boot.sh ${D}/init
11 11
12 # Create device nodes expected by some kernels in initramfs 12 # Create device nodes expected by some kernels in initramfs
13 # before even executing /init. 13 # before even executing /init.
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 39ea51ccbd..4dbb56a42d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -26,31 +26,31 @@ do_install() {
26 install -d ${D}/init.d 26 install -d ${D}/init.d
27 27
28 # base 28 # base
29 install -m 0755 ${WORKDIR}/init ${D}/init 29 install -m 0755 ${S}/init ${D}/init
30 install -m 0755 ${WORKDIR}/nfsrootfs ${D}/init.d/85-nfsrootfs 30 install -m 0755 ${S}/nfsrootfs ${D}/init.d/85-nfsrootfs
31 install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs 31 install -m 0755 ${S}/rootfs ${D}/init.d/90-rootfs
32 install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish 32 install -m 0755 ${S}/finish ${D}/init.d/99-finish
33 33
34 # exec 34 # exec
35 install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec 35 install -m 0755 ${S}/exec ${D}/init.d/89-exec
36 36
37 # mdev 37 # mdev
38 install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev 38 install -m 0755 ${S}/mdev ${D}/init.d/01-mdev
39 39
40 # udev 40 # udev
41 install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev 41 install -m 0755 ${S}/udev ${D}/init.d/01-udev
42 42
43 # e2fs 43 # e2fs
44 install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/10-e2fs 44 install -m 0755 ${S}/e2fs ${D}/init.d/10-e2fs
45 45
46 # debug 46 # debug
47 install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug 47 install -m 0755 ${S}/debug ${D}/init.d/00-debug
48 48
49 # lvm 49 # lvm
50 install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm 50 install -m 0755 ${S}/lvm ${D}/init.d/09-lvm
51 51
52 # overlayroot needs to run after rootfs module but before finish 52 # overlayroot needs to run after rootfs module but before finish
53 install -m 0755 ${WORKDIR}/overlayroot ${D}/init.d/91-overlayroot 53 install -m 0755 ${S}/overlayroot ${D}/init.d/91-overlayroot
54 54
55 # Create device nodes expected by some kernels in initramfs 55 # Create device nodes expected by some kernels in initramfs
56 # before even executing /init. 56 # 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..a06e7902ee 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
@@ -9,7 +9,7 @@ SRC_URI = "file://init-live.sh"
9S = "${WORKDIR}" 9S = "${WORKDIR}"
10 10
11do_install() { 11do_install() {
12 install -m 0755 ${WORKDIR}/init-live.sh ${D}/init 12 install -m 0755 ${S}/init-live.sh ${D}/init
13 install -d ${D}/dev 13 install -d ${D}/dev
14 mknod -m 622 ${D}/dev/console c 5 1 14 mknod -m 622 ${D}/dev/console c 5 1
15} 15}
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..e1bf15d293 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -9,7 +9,7 @@ SRC_URI = "file://init-live.sh"
9S = "${WORKDIR}" 9S = "${WORKDIR}"
10 10
11do_install() { 11do_install() {
12 install -m 0755 ${WORKDIR}/init-live.sh ${D}/init 12 install -m 0755 ${S}/init-live.sh ${D}/init
13 install -d ${D}/dev 13 install -d ${D}/dev
14 mknod -m 622 ${D}/dev/console c 5 1 14 mknod -m 622 ${D}/dev/console c 5 1
15} 15}
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..1225ce4df9 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
@@ -8,7 +8,7 @@ RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools"
8S = "${WORKDIR}" 8S = "${WORKDIR}"
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..ae7d5beb2f 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
@@ -10,7 +10,7 @@ RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
10S = "${WORKDIR}" 10S = "${WORKDIR}"
11 11
12do_install() { 12do_install() {
13 install -m 0755 ${WORKDIR}/init-install-efi.sh ${D}/install-efi.sh 13 install -m 0755 ${S}/init-install-efi.sh ${D}/install-efi.sh
14} 14}
15 15
16# While this package maybe an allarch due to it being a 16# 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..018911f5d1 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
@@ -8,7 +8,7 @@ RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs"
8S = "${WORKDIR}" 8S = "${WORKDIR}"
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..12b2820318 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -10,7 +10,7 @@ RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs util-linux-blkid ${VIRTUAL-RUNTIM
10RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 10RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
11 11
12do_install() { 12do_install() {
13 install -m 0755 ${WORKDIR}/init-install.sh ${D}/install.sh 13 install -m 0755 ${S}/init-install.sh ${D}/install.sh
14} 14}
15 15
16# While this package maybe an allarch due to it being a 16# 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..adea2330ae 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
@@ -11,7 +11,7 @@ S = "${WORKDIR}"
11 11
12do_install() { 12do_install() {
13 install -d ${D}/init.d 13 install -d ${D}/init.d
14 install -m 0755 ${WORKDIR}/init-install-efi.sh ${D}/init.d/install-efi.sh 14 install -m 0755 ${S}/init-install-efi.sh ${D}/init.d/install-efi.sh
15} 15}
16 16
17FILES:${PN} = "/init.d/install-efi.sh" 17FILES:${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..e4ae466d7c 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
@@ -16,7 +16,7 @@ S = "${WORKDIR}"
16 16
17do_install() { 17do_install() {
18 install -d ${D}/init.d 18 install -d ${D}/init.d
19 install -m 0755 ${WORKDIR}/init-install.sh ${D}/init.d/install.sh 19 install -m 0755 ${S}/init-install.sh ${D}/init.d/install.sh
20} 20}
21 21
22FILES:${PN} = "/init.d/install.sh" 22FILES:${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..4d2c11f452 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
@@ -13,7 +13,7 @@ S = "${WORKDIR}"
13 13
14do_install() { 14do_install() {
15 install -d ${D}/init.d 15 install -d ${D}/init.d
16 install -m 0755 ${WORKDIR}/setup-live ${D}/init.d/80-setup-live 16 install -m 0755 ${S}/setup-live ${D}/init.d/80-setup-live
17} 17}
18 18
19FILES:${PN} = "/init.d/80-setup-live" 19FILES:${PN} = "/init.d/80-setup-live"
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index e61ac554f3..68eeb5e117 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -61,9 +61,9 @@ HALTARGS ?= "-d -f"
61VARLIBMOUNTARGS ?= "" 61VARLIBMOUNTARGS ?= ""
62 62
63do_configure() { 63do_configure() {
64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/halt 64 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${S}/halt
65 sed -i -e "s:SED_HALTARGS:${HALTARGS}:g" ${WORKDIR}/reboot 65 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 66 sed -i -e "s:SED_VARLIBMOUNTARGS:${VARLIBMOUNTARGS}:g" ${S}/read-only-rootfs-hook.sh
67} 67}
68 68
69do_install () { 69do_install () {
@@ -84,27 +84,27 @@ do_install () {
84 # Holds state information pertaining to urandom 84 # Holds state information pertaining to urandom
85 install -d ${D}${localstatedir}/lib/urandom 85 install -d ${D}${localstatedir}/lib/urandom
86 86
87 install -m 0644 ${WORKDIR}/functions ${D}${sysconfdir}/init.d 87 install -m 0644 ${S}/functions ${D}${sysconfdir}/init.d
88 install -m 0755 ${WORKDIR}/bootmisc.sh ${D}${sysconfdir}/init.d 88 install -m 0755 ${S}/bootmisc.sh ${D}${sysconfdir}/init.d
89 install -m 0755 ${WORKDIR}/checkroot.sh ${D}${sysconfdir}/init.d 89 install -m 0755 ${S}/checkroot.sh ${D}${sysconfdir}/init.d
90 install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d 90 install -m 0755 ${S}/halt ${D}${sysconfdir}/init.d
91 install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d 91 install -m 0755 ${S}/hostname.sh ${D}${sysconfdir}/init.d
92 install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d 92 install -m 0755 ${S}/mountall.sh ${D}${sysconfdir}/init.d
93 install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d 93 install -m 0755 ${S}/mountnfs.sh ${D}${sysconfdir}/init.d
94 install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d 94 install -m 0755 ${S}/reboot ${D}${sysconfdir}/init.d
95 install -m 0755 ${WORKDIR}/rmnologin.sh ${D}${sysconfdir}/init.d 95 install -m 0755 ${S}/rmnologin.sh ${D}${sysconfdir}/init.d
96 install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d 96 install -m 0755 ${S}/sendsigs ${D}${sysconfdir}/init.d
97 install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d 97 install -m 0755 ${S}/single ${D}${sysconfdir}/init.d
98 install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/init.d 98 install -m 0755 ${S}/umountnfs.sh ${D}${sysconfdir}/init.d
99 install -m 0755 ${WORKDIR}/urandom ${D}${sysconfdir}/init.d 99 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' 100 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 101 install -m 0755 ${S}/devpts.sh ${D}${sysconfdir}/init.d
102 install -m 0755 ${WORKDIR}/devpts ${D}${sysconfdir}/default 102 install -m 0755 ${S}/devpts ${D}${sysconfdir}/default
103 install -m 0755 ${WORKDIR}/sysfs.sh ${D}${sysconfdir}/init.d 103 install -m 0755 ${S}/sysfs.sh ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/populate-volatile.sh ${D}${sysconfdir}/init.d 104 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 105 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 106 install -m 0755 ${S}/save-rtc.sh ${D}${sysconfdir}/init.d
107 install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_core 107 install -m 0644 ${S}/volatiles ${D}${sysconfdir}/default/volatiles/00_core
108 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then 108 if [ ${@ oe.types.boolean('${VOLATILE_LOG_DIR}') } = True ]; then
109 sed -i -e '\@^d root root 0755 /var/volatile/log none$@ a\l root root 0755 /var/log /var/volatile/log' \ 109 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 110 ${D}${sysconfdir}/default/volatiles/00_core
@@ -112,22 +112,22 @@ do_install () {
112 if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then 112 if [ "${VOLATILE_TMP_DIR}" != "yes" ]; then
113 sed -i -e "/\<tmp\>/d" ${D}${sysconfdir}/default/volatiles/00_core 113 sed -i -e "/\<tmp\>/d" ${D}${sysconfdir}/default/volatiles/00_core
114 fi 114 fi
115 install -m 0755 ${WORKDIR}/dmesg.sh ${D}${sysconfdir}/init.d 115 install -m 0755 ${S}/dmesg.sh ${D}${sysconfdir}/init.d
116 install -m 0644 ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/ 116 install -m 0644 ${S}/logrotate-dmesg.conf ${D}${sysconfdir}/
117 117
118 if [ "${TARGET_ARCH}" = "arm" ]; then 118 if [ "${TARGET_ARCH}" = "arm" ]; then
119 install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d 119 install -m 0755 ${S}/alignment.sh ${D}${sysconfdir}/init.d
120 fi 120 fi
121 121
122 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then 122 if ${@bb.utils.contains('DISTRO_FEATURES','selinux','true','false',d)}; then
123 install -d ${D}/${base_sbindir} 123 install -d ${D}/${base_sbindir}
124 install -m 0755 ${WORKDIR}/sushell ${D}/${base_sbindir} 124 install -m 0755 ${S}/sushell ${D}/${base_sbindir}
125 fi 125 fi
126# 126#
127# Install device dependent scripts 127# Install device dependent scripts
128# 128#
129 install -m 0755 ${WORKDIR}/banner.sh ${D}${sysconfdir}/init.d/banner.sh 129 install -m 0755 ${S}/banner.sh ${D}${sysconfdir}/init.d/banner.sh
130 install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs 130 install -m 0755 ${S}/umountfs ${D}${sysconfdir}/init.d/umountfs
131# 131#
132# Create runlevel links 132# Create runlevel links
133# 133#
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 40937098e6..c7b96bc6a7 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -80,7 +80,7 @@ python do_compile () {
80 import subprocess 80 import subprocess
81 81
82 # Build a separate executable for each splash image 82 # Build a separate executable for each splash image
83 workdir = d.getVar('WORKDIR') 83 workdir = d.getVar('UNPACKDIR')
84 convertscript = "%s/make-image-header.sh" % d.getVar('S') 84 convertscript = "%s/make-image-header.sh" % d.getVar('S')
85 destfile = "%s/psplash-poky-img.h" % d.getVar('B') 85 destfile = "%s/psplash-poky-img.h" % d.getVar('B')
86 localfiles = d.getVar('SPLASH_LOCALPATHS').split() 86 localfiles = d.getVar('SPLASH_LOCALPATHS').split()
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/seatd/seatd_0.8.0.bb b/meta/recipes-core/seatd/seatd_0.8.0.bb
index 14c5b1b7ae..df5fe35f98 100644
--- a/meta/recipes-core/seatd/seatd_0.8.0.bb
+++ b/meta/recipes-core/seatd/seatd_0.8.0.bb
@@ -26,7 +26,7 @@ PACKAGECONFIG[systemd] = ",,systemd"
26 26
27do_install:append() { 27do_install:append() {
28 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then 28 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
29 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/seatd 29 install -Dm755 ${UNPACKDIR}/init ${D}/${sysconfdir}/init.d/seatd
30 fi 30 fi
31} 31}
32 32
diff --git a/meta/recipes-core/systemd/systemd-conf_1.0.bb b/meta/recipes-core/systemd/systemd-conf_1.0.bb
index 2355936631..752ad7c2b7 100644
--- a/meta/recipes-core/systemd/systemd-conf_1.0.bb
+++ b/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -22,18 +22,18 @@ SRC_URI = "\
22" 22"
23 23
24do_install() { 24do_install() {
25 install -D -m0644 ${WORKDIR}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf 25 install -D -m0644 ${UNPACKDIR}/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 26 install -D -m0644 ${UNPACKDIR}/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 27 install -D -m0644 ${UNPACKDIR}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf
28 28
29 if ${@bb.utils.contains('PACKAGECONFIG', 'dhcp-ethernet', 'true', 'false', d)}; then 29 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 30 install -D -m0644 ${UNPACKDIR}/wired.network ${D}${systemd_unitdir}/network/80-wired.network
31 fi 31 fi
32} 32}
33 33
34# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52 34# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
35do_install:append:qemuall() { 35do_install:append:qemuall() {
36 install -D -m0644 ${WORKDIR}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf 36 install -D -m0644 ${UNPACKDIR}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf
37} 37}
38 38
39PACKAGE_ARCH = "${MACHINE_ARCH}" 39PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-core/systemd/systemd-serialgetty.bb b/meta/recipes-core/systemd/systemd-serialgetty.bb
index 44a93ac684..987a8bf89d 100644
--- a/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -21,7 +21,7 @@ do_install() {
21 default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'` 21 default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'`
22 install -d ${D}${systemd_system_unitdir}/ 22 install -d ${D}${systemd_system_unitdir}/
23 install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/ 23 install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
24 install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_system_unitdir}/ 24 install -m 0644 ${S}/serial-getty@.service ${D}${systemd_system_unitdir}/
25 sed -i -e "s/\@BAUDRATE\@/$default_baudrate/g" ${D}${systemd_system_unitdir}/serial-getty@.service 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 26 sed -i -e "s/\@TERM\@/${SERIAL_TERM}/g" ${D}${systemd_system_unitdir}/serial-getty@.service
27 27
@@ -35,7 +35,7 @@ do_install() {
35 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service 35 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service
36 else 36 else
37 # install custom service file for the non-default baudrate 37 # 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 38 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 39 sed -i -e "s/\@BAUDRATE\@/$baudrate/g" ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service
40 # enable the service 40 # enable the service
41 ln -sf ${systemd_system_unitdir}/serial-getty$baudrate@.service \ 41 ln -sf ${systemd_system_unitdir}/serial-getty$baudrate@.service \
diff --git a/meta/recipes-core/systemd/systemd-systemctl-native.bb b/meta/recipes-core/systemd/systemd-systemctl-native.bb
index 54283bcba1..0036e4dd8b 100644
--- a/meta/recipes-core/systemd/systemd-systemctl-native.bb
+++ b/meta/recipes-core/systemd/systemd-systemctl-native.bb
@@ -12,5 +12,5 @@ S = "${WORKDIR}"
12 12
13do_install() { 13do_install() {
14 install -d ${D}${bindir} 14 install -d ${D}${bindir}
15 install -m 0755 ${WORKDIR}/systemctl ${D}${bindir} 15 install -m 0755 ${S}/systemctl ${D}${bindir}
16} 16}
diff --git a/meta/recipes-core/systemd/systemd_255.4.bb b/meta/recipes-core/systemd/systemd_255.4.bb
index f58a1bc2b6..62842d43c8 100644
--- a/meta/recipes-core/systemd/systemd_255.4.bb
+++ b/meta/recipes-core/systemd/systemd_255.4.bb
@@ -293,15 +293,15 @@ do_install() {
293 293
294 install -d ${D}${sysconfdir}/udev/rules.d/ 294 install -d ${D}${sysconfdir}/udev/rules.d/
295 install -d ${D}${nonarch_libdir}/tmpfiles.d 295 install -d ${D}${nonarch_libdir}/tmpfiles.d
296 for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do 296 for rule in $(find ${UNPACKDIR} -maxdepth 1 -type f -name "*.rules"); do
297 install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/ 297 install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/
298 done 298 done
299 299
300 install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${nonarch_libdir}/tmpfiles.d/ 300 install -m 0644 ${UNPACKDIR}/00-create-volatile.conf ${D}${nonarch_libdir}/tmpfiles.d/
301 301
302 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then 302 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
303 install -d ${D}${sysconfdir}/init.d 303 install -d ${D}${sysconfdir}/init.d
304 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd 304 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
305 sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd 305 sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
306 install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install 306 install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
307 fi 307 fi
@@ -372,9 +372,9 @@ do_install() {
372 # request hostname changes via DBUS without elevating its privileges 372 # request hostname changes via DBUS without elevating its privileges
373 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then 373 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'true', 'false', d)}; then
374 install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/ 374 install -d ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
375 install -m 0644 ${WORKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/ 375 install -m 0644 ${UNPACKDIR}/00-hostnamed-network-user.conf ${D}${systemd_system_unitdir}/systemd-hostnamed.service.d/
376 install -d ${D}${datadir}/dbus-1/system.d/ 376 install -d ${D}${datadir}/dbus-1/system.d/
377 install -m 0644 ${WORKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/ 377 install -m 0644 ${UNPACKDIR}/org.freedesktop.hostname1_no_polkit.conf ${D}${datadir}/dbus-1/system.d/
378 fi 378 fi
379 379
380 # create link for existing udev rules 380 # create link for existing udev rules
@@ -382,10 +382,10 @@ do_install() {
382 382
383 # install default policy for presets 383 # install default policy for presets
384 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto 384 # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
385 install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset 385 install -Dm 0644 ${UNPACKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
386 386
387 # add a profile fragment to disable systemd pager with busybox less 387 # add a profile fragment to disable systemd pager with busybox less
388 install -Dm 0644 ${WORKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh 388 install -Dm 0644 ${UNPACKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh
389 389
390 if [ -n "${WATCHDOG_TIMEOUT}" ]; then 390 if [ -n "${WATCHDOG_TIMEOUT}" ]; then
391 sed -i -e 's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \ 391 sed -i -e 's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 6bbe517df1..17a01e8640 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -16,9 +16,9 @@ do_compile() {
16 16
17do_install() { 17do_install() {
18 install -d ${D}${sysconfdir} 18 install -d ${D}${sysconfdir}
19 install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab 19 install -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab
20 install -d ${D}${base_bindir} 20 install -d ${D}${base_bindir}
21 install -m 0755 ${WORKDIR}/start_getty ${D}${base_bindir}/start_getty 21 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 22 sed -e 's,/usr/bin,${bindir},g' -i ${D}${base_bindir}/start_getty
23 23
24 CONSOLES="${SERIAL_CONSOLES}" 24 CONSOLES="${SERIAL_CONSOLES}"
diff --git a/meta/recipes-core/sysvinit/sysvinit_3.04.bb b/meta/recipes-core/sysvinit/sysvinit_3.04.bb
index 6a612468f3..fb9d00891c 100644
--- a/meta/recipes-core/sysvinit/sysvinit_3.04.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_3.04.bb
@@ -97,18 +97,18 @@ do_install () {
97 97
98 sed -e \ 98 sed -e \
99 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \ 99 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \
100 ${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS 100 ${UNPACKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS
101 chmod 0644 ${D}${sysconfdir}/default/rcS 101 chmod 0644 ${D}${sysconfdir}/default/rcS
102 install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d 102 install -m 0755 ${UNPACKDIR}/rc ${D}${sysconfdir}/init.d
103 install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d 103 install -m 0755 ${UNPACKDIR}/rcS ${D}${sysconfdir}/init.d
104 install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd 104 install -m 0755 ${UNPACKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
105 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd 105 ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
106 106
107 update-rc.d -r ${D} bootlogd start 07 S . 107 update-rc.d -r ${D} bootlogd start 07 S .
108 update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 . 108 update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 .
109 109
110 install -d ${D}${sysconfdir}/default/volatiles 110 install -d ${D}${sysconfdir}/default/volatiles
111 install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles 111 install -m 0644 ${UNPACKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles
112 112
113 chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown 113 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 114 chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.14.bb
index 18696679c8..0e5610f77c 100644
--- a/meta/recipes-core/udev/eudev_3.2.14.bb
+++ b/meta/recipes-core/udev/eudev_3.2.14.bb
@@ -42,12 +42,12 @@ PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
42 42
43do_install:append() { 43do_install:append() {
44 install -d ${D}${sysconfdir}/init.d 44 install -d ${D}${sysconfdir}/init.d
45 install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev 45 install -m 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/udev
46 sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev 46 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 47 sed -i s%@KMOD@%${base_bindir}/kmod% ${D}${sysconfdir}/init.d/udev
48 48
49 install -d ${D}${sysconfdir}/udev/rules.d 49 install -d ${D}${sysconfdir}/udev/rules.d
50 install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules 50 install -m 0644 ${UNPACKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
51 51
52 # Use classic network interface naming scheme if no 'pni-names' distro feature 52 # 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 53 if ${@bb.utils.contains('DISTRO_FEATURES', 'pni-names', 'false', 'true', d)}; then
diff --git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index 30f1fe76d0..a3e5d12b81 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.1.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -20,21 +20,21 @@ MOUNT_BASE = "/run/media"
20do_install() { 20do_install() {
21 install -d ${D}${sysconfdir}/udev/rules.d 21 install -d ${D}${sysconfdir}/udev/rules.d
22 22
23 install -m 0644 ${WORKDIR}/automount.rules ${D}${sysconfdir}/udev/rules.d/automount.rules 23 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 24 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 25 install -m 0644 ${S}/localextra.rules ${D}${sysconfdir}/udev/rules.d/localextra.rules
26 26
27 install -d ${D}${sysconfdir}/udev/mount.ignorelist.d 27 install -d ${D}${sysconfdir}/udev/mount.ignorelist.d
28 install -m 0644 ${WORKDIR}/mount.ignorelist ${D}${sysconfdir}/udev/ 28 install -m 0644 ${S}/mount.ignorelist ${D}${sysconfdir}/udev/
29 29
30 install -d ${D}${sysconfdir}/udev/scripts/ 30 install -d ${D}${sysconfdir}/udev/scripts/
31 31
32 install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh 32 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 33 sed -i 's|@systemd_unitdir@|${systemd_unitdir}|g' ${D}${sysconfdir}/udev/scripts/mount.sh
34 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 34 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${sysconfdir}/udev/scripts/mount.sh
35 sed -i 's|@MOUNT_BASE@|${MOUNT_BASE}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 35 sed -i 's|@MOUNT_BASE@|${MOUNT_BASE}|g' ${D}${sysconfdir}/udev/scripts/mount.sh
36 36
37 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts 37 install -m 0755 ${S}/network.sh ${D}${sysconfdir}/udev/scripts
38} 38}
39 39
40pkg_postinst:${PN} () { 40pkg_postinst:${PN} () {
diff --git a/meta/recipes-core/util-linux/util-linux_2.39.3.bb b/meta/recipes-core/util-linux/util-linux_2.39.3.bb
index a3f9badbd9..2cd7750afc 100644
--- a/meta/recipes-core/util-linux/util-linux_2.39.3.bb
+++ b/meta/recipes-core/util-linux/util-linux_2.39.3.bb
@@ -148,7 +148,7 @@ SYSTEMD_SERVICE:${PN}-fstrim = "fstrim.timer fstrim.service"
148SYSTEMD_AUTO_ENABLE:${PN}-fstrim = "disable" 148SYSTEMD_AUTO_ENABLE:${PN}-fstrim = "disable"
149 149
150do_compile:append () { 150do_compile:append () {
151 cp ${WORKDIR}/fcntl-lock.c ${S}/fcntl-lock.c 151 cp ${UNPACKDIR}/fcntl-lock.c ${S}/fcntl-lock.c
152 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/fcntl-lock.c -o ${B}/fcntl-lock 152 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/fcntl-lock.c -o ${B}/fcntl-lock
153} 153}
154 154
@@ -194,8 +194,8 @@ do_install () {
194do_install:append:class-target () { 194do_install:append:class-target () {
195 if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then 195 if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
196 install -d ${D}${sysconfdir}/pam.d 196 install -d ${D}${sysconfdir}/pam.d
197 install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser 197 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 198 install -m 0644 ${UNPACKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l
199 # Required for "su -" aka "su --login" because 199 # Required for "su -" aka "su --login" because
200 # otherwise it uses "other", which has "auth pam_deny.so" 200 # otherwise it uses "other", which has "auth pam_deny.so"
201 # and thus prevents the operation. 201 # and thus prevents the operation.
@@ -322,7 +322,7 @@ do_install_ptest() {
322 cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/ 322 cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/
323 cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected 323 cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected
324 cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ 324 cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/
325 cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} 325 cp ${B}/config.h ${D}${PTEST_PATH}
326 326
327 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest 327 sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest
328 328
diff --git a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index 4d8ce4c741..8a211366bf 100644
--- a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -132,7 +132,7 @@ do_install () {
132 132
133 oe_runmake install NO_PYTHON_COMPILE=1 133 oe_runmake install NO_PYTHON_COMPILE=1
134 install -d ${D}${sysconfdir}/init.d 134 install -d ${D}${sysconfdir}/init.d
135 install -m 0755 ${WORKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d 135 install -m 0755 ${UNPACKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d
136 136
137 echo 'EXIT_PROC="$EXIT_PROC matchbox-window-manager"' >> ${D}${sysconfdir}/bootchartd.conf 137 echo 'EXIT_PROC="$EXIT_PROC matchbox-window-manager"' >> ${D}${sysconfdir}/bootchartd.conf
138 138
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.28.3.bb b/meta/recipes-devtools/cmake/cmake-native_3.28.3.bb
index 546d117156..7f89441fb4 100644
--- a/meta/recipes-devtools/cmake/cmake-native_3.28.3.bb
+++ b/meta/recipes-devtools/cmake/cmake-native_3.28.3.bb
@@ -54,9 +54,9 @@ do_install() {
54 # The following codes are here because eSDK needs to provide compatibilty 54 # The following codes are here because eSDK needs to provide compatibilty
55 # for SDK. That is, eSDK could also be used like traditional SDK. 55 # for SDK. That is, eSDK could also be used like traditional SDK.
56 mkdir -p ${D}${datadir}/cmake 56 mkdir -p ${D}${datadir}/cmake
57 install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ 57 install -m 644 ${UNPACKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
58 mkdir -p ${D}${base_prefix}/environment-setup.d 58 mkdir -p ${D}${base_prefix}/environment-setup.d
59 install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh 59 install -m 644 ${UNPACKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh
60 60
61 # Help docs create tons of files in the native sysroot and aren't needed there 61 # Help docs create tons of files in the native sysroot and aren't needed there
62 rm -rf ${D}${datadir}/cmake-*/Help 62 rm -rf ${D}${datadir}/cmake-*/Help
diff --git a/meta/recipes-devtools/cmake/cmake_3.28.3.bb b/meta/recipes-devtools/cmake/cmake_3.28.3.bb
index 6a9a3266df..9146fa8c0f 100644
--- a/meta/recipes-devtools/cmake/cmake_3.28.3.bb
+++ b/meta/recipes-devtools/cmake/cmake_3.28.3.bb
@@ -48,15 +48,15 @@ EXTRA_OECMAKE=" \
48 48
49do_install:append:class-nativesdk() { 49do_install:append:class-nativesdk() {
50 mkdir -p ${D}${datadir}/cmake 50 mkdir -p ${D}${datadir}/cmake
51 install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ 51 install -m 644 ${UNPACKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
52 52
53 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d 53 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
54 install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh 54 install -m 644 ${UNPACKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
55 55
56 # install cmake-setup.py to create arch-specific toolchain cmake file from template 56 # install cmake-setup.py to create arch-specific toolchain cmake file from template
57 install -m 0644 ${WORKDIR}/SDKToolchainConfig.cmake.template ${D}${datadir}/cmake/ 57 install -m 0644 ${UNPACKDIR}/SDKToolchainConfig.cmake.template ${D}${datadir}/cmake/
58 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d 58 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
59 install -m 0755 ${WORKDIR}/cmake-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ 59 install -m 0755 ${UNPACKDIR}/cmake-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
60} 60}
61 61
62FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}" 62FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}"
diff --git a/meta/recipes-devtools/distcc/distcc_3.4.bb b/meta/recipes-devtools/distcc/distcc_3.4.bb
index 45fc7cde53..ab138b3ab6 100644
--- a/meta/recipes-devtools/distcc/distcc_3.4.bb
+++ b/meta/recipes-devtools/distcc/distcc_3.4.bb
@@ -50,10 +50,10 @@ do_install() {
50 oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install 50 oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install
51 install -d ${D}${sysconfdir}/init.d/ 51 install -d ${D}${sysconfdir}/init.d/
52 install -d ${D}${sysconfdir}/default 52 install -d ${D}${sysconfdir}/default
53 install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/ 53 install -m 0755 ${UNPACKDIR}/distcc ${D}${sysconfdir}/init.d/
54 install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc 54 install -m 0755 ${UNPACKDIR}/default ${D}${sysconfdir}/default/distcc
55 install -d ${D}${systemd_system_unitdir}/ 55 install -d ${D}${systemd_system_unitdir}/
56 install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_system_unitdir} 56 install -m 0644 ${UNPACKDIR}/distcc.service ${D}${systemd_system_unitdir}
57 sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/distcc.service 57 sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/distcc.service
58} 58}
59 59
diff --git a/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb b/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
index e4b4201b1f..bbd574e287 100644
--- a/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
+++ b/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "https://docbook.org"
8# upgrading this recipe, please verify whether this is still needed. 8# upgrading this recipe, please verify whether this is still needed.
9 9
10LICENSE = "OASIS" 10LICENSE = "OASIS"
11LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-OASIS;md5=c608985dd5f7f215e669e7639a0b1d2e" 11LIC_FILES_CHKSUM = "file://${S}/LICENSE-OASIS;md5=c608985dd5f7f215e669e7639a0b1d2e"
12 12
13# To support apps with xml schema backward compatibility, we must 13# To support apps with xml schema backward compatibility, we must
14# install a set of schemas. Install the latest based on PV and then 14# install a set of schemas. Install the latest based on PV and then
diff --git a/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index f9d864b987..95a7d5485b 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -24,7 +24,7 @@ do_compile[noexec] = "1"
24do_install () { 24do_install () {
25 install -d ${D}${datadir}/gnu-config \ 25 install -d ${D}${datadir}/gnu-config \
26 ${D}${bindir} 26 ${D}${bindir}
27 cat ${WORKDIR}/gnu-configize.in | \ 27 cat ${UNPACKDIR}/gnu-configize.in | \
28 sed -e 's,@gnu-configdir@,${datadir}/gnu-config,g' \ 28 sed -e 's,@gnu-configdir@,${datadir}/gnu-config,g' \
29 -e 's,@autom4te_perllibdir@,${datadir}/autoconf,g' > ${D}${bindir}/gnu-configize 29 -e 's,@autom4te_perllibdir@,${datadir}/autoconf,g' > ${D}${bindir}/gnu-configize
30 # In the native case we want the system perl as perl-native can't have built yet 30 # In the native case we want the system perl as perl-native can't have built yet
diff --git a/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
index 1826c7a40e..56a9321fb9 100644
--- a/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
+++ b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -30,7 +30,7 @@ S = "${WORKDIR}"
30 30
31do_install() { 31do_install() {
32 install -d ${D}/${bindir} 32 install -d ${D}/${bindir}
33 install -m 0755 ${WORKDIR}/icecc-create-env ${D}/${bindir} 33 install -m 0755 ${S}/icecc-create-env ${D}/${bindir}
34} 34}
35 35
36BBCLASSEXTEND = "native nativesdk" 36BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb b/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb
index 034a0047d7..d03d8adcb0 100644
--- a/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb
+++ b/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb
@@ -3,7 +3,7 @@
3SUMMARY = "Generates Icecream toolchain for SDK" 3SUMMARY = "Generates Icecream toolchain for SDK"
4DESCRIPTION = "${SUMMARY}" 4DESCRIPTION = "${SUMMARY}"
5LICENSE = "MIT" 5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://${WORKDIR}/icecc-env.sh;beginline=2;endline=20;md5=dd6b68c1efed8a9fb04e409b3b287d47" 6LIC_FILES_CHKSUM = "file://${UNPACKDIR}/icecc-env.sh;beginline=2;endline=20;md5=dd6b68c1efed8a9fb04e409b3b287d47"
7 7
8INHIBIT_DEFAULT_DEPS = "1" 8INHIBIT_DEFAULT_DEPS = "1"
9 9
@@ -23,12 +23,12 @@ do_install() {
23 install -d ${D}${SDKPATHNATIVE}${datadir}/icecream/bin 23 install -d ${D}${SDKPATHNATIVE}${datadir}/icecream/bin
24 24
25 install -d ${D}${SDKPATHNATIVE}/environment-setup.d/ 25 install -d ${D}${SDKPATHNATIVE}/environment-setup.d/
26 install -m 0644 ${WORKDIR}/icecc-env.sh ${D}${SDKPATHNATIVE}/environment-setup.d/ 26 install -m 0644 ${UNPACKDIR}/icecc-env.sh ${D}${SDKPATHNATIVE}/environment-setup.d/
27 sed -i ${D}${SDKPATHNATIVE}/environment-setup.d/icecc-env.sh \ 27 sed -i ${D}${SDKPATHNATIVE}/environment-setup.d/icecc-env.sh \
28 -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g' 28 -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g'
29 29
30 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ 30 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
31 install -m 0755 ${WORKDIR}/icecc-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ 31 install -m 0755 ${UNPACKDIR}/icecc-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
32 sed -i ${D}${SDKPATHNATIVE}/post-relocate-setup.d/icecc-setup.sh \ 32 sed -i ${D}${SDKPATHNATIVE}/post-relocate-setup.d/icecc-setup.sh \
33 -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g' 33 -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g'
34} 34}
diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb
index e7fa88b30e..296180ea45 100644
--- a/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/meta/recipes-devtools/llvm/llvm_git.bb
@@ -134,7 +134,7 @@ SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess"
134 134
135llvm_sysroot_preprocess() { 135llvm_sysroot_preprocess() {
136 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ 136 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
137 install -m 0755 ${WORKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ 137 install -m 0755 ${UNPACKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
138 ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} 138 ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
139} 139}
140 140
diff --git a/meta/recipes-devtools/lua/lua_5.4.6.bb b/meta/recipes-devtools/lua/lua_5.4.6.bb
index eabfc89575..65f19ae247 100644
--- a/meta/recipes-devtools/lua/lua_5.4.6.bb
+++ b/meta/recipes-devtools/lua/lua_5.4.6.bb
@@ -44,8 +44,8 @@ do_install () {
44 install 44 install
45 install -d ${D}${libdir}/pkgconfig 45 install -d ${D}${libdir}/pkgconfig
46 46
47 sed -e s/@VERSION@/${PV}/ -e s#@LIBDIR@#${libdir}# -e s#@INCLUDEDIR@#${includedir}# ${WORKDIR}/lua.pc.in > ${WORKDIR}/lua.pc 47 sed -e s/@VERSION@/${PV}/ -e s#@LIBDIR@#${libdir}# -e s#@INCLUDEDIR@#${includedir}# ${UNPACKDIR}/lua.pc.in > ${S}/lua.pc
48 install -m 0644 ${WORKDIR}/lua.pc ${D}${libdir}/pkgconfig/ 48 install -m 0644 ${S}/lua.pc ${D}${libdir}/pkgconfig/
49 rmdir ${D}${datadir}/lua/5.4 49 rmdir ${D}${datadir}/lua/5.4
50 rmdir ${D}${datadir}/lua 50 rmdir ${D}${datadir}/lua
51} 51}
diff --git a/meta/recipes-devtools/meson/meson_1.3.1.bb b/meta/recipes-devtools/meson/meson_1.3.1.bb
index 9cc0cc31ab..3d2eedca10 100644
--- a/meta/recipes-devtools/meson/meson_1.3.1.bb
+++ b/meta/recipes-devtools/meson/meson_1.3.1.bb
@@ -132,11 +132,11 @@ do_install:append:class-nativesdk() {
132 install_templates 132 install_templates
133 133
134 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d 134 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
135 install -m 0755 ${WORKDIR}/meson-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ 135 install -m 0755 ${UNPACKDIR}/meson-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
136 136
137 # We need to wrap the real meson with a thin env setup wrapper. 137 # We need to wrap the real meson with a thin env setup wrapper.
138 mv ${D}${bindir}/meson ${D}${bindir}/meson.real 138 mv ${D}${bindir}/meson ${D}${bindir}/meson.real
139 install -m 0755 ${WORKDIR}/meson-wrapper ${D}${bindir}/meson 139 install -m 0755 ${UNPACKDIR}/meson-wrapper ${D}${bindir}/meson
140} 140}
141 141
142FILES:${PN}:append:class-nativesdk = "${datadir}/meson ${SDKPATHNATIVE}" 142FILES:${PN}:append:class-nativesdk = "${datadir}/meson ${SDKPATHNATIVE}"
@@ -149,10 +149,10 @@ do_install:append:class-native() {
149 install_templates 149 install_templates
150 150
151 install -d ${D}${datadir}/post-relocate-setup.d 151 install -d ${D}${datadir}/post-relocate-setup.d
152 install -m 0755 ${WORKDIR}/meson-setup.py ${D}${datadir}/post-relocate-setup.d/ 152 install -m 0755 ${UNPACKDIR}/meson-setup.py ${D}${datadir}/post-relocate-setup.d/
153 153
154 # We need to wrap the real meson with a thin wrapper that substitues native/cross files 154 # We need to wrap the real meson with a thin wrapper that substitues native/cross files
155 # when running in a direct SDK environment. 155 # when running in a direct SDK environment.
156 mv ${D}${bindir}/meson ${D}${bindir}/meson.real 156 mv ${D}${bindir}/meson ${D}${bindir}/meson.real
157 install -m 0755 ${WORKDIR}/meson-wrapper ${D}${bindir}/meson 157 install -m 0755 ${UNPACKDIR}/meson-wrapper ${D}${bindir}/meson
158} 158}
diff --git a/meta/recipes-devtools/opkg/opkg_0.6.3.bb b/meta/recipes-devtools/opkg/opkg_0.6.3.bb
index 9592ffc5d6..ef7c4f3a72 100644
--- a/meta/recipes-devtools/opkg/opkg_0.6.3.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.6.3.bb
@@ -47,7 +47,7 @@ EXTRA_OECONF:append:class-native = " --localstatedir=/${@os.path.relpath('${loca
47 47
48do_install:append () { 48do_install:append () {
49 install -d ${D}${sysconfdir}/opkg 49 install -d ${D}${sysconfdir}/opkg
50 install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf 50 install -m 0644 ${UNPACKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
51 echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf 51 echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf
52 echo "option info_dir ${OPKGLIBDIR}/opkg/info" >>${D}${sysconfdir}/opkg/opkg.conf 52 echo "option info_dir ${OPKGLIBDIR}/opkg/info" >>${D}${sysconfdir}/opkg/opkg.conf
53 echo "option status_file ${OPKGLIBDIR}/opkg/status" >>${D}${sysconfdir}/opkg/opkg.conf 53 echo "option status_file ${OPKGLIBDIR}/opkg/status" >>${D}${sysconfdir}/opkg/opkg.conf
diff --git a/meta/recipes-devtools/pkgconf/pkgconf_2.2.0.bb b/meta/recipes-devtools/pkgconf/pkgconf_2.2.0.bb
index e98458ea55..5f4ef73d43 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_2.2.0.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_2.2.0.bb
@@ -29,18 +29,18 @@ EXTRA_OECONF += "--with-pkg-config-dir='${libdir}/pkgconfig:${datadir}/pkgconfig
29do_install:append () { 29do_install:append () {
30 # Install a wrapper which deals, as much as possible with pkgconf vs 30 # Install a wrapper which deals, as much as possible with pkgconf vs
31 # pkg-config compatibility issues. 31 # pkg-config compatibility issues.
32 install -m 0755 "${WORKDIR}/pkg-config-wrapper" "${D}${bindir}/pkg-config" 32 install -m 0755 "${UNPACKDIR}/pkg-config-wrapper" "${D}${bindir}/pkg-config"
33} 33}
34 34
35do_install:append:class-native () { 35do_install:append:class-native () {
36 # Install a pkg-config-native wrapper that will use the native sysroot instead 36 # Install a pkg-config-native wrapper that will use the native sysroot instead
37 # of the MACHINE sysroot, for using pkg-config when building native tools. 37 # of the MACHINE sysroot, for using pkg-config when building native tools.
38 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ 38 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \
39 < ${WORKDIR}/pkg-config-native.in > ${B}/pkg-config-native 39 < ${UNPACKDIR}/pkg-config-native.in > ${B}/pkg-config-native
40 install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native 40 install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native
41 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ 41 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \
42 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ 42 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \
43 < ${WORKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk 43 < ${UNPACKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk
44 install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk 44 install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk
45} 45}
46 46
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index 16e6c5b609..6f13d0177e 100644
--- a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -51,11 +51,11 @@ RPROVIDES:${PN} += "pkgconfig(pkg-config)"
51do_install:append:class-native () { 51do_install:append:class-native () {
52 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ 52 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \
53 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ 53 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \
54 < ${WORKDIR}/pkg-config-native.in > ${B}/pkg-config-native 54 < ${UNPACKDIR}/pkg-config-native.in > ${B}/pkg-config-native
55 install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native 55 install -m755 ${B}/pkg-config-native ${D}${bindir}/pkg-config-native
56 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \ 56 sed -e "s|@PATH_NATIVE@|${PKG_CONFIG_PATH}|" \
57 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \ 57 -e "s|@LIBDIR_NATIVE@|${PKG_CONFIG_LIBDIR}|" \
58 < ${WORKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk 58 < ${UNPACKDIR}/pkg-config-esdk.in > ${B}/pkg-config-esdk
59 install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk 59 install -m755 ${B}/pkg-config-esdk ${D}${bindir}/pkg-config-esdk
60} 60}
61 61
diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc
index 7e09b6d58c..36283ffa74 100644
--- a/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/meta/recipes-devtools/pseudo/pseudo.inc
@@ -133,8 +133,8 @@ do_install:append:class-native () {
133 chrpath ${D}${bindir}/pseudo -r `chrpath ${D}${bindir}/pseudo | cut -d = -f 2 | sed s/XORIGIN/\\$ORIGIN/` 133 chrpath ${D}${bindir}/pseudo -r `chrpath ${D}${bindir}/pseudo | cut -d = -f 2 | sed s/XORIGIN/\\$ORIGIN/`
134 install -d ${D}${sysconfdir} 134 install -d ${D}${sysconfdir}
135 # The fallback files should never be modified 135 # The fallback files should never be modified
136 install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd 136 install -m 444 ${UNPACKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
137 install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group 137 install -m 444 ${UNPACKDIR}/fallback-group ${D}${sysconfdir}/group
138 138
139 # Two native/nativesdk entries below are the same 139 # Two native/nativesdk entries below are the same
140 # If necessary install for the alternative machine arch. This is only 140 # If necessary install for the alternative machine arch. This is only
diff --git a/meta/recipes-devtools/python/python3-maturin-crates.inc b/meta/recipes-devtools/python/python3-maturin-crates.inc
index 3cb614d52a..ba207458ef 100644
--- a/meta/recipes-devtools/python/python3-maturin-crates.inc
+++ b/meta/recipes-devtools/python/python3-maturin-crates.inc
@@ -3,24 +3,22 @@
3# from Cargo.lock 3# from Cargo.lock
4SRC_URI += " \ 4SRC_URI += " \
5 crate://crates.io/adler/1.0.2 \ 5 crate://crates.io/adler/1.0.2 \
6 crate://crates.io/ahash/0.8.6 \ 6 crate://crates.io/ahash/0.8.7 \
7 crate://crates.io/aho-corasick/1.1.2 \ 7 crate://crates.io/aho-corasick/1.1.2 \
8 crate://crates.io/allocator-api2/0.2.16 \ 8 crate://crates.io/allocator-api2/0.2.16 \
9 crate://crates.io/anstream/0.3.2 \ 9 crate://crates.io/anstream/0.6.11 \
10 crate://crates.io/anstream/0.6.4 \ 10 crate://crates.io/anstyle/1.0.4 \
11 crate://crates.io/anstyle/1.0.2 \ 11 crate://crates.io/anstyle-parse/0.2.3 \
12 crate://crates.io/anstyle-parse/0.2.1 \ 12 crate://crates.io/anstyle-query/1.0.2 \
13 crate://crates.io/anstyle-query/1.0.0 \ 13 crate://crates.io/anstyle-wincon/3.0.2 \
14 crate://crates.io/anstyle-wincon/1.0.2 \ 14 crate://crates.io/anyhow/1.0.80 \
15 crate://crates.io/anstyle-wincon/3.0.1 \
16 crate://crates.io/anyhow/1.0.75 \
17 crate://crates.io/autocfg/1.1.0 \ 15 crate://crates.io/autocfg/1.1.0 \
18 crate://crates.io/base64/0.13.1 \ 16 crate://crates.io/base64/0.13.1 \
19 crate://crates.io/base64/0.21.5 \ 17 crate://crates.io/base64/0.21.7 \
20 crate://crates.io/bitflags/1.3.2 \ 18 crate://crates.io/bitflags/1.3.2 \
21 crate://crates.io/bitflags/2.4.1 \ 19 crate://crates.io/bitflags/2.4.2 \
22 crate://crates.io/block-buffer/0.10.4 \ 20 crate://crates.io/block-buffer/0.10.4 \
23 crate://crates.io/bstr/1.8.0 \ 21 crate://crates.io/bstr/1.9.0 \
24 crate://crates.io/byteorder/1.5.0 \ 22 crate://crates.io/byteorder/1.5.0 \
25 crate://crates.io/bytes/1.5.0 \ 23 crate://crates.io/bytes/1.5.0 \
26 crate://crates.io/bytesize/1.3.0 \ 24 crate://crates.io/bytesize/1.3.0 \
@@ -28,42 +26,42 @@ SRC_URI += " \
28 crate://crates.io/bzip2-sys/0.1.11+1.0.8 \ 26 crate://crates.io/bzip2-sys/0.1.11+1.0.8 \
29 crate://crates.io/cab/0.4.1 \ 27 crate://crates.io/cab/0.4.1 \
30 crate://crates.io/camino/1.1.6 \ 28 crate://crates.io/camino/1.1.6 \
31 crate://crates.io/cargo-config2/0.1.16 \ 29 crate://crates.io/cargo-config2/0.1.19 \
32 crate://crates.io/cargo-options/0.7.2 \ 30 crate://crates.io/cargo-options/0.7.2 \
33 crate://crates.io/cargo-platform/0.1.5 \ 31 crate://crates.io/cargo-platform/0.1.6 \
34 crate://crates.io/cargo-xwin/0.16.2 \ 32 crate://crates.io/cargo-xwin/0.16.4 \
35 crate://crates.io/cargo-zigbuild/0.18.0 \ 33 crate://crates.io/cargo-zigbuild/0.18.3 \
36 crate://crates.io/cargo_metadata/0.18.1 \ 34 crate://crates.io/cargo_metadata/0.18.1 \
37 crate://crates.io/cbindgen/0.26.0 \ 35 crate://crates.io/cbindgen/0.26.0 \
38 crate://crates.io/cc/1.0.83 \ 36 crate://crates.io/cc/1.0.88 \
39 crate://crates.io/cfb/0.9.0 \ 37 crate://crates.io/cfb/0.9.0 \
40 crate://crates.io/cfg-if/1.0.0 \ 38 crate://crates.io/cfg-if/1.0.0 \
41 crate://crates.io/charset/0.1.3 \ 39 crate://crates.io/charset/0.1.3 \
42 crate://crates.io/chumsky/0.9.3 \ 40 crate://crates.io/chumsky/0.9.3 \
43 crate://crates.io/clap/4.3.24 \ 41 crate://crates.io/clap/4.4.18 \
44 crate://crates.io/clap_builder/4.3.24 \ 42 crate://crates.io/clap_builder/4.4.18 \
45 crate://crates.io/clap_complete/4.3.2 \ 43 crate://crates.io/clap_complete/4.4.9 \
46 crate://crates.io/clap_complete_command/0.5.1 \ 44 crate://crates.io/clap_complete_command/0.5.1 \
47 crate://crates.io/clap_complete_fig/4.3.1 \
48 crate://crates.io/clap_complete_nushell/0.1.11 \ 45 crate://crates.io/clap_complete_nushell/0.1.11 \
49 crate://crates.io/clap_derive/4.3.12 \ 46 crate://crates.io/clap_derive/4.4.7 \
50 crate://crates.io/clap_lex/0.5.0 \ 47 crate://crates.io/clap_lex/0.6.0 \
51 crate://crates.io/cli-table/0.4.7 \ 48 crate://crates.io/cli-table/0.4.7 \
52 crate://crates.io/colorchoice/1.0.0 \ 49 crate://crates.io/colorchoice/1.0.0 \
53 crate://crates.io/configparser/3.0.3 \ 50 crate://crates.io/configparser/3.0.4 \
54 crate://crates.io/console/0.15.7 \ 51 crate://crates.io/console/0.15.8 \
55 crate://crates.io/content_inspector/0.2.4 \ 52 crate://crates.io/content_inspector/0.2.4 \
56 crate://crates.io/core-foundation/0.9.3 \ 53 crate://crates.io/core-foundation/0.9.4 \
57 crate://crates.io/core-foundation-sys/0.8.4 \ 54 crate://crates.io/core-foundation-sys/0.8.6 \
58 crate://crates.io/cpufeatures/0.2.11 \ 55 crate://crates.io/cpufeatures/0.2.12 \
59 crate://crates.io/crc32fast/1.3.2 \ 56 crate://crates.io/crc32fast/1.3.2 \
60 crate://crates.io/crossbeam-channel/0.5.8 \ 57 crate://crates.io/crossbeam-channel/0.5.11 \
61 crate://crates.io/crossbeam-deque/0.8.3 \ 58 crate://crates.io/crossbeam-deque/0.8.5 \
62 crate://crates.io/crossbeam-epoch/0.9.15 \ 59 crate://crates.io/crossbeam-epoch/0.9.18 \
63 crate://crates.io/crossbeam-utils/0.8.16 \ 60 crate://crates.io/crossbeam-utils/0.8.19 \
64 crate://crates.io/crypto-common/0.1.6 \ 61 crate://crates.io/crypto-common/0.1.6 \
65 crate://crates.io/data-encoding/2.5.0 \ 62 crate://crates.io/data-encoding/2.5.0 \
66 crate://crates.io/deranged/0.3.9 \ 63 crate://crates.io/deranged/0.3.11 \
64 crate://crates.io/derivative/2.2.0 \
67 crate://crates.io/dialoguer/0.11.0 \ 65 crate://crates.io/dialoguer/0.11.0 \
68 crate://crates.io/diff/0.1.13 \ 66 crate://crates.io/diff/0.1.13 \
69 crate://crates.io/digest/0.10.7 \ 67 crate://crates.io/digest/0.10.7 \
@@ -78,8 +76,8 @@ SRC_URI += " \
78 crate://crates.io/errno/0.3.8 \ 76 crate://crates.io/errno/0.3.8 \
79 crate://crates.io/expect-test/1.4.1 \ 77 crate://crates.io/expect-test/1.4.1 \
80 crate://crates.io/fastrand/2.0.1 \ 78 crate://crates.io/fastrand/2.0.1 \
81 crate://crates.io/fat-macho/0.4.7 \ 79 crate://crates.io/fat-macho/0.4.8 \
82 crate://crates.io/filetime/0.2.22 \ 80 crate://crates.io/filetime/0.2.23 \
83 crate://crates.io/flate2/1.0.28 \ 81 crate://crates.io/flate2/1.0.28 \
84 crate://crates.io/fnv/1.0.7 \ 82 crate://crates.io/fnv/1.0.7 \
85 crate://crates.io/foreign-types/0.3.2 \ 83 crate://crates.io/foreign-types/0.3.2 \
@@ -87,47 +85,42 @@ SRC_URI += " \
87 crate://crates.io/form_urlencoded/1.2.1 \ 85 crate://crates.io/form_urlencoded/1.2.1 \
88 crate://crates.io/fs-err/2.11.0 \ 86 crate://crates.io/fs-err/2.11.0 \
89 crate://crates.io/generic-array/0.14.7 \ 87 crate://crates.io/generic-array/0.14.7 \
90 crate://crates.io/getrandom/0.2.11 \ 88 crate://crates.io/getrandom/0.2.12 \
91 crate://crates.io/glob/0.3.1 \ 89 crate://crates.io/glob/0.3.1 \
92 crate://crates.io/globset/0.4.14 \ 90 crate://crates.io/globset/0.4.14 \
93 crate://crates.io/goblin/0.7.1 \ 91 crate://crates.io/goblin/0.8.0 \
94 crate://crates.io/hashbrown/0.12.3 \ 92 crate://crates.io/hashbrown/0.12.3 \
95 crate://crates.io/hashbrown/0.14.3 \ 93 crate://crates.io/hashbrown/0.14.3 \
96 crate://crates.io/heck/0.4.1 \ 94 crate://crates.io/heck/0.4.1 \
97 crate://crates.io/hermit-abi/0.3.3 \ 95 crate://crates.io/home/0.5.9 \
98 crate://crates.io/home/0.5.5 \
99 crate://crates.io/humantime/2.1.0 \ 96 crate://crates.io/humantime/2.1.0 \
100 crate://crates.io/humantime-serde/1.1.1 \ 97 crate://crates.io/humantime-serde/1.1.1 \
101 crate://crates.io/idna/0.5.0 \ 98 crate://crates.io/idna/0.5.0 \
102 crate://crates.io/ignore/0.4.20 \ 99 crate://crates.io/ignore/0.4.22 \
103 crate://crates.io/indexmap/1.9.3 \ 100 crate://crates.io/indexmap/1.9.3 \
104 crate://crates.io/indexmap/2.1.0 \ 101 crate://crates.io/indexmap/2.2.3 \
105 crate://crates.io/indicatif/0.17.7 \ 102 crate://crates.io/indicatif/0.17.7 \
106 crate://crates.io/indoc/2.0.4 \ 103 crate://crates.io/indoc/2.0.4 \
107 crate://crates.io/instant/0.1.12 \ 104 crate://crates.io/instant/0.1.12 \
108 crate://crates.io/io-lifetimes/1.0.11 \
109 crate://crates.io/is-terminal/0.4.9 \
110 crate://crates.io/itertools/0.11.0 \ 105 crate://crates.io/itertools/0.11.0 \
111 crate://crates.io/itertools/0.12.0 \ 106 crate://crates.io/itertools/0.12.1 \
112 crate://crates.io/itoa/1.0.9 \ 107 crate://crates.io/itoa/1.0.10 \
113 crate://crates.io/keyring/2.0.5 \ 108 crate://crates.io/keyring/2.3.2 \
114 crate://crates.io/lazy_static/1.4.0 \ 109 crate://crates.io/lazy_static/1.4.0 \
115 crate://crates.io/lddtree/0.3.3 \ 110 crate://crates.io/lddtree/0.3.4 \
116 crate://crates.io/libc/0.2.150 \ 111 crate://crates.io/libc/0.2.153 \
117 crate://crates.io/libredox/0.0.1 \ 112 crate://crates.io/libredox/0.0.1 \
118 crate://crates.io/linux-keyutils/0.2.3 \ 113 crate://crates.io/linux-keyutils/0.2.4 \
119 crate://crates.io/linux-raw-sys/0.3.8 \ 114 crate://crates.io/linux-raw-sys/0.4.13 \
120 crate://crates.io/linux-raw-sys/0.4.11 \
121 crate://crates.io/lock_api/0.4.11 \ 115 crate://crates.io/lock_api/0.4.11 \
122 crate://crates.io/log/0.4.20 \ 116 crate://crates.io/log/0.4.20 \
123 crate://crates.io/lzxd/0.1.4 \ 117 crate://crates.io/lzxd/0.1.4 \
124 crate://crates.io/mailparse/0.14.0 \ 118 crate://crates.io/mailparse/0.14.1 \
125 crate://crates.io/matchers/0.1.0 \ 119 crate://crates.io/matchers/0.1.0 \
126 crate://crates.io/memchr/2.6.4 \ 120 crate://crates.io/memchr/2.7.1 \
127 crate://crates.io/memoffset/0.9.0 \
128 crate://crates.io/mime/0.3.17 \ 121 crate://crates.io/mime/0.3.17 \
129 crate://crates.io/mime_guess/2.0.4 \ 122 crate://crates.io/mime_guess/2.0.4 \
130 crate://crates.io/minijinja/1.0.10 \ 123 crate://crates.io/minijinja/1.0.12 \
131 crate://crates.io/minimal-lexical/0.2.1 \ 124 crate://crates.io/minimal-lexical/0.2.1 \
132 crate://crates.io/miniz_oxide/0.7.1 \ 125 crate://crates.io/miniz_oxide/0.7.1 \
133 crate://crates.io/msi/0.7.0 \ 126 crate://crates.io/msi/0.7.0 \
@@ -137,128 +130,130 @@ SRC_URI += " \
137 crate://crates.io/normalize-line-endings/0.3.0 \ 130 crate://crates.io/normalize-line-endings/0.3.0 \
138 crate://crates.io/normpath/1.1.1 \ 131 crate://crates.io/normpath/1.1.1 \
139 crate://crates.io/nu-ansi-term/0.46.0 \ 132 crate://crates.io/nu-ansi-term/0.46.0 \
133 crate://crates.io/num-conv/0.1.0 \
140 crate://crates.io/number_prefix/0.4.0 \ 134 crate://crates.io/number_prefix/0.4.0 \
141 crate://crates.io/once_cell/1.18.0 \ 135 crate://crates.io/once_cell/1.19.0 \
142 crate://crates.io/openssl/0.10.60 \ 136 crate://crates.io/openssl/0.10.63 \
143 crate://crates.io/openssl-macros/0.1.1 \ 137 crate://crates.io/openssl-macros/0.1.1 \
144 crate://crates.io/openssl-probe/0.1.5 \ 138 crate://crates.io/openssl-probe/0.1.5 \
145 crate://crates.io/openssl-sys/0.9.96 \ 139 crate://crates.io/openssl-sys/0.9.99 \
146 crate://crates.io/option-ext/0.2.0 \ 140 crate://crates.io/option-ext/0.2.0 \
147 crate://crates.io/os_pipe/1.1.4 \ 141 crate://crates.io/os_pipe/1.1.5 \
148 crate://crates.io/overload/0.1.1 \ 142 crate://crates.io/overload/0.1.1 \
149 crate://crates.io/parking_lot/0.12.1 \ 143 crate://crates.io/parking_lot/0.12.1 \
150 crate://crates.io/parking_lot_core/0.9.9 \ 144 crate://crates.io/parking_lot_core/0.9.9 \
151 crate://crates.io/paste/1.0.14 \ 145 crate://crates.io/paste/1.0.14 \
152 crate://crates.io/path-slash/0.2.1 \ 146 crate://crates.io/path-slash/0.2.1 \
153 crate://crates.io/pep440_rs/0.3.12 \ 147 crate://crates.io/pep440_rs/0.5.0 \
154 crate://crates.io/pep508_rs/0.2.3 \ 148 crate://crates.io/pep508_rs/0.4.2 \
155 crate://crates.io/percent-encoding/2.3.1 \ 149 crate://crates.io/percent-encoding/2.3.1 \
156 crate://crates.io/pin-project-lite/0.2.13 \ 150 crate://crates.io/pin-project-lite/0.2.13 \
157 crate://crates.io/pkg-config/0.3.27 \ 151 crate://crates.io/pkg-config/0.3.29 \
158 crate://crates.io/plain/0.2.3 \ 152 crate://crates.io/plain/0.2.3 \
159 crate://crates.io/platform-info/2.0.2 \ 153 crate://crates.io/platform-info/2.0.2 \
160 crate://crates.io/portable-atomic/1.5.1 \ 154 crate://crates.io/portable-atomic/1.6.0 \
161 crate://crates.io/powerfmt/0.2.0 \ 155 crate://crates.io/powerfmt/0.2.0 \
162 crate://crates.io/ppv-lite86/0.2.17 \ 156 crate://crates.io/ppv-lite86/0.2.17 \
163 crate://crates.io/pretty_assertions/1.4.0 \ 157 crate://crates.io/pretty_assertions/1.4.0 \
164 crate://crates.io/proc-macro2/1.0.70 \ 158 crate://crates.io/proc-macro2/1.0.78 \
165 crate://crates.io/psm/0.1.21 \ 159 crate://crates.io/psm/0.1.21 \
166 crate://crates.io/pyproject-toml/0.8.1 \ 160 crate://crates.io/pyproject-toml/0.10.0 \
167 crate://crates.io/python-pkginfo/0.6.0 \ 161 crate://crates.io/python-pkginfo/0.6.0 \
168 crate://crates.io/quote/1.0.33 \ 162 crate://crates.io/quote/1.0.35 \
169 crate://crates.io/quoted_printable/0.4.8 \ 163 crate://crates.io/quoted_printable/0.4.8 \
164 crate://crates.io/quoted_printable/0.5.0 \
170 crate://crates.io/rand/0.8.5 \ 165 crate://crates.io/rand/0.8.5 \
171 crate://crates.io/rand_chacha/0.3.1 \ 166 crate://crates.io/rand_chacha/0.3.1 \
172 crate://crates.io/rand_core/0.6.4 \ 167 crate://crates.io/rand_core/0.6.4 \
173 crate://crates.io/rayon/1.8.0 \ 168 crate://crates.io/rayon/1.8.1 \
174 crate://crates.io/rayon-core/1.12.0 \ 169 crate://crates.io/rayon-core/1.12.1 \
175 crate://crates.io/redox_syscall/0.3.5 \
176 crate://crates.io/redox_syscall/0.4.1 \ 170 crate://crates.io/redox_syscall/0.4.1 \
177 crate://crates.io/redox_users/0.4.4 \ 171 crate://crates.io/redox_users/0.4.4 \
178 crate://crates.io/regex/1.10.2 \ 172 crate://crates.io/regex/1.10.3 \
179 crate://crates.io/regex-automata/0.1.10 \ 173 crate://crates.io/regex-automata/0.1.10 \
180 crate://crates.io/regex-automata/0.4.3 \ 174 crate://crates.io/regex-automata/0.4.5 \
181 crate://crates.io/regex-syntax/0.6.29 \ 175 crate://crates.io/regex-syntax/0.6.29 \
182 crate://crates.io/regex-syntax/0.8.2 \ 176 crate://crates.io/regex-syntax/0.8.2 \
183 crate://crates.io/rfc2047-decoder/0.2.2 \ 177 crate://crates.io/rfc2047-decoder/0.2.2 \
184 crate://crates.io/ring/0.17.6 \ 178 crate://crates.io/ring/0.17.7 \
185 crate://crates.io/rustc_version/0.4.0 \ 179 crate://crates.io/rustc_version/0.4.0 \
186 crate://crates.io/rustix/0.37.27 \ 180 crate://crates.io/rustix/0.38.32 \
187 crate://crates.io/rustix/0.38.21 \ 181 crate://crates.io/rustls/0.22.2 \
188 crate://crates.io/rustls/0.21.9 \ 182 crate://crates.io/rustls-pemfile/2.1.0 \
189 crate://crates.io/rustls-pemfile/2.0.0 \ 183 crate://crates.io/rustls-pki-types/1.3.1 \
190 crate://crates.io/rustls-pki-types/1.0.0 \ 184 crate://crates.io/rustls-webpki/0.102.1 \
191 crate://crates.io/rustls-webpki/0.101.7 \
192 crate://crates.io/rustversion/1.0.14 \ 185 crate://crates.io/rustversion/1.0.14 \
193 crate://crates.io/ryu/1.0.15 \ 186 crate://crates.io/ryu/1.0.16 \
194 crate://crates.io/same-file/1.0.6 \ 187 crate://crates.io/same-file/1.0.6 \
195 crate://crates.io/schannel/0.1.22 \ 188 crate://crates.io/schannel/0.1.23 \
196 crate://crates.io/scopeguard/1.2.0 \ 189 crate://crates.io/scopeguard/1.2.0 \
197 crate://crates.io/scroll/0.11.0 \ 190 crate://crates.io/scroll/0.12.0 \
198 crate://crates.io/scroll_derive/0.11.1 \ 191 crate://crates.io/scroll_derive/0.12.0 \
199 crate://crates.io/sct/0.7.1 \
200 crate://crates.io/security-framework/2.9.2 \ 192 crate://crates.io/security-framework/2.9.2 \
201 crate://crates.io/security-framework-sys/2.9.1 \ 193 crate://crates.io/security-framework-sys/2.9.1 \
202 crate://crates.io/semver/1.0.20 \ 194 crate://crates.io/semver/1.0.22 \
203 crate://crates.io/serde/1.0.193 \ 195 crate://crates.io/serde/1.0.197 \
204 crate://crates.io/serde_derive/1.0.193 \ 196 crate://crates.io/serde_derive/1.0.197 \
205 crate://crates.io/serde_json/1.0.108 \ 197 crate://crates.io/serde_json/1.0.114 \
206 crate://crates.io/serde_spanned/0.6.4 \ 198 crate://crates.io/serde_spanned/0.6.5 \
207 crate://crates.io/sha2/0.10.8 \ 199 crate://crates.io/sha2/0.10.8 \
208 crate://crates.io/sharded-slab/0.1.7 \ 200 crate://crates.io/sharded-slab/0.1.7 \
209 crate://crates.io/shell-words/1.1.0 \ 201 crate://crates.io/shell-words/1.1.0 \
210 crate://crates.io/shlex/1.2.0 \ 202 crate://crates.io/shlex/1.3.0 \
211 crate://crates.io/similar/2.3.0 \ 203 crate://crates.io/similar/2.4.0 \
212 crate://crates.io/smallvec/1.11.2 \ 204 crate://crates.io/smallvec/1.13.1 \
213 crate://crates.io/smawk/0.3.2 \ 205 crate://crates.io/smawk/0.3.2 \
214 crate://crates.io/snapbox/0.4.14 \ 206 crate://crates.io/snapbox/0.5.7 \
215 crate://crates.io/snapbox-macros/0.3.6 \ 207 crate://crates.io/snapbox-macros/0.3.8 \
216 crate://crates.io/socks/0.3.4 \ 208 crate://crates.io/socks/0.3.4 \
217 crate://crates.io/spin/0.9.8 \ 209 crate://crates.io/spin/0.9.8 \
218 crate://crates.io/stacker/0.1.15 \ 210 crate://crates.io/stacker/0.1.15 \
219 crate://crates.io/static_assertions/1.1.0 \ 211 crate://crates.io/static_assertions/1.1.0 \
220 crate://crates.io/strsim/0.10.0 \ 212 crate://crates.io/strsim/0.10.0 \
213 crate://crates.io/subtle/2.5.0 \
221 crate://crates.io/syn/1.0.109 \ 214 crate://crates.io/syn/1.0.109 \
222 crate://crates.io/syn/2.0.39 \ 215 crate://crates.io/syn/2.0.48 \
223 crate://crates.io/tar/0.4.40 \ 216 crate://crates.io/tar/0.4.40 \
224 crate://crates.io/target-lexicon/0.12.12 \ 217 crate://crates.io/target-lexicon/0.12.14 \
225 crate://crates.io/tempfile/3.8.1 \ 218 crate://crates.io/tempfile/3.9.0 \
226 crate://crates.io/termcolor/1.4.0 \ 219 crate://crates.io/termcolor/1.4.1 \
227 crate://crates.io/terminal_size/0.2.6 \ 220 crate://crates.io/terminal_size/0.3.0 \
228 crate://crates.io/textwrap/0.16.0 \ 221 crate://crates.io/textwrap/0.16.1 \
229 crate://crates.io/thiserror/1.0.50 \ 222 crate://crates.io/thiserror/1.0.57 \
230 crate://crates.io/thiserror-impl/1.0.50 \ 223 crate://crates.io/thiserror-impl/1.0.57 \
231 crate://crates.io/thread_local/1.1.7 \ 224 crate://crates.io/thread_local/1.1.7 \
232 crate://crates.io/time/0.3.30 \ 225 crate://crates.io/time/0.3.34 \
233 crate://crates.io/time-core/0.1.2 \ 226 crate://crates.io/time-core/0.1.2 \
234 crate://crates.io/time-macros/0.2.15 \ 227 crate://crates.io/time-macros/0.2.17 \
235 crate://crates.io/tinyvec/1.6.0 \ 228 crate://crates.io/tinyvec/1.6.0 \
236 crate://crates.io/tinyvec_macros/0.1.1 \ 229 crate://crates.io/tinyvec_macros/0.1.1 \
237 crate://crates.io/toml/0.5.11 \ 230 crate://crates.io/toml/0.5.11 \
238 crate://crates.io/toml/0.8.8 \ 231 crate://crates.io/toml/0.8.10 \
239 crate://crates.io/toml_datetime/0.6.5 \ 232 crate://crates.io/toml_datetime/0.6.5 \
240 crate://crates.io/toml_edit/0.20.7 \ 233 crate://crates.io/toml_edit/0.22.6 \
241 crate://crates.io/toml_edit/0.21.0 \
242 crate://crates.io/tracing/0.1.40 \ 234 crate://crates.io/tracing/0.1.40 \
243 crate://crates.io/tracing-attributes/0.1.27 \ 235 crate://crates.io/tracing-attributes/0.1.27 \
244 crate://crates.io/tracing-core/0.1.32 \ 236 crate://crates.io/tracing-core/0.1.32 \
245 crate://crates.io/tracing-log/0.2.0 \ 237 crate://crates.io/tracing-log/0.2.0 \
246 crate://crates.io/tracing-serde/0.1.3 \ 238 crate://crates.io/tracing-serde/0.1.3 \
247 crate://crates.io/tracing-subscriber/0.3.18 \ 239 crate://crates.io/tracing-subscriber/0.3.18 \
248 crate://crates.io/trycmd/0.14.19 \ 240 crate://crates.io/trycmd/0.15.0 \
249 crate://crates.io/twox-hash/1.6.3 \ 241 crate://crates.io/twox-hash/1.6.3 \
250 crate://crates.io/typenum/1.17.0 \ 242 crate://crates.io/typenum/1.17.0 \
251 crate://crates.io/unicase/2.7.0 \ 243 crate://crates.io/unicase/2.7.0 \
252 crate://crates.io/unicode-bidi/0.3.13 \ 244 crate://crates.io/unicode-bidi/0.3.15 \
253 crate://crates.io/unicode-ident/1.0.12 \ 245 crate://crates.io/unicode-ident/1.0.12 \
254 crate://crates.io/unicode-linebreak/0.1.5 \ 246 crate://crates.io/unicode-linebreak/0.1.5 \
255 crate://crates.io/unicode-normalization/0.1.22 \ 247 crate://crates.io/unicode-normalization/0.1.22 \
256 crate://crates.io/unicode-width/0.1.11 \ 248 crate://crates.io/unicode-width/0.1.11 \
249 crate://crates.io/unicode-xid/0.2.4 \
250 crate://crates.io/unscanny/0.1.0 \
257 crate://crates.io/untrusted/0.9.0 \ 251 crate://crates.io/untrusted/0.9.0 \
258 crate://crates.io/ureq/2.9.1 \ 252 crate://crates.io/ureq/2.9.6 \
259 crate://crates.io/url/2.5.0 \ 253 crate://crates.io/url/2.5.0 \
254 crate://crates.io/urlencoding/2.1.3 \
260 crate://crates.io/utf8parse/0.2.1 \ 255 crate://crates.io/utf8parse/0.2.1 \
261 crate://crates.io/uuid/1.6.1 \ 256 crate://crates.io/uuid/1.7.0 \
262 crate://crates.io/valuable/0.1.0 \ 257 crate://crates.io/valuable/0.1.0 \
263 crate://crates.io/vcpkg/0.2.15 \ 258 crate://crates.io/vcpkg/0.2.15 \
264 crate://crates.io/version_check/0.9.4 \ 259 crate://crates.io/version_check/0.9.4 \
@@ -266,69 +261,59 @@ SRC_URI += " \
266 crate://crates.io/wait-timeout/0.2.0 \ 261 crate://crates.io/wait-timeout/0.2.0 \
267 crate://crates.io/walkdir/2.4.0 \ 262 crate://crates.io/walkdir/2.4.0 \
268 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ 263 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
269 crate://crates.io/webpki-roots/0.25.3 \ 264 crate://crates.io/webpki-roots/0.26.0 \
270 crate://crates.io/which/5.0.0 \ 265 crate://crates.io/which/5.0.0 \
271 crate://crates.io/wild/2.2.0 \ 266 crate://crates.io/which/6.0.0 \
267 crate://crates.io/wild/2.2.1 \
272 crate://crates.io/winapi/0.3.9 \ 268 crate://crates.io/winapi/0.3.9 \
273 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ 269 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
274 crate://crates.io/winapi-util/0.1.6 \ 270 crate://crates.io/winapi-util/0.1.6 \
275 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ 271 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
276 crate://crates.io/windows-sys/0.45.0 \
277 crate://crates.io/windows-sys/0.48.0 \ 272 crate://crates.io/windows-sys/0.48.0 \
278 crate://crates.io/windows-sys/0.52.0 \ 273 crate://crates.io/windows-sys/0.52.0 \
279 crate://crates.io/windows-targets/0.42.2 \
280 crate://crates.io/windows-targets/0.48.5 \ 274 crate://crates.io/windows-targets/0.48.5 \
281 crate://crates.io/windows-targets/0.52.0 \ 275 crate://crates.io/windows-targets/0.52.0 \
282 crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
283 crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ 276 crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
284 crate://crates.io/windows_aarch64_gnullvm/0.52.0 \ 277 crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
285 crate://crates.io/windows_aarch64_msvc/0.42.2 \
286 crate://crates.io/windows_aarch64_msvc/0.48.5 \ 278 crate://crates.io/windows_aarch64_msvc/0.48.5 \
287 crate://crates.io/windows_aarch64_msvc/0.52.0 \ 279 crate://crates.io/windows_aarch64_msvc/0.52.0 \
288 crate://crates.io/windows_i686_gnu/0.42.2 \
289 crate://crates.io/windows_i686_gnu/0.48.5 \ 280 crate://crates.io/windows_i686_gnu/0.48.5 \
290 crate://crates.io/windows_i686_gnu/0.52.0 \ 281 crate://crates.io/windows_i686_gnu/0.52.0 \
291 crate://crates.io/windows_i686_msvc/0.42.2 \
292 crate://crates.io/windows_i686_msvc/0.48.5 \ 282 crate://crates.io/windows_i686_msvc/0.48.5 \
293 crate://crates.io/windows_i686_msvc/0.52.0 \ 283 crate://crates.io/windows_i686_msvc/0.52.0 \
294 crate://crates.io/windows_x86_64_gnu/0.42.2 \
295 crate://crates.io/windows_x86_64_gnu/0.48.5 \ 284 crate://crates.io/windows_x86_64_gnu/0.48.5 \
296 crate://crates.io/windows_x86_64_gnu/0.52.0 \ 285 crate://crates.io/windows_x86_64_gnu/0.52.0 \
297 crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
298 crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ 286 crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
299 crate://crates.io/windows_x86_64_gnullvm/0.52.0 \ 287 crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
300 crate://crates.io/windows_x86_64_msvc/0.42.2 \
301 crate://crates.io/windows_x86_64_msvc/0.48.5 \ 288 crate://crates.io/windows_x86_64_msvc/0.48.5 \
302 crate://crates.io/windows_x86_64_msvc/0.52.0 \ 289 crate://crates.io/windows_x86_64_msvc/0.52.0 \
303 crate://crates.io/winnow/0.5.19 \ 290 crate://crates.io/winnow/0.6.2 \
304 crate://crates.io/xattr/1.0.1 \ 291 crate://crates.io/xattr/1.3.1 \
305 crate://crates.io/xwin/0.5.0 \ 292 crate://crates.io/xwin/0.5.0 \
306 crate://crates.io/yansi/0.5.1 \ 293 crate://crates.io/yansi/0.5.1 \
307 crate://crates.io/zerocopy/0.7.28 \ 294 crate://crates.io/zerocopy/0.7.32 \
308 crate://crates.io/zerocopy-derive/0.7.28 \ 295 crate://crates.io/zerocopy-derive/0.7.32 \
309 crate://crates.io/zeroize/1.7.0 \ 296 crate://crates.io/zeroize/1.7.0 \
310 crate://crates.io/zip/0.6.6 \ 297 crate://crates.io/zip/0.6.6 \
311" 298"
312 299
313SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 300SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
314SRC_URI[ahash-0.8.6.sha256sum] = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" 301SRC_URI[ahash-0.8.7.sha256sum] = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
315SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 302SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
316SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" 303SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
317SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" 304SRC_URI[anstream-0.6.11.sha256sum] = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
318SRC_URI[anstream-0.6.4.sha256sum] = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" 305SRC_URI[anstyle-1.0.4.sha256sum] = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
319SRC_URI[anstyle-1.0.2.sha256sum] = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" 306SRC_URI[anstyle-parse-0.2.3.sha256sum] = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
320SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" 307SRC_URI[anstyle-query-1.0.2.sha256sum] = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
321SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" 308SRC_URI[anstyle-wincon-3.0.2.sha256sum] = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
322SRC_URI[anstyle-wincon-1.0.2.sha256sum] = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" 309SRC_URI[anyhow-1.0.80.sha256sum] = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
323SRC_URI[anstyle-wincon-3.0.1.sha256sum] = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
324SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
325SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 310SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
326SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 311SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
327SRC_URI[base64-0.21.5.sha256sum] = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" 312SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
328SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 313SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
329SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" 314SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
330SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 315SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
331SRC_URI[bstr-1.8.0.sha256sum] = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" 316SRC_URI[bstr-1.9.0.sha256sum] = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
332SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 317SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
333SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 318SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
334SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" 319SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
@@ -336,42 +321,42 @@ SRC_URI[bzip2-0.4.4.sha256sum] = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb8849
336SRC_URI[bzip2-sys-0.1.11+1.0.8.sha256sum] = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" 321SRC_URI[bzip2-sys-0.1.11+1.0.8.sha256sum] = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
337SRC_URI[cab-0.4.1.sha256sum] = "ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551" 322SRC_URI[cab-0.4.1.sha256sum] = "ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551"
338SRC_URI[camino-1.1.6.sha256sum] = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" 323SRC_URI[camino-1.1.6.sha256sum] = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
339SRC_URI[cargo-config2-0.1.16.sha256sum] = "7f387366785e82c7ec7ef5b845a7f61324fbf5d467d6a878469eac30c1c44b1b" 324SRC_URI[cargo-config2-0.1.19.sha256sum] = "3a7fb69d74d76f8c254afd1c0e76aca40c305707b28aebe3c5a0fd2ee62aeeeb"
340SRC_URI[cargo-options-0.7.2.sha256sum] = "cad71bf996c8e5b9d28ef3472d7ee41f277edf4e38cd597f51ad0438d05d76ea" 325SRC_URI[cargo-options-0.7.2.sha256sum] = "cad71bf996c8e5b9d28ef3472d7ee41f277edf4e38cd597f51ad0438d05d76ea"
341SRC_URI[cargo-platform-0.1.5.sha256sum] = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" 326SRC_URI[cargo-platform-0.1.6.sha256sum] = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d"
342SRC_URI[cargo-xwin-0.16.2.sha256sum] = "02bb6bf59526935e47445f959a19c2168f151284dbf7e57f5577934334e9a61d" 327SRC_URI[cargo-xwin-0.16.4.sha256sum] = "5e6c3dd7f20fdd197397532ac882e918cfe1d56f262a97ded7460a50e031e06b"
343SRC_URI[cargo-zigbuild-0.18.0.sha256sum] = "edc9c2fe646a29983b5f7263bd789175f2aaad7ea42525affa40e2172be93286" 328SRC_URI[cargo-zigbuild-0.18.3.sha256sum] = "cb76e6ab558f9138291c7e1fa954ffd58e060712eab13f97a317da712218ca24"
344SRC_URI[cargo_metadata-0.18.1.sha256sum] = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" 329SRC_URI[cargo_metadata-0.18.1.sha256sum] = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
345SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" 330SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
346SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 331SRC_URI[cc-1.0.88.sha256sum] = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
347SRC_URI[cfb-0.9.0.sha256sum] = "b390793e912300f1aa713429f7fd0c391024e6c18b988962558bc4f96a349b1f" 332SRC_URI[cfb-0.9.0.sha256sum] = "b390793e912300f1aa713429f7fd0c391024e6c18b988962558bc4f96a349b1f"
348SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 333SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
349SRC_URI[charset-0.1.3.sha256sum] = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46" 334SRC_URI[charset-0.1.3.sha256sum] = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
350SRC_URI[chumsky-0.9.3.sha256sum] = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9" 335SRC_URI[chumsky-0.9.3.sha256sum] = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
351SRC_URI[clap-4.3.24.sha256sum] = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487" 336SRC_URI[clap-4.4.18.sha256sum] = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
352SRC_URI[clap_builder-4.3.24.sha256sum] = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e" 337SRC_URI[clap_builder-4.4.18.sha256sum] = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
353SRC_URI[clap_complete-4.3.2.sha256sum] = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" 338SRC_URI[clap_complete-4.4.9.sha256sum] = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
354SRC_URI[clap_complete_command-0.5.1.sha256sum] = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d" 339SRC_URI[clap_complete_command-0.5.1.sha256sum] = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
355SRC_URI[clap_complete_fig-4.3.1.sha256sum] = "99fee1d30a51305a6c2ed3fc5709be3c8af626c9c958e04dd9ae94e27bcbce9f"
356SRC_URI[clap_complete_nushell-0.1.11.sha256sum] = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e" 340SRC_URI[clap_complete_nushell-0.1.11.sha256sum] = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
357SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" 341SRC_URI[clap_derive-4.4.7.sha256sum] = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
358SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" 342SRC_URI[clap_lex-0.6.0.sha256sum] = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
359SRC_URI[cli-table-0.4.7.sha256sum] = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d" 343SRC_URI[cli-table-0.4.7.sha256sum] = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d"
360SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 344SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
361SRC_URI[configparser-3.0.3.sha256sum] = "e0e56e414a2a52ab2a104f85cd40933c2fbc278b83637facf646ecf451b49237" 345SRC_URI[configparser-3.0.4.sha256sum] = "4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288"
362SRC_URI[console-0.15.7.sha256sum] = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" 346SRC_URI[console-0.15.8.sha256sum] = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
363SRC_URI[content_inspector-0.2.4.sha256sum] = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" 347SRC_URI[content_inspector-0.2.4.sha256sum] = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38"
364SRC_URI[core-foundation-0.9.3.sha256sum] = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 348SRC_URI[core-foundation-0.9.4.sha256sum] = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
365SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 349SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
366SRC_URI[cpufeatures-0.2.11.sha256sum] = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" 350SRC_URI[cpufeatures-0.2.12.sha256sum] = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
367SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 351SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
368SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 352SRC_URI[crossbeam-channel-0.5.11.sha256sum] = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
369SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 353SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
370SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" 354SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
371SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" 355SRC_URI[crossbeam-utils-0.8.19.sha256sum] = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
372SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 356SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
373SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" 357SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
374SRC_URI[deranged-0.3.9.sha256sum] = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" 358SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
359SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
375SRC_URI[dialoguer-0.11.0.sha256sum] = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" 360SRC_URI[dialoguer-0.11.0.sha256sum] = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
376SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 361SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
377SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 362SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
@@ -386,8 +371,8 @@ SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca62
386SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 371SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
387SRC_URI[expect-test-1.4.1.sha256sum] = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3" 372SRC_URI[expect-test-1.4.1.sha256sum] = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3"
388SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 373SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
389SRC_URI[fat-macho-0.4.7.sha256sum] = "63fa117c7dcabeb8c83d5c229764cfa46518545d2dba5a9a08912014711f997b" 374SRC_URI[fat-macho-0.4.8.sha256sum] = "0d4c93f393add03d72bc10dd3dea43a1610ecb29e0c0a6459c70b53b82931adf"
390SRC_URI[filetime-0.2.22.sha256sum] = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" 375SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
391SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 376SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
392SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 377SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
393SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 378SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
@@ -395,47 +380,42 @@ SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70
395SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 380SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
396SRC_URI[fs-err-2.11.0.sha256sum] = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" 381SRC_URI[fs-err-2.11.0.sha256sum] = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
397SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 382SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
398SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" 383SRC_URI[getrandom-0.2.12.sha256sum] = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
399SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 384SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
400SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" 385SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
401SRC_URI[goblin-0.7.1.sha256sum] = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134" 386SRC_URI[goblin-0.8.0.sha256sum] = "bb07a4ffed2093b118a525b1d8f5204ae274faed5604537caf7135d0f18d9887"
402SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 387SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
403SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 388SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
404SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 389SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
405SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 390SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
406SRC_URI[home-0.5.5.sha256sum] = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
407SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 391SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
408SRC_URI[humantime-serde-1.1.1.sha256sum] = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" 392SRC_URI[humantime-serde-1.1.1.sha256sum] = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c"
409SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 393SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
410SRC_URI[ignore-0.4.20.sha256sum] = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" 394SRC_URI[ignore-0.4.22.sha256sum] = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
411SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 395SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
412SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" 396SRC_URI[indexmap-2.2.3.sha256sum] = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
413SRC_URI[indicatif-0.17.7.sha256sum] = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" 397SRC_URI[indicatif-0.17.7.sha256sum] = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
414SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" 398SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
415SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 399SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
416SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
417SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
418SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" 400SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
419SRC_URI[itertools-0.12.0.sha256sum] = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" 401SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
420SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" 402SRC_URI[itoa-1.0.10.sha256sum] = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
421SRC_URI[keyring-2.0.5.sha256sum] = "9549a129bd08149e0a71b2d1ce2729780d47127991bfd0a78cc1df697ec72492" 403SRC_URI[keyring-2.3.2.sha256sum] = "1be8bc4c6b6e9d85ecdad090fcf342a9216f53d747a537cc05e3452fd650ca46"
422SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 404SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
423SRC_URI[lddtree-0.3.3.sha256sum] = "2f5bfec46830ad3a95199ae6804dfe9f51fdad43d7a95fbb6c185efa9824c295" 405SRC_URI[lddtree-0.3.4.sha256sum] = "f88a93876d2485ede9c97d698c164cf5c024491908483964a998faae9705dea6"
424SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" 406SRC_URI[libc-0.2.153.sha256sum] = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
425SRC_URI[libredox-0.0.1.sha256sum] = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" 407SRC_URI[libredox-0.0.1.sha256sum] = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
426SRC_URI[linux-keyutils-0.2.3.sha256sum] = "3f27bb67f6dd1d0bb5ab582868e4f65052e58da6401188a08f0da09cf512b84b" 408SRC_URI[linux-keyutils-0.2.4.sha256sum] = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e"
427SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" 409SRC_URI[linux-raw-sys-0.4.13.sha256sum] = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
428SRC_URI[linux-raw-sys-0.4.11.sha256sum] = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
429SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 410SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
430SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 411SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
431SRC_URI[lzxd-0.1.4.sha256sum] = "784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213" 412SRC_URI[lzxd-0.1.4.sha256sum] = "784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213"
432SRC_URI[mailparse-0.14.0.sha256sum] = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa" 413SRC_URI[mailparse-0.14.1.sha256sum] = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
433SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 414SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
434SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 415SRC_URI[memchr-2.7.1.sha256sum] = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
435SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
436SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 416SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
437SRC_URI[mime_guess-2.0.4.sha256sum] = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 417SRC_URI[mime_guess-2.0.4.sha256sum] = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
438SRC_URI[minijinja-1.0.10.sha256sum] = "208758577ef2c86cf5dd3e85730d161413ec3284e2d73b2ef65d9a24d9971bcb" 418SRC_URI[minijinja-1.0.12.sha256sum] = "6fe0ff215195a22884d867b547c70a0c4815cbbcc70991f281dca604b20d10ce"
439SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 419SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
440SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 420SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
441SRC_URI[msi-0.7.0.sha256sum] = "226b2404f03d2cf47375b9715c8adfae4e388bb2377cff908e8a40f31e421514" 421SRC_URI[msi-0.7.0.sha256sum] = "226b2404f03d2cf47375b9715c8adfae4e388bb2377cff908e8a40f31e421514"
@@ -445,128 +425,130 @@ SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b7382641
445SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" 425SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
446SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" 426SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5"
447SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 427SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
428SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
448SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" 429SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
449SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 430SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
450SRC_URI[openssl-0.10.60.sha256sum] = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" 431SRC_URI[openssl-0.10.63.sha256sum] = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
451SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 432SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
452SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 433SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
453SRC_URI[openssl-sys-0.9.96.sha256sum] = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" 434SRC_URI[openssl-sys-0.9.99.sha256sum] = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
454SRC_URI[option-ext-0.2.0.sha256sum] = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 435SRC_URI[option-ext-0.2.0.sha256sum] = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
455SRC_URI[os_pipe-1.1.4.sha256sum] = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" 436SRC_URI[os_pipe-1.1.5.sha256sum] = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
456SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 437SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
457SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 438SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
458SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 439SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
459SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 440SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
460SRC_URI[path-slash-0.2.1.sha256sum] = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" 441SRC_URI[path-slash-0.2.1.sha256sum] = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
461SRC_URI[pep440_rs-0.3.12.sha256sum] = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6" 442SRC_URI[pep440_rs-0.5.0.sha256sum] = "15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be"
462SRC_URI[pep508_rs-0.2.3.sha256sum] = "e4516b53d9ea6112ebb38b4af08d5707d30b994fb7f98ff133c5dcf7ed8fa854" 443SRC_URI[pep508_rs-0.4.2.sha256sum] = "1455babf8edd3eedcdfcb39700e455a4bb189e71b4f1fa0eacc9b244cc5a55e6"
463SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 444SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
464SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 445SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
465SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 446SRC_URI[pkg-config-0.3.29.sha256sum] = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
466SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 447SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
467SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f" 448SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
468SRC_URI[portable-atomic-1.5.1.sha256sum] = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" 449SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
469SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 450SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
470SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 451SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
471SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" 452SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
472SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" 453SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
473SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" 454SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
474SRC_URI[pyproject-toml-0.8.1.sha256sum] = "46d4a5e69187f23a29f8aa0ea57491d104ba541bc55f76552c2a74962aa20e04" 455SRC_URI[pyproject-toml-0.10.0.sha256sum] = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898"
475SRC_URI[python-pkginfo-0.6.0.sha256sum] = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa" 456SRC_URI[python-pkginfo-0.6.0.sha256sum] = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa"
476SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 457SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
477SRC_URI[quoted_printable-0.4.8.sha256sum] = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49" 458SRC_URI[quoted_printable-0.4.8.sha256sum] = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
459SRC_URI[quoted_printable-0.5.0.sha256sum] = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
478SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 460SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
479SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 461SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
480SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 462SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
481SRC_URI[rayon-1.8.0.sha256sum] = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" 463SRC_URI[rayon-1.8.1.sha256sum] = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
482SRC_URI[rayon-core-1.12.0.sha256sum] = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" 464SRC_URI[rayon-core-1.12.1.sha256sum] = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
483SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
484SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 465SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
485SRC_URI[redox_users-0.4.4.sha256sum] = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" 466SRC_URI[redox_users-0.4.4.sha256sum] = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
486SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" 467SRC_URI[regex-1.10.3.sha256sum] = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
487SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 468SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
488SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" 469SRC_URI[regex-automata-0.4.5.sha256sum] = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
489SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 470SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
490SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 471SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
491SRC_URI[rfc2047-decoder-0.2.2.sha256sum] = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e" 472SRC_URI[rfc2047-decoder-0.2.2.sha256sum] = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e"
492SRC_URI[ring-0.17.6.sha256sum] = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" 473SRC_URI[ring-0.17.7.sha256sum] = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
493SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 474SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
494SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" 475SRC_URI[rustix-0.38.32.sha256sum] = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
495SRC_URI[rustix-0.38.21.sha256sum] = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" 476SRC_URI[rustls-0.22.2.sha256sum] = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
496SRC_URI[rustls-0.21.9.sha256sum] = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" 477SRC_URI[rustls-pemfile-2.1.0.sha256sum] = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
497SRC_URI[rustls-pemfile-2.0.0.sha256sum] = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" 478SRC_URI[rustls-pki-types-1.3.1.sha256sum] = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
498SRC_URI[rustls-pki-types-1.0.0.sha256sum] = "eb0a1f9b9efec70d32e6d6aa3e58ebd88c3754ec98dfe9145c63cf54cc829b83" 479SRC_URI[rustls-webpki-0.102.1.sha256sum] = "ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b"
499SRC_URI[rustls-webpki-0.101.7.sha256sum] = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
500SRC_URI[rustversion-1.0.14.sha256sum] = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 480SRC_URI[rustversion-1.0.14.sha256sum] = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
501SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" 481SRC_URI[ryu-1.0.16.sha256sum] = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
502SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 482SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
503SRC_URI[schannel-0.1.22.sha256sum] = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" 483SRC_URI[schannel-0.1.23.sha256sum] = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
504SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 484SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
505SRC_URI[scroll-0.11.0.sha256sum] = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" 485SRC_URI[scroll-0.12.0.sha256sum] = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
506SRC_URI[scroll_derive-0.11.1.sha256sum] = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" 486SRC_URI[scroll_derive-0.12.0.sha256sum] = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
507SRC_URI[sct-0.7.1.sha256sum] = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
508SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 487SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
509SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 488SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
510SRC_URI[semver-1.0.20.sha256sum] = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" 489SRC_URI[semver-1.0.22.sha256sum] = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
511SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" 490SRC_URI[serde-1.0.197.sha256sum] = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
512SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" 491SRC_URI[serde_derive-1.0.197.sha256sum] = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
513SRC_URI[serde_json-1.0.108.sha256sum] = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" 492SRC_URI[serde_json-1.0.114.sha256sum] = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
514SRC_URI[serde_spanned-0.6.4.sha256sum] = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" 493SRC_URI[serde_spanned-0.6.5.sha256sum] = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
515SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 494SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
516SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 495SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
517SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 496SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
518SRC_URI[shlex-1.2.0.sha256sum] = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" 497SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
519SRC_URI[similar-2.3.0.sha256sum] = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" 498SRC_URI[similar-2.4.0.sha256sum] = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
520SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 499SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
521SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 500SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
522SRC_URI[snapbox-0.4.14.sha256sum] = "4b377c0b6e4715c116473d8e40d51e3fa5b0a2297ca9b2a931ba800667b259ed" 501SRC_URI[snapbox-0.5.7.sha256sum] = "4a99efa20de5053229642a477436cdb39828c7651c614622eb4888f9688523e6"
523SRC_URI[snapbox-macros-0.3.6.sha256sum] = "ed1559baff8a696add3322b9be3e940d433e7bb4e38d79017205fd37ff28b28e" 502SRC_URI[snapbox-macros-0.3.8.sha256sum] = "e1c4b838b05d15ab22754068cb73500b2f3b07bf09d310e15b27f88160f1de40"
524SRC_URI[socks-0.3.4.sha256sum] = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" 503SRC_URI[socks-0.3.4.sha256sum] = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b"
525SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 504SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
526SRC_URI[stacker-0.1.15.sha256sum] = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" 505SRC_URI[stacker-0.1.15.sha256sum] = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
527SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 506SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
528SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 507SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
508SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
529SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 509SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
530SRC_URI[syn-2.0.39.sha256sum] = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" 510SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
531SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" 511SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
532SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" 512SRC_URI[target-lexicon-0.12.14.sha256sum] = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
533SRC_URI[tempfile-3.8.1.sha256sum] = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" 513SRC_URI[tempfile-3.9.0.sha256sum] = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
534SRC_URI[termcolor-1.4.0.sha256sum] = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" 514SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
535SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" 515SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
536SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" 516SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
537SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" 517SRC_URI[thiserror-1.0.57.sha256sum] = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
538SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" 518SRC_URI[thiserror-impl-1.0.57.sha256sum] = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
539SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 519SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
540SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" 520SRC_URI[time-0.3.34.sha256sum] = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
541SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 521SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
542SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" 522SRC_URI[time-macros-0.2.17.sha256sum] = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
543SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 523SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
544SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 524SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
545SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 525SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
546SRC_URI[toml-0.8.8.sha256sum] = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" 526SRC_URI[toml-0.8.10.sha256sum] = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
547SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 527SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
548SRC_URI[toml_edit-0.20.7.sha256sum] = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" 528SRC_URI[toml_edit-0.22.6.sha256sum] = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
549SRC_URI[toml_edit-0.21.0.sha256sum] = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
550SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 529SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
551SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 530SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
552SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 531SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
553SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 532SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
554SRC_URI[tracing-serde-0.1.3.sha256sum] = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" 533SRC_URI[tracing-serde-0.1.3.sha256sum] = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
555SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" 534SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
556SRC_URI[trycmd-0.14.19.sha256sum] = "ed009372a42fb103e6f8767b9222925485e03cca032b700d203e2c5b67bee4fb" 535SRC_URI[trycmd-0.15.0.sha256sum] = "464edb3603a81a50b4c8f47b11dfade69ef48ffdc0af2f8b194ad87cbda75317"
557SRC_URI[twox-hash-1.6.3.sha256sum] = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 536SRC_URI[twox-hash-1.6.3.sha256sum] = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
558SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 537SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
559SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 538SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
560SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 539SRC_URI[unicode-bidi-0.3.15.sha256sum] = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
561SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 540SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
562SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 541SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
563SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 542SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
564SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" 543SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
544SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
545SRC_URI[unscanny-0.1.0.sha256sum] = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
565SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 546SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
566SRC_URI[ureq-2.9.1.sha256sum] = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" 547SRC_URI[ureq-2.9.6.sha256sum] = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35"
567SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 548SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
549SRC_URI[urlencoding-2.1.3.sha256sum] = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
568SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 550SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
569SRC_URI[uuid-1.6.1.sha256sum] = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" 551SRC_URI[uuid-1.7.0.sha256sum] = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
570SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 552SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
571SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 553SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
572SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 554SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
@@ -574,45 +556,37 @@ SRC_URI[versions-5.0.1.sha256sum] = "c73a36bc44e3039f51fbee93e39f41225f6b17b380e
574SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" 556SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
575SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 557SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
576SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 558SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
577SRC_URI[webpki-roots-0.25.3.sha256sum] = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" 559SRC_URI[webpki-roots-0.26.0.sha256sum] = "0de2cfda980f21be5a7ed2eadb3e6fe074d56022bea2cdeb1a62eb220fc04188"
578SRC_URI[which-5.0.0.sha256sum] = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" 560SRC_URI[which-5.0.0.sha256sum] = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
579SRC_URI[wild-2.2.0.sha256sum] = "10d01931a94d5a115a53f95292f51d316856b68a035618eb831bbba593a30b67" 561SRC_URI[which-6.0.0.sha256sum] = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
562SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
580SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 563SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
581SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 564SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
582SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 565SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
583SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 566SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
584SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
585SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 567SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
586SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 568SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
587SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
588SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 569SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
589SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 570SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
590SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
591SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 571SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
592SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 572SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
593SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
594SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 573SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
595SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 574SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
596SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
597SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 575SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
598SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 576SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
599SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
600SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 577SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
601SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 578SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
602SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
603SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 579SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
604SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 580SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
605SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
606SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 581SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
607SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 582SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
608SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
609SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 583SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
610SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 584SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
611SRC_URI[winnow-0.5.19.sha256sum] = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" 585SRC_URI[winnow-0.6.2.sha256sum] = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178"
612SRC_URI[xattr-1.0.1.sha256sum] = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" 586SRC_URI[xattr-1.3.1.sha256sum] = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
613SRC_URI[xwin-0.5.0.sha256sum] = "c43e0202f5457b48558096cb7b36d0e473f267551a89c82ed72d73b01dfd4007" 587SRC_URI[xwin-0.5.0.sha256sum] = "c43e0202f5457b48558096cb7b36d0e473f267551a89c82ed72d73b01dfd4007"
614SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" 588SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
615SRC_URI[zerocopy-0.7.28.sha256sum] = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e" 589SRC_URI[zerocopy-0.7.32.sha256sum] = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
616SRC_URI[zerocopy-derive-0.7.28.sha256sum] = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b" 590SRC_URI[zerocopy-derive-0.7.32.sha256sum] = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
617SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" 591SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
618SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" 592SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
diff --git a/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch b/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch
deleted file mode 100644
index a0ef0c9e22..0000000000
--- a/meta/recipes-devtools/python/python3-maturin/0001-Add-32-bit-RISC-V-support.patch
+++ /dev/null
@@ -1,102 +0,0 @@
1From a945706bd610c5400fc85a248d5e0c96ebd2e953 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 27 Feb 2024 10:38:49 -0800
4Subject: [PATCH] Add 32-bit RISC-V support
5
6Tested with qemuriscv32 and it builds fine with all tests passed on a
7qemu machine.
8
9Upstream-Status: Submitted [https://github.com/PyO3/maturin/pull/1969]
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 src/target.rs | 11 ++++++++++-
13 1 file changed, 10 insertions(+), 1 deletion(-)
14
15diff --git a/src/target.rs b/src/target.rs
16index fbb93531..33fa9273 100644
17--- a/src/target.rs
18+++ b/src/target.rs
19@@ -69,6 +69,7 @@ pub enum Arch {
20 X86_64,
21 S390X,
22 Wasm32,
23+ Riscv32,
24 Riscv64,
25 Mips64el,
26 Mips64,
27@@ -91,6 +92,7 @@ impl fmt::Display for Arch {
28 Arch::X86_64 => write!(f, "x86_64"),
29 Arch::S390X => write!(f, "s390x"),
30 Arch::Wasm32 => write!(f, "wasm32"),
31+ Arch::Riscv32 => write!(f, "riscv32"),
32 Arch::Riscv64 => write!(f, "riscv64"),
33 Arch::Mips64el => write!(f, "mips64el"),
34 Arch::Mips64 => write!(f, "mips64"),
35@@ -115,7 +117,7 @@ impl Arch {
36 Arch::Powerpc | Arch::Powerpc64Le | Arch::Powerpc64 => "powerpc",
37 Arch::X86 => "i386",
38 Arch::X86_64 => "amd64",
39- Arch::Riscv64 => "riscv",
40+ Arch::Riscv32 | Arch::Riscv64 => "riscv",
41 Arch::Mips64el | Arch::Mips64 | Arch::Mipsel | Arch::Mips => "mips",
42 // sparc64 is unsupported since FreeBSD 13.0
43 Arch::Sparc64 => "sparc64",
44@@ -139,6 +141,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
45 Arch::S390X,
46 Arch::X86,
47 Arch::X86_64,
48+ Arch::Riscv32,
49 Arch::Riscv64,
50 Arch::Mips64el,
51 Arch::Mips64,
52@@ -158,6 +161,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
53 Arch::Powerpc64Le,
54 Arch::X86,
55 Arch::X86_64,
56+ Arch::Riscv32,
57 Arch::Riscv64,
58 Arch::Mips64el,
59 Arch::Mipsel,
60@@ -171,6 +175,7 @@ fn get_supported_architectures(os: &Os) -> Vec<Arch> {
61 Arch::Powerpc,
62 Arch::Powerpc64,
63 Arch::Powerpc64Le,
64+ Arch::Riscv32,
65 Arch::Riscv64,
66 Arch::Sparc64,
67 ],
68@@ -255,6 +260,7 @@ impl Target {
69 Architecture::Powerpc64le => Arch::Powerpc64Le,
70 Architecture::S390x => Arch::S390X,
71 Architecture::Wasm32 => Arch::Wasm32,
72+ Architecture::Riscv32(_) => Arch::Riscv32,
73 Architecture::Riscv64(_) => Arch::Riscv64,
74 Architecture::Mips64(mips64_arch) => match mips64_arch {
75 Mips64Architecture::Mips64el => Arch::Mips64el,
76@@ -343,6 +349,7 @@ impl Target {
77 Arch::X86_64 => "x86_64",
78 Arch::S390X => "s390x",
79 Arch::Wasm32 => "wasm32",
80+ Arch::Riscv32 => "riscv32",
81 Arch::Riscv64 => "riscv64",
82 // It's kinda surprising that Python doesn't include the `el` suffix
83 Arch::Mips64el | Arch::Mips64 => "mips64",
84@@ -388,6 +395,7 @@ impl Target {
85 }
86 Arch::Armv6L
87 | Arch::Wasm32
88+ | Arch::Riscv32
89 | Arch::Riscv64
90 | Arch::Mips64el
91 | Arch::Mips64
92@@ -418,6 +426,7 @@ impl Target {
93 | Arch::Wasm32
94 | Arch::Mipsel
95 | Arch::Mips
96+ | Arch::Riscv32
97 | Arch::Powerpc => 32,
98 }
99 }
100--
1012.44.0
102
diff --git a/meta/recipes-devtools/python/python3-maturin_1.4.0.bb b/meta/recipes-devtools/python/python3-maturin_1.5.1.bb
index ed19ee647a..96b046feba 100644
--- a/meta/recipes-devtools/python/python3-maturin_1.4.0.bb
+++ b/meta/recipes-devtools/python/python3-maturin_1.5.1.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT | Apache-2.0"
5LIC_FILES_CHKSUM = "file://license-apache;md5=1836efb2eb779966696f473ee8540542 \ 5LIC_FILES_CHKSUM = "file://license-apache;md5=1836efb2eb779966696f473ee8540542 \
6 file://license-mit;md5=85fd3b67069cff784d98ebfc7d5c0797" 6 file://license-mit;md5=85fd3b67069cff784d98ebfc7d5c0797"
7 7
8SRC_URI += "file://0001-Add-32-bit-RISC-V-support.patch" 8SRC_URI[sha256sum] = "3dd834ece80edb866af18cbd4635e0ecac40139c726428d5f1849ae154b26dca"
9SRC_URI[sha256sum] = "ed12e1768094a7adeafc3a74ebdb8dc2201fa64c4e7e31f14cfc70378bf93790"
10 9
11S = "${WORKDIR}/maturin-${PV}" 10S = "${WORKDIR}/maturin-${PV}"
12 11
diff --git a/meta/recipes-devtools/python/python3-pytest_8.1.1.bb b/meta/recipes-devtools/python/python3-pytest_8.2.0.bb
index b1cf23fbc4..1e6674079f 100644
--- a/meta/recipes-devtools/python/python3-pytest_8.1.1.bb
+++ b/meta/recipes-devtools/python/python3-pytest_8.2.0.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scal
5LICENSE = "MIT" 5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c"
7 7
8SRC_URI[sha256sum] = "ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044" 8SRC_URI[sha256sum] = "d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"
9 9
10DEPENDS += "python3-setuptools-scm-native" 10DEPENDS += "python3-setuptools-scm-native"
11 11
diff --git a/meta/recipes-devtools/python/python3_3.12.3.bb b/meta/recipes-devtools/python/python3_3.12.3.bb
index b49a58a101..04558a6463 100644
--- a/meta/recipes-devtools/python/python3_3.12.3.bb
+++ b/meta/recipes-devtools/python/python3_3.12.3.bb
@@ -157,7 +157,7 @@ do_compile:prepend() {
157} 157}
158 158
159do_install:prepend() { 159do_install:prepend() {
160 ${WORKDIR}/check_build_completeness.py ${T}/log.do_compile 160 ${UNPACKDIR}/check_build_completeness.py ${T}/log.do_compile
161} 161}
162 162
163do_install:append:class-target() { 163do_install:append:class-target() {
@@ -197,7 +197,7 @@ do_install:append:class-native() {
197 197
198do_install:append() { 198do_install:append() {
199 for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do 199 for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
200 python3 ${WORKDIR}/reformat_sysconfig.py $c 200 python3 ${UNPACKDIR}/reformat_sysconfig.py $c
201 done 201 done
202 rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython* 202 rm -f ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython*
203 203
@@ -284,7 +284,7 @@ py_package_preprocess () {
284 # Reformat _sysconfigdata after modifying it so that it remains 284 # Reformat _sysconfigdata after modifying it so that it remains
285 # reproducible 285 # reproducible
286 for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do 286 for c in ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
287 python3 ${WORKDIR}/reformat_sysconfig.py $c 287 python3 ${UNPACKDIR}/reformat_sysconfig.py $c
288 done 288 done
289 289
290 # Recompile _sysconfigdata after modifying it 290 # Recompile _sysconfigdata after modifying it
@@ -397,6 +397,7 @@ do_create_manifest() {
397 # e.g. BerkeleyDB is an optional build dependency so it may or may not 397 # e.g. BerkeleyDB is an optional build dependency so it may or may not
398 # be present, we must ensure it is. 398 # be present, we must ensure it is.
399 399
400 cp ${UNPACKDIR}/create_manifest3.py ${WORKDIR}
400 cd ${WORKDIR} 401 cd ${WORKDIR}
401 # This needs to be executed by python-native and NOT by HOST's python 402 # This needs to be executed by python-native and NOT by HOST's python
402 nativepython3 create_manifest3.py ${PYTHON_MAJMIN} 403 nativepython3 create_manifest3.py ${PYTHON_MAJMIN}
diff --git a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
index 5d40784201..997f72e6e7 100644
--- a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
+++ b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
@@ -28,6 +28,6 @@ do_compile() {
28 28
29do_install() { 29do_install() {
30 install -d ${D}${bindir} 30 install -d ${D}${bindir}
31 install -m 0755 ${WORKDIR}${COREBASE}/scripts/oe-* ${D}${bindir}/ 31 install -m 0755 ${S}${COREBASE}/scripts/oe-* ${D}${bindir}/
32 install -m 0755 ${WORKDIR}${COREBASE}/scripts/runqemu* ${D}${bindir}/ 32 install -m 0755 ${S}${COREBASE}/scripts/runqemu* ${D}${bindir}/
33} 33}
diff --git a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index 1dfce0e4c7..8bb6ef0995 100644
--- a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "Helper utilities needed by the runqemu script"
2LICENSE = "GPL-2.0-only" 2LICENSE = "GPL-2.0-only"
3RDEPENDS:${PN} = "qemu-system-native" 3RDEPENDS:${PN} = "qemu-system-native"
4 4
5LIC_FILES_CHKSUM = "file://${WORKDIR}/qemu-oe-bridge-helper.c;endline=4;md5=ae00a3bab86f2caaa8462eacda77f4d7" 5LIC_FILES_CHKSUM = "file://${S}/qemu-oe-bridge-helper.c;endline=4;md5=ae00a3bab86f2caaa8462eacda77f4d7"
6 6
7SRC_URI = "file://qemu-oe-bridge-helper.c" 7SRC_URI = "file://qemu-oe-bridge-helper.c"
8 8
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb b/meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb
index 0634b34242..5d2fbcbc02 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb
@@ -17,7 +17,7 @@ PACKAGECONFIG ??= "fdt alsa kvm pie slirp png \
17PACKAGECONFIG:remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" 17PACKAGECONFIG:remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
18 18
19do_install:append() { 19do_install:append() {
20 install -Dm 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu 20 install -Dm 0755 ${UNPACKDIR}/powerpc_rom.bin ${D}${datadir}/qemu
21 21
22 # The following is also installed by qemu-native 22 # The following is also installed by qemu-native
23 rm -f ${D}${datadir}/qemu/trace-events-all 23 rm -f ${D}${datadir}/qemu/trace-events-all
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 4501f84c2b..f76cbbb5cb 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -168,11 +168,11 @@ do_install () {
168 # If we built the guest agent, also install startup/udev rules 168 # If we built the guest agent, also install startup/udev rules
169 if [ -e "${D}${bindir}/qemu-ga" ]; then 169 if [ -e "${D}${bindir}/qemu-ga" ]; then
170 install -d ${D}${sysconfdir}/init.d/ 170 install -d ${D}${sysconfdir}/init.d/
171 install -m 0755 ${WORKDIR}/qemu-guest-agent.init ${D}${sysconfdir}/init.d/qemu-guest-agent 171 install -m 0755 ${UNPACKDIR}/qemu-guest-agent.init ${D}${sysconfdir}/init.d/qemu-guest-agent
172 sed -i 's:@bindir@:${bindir}:' ${D}${sysconfdir}/init.d/qemu-guest-agent 172 sed -i 's:@bindir@:${bindir}:' ${D}${sysconfdir}/init.d/qemu-guest-agent
173 173
174 install -d ${D}${sysconfdir}/udev/rules.d/ 174 install -d ${D}${sysconfdir}/udev/rules.d/
175 install -m 0644 ${WORKDIR}/qemu-guest-agent.udev ${D}${sysconfdir}/udev/rules.d/60-qemu-guest-agent.rules 175 install -m 0644 ${UNPACKDIR}/qemu-guest-agent.udev ${D}${sysconfdir}/udev/rules.d/60-qemu-guest-agent.rules
176 176
177 install -d ${D}${systemd_unitdir}/system/ 177 install -d ${D}${systemd_unitdir}/system/
178 install -m 0644 ${S}/contrib/systemd/qemu-guest-agent.service ${D}${systemd_unitdir}/system 178 install -m 0644 ${S}/contrib/systemd/qemu-guest-agent.service ${D}${systemd_unitdir}/system
diff --git a/meta/recipes-devtools/repo/repo_2.45.bb b/meta/recipes-devtools/repo/repo_2.45.bb
index 81bf31754b..dd12373e3a 100644
--- a/meta/recipes-devtools/repo/repo_2.45.bb
+++ b/meta/recipes-devtools/repo/repo_2.45.bb
@@ -22,7 +22,7 @@ do_configure:prepend() {
22} 22}
23 23
24do_install() { 24do_install() {
25 install -D ${WORKDIR}/git/repo ${D}${bindir}/repo 25 install -D ${S}/repo ${D}${bindir}/repo
26} 26}
27 27
28RDEPENDS:${PN} = "python3 git" 28RDEPENDS:${PN} = "python3 git"
diff --git a/meta/recipes-devtools/rsync/rsync_3.3.0.bb b/meta/recipes-devtools/rsync/rsync_3.3.0.bb
index b42026331d..a90d2887bd 100644
--- a/meta/recipes-devtools/rsync/rsync_3.3.0.bb
+++ b/meta/recipes-devtools/rsync/rsync_3.3.0.bb
@@ -61,7 +61,7 @@ do_configure:append () {
61 61
62do_install:append() { 62do_install:append() {
63 install -d ${D}${sysconfdir} 63 install -d ${D}${sysconfdir}
64 install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir} 64 install -m 0644 ${UNPACKDIR}/rsyncd.conf ${D}${sysconfdir}
65} 65}
66 66
67BBCLASSEXTEND = "native nativesdk" 67BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
index e977942de8..e3d63df852 100644
--- a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
+++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
@@ -29,13 +29,13 @@ do_compile () {
29 29
30do_install() { 30do_install() {
31 install -d ${D}${sbindir} 31 install -d ${D}${sbindir}
32 install -m 0755 ${WORKDIR}/run-postinsts ${D}${sbindir}/ 32 install -m 0755 ${S}/run-postinsts ${D}${sbindir}/
33 33
34 install -d ${D}${sysconfdir}/init.d/ 34 install -d ${D}${sysconfdir}/init.d/
35 install -m 0755 ${WORKDIR}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts 35 install -m 0755 ${S}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts
36 36
37 install -d ${D}${systemd_system_unitdir}/ 37 install -d ${D}${systemd_system_unitdir}/
38 install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_system_unitdir}/ 38 install -m 0644 ${S}/run-postinsts.service ${D}${systemd_system_unitdir}/
39 39
40 sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \ 40 sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \
41 -e 's:#SBINDIR#:${sbindir}:g' \ 41 -e 's:#SBINDIR#:${sbindir}:g' \
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc
index 7bfef6d175..f59fee7cdd 100644
--- a/meta/recipes-devtools/rust/rust-cross-canadian.inc
+++ b/meta/recipes-devtools/rust/rust-cross-canadian.inc
@@ -46,7 +46,7 @@ do_install () {
46 # where the context is easier to do the env maniupations needed 46 # where the context is easier to do the env maniupations needed
47 install -d ${SYS_BINDIR} 47 install -d ${SYS_BINDIR}
48 outfile="${SYS_BINDIR}/target-rust-ccld" 48 outfile="${SYS_BINDIR}/target-rust-ccld"
49 ${CC} ${WORKDIR}/target-rust-ccld.c -o $outfile 49 ${CC} ${S}/target-rust-ccld.c -o $outfile
50 chmod +x "$outfile" 50 chmod +x "$outfile"
51 create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld-wrapper" "CC" 51 create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld-wrapper" "CC"
52 52
diff --git a/meta/recipes-devtools/strace/strace_6.7.bb b/meta/recipes-devtools/strace/strace_6.8.bb
index f365477ccd..b22c57b45d 100644
--- a/meta/recipes-devtools/strace/strace_6.7.bb
+++ b/meta/recipes-devtools/strace/strace_6.8.bb
@@ -15,7 +15,7 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
15 file://0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch \ 15 file://0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch \
16 file://0002-tests-Replace-off64_t-with-off_t.patch \ 16 file://0002-tests-Replace-off64_t-with-off_t.patch \
17 " 17 "
18SRC_URI[sha256sum] = "2090201e1a3ff32846f4fe421c1163b15f440bb38e31355d09f82d3949922af7" 18SRC_URI[sha256sum] = "ba6950a96824cdf93a584fa04f0a733896d2a6bc5f0ad9ffe505d9b41e970149"
19 19
20inherit autotools ptest 20inherit autotools ptest
21 21
diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
index 59b9d7de78..214dd4b2a8 100644
--- a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
+++ b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
@@ -54,9 +54,9 @@ CFLAGS:append:loongarch64 = " ${LCL_STOP_SERVICES}"
54do_install() { 54do_install() {
55 oe_runmake install INSTALLROOT=${D} 55 oe_runmake install INSTALLROOT=${D}
56 install -d ${D}${sysconfdir}/init.d/ 56 install -d ${D}${sysconfdir}/init.d/
57 install -m 0755 ${WORKDIR}/tcf-agent.init ${D}${sysconfdir}/init.d/tcf-agent 57 install -m 0755 ${UNPACKDIR}/tcf-agent.init ${D}${sysconfdir}/init.d/tcf-agent
58 install -d ${D}${systemd_system_unitdir} 58 install -d ${D}${systemd_system_unitdir}
59 install -m 0644 ${WORKDIR}/tcf-agent.service ${D}${systemd_system_unitdir} 59 install -m 0644 ${UNPACKDIR}/tcf-agent.service ${D}${systemd_system_unitdir}
60 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/tcf-agent.service 60 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/tcf-agent.service
61} 61}
62 62
diff --git a/meta/recipes-extended/at/at_3.2.5.bb b/meta/recipes-extended/at/at_3.2.5.bb
index c0c876a644..0162548d33 100644
--- a/meta/recipes-extended/at/at_3.2.5.bb
+++ b/meta/recipes-extended/at/at_3.2.5.bb
@@ -55,22 +55,22 @@ SYSTEMD_SERVICE:${PN} = "atd.service"
55do_patch[postfuncs] += "copy_posix_files" 55do_patch[postfuncs] += "copy_posix_files"
56 56
57copy_posix_files() { 57copy_posix_files() {
58 cp -f ${WORKDIR}/posixtm.[ch] ${S} 58 cp -f ${UNPACKDIR}/posixtm.[ch] ${S}
59} 59}
60 60
61do_install () { 61do_install () {
62 oe_runmake -e "IROOT=${D}" install 62 oe_runmake -e "IROOT=${D}" install
63 63
64 install -d ${D}${sysconfdir}/init.d 64 install -d ${D}${sysconfdir}/init.d
65 install -m 0755 ${WORKDIR}/atd.init ${D}${sysconfdir}/init.d/atd 65 install -m 0755 ${UNPACKDIR}/atd.init ${D}${sysconfdir}/init.d/atd
66 66
67 # install systemd unit files 67 # install systemd unit files
68 install -d ${D}${systemd_system_unitdir} 68 install -d ${D}${systemd_system_unitdir}
69 install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_system_unitdir} 69 install -m 0644 ${UNPACKDIR}/atd.service ${D}${systemd_system_unitdir}
70 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/atd.service 70 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/atd.service
71 71
72 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 72 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
73 install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd 73 install -D -m 0644 ${UNPACKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd
74 fi 74 fi
75 rm -f ${D}${datadir}/at/batch-job 75 rm -f ${D}${datadir}/at/batch-job
76} 76}
diff --git a/meta/recipes-extended/bc/bc_1.07.1.bb b/meta/recipes-extended/bc/bc_1.07.1.bb
index 819da6cda6..74387c50ab 100644
--- a/meta/recipes-extended/bc/bc_1.07.1.bb
+++ b/meta/recipes-extended/bc/bc_1.07.1.bb
@@ -27,7 +27,7 @@ PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
27PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" 27PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
28 28
29do_compile:prepend() { 29do_compile:prepend() {
30 cp -f ${WORKDIR}/libmath.h ${B}/bc/libmath.h 30 cp -f ${UNPACKDIR}/libmath.h ${B}/bc/libmath.h
31} 31}
32 32
33do_install_ptest() { 33do_install_ptest() {
diff --git a/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch b/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
index 20572b55c4..35229ae890 100644
--- a/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
+++ b/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
@@ -303,7 +303,7 @@ index 9396e1d..d0bb181 100644
303+ PWDICT tmp_pwp; 303+ PWDICT tmp_pwp;
304+ 304+
305+ memcpy(&tmp_pwp, pwp, sizeof(PWDICT)); 305+ memcpy(&tmp_pwp, pwp, sizeof(PWDICT));
306+ HwmsHostToBigEndian(tmp_pwp.hwms, sizeof(tmp_pwp.hwms), en_is32); 306+ HwmsHostToBigEndian((char *)tmp_pwp.hwms, sizeof(tmp_pwp.hwms), en_is32);
307+ fwrite(tmp_pwp.hwms, 1, sizeof(tmp_pwp.hwms), pwp->wfp); 307+ fwrite(tmp_pwp.hwms, 1, sizeof(tmp_pwp.hwms), pwp->wfp);
308 } 308 }
309 } 309 }
diff --git a/meta/recipes-extended/cronie/cronie_1.7.2.bb b/meta/recipes-extended/cronie/cronie_1.7.2.bb
index abdaff644d..e4711fa31c 100644
--- a/meta/recipes-extended/cronie/cronie_1.7.2.bb
+++ b/meta/recipes-extended/cronie/cronie_1.7.2.bb
@@ -49,18 +49,18 @@ do_install:append () {
49 install -d ${D}${sysconfdir}/sysconfig/ 49 install -d ${D}${sysconfdir}/sysconfig/
50 install -d ${D}${sysconfdir}/init.d/ 50 install -d ${D}${sysconfdir}/init.d/
51 install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond 51 install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
52 install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond 52 install -m 0755 ${UNPACKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
53 53
54 # install systemd unit files 54 # install systemd unit files
55 install -d ${D}${systemd_system_unitdir} 55 install -d ${D}${systemd_system_unitdir}
56 install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_system_unitdir} 56 install -m 0644 ${UNPACKDIR}/crond.service ${D}${systemd_system_unitdir}
57 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ 57 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
58 -e 's,@SBINDIR@,${sbindir},g' \ 58 -e 's,@SBINDIR@,${sbindir},g' \
59 ${D}${systemd_system_unitdir}/crond.service 59 ${D}${systemd_system_unitdir}/crond.service
60 60
61 # below are necessary for a complete cron environment 61 # below are necessary for a complete cron environment
62 install -d ${D}${localstatedir}/spool/cron 62 install -d ${D}${localstatedir}/spool/cron
63 install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/ 63 install -m 0755 ${UNPACKDIR}/crontab ${D}${sysconfdir}/
64 mkdir -p ${D}${sysconfdir}/cron.d 64 mkdir -p ${D}${sysconfdir}/cron.d
65 mkdir -p ${D}${sysconfdir}/cron.hourly 65 mkdir -p ${D}${sysconfdir}/cron.hourly
66 mkdir -p ${D}${sysconfdir}/cron.daily 66 mkdir -p ${D}${sysconfdir}/cron.daily
diff --git a/meta/recipes-extended/cups/cups.inc b/meta/recipes-extended/cups/cups.inc
index b70ba3ae58..9688efafae 100644
--- a/meta/recipes-extended/cups/cups.inc
+++ b/meta/recipes-extended/cups/cups.inc
@@ -84,11 +84,11 @@ do_install () {
84 rm -rf ${D}${sysconfdir}/init.d/ 84 rm -rf ${D}${sysconfdir}/init.d/
85 rm -rf ${D}${sysconfdir}/rc* 85 rm -rf ${D}${sysconfdir}/rc*
86 install -d ${D}${sysconfdir}/tmpfiles.d 86 install -d ${D}${sysconfdir}/tmpfiles.d
87 install -m 0644 ${WORKDIR}/cups-volatiles.conf \ 87 install -m 0644 ${UNPACKDIR}/cups-volatiles.conf \
88 ${D}${sysconfdir}/tmpfiles.d/cups.conf 88 ${D}${sysconfdir}/tmpfiles.d/cups.conf
89 else 89 else
90 install -d ${D}${sysconfdir}/default/volatiles 90 install -d ${D}${sysconfdir}/default/volatiles
91 install -m 0644 ${WORKDIR}/volatiles.99_cups \ 91 install -m 0644 ${UNPACKDIR}/volatiles.99_cups \
92 ${D}${sysconfdir}/default/volatiles/99_cups 92 ${D}${sysconfdir}/default/volatiles/99_cups
93 fi 93 fi
94} 94}
diff --git a/meta/recipes-extended/iptables/iptables_1.8.10.bb b/meta/recipes-extended/iptables/iptables_1.8.10.bb
index cd2f3bce0b..5a87897742 100644
--- a/meta/recipes-extended/iptables/iptables_1.8.10.bb
+++ b/meta/recipes-extended/iptables/iptables_1.8.10.bb
@@ -52,10 +52,10 @@ IPTABLES_RULES_DIR ?= "${sysconfdir}/${BPN}"
52 52
53do_install:append() { 53do_install:append() {
54 install -d ${D}${IPTABLES_RULES_DIR} 54 install -d ${D}${IPTABLES_RULES_DIR}
55 install -m 0644 ${WORKDIR}/iptables.rules ${D}${IPTABLES_RULES_DIR} 55 install -m 0644 ${UNPACKDIR}/iptables.rules ${D}${IPTABLES_RULES_DIR}
56 56
57 install -d ${D}${systemd_system_unitdir} 57 install -d ${D}${systemd_system_unitdir}
58 install -m 0644 ${WORKDIR}/iptables.service ${D}${systemd_system_unitdir} 58 install -m 0644 ${UNPACKDIR}/iptables.service ${D}${systemd_system_unitdir}
59 59
60 sed -i \ 60 sed -i \
61 -e 's,@SBINDIR@,${sbindir},g' \ 61 -e 's,@SBINDIR@,${sbindir},g' \
@@ -63,8 +63,8 @@ do_install:append() {
63 ${D}${systemd_system_unitdir}/iptables.service 63 ${D}${systemd_system_unitdir}/iptables.service
64 64
65 if ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', 'true', 'false', d)} ; then 65 if ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', 'true', 'false', d)} ; then
66 install -m 0644 ${WORKDIR}/ip6tables.rules ${D}${IPTABLES_RULES_DIR} 66 install -m 0644 ${UNPACKDIR}/ip6tables.rules ${D}${IPTABLES_RULES_DIR}
67 install -m 0644 ${WORKDIR}/ip6tables.service ${D}${systemd_system_unitdir} 67 install -m 0644 ${UNPACKDIR}/ip6tables.service ${D}${systemd_system_unitdir}
68 68
69 sed -i \ 69 sed -i \
70 -e 's,@SBINDIR@,${sbindir},g' \ 70 -e 's,@SBINDIR@,${sbindir},g' \
diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.76.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.76.bb
index f0fdda4190..153f451ea7 100644
--- a/meta/recipes-extended/lighttpd/lighttpd_1.4.76.bb
+++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.76.bb
@@ -47,9 +47,9 @@ SYSTEMD_SERVICE:${PN} = "lighttpd.service"
47 47
48do_install:append() { 48do_install:append() {
49 install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav 49 install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
50 install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d 50 install -m 0755 ${UNPACKDIR}/lighttpd ${D}${sysconfdir}/init.d
51 install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}/lighttpd 51 install -m 0644 ${UNPACKDIR}/lighttpd.conf ${D}${sysconfdir}/lighttpd
52 install -m 0644 ${WORKDIR}/index.html.lighttpd ${D}/www/pages/index.html 52 install -m 0644 ${UNPACKDIR}/index.html.lighttpd ${D}/www/pages/index.html
53 53
54 install -d ${D}${systemd_system_unitdir} 54 install -d ${D}${systemd_system_unitdir}
55 install -m 0644 ${S}/doc/systemd/lighttpd.service ${D}${systemd_system_unitdir} 55 install -m 0644 ${S}/doc/systemd/lighttpd.service ${D}${systemd_system_unitdir}
diff --git a/meta/recipes-extended/ltp/ltp_20240129.bb b/meta/recipes-extended/ltp/ltp_20240129.bb
index 3e896957d1..e88e931a68 100644
--- a/meta/recipes-extended/ltp/ltp_20240129.bb
+++ b/meta/recipes-extended/ltp/ltp_20240129.bb
@@ -98,6 +98,7 @@ RDEPENDS:${PN} = "\
98 gdb \ 98 gdb \
99 gzip \ 99 gzip \
100 iproute2 \ 100 iproute2 \
101 ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'iputils-ping6', '', d)} \
101 ldd \ 102 ldd \
102 libaio \ 103 libaio \
103 logrotate \ 104 logrotate \
diff --git a/meta/recipes-extended/man-db/man-db_2.12.1.bb b/meta/recipes-extended/man-db/man-db_2.12.1.bb
index 27b47a7f47..5c6797c8f1 100644
--- a/meta/recipes-extended/man-db/man-db_2.12.1.bb
+++ b/meta/recipes-extended/man-db/man-db_2.12.1.bb
@@ -37,7 +37,7 @@ do_install() {
37 37
38 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 38 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
39 install -d ${D}/etc/default/volatiles 39 install -d ${D}/etc/default/volatiles
40 install -m 0644 ${WORKDIR}/99_mandb ${D}/etc/default/volatiles 40 install -m 0644 ${UNPACKDIR}/99_mandb ${D}/etc/default/volatiles
41 fi 41 fi
42} 42}
43 43
diff --git a/meta/recipes-extended/mdadm/mdadm_4.3.bb b/meta/recipes-extended/mdadm/mdadm_4.3.bb
index 228fc6f84e..63c61b68c9 100644
--- a/meta/recipes-extended/mdadm/mdadm_4.3.bb
+++ b/meta/recipes-extended/mdadm/mdadm_4.3.bb
@@ -61,7 +61,7 @@ do_install:append() {
61 install -d ${D}/${sysconfdir}/ 61 install -d ${D}/${sysconfdir}/
62 install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf 62 install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf
63 install -d ${D}/${sysconfdir}/init.d 63 install -d ${D}/${sysconfdir}/init.d
64 install -m 755 ${WORKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor 64 install -m 755 ${UNPACKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor
65} 65}
66 66
67do_install:append() { 67do_install:append() {
diff --git a/meta/recipes-extended/pam/libpam_1.6.1.bb b/meta/recipes-extended/pam/libpam_1.6.1.bb
index 849f485f75..9f2106ea73 100644
--- a/meta/recipes-extended/pam/libpam_1.6.1.bb
+++ b/meta/recipes-extended/pam/libpam_1.6.1.bb
@@ -138,16 +138,16 @@ do_install() {
138 rm -rf ${D}${sysconfdir}/init.d/ 138 rm -rf ${D}${sysconfdir}/init.d/
139 rm -rf ${D}${sysconfdir}/rc* 139 rm -rf ${D}${sysconfdir}/rc*
140 install -d ${D}${nonarch_libdir}/tmpfiles.d 140 install -d ${D}${nonarch_libdir}/tmpfiles.d
141 install -m 0644 ${WORKDIR}/pam-volatiles.conf \ 141 install -m 0644 ${UNPACKDIR}/pam-volatiles.conf \
142 ${D}${nonarch_libdir}/tmpfiles.d/pam.conf 142 ${D}${nonarch_libdir}/tmpfiles.d/pam.conf
143 else 143 else
144 install -d ${D}${sysconfdir}/default/volatiles 144 install -d ${D}${sysconfdir}/default/volatiles
145 install -m 0644 ${WORKDIR}/99_pam \ 145 install -m 0644 ${UNPACKDIR}/99_pam \
146 ${D}${sysconfdir}/default/volatiles/ 146 ${D}${sysconfdir}/default/volatiles/
147 fi 147 fi
148 148
149 install -d ${D}${sysconfdir}/pam.d/ 149 install -d ${D}${sysconfdir}/pam.d/
150 install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/ 150 install -m 0644 ${UNPACKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
151 151
152 # The lsb requires unix_chkpwd has setuid permission 152 # The lsb requires unix_chkpwd has setuid permission
153 chmod 4755 ${D}${sbindir}/unix_chkpwd 153 chmod 4755 ${D}${sbindir}/unix_chkpwd
diff --git a/meta/recipes-extended/procps/procps_4.0.4.bb b/meta/recipes-extended/procps/procps_4.0.4.bb
index 800384f22f..789e0c2747 100644
--- a/meta/recipes-extended/procps/procps_4.0.4.bb
+++ b/meta/recipes-extended/procps/procps_4.0.4.bb
@@ -41,7 +41,7 @@ do_install:append () {
41 fi 41 fi
42 42
43 install -d ${D}${sysconfdir} 43 install -d ${D}${sysconfdir}
44 install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf 44 install -m 0644 ${UNPACKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
45 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 45 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
46 install -d ${D}${sysconfdir}/sysctl.d 46 install -d ${D}${sysconfdir}/sysctl.d
47 ln -sf ../sysctl.conf ${D}${sysconfdir}/sysctl.d/99-sysctl.conf 47 ln -sf ../sysctl.conf ${D}${sysconfdir}/sysctl.d/99-sysctl.conf
diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
index dbd4d32e0a..e751eb631c 100644
--- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
+++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
@@ -46,9 +46,9 @@ do_install:append () {
46 install -d ${D}${sysconfdir}/init.d 46 install -d ${D}${sysconfdir}/init.d
47 sed -e 's,/etc/,${sysconfdir}/,g' \ 47 sed -e 's,/etc/,${sysconfdir}/,g' \
48 -e 's,/sbin/,${sbindir}/,g' \ 48 -e 's,/sbin/,${sbindir}/,g' \
49 ${WORKDIR}/init.d > ${D}${sysconfdir}/init.d/rpcbind 49 ${UNPACKDIR}/init.d > ${D}${sysconfdir}/init.d/rpcbind
50 chmod 0755 ${D}${sysconfdir}/init.d/rpcbind 50 chmod 0755 ${D}${sysconfdir}/init.d/rpcbind
51 install -m 0644 ${WORKDIR}/rpcbind.conf ${D}${sysconfdir}/rpcbind.conf 51 install -m 0644 ${UNPACKDIR}/rpcbind.conf ${D}${sysconfdir}/rpcbind.conf
52} 52}
53 53
54ALTERNATIVE:${PN} = "rpcinfo" 54ALTERNATIVE:${PN} = "rpcinfo"
diff --git a/meta/recipes-extended/screen/screen_4.9.1.bb b/meta/recipes-extended/screen/screen_4.9.1.bb
index 7b040e6b57..57d1481049 100644
--- a/meta/recipes-extended/screen/screen_4.9.1.bb
+++ b/meta/recipes-extended/screen/screen_4.9.1.bb
@@ -36,7 +36,7 @@ EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 --with-sys-screenrc=${sy
36do_install:append () { 36do_install:append () {
37 install -D -m 644 ${S}/etc/etcscreenrc ${D}/${sysconfdir}/screenrc 37 install -D -m 644 ${S}/etc/etcscreenrc ${D}/${sysconfdir}/screenrc
38 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 38 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
39 install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen 39 install -D -m 644 ${UNPACKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen
40 fi 40 fi
41} 41}
42 42
diff --git a/meta/recipes-extended/shadow/shadow-securetty_4.6.bb b/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
index fe51ea1874..85c04b6af1 100644
--- a/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
@@ -17,7 +17,7 @@ do_install () {
17 # Ensure we add a suitable securetty file to the package that has 17 # Ensure we add a suitable securetty file to the package that has
18 # most common embedded TTYs defined. 18 # most common embedded TTYs defined.
19 install -d ${D}${sysconfdir} 19 install -d ${D}${sysconfdir}
20 install -m 0400 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty 20 install -m 0400 ${S}/securetty ${D}${sysconfdir}/securetty
21 if [ ! -z "${SERIAL_CONSOLES}" ]; then 21 if [ ! -z "${SERIAL_CONSOLES}" ]; then
22 # Our SERIAL_CONSOLES contains a baud rate and sometimes extra 22 # Our SERIAL_CONSOLES contains a baud rate and sometimes extra
23 # options as well. The following pearl :) takes that and converts 23 # options as well. The following pearl :) takes that and converts
diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
index c15715fc77..25930b64c1 100644
--- a/meta/recipes-extended/shadow/shadow.inc
+++ b/meta/recipes-extended/shadow/shadow.inc
@@ -111,7 +111,7 @@ do_install() {
111 sed -i 's/^#ENCRYPT_METHOD.*$/ENCRYPT_METHOD SHA512/' ${D}${sysconfdir}/login.defs 111 sed -i 's/^#ENCRYPT_METHOD.*$/ENCRYPT_METHOD SHA512/' ${D}${sysconfdir}/login.defs
112 112
113 install -d ${D}${sysconfdir}/default 113 install -d ${D}${sysconfdir}/default
114 install -m 0644 ${WORKDIR}/useradd ${D}${sysconfdir}/default 114 install -m 0644 ${UNPACKDIR}/useradd ${D}${sysconfdir}/default
115} 115}
116 116
117do_install:append() { 117do_install:append() {
@@ -121,11 +121,11 @@ do_install:append() {
121 install -m 0775 -d ${D}${localstatedir}/spool/mail 121 install -m 0775 -d ${D}${localstatedir}/spool/mail
122 chown root:mail ${D}${localstatedir}/spool/mail 122 chown root:mail ${D}${localstatedir}/spool/mail
123 123
124 if [ -e ${WORKDIR}/pam.d ]; then 124 if [ -e ${UNPACKDIR}/pam.d ]; then
125 install -d ${D}${sysconfdir}/pam.d/ 125 install -d ${D}${sysconfdir}/pam.d/
126 install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/ 126 install -m 0644 ${UNPACKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
127 # Remove defaults that are not used when supporting PAM. 127 # Remove defaults that are not used when supporting PAM.
128 sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs 128 sed -i -f ${UNPACKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs
129 fi 129 fi
130 130
131 install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir} 131 install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir}
diff --git a/meta/recipes-extended/sudo/sudo_1.9.15p5.bb b/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
index 8e542015ad..2fd2ae6d05 100644
--- a/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
+++ b/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
@@ -30,7 +30,7 @@ EXTRA_OECONF += " \
30 30
31do_install:append () { 31do_install:append () {
32 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 32 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
33 install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo 33 install -D -m 644 ${UNPACKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo
34 if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then 34 if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then
35 echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo 35 echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo
36 sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers 36 sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers
diff --git a/meta/recipes-extended/sysklogd/sysklogd_2.5.2.bb b/meta/recipes-extended/sysklogd/sysklogd_2.5.2.bb
index c9c9055142..e488603086 100644
--- a/meta/recipes-extended/sysklogd/sysklogd_2.5.2.bb
+++ b/meta/recipes-extended/sysklogd/sysklogd_2.5.2.bb
@@ -24,7 +24,7 @@ do_install:append () {
24 install -d ${D}${sysconfdir} 24 install -d ${D}${sysconfdir}
25 install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf 25 install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf
26 install -d ${D}${sysconfdir}/init.d 26 install -d ${D}${sysconfdir}/init.d
27 install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog 27 install -m 755 ${UNPACKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
28} 28}
29 29
30SYSTEMD_PACKAGES = "${PN}" 30SYSTEMD_PACKAGES = "${PN}"
diff --git a/meta/recipes-extended/sysstat/sysstat_12.7.5.bb b/meta/recipes-extended/sysstat/sysstat_12.7.5.bb
index 150f4932d8..d598d5366f 100644
--- a/meta/recipes-extended/sysstat/sysstat_12.7.5.bb
+++ b/meta/recipes-extended/sysstat/sysstat_12.7.5.bb
@@ -45,7 +45,7 @@ do_install() {
45 rm -rf ${D}/var 45 rm -rf ${D}/var
46 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 46 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
47 install -d ${D}/etc/default/volatiles 47 install -d ${D}/etc/default/volatiles
48 install -m 0644 ${WORKDIR}/99_sysstat ${D}/etc/default/volatiles 48 install -m 0644 ${UNPACKDIR}/99_sysstat ${D}/etc/default/volatiles
49 fi 49 fi
50 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 50 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
51 install -d ${D}${nonarch_libdir}/tmpfiles.d 51 install -d ${D}${nonarch_libdir}/tmpfiles.d
@@ -56,7 +56,7 @@ do_install() {
56 # systemd unit file. Otherwise the package will install one. 56 # systemd unit file. Otherwise the package will install one.
57 if ${@bb.utils.contains('PACKAGECONFIG', 'cron systemd', 'false', 'true', d)}; then 57 if ${@bb.utils.contains('PACKAGECONFIG', 'cron systemd', 'false', 'true', d)}; then
58 install -d ${D}${systemd_system_unitdir} 58 install -d ${D}${systemd_system_unitdir}
59 install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_system_unitdir} 59 install -m 0644 ${UNPACKDIR}/sysstat.service ${D}${systemd_system_unitdir}
60 sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_system_unitdir}/sysstat.service 60 sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_system_unitdir}/sysstat.service
61 fi 61 fi
62 fi 62 fi
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index bcd1d6f792..8cf927153f 100644
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -120,8 +120,8 @@ do_install () {
120 install -m 0644 $m.8 ${D}${mandir}/man8/ || exit 1 120 install -m 0644 $m.8 ${D}${mandir}/man8/ || exit 1
121 done 121 done
122 122
123 install -m 0644 ${WORKDIR}/try-from.8 ${D}${mandir}/man8/ 123 install -m 0644 ${UNPACKDIR}/try-from.8 ${D}${mandir}/man8/
124 install -m 0644 ${WORKDIR}/safe_finger.8 ${D}${mandir}/man8/ 124 install -m 0644 ${UNPACKDIR}/safe_finger.8 ${D}${mandir}/man8/
125 125
126 install -d ${D}${includedir} 126 install -d ${D}${includedir}
127 install -m 0644 tcpd.h ${D}${includedir}/ 127 install -m 0644 tcpd.h ${D}${includedir}/
diff --git a/meta/recipes-extended/watchdog/watchdog-config.bb b/meta/recipes-extended/watchdog/watchdog-config.bb
index f138952128..e826a7d4a6 100644
--- a/meta/recipes-extended/watchdog/watchdog-config.bb
+++ b/meta/recipes-extended/watchdog/watchdog-config.bb
@@ -17,8 +17,8 @@ SRC_URI = " \
17WATCHDOG_TIMEOUT ??= "" 17WATCHDOG_TIMEOUT ??= ""
18 18
19do_install() { 19do_install() {
20 install -Dm 0644 ${WORKDIR}/watchdog.default ${D}${sysconfdir}/default/watchdog 20 install -Dm 0644 ${UNPACKDIR}/watchdog.default ${D}${sysconfdir}/default/watchdog
21 install -Dm 0644 ${WORKDIR}/watchdog.conf ${D}${sysconfdir}/watchdog.conf 21 install -Dm 0644 ${UNPACKDIR}/watchdog.conf ${D}${sysconfdir}/watchdog.conf
22 22
23 if [ -n "${WATCHDOG_TIMEOUT}" ]; then 23 if [ -n "${WATCHDOG_TIMEOUT}" ]; then
24 echo "watchdog-timeout = ${WATCHDOG_TIMEOUT}" >> ${D}/etc/watchdog.conf 24 echo "watchdog-timeout = ${WATCHDOG_TIMEOUT}" >> ${D}/etc/watchdog.conf
diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 5325ccafda..c88ea08ade 100644
--- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
+++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -50,8 +50,8 @@ do_install:append() {
50 install -m 0644 ${S}/debian/watchdog.service ${D}${systemd_system_unitdir} 50 install -m 0644 ${S}/debian/watchdog.service ${D}${systemd_system_unitdir}
51 install -m 0644 ${S}/debian/wd_keepalive.service ${D}${systemd_system_unitdir} 51 install -m 0644 ${S}/debian/wd_keepalive.service ${D}${systemd_system_unitdir}
52 52
53 install -Dm 0755 ${WORKDIR}/watchdog.init ${D}/${sysconfdir}/init.d/watchdog 53 install -Dm 0755 ${UNPACKDIR}/watchdog.init ${D}/${sysconfdir}/init.d/watchdog
54 install -Dm 0755 ${WORKDIR}/wd_keepalive.init ${D}${sysconfdir}/init.d/wd_keepalive 54 install -Dm 0755 ${UNPACKDIR}/wd_keepalive.init ${D}${sysconfdir}/init.d/wd_keepalive
55 55
56 # watchdog.conf is provided by the watchdog-config recipe 56 # watchdog.conf is provided by the watchdog-config recipe
57 rm ${D}${sysconfdir}/watchdog.conf 57 rm ${D}${sysconfdir}/watchdog.conf
diff --git a/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
index 72eb1ae067..897747379b 100644
--- a/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -37,12 +37,12 @@ CONFFILES:${PN} = "${sysconfdir}/xinetd.conf"
37do_install:append() { 37do_install:append() {
38 install -d "${D}${sysconfdir}/init.d" 38 install -d "${D}${sysconfdir}/init.d"
39 install -d "${D}${sysconfdir}/default" 39 install -d "${D}${sysconfdir}/default"
40 install -m 755 "${WORKDIR}/xinetd.init" "${D}${sysconfdir}/init.d/xinetd" 40 install -m 755 "${UNPACKDIR}/xinetd.init" "${D}${sysconfdir}/init.d/xinetd"
41 install -m 644 "${WORKDIR}/xinetd.default" "${D}${sysconfdir}/default/xinetd" 41 install -m 644 "${UNPACKDIR}/xinetd.default" "${D}${sysconfdir}/default/xinetd"
42 42
43 # Install systemd unit files 43 # Install systemd unit files
44 install -d ${D}${systemd_system_unitdir} 44 install -d ${D}${systemd_system_unitdir}
45 install -m 0644 ${WORKDIR}/xinetd.service ${D}${systemd_system_unitdir} 45 install -m 0644 ${UNPACKDIR}/xinetd.service ${D}${systemd_system_unitdir}
46 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ 46 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
47 -e 's,@SBINDIR@,${sbindir},g' \ 47 -e 's,@SBINDIR@,${sbindir},g' \
48 ${D}${systemd_system_unitdir}/xinetd.service 48 ${D}${systemd_system_unitdir}/xinetd.service
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index c9e1afffd0..510bc426d1 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
1From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001 1From 4e1aa0ddbc43403ff24f644b4c4912b737290c41 Mon Sep 17 00:00:00 2001
2From: Sascha Silbe <x-yo17@se-silbe.de> 2From: Sascha Silbe <x-yo17@se-silbe.de>
3Date: Fri, 8 Jun 2018 13:55:10 +0200 3Date: Fri, 8 Jun 2018 13:55:10 +0200
4Subject: [PATCH] Relocate the repository directory for native builds 4Subject: [PATCH] Relocate the repository directory for native builds
@@ -14,14 +14,13 @@ cache or sstate mirror).
14 14
15Upstream-Status: Inappropriate 15Upstream-Status: Inappropriate
16Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de> 16Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
17
18--- 17---
19 girepository/girepository.c | 15 +++++++++++++-- 18 girepository/girepository.c | 15 +++++++++++++--
20 girepository/meson.build | 2 +- 19 girepository/meson.build | 2 +-
21 2 files changed, 14 insertions(+), 3 deletions(-) 20 2 files changed, 14 insertions(+), 3 deletions(-)
22 21
23diff --git a/girepository/girepository.c b/girepository/girepository.c 22diff --git a/girepository/girepository.c b/girepository/girepository.c
24index a0754f4..2d456f9 100644 23index 12eaf36..876382c 100644
25--- a/girepository/girepository.c 24--- a/girepository/girepository.c
26+++ b/girepository/girepository.c 25+++ b/girepository/girepository.c
27@@ -21,6 +21,8 @@ 26@@ -21,6 +21,8 @@
@@ -42,7 +41,7 @@ index a0754f4..2d456f9 100644
42 /** 41 /**
43 * SECTION:girepository 42 * SECTION:girepository
44 * @short_description: GObject Introspection repository manager 43 * @short_description: GObject Introspection repository manager
45@@ -215,9 +219,16 @@ init_globals (void) 44@@ -222,9 +226,16 @@ init_globals (void)
46 g_free (custom_dirs); 45 g_free (custom_dirs);
47 } 46 }
48 47
@@ -62,10 +61,10 @@ index a0754f4..2d456f9 100644
62 typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); 61 typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
63 62
64diff --git a/girepository/meson.build b/girepository/meson.build 63diff --git a/girepository/meson.build b/girepository/meson.build
65index 786749a..15cf2a9 100644 64index 5ced59e..a580d9b 100644
66--- a/girepository/meson.build 65--- a/girepository/meson.build
67+++ b/girepository/meson.build 66+++ b/girepository/meson.build
68@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals', 67@@ -47,7 +47,7 @@ girepo_internals_lib = static_library('girepository-internals',
69 ], 68 ],
70 c_args: gi_hidden_visibility_cflags + custom_c_args, 69 c_args: gi_hidden_visibility_cflags + custom_c_args,
71 include_directories : configinc, 70 include_directories : configinc,
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
index 05a08a50e0..582ac248fd 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
16SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ 16SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
17 " 17 "
18 18
19SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4" 19SRC_URI[sha256sum] = "a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8"
20 20
21SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" 21SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
22 22
@@ -26,7 +26,9 @@ GTKDOC_MESON_OPTION = "gtk_doc"
26 26
27MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" 27MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
28 28
29DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native" 29DEPENDS += " libffi zlib python3 flex-native bison-native"
30DEPENDS:append:class-native = " glib-2.0"
31DEPENDS:append:class-target = " glib-2.0-initial"
30 32
31# target build needs qemu to run temporary introspection binaries created 33# target build needs qemu to run temporary introspection binaries created
32# on the fly by g-ir-scanner and a native version of itself to run 34# on the fly by g-ir-scanner and a native version of itself to run
@@ -189,6 +191,6 @@ FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
189FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" 191FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
190 192
191# setuptools can be removed when upstream removes all uses of distutils 193# setuptools can be removed when upstream removes all uses of distutils
192RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools" 194RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools glib-2.0"
193 195
194BBCLASSEXTEND = "native" 196BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb
index 880d4ed666..c8b6f07ed0 100644
--- a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb
@@ -34,5 +34,5 @@ EXTRA_OECONF = " --enable-startup-notification \
34 --with-expat-includes=${STAGING_INCDIR}" 34 --with-expat-includes=${STAGING_INCDIR}"
35 35
36do_install:prepend() { 36do_install:prepend() {
37 install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig 37 install ${UNPACKDIR}/kbdconfig ${S}/data/kbdconfig
38} 38}
diff --git a/meta/recipes-graphics/mesa/mesa-gl_24.0.3.bb b/meta/recipes-graphics/mesa/mesa-gl_24.0.5.bb
index ca160f1bfc..ca160f1bfc 100644
--- a/meta/recipes-graphics/mesa/mesa-gl_24.0.3.bb
+++ b/meta/recipes-graphics/mesa/mesa-gl_24.0.5.bb
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 1c9fa66c72..77e9c80fcb 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -22,7 +22,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
22 file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \ 22 file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \
23" 23"
24 24
25SRC_URI[sha256sum] = "77aec9a2a37b7d3596ea1640b3cc53d0b5d9b3b52abed89de07e3717e91bfdbe" 25SRC_URI[sha256sum] = "38cc245ca8faa3c69da6d2687f8906377001f63365348a62cc6f7fafb1e8c018"
26 26
27UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" 27UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
28 28
diff --git a/meta/recipes-graphics/mesa/mesa_24.0.3.bb b/meta/recipes-graphics/mesa/mesa_24.0.5.bb
index 96e8aa38d6..96e8aa38d6 100644
--- a/meta/recipes-graphics/mesa/mesa_24.0.3.bb
+++ b/meta/recipes-graphics/mesa/mesa_24.0.5.bb
diff --git a/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb b/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb
index b7fdc0d399..584a19a42a 100644
--- a/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb
+++ b/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb
@@ -26,7 +26,7 @@ do_install () {
26 done 26 done
27 27
28 install -d ${D}${sysconfdir}/fonts/conf.d/ 28 install -d ${D}${sysconfdir}/fonts/conf.d/
29 install -m 0644 ${WORKDIR}/30-liberation-aliases.conf ${D}${sysconfdir}/fonts/conf.d/ 29 install -m 0644 ${UNPACKDIR}/30-liberation-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
30 30
31 install -d ${D}${prefix}/share/doc/${BPN}/ 31 install -d ${D}${prefix}/share/doc/${BPN}/
32 install -m 0644 LICENSE ${D}${datadir}/doc/${BPN}/ 32 install -m 0644 LICENSE ${D}${datadir}/doc/${BPN}/
diff --git a/meta/recipes-graphics/wayland/libinput_1.25.0.bb b/meta/recipes-graphics/wayland/libinput_1.25.0.bb
index 517b247fed..894858e361 100644
--- a/meta/recipes-graphics/wayland/libinput_1.25.0.bb
+++ b/meta/recipes-graphics/wayland/libinput_1.25.0.bb
@@ -32,7 +32,7 @@ do_configure:append() {
32 32
33PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 33PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
34PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" 34PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom"
35PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" 35PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3 wayland-native"
36PACKAGECONFIG[tests] = "-Dtests=true -Dinstall-tests=true,-Dtests=false -Dinstall-tests=false,libcheck" 36PACKAGECONFIG[tests] = "-Dtests=true -Dinstall-tests=true,-Dtests=false -Dinstall-tests=false,libcheck"
37 37
38UDEVDIR = "`pkg-config --variable=udevdir udev`" 38UDEVDIR = "`pkg-config --variable=udevdir udev`"
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb
index 024e400665..ca3d1478dc 100644
--- a/meta/recipes-graphics/wayland/weston-init.bb
+++ b/meta/recipes-graphics/wayland/weston-init.bb
@@ -29,18 +29,18 @@ DEFAULTBACKEND:qemuall ?= "drm"
29do_install() { 29do_install() {
30 # Install weston-start script 30 # Install weston-start script
31 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then 31 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
32 install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start 32 install -Dm755 ${S}/weston-start ${D}${bindir}/weston-start
33 sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start 33 sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
34 sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start 34 sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
35 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston 35 install -Dm755 ${S}/init ${D}/${sysconfdir}/init.d/weston
36 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston 36 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston
37 fi 37 fi
38 38
39 # Install Weston systemd service 39 # Install Weston systemd service
40 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 40 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
41 install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service 41 install -D -p -m0644 ${S}/weston.service ${D}${systemd_system_unitdir}/weston.service
42 install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket 42 install -D -p -m0644 ${S}/weston.socket ${D}${systemd_system_unitdir}/weston.socket
43 install -D -p -m0644 ${WORKDIR}/weston-socket.sh ${D}${sysconfdir}/profile.d/weston-socket.sh 43 install -D -p -m0644 ${S}/weston-socket.sh ${D}${sysconfdir}/profile.d/weston-socket.sh
44 sed -i -e s:/etc:${sysconfdir}:g \ 44 sed -i -e s:/etc:${sysconfdir}:g \
45 -e s:/usr/bin:${bindir}:g \ 45 -e s:/usr/bin:${bindir}:g \
46 -e s:/var:${localstatedir}:g \ 46 -e s:/var:${localstatedir}:g \
@@ -48,11 +48,11 @@ do_install() {
48 fi 48 fi
49 49
50 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then 50 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
51 install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin 51 install -D -p -m0644 ${S}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin
52 fi 52 fi
53 53
54 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini 54 install -D -p -m0644 ${S}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
55 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston 55 install -Dm644 ${S}/weston.env ${D}${sysconfdir}/default/weston
56 56
57 if [ -n "${DEFAULTBACKEND}" ]; then 57 if [ -n "${DEFAULTBACKEND}" ]; then
58 sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini 58 sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini
diff --git a/meta/recipes-graphics/wayland/weston_13.0.0.bb b/meta/recipes-graphics/wayland/weston_13.0.0.bb
index b728bd0ef3..798cf6f19c 100644
--- a/meta/recipes-graphics/wayland/weston_13.0.0.bb
+++ b/meta/recipes-graphics/wayland/weston_13.0.0.bb
@@ -105,18 +105,18 @@ do_install:append() {
105 # If X11, ship a desktop file to launch it 105 # If X11, ship a desktop file to launch it
106 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then 106 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then
107 install -d ${D}${datadir}/applications 107 install -d ${D}${datadir}/applications
108 install ${WORKDIR}/weston.desktop ${D}${datadir}/applications 108 install ${UNPACKDIR}/weston.desktop ${D}${datadir}/applications
109 109
110 install -d ${D}${datadir}/icons/hicolor/48x48/apps 110 install -d ${D}${datadir}/icons/hicolor/48x48/apps
111 install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps 111 install ${UNPACKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
112 fi 112 fi
113 113
114 if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then 114 if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
115 install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland 115 install -Dm 644 ${UNPACKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
116 fi 116 fi
117 117
118 if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then 118 if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then
119 install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify 119 install -Dm 644 ${UNPACKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify
120 fi 120 fi
121 121
122 if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then 122 if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index 671c0a290e..4e38b4da34 100644
--- a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -52,7 +52,7 @@ do_install() {
52 52
53 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then 53 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
54 install -d ${D}${systemd_system_unitdir} 54 install -d ${D}${systemd_system_unitdir}
55 install -m 0644 ${WORKDIR}/xserver-nodm.service.in ${D}${systemd_system_unitdir}/xserver-nodm.service 55 install -m 0644 ${S}/xserver-nodm.service.in ${D}${systemd_system_unitdir}/xserver-nodm.service
56 sed -i "s:@USER@:${XUSER}:" ${D}${systemd_system_unitdir}/xserver-nodm.service 56 sed -i "s:@USER@:${XUSER}:" ${D}${systemd_system_unitdir}/xserver-nodm.service
57 fi 57 fi
58 58
diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 7b49668f92..0516928a76 100644
--- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -27,7 +27,7 @@ do_install:append() {
27 install -m 0755 ${S}/scripts/xinput_calibrator_pointercal.sh ${D}${bindir}/xinput_calibrator_once.sh 27 install -m 0755 ${S}/scripts/xinput_calibrator_pointercal.sh ${D}${bindir}/xinput_calibrator_once.sh
28 28
29 install -d ${D}${sysconfdir}/X11/Xsession.d/ 29 install -d ${D}${sysconfdir}/X11/Xsession.d/
30 install -m 0755 ${WORKDIR}/30xinput_calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/ 30 install -m 0755 ${UNPACKDIR}/30xinput_calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
31 31
32 install -d ${D}${sysconfdir}/xdg/autostart 32 install -d ${D}${sysconfdir}/xdg/autostart
33 sed -e 's,^Exec=.*,Exec=${bindir}/xinput_calibrator_once.sh,' ${S}/scripts/xinput_calibrator.desktop > ${D}${sysconfdir}/xdg/autostart/xinput_calibrator.desktop 33 sed -e 's,^Exec=.*,Exec=${bindir}/xinput_calibrator_once.sh,' ${S}/scripts/xinput_calibrator.desktop > ${D}${sysconfdir}/xdg/autostart/xinput_calibrator.desktop
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
index 03f14cef2b..a3a4733785 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
@@ -14,8 +14,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
14ALLOW_EMPTY:${PN} = "1" 14ALLOW_EMPTY:${PN} = "1"
15 15
16do_install () { 16do_install () {
17 if test -s ${WORKDIR}/xorg.conf; then 17 if test -s ${S}/xorg.conf; then
18 install -d ${D}/${sysconfdir}/X11 18 install -d ${D}/${sysconfdir}/X11
19 install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/ 19 install -m 0644 ${S}/xorg.conf ${D}/${sysconfdir}/X11/
20 fi 20 fi
21} 21}
diff --git a/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb b/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
index 974fcba876..332525f5c9 100644
--- a/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
+++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
@@ -9,9 +9,9 @@ SRC_URI = "file://dt-doc-validate \
9 9
10do_install() { 10do_install() {
11 install -d ${D}${bindir}/ 11 install -d ${D}${bindir}/
12 install -m 755 ${WORKDIR}/dt-doc-validate ${D}${bindir}/ 12 install -m 755 ${UNPACKDIR}/dt-doc-validate ${D}${bindir}/
13 install -m 755 ${WORKDIR}/dt-mk-schema ${D}${bindir}/ 13 install -m 755 ${UNPACKDIR}/dt-mk-schema ${D}${bindir}/
14 install -m 755 ${WORKDIR}/dt-validate ${D}${bindir}/ 14 install -m 755 ${UNPACKDIR}/dt-validate ${D}${bindir}/
15} 15}
16 16
17BBCLASSEXTEND = "native nativesdk" 17BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb
index dec821ea88..c39fff834d 100644
--- a/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb
+++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb
@@ -44,15 +44,15 @@ do_compile:prepend() {
44 44
45do_install:append () { 45do_install:append () {
46 install -d ${D}${sysconfdir}/sysconfig 46 install -d ${D}${sysconfdir}/sysconfig
47 install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig 47 install -m 0644 ${UNPACKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
48 48
49 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 49 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
50 install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump 50 install -D -m 0755 ${UNPACKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
51 fi 51 fi
52 52
53 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 53 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
54 install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper 54 install -D -m 0755 ${UNPACKDIR}/kdump ${D}${libexecdir}/kdump-helper
55 install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service 55 install -D -m 0644 ${UNPACKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service
56 sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service 56 sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service
57 fi 57 fi
58} 58}
diff --git a/meta/recipes-kernel/kmod/kmod_31.bb b/meta/recipes-kernel/kmod/kmod_31.bb
index 6ae83a7c66..718a5565b4 100644
--- a/meta/recipes-kernel/kmod/kmod_31.bb
+++ b/meta/recipes-kernel/kmod/kmod_31.bb
@@ -63,7 +63,7 @@ do_install:append () {
63 install -dm755 ${D}${sysconfdir}/modprobe.d 63 install -dm755 ${D}${sysconfdir}/modprobe.d
64 64
65 # install depmod.d file for search/ dir 65 # install depmod.d file for search/ dir
66 install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf" 66 install -Dm644 "${UNPACKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf"
67 67
68 # Add .debug to the exclude path for depmod 68 # Add .debug to the exclude path for depmod
69 echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf 69 echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
index ff79bb9b33..13538afede 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
@@ -322,7 +322,7 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \
322 ${PN}-cnm-license ${PN}-cnm \ 322 ${PN}-cnm-license ${PN}-cnm \
323 ${PN}-atheros-license ${PN}-ar5523 ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k ${PN}-ath3k \ 323 ${PN}-atheros-license ${PN}-ar5523 ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k ${PN}-ath3k \
324 ${PN}-carl9170 \ 324 ${PN}-carl9170 \
325 ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \ 325 ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-ath12k ${PN}-qca \
326 \ 326 \
327 ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ 327 ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
328 \ 328 \
@@ -343,6 +343,7 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \
343 ${PN}-ibt-license ${PN}-ibt \ 343 ${PN}-ibt-license ${PN}-ibt \
344 ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ 344 ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
345 ${PN}-ibt-17 \ 345 ${PN}-ibt-17 \
346 ${PN}-ibt-18 \
346 ${PN}-ibt-20 \ 347 ${PN}-ibt-20 \
347 ${PN}-ibt-misc \ 348 ${PN}-ibt-misc \
348 ${PN}-i915-license ${PN}-i915 \ 349 ${PN}-i915-license ${PN}-i915 \
@@ -487,6 +488,10 @@ FILES:${PN}-ath11k = " \
487 ${nonarch_base_libdir}/firmware/ath11k \ 488 ${nonarch_base_libdir}/firmware/ath11k \
488" 489"
489 490
491FILES:${PN}-ath12k = " \
492 ${nonarch_base_libdir}/firmware/ath12k \
493"
494
490FILES:${PN}-qca = " \ 495FILES:${PN}-qca = " \
491 ${nonarch_base_libdir}/firmware/qca \ 496 ${nonarch_base_libdir}/firmware/qca \
492" 497"
@@ -494,6 +499,7 @@ FILES:${PN}-qca = " \
494RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" 499RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license"
495RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" 500RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license"
496RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license" 501RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license"
502RDEPENDS:${PN}-ath12k += "${PN}-ath10k-license"
497RDEPENDS:${PN}-qca += "${PN}-ath10k-license" 503RDEPENDS:${PN}-qca += "${PN}-ath10k-license"
498 504
499# For ralink 505# For ralink
@@ -1272,6 +1278,7 @@ LICENSE:${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware"
1272LICENSE:${PN}-ibt-11-5 = "Firmware-ibt_firmware" 1278LICENSE:${PN}-ibt-11-5 = "Firmware-ibt_firmware"
1273LICENSE:${PN}-ibt-12-16 = "Firmware-ibt_firmware" 1279LICENSE:${PN}-ibt-12-16 = "Firmware-ibt_firmware"
1274LICENSE:${PN}-ibt-17 = "Firmware-ibt_firmware" 1280LICENSE:${PN}-ibt-17 = "Firmware-ibt_firmware"
1281LICENSE:${PN}-ibt-18 = "Firmware-ibt_firmware"
1275LICENSE:${PN}-ibt-20 = "Firmware-ibt_firmware" 1282LICENSE:${PN}-ibt-20 = "Firmware-ibt_firmware"
1276LICENSE:${PN}-ibt-misc = "Firmware-ibt_firmware" 1283LICENSE:${PN}-ibt-misc = "Firmware-ibt_firmware"
1277 1284
@@ -1281,6 +1288,7 @@ FILES:${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bs
1281FILES:${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" 1288FILES:${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc"
1282FILES:${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" 1289FILES:${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc"
1283FILES:${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" 1290FILES:${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc"
1291FILES:${PN}-ibt-18 = "${nonarch_base_libdir}/firmware/intel/ibt-18-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-18-*.ddc"
1284FILES:${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc" 1292FILES:${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc"
1285FILES:${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*" 1293FILES:${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*"
1286 1294
@@ -1289,6 +1297,7 @@ RDEPENDS:${PN}-ibt-hw-37.8 = "${PN}-ibt-license"
1289RDEPENDS:${PN}-ibt-11-5 = "${PN}-ibt-license" 1297RDEPENDS:${PN}-ibt-11-5 = "${PN}-ibt-license"
1290RDEPENDS:${PN}-ibt-12-16 = "${PN}-ibt-license" 1298RDEPENDS:${PN}-ibt-12-16 = "${PN}-ibt-license"
1291RDEPENDS:${PN}-ibt-17 = "${PN}-ibt-license" 1299RDEPENDS:${PN}-ibt-17 = "${PN}-ibt-license"
1300RDEPENDS:${PN}-ibt-18 = "${PN}-ibt-license"
1292RDEPENDS:${PN}-ibt-20 = "${PN}-ibt-license" 1301RDEPENDS:${PN}-ibt-20 = "${PN}-ibt-license"
1293RDEPENDS:${PN}-ibt-misc = "${PN}-ibt-license" 1302RDEPENDS:${PN}-ibt-misc = "${PN}-ibt-license"
1294 1303
diff --git a/meta/recipes-kernel/linux/cve-exclusion_6.6.inc b/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
index bb9ba49c48..9f1f03ac53 100644
--- a/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
+++ b/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
@@ -1,9 +1,9 @@
1 1
2# Auto-generated CVE metadata, DO NOT EDIT BY HAND. 2# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
3# Generated at 2024-03-28 16:40:04.102652+00:00 for version 6.6.23 3# Generated at 2024-05-02 12:41:43.351358+00:00 for version 6.6.29
4 4
5python check_kernel_cve_status_version() { 5python check_kernel_cve_status_version() {
6 this_version = "6.6.23" 6 this_version = "6.6.29"
7 kernel_version = d.getVar("LINUX_VERSION") 7 kernel_version = d.getVar("LINUX_VERSION")
8 if kernel_version != this_version: 8 if kernel_version != this_version:
9 bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version)) 9 bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
@@ -2980,6 +2980,10 @@ CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed from version 5.2rc4"
2980 2980
2981CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed from version 5.1" 2981CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed from version 5.1"
2982 2982
2983CVE_STATUS[CVE-2019-25160] = "fixed-version: Fixed from version 5.0"
2984
2985CVE_STATUS[CVE-2019-25162] = "fixed-version: Fixed from version 6.0rc1"
2986
2983CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed from version 5.6rc1" 2987CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed from version 5.6rc1"
2984 2988
2985CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed from version 5.1rc1" 2989CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed from version 5.1rc1"
@@ -3452,6 +3456,32 @@ CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10"
3452 3456
3453CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1" 3457CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1"
3454 3458
3459CVE_STATUS[CVE-2020-36775] = "fixed-version: Fixed from version 5.7rc1"
3460
3461CVE_STATUS[CVE-2020-36776] = "fixed-version: Fixed from version 5.13rc1"
3462
3463CVE_STATUS[CVE-2020-36777] = "fixed-version: Fixed from version 5.13rc1"
3464
3465CVE_STATUS[CVE-2020-36778] = "fixed-version: Fixed from version 5.13rc1"
3466
3467CVE_STATUS[CVE-2020-36779] = "fixed-version: Fixed from version 5.13rc1"
3468
3469CVE_STATUS[CVE-2020-36780] = "fixed-version: Fixed from version 5.13rc1"
3470
3471CVE_STATUS[CVE-2020-36781] = "fixed-version: Fixed from version 5.13rc1"
3472
3473CVE_STATUS[CVE-2020-36782] = "fixed-version: Fixed from version 5.13rc1"
3474
3475CVE_STATUS[CVE-2020-36783] = "fixed-version: Fixed from version 5.13rc1"
3476
3477CVE_STATUS[CVE-2020-36784] = "fixed-version: Fixed from version 5.13rc1"
3478
3479CVE_STATUS[CVE-2020-36785] = "fixed-version: Fixed from version 5.13rc1"
3480
3481CVE_STATUS[CVE-2020-36786] = "fixed-version: Fixed from version 5.13rc1"
3482
3483CVE_STATUS[CVE-2020-36787] = "fixed-version: Fixed from version 5.13rc1"
3484
3455CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1" 3485CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1"
3456 3486
3457CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5" 3487CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5"
@@ -3940,6 +3970,540 @@ CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed from version 5.16rc1"
3940 3970
3941CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed from version 5.13rc7" 3971CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed from version 5.13rc7"
3942 3972
3973CVE_STATUS[CVE-2021-46904] = "fixed-version: Fixed from version 5.12rc7"
3974
3975CVE_STATUS[CVE-2021-46905] = "fixed-version: Fixed from version 5.13rc1"
3976
3977CVE_STATUS[CVE-2021-46906] = "fixed-version: Fixed from version 5.13rc5"
3978
3979CVE_STATUS[CVE-2021-46908] = "fixed-version: Fixed from version 5.12rc8"
3980
3981CVE_STATUS[CVE-2021-46909] = "fixed-version: Fixed from version 5.12rc8"
3982
3983CVE_STATUS[CVE-2021-46910] = "fixed-version: Fixed from version 5.12rc8"
3984
3985CVE_STATUS[CVE-2021-46911] = "fixed-version: Fixed from version 5.12rc8"
3986
3987CVE_STATUS[CVE-2021-46912] = "fixed-version: Fixed from version 5.12rc8"
3988
3989CVE_STATUS[CVE-2021-46913] = "fixed-version: Fixed from version 5.12rc8"
3990
3991CVE_STATUS[CVE-2021-46914] = "fixed-version: Fixed from version 5.12rc8"
3992
3993CVE_STATUS[CVE-2021-46915] = "fixed-version: Fixed from version 5.12rc8"
3994
3995CVE_STATUS[CVE-2021-46916] = "fixed-version: Fixed from version 5.12rc8"
3996
3997CVE_STATUS[CVE-2021-46917] = "fixed-version: Fixed from version 5.12rc8"
3998
3999CVE_STATUS[CVE-2021-46918] = "fixed-version: Fixed from version 5.12rc8"
4000
4001CVE_STATUS[CVE-2021-46919] = "fixed-version: Fixed from version 5.12rc8"
4002
4003CVE_STATUS[CVE-2021-46920] = "fixed-version: Fixed from version 5.12rc8"
4004
4005CVE_STATUS[CVE-2021-46921] = "fixed-version: Fixed from version 5.12"
4006
4007CVE_STATUS[CVE-2021-46922] = "fixed-version: Fixed from version 5.12"
4008
4009CVE_STATUS[CVE-2021-46923] = "fixed-version: Fixed from version 5.16rc8"
4010
4011CVE_STATUS[CVE-2021-46924] = "fixed-version: Fixed from version 5.16rc8"
4012
4013CVE_STATUS[CVE-2021-46925] = "fixed-version: Fixed from version 5.16rc8"
4014
4015CVE_STATUS[CVE-2021-46926] = "fixed-version: Fixed from version 5.16rc7"
4016
4017CVE_STATUS[CVE-2021-46927] = "fixed-version: Fixed from version 5.16rc8"
4018
4019CVE_STATUS[CVE-2021-46928] = "fixed-version: Fixed from version 5.16rc7"
4020
4021CVE_STATUS[CVE-2021-46929] = "fixed-version: Fixed from version 5.16rc8"
4022
4023CVE_STATUS[CVE-2021-46930] = "fixed-version: Fixed from version 5.16rc8"
4024
4025CVE_STATUS[CVE-2021-46931] = "fixed-version: Fixed from version 5.16rc8"
4026
4027CVE_STATUS[CVE-2021-46932] = "fixed-version: Fixed from version 5.16rc8"
4028
4029CVE_STATUS[CVE-2021-46933] = "fixed-version: Fixed from version 5.16rc8"
4030
4031CVE_STATUS[CVE-2021-46934] = "fixed-version: Fixed from version 5.16rc8"
4032
4033CVE_STATUS[CVE-2021-46935] = "fixed-version: Fixed from version 5.16rc8"
4034
4035CVE_STATUS[CVE-2021-46936] = "fixed-version: Fixed from version 5.16rc8"
4036
4037CVE_STATUS[CVE-2021-46937] = "fixed-version: Fixed from version 5.16rc8"
4038
4039CVE_STATUS[CVE-2021-46938] = "fixed-version: Fixed from version 5.13rc1"
4040
4041CVE_STATUS[CVE-2021-46939] = "fixed-version: Fixed from version 5.13rc1"
4042
4043CVE_STATUS[CVE-2021-46940] = "fixed-version: Fixed from version 5.13rc1"
4044
4045CVE_STATUS[CVE-2021-46941] = "fixed-version: Fixed from version 5.13rc1"
4046
4047CVE_STATUS[CVE-2021-46942] = "fixed-version: Fixed from version 5.13rc1"
4048
4049CVE_STATUS[CVE-2021-46943] = "fixed-version: Fixed from version 5.13rc1"
4050
4051CVE_STATUS[CVE-2021-46944] = "fixed-version: Fixed from version 5.13rc1"
4052
4053CVE_STATUS[CVE-2021-46945] = "fixed-version: Fixed from version 5.13rc1"
4054
4055CVE_STATUS[CVE-2021-46947] = "fixed-version: Fixed from version 5.13rc1"
4056
4057CVE_STATUS[CVE-2021-46948] = "fixed-version: Fixed from version 5.13rc1"
4058
4059CVE_STATUS[CVE-2021-46949] = "fixed-version: Fixed from version 5.13rc1"
4060
4061CVE_STATUS[CVE-2021-46950] = "fixed-version: Fixed from version 5.13rc1"
4062
4063CVE_STATUS[CVE-2021-46951] = "fixed-version: Fixed from version 5.13rc1"
4064
4065CVE_STATUS[CVE-2021-46952] = "fixed-version: Fixed from version 5.13rc1"
4066
4067CVE_STATUS[CVE-2021-46953] = "fixed-version: Fixed from version 5.13rc1"
4068
4069CVE_STATUS[CVE-2021-46954] = "fixed-version: Fixed from version 5.13rc1"
4070
4071CVE_STATUS[CVE-2021-46955] = "fixed-version: Fixed from version 5.13rc1"
4072
4073CVE_STATUS[CVE-2021-46956] = "fixed-version: Fixed from version 5.13rc1"
4074
4075CVE_STATUS[CVE-2021-46957] = "fixed-version: Fixed from version 5.13rc1"
4076
4077CVE_STATUS[CVE-2021-46958] = "fixed-version: Fixed from version 5.13rc1"
4078
4079CVE_STATUS[CVE-2021-46959] = "fixed-version: Fixed from version 5.13rc1"
4080
4081CVE_STATUS[CVE-2021-46960] = "fixed-version: Fixed from version 5.13rc1"
4082
4083CVE_STATUS[CVE-2021-46961] = "fixed-version: Fixed from version 5.13rc1"
4084
4085CVE_STATUS[CVE-2021-46962] = "fixed-version: Fixed from version 5.13rc1"
4086
4087CVE_STATUS[CVE-2021-46963] = "fixed-version: Fixed from version 5.13rc1"
4088
4089CVE_STATUS[CVE-2021-46964] = "fixed-version: Fixed from version 5.13rc1"
4090
4091CVE_STATUS[CVE-2021-46965] = "fixed-version: Fixed from version 5.13rc1"
4092
4093CVE_STATUS[CVE-2021-46966] = "fixed-version: Fixed from version 5.13rc1"
4094
4095CVE_STATUS[CVE-2021-46967] = "fixed-version: Fixed from version 5.13rc1"
4096
4097CVE_STATUS[CVE-2021-46968] = "fixed-version: Fixed from version 5.13rc1"
4098
4099CVE_STATUS[CVE-2021-46969] = "fixed-version: Fixed from version 5.13rc1"
4100
4101CVE_STATUS[CVE-2021-46970] = "fixed-version: Fixed from version 5.13rc1"
4102
4103CVE_STATUS[CVE-2021-46971] = "fixed-version: Fixed from version 5.13rc1"
4104
4105CVE_STATUS[CVE-2021-46972] = "fixed-version: Fixed from version 5.13rc1"
4106
4107CVE_STATUS[CVE-2021-46973] = "fixed-version: Fixed from version 5.13rc1"
4108
4109CVE_STATUS[CVE-2021-46974] = "fixed-version: Fixed from version 5.13rc1"
4110
4111CVE_STATUS[CVE-2021-46976] = "fixed-version: Fixed from version 5.13rc2"
4112
4113CVE_STATUS[CVE-2021-46977] = "fixed-version: Fixed from version 5.13rc2"
4114
4115CVE_STATUS[CVE-2021-46978] = "fixed-version: Fixed from version 5.13rc2"
4116
4117CVE_STATUS[CVE-2021-46979] = "fixed-version: Fixed from version 5.13rc2"
4118
4119CVE_STATUS[CVE-2021-46980] = "fixed-version: Fixed from version 5.13rc2"
4120
4121CVE_STATUS[CVE-2021-46981] = "fixed-version: Fixed from version 5.13rc2"
4122
4123CVE_STATUS[CVE-2021-46982] = "fixed-version: Fixed from version 5.13rc2"
4124
4125CVE_STATUS[CVE-2021-46983] = "fixed-version: Fixed from version 5.13rc2"
4126
4127CVE_STATUS[CVE-2021-46984] = "fixed-version: Fixed from version 5.13rc2"
4128
4129CVE_STATUS[CVE-2021-46985] = "fixed-version: Fixed from version 5.13rc2"
4130
4131CVE_STATUS[CVE-2021-46986] = "fixed-version: Fixed from version 5.13rc2"
4132
4133CVE_STATUS[CVE-2021-46987] = "fixed-version: Fixed from version 5.13rc2"
4134
4135CVE_STATUS[CVE-2021-46988] = "fixed-version: Fixed from version 5.13rc2"
4136
4137CVE_STATUS[CVE-2021-46989] = "fixed-version: Fixed from version 5.13rc2"
4138
4139CVE_STATUS[CVE-2021-46990] = "fixed-version: Fixed from version 5.13rc2"
4140
4141CVE_STATUS[CVE-2021-46991] = "fixed-version: Fixed from version 5.13rc1"
4142
4143CVE_STATUS[CVE-2021-46992] = "fixed-version: Fixed from version 5.13rc1"
4144
4145CVE_STATUS[CVE-2021-46993] = "fixed-version: Fixed from version 5.13rc1"
4146
4147CVE_STATUS[CVE-2021-46994] = "fixed-version: Fixed from version 5.13rc1"
4148
4149CVE_STATUS[CVE-2021-46995] = "fixed-version: Fixed from version 5.13rc1"
4150
4151CVE_STATUS[CVE-2021-46996] = "fixed-version: Fixed from version 5.13rc1"
4152
4153CVE_STATUS[CVE-2021-46997] = "fixed-version: Fixed from version 5.13rc1"
4154
4155CVE_STATUS[CVE-2021-46998] = "fixed-version: Fixed from version 5.13rc1"
4156
4157CVE_STATUS[CVE-2021-46999] = "fixed-version: Fixed from version 5.13rc1"
4158
4159CVE_STATUS[CVE-2021-47000] = "fixed-version: Fixed from version 5.13rc1"
4160
4161CVE_STATUS[CVE-2021-47001] = "fixed-version: Fixed from version 5.13rc1"
4162
4163CVE_STATUS[CVE-2021-47002] = "fixed-version: Fixed from version 5.13rc1"
4164
4165CVE_STATUS[CVE-2021-47003] = "fixed-version: Fixed from version 5.13rc1"
4166
4167CVE_STATUS[CVE-2021-47004] = "fixed-version: Fixed from version 5.13rc1"
4168
4169CVE_STATUS[CVE-2021-47005] = "fixed-version: Fixed from version 5.13rc1"
4170
4171CVE_STATUS[CVE-2021-47006] = "fixed-version: Fixed from version 5.13rc1"
4172
4173CVE_STATUS[CVE-2021-47007] = "fixed-version: Fixed from version 5.13rc1"
4174
4175CVE_STATUS[CVE-2021-47008] = "fixed-version: Fixed from version 5.13rc1"
4176
4177CVE_STATUS[CVE-2021-47009] = "fixed-version: Fixed from version 5.13rc2"
4178
4179CVE_STATUS[CVE-2021-47010] = "fixed-version: Fixed from version 5.13rc1"
4180
4181CVE_STATUS[CVE-2021-47011] = "fixed-version: Fixed from version 5.13rc1"
4182
4183CVE_STATUS[CVE-2021-47012] = "fixed-version: Fixed from version 5.13rc1"
4184
4185CVE_STATUS[CVE-2021-47013] = "fixed-version: Fixed from version 5.13rc1"
4186
4187CVE_STATUS[CVE-2021-47014] = "fixed-version: Fixed from version 5.13rc1"
4188
4189CVE_STATUS[CVE-2021-47015] = "fixed-version: Fixed from version 5.13rc1"
4190
4191CVE_STATUS[CVE-2021-47016] = "fixed-version: Fixed from version 5.13rc1"
4192
4193CVE_STATUS[CVE-2021-47017] = "fixed-version: Fixed from version 5.13rc1"
4194
4195CVE_STATUS[CVE-2021-47018] = "fixed-version: Fixed from version 5.13rc1"
4196
4197CVE_STATUS[CVE-2021-47019] = "fixed-version: Fixed from version 5.13rc1"
4198
4199CVE_STATUS[CVE-2021-47020] = "fixed-version: Fixed from version 5.13rc1"
4200
4201CVE_STATUS[CVE-2021-47021] = "fixed-version: Fixed from version 5.13rc1"
4202
4203CVE_STATUS[CVE-2021-47022] = "fixed-version: Fixed from version 5.13rc1"
4204
4205CVE_STATUS[CVE-2021-47023] = "fixed-version: Fixed from version 5.13rc1"
4206
4207CVE_STATUS[CVE-2021-47024] = "fixed-version: Fixed from version 5.13rc1"
4208
4209CVE_STATUS[CVE-2021-47025] = "fixed-version: Fixed from version 5.13rc1"
4210
4211CVE_STATUS[CVE-2021-47026] = "fixed-version: Fixed from version 5.13rc1"
4212
4213CVE_STATUS[CVE-2021-47027] = "fixed-version: Fixed from version 5.13rc1"
4214
4215CVE_STATUS[CVE-2021-47028] = "fixed-version: Fixed from version 5.13rc1"
4216
4217CVE_STATUS[CVE-2021-47029] = "fixed-version: Fixed from version 5.13rc1"
4218
4219CVE_STATUS[CVE-2021-47030] = "fixed-version: Fixed from version 5.13rc1"
4220
4221CVE_STATUS[CVE-2021-47031] = "fixed-version: Fixed from version 5.13rc1"
4222
4223CVE_STATUS[CVE-2021-47032] = "fixed-version: Fixed from version 5.13rc1"
4224
4225CVE_STATUS[CVE-2021-47033] = "fixed-version: Fixed from version 5.13rc1"
4226
4227CVE_STATUS[CVE-2021-47034] = "fixed-version: Fixed from version 5.13rc1"
4228
4229CVE_STATUS[CVE-2021-47035] = "fixed-version: Fixed from version 5.13rc1"
4230
4231CVE_STATUS[CVE-2021-47036] = "fixed-version: Fixed from version 5.13rc1"
4232
4233CVE_STATUS[CVE-2021-47037] = "fixed-version: Fixed from version 5.13rc1"
4234
4235CVE_STATUS[CVE-2021-47038] = "fixed-version: Fixed from version 5.13rc1"
4236
4237CVE_STATUS[CVE-2021-47039] = "fixed-version: Fixed from version 5.13rc1"
4238
4239CVE_STATUS[CVE-2021-47040] = "fixed-version: Fixed from version 5.13rc1"
4240
4241CVE_STATUS[CVE-2021-47041] = "fixed-version: Fixed from version 5.13rc1"
4242
4243CVE_STATUS[CVE-2021-47042] = "fixed-version: Fixed from version 5.13rc1"
4244
4245CVE_STATUS[CVE-2021-47043] = "fixed-version: Fixed from version 5.13rc1"
4246
4247CVE_STATUS[CVE-2021-47044] = "fixed-version: Fixed from version 5.13rc1"
4248
4249CVE_STATUS[CVE-2021-47045] = "fixed-version: Fixed from version 5.13rc1"
4250
4251CVE_STATUS[CVE-2021-47046] = "fixed-version: Fixed from version 5.13rc1"
4252
4253CVE_STATUS[CVE-2021-47047] = "fixed-version: Fixed from version 5.13rc1"
4254
4255CVE_STATUS[CVE-2021-47048] = "fixed-version: Fixed from version 5.13rc1"
4256
4257CVE_STATUS[CVE-2021-47049] = "fixed-version: Fixed from version 5.13rc1"
4258
4259CVE_STATUS[CVE-2021-47050] = "fixed-version: Fixed from version 5.13rc1"
4260
4261CVE_STATUS[CVE-2021-47051] = "fixed-version: Fixed from version 5.13rc1"
4262
4263CVE_STATUS[CVE-2021-47052] = "fixed-version: Fixed from version 5.13rc1"
4264
4265CVE_STATUS[CVE-2021-47053] = "fixed-version: Fixed from version 5.13rc1"
4266
4267CVE_STATUS[CVE-2021-47054] = "fixed-version: Fixed from version 5.13rc1"
4268
4269CVE_STATUS[CVE-2021-47055] = "fixed-version: Fixed from version 5.13rc1"
4270
4271CVE_STATUS[CVE-2021-47056] = "fixed-version: Fixed from version 5.13rc1"
4272
4273CVE_STATUS[CVE-2021-47057] = "fixed-version: Fixed from version 5.13rc1"
4274
4275CVE_STATUS[CVE-2021-47058] = "fixed-version: Fixed from version 5.13rc1"
4276
4277CVE_STATUS[CVE-2021-47059] = "fixed-version: Fixed from version 5.13rc1"
4278
4279CVE_STATUS[CVE-2021-47060] = "fixed-version: Fixed from version 5.13rc1"
4280
4281CVE_STATUS[CVE-2021-47061] = "fixed-version: Fixed from version 5.13rc1"
4282
4283CVE_STATUS[CVE-2021-47062] = "fixed-version: Fixed from version 5.13rc1"
4284
4285CVE_STATUS[CVE-2021-47063] = "fixed-version: Fixed from version 5.13rc1"
4286
4287CVE_STATUS[CVE-2021-47064] = "fixed-version: Fixed from version 5.13rc1"
4288
4289CVE_STATUS[CVE-2021-47065] = "fixed-version: Fixed from version 5.13rc1"
4290
4291CVE_STATUS[CVE-2021-47066] = "fixed-version: Fixed from version 5.13rc1"
4292
4293CVE_STATUS[CVE-2021-47067] = "fixed-version: Fixed from version 5.13rc1"
4294
4295CVE_STATUS[CVE-2021-47068] = "fixed-version: Fixed from version 5.13rc1"
4296
4297CVE_STATUS[CVE-2021-47069] = "fixed-version: Fixed from version 5.13rc3"
4298
4299CVE_STATUS[CVE-2021-47070] = "fixed-version: Fixed from version 5.13rc3"
4300
4301CVE_STATUS[CVE-2021-47071] = "fixed-version: Fixed from version 5.13rc3"
4302
4303CVE_STATUS[CVE-2021-47072] = "fixed-version: Fixed from version 5.13rc3"
4304
4305CVE_STATUS[CVE-2021-47073] = "fixed-version: Fixed from version 5.13rc3"
4306
4307CVE_STATUS[CVE-2021-47074] = "fixed-version: Fixed from version 5.13rc3"
4308
4309CVE_STATUS[CVE-2021-47075] = "fixed-version: Fixed from version 5.13rc3"
4310
4311CVE_STATUS[CVE-2021-47076] = "fixed-version: Fixed from version 5.13rc3"
4312
4313CVE_STATUS[CVE-2021-47077] = "fixed-version: Fixed from version 5.13rc3"
4314
4315CVE_STATUS[CVE-2021-47078] = "fixed-version: Fixed from version 5.13rc3"
4316
4317CVE_STATUS[CVE-2021-47079] = "fixed-version: Fixed from version 5.13rc3"
4318
4319CVE_STATUS[CVE-2021-47080] = "fixed-version: Fixed from version 5.13rc3"
4320
4321CVE_STATUS[CVE-2021-47081] = "fixed-version: Fixed from version 5.13rc3"
4322
4323CVE_STATUS[CVE-2021-47082] = "fixed-version: Fixed from version 5.16rc7"
4324
4325CVE_STATUS[CVE-2021-47083] = "fixed-version: Fixed from version 5.16rc7"
4326
4327CVE_STATUS[CVE-2021-47086] = "fixed-version: Fixed from version 5.16rc7"
4328
4329CVE_STATUS[CVE-2021-47087] = "fixed-version: Fixed from version 5.16rc7"
4330
4331CVE_STATUS[CVE-2021-47088] = "fixed-version: Fixed from version 5.16rc7"
4332
4333CVE_STATUS[CVE-2021-47089] = "fixed-version: Fixed from version 5.16rc7"
4334
4335CVE_STATUS[CVE-2021-47090] = "fixed-version: Fixed from version 5.16rc7"
4336
4337CVE_STATUS[CVE-2021-47091] = "fixed-version: Fixed from version 5.16rc7"
4338
4339CVE_STATUS[CVE-2021-47092] = "fixed-version: Fixed from version 5.16rc7"
4340
4341CVE_STATUS[CVE-2021-47093] = "fixed-version: Fixed from version 5.16rc7"
4342
4343CVE_STATUS[CVE-2021-47094] = "fixed-version: Fixed from version 5.16rc7"
4344
4345CVE_STATUS[CVE-2021-47095] = "fixed-version: Fixed from version 5.16rc7"
4346
4347CVE_STATUS[CVE-2021-47096] = "fixed-version: Fixed from version 5.16rc7"
4348
4349CVE_STATUS[CVE-2021-47097] = "fixed-version: Fixed from version 5.16rc7"
4350
4351CVE_STATUS[CVE-2021-47098] = "fixed-version: Fixed from version 5.16rc7"
4352
4353CVE_STATUS[CVE-2021-47099] = "fixed-version: Fixed from version 5.16rc7"
4354
4355CVE_STATUS[CVE-2021-47100] = "fixed-version: Fixed from version 5.16rc7"
4356
4357CVE_STATUS[CVE-2021-47101] = "fixed-version: Fixed from version 5.16rc7"
4358
4359CVE_STATUS[CVE-2021-47102] = "fixed-version: Fixed from version 5.16rc7"
4360
4361CVE_STATUS[CVE-2021-47103] = "fixed-version: Fixed from version 5.16rc7"
4362
4363CVE_STATUS[CVE-2021-47104] = "fixed-version: Fixed from version 5.16rc7"
4364
4365CVE_STATUS[CVE-2021-47105] = "fixed-version: Fixed from version 5.16rc7"
4366
4367CVE_STATUS[CVE-2021-47106] = "fixed-version: Fixed from version 5.16rc7"
4368
4369CVE_STATUS[CVE-2021-47107] = "fixed-version: Fixed from version 5.16rc7"
4370
4371CVE_STATUS[CVE-2021-47108] = "fixed-version: Fixed from version 5.16rc7"
4372
4373CVE_STATUS[CVE-2021-47109] = "fixed-version: Fixed from version 5.13rc7"
4374
4375CVE_STATUS[CVE-2021-47110] = "fixed-version: Fixed from version 5.13rc2"
4376
4377CVE_STATUS[CVE-2021-47111] = "fixed-version: Fixed from version 5.13rc6"
4378
4379CVE_STATUS[CVE-2021-47112] = "fixed-version: Fixed from version 5.13rc2"
4380
4381CVE_STATUS[CVE-2021-47113] = "fixed-version: Fixed from version 5.13rc5"
4382
4383CVE_STATUS[CVE-2021-47114] = "fixed-version: Fixed from version 5.13rc5"
4384
4385CVE_STATUS[CVE-2021-47116] = "fixed-version: Fixed from version 5.13rc5"
4386
4387CVE_STATUS[CVE-2021-47117] = "fixed-version: Fixed from version 5.13rc5"
4388
4389CVE_STATUS[CVE-2021-47118] = "fixed-version: Fixed from version 5.13rc5"
4390
4391CVE_STATUS[CVE-2021-47119] = "fixed-version: Fixed from version 5.13rc5"
4392
4393CVE_STATUS[CVE-2021-47120] = "fixed-version: Fixed from version 5.13rc5"
4394
4395CVE_STATUS[CVE-2021-47121] = "fixed-version: Fixed from version 5.13rc5"
4396
4397CVE_STATUS[CVE-2021-47122] = "fixed-version: Fixed from version 5.13rc5"
4398
4399CVE_STATUS[CVE-2021-47123] = "fixed-version: Fixed from version 5.13rc2"
4400
4401CVE_STATUS[CVE-2021-47124] = "fixed-version: Fixed from version 5.13rc2"
4402
4403CVE_STATUS[CVE-2021-47125] = "fixed-version: Fixed from version 5.13rc5"
4404
4405CVE_STATUS[CVE-2021-47126] = "fixed-version: Fixed from version 5.13rc5"
4406
4407CVE_STATUS[CVE-2021-47127] = "fixed-version: Fixed from version 5.13rc5"
4408
4409CVE_STATUS[CVE-2021-47128] = "fixed-version: Fixed from version 5.13rc5"
4410
4411CVE_STATUS[CVE-2021-47129] = "fixed-version: Fixed from version 5.13rc5"
4412
4413CVE_STATUS[CVE-2021-47130] = "fixed-version: Fixed from version 5.13rc5"
4414
4415CVE_STATUS[CVE-2021-47131] = "fixed-version: Fixed from version 5.13rc5"
4416
4417CVE_STATUS[CVE-2021-47132] = "fixed-version: Fixed from version 5.13rc5"
4418
4419CVE_STATUS[CVE-2021-47133] = "fixed-version: Fixed from version 5.13rc5"
4420
4421CVE_STATUS[CVE-2021-47134] = "fixed-version: Fixed from version 5.13rc5"
4422
4423CVE_STATUS[CVE-2021-47135] = "fixed-version: Fixed from version 5.13rc5"
4424
4425CVE_STATUS[CVE-2021-47136] = "fixed-version: Fixed from version 5.13rc4"
4426
4427CVE_STATUS[CVE-2021-47137] = "fixed-version: Fixed from version 5.13rc4"
4428
4429CVE_STATUS[CVE-2021-47138] = "fixed-version: Fixed from version 5.13rc4"
4430
4431CVE_STATUS[CVE-2021-47139] = "fixed-version: Fixed from version 5.13rc4"
4432
4433CVE_STATUS[CVE-2021-47140] = "fixed-version: Fixed from version 5.13rc4"
4434
4435CVE_STATUS[CVE-2021-47141] = "fixed-version: Fixed from version 5.13rc4"
4436
4437CVE_STATUS[CVE-2021-47142] = "fixed-version: Fixed from version 5.13rc3"
4438
4439CVE_STATUS[CVE-2021-47143] = "fixed-version: Fixed from version 5.13rc4"
4440
4441CVE_STATUS[CVE-2021-47144] = "fixed-version: Fixed from version 5.13rc3"
4442
4443CVE_STATUS[CVE-2021-47145] = "fixed-version: Fixed from version 5.13rc3"
4444
4445CVE_STATUS[CVE-2021-47146] = "fixed-version: Fixed from version 5.13rc4"
4446
4447CVE_STATUS[CVE-2021-47147] = "fixed-version: Fixed from version 5.13rc4"
4448
4449CVE_STATUS[CVE-2021-47148] = "fixed-version: Fixed from version 5.13rc4"
4450
4451CVE_STATUS[CVE-2021-47149] = "fixed-version: Fixed from version 5.13rc3"
4452
4453CVE_STATUS[CVE-2021-47150] = "fixed-version: Fixed from version 5.13rc4"
4454
4455CVE_STATUS[CVE-2021-47151] = "fixed-version: Fixed from version 5.13rc4"
4456
4457CVE_STATUS[CVE-2021-47152] = "fixed-version: Fixed from version 5.13rc4"
4458
4459CVE_STATUS[CVE-2021-47153] = "fixed-version: Fixed from version 5.13rc4"
4460
4461CVE_STATUS[CVE-2021-47158] = "fixed-version: Fixed from version 5.13rc4"
4462
4463CVE_STATUS[CVE-2021-47159] = "fixed-version: Fixed from version 5.13rc4"
4464
4465CVE_STATUS[CVE-2021-47160] = "fixed-version: Fixed from version 5.13rc4"
4466
4467CVE_STATUS[CVE-2021-47161] = "fixed-version: Fixed from version 5.13rc4"
4468
4469CVE_STATUS[CVE-2021-47162] = "fixed-version: Fixed from version 5.13rc4"
4470
4471CVE_STATUS[CVE-2021-47163] = "fixed-version: Fixed from version 5.13rc4"
4472
4473CVE_STATUS[CVE-2021-47164] = "fixed-version: Fixed from version 5.13rc4"
4474
4475CVE_STATUS[CVE-2021-47165] = "fixed-version: Fixed from version 5.13rc4"
4476
4477CVE_STATUS[CVE-2021-47166] = "fixed-version: Fixed from version 5.13rc4"
4478
4479CVE_STATUS[CVE-2021-47167] = "fixed-version: Fixed from version 5.13rc4"
4480
4481CVE_STATUS[CVE-2021-47168] = "fixed-version: Fixed from version 5.13rc4"
4482
4483CVE_STATUS[CVE-2021-47169] = "fixed-version: Fixed from version 5.13rc4"
4484
4485CVE_STATUS[CVE-2021-47170] = "fixed-version: Fixed from version 5.13rc4"
4486
4487CVE_STATUS[CVE-2021-47171] = "fixed-version: Fixed from version 5.13rc4"
4488
4489CVE_STATUS[CVE-2021-47172] = "fixed-version: Fixed from version 5.13rc4"
4490
4491CVE_STATUS[CVE-2021-47173] = "fixed-version: Fixed from version 5.13rc4"
4492
4493CVE_STATUS[CVE-2021-47174] = "fixed-version: Fixed from version 5.13rc4"
4494
4495CVE_STATUS[CVE-2021-47175] = "fixed-version: Fixed from version 5.13rc4"
4496
4497CVE_STATUS[CVE-2021-47176] = "fixed-version: Fixed from version 5.13rc4"
4498
4499CVE_STATUS[CVE-2021-47177] = "fixed-version: Fixed from version 5.13rc4"
4500
4501CVE_STATUS[CVE-2021-47178] = "fixed-version: Fixed from version 5.13rc4"
4502
4503CVE_STATUS[CVE-2021-47179] = "fixed-version: Fixed from version 5.13rc4"
4504
4505CVE_STATUS[CVE-2021-47180] = "fixed-version: Fixed from version 5.13rc4"
4506
3943CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed from version 5.17rc8" 4507CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed from version 5.17rc8"
3944 4508
3945CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed from version 5.17rc8" 4509CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed from version 5.17rc8"
@@ -4590,6 +5154,16 @@ CVE_STATUS[CVE-2022-48502] = "fixed-version: Fixed from version 6.2rc1"
4590 5154
4591CVE_STATUS[CVE-2022-48619] = "fixed-version: Fixed from version 5.18rc1" 5155CVE_STATUS[CVE-2022-48619] = "fixed-version: Fixed from version 5.18rc1"
4592 5156
5157CVE_STATUS[CVE-2022-48626] = "fixed-version: Fixed from version 5.17rc4"
5158
5159CVE_STATUS[CVE-2022-48627] = "fixed-version: Fixed from version 5.19rc7"
5160
5161CVE_STATUS[CVE-2022-48628] = "fixed-version: Fixed from version 6.6rc1"
5162
5163CVE_STATUS[CVE-2022-48629] = "fixed-version: Fixed from version 5.17"
5164
5165CVE_STATUS[CVE-2022-48630] = "fixed-version: Fixed from version 5.18"
5166
4593CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed from version 5.0rc1" 5167CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed from version 5.0rc1"
4594 5168
4595CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed from version 6.2rc3" 5169CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed from version 6.2rc3"
@@ -4834,6 +5408,8 @@ CVE_STATUS[CVE-2023-28466] = "fixed-version: Fixed from version 6.3rc2"
4834 5408
4835CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed from version 6.0rc5" 5409CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed from version 6.0rc5"
4836 5410
5411CVE_STATUS[CVE-2023-28746] = "cpe-stable-backport: Backported in 6.6.22"
5412
4837CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed from version 5.14rc1" 5413CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed from version 5.14rc1"
4838 5414
4839CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed from version 6.3rc4" 5415CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed from version 6.3rc4"
@@ -5112,7 +5688,7 @@ CVE_STATUS[CVE-2023-46838] = "cpe-stable-backport: Backported in 6.6.14"
5112 5688
5113CVE_STATUS[CVE-2023-46862] = "fixed-version: Fixed from version 6.6" 5689CVE_STATUS[CVE-2023-46862] = "fixed-version: Fixed from version 6.6"
5114 5690
5115# CVE-2023-47233 has no known resolution 5691CVE_STATUS[CVE-2023-47233] = "cpe-stable-backport: Backported in 6.6.24"
5116 5692
5117CVE_STATUS[CVE-2023-4732] = "fixed-version: Fixed from version 5.14rc1" 5693CVE_STATUS[CVE-2023-4732] = "fixed-version: Fixed from version 5.14rc1"
5118 5694
@@ -5208,6 +5784,294 @@ CVE_STATUS[CVE-2023-52463] = "cpe-stable-backport: Backported in 6.6.14"
5208 5784
5209CVE_STATUS[CVE-2023-52464] = "cpe-stable-backport: Backported in 6.6.14" 5785CVE_STATUS[CVE-2023-52464] = "cpe-stable-backport: Backported in 6.6.14"
5210 5786
5787CVE_STATUS[CVE-2023-52465] = "cpe-stable-backport: Backported in 6.6.14"
5788
5789CVE_STATUS[CVE-2023-52467] = "cpe-stable-backport: Backported in 6.6.14"
5790
5791CVE_STATUS[CVE-2023-52468] = "cpe-stable-backport: Backported in 6.6.14"
5792
5793CVE_STATUS[CVE-2023-52469] = "cpe-stable-backport: Backported in 6.6.14"
5794
5795CVE_STATUS[CVE-2023-52470] = "cpe-stable-backport: Backported in 6.6.14"
5796
5797CVE_STATUS[CVE-2023-52471] = "fixed-version: only affects 6.7rc1 onwards"
5798
5799CVE_STATUS[CVE-2023-52472] = "cpe-stable-backport: Backported in 6.6.14"
5800
5801CVE_STATUS[CVE-2023-52473] = "cpe-stable-backport: Backported in 6.6.14"
5802
5803CVE_STATUS[CVE-2023-52474] = "fixed-version: Fixed from version 6.4rc1"
5804
5805CVE_STATUS[CVE-2023-52475] = "fixed-version: Fixed from version 6.6rc6"
5806
5807CVE_STATUS[CVE-2023-52476] = "fixed-version: Fixed from version 6.6rc6"
5808
5809CVE_STATUS[CVE-2023-52477] = "fixed-version: Fixed from version 6.6rc6"
5810
5811CVE_STATUS[CVE-2023-52478] = "fixed-version: Fixed from version 6.6rc6"
5812
5813CVE_STATUS[CVE-2023-52479] = "fixed-version: Fixed from version 6.6rc5"
5814
5815CVE_STATUS[CVE-2023-52480] = "fixed-version: Fixed from version 6.6rc5"
5816
5817CVE_STATUS[CVE-2023-52481] = "fixed-version: Fixed from version 6.6rc5"
5818
5819CVE_STATUS[CVE-2023-52482] = "fixed-version: Fixed from version 6.6rc4"
5820
5821CVE_STATUS[CVE-2023-52483] = "fixed-version: Fixed from version 6.6rc6"
5822
5823CVE_STATUS[CVE-2023-52484] = "fixed-version: Fixed from version 6.6rc5"
5824
5825# CVE-2023-52485 needs backporting (fixed from 6.8rc1)
5826
5827CVE_STATUS[CVE-2023-52486] = "cpe-stable-backport: Backported in 6.6.15"
5828
5829CVE_STATUS[CVE-2023-52487] = "cpe-stable-backport: Backported in 6.6.15"
5830
5831CVE_STATUS[CVE-2023-52488] = "cpe-stable-backport: Backported in 6.6.15"
5832
5833CVE_STATUS[CVE-2023-52489] = "cpe-stable-backport: Backported in 6.6.15"
5834
5835CVE_STATUS[CVE-2023-52490] = "cpe-stable-backport: Backported in 6.6.15"
5836
5837CVE_STATUS[CVE-2023-52491] = "cpe-stable-backport: Backported in 6.6.15"
5838
5839CVE_STATUS[CVE-2023-52492] = "cpe-stable-backport: Backported in 6.6.15"
5840
5841CVE_STATUS[CVE-2023-52493] = "cpe-stable-backport: Backported in 6.6.15"
5842
5843CVE_STATUS[CVE-2023-52494] = "cpe-stable-backport: Backported in 6.6.15"
5844
5845CVE_STATUS[CVE-2023-52495] = "cpe-stable-backport: Backported in 6.6.15"
5846
5847CVE_STATUS[CVE-2023-52497] = "cpe-stable-backport: Backported in 6.6.15"
5848
5849CVE_STATUS[CVE-2023-52498] = "cpe-stable-backport: Backported in 6.6.15"
5850
5851CVE_STATUS[CVE-2023-52499] = "fixed-version: Fixed from version 6.6rc6"
5852
5853CVE_STATUS[CVE-2023-52500] = "fixed-version: Fixed from version 6.6rc2"
5854
5855CVE_STATUS[CVE-2023-52501] = "fixed-version: Fixed from version 6.6rc2"
5856
5857CVE_STATUS[CVE-2023-52502] = "fixed-version: Fixed from version 6.6rc6"
5858
5859CVE_STATUS[CVE-2023-52503] = "fixed-version: Fixed from version 6.6rc6"
5860
5861CVE_STATUS[CVE-2023-52504] = "fixed-version: Fixed from version 6.6rc6"
5862
5863CVE_STATUS[CVE-2023-52505] = "fixed-version: Fixed from version 6.6rc6"
5864
5865CVE_STATUS[CVE-2023-52506] = "fixed-version: Fixed from version 6.6rc3"
5866
5867CVE_STATUS[CVE-2023-52507] = "fixed-version: Fixed from version 6.6rc6"
5868
5869CVE_STATUS[CVE-2023-52508] = "fixed-version: Fixed from version 6.6rc2"
5870
5871CVE_STATUS[CVE-2023-52509] = "fixed-version: Fixed from version 6.6rc6"
5872
5873CVE_STATUS[CVE-2023-52510] = "fixed-version: Fixed from version 6.6rc6"
5874
5875CVE_STATUS[CVE-2023-52511] = "fixed-version: Fixed from version 6.6rc1"
5876
5877CVE_STATUS[CVE-2023-52512] = "fixed-version: Fixed from version 6.6rc6"
5878
5879CVE_STATUS[CVE-2023-52513] = "fixed-version: Fixed from version 6.6rc5"
5880
5881CVE_STATUS[CVE-2023-52515] = "fixed-version: Fixed from version 6.6rc5"
5882
5883CVE_STATUS[CVE-2023-52516] = "fixed-version: Fixed from version 6.6rc1"
5884
5885CVE_STATUS[CVE-2023-52517] = "fixed-version: Fixed from version 6.6rc1"
5886
5887CVE_STATUS[CVE-2023-52518] = "fixed-version: Fixed from version 6.6rc5"
5888
5889CVE_STATUS[CVE-2023-52519] = "fixed-version: Fixed from version 6.6rc5"
5890
5891CVE_STATUS[CVE-2023-52520] = "fixed-version: Fixed from version 6.6rc5"
5892
5893CVE_STATUS[CVE-2023-52522] = "fixed-version: Fixed from version 6.6rc5"
5894
5895CVE_STATUS[CVE-2023-52523] = "fixed-version: Fixed from version 6.6rc5"
5896
5897CVE_STATUS[CVE-2023-52524] = "fixed-version: Fixed from version 6.6rc5"
5898
5899CVE_STATUS[CVE-2023-52525] = "fixed-version: Fixed from version 6.6rc5"
5900
5901CVE_STATUS[CVE-2023-52526] = "fixed-version: Fixed from version 6.6rc5"
5902
5903CVE_STATUS[CVE-2023-52527] = "fixed-version: Fixed from version 6.6rc5"
5904
5905CVE_STATUS[CVE-2023-52528] = "fixed-version: Fixed from version 6.6rc5"
5906
5907CVE_STATUS[CVE-2023-52529] = "fixed-version: Fixed from version 6.6rc5"
5908
5909CVE_STATUS[CVE-2023-52530] = "fixed-version: Fixed from version 6.6rc5"
5910
5911CVE_STATUS[CVE-2023-52531] = "fixed-version: Fixed from version 6.6rc5"
5912
5913CVE_STATUS[CVE-2023-52532] = "fixed-version: Fixed from version 6.6rc5"
5914
5915CVE_STATUS[CVE-2023-52559] = "fixed-version: Fixed from version 6.6rc5"
5916
5917CVE_STATUS[CVE-2023-52560] = "fixed-version: Fixed from version 6.6rc4"
5918
5919CVE_STATUS[CVE-2023-52561] = "fixed-version: Fixed from version 6.6rc1"
5920
5921CVE_STATUS[CVE-2023-52562] = "fixed-version: Fixed from version 6.6rc4"
5922
5923CVE_STATUS[CVE-2023-52563] = "fixed-version: Fixed from version 6.6rc3"
5924
5925CVE_STATUS[CVE-2023-52564] = "fixed-version: Fixed from version 6.6rc4"
5926
5927CVE_STATUS[CVE-2023-52565] = "fixed-version: Fixed from version 6.6rc3"
5928
5929CVE_STATUS[CVE-2023-52566] = "fixed-version: Fixed from version 6.6rc4"
5930
5931CVE_STATUS[CVE-2023-52567] = "fixed-version: Fixed from version 6.6rc4"
5932
5933CVE_STATUS[CVE-2023-52568] = "fixed-version: Fixed from version 6.6rc4"
5934
5935CVE_STATUS[CVE-2023-52569] = "fixed-version: Fixed from version 6.6rc2"
5936
5937CVE_STATUS[CVE-2023-52570] = "fixed-version: Fixed from version 6.6rc4"
5938
5939CVE_STATUS[CVE-2023-52571] = "fixed-version: Fixed from version 6.6rc4"
5940
5941CVE_STATUS[CVE-2023-52572] = "fixed-version: Fixed from version 6.6rc3"
5942
5943CVE_STATUS[CVE-2023-52573] = "fixed-version: Fixed from version 6.6rc3"
5944
5945CVE_STATUS[CVE-2023-52574] = "fixed-version: Fixed from version 6.6rc3"
5946
5947CVE_STATUS[CVE-2023-52575] = "fixed-version: Fixed from version 6.6rc3"
5948
5949CVE_STATUS[CVE-2023-52576] = "fixed-version: Fixed from version 6.6rc3"
5950
5951CVE_STATUS[CVE-2023-52577] = "fixed-version: Fixed from version 6.6rc3"
5952
5953CVE_STATUS[CVE-2023-52578] = "fixed-version: Fixed from version 6.6rc3"
5954
5955CVE_STATUS[CVE-2023-52580] = "fixed-version: Fixed from version 6.6rc3"
5956
5957CVE_STATUS[CVE-2023-52581] = "fixed-version: Fixed from version 6.6rc3"
5958
5959CVE_STATUS[CVE-2023-52582] = "fixed-version: Fixed from version 6.6rc3"
5960
5961CVE_STATUS[CVE-2023-52583] = "cpe-stable-backport: Backported in 6.6.16"
5962
5963CVE_STATUS[CVE-2023-52584] = "cpe-stable-backport: Backported in 6.6.16"
5964
5965# CVE-2023-52585 needs backporting (fixed from 6.8rc1)
5966
5967# CVE-2023-52586 needs backporting (fixed from 6.8rc1)
5968
5969CVE_STATUS[CVE-2023-52587] = "cpe-stable-backport: Backported in 6.6.16"
5970
5971CVE_STATUS[CVE-2023-52588] = "cpe-stable-backport: Backported in 6.6.16"
5972
5973CVE_STATUS[CVE-2023-52589] = "cpe-stable-backport: Backported in 6.6.16"
5974
5975# CVE-2023-52590 needs backporting (fixed from 6.8rc1)
5976
5977CVE_STATUS[CVE-2023-52591] = "cpe-stable-backport: Backported in 6.6.16"
5978
5979CVE_STATUS[CVE-2023-52593] = "cpe-stable-backport: Backported in 6.6.16"
5980
5981CVE_STATUS[CVE-2023-52594] = "cpe-stable-backport: Backported in 6.6.16"
5982
5983CVE_STATUS[CVE-2023-52595] = "cpe-stable-backport: Backported in 6.6.16"
5984
5985CVE_STATUS[CVE-2023-52596] = "cpe-stable-backport: Backported in 6.6.16"
5986
5987CVE_STATUS[CVE-2023-52597] = "cpe-stable-backport: Backported in 6.6.16"
5988
5989CVE_STATUS[CVE-2023-52598] = "cpe-stable-backport: Backported in 6.6.16"
5990
5991CVE_STATUS[CVE-2023-52599] = "cpe-stable-backport: Backported in 6.6.16"
5992
5993CVE_STATUS[CVE-2023-52600] = "cpe-stable-backport: Backported in 6.6.16"
5994
5995CVE_STATUS[CVE-2023-52601] = "cpe-stable-backport: Backported in 6.6.16"
5996
5997CVE_STATUS[CVE-2023-52602] = "cpe-stable-backport: Backported in 6.6.16"
5998
5999CVE_STATUS[CVE-2023-52603] = "cpe-stable-backport: Backported in 6.6.16"
6000
6001CVE_STATUS[CVE-2023-52604] = "cpe-stable-backport: Backported in 6.6.16"
6002
6003CVE_STATUS[CVE-2023-52606] = "cpe-stable-backport: Backported in 6.6.16"
6004
6005CVE_STATUS[CVE-2023-52607] = "cpe-stable-backport: Backported in 6.6.16"
6006
6007CVE_STATUS[CVE-2023-52608] = "cpe-stable-backport: Backported in 6.6.15"
6008
6009CVE_STATUS[CVE-2023-52609] = "cpe-stable-backport: Backported in 6.6.14"
6010
6011CVE_STATUS[CVE-2023-52610] = "cpe-stable-backport: Backported in 6.6.14"
6012
6013CVE_STATUS[CVE-2023-52611] = "cpe-stable-backport: Backported in 6.6.14"
6014
6015CVE_STATUS[CVE-2023-52612] = "cpe-stable-backport: Backported in 6.6.14"
6016
6017CVE_STATUS[CVE-2023-52613] = "cpe-stable-backport: Backported in 6.6.14"
6018
6019CVE_STATUS[CVE-2023-52614] = "cpe-stable-backport: Backported in 6.6.15"
6020
6021CVE_STATUS[CVE-2023-52615] = "cpe-stable-backport: Backported in 6.6.15"
6022
6023CVE_STATUS[CVE-2023-52616] = "cpe-stable-backport: Backported in 6.6.15"
6024
6025CVE_STATUS[CVE-2023-52617] = "cpe-stable-backport: Backported in 6.6.16"
6026
6027CVE_STATUS[CVE-2023-52618] = "cpe-stable-backport: Backported in 6.6.16"
6028
6029CVE_STATUS[CVE-2023-52619] = "cpe-stable-backport: Backported in 6.6.16"
6030
6031CVE_STATUS[CVE-2023-52620] = "fixed-version: Fixed from version 6.4"
6032
6033CVE_STATUS[CVE-2023-52621] = "cpe-stable-backport: Backported in 6.6.16"
6034
6035CVE_STATUS[CVE-2023-52622] = "cpe-stable-backport: Backported in 6.6.16"
6036
6037CVE_STATUS[CVE-2023-52623] = "cpe-stable-backport: Backported in 6.6.16"
6038
6039# CVE-2023-52624 needs backporting (fixed from 6.8rc1)
6040
6041# CVE-2023-52625 needs backporting (fixed from 6.8rc1)
6042
6043CVE_STATUS[CVE-2023-52626] = "fixed-version: only affects 6.7rc2 onwards"
6044
6045CVE_STATUS[CVE-2023-52627] = "cpe-stable-backport: Backported in 6.6.15"
6046
6047CVE_STATUS[CVE-2023-52628] = "fixed-version: Fixed from version 6.6rc1"
6048
6049CVE_STATUS[CVE-2023-52629] = "fixed-version: Fixed from version 6.6rc1"
6050
6051CVE_STATUS[CVE-2023-52630] = "cpe-stable-backport: Backported in 6.6.17"
6052
6053CVE_STATUS[CVE-2023-52631] = "cpe-stable-backport: Backported in 6.6.17"
6054
6055CVE_STATUS[CVE-2023-52632] = "cpe-stable-backport: Backported in 6.6.16"
6056
6057CVE_STATUS[CVE-2023-52633] = "cpe-stable-backport: Backported in 6.6.16"
6058
6059# CVE-2023-52634 needs backporting (fixed from 6.8rc1)
6060
6061CVE_STATUS[CVE-2023-52635] = "cpe-stable-backport: Backported in 6.6.16"
6062
6063CVE_STATUS[CVE-2023-52636] = "cpe-stable-backport: Backported in 6.6.17"
6064
6065CVE_STATUS[CVE-2023-52637] = "cpe-stable-backport: Backported in 6.6.18"
6066
6067CVE_STATUS[CVE-2023-52638] = "cpe-stable-backport: Backported in 6.6.18"
6068
6069CVE_STATUS[CVE-2023-52639] = "cpe-stable-backport: Backported in 6.6.22"
6070
6071CVE_STATUS[CVE-2023-52640] = "cpe-stable-backport: Backported in 6.6.19"
6072
6073CVE_STATUS[CVE-2023-52641] = "cpe-stable-backport: Backported in 6.6.19"
6074
5211CVE_STATUS[CVE-2023-5345] = "fixed-version: Fixed from version 6.6rc4" 6075CVE_STATUS[CVE-2023-5345] = "fixed-version: Fixed from version 6.6rc4"
5212 6076
5213CVE_STATUS[CVE-2023-5633] = "fixed-version: Fixed from version 6.6rc6" 6077CVE_STATUS[CVE-2023-5633] = "fixed-version: Fixed from version 6.6rc6"
@@ -5232,15 +6096,15 @@ CVE_STATUS[CVE-2023-6200] = "cpe-stable-backport: Backported in 6.6.9"
5232 6096
5233# CVE-2023-6240 has no known resolution 6097# CVE-2023-6240 has no known resolution
5234 6098
5235# CVE-2023-6270 has no known resolution 6099CVE_STATUS[CVE-2023-6270] = "cpe-stable-backport: Backported in 6.6.23"
5236 6100
5237# CVE-2023-6356 has no known resolution 6101CVE_STATUS[CVE-2023-6356] = "cpe-stable-backport: Backported in 6.6.14"
5238 6102
5239CVE_STATUS[CVE-2023-6531] = "cpe-stable-backport: Backported in 6.6.7" 6103CVE_STATUS[CVE-2023-6531] = "cpe-stable-backport: Backported in 6.6.7"
5240 6104
5241# CVE-2023-6535 has no known resolution 6105# CVE-2023-6535 has no known resolution
5242 6106
5243# CVE-2023-6536 has no known resolution 6107CVE_STATUS[CVE-2023-6536] = "cpe-stable-backport: Backported in 6.6.14"
5244 6108
5245CVE_STATUS[CVE-2023-6546] = "fixed-version: Fixed from version 6.5rc7" 6109CVE_STATUS[CVE-2023-6546] = "fixed-version: Fixed from version 6.5rc7"
5246 6110
@@ -5262,7 +6126,7 @@ CVE_STATUS[CVE-2023-6931] = "cpe-stable-backport: Backported in 6.6.7"
5262 6126
5263CVE_STATUS[CVE-2023-6932] = "cpe-stable-backport: Backported in 6.6.5" 6127CVE_STATUS[CVE-2023-6932] = "cpe-stable-backport: Backported in 6.6.5"
5264 6128
5265# CVE-2023-7042 has no known resolution 6129CVE_STATUS[CVE-2023-7042] = "cpe-stable-backport: Backported in 6.6.23"
5266 6130
5267CVE_STATUS[CVE-2023-7192] = "fixed-version: Fixed from version 6.3rc1" 6131CVE_STATUS[CVE-2023-7192] = "fixed-version: Fixed from version 6.3rc1"
5268 6132
@@ -5292,7 +6156,7 @@ CVE_STATUS[CVE-2024-0646] = "cpe-stable-backport: Backported in 6.6.7"
5292 6156
5293CVE_STATUS[CVE-2024-0775] = "fixed-version: Fixed from version 6.4rc2" 6157CVE_STATUS[CVE-2024-0775] = "fixed-version: Fixed from version 6.4rc2"
5294 6158
5295# CVE-2024-0841 has no known resolution 6159CVE_STATUS[CVE-2024-0841] = "cpe-stable-backport: Backported in 6.6.18"
5296 6160
5297CVE_STATUS[CVE-2024-1085] = "cpe-stable-backport: Backported in 6.6.14" 6161CVE_STATUS[CVE-2024-1085] = "cpe-stable-backport: Backported in 6.6.14"
5298 6162
@@ -5304,15 +6168,17 @@ CVE_STATUS[CVE-2024-1312] = "fixed-version: Fixed from version 6.5rc4"
5304 6168
5305# CVE-2024-21803 has no known resolution 6169# CVE-2024-21803 has no known resolution
5306 6170
5307# CVE-2024-22099 has no known resolution 6171# CVE-2024-2193 has no known resolution
6172
6173CVE_STATUS[CVE-2024-22099] = "cpe-stable-backport: Backported in 6.6.23"
5308 6174
5309# CVE-2024-22386 has no known resolution 6175# CVE-2024-22386 has no known resolution
5310 6176
5311CVE_STATUS[CVE-2024-22705] = "cpe-stable-backport: Backported in 6.6.10" 6177CVE_STATUS[CVE-2024-22705] = "cpe-stable-backport: Backported in 6.6.10"
5312 6178
5313# CVE-2024-23196 has no known resolution 6179CVE_STATUS[CVE-2024-23196] = "fixed-version: Fixed from version 6.5rc1"
5314 6180
5315# CVE-2024-23307 has no known resolution 6181CVE_STATUS[CVE-2024-23307] = "cpe-stable-backport: Backported in 6.6.24"
5316 6182
5317# CVE-2024-23848 has no known resolution 6183# CVE-2024-23848 has no known resolution
5318 6184
@@ -5332,7 +6198,7 @@ CVE_STATUS[CVE-2024-24855] = "fixed-version: Fixed from version 6.5rc2"
5332 6198
5333CVE_STATUS[CVE-2024-24860] = "cpe-stable-backport: Backported in 6.6.14" 6199CVE_STATUS[CVE-2024-24860] = "cpe-stable-backport: Backported in 6.6.14"
5334 6200
5335# CVE-2024-24861 has no known resolution 6201CVE_STATUS[CVE-2024-24861] = "cpe-stable-backport: Backported in 6.6.24"
5336 6202
5337# CVE-2024-24864 has no known resolution 6203# CVE-2024-24864 has no known resolution
5338 6204
@@ -5382,3 +6248,413 @@ CVE_STATUS[CVE-2024-26598] = "cpe-stable-backport: Backported in 6.6.14"
5382 6248
5383CVE_STATUS[CVE-2024-26599] = "cpe-stable-backport: Backported in 6.6.14" 6249CVE_STATUS[CVE-2024-26599] = "cpe-stable-backport: Backported in 6.6.14"
5384 6250
6251CVE_STATUS[CVE-2024-26600] = "cpe-stable-backport: Backported in 6.6.17"
6252
6253CVE_STATUS[CVE-2024-26601] = "cpe-stable-backport: Backported in 6.6.17"
6254
6255CVE_STATUS[CVE-2024-26602] = "cpe-stable-backport: Backported in 6.6.18"
6256
6257CVE_STATUS[CVE-2024-26603] = "cpe-stable-backport: Backported in 6.6.18"
6258
6259CVE_STATUS[CVE-2024-26604] = "cpe-stable-backport: Backported in 6.6.18"
6260
6261CVE_STATUS[CVE-2024-26605] = "fixed-version: only affects 6.7 onwards"
6262
6263CVE_STATUS[CVE-2024-26606] = "cpe-stable-backport: Backported in 6.6.18"
6264
6265CVE_STATUS[CVE-2024-26607] = "cpe-stable-backport: Backported in 6.6.15"
6266
6267CVE_STATUS[CVE-2024-26608] = "cpe-stable-backport: Backported in 6.6.15"
6268
6269CVE_STATUS[CVE-2024-26610] = "cpe-stable-backport: Backported in 6.6.15"
6270
6271CVE_STATUS[CVE-2024-26611] = "cpe-stable-backport: Backported in 6.6.15"
6272
6273CVE_STATUS[CVE-2024-26612] = "cpe-stable-backport: Backported in 6.6.15"
6274
6275CVE_STATUS[CVE-2024-26614] = "cpe-stable-backport: Backported in 6.6.15"
6276
6277CVE_STATUS[CVE-2024-26615] = "cpe-stable-backport: Backported in 6.6.15"
6278
6279CVE_STATUS[CVE-2024-26616] = "cpe-stable-backport: Backported in 6.6.15"
6280
6281CVE_STATUS[CVE-2024-26617] = "fixed-version: only affects 6.7rc1 onwards"
6282
6283CVE_STATUS[CVE-2024-26618] = "cpe-stable-backport: Backported in 6.6.15"
6284
6285CVE_STATUS[CVE-2024-26619] = "fixed-version: only affects 6.7rc5 onwards"
6286
6287CVE_STATUS[CVE-2024-26620] = "cpe-stable-backport: Backported in 6.6.15"
6288
6289CVE_STATUS[CVE-2024-26621] = "fixed-version: only affects 6.7 onwards"
6290
6291CVE_STATUS[CVE-2024-26622] = "cpe-stable-backport: Backported in 6.6.21"
6292
6293CVE_STATUS[CVE-2024-26623] = "cpe-stable-backport: Backported in 6.6.16"
6294
6295CVE_STATUS[CVE-2024-26625] = "cpe-stable-backport: Backported in 6.6.16"
6296
6297CVE_STATUS[CVE-2024-26626] = "fixed-version: only affects 6.8rc1 onwards"
6298
6299CVE_STATUS[CVE-2024-26627] = "cpe-stable-backport: Backported in 6.6.16"
6300
6301CVE_STATUS[CVE-2024-26629] = "cpe-stable-backport: Backported in 6.6.15"
6302
6303CVE_STATUS[CVE-2024-26630] = "cpe-stable-backport: Backported in 6.6.21"
6304
6305CVE_STATUS[CVE-2024-26631] = "cpe-stable-backport: Backported in 6.6.14"
6306
6307CVE_STATUS[CVE-2024-26632] = "cpe-stable-backport: Backported in 6.6.14"
6308
6309CVE_STATUS[CVE-2024-26633] = "cpe-stable-backport: Backported in 6.6.14"
6310
6311CVE_STATUS[CVE-2024-26634] = "cpe-stable-backport: Backported in 6.6.15"
6312
6313CVE_STATUS[CVE-2024-26635] = "cpe-stable-backport: Backported in 6.6.15"
6314
6315CVE_STATUS[CVE-2024-26636] = "cpe-stable-backport: Backported in 6.6.15"
6316
6317CVE_STATUS[CVE-2024-26637] = "fixed-version: only affects 6.7 onwards"
6318
6319CVE_STATUS[CVE-2024-26638] = "cpe-stable-backport: Backported in 6.6.15"
6320
6321CVE_STATUS[CVE-2024-26639] = "fixed-version: only affects 6.8rc1 onwards"
6322
6323CVE_STATUS[CVE-2024-26640] = "cpe-stable-backport: Backported in 6.6.16"
6324
6325CVE_STATUS[CVE-2024-26641] = "cpe-stable-backport: Backported in 6.6.16"
6326
6327CVE_STATUS[CVE-2024-26642] = "cpe-stable-backport: Backported in 6.6.24"
6328
6329CVE_STATUS[CVE-2024-26643] = "cpe-stable-backport: Backported in 6.6.24"
6330
6331CVE_STATUS[CVE-2024-26644] = "cpe-stable-backport: Backported in 6.6.15"
6332
6333CVE_STATUS[CVE-2024-26645] = "cpe-stable-backport: Backported in 6.6.15"
6334
6335CVE_STATUS[CVE-2024-26646] = "cpe-stable-backport: Backported in 6.6.15"
6336
6337CVE_STATUS[CVE-2024-26647] = "cpe-stable-backport: Backported in 6.6.15"
6338
6339CVE_STATUS[CVE-2024-26648] = "cpe-stable-backport: Backported in 6.6.15"
6340
6341CVE_STATUS[CVE-2024-26649] = "cpe-stable-backport: Backported in 6.6.15"
6342
6343CVE_STATUS[CVE-2024-26650] = "cpe-stable-backport: Backported in 6.6.15"
6344
6345CVE_STATUS[CVE-2024-26651] = "cpe-stable-backport: Backported in 6.6.23"
6346
6347CVE_STATUS[CVE-2024-26652] = "cpe-stable-backport: Backported in 6.6.22"
6348
6349CVE_STATUS[CVE-2024-26653] = "fixed-version: only affects 6.7rc1 onwards"
6350
6351CVE_STATUS[CVE-2024-26654] = "cpe-stable-backport: Backported in 6.6.24"
6352
6353# CVE-2024-26655 needs backporting (fixed from 6.9rc2)
6354
6355CVE_STATUS[CVE-2024-26656] = "cpe-stable-backport: Backported in 6.6.24"
6356
6357CVE_STATUS[CVE-2024-26657] = "fixed-version: only affects 6.7rc1 onwards"
6358
6359# CVE-2024-26658 needs backporting (fixed from 6.8rc1)
6360
6361CVE_STATUS[CVE-2024-26659] = "cpe-stable-backport: Backported in 6.6.17"
6362
6363CVE_STATUS[CVE-2024-26660] = "cpe-stable-backport: Backported in 6.6.17"
6364
6365CVE_STATUS[CVE-2024-26661] = "cpe-stable-backport: Backported in 6.6.17"
6366
6367CVE_STATUS[CVE-2024-26662] = "cpe-stable-backport: Backported in 6.6.17"
6368
6369CVE_STATUS[CVE-2024-26663] = "cpe-stable-backport: Backported in 6.6.17"
6370
6371CVE_STATUS[CVE-2024-26664] = "cpe-stable-backport: Backported in 6.6.17"
6372
6373CVE_STATUS[CVE-2024-26665] = "cpe-stable-backport: Backported in 6.6.17"
6374
6375CVE_STATUS[CVE-2024-26666] = "cpe-stable-backport: Backported in 6.6.17"
6376
6377CVE_STATUS[CVE-2024-26667] = "cpe-stable-backport: Backported in 6.6.17"
6378
6379CVE_STATUS[CVE-2024-26668] = "cpe-stable-backport: Backported in 6.6.15"
6380
6381CVE_STATUS[CVE-2024-26669] = "cpe-stable-backport: Backported in 6.6.15"
6382
6383CVE_STATUS[CVE-2024-26670] = "cpe-stable-backport: Backported in 6.6.15"
6384
6385CVE_STATUS[CVE-2024-26671] = "cpe-stable-backport: Backported in 6.6.16"
6386
6387# CVE-2024-26672 needs backporting (fixed from 6.8rc1)
6388
6389CVE_STATUS[CVE-2024-26673] = "cpe-stable-backport: Backported in 6.6.16"
6390
6391CVE_STATUS[CVE-2024-26674] = "cpe-stable-backport: Backported in 6.6.17"
6392
6393CVE_STATUS[CVE-2024-26675] = "cpe-stable-backport: Backported in 6.6.17"
6394
6395CVE_STATUS[CVE-2024-26676] = "cpe-stable-backport: Backported in 6.6.17"
6396
6397CVE_STATUS[CVE-2024-26677] = "cpe-stable-backport: Backported in 6.6.17"
6398
6399CVE_STATUS[CVE-2024-26678] = "fixed-version: only affects 6.7rc1 onwards"
6400
6401CVE_STATUS[CVE-2024-26679] = "cpe-stable-backport: Backported in 6.6.17"
6402
6403CVE_STATUS[CVE-2024-26680] = "cpe-stable-backport: Backported in 6.6.17"
6404
6405CVE_STATUS[CVE-2024-26681] = "cpe-stable-backport: Backported in 6.6.17"
6406
6407CVE_STATUS[CVE-2024-26682] = "fixed-version: only affects 6.7rc1 onwards"
6408
6409CVE_STATUS[CVE-2024-26683] = "fixed-version: only affects 6.7rc1 onwards"
6410
6411CVE_STATUS[CVE-2024-26684] = "cpe-stable-backport: Backported in 6.6.17"
6412
6413CVE_STATUS[CVE-2024-26685] = "cpe-stable-backport: Backported in 6.6.18"
6414
6415# CVE-2024-26686 needs backporting (fixed from 6.8rc4)
6416
6417CVE_STATUS[CVE-2024-26687] = "cpe-stable-backport: Backported in 6.6.19"
6418
6419CVE_STATUS[CVE-2024-26688] = "cpe-stable-backport: Backported in 6.6.18"
6420
6421CVE_STATUS[CVE-2024-26689] = "cpe-stable-backport: Backported in 6.6.18"
6422
6423CVE_STATUS[CVE-2024-26690] = "cpe-stable-backport: Backported in 6.6.18"
6424
6425CVE_STATUS[CVE-2024-26691] = "cpe-stable-backport: Backported in 6.6.18"
6426
6427CVE_STATUS[CVE-2024-26692] = "cpe-stable-backport: Backported in 6.6.18"
6428
6429CVE_STATUS[CVE-2024-26693] = "cpe-stable-backport: Backported in 6.6.18"
6430
6431CVE_STATUS[CVE-2024-26694] = "cpe-stable-backport: Backported in 6.6.18"
6432
6433CVE_STATUS[CVE-2024-26695] = "cpe-stable-backport: Backported in 6.6.18"
6434
6435CVE_STATUS[CVE-2024-26696] = "cpe-stable-backport: Backported in 6.6.18"
6436
6437CVE_STATUS[CVE-2024-26697] = "cpe-stable-backport: Backported in 6.6.18"
6438
6439CVE_STATUS[CVE-2024-26698] = "cpe-stable-backport: Backported in 6.6.18"
6440
6441# CVE-2024-26699 needs backporting (fixed from 6.8rc5)
6442
6443CVE_STATUS[CVE-2024-26700] = "cpe-stable-backport: Backported in 6.6.18"
6444
6445CVE_STATUS[CVE-2024-26702] = "cpe-stable-backport: Backported in 6.6.18"
6446
6447CVE_STATUS[CVE-2024-26703] = "cpe-stable-backport: Backported in 6.6.18"
6448
6449CVE_STATUS[CVE-2024-26704] = "cpe-stable-backport: Backported in 6.6.18"
6450
6451CVE_STATUS[CVE-2024-26705] = "cpe-stable-backport: Backported in 6.6.18"
6452
6453CVE_STATUS[CVE-2024-26706] = "cpe-stable-backport: Backported in 6.6.18"
6454
6455CVE_STATUS[CVE-2024-26707] = "cpe-stable-backport: Backported in 6.6.18"
6456
6457CVE_STATUS[CVE-2024-26708] = "cpe-stable-backport: Backported in 6.6.18"
6458
6459CVE_STATUS[CVE-2024-26709] = "fixed-version: only affects 6.7rc1 onwards"
6460
6461CVE_STATUS[CVE-2024-26710] = "fixed-version: only affects 6.8rc1 onwards"
6462
6463CVE_STATUS[CVE-2024-26711] = "cpe-stable-backport: Backported in 6.6.18"
6464
6465CVE_STATUS[CVE-2024-26712] = "cpe-stable-backport: Backported in 6.6.18"
6466
6467CVE_STATUS[CVE-2024-26713] = "cpe-stable-backport: Backported in 6.6.18"
6468
6469CVE_STATUS[CVE-2024-26714] = "cpe-stable-backport: Backported in 6.6.18"
6470
6471CVE_STATUS[CVE-2024-26715] = "cpe-stable-backport: Backported in 6.6.18"
6472
6473CVE_STATUS[CVE-2024-26716] = "cpe-stable-backport: Backported in 6.6.18"
6474
6475CVE_STATUS[CVE-2024-26717] = "cpe-stable-backport: Backported in 6.6.18"
6476
6477CVE_STATUS[CVE-2024-26718] = "cpe-stable-backport: Backported in 6.6.18"
6478
6479CVE_STATUS[CVE-2024-26719] = "cpe-stable-backport: Backported in 6.6.18"
6480
6481CVE_STATUS[CVE-2024-26720] = "cpe-stable-backport: Backported in 6.6.18"
6482
6483CVE_STATUS[CVE-2024-26721] = "fixed-version: only affects 6.7rc1 onwards"
6484
6485CVE_STATUS[CVE-2024-26722] = "fixed-version: only affects 6.7rc5 onwards"
6486
6487CVE_STATUS[CVE-2024-26723] = "cpe-stable-backport: Backported in 6.6.18"
6488
6489CVE_STATUS[CVE-2024-26724] = "fixed-version: only affects 6.7rc1 onwards"
6490
6491CVE_STATUS[CVE-2024-26725] = "fixed-version: only affects 6.7rc1 onwards"
6492
6493CVE_STATUS[CVE-2024-26726] = "cpe-stable-backport: Backported in 6.6.18"
6494
6495CVE_STATUS[CVE-2024-26727] = "cpe-stable-backport: Backported in 6.6.18"
6496
6497CVE_STATUS[CVE-2024-26728] = "fixed-version: only affects 6.7rc1 onwards"
6498
6499CVE_STATUS[CVE-2024-26729] = "fixed-version: only affects 6.7rc1 onwards"
6500
6501CVE_STATUS[CVE-2024-26730] = "cpe-stable-backport: Backported in 6.6.19"
6502
6503CVE_STATUS[CVE-2024-26731] = "cpe-stable-backport: Backported in 6.6.19"
6504
6505CVE_STATUS[CVE-2024-26732] = "fixed-version: only affects 6.7rc1 onwards"
6506
6507CVE_STATUS[CVE-2024-26733] = "cpe-stable-backport: Backported in 6.6.19"
6508
6509CVE_STATUS[CVE-2024-26734] = "cpe-stable-backport: Backported in 6.6.19"
6510
6511CVE_STATUS[CVE-2024-26735] = "cpe-stable-backport: Backported in 6.6.19"
6512
6513CVE_STATUS[CVE-2024-26736] = "cpe-stable-backport: Backported in 6.6.19"
6514
6515CVE_STATUS[CVE-2024-26737] = "cpe-stable-backport: Backported in 6.6.19"
6516
6517CVE_STATUS[CVE-2024-26738] = "cpe-stable-backport: Backported in 6.6.19"
6518
6519CVE_STATUS[CVE-2024-26739] = "cpe-stable-backport: Backported in 6.6.19"
6520
6521CVE_STATUS[CVE-2024-26740] = "cpe-stable-backport: Backported in 6.6.19"
6522
6523CVE_STATUS[CVE-2024-26741] = "cpe-stable-backport: Backported in 6.6.19"
6524
6525CVE_STATUS[CVE-2024-26742] = "cpe-stable-backport: Backported in 6.6.19"
6526
6527CVE_STATUS[CVE-2024-26743] = "cpe-stable-backport: Backported in 6.6.19"
6528
6529CVE_STATUS[CVE-2024-26744] = "cpe-stable-backport: Backported in 6.6.19"
6530
6531CVE_STATUS[CVE-2024-26745] = "cpe-stable-backport: Backported in 6.6.21"
6532
6533CVE_STATUS[CVE-2024-26746] = "cpe-stable-backport: Backported in 6.6.21"
6534
6535CVE_STATUS[CVE-2024-26747] = "cpe-stable-backport: Backported in 6.6.19"
6536
6537CVE_STATUS[CVE-2024-26748] = "cpe-stable-backport: Backported in 6.6.19"
6538
6539CVE_STATUS[CVE-2024-26749] = "cpe-stable-backport: Backported in 6.6.19"
6540
6541CVE_STATUS[CVE-2024-26750] = "fixed-version: only affects 6.8rc5 onwards"
6542
6543CVE_STATUS[CVE-2024-26751] = "cpe-stable-backport: Backported in 6.6.19"
6544
6545CVE_STATUS[CVE-2024-26752] = "cpe-stable-backport: Backported in 6.6.19"
6546
6547CVE_STATUS[CVE-2024-26753] = "cpe-stable-backport: Backported in 6.6.19"
6548
6549CVE_STATUS[CVE-2024-26754] = "cpe-stable-backport: Backported in 6.6.19"
6550
6551CVE_STATUS[CVE-2024-26755] = "fixed-version: only affects 6.7rc1 onwards"
6552
6553# CVE-2024-26756 needs backporting (fixed from 6.8rc6)
6554
6555# CVE-2024-26757 needs backporting (fixed from 6.8rc6)
6556
6557# CVE-2024-26758 needs backporting (fixed from 6.8rc6)
6558
6559CVE_STATUS[CVE-2024-26759] = "cpe-stable-backport: Backported in 6.6.19"
6560
6561CVE_STATUS[CVE-2024-26760] = "cpe-stable-backport: Backported in 6.6.19"
6562
6563CVE_STATUS[CVE-2024-26761] = "cpe-stable-backport: Backported in 6.6.19"
6564
6565CVE_STATUS[CVE-2024-26762] = "fixed-version: only affects 6.7rc1 onwards"
6566
6567CVE_STATUS[CVE-2024-26763] = "cpe-stable-backport: Backported in 6.6.19"
6568
6569CVE_STATUS[CVE-2024-26764] = "cpe-stable-backport: Backported in 6.6.19"
6570
6571CVE_STATUS[CVE-2024-26765] = "cpe-stable-backport: Backported in 6.6.19"
6572
6573CVE_STATUS[CVE-2024-26766] = "cpe-stable-backport: Backported in 6.6.19"
6574
6575CVE_STATUS[CVE-2024-26767] = "cpe-stable-backport: Backported in 6.6.19"
6576
6577CVE_STATUS[CVE-2024-26768] = "cpe-stable-backport: Backported in 6.6.19"
6578
6579CVE_STATUS[CVE-2024-26769] = "cpe-stable-backport: Backported in 6.6.19"
6580
6581CVE_STATUS[CVE-2024-26770] = "cpe-stable-backport: Backported in 6.6.19"
6582
6583CVE_STATUS[CVE-2024-26771] = "cpe-stable-backport: Backported in 6.6.19"
6584
6585CVE_STATUS[CVE-2024-26772] = "cpe-stable-backport: Backported in 6.6.19"
6586
6587CVE_STATUS[CVE-2024-26773] = "cpe-stable-backport: Backported in 6.6.19"
6588
6589CVE_STATUS[CVE-2024-26774] = "cpe-stable-backport: Backported in 6.6.19"
6590
6591CVE_STATUS[CVE-2024-26775] = "cpe-stable-backport: Backported in 6.6.19"
6592
6593CVE_STATUS[CVE-2024-26776] = "cpe-stable-backport: Backported in 6.6.19"
6594
6595CVE_STATUS[CVE-2024-26777] = "cpe-stable-backport: Backported in 6.6.19"
6596
6597CVE_STATUS[CVE-2024-26778] = "cpe-stable-backport: Backported in 6.6.19"
6598
6599CVE_STATUS[CVE-2024-26779] = "cpe-stable-backport: Backported in 6.6.19"
6600
6601CVE_STATUS[CVE-2024-26780] = "fixed-version: only affects 6.8rc4 onwards"
6602
6603CVE_STATUS[CVE-2024-26781] = "fixed-version: only affects 6.8rc6 onwards"
6604
6605CVE_STATUS[CVE-2024-26782] = "cpe-stable-backport: Backported in 6.6.21"
6606
6607CVE_STATUS[CVE-2024-26783] = "cpe-stable-backport: Backported in 6.6.22"
6608
6609# CVE-2024-26784 needs backporting (fixed from 6.8rc7)
6610
6611# CVE-2024-26785 needs backporting (fixed from 6.8rc7)
6612
6613CVE_STATUS[CVE-2024-26786] = "cpe-stable-backport: Backported in 6.6.21"
6614
6615CVE_STATUS[CVE-2024-26787] = "cpe-stable-backport: Backported in 6.6.21"
6616
6617CVE_STATUS[CVE-2024-26788] = "cpe-stable-backport: Backported in 6.6.21"
6618
6619CVE_STATUS[CVE-2024-26789] = "cpe-stable-backport: Backported in 6.6.21"
6620
6621CVE_STATUS[CVE-2024-26790] = "cpe-stable-backport: Backported in 6.6.21"
6622
6623CVE_STATUS[CVE-2024-26791] = "cpe-stable-backport: Backported in 6.6.21"
6624
6625CVE_STATUS[CVE-2024-26792] = "fixed-version: only affects 6.8rc4 onwards"
6626
6627CVE_STATUS[CVE-2024-26793] = "cpe-stable-backport: Backported in 6.6.21"
6628
6629CVE_STATUS[CVE-2024-26794] = "fixed-version: only affects 6.8rc6 onwards"
6630
6631CVE_STATUS[CVE-2024-26795] = "cpe-stable-backport: Backported in 6.6.21"
6632
6633CVE_STATUS[CVE-2024-26796] = "cpe-stable-backport: Backported in 6.6.21"
6634
6635# CVE-2024-26797 needs backporting (fixed from 6.8rc7)
6636
6637CVE_STATUS[CVE-2024-26798] = "cpe-stable-backport: Backported in 6.6.21"
6638
6639CVE_STATUS[CVE-2024-26799] = "cpe-stable-backport: Backported in 6.6.21"
6640
6641CVE_STATUS[CVE-2024-26800] = "fixed-version: only affects 6.8rc5 onwards"
6642
6643CVE_STATUS[CVE-2024-26801] = "cpe-stable-backport: Backported in 6.6.21"
6644
6645CVE_STATUS[CVE-2024-26802] = "cpe-stable-backport: Backported in 6.6.21"
6646
6647CVE_STATUS[CVE-2024-26803] = "cpe-stable-backport: Backported in 6.6.21"
6648
6649CVE_STATUS[CVE-2024-26804] = "cpe-stable-backport: Backported in 6.6.21"
6650
6651CVE_STATUS[CVE-2024-26805] = "cpe-stable-backport: Backported in 6.6.21"
6652
6653# CVE-2024-26806 needs backporting (fixed from 6.8rc7)
6654
6655CVE_STATUS[CVE-2024-26807] = "cpe-stable-backport: Backported in 6.6.21"
6656
6657CVE_STATUS[CVE-2024-26808] = "cpe-stable-backport: Backported in 6.6.15"
6658
6659CVE_STATUS[CVE-2024-26809] = "cpe-stable-backport: Backported in 6.6.23"
6660
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
index a44a08451a..ea429692d8 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
@@ -14,13 +14,13 @@ python () {
14 raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") 14 raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
15} 15}
16 16
17SRCREV_machine ?= "19813826de57a6425518c7b3daf8dd6a04d2321f" 17SRCREV_machine ?= "99d3632c1cf7688066e57aea89f9adfe8d1a5ca5"
18SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b" 18SRCREV_meta ?= "a78c74a3510067017dda1926f88bd914f0a053b3"
19 19
20SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \ 20SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
21 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https" 21 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
22 22
23LINUX_VERSION ?= "6.6.23" 23LINUX_VERSION ?= "6.6.29"
24 24
25LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 25LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
26 26
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
index db9e252572..bdad73bbbc 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
@@ -8,7 +8,7 @@ require recipes-kernel/linux/linux-yocto.inc
8# CVE exclusions 8# CVE exclusions
9include recipes-kernel/linux/cve-exclusion_6.6.inc 9include recipes-kernel/linux/cve-exclusion_6.6.inc
10 10
11LINUX_VERSION ?= "6.6.23" 11LINUX_VERSION ?= "6.6.29"
12LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 12LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
13 13
14DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" 14DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@ DEPENDS += "openssl-native util-linux-native"
17KMETA = "kernel-meta" 17KMETA = "kernel-meta"
18KCONF_BSP_AUDIT_LEVEL = "2" 18KCONF_BSP_AUDIT_LEVEL = "2"
19 19
20SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 20SRCREV_machine ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
21SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b" 21SRCREV_meta ?= "a78c74a3510067017dda1926f88bd914f0a053b3"
22 22
23PV = "${LINUX_VERSION}+git" 23PV = "${LINUX_VERSION}+git"
24 24
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.6.bb b/meta/recipes-kernel/linux/linux-yocto_6.6.bb
index 43696db59b..12197ba414 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.6.bb
@@ -18,25 +18,25 @@ KBRANCH:qemux86-64 ?= "v6.6/standard/base"
18KBRANCH:qemuloongarch64 ?= "v6.6/standard/base" 18KBRANCH:qemuloongarch64 ?= "v6.6/standard/base"
19KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64" 19KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64"
20 20
21SRCREV_machine:qemuarm ?= "ceb94a85299b59d8840ed7ed392b1d3e4c727678" 21SRCREV_machine:qemuarm ?= "45982c347ee123883a88f220d1d9a740e2c2b959"
22SRCREV_machine:qemuarm64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 22SRCREV_machine:qemuarm64 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
23SRCREV_machine:qemuloongarch64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 23SRCREV_machine:qemuloongarch64 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
24SRCREV_machine:qemumips ?= "c79ffc89f8909f60de52005ef258db9752634eda" 24SRCREV_machine:qemumips ?= "738f344ef6da38ebf6fcca87b701281c930b16e4"
25SRCREV_machine:qemuppc ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 25SRCREV_machine:qemuppc ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
26SRCREV_machine:qemuriscv64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 26SRCREV_machine:qemuriscv64 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
27SRCREV_machine:qemuriscv32 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 27SRCREV_machine:qemuriscv32 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
28SRCREV_machine:qemux86 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 28SRCREV_machine:qemux86 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
29SRCREV_machine:qemux86-64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 29SRCREV_machine:qemux86-64 ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
30SRCREV_machine:qemumips64 ?= "b0a73fa83073c8d7d7bc917bcbeac88d296ebe38" 30SRCREV_machine:qemumips64 ?= "7f4b889b7acb9fe36e290bf40c2e9b6cec523f6d"
31SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 31SRCREV_machine ?= "6655dc03f5de7bb734da3ec8eb97f9be281dfbdb"
32SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b" 32SRCREV_meta ?= "a78c74a3510067017dda1926f88bd914f0a053b3"
33 33
34# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll 34# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
35# get the <version>/base branch, which is pure upstream -stable, and the same 35# get the <version>/base branch, which is pure upstream -stable, and the same
36# meta SRCREV as the linux-yocto-standard builds. Select your version using the 36# meta SRCREV as the linux-yocto-standard builds. Select your version using the
37# normal PREFERRED_VERSION settings. 37# normal PREFERRED_VERSION settings.
38BBCLASSEXTEND = "devupstream:target" 38BBCLASSEXTEND = "devupstream:target"
39SRCREV_machine:class-devupstream ?= "5c7587f69194bc9fc714953ab4c7203e6e68885b" 39SRCREV_machine:class-devupstream ?= "a3463f08104612fc979c41fa54733e925205d3d7"
40PN:class-devupstream = "linux-yocto-upstream" 40PN:class-devupstream = "linux-yocto-upstream"
41KBRANCH:class-devupstream = "v6.6/base" 41KBRANCH:class-devupstream = "v6.6/base"
42 42
@@ -44,7 +44,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
44 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https" 44 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
45 45
46LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 46LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
47LINUX_VERSION ?= "6.6.23" 47LINUX_VERSION ?= "6.6.29"
48 48
49PV = "${LINUX_VERSION}+git" 49PV = "${LINUX_VERSION}+git"
50 50
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb b/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb
index 174dec036e..e73dd4801a 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb
+++ b/meta/recipes-kernel/lttng/lttng-tools_2.13.13.bb
@@ -69,7 +69,7 @@ PRIVATE_LIBS:${PN}-ptest = "libfoo.so"
69do_install:append () { 69do_install:append () {
70 # install systemd unit file 70 # install systemd unit file
71 install -d ${D}${systemd_system_unitdir} 71 install -d ${D}${systemd_system_unitdir}
72 install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir} 72 install -m 0644 ${UNPACKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir}
73} 73}
74 74
75do_install_ptest () { 75do_install_ptest () {
diff --git a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
index b630a402ff..0a05770408 100644
--- a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
+++ b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
@@ -17,7 +17,7 @@ do_compile () {
17 17
18do_install () { 18do_install () {
19 install -d ${D}${sysconfdir}/init.d/ 19 install -d ${D}${sysconfdir}/init.d/
20 install -m 0755 ${WORKDIR}/modutils.sh ${D}${sysconfdir}/init.d/ 20 install -m 0755 ${S}/modutils.sh ${D}${sysconfdir}/init.d/
21} 21}
22 22
23PACKAGE_WRITE_DEPS:append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" 23PACKAGE_WRITE_DEPS:append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
index 02282ac5d9..70b72fd7fb 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
@@ -23,7 +23,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24 24
25do_install:append() { 25do_install:append() {
26 install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop 26 install -m 0644 -D ${UNPACKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
27} 27}
28 28
29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback" 29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ae16056d24..9fb5c81757 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -142,7 +142,7 @@ do_compile:append () {
142 142
143do_install:append() { 143do_install:append() {
144 install -d ${D}${sysconfdir}/default/volatiles 144 install -d ${D}${sysconfdir}/default/volatiles
145 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse 145 install -m 0644 ${UNPACKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse
146} 146}
147 147
148USERADD_PACKAGES = "pulseaudio-server" 148USERADD_PACKAGES = "pulseaudio-server"
diff --git a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb
index 3777f05b5a..ab178f97e6 100644
--- a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb
+++ b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb
@@ -27,7 +27,7 @@ REQUIRED_DISTRO_FEATURES = "x11"
27 27
28do_install:append() { 28do_install:append() {
29 install -d ${D}${datadir}/matchbox/vfolders/ 29 install -d ${D}${datadir}/matchbox/vfolders/
30 install -m 0644 ${WORKDIR}/vfolders/* ${D}${datadir}/matchbox/vfolders/ 30 install -m 0644 ${UNPACKDIR}/vfolders/* ${D}${datadir}/matchbox/vfolders/
31} 31}
32 32
33FILES:${PN} += "${datadir}/matchbox/vfolders/" 33FILES:${PN} += "${datadir}/matchbox/vfolders/"
diff --git a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
index 6b70948f16..a1f7862efa 100644
--- a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
+++ b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
@@ -47,7 +47,7 @@ FILES:${PN}-applet = "${libdir}/matchbox-panel/*.so"
47 47
48do_install:append () { 48do_install:append () {
49 install -d ${D}/${sysconfdir}/X11/Xsession.d/ 49 install -d ${D}/${sysconfdir}/X11/Xsession.d/
50 install -m 755 ${WORKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/ 50 install -m 755 ${UNPACKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
51 51
52 rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la 52 rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
53 rm -f ${D}${libdir}/gtk-3.0/*/immodules/*.la 53 rm -f ${D}${libdir}/gtk-3.0/*/immodules/*.la
diff --git a/meta/recipes-sato/pcmanfm/pcmanfm_1.3.2.bb b/meta/recipes-sato/pcmanfm/pcmanfm_1.3.2.bb
index 0c5ed5e55e..22c9fa59dc 100644
--- a/meta/recipes-sato/pcmanfm/pcmanfm_1.3.2.bb
+++ b/meta/recipes-sato/pcmanfm/pcmanfm_1.3.2.bb
@@ -32,7 +32,7 @@ do_install:append () {
32 install -d ${D}/${datadir} 32 install -d ${D}/${datadir}
33 install -d ${D}/${datadir}/pixmaps/ 33 install -d ${D}/${datadir}/pixmaps/
34 34
35 install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps 35 install -m 0644 ${UNPACKDIR}/*.png ${D}/${datadir}/pixmaps
36} 36}
37 37
38FILES:${PN} += "${libdir}/pcmanfm" 38FILES:${PN} += "${libdir}/pcmanfm"
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
index 016614b19c..95cc140e9e 100644
--- a/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
@@ -51,8 +51,8 @@ do_install:append () {
51 install -d ${D}/${datadir}/applications 51 install -d ${D}/${datadir}/applications
52 install -d ${D}/${datadir}/pixmaps/ 52 install -d ${D}/${datadir}/pixmaps/
53 53
54 install -m 0644 ${WORKDIR}/rxvt.png ${D}/${datadir}/pixmaps 54 install -m 0644 ${UNPACKDIR}/rxvt.png ${D}/${datadir}/pixmaps
55 install -m 0644 ${WORKDIR}/rxvt.desktop ${D}/${datadir}/applications 55 install -m 0644 ${UNPACKDIR}/rxvt.desktop ${D}/${datadir}/applications
56 56
57 ${STAGING_BINDIR_NATIVE}/tic -x ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo || \ 57 ${STAGING_BINDIR_NATIVE}/tic -x ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo || \
58 ${STAGING_BINDIR_NATIVE}/tic ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo 58 ${STAGING_BINDIR_NATIVE}/tic ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo
diff --git a/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb b/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
index 4bdbefcb75..fb00de9bc9 100644
--- a/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
+++ b/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
@@ -26,5 +26,5 @@ REQUIRED_DISTRO_FEATURES = "x11"
26 26
27do_install:append () { 27do_install:append () {
28 install -d ${D}/${sysconfdir}/X11/Xsession.d 28 install -d ${D}/${sysconfdir}/X11/Xsession.d
29 install -m 755 ${WORKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/ 29 install -m 755 ${UNPACKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/
30} 30}
diff --git a/meta/recipes-support/libical/libical_3.0.18.bb b/meta/recipes-support/libical/libical_3.0.18.bb
index 040d23b69d..052ca57cfb 100644
--- a/meta/recipes-support/libical/libical_3.0.18.bb
+++ b/meta/recipes-support/libical/libical_3.0.18.bb
@@ -37,7 +37,8 @@ EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
37EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper" 37EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
38EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper" 38EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
39EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen" 39EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
40EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}" 40EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF', d)}"
41EXTRA_OECMAKE:append:class-native = " -DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF"
41 42
42# Tell the cross-libical where the tool it needs to build is 43# Tell the cross-libical where the tool it needs to build is
43EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake" 44EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.16.bb b/meta/recipes-support/rng-tools/rng-tools_6.16.bb
index f0aa3ff93f..10771a999d 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.16.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.16.bb
@@ -50,9 +50,9 @@ do_configure:prepend() {
50} 50}
51 51
52do_install:append() { 52do_install:append() {
53 install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools 53 install -Dm 0644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/rng-tools
54 install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools 54 install -Dm 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
55 install -Dm 0644 ${WORKDIR}/rng-tools.service \ 55 install -Dm 0644 ${UNPACKDIR}/rng-tools.service \
56 ${D}${systemd_system_unitdir}/rng-tools.service 56 ${D}${systemd_system_unitdir}/rng-tools.service
57 sed -i \ 57 sed -i \
58 -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 58 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
diff --git a/meta/recipes-support/user-creation/xuser-account_0.1.bb b/meta/recipes-support/user-creation/xuser-account_0.1.bb
index 639b01f6eb..2bd3699e74 100644
--- a/meta/recipes-support/user-creation/xuser-account_0.1.bb
+++ b/meta/recipes-support/user-creation/xuser-account_0.1.bb
@@ -15,7 +15,7 @@ do_compile() {
15} 15}
16 16
17do_install() { 17do_install() {
18 install -D -m 0644 ${WORKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf 18 install -D -m 0644 ${UNPACKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf
19} 19}
20 20
21FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf" 21FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf"
diff --git a/scripts/lib/recipetool/append.py b/scripts/lib/recipetool/append.py
index 341e893305..10945d6008 100644
--- a/scripts/lib/recipetool/append.py
+++ b/scripts/lib/recipetool/append.py
@@ -101,7 +101,7 @@ def determine_file_source(targetpath, rd):
101 import oe.recipeutils 101 import oe.recipeutils
102 102
103 # See if it's in do_install for the recipe 103 # See if it's in do_install for the recipe
104 workdir = rd.getVar('WORKDIR') 104 unpackdir = rd.getVar('UNPACKDIR')
105 src_uri = rd.getVar('SRC_URI') 105 src_uri = rd.getVar('SRC_URI')
106 srcfile = '' 106 srcfile = ''
107 modpatches = [] 107 modpatches = []
@@ -113,9 +113,9 @@ def determine_file_source(targetpath, rd):
113 if not srcpath.startswith('/'): 113 if not srcpath.startswith('/'):
114 # Handle non-absolute path 114 # Handle non-absolute path
115 srcpath = os.path.abspath(os.path.join(rd.getVarFlag('do_install', 'dirs').split()[-1], srcpath)) 115 srcpath = os.path.abspath(os.path.join(rd.getVarFlag('do_install', 'dirs').split()[-1], srcpath))
116 if srcpath.startswith(workdir): 116 if srcpath.startswith(unpackdir):
117 # OK, now we have the source file name, look for it in SRC_URI 117 # OK, now we have the source file name, look for it in SRC_URI
118 workdirfile = os.path.relpath(srcpath, workdir) 118 workdirfile = os.path.relpath(srcpath, unpackdir)
119 # FIXME this is where we ought to have some code in the fetcher, because this is naive 119 # FIXME this is where we ought to have some code in the fetcher, because this is naive
120 for item in src_uri.split(): 120 for item in src_uri.split():
121 localpath = bb.fetch2.localpath(item, rd) 121 localpath = bb.fetch2.localpath(item, rd)
diff --git a/scripts/oe-debuginfod b/scripts/oe-debuginfod
index b525310225..5e70d37b8b 100755
--- a/scripts/oe-debuginfod
+++ b/scripts/oe-debuginfod
@@ -15,14 +15,29 @@ scriptpath.add_bitbake_lib_path()
15 15
16import bb.tinfoil 16import bb.tinfoil
17import subprocess 17import subprocess
18import argparse
18 19
19if __name__ == "__main__": 20if __name__ == "__main__":
21 p = argparse.ArgumentParser()
22 p.add_argument("-d", action='store_true', \
23 help="store debuginfod files in project sub-directory")
24
25 args = p.parse_args()
26
20 with bb.tinfoil.Tinfoil() as tinfoil: 27 with bb.tinfoil.Tinfoil() as tinfoil:
21 tinfoil.prepare(config_only=True) 28 tinfoil.prepare(config_only=True)
22 package_classes_var = "DEPLOY_DIR_" + tinfoil.config_data.getVar("PACKAGE_CLASSES").split()[0].replace("package_", "").upper() 29 package_classes_var = "DEPLOY_DIR_" + tinfoil.config_data.getVar("PACKAGE_CLASSES").split()[0].replace("package_", "").upper()
23 feed_dir = tinfoil.config_data.getVar(package_classes_var, expand=True) 30 feed_dir = tinfoil.config_data.getVar(package_classes_var, expand=True)
24 31
32 opts = [ '--verbose', '-R', '-U', feed_dir ]
33
34 if args.d:
35 fdir = os.path.join(os.getcwd(), 'oedid-files')
36 os.makedirs(fdir, exist_ok=True)
37 opts += [ '-d', os.path.join(fdir, 'did.sqlite') ]
38
25 subprocess.call(['bitbake', '-c', 'addto_recipe_sysroot', 'elfutils-native']) 39 subprocess.call(['bitbake', '-c', 'addto_recipe_sysroot', 'elfutils-native'])
26 40
27 subprocess.call(['oe-run-native', 'elfutils-native', 'debuginfod', '--verbose', '-R', '-U', feed_dir]) 41 subprocess.call(['oe-run-native', 'elfutils-native', 'debuginfod'] + opts)
42 # we should not get here
28 print("\nTo use the debuginfod server please ensure that this variable PACKAGECONFIG:pn-elfutils-native = \"debuginfod libdebuginfod\" is set in the local.conf") 43 print("\nTo use the debuginfod server please ensure that this variable PACKAGECONFIG:pn-elfutils-native = \"debuginfod libdebuginfod\" is set in the local.conf")