summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst21
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst19
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst75
-rw-r--r--bitbake/lib/bb/fetch2/git.py6
-rw-r--r--bitbake/lib/bb/parse/ast.py16
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py2
-rw-r--r--bitbake/lib/toaster/tests/browser/test_layerdetails_page.py2
-rw-r--r--bitbake/lib/toaster/tests/functional/test_project_page.py8
-rw-r--r--documentation/README10
-rw-r--r--documentation/bsp-guide/bsp.rst54
-rw-r--r--documentation/contributor-guide/submit-changes.rst4
-rw-r--r--documentation/dev-manual/building.rst8
-rw-r--r--documentation/dev-manual/debugging.rst4
-rw-r--r--documentation/dev-manual/disk-space.rst2
-rw-r--r--documentation/dev-manual/efficiently-fetching-sources.rst4
-rw-r--r--documentation/dev-manual/init-manager.rst2
-rw-r--r--documentation/dev-manual/layers.rst20
-rw-r--r--documentation/dev-manual/libraries.rst32
-rw-r--r--documentation/dev-manual/licenses.rst4
-rw-r--r--documentation/dev-manual/new-recipe.rst55
-rw-r--r--documentation/dev-manual/packages.rst2
-rw-r--r--documentation/dev-manual/prebuilt-libraries.rst6
-rw-r--r--documentation/dev-manual/sbom.rst3
-rw-r--r--documentation/dev-manual/start.rst18
-rw-r--r--documentation/dev-manual/temporary-source-code.rst15
-rw-r--r--documentation/dev-manual/vulnerabilities.rst2
-rw-r--r--documentation/migration-guides/migration-5.1.rst6
-rw-r--r--documentation/migration-guides/migration-5.3.rst92
-rw-r--r--documentation/migration-guides/release-5.0.rst1
-rw-r--r--documentation/migration-guides/release-notes-4.3.rst4
-rw-r--r--documentation/migration-guides/release-notes-5.0.10.rst208
-rw-r--r--documentation/migration-guides/release-notes-5.1.rst2
-rw-r--r--documentation/migration-guides/release-notes-5.2.rst4
-rw-r--r--documentation/overview-manual/concepts.rst31
-rw-r--r--documentation/overview-manual/development-environment.rst6
-rw-r--r--documentation/overview-manual/svg/analysis-for-package-splitting.svg8
-rw-r--r--documentation/overview-manual/svg/bitbake_tasks_map.svg2
-rw-r--r--documentation/overview-manual/svg/configuration-compile-autoreconf.svg8
-rw-r--r--documentation/overview-manual/svg/patching.svg8
-rw-r--r--documentation/overview-manual/svg/source-fetching.svg8
-rw-r--r--documentation/overview-manual/yp-intro.rst2
-rw-r--r--documentation/ref-manual/classes.rst245
-rw-r--r--documentation/ref-manual/resources.rst4
-rw-r--r--documentation/ref-manual/structure.rst2
-rw-r--r--documentation/ref-manual/system-requirements.rst2
-rw-r--r--documentation/ref-manual/tasks.rst3
-rw-r--r--documentation/ref-manual/variables.rst128
-rw-r--r--documentation/ref-manual/yocto-project-supported-features.rst28
-rw-r--r--documentation/standards.md11
-rw-r--r--documentation/test-manual/ptest.rst17
-rw-r--r--documentation/transitioning-to-a-custom-environment.rst4
-rw-r--r--documentation/what-i-wish-id-known.rst4
-rw-r--r--meta-poky/conf/distro/poky.conf4
-rw-r--r--meta-poky/conf/layer.conf2
-rw-r--r--meta-poky/conf/templates/default/local.conf.sample4
-rw-r--r--meta-poky/lib/oeqa/selftest/cases/pokybleeding.py (renamed from meta/lib/oeqa/selftest/cases/pokybleeding.py)0
-rw-r--r--meta-poky/recipes-core/tiny-init/tiny-init.bb3
-rw-r--r--meta-selftest/conf/layer.conf2
-rw-r--r--meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb2
-rw-r--r--meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb2
-rw-r--r--meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded2
-rw-r--r--meta-selftest/recipes-devtools/rust/rust-c-lib-example-bin_git.bb1
-rw-r--r--meta-selftest/recipes-devtools/rust/rust-c-lib-example_git.bb1
-rw-r--r--meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb2
-rw-r--r--meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb4
-rw-r--r--meta-selftest/recipes-test/cpp/cpp-example.inc3
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-ignored.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-local_6.03.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-localonly.bb3
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-patch-gz.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-reset-re++.bb3
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-subdir.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb.upgraded2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb2
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb.upgraded2
-rw-r--r--meta-selftest/recipes-test/fortran/fortran-helloworld.bb3
-rw-r--r--meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb2
-rw-r--r--meta-selftest/recipes-test/gitrepotest/gitrepotest.bb1
-rw-r--r--meta-selftest/recipes-test/gitunpackoffline/gitunpackoffline.inc1
-rw-r--r--meta-selftest/recipes-test/images/wic-image-minimal.bb2
-rw-r--r--meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-chown/selftest-chown.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-ed/selftest-ed_1.20.2.bb2
-rw-r--r--meta-selftest/recipes-test/selftest-ed/selftest-ed_1.21.1.bb2
-rw-r--r--meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/acreategroup.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/bcreategroup.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/ccreategroup.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/creategroup1.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/creategroup2.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/dcreategroup.bb3
-rw-r--r--meta-selftest/recipes-test/selftest-users/useraddbadtask.bb3
-rw-r--r--meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb3
-rw-r--r--meta-skeleton/conf/layer.conf2
-rw-r--r--meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb3
-rw-r--r--meta-skeleton/recipes-skeleton/hello-single/hello_1.0.bb3
-rw-r--r--meta-skeleton/recipes-skeleton/service/service_0.1.bb3
-rw-r--r--meta-skeleton/recipes-skeleton/useradd/useradd-example.bb3
-rw-r--r--meta-yocto-bsp/conf/layer.conf2
-rw-r--r--meta/classes-global/base.bbclass13
-rw-r--r--meta/classes-global/insane.bbclass8
-rw-r--r--meta/classes-global/sstate.bbclass22
-rw-r--r--meta/classes-recipe/barebox.bbclass2
-rw-r--r--meta/classes-recipe/devicetree.bbclass3
-rw-r--r--meta/classes-recipe/devupstream.bbclass6
-rw-r--r--meta/classes-recipe/image-live.bbclass5
-rw-r--r--meta/classes-recipe/image_types_wic.bbclass12
-rw-r--r--meta/classes-recipe/kernel-fit-image.bbclass3
-rw-r--r--meta/classes-recipe/kernel-yocto.bbclass16
-rw-r--r--meta/classes-recipe/pypi.bbclass2
-rw-r--r--meta/classes-recipe/rust-target-config.bbclass67
-rw-r--r--meta/classes-recipe/uboot-config.bbclass15
-rw-r--r--meta/classes-recipe/uboot-sign.bbclass74
-rw-r--r--meta/classes/buildhistory.bbclass74
-rw-r--r--meta/classes/create-spdx-2.2.bbclass9
-rw-r--r--meta/classes/devtool-source.bbclass4
-rw-r--r--meta/classes/spdx-common.bbclass3
-rw-r--r--meta/conf/bitbake.conf8
-rw-r--r--meta/conf/distro/include/default-providers.inc18
-rw-r--r--meta/conf/distro/include/maintainers.inc20
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc1
-rw-r--r--meta/conf/distro/include/tclibc-picolibc.inc1
-rw-r--r--meta/conf/distro/include/tcmode-default.inc2
-rw-r--r--meta/conf/distro/include/yocto-uninative.inc8
-rw-r--r--meta/conf/layer.conf4
-rw-r--r--meta/conf/machine/include/mips/tune-mips-24k.inc3
-rw-r--r--meta/conf/machine/include/mips/tune-mips-74k.inc1
-rw-r--r--meta/conf/machine/include/mips/tune-octeon.inc1
-rw-r--r--meta/conf/machine/include/qemu.inc7
-rw-r--r--meta/conf/machine/include/riscv/README122
-rw-r--r--meta/conf/machine/include/riscv/arch-riscv.inc138
-rw-r--r--meta/conf/machine/include/riscv/tune-riscv.inc40
-rw-r--r--meta/conf/machine/qemuriscv32.conf4
-rw-r--r--meta/conf/machine/qemux86-64.conf6
-rw-r--r--meta/conf/machine/qemux86.conf6
-rw-r--r--meta/files/license-hashes.csv18
-rw-r--r--meta/lib/bbconfigbuild/configfragments.py22
-rw-r--r--meta/lib/oe/__init__.py2
-rw-r--r--meta/lib/oe/go.py6
-rw-r--r--meta/lib/oe/reproducible.py5
-rw-r--r--meta/lib/oe/rust.py2
-rw-r--r--meta/lib/oe/spdx30_tasks.py12
-rw-r--r--meta/lib/oe/spdx_common.py41
-rw-r--r--meta/lib/oe/tune.py81
-rw-r--r--meta/lib/oeqa/core/case.py8
-rw-r--r--meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py1
-rw-r--r--meta/lib/oeqa/runtime/cases/stap.py5
-rw-r--r--meta/lib/oeqa/selftest/cases/buildhistory.py61
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py38
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py24
-rw-r--r--meta/lib/oeqa/selftest/cases/distrodata.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/esdk.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/fitimage.py37
-rw-r--r--meta/lib/oeqa/selftest/cases/oescripts.py24
-rw-r--r--meta/lib/oeqa/selftest/cases/recipetool.py14
-rw-r--r--meta/lib/oeqa/selftest/cases/recipeutils.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/sstatetests.py97
-rw-r--r--meta/lib/oeqa/selftest/cases/toolchain.py71
-rw-r--r--meta/lib/oeqa/selftest/cases/wic.py35
-rw-r--r--meta/lib/oeqa/utils/commands.py15
-rw-r--r--meta/recipes-bsp/alsa-state/alsa-state.bb3
-rw-r--r--meta/recipes-bsp/barebox/barebox-common.inc4
-rw-r--r--meta/recipes-bsp/barebox/barebox-tools.bb2
-rw-r--r--meta/recipes-bsp/efibootmgr/efibootmgr_18.bb2
-rw-r--r--meta/recipes-bsp/efivar/efivar_39.bb2
-rw-r--r--meta/recipes-bsp/formfactor/formfactor_0.0.bb3
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi_4.0.1.bb2
-rw-r--r--meta/recipes-bsp/grub/grub-bootconf_1.00.bb3
-rw-r--r--meta/recipes-bsp/grub/grub-efi_2.12.bb2
-rw-r--r--meta/recipes-bsp/keymaps/keymaps_1.0.bb3
-rw-r--r--meta/recipes-bsp/opensbi/opensbi_1.6.bb1
-rw-r--r--meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb1
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc1
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc81
-rw-r--r--meta/recipes-connectivity/avahi/avahi-libnss-mdns_0.15.1.bb2
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5.inc2
-rw-r--r--meta/recipes-connectivity/connman/connman-conf.bb4
-rw-r--r--meta/recipes-connectivity/connman/connman-gnome_0.7.bb2
-rw-r--r--meta/recipes-connectivity/dhcpcd/dhcpcd_10.2.4.bb1
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_2.6.bb1
-rw-r--r--meta/recipes-connectivity/libuv/libuv_1.51.0.bb2
-rw-r--r--meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_20240407.bb2
-rw-r--r--meta/recipes-connectivity/neard/neard_0.19.bb2
-rw-r--r--meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb3
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf_1.93.bb2
-rw-r--r--meta/recipes-connectivity/slirp/libslirp_4.9.1.bb2
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb3
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.11.bb2
-rw-r--r--meta/recipes-core/base-files/base-files_3.0.14.bb3
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.6.7.bb2
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.37.0.bb4
-rw-r--r--meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch112
-rw-r--r--meta/recipes-core/coreutils/coreutils_9.7.bb1
-rw-r--r--meta/recipes-core/dbus-wait/dbus-wait_git.bb2
-rw-r--r--meta/recipes-core/dbus/dbus_1.16.2.bb1
-rw-r--r--meta/recipes-core/dropbear/dropbear_2025.88.bb6
-rw-r--r--meta/recipes-core/fts/fts_1.2.7.bb2
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb2
-rw-r--r--meta/recipes-core/gettext/gettext_0.23.1.bb1
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc2
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.41.bb4
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc2
-rw-r--r--meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch2
-rw-r--r--meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch2
-rw-r--r--meta/recipes-core/glibc/glibc_2.41.bb3
-rw-r--r--meta/recipes-core/glibc/ldconfig-native_2.12.1.bb3
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.44.bb3
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb10
-rw-r--r--meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs2
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb3
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb4
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.68.bb2
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb3
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc2
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb1
-rw-r--r--meta/recipes-core/meta/meta-toolchain.bb1
-rw-r--r--meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb1
-rw-r--r--meta/recipes-core/meta/signing-keys.bb1
-rw-r--r--meta/recipes-core/meta/uninative-tarball.bb1
-rw-r--r--meta/recipes-core/musl/bsd-headers.bb3
-rw-r--r--meta/recipes-core/musl/gcompat_git.bb2
-rw-r--r--meta/recipes-core/musl/libc-test_git.bb2
-rw-r--r--meta/recipes-core/musl/libssp-nonshared.bb3
-rw-r--r--meta/recipes-core/musl/libucontext_1.3.2.bb2
-rw-r--r--meta/recipes-core/musl/musl-legacy-error.bb3
-rw-r--r--meta/recipes-core/musl/musl-locales_git.bb2
-rw-r--r--meta/recipes-core/musl/musl-obstack.bb2
-rw-r--r--meta/recipes-core/musl/musl-utils.bb2
-rw-r--r--meta/recipes-core/musl/musl_git.bb2
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc2
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.5.bb1
-rw-r--r--meta/recipes-core/netbase/netbase_6.5.bb2
-rw-r--r--meta/recipes-core/newlib/newlib.inc2
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb3
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-self-hosted.bb2
-rw-r--r--meta/recipes-core/picolibc/picolibc.inc1
-rw-r--r--meta/recipes-core/picolibc/picolibc_git.bb1
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb2
-rw-r--r--meta/recipes-core/seatd/seatd_0.9.1.bb1
-rw-r--r--meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb2
-rw-r--r--meta/recipes-core/systemd/systemd-bootconf_1.00.bb3
-rw-r--r--meta/recipes-core/systemd/systemd-compat-units.bb4
-rw-r--r--meta/recipes-core/systemd/systemd-conf_1.0.bb3
-rw-r--r--meta/recipes-core/systemd/systemd-machine-units_1.0.bb1
-rw-r--r--meta/recipes-core/systemd/systemd.inc2
-rw-r--r--meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch11
-rw-r--r--meta/recipes-core/systemd/systemd_257.6.bb2
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb4
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_3.14.bb2
-rw-r--r--meta/recipes-core/ttyrun/ttyrun_2.37.0.bb2
-rw-r--r--meta/recipes-core/udev/udev-extraconf_1.1.bb3
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d_0.8.bb2
-rw-r--r--meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb2
-rw-r--r--meta/recipes-core/util-linux/util-linux.inc3
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-test_sysinfo.c-print-out-SIGRTMIN.patch50
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch (renamed from meta/recipes-core/util-linux/util-linux/0002-ts-kill-decode-use-SIGRTMIN-from-test_sysinfo-instea.patch)16
-rw-r--r--meta/recipes-core/volatile-binds/volatile-binds.bb3
-rw-r--r--meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb1
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.44.inc1
-rw-r--r--meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb2
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_6.14.bb2
-rw-r--r--meta/recipes-devtools/chrpath/chrpath_0.18.bb2
-rw-r--r--meta/recipes-devtools/clang/clang_git.bb6
-rw-r--r--meta/recipes-devtools/clang/common.inc3
-rw-r--r--meta/recipes-devtools/clang/compiler-rt_git.bb1
-rw-r--r--meta/recipes-devtools/clang/llvm-project-source.inc1
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.31.6.bb2
-rw-r--r--meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch202
-rw-r--r--meta/recipes-devtools/cmake/cmake_3.31.6.bb1
-rw-r--r--meta/recipes-devtools/createrepo-c/createrepo-c_1.2.1.bb2
-rw-r--r--meta/recipes-devtools/devel-config/distcc-config.bb3
-rw-r--r--meta/recipes-devtools/devel-config/nfs-export-root.bb3
-rw-r--r--meta/recipes-devtools/distcc/distcc_3.4.bb1
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.23.0.bb (renamed from meta/recipes-devtools/dnf/dnf_4.22.0.bb)5
-rw-r--r--meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb3
-rw-r--r--meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb2
-rw-r--r--meta/recipes-devtools/dpkg/dpkg.inc1
-rw-r--r--meta/recipes-devtools/dpkg/dpkg_1.22.11.bb1
-rw-r--r--meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb3
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs.inc1
-rw-r--r--meta/recipes-devtools/erofs-utils/erofs-utils_1.8.5.bb2
-rw-r--r--meta/recipes-devtools/expect/expect_5.45.4.bb2
-rw-r--r--meta/recipes-devtools/fastfloat/fastfloat_8.0.2.bb1
-rw-r--r--meta/recipes-devtools/file/file_5.46.bb1
-rw-r--r--meta/recipes-devtools/fmt/fmt_11.2.0.bb2
-rw-r--r--meta/recipes-devtools/gcc/gcc-15.1.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb2
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-multilib-config.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-shared-source.inc4
-rw-r--r--meta/recipes-devtools/gcc/libgcc-common.inc1
-rw-r--r--meta/recipes-devtools/gcc/libgcc.inc1
-rw-r--r--meta/recipes-devtools/git/git_2.49.0.bb2
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb1
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.24.4.bb3
-rw-r--r--meta/recipes-devtools/go/go-common.inc3
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian.inc1
-rw-r--r--meta/recipes-devtools/json-c/json-c_0.18.bb7
-rw-r--r--meta/recipes-devtools/libcomps/libcomps_0.1.21.bb2
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.74.0.bb2
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd_2.15.1.bb2
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.19.0.bb2
-rw-r--r--meta/recipes-devtools/libtool/nativesdk-libtool_2.5.4.bb2
-rw-r--r--meta/recipes-devtools/makedevs/makedevs_1.0.1.bb3
-rw-r--r--meta/recipes-devtools/mmc/mmc-utils_git.bb2
-rw-r--r--meta/recipes-devtools/mtd/mtd-utils_2.3.0.bb2
-rw-r--r--meta/recipes-devtools/ninja/ninja_1.12.1.bb2
-rw-r--r--meta/recipes-devtools/opkg-utils/opkg-utils_0.7.0.bb2
-rw-r--r--meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb4
-rw-r--r--meta/recipes-devtools/opkg/opkg_0.7.0.bb1
-rw-r--r--meta/recipes-devtools/patch/patch.inc2
-rw-r--r--meta/recipes-devtools/patchelf/patchelf_0.18.0.bb2
-rw-r--r--meta/recipes-devtools/perl-cross/perlcross_1.6.2.bb2
-rw-r--r--meta/recipes-devtools/perl/libmodule-build-perl_0.4234.bb2
-rw-r--r--meta/recipes-devtools/perl/libtest-fatal-perl_0.017.bb2
-rw-r--r--meta/recipes-devtools/perl/libtest-needs-perl_0.002010.bb2
-rw-r--r--meta/recipes-devtools/perl/libtest-warnings-perl_0.038.bb2
-rw-r--r--meta/recipes-devtools/perl/libtry-tiny-perl_0.32.bb2
-rw-r--r--meta/recipes-devtools/perl/libxml-parser-perl_2.47.bb2
-rw-r--r--meta/recipes-devtools/perl/libxml-simple-perl_2.25.bb2
-rw-r--r--meta/recipes-devtools/perl/perl_5.40.2.bb1
-rw-r--r--meta/recipes-devtools/pkgconfig/pkgconfig_git.bb2
-rw-r--r--meta/recipes-devtools/pseudo/pseudo.inc1
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb5
-rw-r--r--meta/recipes-devtools/python/python3-babel_2.17.0.bb2
-rw-r--r--meta/recipes-devtools/python/python3-calver_2025.04.17.bb2
-rw-r--r--meta/recipes-devtools/python/python3-certifi_2025.6.15.bb (renamed from meta/recipes-devtools/python/python3-certifi_2025.4.26.bb)4
-rw-r--r--meta/recipes-devtools/python/python3-colorama_0.4.6.bb10
-rw-r--r--meta/recipes-devtools/python/python3-cryptography-common.inc2
-rw-r--r--meta/recipes-devtools/python/python3-cryptography-vectors.bb2
-rw-r--r--meta/recipes-devtools/python/python3-cryptography.bb2
-rw-r--r--meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch4
-rw-r--r--meta/recipes-devtools/python/python3-dbus_1.4.0.bb2
-rw-r--r--meta/recipes-devtools/python/python3-dtc_1.7.2.bb2
-rw-r--r--meta/recipes-devtools/python/python3-mako_1.3.10.bb2
-rw-r--r--meta/recipes-devtools/python/python3-maturin-crates.inc54
-rw-r--r--meta/recipes-devtools/python/python3-maturin/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch110
-rw-r--r--meta/recipes-devtools/python/python3-maturin_1.9.0.bb (renamed from meta/recipes-devtools/python/python3-maturin_1.8.6.bb)6
-rw-r--r--meta/recipes-devtools/python/python3-numpy_2.3.0.bb2
-rw-r--r--meta/recipes-devtools/python/python3-pefile_2024.8.26.bb1
-rw-r--r--meta/recipes-devtools/python/python3-psutil_7.0.0.bb1
-rw-r--r--meta/recipes-devtools/python/python3-pycairo_1.28.0.bb2
-rw-r--r--meta/recipes-devtools/python/python3-pygobject_3.52.3.bb2
-rw-r--r--meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb (renamed from meta/recipes-devtools/python/python3-pytest-subtests_0.14.1.bb)2
-rw-r--r--meta/recipes-devtools/python/python3-pytest_8.4.1.bb (renamed from meta/recipes-devtools/python/python3-pytest_8.3.5.bb)6
-rw-r--r--meta/recipes-devtools/python/python3-scons_4.9.1.bb2
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb (renamed from meta/recipes-devtools/python/python3-setuptools-scm_8.2.1.bb)2
-rw-r--r--meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch24
-rw-r--r--meta/recipes-devtools/python/python3-smartypants_2.0.2.bb (renamed from meta/recipes-devtools/python/python3-smartypants_2.0.0.bb)4
-rw-r--r--meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb2
-rw-r--r--meta/recipes-devtools/python/python3_3.13.5.bb (renamed from meta/recipes-devtools/python/python3_3.13.4.bb)5
-rw-r--r--meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb5
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb3
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc1
-rw-r--r--meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb4
-rw-r--r--meta/recipes-devtools/repo/repo_2.55.2.bb2
-rw-r--r--meta/recipes-devtools/rpm-sequoia/rpm-sequoia-crypto-policy_git.bb2
-rw-r--r--meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.7.0.bb3
-rw-r--r--meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch42
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.20.1.bb2
-rw-r--r--meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb3
-rw-r--r--meta/recipes-devtools/rust/cargo-c-crates.inc910
-rw-r--r--meta/recipes-devtools/rust/cargo-c/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch38
-rw-r--r--meta/recipes-devtools/rust/cargo-c_0.10.13+cargo-0.88.0.bb (renamed from meta/recipes-devtools/rust/cargo-c_0.10.5+cargo-0.83.0.bb)3
-rw-r--r--meta/recipes-devtools/rust/cargo_1.87.0.bb (renamed from meta/recipes-devtools/rust/cargo_1.86.0.bb)1
-rw-r--r--meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch30
-rw-r--r--meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch4
-rw-r--r--meta/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch11
-rw-r--r--meta/recipes-devtools/rust/files/rust-oe-selftest.patch147
-rw-r--r--meta/recipes-devtools/rust/files/triagebot.patch32
-rw-r--r--meta/recipes-devtools/rust/libstd-rs_1.87.0.bb (renamed from meta/recipes-devtools/rust/libstd-rs_1.86.0.bb)0
-rw-r--r--meta/recipes-devtools/rust/rust-cross-canadian.inc3
-rw-r--r--meta/recipes-devtools/rust/rust-cross-canadian_1.87.0.bb (renamed from meta/recipes-devtools/rust/rust-cross-canadian_1.86.0.bb)0
-rw-r--r--meta/recipes-devtools/rust/rust-llvm_1.87.0.bb (renamed from meta/recipes-devtools/rust/rust-llvm_1.86.0.bb)4
-rw-r--r--meta/recipes-devtools/rust/rust-snapshot.inc78
-rw-r--r--meta/recipes-devtools/rust/rust-source.inc5
-rw-r--r--meta/recipes-devtools/rust/rust_1.87.0.bb (renamed from meta/recipes-devtools/rust/rust_1.86.0.bb)15
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools_4.7.bb2
-rw-r--r--meta/recipes-devtools/strace/strace_6.15.bb1
-rw-r--r--meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb3
-rw-r--r--meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb3
-rw-r--r--meta/recipes-devtools/tcltk/tcl_9.0.1.bb2
-rw-r--r--meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb2
-rw-r--r--meta/recipes-devtools/unfs3/unfs3_0.11.0.bb1
-rw-r--r--meta/recipes-devtools/xmlto/xmlto_0.0.29.bb1
-rw-r--r--meta/recipes-extended/acpica/acpica_20240827.bb2
-rw-r--r--meta/recipes-extended/asciidoc/asciidoc_10.2.1.bb2
-rw-r--r--meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb3
-rw-r--r--meta/recipes-extended/bzip2/bzip2_1.0.8.bb26
-rw-r--r--meta/recipes-extended/cracklib/cracklib_2.10.3.bb2
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript_10.05.1.bb1
-rw-r--r--meta/recipes-extended/hdparm/hdparm_9.65.bb1
-rw-r--r--meta/recipes-extended/iputils/iputils_20250605.bb2
-rw-r--r--meta/recipes-extended/libaio/libaio_0.3.113.bb1
-rw-r--r--meta/recipes-extended/libarchive/libarchive_3.8.1.bb (renamed from meta/recipes-extended/libarchive/libarchive_3.7.9.bb)4
-rw-r--r--meta/recipes-extended/libnsl/libnsl2_2.0.1.bb2
-rw-r--r--meta/recipes-extended/libnss-nis/libnss-nis.bb2
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.7.33.bb2
-rw-r--r--meta/recipes-extended/lsof/lsof_4.99.4.bb2
-rw-r--r--meta/recipes-extended/ltp/ltp_20250130.bb2
-rw-r--r--meta/recipes-extended/mdadm/mdadm_4.4.bb2
-rw-r--r--meta/recipes-extended/net-tools/net-tools_2.10.bb2
-rw-r--r--meta/recipes-extended/pam/libpam_1.7.0.bb2
-rw-r--r--meta/recipes-extended/perl/libconvert-asn1-perl_0.34.bb2
-rw-r--r--meta/recipes-extended/perl/libtimedate-perl_2.30.bb2
-rw-r--r--meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb2
-rw-r--r--meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb2
-rw-r--r--meta/recipes-extended/perl/libxml-sax-perl_1.02.bb2
-rw-r--r--meta/recipes-extended/procps/procps_4.0.5.bb2
-rw-r--r--meta/recipes-extended/psmisc/psmisc_23.7.bb2
-rw-r--r--meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb2
-rw-r--r--meta/recipes-extended/scdoc/scdoc_1.11.3.bb2
-rw-r--r--meta/recipes-extended/shadow/shadow-securetty_4.6.bb4
-rw-r--r--meta/recipes-extended/shadow/shadow-sysroot_4.6.bb4
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.18.12.bb1
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.7.2.bb2
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.7.7.bb1
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb2
-rw-r--r--meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb3
-rw-r--r--meta/recipes-extended/timezone/timezone.inc2
-rw-r--r--meta/recipes-extended/unzip/unzip_6.0.bb2
-rw-r--r--meta/recipes-extended/watchdog/watchdog-config.bb3
-rw-r--r--meta/recipes-extended/which/which_2.21.bb1
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb2
-rw-r--r--meta/recipes-extended/zip/zip_3.0.bb3
-rw-r--r--meta/recipes-extended/zstd/zstd_1.5.7.bb2
-rw-r--r--meta/recipes-gnome/gi-docgen/gi-docgen_2025.3.bb2
-rw-r--r--meta/recipes-gnome/gnome/gconf_3.2.6.bb2
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3_3.24.43.bb2
-rw-r--r--meta/recipes-gnome/gtk+/gtk4_4.18.6.bb2
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.8.3.bb1
-rw-r--r--meta/recipes-gnome/libportal/libportal_0.9.1.bb1
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.21.6.bb1
-rw-r--r--meta/recipes-gnome/libxmlb/libxmlb_0.3.22.bb1
-rw-r--r--meta/recipes-graphics/builder/builder_0.1.bb3
-rw-r--r--meta/recipes-graphics/cairo/cairo_1.18.4.bb1
-rw-r--r--meta/recipes-graphics/glslang/glslang_1.4.313.0.bb1
-rw-r--r--meta/recipes-graphics/graphene/graphene_1.10.8.bb1
-rw-r--r--meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.30.bb2
-rw-r--r--meta/recipes-graphics/kmscube/kmscube_git.bb2
-rw-r--r--meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb1
-rw-r--r--meta/recipes-graphics/libfakekey/libfakekey_git.bb2
-rw-r--r--meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb37
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox_1.14.bb2
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.32.8.bb2
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.22.0.bb1
-rw-r--r--meta/recipes-graphics/libva/libva.inc2
-rw-r--r--meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb4
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb2
-rw-r--r--meta/recipes-graphics/mesa/libglu_9.0.3.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc5
-rw-r--r--meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb4
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb1
-rw-r--r--meta/recipes-graphics/piglit/piglit_git.bb2
-rw-r--r--meta/recipes-graphics/pong-clock/pong-clock_1.0.bb3
-rw-r--r--meta/recipes-graphics/shaderc/shaderc_2025.2.bb1
-rw-r--r--meta/recipes-graphics/spir/spirv-headers_1.4.313.0.bb1
-rw-r--r--meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb2
-rw-r--r--meta/recipes-graphics/spir/spirv-tools_1.4.313.0.bb1
-rw-r--r--meta/recipes-graphics/startup-notification/startup-notification_0.12.bb2
-rw-r--r--meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb2
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_1.1.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples_git.bb1
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-volk_1.4.313.0.bb2
-rw-r--r--meta/recipes-graphics/waffle/waffle_1.8.1.bb1
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.28.1.bb1
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb3
-rw-r--r--meta/recipes-graphics/wayland/weston_14.0.2.bb1
-rw-r--r--meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb3
-rw-r--r--meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb2
-rw-r--r--meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb4
-rw-r--r--meta/recipes-graphics/xinput-calibrator/xinput-calibrator_0.8.0.bb2
-rw-r--r--meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb1
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb1
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-font-common.inc2
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcvt_0.1.3.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbcommon_1.10.0.bb1
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb1
-rw-r--r--meta/recipes-graphics/xorg-lib/xorg-lib-common.inc2
-rw-r--r--meta/recipes-graphics/xorg-util/xorg-util-common.inc2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb3
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg.inc2
-rw-r--r--meta/recipes-kernel/blktrace/blktrace_1.3.0.bb3
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev.inc2
-rw-r--r--meta/recipes-kernel/dtc/dtc_1.7.2.bb2
-rw-r--r--meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb3
-rw-r--r--meta/recipes-kernel/kern-tools/kern-tools-native_git.bb1
-rw-r--r--meta/recipes-kernel/kernel-signing-keys/kernel-signing-keys-native.bb2
-rw-r--r--meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb3
-rw-r--r--meta/recipes-kernel/libtraceevent/libtraceevent_1.8.4.bb2
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20250509.bb3
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc2
-rw-r--r--meta/recipes-kernel/linux/cve-exclusion_6.12.inc1
-rw-r--r--meta/recipes-kernel/linux/linux-dummy.bb5
-rw-r--r--meta/recipes-kernel/lttng/babeltrace2_2.1.1.bb2
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.5.11.bb2
-rw-r--r--meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb3
-rw-r--r--meta/recipes-kernel/makedumpfile/makedumpfile_1.7.7.bb2
-rw-r--r--meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb3
-rw-r--r--meta/recipes-kernel/perf/perf.bb3
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.15.bb2
-rw-r--r--meta/recipes-kernel/systemtap/systemtap-native_5.3.bb (renamed from meta/recipes-kernel/systemtap/systemtap-native_5.2.bb)0
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch15
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_5.3.bb (renamed from meta/recipes-kernel/systemtap/systemtap_5.2.bb)0
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc6
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb1
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.26.2.bb4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.2.bb2
-rw-r--r--meta/recipes-multimedia/libpng/files/run-ptest7
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.48.bb42
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb2
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb2
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb1
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb2
-rw-r--r--meta/recipes-rt/rt-tests/rt-tests.inc1
-rw-r--r--meta/recipes-sato/l3afpad/l3afpad_git.bb2
-rw-r--r--meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb2
-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.bb3
-rw-r--r--meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb2
-rw-r--r--meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb3
-rw-r--r--meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb2
-rw-r--r--meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb1
-rw-r--r--meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb3
-rw-r--r--meta/recipes-sato/puzzles/puzzles_git.bb2
-rw-r--r--meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb2
-rw-r--r--meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb2
-rw-r--r--meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb2
-rw-r--r--meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb4
-rw-r--r--meta/recipes-support/appstream/appstream_1.0.5.bb2
-rw-r--r--meta/recipes-support/apr/apr-util_1.6.3.bb1
-rw-r--r--meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb1
-rw-r--r--meta/recipes-support/bmaptool/bmaptool_3.9.0.bb1
-rw-r--r--meta/recipes-support/boost/boost-1.88.0.inc2
-rw-r--r--meta/recipes-support/boost/boost-build-native_1.87.0.bb2
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates_20250419.bb2
-rw-r--r--meta/recipes-support/consolekit/consolekit_0.4.6.bb2
-rw-r--r--meta/recipes-support/debianutils/debianutils_5.23.1.bb3
-rw-r--r--meta/recipes-support/dos2unix/dos2unix_7.5.2.bb2
-rw-r--r--meta/recipes-support/enchant/enchant2_2.8.6.bb2
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.24.bb1
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb2
-rw-r--r--meta/recipes-support/hwdata/hwdata_0.396.bb2
-rw-r--r--meta/recipes-support/icu/icu_77-1.bb2
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.18.0.bb2
-rw-r--r--meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb2
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng.inc1
-rw-r--r--meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch19
-rw-r--r--meta/recipes-support/libcheck/libcheck/subunit.patch43
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb6
-rw-r--r--meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb2
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb2
-rw-r--r--meta/recipes-support/libfm/libfm-extra_1.3.2.bb2
-rw-r--r--meta/recipes-support/libfm/libfm_1.3.2.bb1
-rw-r--r--meta/recipes-support/libgit2/libgit2_1.9.0.bb2
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.55.bb1
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb1
-rw-r--r--meta/recipes-support/libmpc/libmpc_1.3.1.bb2
-rw-r--r--meta/recipes-support/libpcre/libpcre2_10.45.bb2
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.45.bb2
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.5.9.bb1
-rw-r--r--meta/recipes-support/libseccomp/libseccomp_2.6.0.bb2
-rw-r--r--meta/recipes-support/libsoup/libsoup_3.6.5.bb2
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.15.3.bb3
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.29.bb2
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.43.bb2
-rw-r--r--meta/recipes-support/libyaml/libyaml_0.2.5.bb2
-rw-r--r--meta/recipes-support/lz4/lz4_1.10.0.bb2
-rw-r--r--meta/recipes-support/lzo/lzo_2.10.bb1
-rw-r--r--meta/recipes-support/numactl/numactl_2.0.19.bb2
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.25.5.bb1
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb2
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_6.17.bb2
-rw-r--r--meta/recipes-support/sass/libsass_3.6.6.bb2
-rw-r--r--meta/recipes-support/sass/sassc_3.6.2.bb1
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb2
-rw-r--r--meta/recipes-support/sqlite/sqlite3.inc2
-rw-r--r--meta/recipes-support/user-creation/xuser-account_0.1.bb3
-rw-r--r--meta/recipes-support/utfcpp/utfcpp_4.0.6.bb2
-rw-r--r--meta/recipes-support/vim/vim.inc2
-rw-r--r--meta/recipes-support/xxhash/xxhash_0.8.3.bb2
-rwxr-xr-xscripts/contrib/improve_kernel_cve_report.py467
-rwxr-xr-xscripts/lib/devtool/ide_sdk.py2
-rw-r--r--scripts/lib/devtool/standard.py12
-rw-r--r--scripts/lib/devtool/upgrade.py2
-rw-r--r--scripts/lib/recipetool/append.py8
-rw-r--r--scripts/lib/recipetool/create.py5
-rwxr-xr-xscripts/test-remote-image9
-rwxr-xr-xscripts/wic49
628 files changed, 3896 insertions, 2470 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index eac3cbdfb5..a2c2432db1 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -39,10 +39,10 @@ variable and then calls the ``download`` method to download the files.
39 39
40The instantiation of the fetch class is usually followed by:: 40The instantiation of the fetch class is usually followed by::
41 41
42 rootdir = l.getVar('WORKDIR') 42 rootdir = l.getVar('UNPACKDIR')
43 fetcher.unpack(rootdir) 43 fetcher.unpack(rootdir)
44 44
45This code unpacks the downloaded files to the specified by ``WORKDIR``. 45This code unpacks the downloaded files to the specified by ``UNPACKDIR``.
46 46
47.. note:: 47.. note::
48 48
@@ -51,7 +51,7 @@ This code unpacks the downloaded files to the specified by ``WORKDIR``.
51 examine the OpenEmbedded class file ``base.bbclass`` 51 examine the OpenEmbedded class file ``base.bbclass``
52 . 52 .
53 53
54The :term:`SRC_URI` and ``WORKDIR`` variables are not hardcoded into the 54The :term:`SRC_URI` and ``UNPACKDIR`` variables are not hardcoded into the
55fetcher, since those fetcher methods can be (and are) called with 55fetcher, since those fetcher methods can be (and are) called with
56different variable names. In OpenEmbedded for example, the shared state 56different variable names. In OpenEmbedded for example, the shared state
57(sstate) code uses the fetch module to fetch the sstate files. 57(sstate) code uses the fetch module to fetch the sstate files.
@@ -463,13 +463,6 @@ Here are some example URLs::
463 463
464.. note:: 464.. note::
465 465
466 When using ``git`` as the fetcher of the main source code of your software,
467 ``S`` should be set accordingly::
468
469 S = "${WORKDIR}/git"
470
471.. note::
472
473 Specifying passwords directly in ``git://`` urls is not supported. 466 Specifying passwords directly in ``git://`` urls is not supported.
474 There are several reasons: :term:`SRC_URI` is often written out to logs and 467 There are several reasons: :term:`SRC_URI` is often written out to logs and
475 other places, and that could easily leak passwords; it is also all too 468 other places, and that could easily leak passwords; it is also all too
@@ -598,7 +591,7 @@ and port, username, and password, and fetches the Head Revision::
598 SRC_URI = "p4://example-depot/main/source/..." 591 SRC_URI = "p4://example-depot/main/source/..."
599 SRCREV = "${AUTOREV}" 592 SRCREV = "${AUTOREV}"
600 PV = "p4-${SRCPV}" 593 PV = "p4-${SRCPV}"
601 S = "${WORKDIR}/p4" 594 S = "${UNPACKDIR}/p4"
602 595
603Here is an example that specifies the server URL and port, username, and 596Here is an example that specifies the server URL and port, username, and
604password, and fetches a Revision based on a Label:: 597password, and fetches a Revision based on a Label::
@@ -607,15 +600,15 @@ password, and fetches a Revision based on a Label::
607 SRC_URI = "p4://user:passwd@example-depot/main/source/..." 600 SRC_URI = "p4://user:passwd@example-depot/main/source/..."
608 SRCREV = "release-1.0" 601 SRCREV = "release-1.0"
609 PV = "p4-${SRCPV}" 602 PV = "p4-${SRCPV}"
610 S = "${WORKDIR}/p4" 603 S = "${UNPACKDIR}/p4"
611 604
612.. note:: 605.. note::
613 606
614 You should always set S to "${WORKDIR}/p4" in your recipe. 607 You should always set S to "${UNPACKDIR}/p4" in your recipe.
615 608
616By default, the fetcher strips the depot location from the local file paths. In 609By default, the fetcher strips the depot location from the local file paths. In
617the above example, the content of ``example-depot/main/source/`` will be placed 610the above example, the content of ``example-depot/main/source/`` will be placed
618in ``${WORKDIR}/p4``. For situations where preserving parts of the remote depot 611in ``${UNPACKDIR}/p4``. For situations where preserving parts of the remote depot
619paths locally is desirable, the fetcher supports two parameters: 612paths locally is desirable, the fetcher supports two parameters:
620 613
621- *"module":* 614- *"module":*
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
index a27b7758d9..f60a9d8312 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
@@ -998,9 +998,9 @@ This directive allows fine-tuning local configurations with configuration
998snippets contained in layers in a structured, controlled way. Typically it would 998snippets contained in layers in a structured, controlled way. Typically it would
999go into ``bitbake.conf``, for example:: 999go into ``bitbake.conf``, for example::
1000 1000
1001 addfragments conf/fragments OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS 1001 addfragments conf/fragments OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS OE_BUILTIN_FRAGMENTS
1002 1002
1003``addfragments`` takes three parameters: 1003``addfragments`` takes four parameters:
1004 1004
1005- path prefix for fragment files inside the layer file tree that bitbake 1005- path prefix for fragment files inside the layer file tree that bitbake
1006 uses to construct full paths to the fragment files 1006 uses to construct full paths to the fragment files
@@ -1011,6 +1011,8 @@ go into ``bitbake.conf``, for example::
1011- name of variable that contains a list of variable names containing 1011- name of variable that contains a list of variable names containing
1012 fragment-specific metadata (such as descriptions) 1012 fragment-specific metadata (such as descriptions)
1013 1013
1014- name of variable that contains definitions for built-in fragments
1015
1014This allows listing enabled configuration fragments in ``OE_FRAGMENTS`` 1016This allows listing enabled configuration fragments in ``OE_FRAGMENTS``
1015variable like this:: 1017variable like this::
1016 1018
@@ -1035,6 +1037,19 @@ The implementation will add a flag containing the fragment name to each of those
1035when parsing fragments, so that the variables are namespaced by fragment name, and do not override 1037when parsing fragments, so that the variables are namespaced by fragment name, and do not override
1036each other when several fragments are enabled. 1038each other when several fragments are enabled.
1037 1039
1040The variable containing a built-in fragment definitions could look like this::
1041
1042 OE_BUILTIN_FRAGMENTS = "someprefix:SOMEVARIABLE anotherprefix:ANOTHERVARIABLE"
1043
1044and then if 'someprefix/somevalue' is added to the variable that holds the list
1045of enabled fragments:
1046
1047 OE_FRAGMENTS = "... someprefix/somevalue"
1048
1049bitbake will treat that as direct value assignment in its configuration::
1050
1051 SOMEVARIABLE = "somevalue"
1052
1038Functions 1053Functions
1039========= 1054=========
1040 1055
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index 477443e228..6be8dbbf63 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -310,6 +310,11 @@ overview of their function and contents.
310 310
311 For example usage, see :term:`BB_GIT_SHALLOW`. 311 For example usage, see :term:`BB_GIT_SHALLOW`.
312 312
313 :term:`BB_GIT_DEFAULT_DESTSUFFIX`
314 The default destination directory where the Git fetcher unpacks the
315 source code. If this variable is not set, the source code is unpacked in a
316 directory named "git".
317
313 :term:`BB_GIT_SHALLOW` 318 :term:`BB_GIT_SHALLOW`
314 Setting this variable to "1" enables the support for fetching, using and 319 Setting this variable to "1" enables the support for fetching, using and
315 generating mirror tarballs of `shallow git repositories <https://riptutorial.com/git/example/4584/shallow-clone>`_. 320 generating mirror tarballs of `shallow git repositories <https://riptutorial.com/git/example/4584/shallow-clone>`_.
@@ -533,11 +538,28 @@ overview of their function and contents.
533 version 4.20 expose under ``/proc/pressure``. The threshold represents 538 version 4.20 expose under ``/proc/pressure``. The threshold represents
534 the difference in "total" pressure from the previous second. The 539 the difference in "total" pressure from the previous second. The
535 minimum value is 1.0 (extremely slow builds) and the maximum is 540 minimum value is 1.0 (extremely slow builds) and the maximum is
536 1000000 (a pressure value unlikely to ever be reached). 541 1000000 (a pressure value unlikely to ever be reached). See
542 https://docs.kernel.org/accounting/psi.html for more information.
543
544 A default value to limit the CPU pressure to be set in ``conf/local.conf``
545 could be::
546
547 BB_PRESSURE_MAX_CPU = "15000"
548
549 Multiple values should be tested on the build host to determine what suits
550 best, depending on the need for performances versus load average during
551 the build.
552
553 .. note::
537 554
538 This threshold can be set in ``conf/local.conf`` as:: 555 You may see numerous messages printed by BitBake in the case the
556 :term:`BB_PRESSURE_MAX_CPU` is too low:
539 557
540 BB_PRESSURE_MAX_CPU = "500" 558 Pressure status changed to CPU: True, IO: False, Mem: False (CPU: 1105.9/2.0, IO: 0.0/2.0, Mem: 0.0/2.0) - using 1/64 bitbake threads
559
560 This means that the :term:`BB_PRESSURE_MAX_CPU` should be increased to
561 a reasonable value for limiting the CPU pressure on the system.
562 Monitor the varying value after ``IO:`` above to set a sensible value.
541 563
542 :term:`BB_PRESSURE_MAX_IO` 564 :term:`BB_PRESSURE_MAX_IO`
543 Specifies a maximum I/O pressure threshold, above which BitBake's 565 Specifies a maximum I/O pressure threshold, above which BitBake's
@@ -549,14 +571,34 @@ overview of their function and contents.
549 version 4.20 expose under ``/proc/pressure``. The threshold represents 571 version 4.20 expose under ``/proc/pressure``. The threshold represents
550 the difference in "total" pressure from the previous second. The 572 the difference in "total" pressure from the previous second. The
551 minimum value is 1.0 (extremely slow builds) and the maximum is 573 minimum value is 1.0 (extremely slow builds) and the maximum is
552 1000000 (a pressure value unlikely to ever be reached). 574 1000000 (a pressure value unlikely to ever be reached). See
575 https://docs.kernel.org/accounting/psi.html for more information.
553 576
554 At this point in time, experiments show that IO pressure tends to 577 At this point in time, experiments show that IO pressure tends to
555 be short-lived and regulating just the CPU with 578 be short-lived and regulating just the CPU with
556 :term:`BB_PRESSURE_MAX_CPU` can help to reduce it. 579 :term:`BB_PRESSURE_MAX_CPU` can help to reduce it.
557 580
558 :term:`BB_PRESSURE_MAX_MEMORY` 581 A default value to limit the IO pressure to be set in ``conf/local.conf``
582 could be::
583
584 BB_PRESSURE_MAX_IO = "15000"
585
586 Multiple values should be tested on the build host to determine what suits
587 best, depending on the need for performances versus I/O usage during the
588 build.
589
590 .. note::
559 591
592 You may see numerous messages printed by BitBake in the case the
593 :term:`BB_PRESSURE_MAX_IO` is too low::
594
595 Pressure status changed to CPU: None, IO: True, Mem: False (CPU: 2236.0/None, IO: 153.6/2.0, Mem: 0.0/2.0) - using 19/64 bitbake threads
596
597 This means that the :term:`BB_PRESSURE_MAX_IO` should be increased to
598 a reasonable value for limiting the I/O pressure on the system.
599 Monitor the varying value after ``IO:`` above to set a sensible value.
600
601 :term:`BB_PRESSURE_MAX_MEMORY`
560 Specifies a maximum memory pressure threshold, above which BitBake's 602 Specifies a maximum memory pressure threshold, above which BitBake's
561 scheduler will not start new tasks (providing there is at least 603 scheduler will not start new tasks (providing there is at least
562 one active task). If no value is set, memory pressure is not 604 one active task). If no value is set, memory pressure is not
@@ -566,7 +608,8 @@ overview of their function and contents.
566 version 4.20 expose under ``/proc/pressure``. The threshold represents 608 version 4.20 expose under ``/proc/pressure``. The threshold represents
567 the difference in "total" pressure from the previous second. The 609 the difference in "total" pressure from the previous second. The
568 minimum value is 1.0 (extremely slow builds) and the maximum is 610 minimum value is 1.0 (extremely slow builds) and the maximum is
569 1000000 (a pressure value unlikely to ever be reached). 611 1000000 (a pressure value unlikely to ever be reached). See
612 https://docs.kernel.org/accounting/psi.html for more information.
570 613
571 Memory pressure is experienced when time is spent swapping, 614 Memory pressure is experienced when time is spent swapping,
572 refaulting pages from the page cache or performing direct reclaim. 615 refaulting pages from the page cache or performing direct reclaim.
@@ -574,6 +617,26 @@ overview of their function and contents.
574 might be useful as a last resort to prevent OOM errors if they are 617 might be useful as a last resort to prevent OOM errors if they are
575 occurring during builds. 618 occurring during builds.
576 619
620 A default value to limit the memory pressure to be set in
621 ``conf/local.conf`` could be::
622
623 BB_PRESSURE_MAX_MEMORY = "15000"
624
625 Multiple values should be tested on the build host to determine what suits
626 best, depending on the need for performances versus memory consumption
627 during the build.
628
629 .. note::
630
631 You may see numerous messages printed by BitBake in the case the
632 :term:`BB_PRESSURE_MAX_MEMORY` is too low::
633
634 Pressure status changed to CPU: None, IO: False, Mem: True (CPU: 29.5/None, IO: 0.0/2.0, Mem: 2553.3/2.0) - using 17/64 bitbake threads
635
636 This means that the :term:`BB_PRESSURE_MAX_MEMORY` should be increased to
637 a reasonable value for limiting the memory pressure on the system.
638 Monitor the varying value after ``Mem:`` above to set a sensible value.
639
577 :term:`BB_RUNFMT` 640 :term:`BB_RUNFMT`
578 Specifies the name of the executable script files (i.e. run files) 641 Specifies the name of the executable script files (i.e. run files)
579 saved into ``${``\ :term:`T`\ ``}``. By default, the 642 saved into ``${``\ :term:`T`\ ``}``. By default, the
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 55dd084abc..14ec45a3f6 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -199,6 +199,8 @@ class Git(FetchMethod):
199 ud.shallow_skip_fast = False 199 ud.shallow_skip_fast = False
200 ud.shallow = d.getVar("BB_GIT_SHALLOW") == "1" 200 ud.shallow = d.getVar("BB_GIT_SHALLOW") == "1"
201 ud.shallow_extra_refs = (d.getVar("BB_GIT_SHALLOW_EXTRA_REFS") or "").split() 201 ud.shallow_extra_refs = (d.getVar("BB_GIT_SHALLOW_EXTRA_REFS") or "").split()
202 if 'tag' in ud.parm:
203 ud.shallow_extra_refs.append("refs/tags/" + ud.parm['tag'])
202 204
203 depth_default = d.getVar("BB_GIT_SHALLOW_DEPTH") 205 depth_default = d.getVar("BB_GIT_SHALLOW_DEPTH")
204 if depth_default is not None: 206 if depth_default is not None:
@@ -633,8 +635,6 @@ class Git(FetchMethod):
633 for line in all_refs_remote: 635 for line in all_refs_remote:
634 all_refs.append(line.split()[-1]) 636 all_refs.append(line.split()[-1])
635 extra_refs = [] 637 extra_refs = []
636 if 'tag' in ud.parm:
637 extra_refs.append(ud.parm['tag'])
638 for r in ud.shallow_extra_refs: 638 for r in ud.shallow_extra_refs:
639 if not ud.bareclone: 639 if not ud.bareclone:
640 r = r.replace('refs/heads/', 'refs/remotes/origin/') 640 r = r.replace('refs/heads/', 'refs/remotes/origin/')
@@ -660,7 +660,7 @@ class Git(FetchMethod):
660 subdir = ud.parm.get("subdir") 660 subdir = ud.parm.get("subdir")
661 subpath = ud.parm.get("subpath") 661 subpath = ud.parm.get("subpath")
662 readpathspec = "" 662 readpathspec = ""
663 def_destsuffix = "git/" 663 def_destsuffix = (d.getVar("BB_GIT_DEFAULT_DESTSUFFIX") or "git") + "/"
664 664
665 if subpath: 665 if subpath:
666 readpathspec = ":%s" % subpath 666 readpathspec = ":%s" % subpath
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index ea1096f2de..49a0788038 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -343,11 +343,12 @@ class InheritDeferredNode(AstNode):
343 bb.parse.BBHandler.inherit_defer(*self.inherit, data) 343 bb.parse.BBHandler.inherit_defer(*self.inherit, data)
344 344
345class AddFragmentsNode(AstNode): 345class AddFragmentsNode(AstNode):
346 def __init__(self, filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable): 346 def __init__(self, filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable, builtin_fragments_variable):
347 AstNode.__init__(self, filename, lineno) 347 AstNode.__init__(self, filename, lineno)
348 self.fragments_path_prefix = fragments_path_prefix 348 self.fragments_path_prefix = fragments_path_prefix
349 self.fragments_variable = fragments_variable 349 self.fragments_variable = fragments_variable
350 self.flagged_variables_list_variable = flagged_variables_list_variable 350 self.flagged_variables_list_variable = flagged_variables_list_variable
351 self.builtin_fragments_variable = builtin_fragments_variable
351 352
352 def eval(self, data): 353 def eval(self, data):
353 # No need to use mark_dependency since we would only match a fragment 354 # No need to use mark_dependency since we would only match a fragment
@@ -360,13 +361,23 @@ class AddFragmentsNode(AstNode):
360 return candidate_fragment_path 361 return candidate_fragment_path
361 return None 362 return None
362 363
364 def check_and_set_builtin_fragment(fragment, data, builtin_fragments):
365 prefix, value = fragment.split('/', 1)
366 if prefix in builtin_fragments.keys():
367 data.setVar(builtin_fragments[prefix], value)
368 return True
369 return False
370
363 fragments = data.getVar(self.fragments_variable) 371 fragments = data.getVar(self.fragments_variable)
364 layers = data.getVar('BBLAYERS') 372 layers = data.getVar('BBLAYERS')
365 flagged_variables = data.getVar(self.flagged_variables_list_variable).split() 373 flagged_variables = data.getVar(self.flagged_variables_list_variable).split()
374 builtin_fragments = {f[0]:f[1] for f in [f.split(':') for f in data.getVar(self.builtin_fragments_variable).split()] }
366 375
367 if not fragments: 376 if not fragments:
368 return 377 return
369 for f in fragments.split(): 378 for f in fragments.split():
379 if check_and_set_builtin_fragment(f, data, builtin_fragments):
380 continue
370 layerid, fragment_name = f.split('/', 1) 381 layerid, fragment_name = f.split('/', 1)
371 full_fragment_name = data.expand("{}/{}.conf".format(self.fragments_path_prefix, fragment_name)) 382 full_fragment_name = data.expand("{}/{}.conf".format(self.fragments_path_prefix, fragment_name))
372 fragment_path = find_fragment(layers, layerid, full_fragment_name) 383 fragment_path = find_fragment(layers, layerid, full_fragment_name)
@@ -430,7 +441,8 @@ def handleAddFragments(statements, filename, lineno, m):
430 fragments_path_prefix = m.group(1) 441 fragments_path_prefix = m.group(1)
431 fragments_variable = m.group(2) 442 fragments_variable = m.group(2)
432 flagged_variables_list_variable = m.group(3) 443 flagged_variables_list_variable = m.group(3)
433 statements.append(AddFragmentsNode(filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable)) 444 builtin_fragments_variable = m.group(4)
445 statements.append(AddFragmentsNode(filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable, builtin_fragments_variable))
434 446
435def runAnonFuncs(d): 447def runAnonFuncs(d):
436 code = [] 448 code = []
diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 675838d845..9ddbae123d 100644
--- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -48,7 +48,7 @@ __export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/~]+)$" )
48__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)$" ) 48__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)$" )
49__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)\[([a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]+)\]$" ) 49__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)\[([a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]+)\]$" )
50__addpylib_regexp__ = re.compile(r"addpylib\s+(.+)\s+(.+)" ) 50__addpylib_regexp__ = re.compile(r"addpylib\s+(.+)\s+(.+)" )
51__addfragments_regexp__ = re.compile(r"addfragments\s+(.+)\s+(.+)\s+(.+)" ) 51__addfragments_regexp__ = re.compile(r"addfragments\s+(.+)\s+(.+)\s+(.+)\s+(.+)" )
52 52
53def init(data): 53def init(data):
54 return 54 return
diff --git a/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
index 69493833f4..6abfdef699 100644
--- a/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
+++ b/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
@@ -108,6 +108,8 @@ class TestLayerDetailsPage(SeleniumTestCase):
108 save_btn.click() 108 save_btn.click()
109 109
110 self.wait_until_visible("#save-changes-for-switch") 110 self.wait_until_visible("#save-changes-for-switch")
111 # Ensure scrolled into view
112 self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})')
111 btn_save_chg_for_switch = self.wait_until_clickable( 113 btn_save_chg_for_switch = self.wait_until_clickable(
112 "#save-changes-for-switch") 114 "#save-changes-for-switch")
113 btn_save_chg_for_switch.click() 115 btn_save_chg_for_switch.click()
diff --git a/bitbake/lib/toaster/tests/functional/test_project_page.py b/bitbake/lib/toaster/tests/functional/test_project_page.py
index c6dad0eb5d..429d86feba 100644
--- a/bitbake/lib/toaster/tests/functional/test_project_page.py
+++ b/bitbake/lib/toaster/tests/functional/test_project_page.py
@@ -685,17 +685,17 @@ class TestProjectPage(TestProjectPageBase):
685 'active', str(self.find('#information').get_attribute('class')) 685 'active', str(self.find('#information').get_attribute('class'))
686 ) 686 )
687 # Check second tab (recipes) 687 # Check second tab (recipes)
688 # Ensure page is scrolled to the top
689 self.driver.find_element(By.XPATH, '//body').send_keys(Keys.CONTROL + Keys.HOME)
690 self.wait_until_visible('.nav-tabs') 688 self.wait_until_visible('.nav-tabs')
689 # Ensure page is scrolled to the top
690 self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})')
691 tabs[1].click() 691 tabs[1].click()
692 self.assertIn( 692 self.assertIn(
693 'active', str(self.find('#recipes').get_attribute('class')) 693 'active', str(self.find('#recipes').get_attribute('class'))
694 ) 694 )
695 # Check third tab (machines) 695 # Check third tab (machines)
696 # Ensure page is scrolled to the top
697 self.driver.find_element(By.XPATH, '//body').send_keys(Keys.CONTROL + Keys.HOME)
698 self.wait_until_visible('.nav-tabs') 696 self.wait_until_visible('.nav-tabs')
697 # Ensure page is scrolled to the top
698 self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})')
699 tabs[2].click() 699 tabs[2].click()
700 self.assertIn( 700 self.assertIn(
701 'active', str(self.find('#machines').get_attribute('class')) 701 'active', str(self.find('#machines').get_attribute('class'))
diff --git a/documentation/README b/documentation/README
index 02037e0f7e..56eac7ca19 100644
--- a/documentation/README
+++ b/documentation/README
@@ -314,6 +314,16 @@ See https://stackoverflow.com/questions/27420317/restructured-text-rst-http-link
314Anchor (<#link>) links are forbidden as they are not checked by Sphinx during 314Anchor (<#link>) links are forbidden as they are not checked by Sphinx during
315the build and may be broken without knowing about it. 315the build and may be broken without knowing about it.
316 316
317It is also possible to refer to another document within yocto-docs with the
318:doc: directive (c.f.
319https://www.sphinx-doc.org/en/master/usage/referencing.html#role-doc), e.g.:
320
321 For more information, read :doc:`/bsp-guide/index`.
322
323Note that only "absolute" paths (starting with a '/') are allowed. The root
324directory of that path is documentation/, that is, :doc:`/bsp-guide/index`
325points at documentation/bsp-guide/index.rst.
326
317References 327References
318========== 328==========
319 329
diff --git a/documentation/bsp-guide/bsp.rst b/documentation/bsp-guide/bsp.rst
index 35972f1726..09246b4ae4 100644
--- a/documentation/bsp-guide/bsp.rst
+++ b/documentation/bsp-guide/bsp.rst
@@ -674,21 +674,21 @@ to the kernel recipe by using a similarly named append file, which is
674located in the BSP Layer for your target device (e.g. the 674located in the BSP Layer for your target device (e.g. the
675``meta-bsp_root_name/recipes-kernel/linux`` directory). 675``meta-bsp_root_name/recipes-kernel/linux`` directory).
676 676
677Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the 677Suppose you are using the ``linux-yocto_6.12.bb`` recipe to build the
678kernel. In other words, you have selected the kernel in your 678kernel. In other words, you have selected the kernel in your
679``"bsp_root_name".conf`` file by adding 679``"bsp_root_name".conf`` file by adding
680:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION` 680:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION`
681statements as follows:: 681statements as follows::
682 682
683 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" 683 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
684 PREFERRED_VERSION_linux-yocto ?= "4.4%" 684 PREFERRED_VERSION_linux-yocto ?= "6.12%"
685 685
686.. note:: 686.. note::
687 687
688 When the preferred provider is assumed by default, the :term:`PREFERRED_PROVIDER` 688 When the preferred provider is assumed by default, the :term:`PREFERRED_PROVIDER`
689 statement does not appear in the ``"bsp_root_name".conf`` file. 689 statement does not appear in the ``"bsp_root_name".conf`` file.
690 690
691You would use the ``linux-yocto_4.4.bbappend`` file to append specific 691You would use the ``linux-yocto_6.12.bbappend`` file to append specific
692BSP settings to the kernel, thus configuring the kernel for your 692BSP settings to the kernel, thus configuring the kernel for your
693particular BSP. 693particular BSP.
694 694
@@ -698,14 +698,19 @@ in the Yocto Project Linux Kernel Development Manual.
698 698
699An alternate scenario is when you create your own kernel recipe for the 699An alternate scenario is when you create your own kernel recipe for the
700BSP. A good example of this is the Raspberry Pi BSP. If you examine the 700BSP. A good example of this is the Raspberry Pi BSP. If you examine the
701``recipes-kernel/linux`` directory you see the following:: 701``recipes-kernel/linux`` directory in that layer you see the following
702Raspberry Pi-specific recipes and associated files::
702 703
704 files/
705 linux-raspberrypi_6.12.bb
706 linux-raspberrypi_6.1.bb
707 linux-raspberrypi_6.6.bb
703 linux-raspberrypi-dev.bb 708 linux-raspberrypi-dev.bb
704 linux-raspberrypi.inc 709 linux-raspberrypi.inc
705 linux-raspberrypi_4.14.bb 710 linux-raspberrypi-v7_6.12.bb
706 linux-raspberrypi_4.9.bb 711 linux-raspberrypi-v7_6.1.bb
707 712 linux-raspberrypi-v7_6.6.bb
708The directory contains three kernel recipes and a common include file. 713 linux-raspberrypi-v7.inc
709 714
710Developing a Board Support Package (BSP) 715Developing a Board Support Package (BSP)
711======================================== 716========================================
@@ -876,7 +881,7 @@ The requirements for a released BSP that conform to the Yocto Project are:
876 ``recipes-*`` subdirectories specific to the recipe's function, or 881 ``recipes-*`` subdirectories specific to the recipe's function, or
877 within a subdirectory containing a set of closely-related recipes. 882 within a subdirectory containing a set of closely-related recipes.
878 The recipes themselves should follow the general guidelines for 883 The recipes themselves should follow the general guidelines for
879 recipes found in the ":doc:`../contributor-guide/recipe-style-guide`" 884 recipes found in the ":doc:`/contributor-guide/recipe-style-guide`"
880 in the Yocto Project and OpenEmbedded Contributor Guide. 885 in the Yocto Project and OpenEmbedded Contributor Guide.
881 886
882- *License File:* You must include a license file in the 887- *License File:* You must include a license file in the
@@ -910,7 +915,7 @@ The requirements for a released BSP that conform to the Yocto Project are:
910 - The name and contact information for the BSP layer maintainer. 915 - The name and contact information for the BSP layer maintainer.
911 This is the person to whom patches and questions should be sent. 916 This is the person to whom patches and questions should be sent.
912 For information on how to find the right person, see the 917 For information on how to find the right person, see the
913 :doc:`../contributor-guide/submit-changes` section in the Yocto Project and 918 :doc:`/contributor-guide/submit-changes` section in the Yocto Project and
914 OpenEmbedded Contributor Guide. 919 OpenEmbedded Contributor Guide.
915 920
916 - Instructions on how to build the BSP using the BSP layer. 921 - Instructions on how to build the BSP using the BSP layer.
@@ -1177,7 +1182,7 @@ Use these steps to create a BSP layer:
1177 1182
1178- *Create a Kernel Recipe:* Create a kernel recipe in 1183- *Create a Kernel Recipe:* Create a kernel recipe in
1179 ``recipes-kernel/linux`` by either using a kernel append file or a 1184 ``recipes-kernel/linux`` by either using a kernel append file or a
1180 new custom kernel recipe file (e.g. ``linux-yocto_4.12.bb``). The BSP 1185 new custom kernel recipe file (e.g. ``linux-yocto_6.12.bb``). The BSP
1181 layers mentioned in the previous step also contain different kernel 1186 layers mentioned in the previous step also contain different kernel
1182 examples. See the ":ref:`kernel-dev/common:modifying an existing recipe`" 1187 examples. See the ":ref:`kernel-dev/common:modifying an existing recipe`"
1183 section in the Yocto Project Linux Kernel Development Manual for 1188 section in the Yocto Project Linux Kernel Development Manual for
@@ -1242,7 +1247,7 @@ located in :yocto_git:`poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
1242 1247
1243 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" 1248 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
1244 1249
1245 MACHINE_EXTRA_RRECOMMENDS = "kernel-modules kernel-devicetree" 1250 MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
1246 1251
1247 EXTRA_IMAGEDEPENDS += "virtual/bootloader" 1252 EXTRA_IMAGEDEPENDS += "virtual/bootloader"
1248 1253
@@ -1258,23 +1263,21 @@ located in :yocto_git:`poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
1258 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0" 1263 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0 115200;ttyAMA0"
1259 1264
1260 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" 1265 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1261 PREFERRED_VERSION_linux-yocto ?= "6.1%" 1266 PREFERRED_VERSION_linux-yocto ?= "6.12%"
1262 1267
1263 KERNEL_IMAGETYPE = "zImage" 1268 KERNEL_IMAGETYPE = "zImage"
1264 KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" 1269 DTB_FILES = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
1265 KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" 1270 KERNEL_DEVICETREE = '${@' '.join('ti/omap/%s' % d for d in '${DTB_FILES}'.split())}'
1266 1271
1267 PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" 1272 PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
1268 1273
1269 SPL_BINARY = "MLO" 1274 SPL_BINARY = "MLO"
1270 UBOOT_SUFFIX = "img" 1275 UBOOT_SUFFIX = "img"
1271 UBOOT_MACHINE = "am335x_evm_defconfig" 1276 UBOOT_MACHINE = "am335x_evm_defconfig"
1272 UBOOT_ENTRYPOINT = "0x80008000"
1273 UBOOT_LOADADDRESS = "0x80008000"
1274 1277
1275 MACHINE_FEATURES = "usbgadget usbhost vfat alsa" 1278 MACHINE_FEATURES = "usbgadget usbhost vfat alsa"
1276 1279
1277 IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} ${SPL_BINARY} ${KERNEL_IMAGETYPE} ${KERNEL_DEVICETREE}" 1280 IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} ${SPL_BINARY} ${KERNEL_IMAGETYPE} ${DTB_FILES}"
1278 1281
1279 # support runqemu 1282 # support runqemu
1280 EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" 1283 EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
@@ -1328,12 +1331,12 @@ Project Reference Manual.
1328 needed in the root filesystem. In this case, the U-Boot recipe must 1331 needed in the root filesystem. In this case, the U-Boot recipe must
1329 be built for the image. 1332 be built for the image.
1330 1333
1331 At the end of the file, we also use this setings to implement 1334 At the end of the file, we also use this setting to implement
1332 ``runqemu`` support on the host machine. 1335 ``runqemu`` support on the host machine.
1333 1336
1334- :term:`DEFAULTTUNE`: Machines 1337- :term:`DEFAULTTUNE`: Machines
1335 use tunings to optimize machine, CPU, and application performance. 1338 use tunings to optimize machine, CPU, and application performance.
1336 These features, which are collectively known as "tuning features", 1339 These features --- collectively known as "tuning features" ---
1337 are set in the :term:`OpenEmbedded-Core (OE-Core)` layer. In this 1340 are set in the :term:`OpenEmbedded-Core (OE-Core)` layer. In this
1338 example, the default tuning file is :oe_git:`tune-cortexa8 1341 example, the default tuning file is :oe_git:`tune-cortexa8
1339 </openembedded-core/tree/meta/conf/machine/include/arm/armv7a/tune-cortexa8.inc>`. 1342 </openembedded-core/tree/meta/conf/machine/include/arm/armv7a/tune-cortexa8.inc>`.
@@ -1363,8 +1366,7 @@ Project Reference Manual.
1363 to create the sysroot when building a Wic image. 1366 to create the sysroot when building a Wic image.
1364 1367
1365- :term:`SERIAL_CONSOLES`: 1368- :term:`SERIAL_CONSOLES`:
1366 Defines a serial console (TTY) to enable using getty. In this case, 1369 Defines one or more serial consoles (TTYs) to enable using getty.
1367 the baud rate is "115200" and the device name is "ttyO0".
1368 1370
1369- :term:`PREFERRED_PROVIDER_virtual/kernel <PREFERRED_PROVIDER>`: 1371- :term:`PREFERRED_PROVIDER_virtual/kernel <PREFERRED_PROVIDER>`:
1370 Specifies the recipe that provides "virtual/kernel" when more than 1372 Specifies the recipe that provides "virtual/kernel" when more than
@@ -1374,7 +1376,7 @@ Project Reference Manual.
1374 1376
1375- :term:`PREFERRED_VERSION_linux-yocto <PREFERRED_VERSION>`: 1377- :term:`PREFERRED_VERSION_linux-yocto <PREFERRED_VERSION>`:
1376 Defines the version of the recipe used to build the kernel, which is 1378 Defines the version of the recipe used to build the kernel, which is
1377 "6.1" in this case. 1379 "6.12" in this case.
1378 1380
1379- :term:`KERNEL_IMAGETYPE`: 1381- :term:`KERNEL_IMAGETYPE`:
1380 The type of kernel to build for the device. In this case, the 1382 The type of kernel to build for the device. In this case, the
@@ -1416,12 +1418,6 @@ Project Reference Manual.
1416 Specifies the value passed on the make command line when building 1418 Specifies the value passed on the make command line when building
1417 a U-Boot image. 1419 a U-Boot image.
1418 1420
1419 - :term:`UBOOT_ENTRYPOINT`:
1420 Specifies the entry point for the U-Boot image.
1421
1422 - :term:`UBOOT_LOADADDRESS`:
1423 Specifies the load address for the U-Boot image.
1424
1425- :term:`MACHINE_FEATURES`: 1421- :term:`MACHINE_FEATURES`:
1426 Specifies the list of hardware features the BeagleBone device is 1422 Specifies the list of hardware features the BeagleBone device is
1427 capable of supporting. In this case, the device supports "usbgadget 1423 capable of supporting. In this case, the device supports "usbgadget
diff --git a/documentation/contributor-guide/submit-changes.rst b/documentation/contributor-guide/submit-changes.rst
index 6d5d69d7cf..adb78fa08d 100644
--- a/documentation/contributor-guide/submit-changes.rst
+++ b/documentation/contributor-guide/submit-changes.rst
@@ -76,7 +76,7 @@ Clone the Git repository for the component to modify
76---------------------------------------------------- 76----------------------------------------------------
77 77
78After identifying the component to modify as described in the 78After identifying the component to modify as described in the
79":doc:`../contributor-guide/identify-component`" section, clone the 79":doc:`/contributor-guide/identify-component`" section, clone the
80corresponding Git repository. Here is an example for OpenEmbedded-Core:: 80corresponding Git repository. Here is an example for OpenEmbedded-Core::
81 81
82 git clone https://git.openembedded.org/openembedded-core 82 git clone https://git.openembedded.org/openembedded-core
@@ -872,7 +872,7 @@ in regards to the use of generative AI tools. See:
872https://www.linuxfoundation.org/legal/generative-ai. 872https://www.linuxfoundation.org/legal/generative-ai.
873 873
874All of the existing guidelines in this document are expected to be followed, 874All of the existing guidelines in this document are expected to be followed,
875including in the :doc:`recipe-style-guide`, and contributing the changes with 875including in the :doc:`/contributor-guide/recipe-style-guide`, and contributing the changes with
876additional requirements to the items in section 876additional requirements to the items in section
877:ref:`contributor-guide/submit-changes:Implement and commit changes`. 877:ref:`contributor-guide/submit-changes:Implement and commit changes`.
878 878
diff --git a/documentation/dev-manual/building.rst b/documentation/dev-manual/building.rst
index 807c665f68..32c7aa5da0 100644
--- a/documentation/dev-manual/building.rst
+++ b/documentation/dev-manual/building.rst
@@ -48,7 +48,7 @@ The following figure and list overviews the build process:
48 :width: 100% 48 :width: 100%
49 49
50#. *Set up Your Host Development System to Support Development Using the 50#. *Set up Your Host Development System to Support Development Using the
51 Yocto Project*: See the ":doc:`start`" section for options on how to get a 51 Yocto Project*: See the ":doc:`/dev-manual/start`" section for options on how to get a
52 build host ready to use the Yocto Project. 52 build host ready to use the Yocto Project.
53 53
54#. *Initialize the Build Environment:* Initialize the build environment 54#. *Initialize the Build Environment:* Initialize the build environment
@@ -113,7 +113,7 @@ The following figure and list overviews the build process:
113Building Images for Multiple Targets Using Multiple Configurations 113Building Images for Multiple Targets Using Multiple Configurations
114================================================================== 114==================================================================
115 115
116See the :doc:`multiconfig` section of the Yocto Project Development Tasks 116See the :doc:`/dev-manual/multiconfig` section of the Yocto Project Development Tasks
117Manual. 117Manual.
118 118
119Building an Initial RAM Filesystem (Initramfs) Image 119Building an Initial RAM Filesystem (Initramfs) Image
@@ -591,7 +591,7 @@ If build speed and package feed maintenance are considerations, you
591should consider the points in this section that can help you optimize 591should consider the points in this section that can help you optimize
592your tunings to best consider build times and package feed maintenance. 592your tunings to best consider build times and package feed maintenance.
593 593
594- *Share the :term:`Build Directory`:* If at all possible, share the 594- *Share the* :term:`Build Directory` *:* If at all possible, share the
595 :term:`TMPDIR` across builds. The Yocto Project supports switching between 595 :term:`TMPDIR` across builds. The Yocto Project supports switching between
596 different :term:`MACHINE` values in the same :term:`TMPDIR`. This practice 596 different :term:`MACHINE` values in the same :term:`TMPDIR`. This practice
597 is well supported and regularly used by developers when building for 597 is well supported and regularly used by developers when building for
@@ -813,7 +813,7 @@ directory:
813 813
814#. *Using Local Files Only:* Inside your ``local.conf`` file, add the 814#. *Using Local Files Only:* Inside your ``local.conf`` file, add the
815 :term:`SOURCE_MIRROR_URL` variable, inherit the 815 :term:`SOURCE_MIRROR_URL` variable, inherit the
816 :ref:`ref-classes-own-mirrors` class, and use the 816 :ref:`ref-classes-own-mirrors` class, and add the
817 :term:`BB_NO_NETWORK` variable to your ``local.conf``:: 817 :term:`BB_NO_NETWORK` variable to your ``local.conf``::
818 818
819 SOURCE_MIRROR_URL ?= "file:///home/your-download-dir/" 819 SOURCE_MIRROR_URL ?= "file:///home/your-download-dir/"
diff --git a/documentation/dev-manual/debugging.rst b/documentation/dev-manual/debugging.rst
index 8552b26aea..6c45ccf652 100644
--- a/documentation/dev-manual/debugging.rst
+++ b/documentation/dev-manual/debugging.rst
@@ -890,7 +890,7 @@ The build should work without issue.
890As with all solved problems, if they originated upstream, you need to 890As with all solved problems, if they originated upstream, you need to
891submit the fix for the recipe in OE-Core and upstream so that the 891submit the fix for the recipe in OE-Core and upstream so that the
892problem is taken care of at its source. See the 892problem is taken care of at its source. See the
893":doc:`../contributor-guide/submit-changes`" section for more information. 893":doc:`/contributor-guide/submit-changes`" section for more information.
894 894
895Debugging With the GNU Project Debugger (GDB) Remotely 895Debugging With the GNU Project Debugger (GDB) Remotely
896====================================================== 896======================================================
@@ -1261,7 +1261,7 @@ Here are some other tips that you might find useful:
1261 :yocto_bugs:`Bugzilla <>`. For information on 1261 :yocto_bugs:`Bugzilla <>`. For information on
1262 how to submit a bug against the Yocto Project, see the Yocto Project 1262 how to submit a bug against the Yocto Project, see the Yocto Project
1263 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 1263 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
1264 and the ":doc:`../contributor-guide/report-defect`" section. 1264 and the ":doc:`/contributor-guide/report-defect`" section.
1265 1265
1266 .. note:: 1266 .. note::
1267 1267
diff --git a/documentation/dev-manual/disk-space.rst b/documentation/dev-manual/disk-space.rst
index efca82601d..ba3afa5a2c 100644
--- a/documentation/dev-manual/disk-space.rst
+++ b/documentation/dev-manual/disk-space.rst
@@ -52,7 +52,7 @@ such as BSD based NAS::
52 sstate-cache-management.py --remove-duplicated --cache-dir=sstate-cache 52 sstate-cache-management.py --remove-duplicated --cache-dir=sstate-cache
53 53
54This command will ask you to confirm the deletions it identifies. 54This command will ask you to confirm the deletions it identifies.
55Run ``sstate-cache-management.sh`` for more details about this script. 55Run ``sstate-cache-management.py`` for more details about this script.
56 56
57.. note:: 57.. note::
58 58
diff --git a/documentation/dev-manual/efficiently-fetching-sources.rst b/documentation/dev-manual/efficiently-fetching-sources.rst
index a15f0a92ce..a3366226c0 100644
--- a/documentation/dev-manual/efficiently-fetching-sources.rst
+++ b/documentation/dev-manual/efficiently-fetching-sources.rst
@@ -6,7 +6,7 @@ Efficiently Fetching Source Files During a Build
6The OpenEmbedded build system works with source files located through 6The OpenEmbedded build system works with source files located through
7the :term:`SRC_URI` variable. When 7the :term:`SRC_URI` variable. When
8you build something using BitBake, a big part of the operation is 8you build something using BitBake, a big part of the operation is
9locating and downloading all the source tarballs. For images, 9locating and downloading all of the source code. For images,
10downloading all the source for various packages can take a significant 10downloading all the source for various packages can take a significant
11amount of time. 11amount of time.
12 12
@@ -18,7 +18,7 @@ Setting up Effective Mirrors
18============================ 18============================
19 19
20A good deal that goes into a Yocto Project build is simply downloading 20A good deal that goes into a Yocto Project build is simply downloading
21all of the source tarballs. Maybe you have been working with another 21source code. Maybe you have been working with another
22build system for which you have built up a 22build system for which you have built up a
23sizable directory of source tarballs. Or, perhaps someone else has such 23sizable directory of source tarballs. Or, perhaps someone else has such
24a directory for which you have read access. If so, you can save time by 24a directory for which you have read access. If so, you can save time by
diff --git a/documentation/dev-manual/init-manager.rst b/documentation/dev-manual/init-manager.rst
index ddce82b81f..d0fdfdf773 100644
--- a/documentation/dev-manual/init-manager.rst
+++ b/documentation/dev-manual/init-manager.rst
@@ -44,7 +44,7 @@ therefore increasing the total system boot time. systemd also substantially
44increases system size because of its multiple components and the extra 44increases system size because of its multiple components and the extra
45dependencies it pulls. 45dependencies it pulls.
46 46
47On the contrary, BusyBox init is the simplest and the lightest solution and 47By contrast, BusyBox init is the simplest and the lightest solution and
48also comes with BusyBox mdev as device manager, a lighter replacement to 48also comes with BusyBox mdev as device manager, a lighter replacement to
49:wikipedia:`udev <Udev>`, which SysVinit and systemd both use. 49:wikipedia:`udev <Udev>`, which SysVinit and systemd both use.
50 50
diff --git a/documentation/dev-manual/layers.rst b/documentation/dev-manual/layers.rst
index c649e2bd60..67482bf544 100644
--- a/documentation/dev-manual/layers.rst
+++ b/documentation/dev-manual/layers.rst
@@ -80,7 +80,7 @@ Follow these general steps to create your layer without using tools:
80 BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/" 80 BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
81 BBFILE_PRIORITY_yoctobsp = "5" 81 BBFILE_PRIORITY_yoctobsp = "5"
82 LAYERVERSION_yoctobsp = "4" 82 LAYERVERSION_yoctobsp = "4"
83 LAYERSERIES_COMPAT_yoctobsp = "dunfell" 83 LAYERSERIES_COMPAT_yoctobsp = "walnascar"
84 84
85 Here is an explanation of the layer configuration file: 85 Here is an explanation of the layer configuration file:
86 86
@@ -306,7 +306,7 @@ The Yocto Project Compatibility Program consists of a layer application
306process that requests permission to use the Yocto Project Compatibility 306process that requests permission to use the Yocto Project Compatibility
307Logo for your layer and application. The process consists of two parts: 307Logo for your layer and application. The process consists of two parts:
308 308
309#. Successfully passing a script (``yocto-check-layer``) that when run 309#. Successfully passing a script (``yocto-check-layer``) that, when run
310 against your layer, tests it against constraints based on experiences 310 against your layer, tests it against constraints based on experiences
311 of how layers have worked in the real world and where pitfalls have 311 of how layers have worked in the real world and where pitfalls have
312 been found. Getting a "PASS" result from the script is required for 312 been found. Getting a "PASS" result from the script is required for
@@ -478,7 +478,7 @@ name. To handle these errors, the best practice is to rename the ``.bbappend``
478to match the original recipe version. This also gives you the opportunity to see 478to match the original recipe version. This also gives you the opportunity to see
479if the ``.bbappend`` is still relevant for the new version of the recipe. 479if the ``.bbappend`` is still relevant for the new version of the recipe.
480 480
481Another method it to use the character ``%`` in the ``.bbappend`` filename. For 481Another method is to use the character ``%`` in the ``.bbappend`` filename. For
482example, to append information to every ``6.*`` minor versions of the recipe 482example, to append information to every ``6.*`` minor versions of the recipe
483``someapp``, the ``someapp_6.%.bbappend`` file can be created. This way, an 483``someapp``, the ``someapp_6.%.bbappend`` file can be created. This way, an
484error will only be triggered if the ``someapp`` recipe has a major version 484error will only be triggered if the ``someapp`` recipe has a major version
@@ -504,10 +504,9 @@ the "meta" layer at ``meta/recipes-bsp/formfactor``::
504 SECTION = "base" 504 SECTION = "base"
505 LICENSE = "MIT" 505 LICENSE = "MIT"
506 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 506 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
507 PR = "r45"
508 507
509 SRC_URI = "file://config file://machconfig" 508 SRC_URI = "file://config file://machconfig"
510 S = "${WORKDIR}" 509 S = "${UNPACKDIR}"
511 510
512 PACKAGE_ARCH = "${MACHINE_ARCH}" 511 PACKAGE_ARCH = "${MACHINE_ARCH}"
513 INHIBIT_DEFAULT_DEPS = "1" 512 INHIBIT_DEFAULT_DEPS = "1"
@@ -582,11 +581,10 @@ Directory`. Here is the main ``xserver-xf86-config`` recipe, which is named
582 SECTION = "x11/base" 581 SECTION = "x11/base"
583 LICENSE = "MIT" 582 LICENSE = "MIT"
584 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 583 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
585 PR = "r33"
586 584
587 SRC_URI = "file://xorg.conf" 585 SRC_URI = "file://xorg.conf"
588 586
589 S = "${WORKDIR}" 587 S = "${UNPACKDIR}"
590 588
591 CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf" 589 CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf"
592 590
@@ -594,9 +592,9 @@ Directory`. Here is the main ``xserver-xf86-config`` recipe, which is named
594 ALLOW_EMPTY:${PN} = "1" 592 ALLOW_EMPTY:${PN} = "1"
595 593
596 do_install () { 594 do_install () {
597 if test -s ${WORKDIR}/xorg.conf; then 595 if test -s ${UNPACKDIR}/xorg.conf; then
598 install -d ${D}/${sysconfdir}/X11 596 install -d ${D}/${sysconfdir}/X11
599 install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/ 597 install -m 0644 ${UNPACKDIR}/xorg.conf ${D}/${sysconfdir}/X11/
600 fi 598 fi
601 } 599 }
602 600
@@ -614,8 +612,8 @@ file is in the layer at ``recipes-graphics/xorg-xserver``::
614 PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}" 612 PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
615 if [ "${PITFT}" = "1" ]; then 613 if [ "${PITFT}" = "1" ]; then
616 install -d ${D}/${sysconfdir}/X11/xorg.conf.d/ 614 install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
617 install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ 615 install -m 0644 ${UNPACKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
618 install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ 616 install -m 0644 ${UNPACKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
619 fi 617 fi
620 } 618 }
621 619
diff --git a/documentation/dev-manual/libraries.rst b/documentation/dev-manual/libraries.rst
index 521dbb9a7c..a8c38128ea 100644
--- a/documentation/dev-manual/libraries.rst
+++ b/documentation/dev-manual/libraries.rst
@@ -37,40 +37,10 @@ library files.
37 Some previously released versions of the Yocto Project defined the 37 Some previously released versions of the Yocto Project defined the
38 static library files through ``${PN}-dev``. 38 static library files through ``${PN}-dev``.
39 39
40Here is the part of the BitBake configuration file, where you can see 40Here is a small part of the BitBake configuration file, where you can see
41how the static library files are defined:: 41how the static library files are defined::
42 42
43 PACKAGE_BEFORE_PN ?= ""
44 PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" 43 PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
45 PACKAGES_DYNAMIC = "^${PN}-locale-.*"
46 FILES = ""
47
48 FILES:${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
49 ${sysconfdir} ${sharedstatedir} ${localstatedir} \
50 ${base_bindir}/* ${base_sbindir}/* \
51 ${base_libdir}/*${SOLIBS} \
52 ${base_prefix}/lib/udev ${prefix}/lib/udev \
53 ${base_libdir}/udev ${libdir}/udev \
54 ${datadir}/${BPN} ${libdir}/${BPN}/* \
55 ${datadir}/pixmaps ${datadir}/applications \
56 ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
57 ${libdir}/bonobo/servers"
58
59 FILES:${PN}-bin = "${bindir}/* ${sbindir}/*"
60
61 FILES:${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \
62 ${datadir}/gnome/help"
63 SECTION:${PN}-doc = "doc"
64
65 FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
66 FILES:${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
67 ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
68 ${datadir}/aclocal ${base_libdir}/*.o \
69 ${libdir}/${BPN}/*.la ${base_libdir}/*.la \
70 ${libdir}/cmake ${datadir}/cmake"
71 SECTION:${PN}-dev = "devel"
72 ALLOW_EMPTY:${PN}-dev = "1"
73 RDEPENDS:${PN}-dev = "${PN} (= ${EXTENDPKGV})"
74 44
75 FILES:${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a" 45 FILES:${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
76 SECTION:${PN}-staticdev = "devel" 46 SECTION:${PN}-staticdev = "devel"
diff --git a/documentation/dev-manual/licenses.rst b/documentation/dev-manual/licenses.rst
index bffff3675f..7d6636eeff 100644
--- a/documentation/dev-manual/licenses.rst
+++ b/documentation/dev-manual/licenses.rst
@@ -55,11 +55,11 @@ Consider this next example::
55 55
56 LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\ 56 LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\
57 md5=bb14ed3c4cda583abc85401304b5cd4e" 57 md5=bb14ed3c4cda583abc85401304b5cd4e"
58 LIC_FILES_CHKSUM = "file://${WORKDIR}/license.html;md5=5c94767cedb5d6987c902ac850ded2c6" 58 LIC_FILES_CHKSUM = "file://${UNPACKDIR}/license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
59 59
60The first line locates a file in ``${S}/src/ls.c`` and isolates lines 60The first line locates a file in ``${S}/src/ls.c`` and isolates lines
61five through 16 as license text. The second line refers to a file in 61five through 16 as license text. The second line refers to a file in
62:term:`WORKDIR`. 62:term:`UNPACKDIR`.
63 63
64Note that :term:`LIC_FILES_CHKSUM` variable is mandatory for all recipes, 64Note that :term:`LIC_FILES_CHKSUM` variable is mandatory for all recipes,
65unless the :term:`LICENSE` variable is set to "CLOSED". 65unless the :term:`LICENSE` variable is set to "CLOSED".
diff --git a/documentation/dev-manual/new-recipe.rst b/documentation/dev-manual/new-recipe.rst
index 9792bd4c1f..832aa300e1 100644
--- a/documentation/dev-manual/new-recipe.rst
+++ b/documentation/dev-manual/new-recipe.rst
@@ -188,13 +188,14 @@ the recipe.
188 Use lower-cased characters and do not include the reserved suffixes 188 Use lower-cased characters and do not include the reserved suffixes
189 ``-native``, ``-cross``, ``-initial``, or ``-dev`` casually (i.e. do not use 189 ``-native``, ``-cross``, ``-initial``, or ``-dev`` casually (i.e. do not use
190 them as part of your recipe name unless the string applies). Here are some 190 them as part of your recipe name unless the string applies). Here are some
191 examples: 191 examples (which includes the use of the string "git" as a special case of a
192 version identifier):
192 193
193 .. code-block:: none 194 .. code-block:: none
194 195
195 cups_1.7.0.bb 196 cups_2.4.12.bb
196 gawk_4.0.2.bb 197 gawk_5.3.2.bb
197 irssi_0.8.16-rc1.bb 198 psplash_git.bb
198 199
199Running a Build on the Recipe 200Running a Build on the Recipe
200============================= 201=============================
@@ -276,11 +277,11 @@ upgrading the recipe to a future version is as simple as renaming the
276recipe to match the new version. 277recipe to match the new version.
277 278
278Here is a simple example from the 279Here is a simple example from the
279``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source 280:oe_git:`strace recipe </openembedded-core/tree/meta/recipes-devtools/strace>`
280comes from a single tarball. Notice the use of the 281where the source comes from a single tarball. Notice the use of the
281:term:`PV` variable:: 282:term:`PV` variable::
282 283
283 SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ 284 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/strace-${PV}.tar.xz \
284 285
285Files mentioned in :term:`SRC_URI` whose names end in a typical archive 286Files mentioned in :term:`SRC_URI` whose names end in a typical archive
286extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so 287extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so
@@ -292,7 +293,7 @@ another example that specifies these types of files, see the
292Another way of specifying source is from an SCM. For Git repositories, 293Another way of specifying source is from an SCM. For Git repositories,
293you must specify :term:`SRCREV` and you should specify :term:`PV` to include 294you must specify :term:`SRCREV` and you should specify :term:`PV` to include
294a ``+`` sign in its definition. Here is an example from the recipe 295a ``+`` sign in its definition. Here is an example from the recipe
295:oe_git:`meta/recipes-sato/l3afpad/l3afpad_git.bb </openembedded-core/tree/meta/recipes-sato/l3afpad/l3afpad_git.bb>`:: 296:oe_git:`l3afpad_git.bb </openembedded-core/tree/meta/recipes-sato/l3afpad/l3afpad_git.bb>`::
296 297
297 SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https" 298 SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https"
298 299
@@ -347,8 +348,8 @@ paste them into your recipe and then run the build again to continue.
347 continuing with the build. 348 continuing with the build.
348 349
349This final example is a bit more complicated and is from the 350This final example is a bit more complicated and is from the
350``meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb`` recipe. The 351:oe_git:`rxvt-unicode </openembedded-core/tree/meta/recipes-sato/rxvt-unicode>`
351example's :term:`SRC_URI` statement identifies multiple files as the source 352recipe. The example's :term:`SRC_URI` statement identifies multiple files as the source
352files for the recipe: a tarball, a patch file, a desktop file, and an icon:: 353files for the recipe: a tarball, a patch file, a desktop file, and an icon::
353 354
354 SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \ 355 SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
@@ -706,7 +707,7 @@ hierarchy to locations that would mirror their locations on the target
706device. The installation process copies files from the 707device. The installation process copies files from the
707``${``\ :term:`S`\ ``}``, 708``${``\ :term:`S`\ ``}``,
708``${``\ :term:`B`\ ``}``, and 709``${``\ :term:`B`\ ``}``, and
709``${``\ :term:`WORKDIR`\ ``}`` 710``${``\ :term:`UNPACKDIR`\ ``}``
710directories to the ``${``\ :term:`D`\ ``}`` 711directories to the ``${``\ :term:`D`\ ``}``
711directory to create the structure as it should appear on the target 712directory to create the structure as it should appear on the target
712system. 713system.
@@ -1145,7 +1146,7 @@ Building an application from a single file that is stored locally (e.g. under
1145``files``) requires a recipe that has the file listed in the :term:`SRC_URI` 1146``files``) requires a recipe that has the file listed in the :term:`SRC_URI`
1146variable. Additionally, you need to manually write the :ref:`ref-tasks-compile` 1147variable. Additionally, you need to manually write the :ref:`ref-tasks-compile`
1147and :ref:`ref-tasks-install` tasks. The :term:`S` variable defines the 1148and :ref:`ref-tasks-install` tasks. The :term:`S` variable defines the
1148directory containing the source code, which is set to :term:`WORKDIR` in this 1149directory containing the source code, which is set to :term:`UNPACKDIR` in this
1149case --- the directory BitBake uses for the build:: 1150case --- the directory BitBake uses for the build::
1150 1151
1151 SUMMARY = "Simple helloworld application" 1152 SUMMARY = "Simple helloworld application"
@@ -1155,7 +1156,7 @@ case --- the directory BitBake uses for the build::
1155 1156
1156 SRC_URI = "file://helloworld.c" 1157 SRC_URI = "file://helloworld.c"
1157 1158
1158 S = "${WORKDIR}" 1159 S = "${UNPACKDIR}"
1159 1160
1160 do_compile() { 1161 do_compile() {
1161 ${CC} ${LDFLAGS} helloworld.c -o helloworld 1162 ${CC} ${LDFLAGS} helloworld.c -o helloworld
@@ -1211,8 +1212,6 @@ In the following example, ``lz4`` is a makefile-based package::
1211 " 1212 "
1212 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" 1213 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
1213 1214
1214 S = "${WORKDIR}/git"
1215
1216 CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version" 1215 CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version"
1217 1216
1218 EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no" 1217 EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
@@ -1271,8 +1270,6 @@ is a simple example of an application without dependencies::
1271 SRC_URI = "git://gitlab.com/ipcalc/ipcalc.git;protocol=https;branch=master" 1270 SRC_URI = "git://gitlab.com/ipcalc/ipcalc.git;protocol=https;branch=master"
1272 SRCREV = "4c4261a47f355946ee74013d4f5d0494487cc2d6" 1271 SRCREV = "4c4261a47f355946ee74013d4f5d0494487cc2d6"
1273 1272
1274 S = "${WORKDIR}/git"
1275
1276 inherit meson 1273 inherit meson
1277 1274
1278Applications with dependencies are likely to inherit the 1275Applications with dependencies are likely to inherit the
@@ -1397,11 +1394,31 @@ doing the following:
1397 where you have installed them and whether those files are in 1394 where you have installed them and whether those files are in
1398 different locations than the defaults. 1395 different locations than the defaults.
1399 1396
1397As a basic example of a :ref:`ref-classes-bin-package`-style recipe, consider
1398this snippet from the
1399:oe_git:`wireless-regdb </openembedded-core/tree/meta/recipes-kernel/wireless-regdb>`
1400recipe file, which fetches a single tarball of binary content and manually
1401installs with no need for any configuration or compilation::
1402
1403 SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
1404 SRC_URI[sha256sum] = "57f8e7721cf5a880c13ae0c202edbb21092a060d45f9e9c59bcd2a8272bfa456"
1405
1406 inherit bin_package allarch
1407
1408 do_install() {
1409 install -d -m0755 ${D}${nonarch_libdir}/crda
1410 install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys
1411 install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin
1412 install -m 0644 wens.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/wens.key.pub.pem
1413 install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db
1414 install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s
1415 }
1416
1400Following Recipe Style Guidelines 1417Following Recipe Style Guidelines
1401================================= 1418=================================
1402 1419
1403When writing recipes, it is good to conform to existing style guidelines. 1420When writing recipes, it is good to conform to existing style guidelines.
1404See the ":doc:`../contributor-guide/recipe-style-guide`" in the Yocto Project 1421See the ":doc:`/contributor-guide/recipe-style-guide`" in the Yocto Project
1405and OpenEmbedded Contributor Guide for reference. 1422and OpenEmbedded Contributor Guide for reference.
1406 1423
1407It is common for existing recipes to deviate a bit from this style. 1424It is common for existing recipes to deviate a bit from this style.
@@ -1428,7 +1445,7 @@ chapter of the BitBake User Manual.
1428 The following example shows some of the ways you can use variables in 1445 The following example shows some of the ways you can use variables in
1429 recipes:: 1446 recipes::
1430 1447
1431 S = "${WORKDIR}/postfix-${PV}" 1448 S = "${UNPACKDIR}/postfix-${PV}"
1432 CFLAGS += "-DNO_ASM" 1449 CFLAGS += "-DNO_ASM"
1433 CFLAGS:append = " --enable-important-feature" 1450 CFLAGS:append = " --enable-important-feature"
1434 1451
diff --git a/documentation/dev-manual/packages.rst b/documentation/dev-manual/packages.rst
index 8845bf2fab..8bd48c8e8f 100644
--- a/documentation/dev-manual/packages.rst
+++ b/documentation/dev-manual/packages.rst
@@ -1024,7 +1024,7 @@ The ``devtool edit-recipe`` command lets you take a look at the recipe::
1024 npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \ 1024 npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
1025 " 1025 "
1026 1026
1027 S = "${WORKDIR}/npm" 1027 S = "${UNPACKDIR}/npm"
1028 1028
1029 inherit npm 1029 inherit npm
1030 1030
diff --git a/documentation/dev-manual/prebuilt-libraries.rst b/documentation/dev-manual/prebuilt-libraries.rst
index a05f39ca1e..59621ca16d 100644
--- a/documentation/dev-manual/prebuilt-libraries.rst
+++ b/documentation/dev-manual/prebuilt-libraries.rst
@@ -97,7 +97,7 @@ The complete recipe would look like this::
97 # we use a local link. 97 # we use a local link.
98 SRC_URI = "file://libft4222-linux-${PV}.tgz" 98 SRC_URI = "file://libft4222-linux-${PV}.tgz"
99 99
100 S = "${WORKDIR}" 100 S = "${UNPACKDIR}"
101 101
102 ARCH_DIR:x86-64 = "build-x86_64" 102 ARCH_DIR:x86-64 = "build-x86_64"
103 ARCH_DIR:i586 = "build-i386" 103 ARCH_DIR:i586 = "build-i386"
@@ -170,7 +170,7 @@ as follows::
170The modifications cause the ``.so`` file to be the real library 170The modifications cause the ``.so`` file to be the real library
171and unset :term:`FILES_SOLIBSDEV` so that no libraries get packaged into 171and unset :term:`FILES_SOLIBSDEV` so that no libraries get packaged into
172``${PN}-dev``. The changes are required because unless :term:`PACKAGES` is changed, 172``${PN}-dev``. The changes are required because unless :term:`PACKAGES` is changed,
173``${PN}-dev`` collects files before `${PN}`. ``${PN}-dev`` must not collect any of 173``${PN}-dev`` collects files before ``${PN}``. ``${PN}-dev`` must not collect any of
174the files you want in ``${PN}``. 174the files you want in ``${PN}``.
175 175
176Finally, loadable modules, essentially unversioned libraries that are linked 176Finally, loadable modules, essentially unversioned libraries that are linked
@@ -204,6 +204,6 @@ versioned library example. The "magic" is setting the :term:`SOLIBS` and
204 204
205 do_install () { 205 do_install () {
206 install -d ${D}${libdir} 206 install -d ${D}${libdir}
207 install -m 0755 ${WORKDIR}/libfoo.so ${D}${libdir} 207 install -m 0755 ${UNPACKDIR}/libfoo.so ${D}${libdir}
208 } 208 }
209 209
diff --git a/documentation/dev-manual/sbom.rst b/documentation/dev-manual/sbom.rst
index e6806ce929..ca0fc8b9d6 100644
--- a/documentation/dev-manual/sbom.rst
+++ b/documentation/dev-manual/sbom.rst
@@ -60,6 +60,9 @@ more information in the output :term:`SPDX` data:
60- Add a description of the source files used to generate host tools and target 60- Add a description of the source files used to generate host tools and target
61 packages (:term:`SPDX_INCLUDE_SOURCES`) 61 packages (:term:`SPDX_INCLUDE_SOURCES`)
62 62
63- Add a description of the **compiled** source files used to generate host tools
64 and target packages (:term:`SPDX_INCLUDE_COMPILED_SOURCES`)
65
63- Add archives of these source files themselves (:term:`SPDX_ARCHIVE_SOURCES`). 66- Add archives of these source files themselves (:term:`SPDX_ARCHIVE_SOURCES`).
64 67
65Though the toplevel :term:`SPDX` output is available in 68Though the toplevel :term:`SPDX` output is available in
diff --git a/documentation/dev-manual/start.rst b/documentation/dev-manual/start.rst
index 73548132a3..44bd2de137 100644
--- a/documentation/dev-manual/start.rst
+++ b/documentation/dev-manual/start.rst
@@ -109,7 +109,7 @@ particular working environment and set of practices.
109 109
110 - Keep your cross-development toolchains updated. You can do this 110 - Keep your cross-development toolchains updated. You can do this
111 through provisioning either as new toolchain downloads or as 111 through provisioning either as new toolchain downloads or as
112 updates through a package update mechanism using ``opkg`` to 112 updates through a package update mechanism to
113 provide updates to an existing toolchain. The exact mechanics of 113 provide updates to an existing toolchain. The exact mechanics of
114 how and when to do this depend on local policy. 114 how and when to do this depend on local policy.
115 115
@@ -159,7 +159,7 @@ particular working environment and set of practices.
159 are made. 159 are made.
160 160
161 - Allows triggering of automated image booting and testing under 161 - Allows triggering of automated image booting and testing under
162 the QuickEMUlator (QEMU). 162 the Quick EMUlator (QEMU).
163 163
164 - Supports incremental build testing and from-scratch builds. 164 - Supports incremental build testing and from-scratch builds.
165 165
@@ -234,7 +234,7 @@ particular working environment and set of practices.
234 - The Yocto Project community encourages you to send patches to the 234 - The Yocto Project community encourages you to send patches to the
235 project to fix bugs or add features. If you do submit patches, 235 project to fix bugs or add features. If you do submit patches,
236 follow the project commit guidelines for writing good commit 236 follow the project commit guidelines for writing good commit
237 messages. See the ":doc:`../contributor-guide/submit-changes`" 237 messages. See the ":doc:`/contributor-guide/submit-changes`"
238 section in the Yocto Project and OpenEmbedded Contributor Guide. 238 section in the Yocto Project and OpenEmbedded Contributor Guide.
239 239
240 - Send changes to the core sooner than later as others are likely 240 - Send changes to the core sooner than later as others are likely
@@ -310,7 +310,7 @@ Project Build Host:
310 310
311 - GNU make &MIN_MAKE_VERSION; or greater 311 - GNU make &MIN_MAKE_VERSION; or greater
312 312
313 If your build host does not meet any of these listed version 313 If your build host does not satisfy all of these listed version
314 requirements, you can take steps to prepare the system so that you 314 requirements, you can take steps to prepare the system so that you
315 can still use the Yocto Project. See the 315 can still use the Yocto Project. See the
316 ":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`" 316 ":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`"
@@ -568,7 +568,7 @@ extension accordingly.
568Locating Yocto Project Source Files 568Locating Yocto Project Source Files
569=================================== 569===================================
570 570
571This section shows you how to locate, fetch and configure the source 571This section shows you how to locate, fetch, unpack, patch and configure the source
572files you'll need to work with the Yocto Project. 572files you'll need to work with the Yocto Project.
573 573
574.. note:: 574.. note::
@@ -720,11 +720,11 @@ Follow these steps to create a local version of the upstream
720 $ git branch 720 $ git branch
721 * master 721 * master
722 722
723 Your local repository of poky is identical to the 723 Your local repository of poky is initially identical to the
724 upstream poky repository at the time from which it was cloned. As you 724 upstream poky repository from which it was cloned. As you
725 work with the local branch, you can periodically use the 725 work with the local branch, you can periodically use the
726 ``git pull --rebase`` command to be sure you are up-to-date 726 ``git pull`` command to be sure you stay up-to-date
727 with the upstream branch. 727 with the upstream poky branch.
728 728
729Checking Out by Branch in Poky 729Checking Out by Branch in Poky
730------------------------------ 730------------------------------
diff --git a/documentation/dev-manual/temporary-source-code.rst b/documentation/dev-manual/temporary-source-code.rst
index 08bf68d982..9a7cd0f771 100644
--- a/documentation/dev-manual/temporary-source-code.rst
+++ b/documentation/dev-manual/temporary-source-code.rst
@@ -18,11 +18,10 @@ build packages is available in the :term:`Build Directory` as defined by the
18defined in the ``meta/conf/bitbake.conf`` configuration file in the 18defined in the ``meta/conf/bitbake.conf`` configuration file in the
19:term:`Source Directory`:: 19:term:`Source Directory`::
20 20
21 S = "${WORKDIR}/${BP}" 21 S = "${UNPACKDIR}/${BP}"
22 22
23You should be aware that many recipes override the 23You should be aware that many recipes override the
24:term:`S` variable. For example, recipes that fetch their source from Git 24:term:`S` variable when the default isn't accurate.
25usually set :term:`S` to ``${WORKDIR}/git``.
26 25
27.. note:: 26.. note::
28 27
@@ -31,8 +30,16 @@ usually set :term:`S` to ``${WORKDIR}/git``.
31 30
32 BP = "${BPN}-${PV}" 31 BP = "${BPN}-${PV}"
33 32
33 This matches the location that the git fetcher unpacks to, and usually
34 matches unpacked content of release tarballs (e.g. they contain a single
35 directory which matches value of ${BP} exactly).
34 36
35The path to the work directory for the recipe 37The path to the unpack directory for the recipe
38(:term:`UNPACKDIR`) is defined as follows::
39
40 ${WORKDIR}/sources
41
42In turn, the path to the work directory for the recipe
36(:term:`WORKDIR`) is defined as 43(:term:`WORKDIR`) is defined as
37follows:: 44follows::
38 45
diff --git a/documentation/dev-manual/vulnerabilities.rst b/documentation/dev-manual/vulnerabilities.rst
index d901ff975b..5331a63991 100644
--- a/documentation/dev-manual/vulnerabilities.rst
+++ b/documentation/dev-manual/vulnerabilities.rst
@@ -22,7 +22,7 @@ issues may be impacting Poky and OE-Core. It is up to the maintainers, users,
22contributors and anyone interested in the issues to investigate and possibly fix them by 22contributors and anyone interested in the issues to investigate and possibly fix them by
23updating software components to newer versions or by applying patches to address them. 23updating software components to newer versions or by applying patches to address them.
24It is recommended to work with Poky and OE-Core upstream maintainers and submit 24It is recommended to work with Poky and OE-Core upstream maintainers and submit
25patches to fix them, see ":doc:`../contributor-guide/submit-changes`" for details. 25patches to fix them, see ":doc:`/contributor-guide/submit-changes`" for details.
26 26
27Vulnerability check at build time 27Vulnerability check at build time
28================================= 28=================================
diff --git a/documentation/migration-guides/migration-5.1.rst b/documentation/migration-guides/migration-5.1.rst
index c9bb38699b..94b527bdcb 100644
--- a/documentation/migration-guides/migration-5.1.rst
+++ b/documentation/migration-guides/migration-5.1.rst
@@ -20,8 +20,7 @@ S = ${WORKDIR} no longer supported
20If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer 20If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer
21supported, and an error will be issued. The recipe should be changed to:: 21supported, and an error will be issued. The recipe should be changed to::
22 22
23 S = "${WORKDIR}/sources" 23 S = "${UNPACKDIR}"
24 UNPACKDIR = "${S}"
25 24
26Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced 25Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced
27should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`, 26should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`,
@@ -62,8 +61,7 @@ require to add an :term:`S` definition to a recipe that only uses
62``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is 61``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is
63recommended:: 62recommended::
64 63
65 S = "${WORKDIR}/sources" 64 S = "${UNPACKDIR}"
66 UNPACKDIR = "${S}"
67 65
68Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at 66Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at
69it does not work as the debug prefix mapping doesn't handle that. 67it does not work as the debug prefix mapping doesn't handle that.
diff --git a/documentation/migration-guides/migration-5.3.rst b/documentation/migration-guides/migration-5.3.rst
index 22653fc911..4d2e1763ce 100644
--- a/documentation/migration-guides/migration-5.3.rst
+++ b/documentation/migration-guides/migration-5.3.rst
@@ -14,6 +14,56 @@ Migration notes for |yocto-ver| (|yocto-codename|)
14This section provides migration information for moving to the Yocto 14This section provides migration information for moving to the Yocto
15Project |yocto-ver| Release (codename "|yocto-codename|") from the prior release. 15Project |yocto-ver| Release (codename "|yocto-codename|") from the prior release.
16 16
17:term:`WORKDIR` changes
18~~~~~~~~~~~~~~~~~~~~~~~
19
20``S = ${WORKDIR}/something`` no longer supported
21^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22
23If a recipe has :term:`S` set to be ``${``\ :term:`WORKDIR`\ ``}/something``,
24this is no longer supported, and an error will be issued. The recipe should be
25changed to::
26
27 S = "${UNPACKDIR}/something"
28
29``S = ${WORKDIR}/git`` and ``S = ${UNPACKDIR}/git`` should be removed
30^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31
32The Git fetcher now unpacks into the :term:`BB_GIT_DEFAULT_DESTSUFFIX` directory
33rather than the ``git/`` directory under :term:`UNPACKDIR`.
34:term:`BB_GIT_DEFAULT_DESTSUFFIX` is set in :term:`OpenEmbedded-Core
35(OE-Core)`'s :oe_git:`bitbake.conf
36</openembedded-core/tree/meta/conf/bitbake.conf>` to :term:`BP`.
37
38This location matches the default value of :term:`S` set by bitbake.conf, so :term:`S`
39setting in recipes can and should be removed.
40
41Note that when :term:`S` is set to a subdirectory of the git checkout, then it
42should be instead adjusted according to the previous point::
43
44 S = "${UNPACKDIR}/${BP}/something"
45
46Note that "git" as the source checkout location can be hardcoded
47in other places in recipes; when it's in :term:`SRC_URI`, replace with
48:term:`BB_GIT_DEFAULT_DESTSUFFIX`, otherwise replace with :term:`BP`.
49
50How to make those adjustments without tedious manual editing
51^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
53The following sed command can be used to remove S = "${WORKDIR}/git
54across a whole layer::
55
56 sed -i "/^S = \"\${WORKDIR}\/git\"/d" `find . -name *.bb -o -name *.inc -o -name *.bbclass`
57
58Then, the following command can tweak the remaining :term:`S` assignments to
59refer to :term:`UNPACKDIR` instead of :term:`WORKDIR`::
60
61 sed -i "s/^S = \"\${WORKDIR}\//S = \"\${UNPACKDIR}\//g" `find . -name *.bb -o -name *.inc -o -name *.bbclass`
62
63The first change can introduce a lot of consecutive empty lines, so those can be removed with::
64
65 sed -i -z -E 's/([ \t\f\v\r]*\n){3,}/\n\n/g' `find . -name *.bb -o -name *.inc`
66
17Supported kernel versions 67Supported kernel versions
18~~~~~~~~~~~~~~~~~~~~~~~~~ 68~~~~~~~~~~~~~~~~~~~~~~~~~
19 69
@@ -59,6 +109,48 @@ Removed classes
59 109
60The following classes have been removed in this release: 110The following classes have been removed in this release:
61 111
112- ``kernel-fitimage.bbclass``: the class has been replaced by the
113 :ref:`ref-classes-kernel-fit-image` class. The new implementation resolves
114 the long-standing :yocto_bugs:`bug 12912</show_bug.cgi?id=12912>`.
115
116 If you are using the kernel FIT image support, you will need to:
117
118 #. Make sure to include ``kernel-fit-extra-artifacts`` in your :term:`KERNEL_CLASSES`
119 variable to ensure the required files are exposed to the :term:`DEPLOY_DIR_IMAGE`
120 directory::
121
122 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
123
124 #. Use the specific FIT image recipe rather than the base kernel recipe.
125 For example, instead of::
126
127 bitbake linux-yocto
128
129 the FIT image is now build by::
130
131 bitbake linux-yocto-fitimage
132
133 For custom kernel recipes, creating a corresponding custom FIT image recipe
134 is usually a good approach.
135
136 #. If a FIT image is used as a replacement for the kernel image in the root
137 filesystem, add the following configuration to your machine configuration
138 file::
139
140 # Create and deploy the vmlinux artifact which gets included into the FIT image
141 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
142
143 # Do not install the kernel image package
144 RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
145 # Install the FIT image package
146 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "linux-yocto-fitimage"
147
148 # Configure the image.bbclass to depend on the FIT image instead of only
149 # the kernel to ensure the FIT image is built and deployed with the image
150 KERNEL_DEPLOY_DEPEND = "linux-yocto-fitimage:do_deploy"
151
152 See the :ref:`ref-classes-kernel-fit-image` section for more information.
153
62Removed features 154Removed features
63~~~~~~~~~~~~~~~~ 155~~~~~~~~~~~~~~~~
64 156
diff --git a/documentation/migration-guides/release-5.0.rst b/documentation/migration-guides/release-5.0.rst
index 3eb7349c78..b3e7a67912 100644
--- a/documentation/migration-guides/release-5.0.rst
+++ b/documentation/migration-guides/release-5.0.rst
@@ -16,3 +16,4 @@ Release 5.0 (scarthgap)
16 release-notes-5.0.7 16 release-notes-5.0.7
17 release-notes-5.0.8 17 release-notes-5.0.8
18 release-notes-5.0.9 18 release-notes-5.0.9
19 release-notes-5.0.10
diff --git a/documentation/migration-guides/release-notes-4.3.rst b/documentation/migration-guides/release-notes-4.3.rst
index 0103ac985e..aa3f31a2ce 100644
--- a/documentation/migration-guides/release-notes-4.3.rst
+++ b/documentation/migration-guides/release-notes-4.3.rst
@@ -272,9 +272,9 @@ New Features / Enhancements in 4.3
272 272
273- Prominent documentation updates: 273- Prominent documentation updates:
274 274
275 - New :doc:`../contributor-guide/index` document. 275 - New :doc:`/contributor-guide/index` document.
276 276
277 - New :doc:`../dev-manual/security-subjects` chapter in the Development 277 - New :doc:`/dev-manual/security-subjects` chapter in the Development
278 Tasks Manual. 278 Tasks Manual.
279 279
280 - Long overdue documentation for the :ref:`ref-classes-devicetree` class. 280 - Long overdue documentation for the :ref:`ref-classes-devicetree` class.
diff --git a/documentation/migration-guides/release-notes-5.0.10.rst b/documentation/migration-guides/release-notes-5.0.10.rst
new file mode 100644
index 0000000000..e9845aa315
--- /dev/null
+++ b/documentation/migration-guides/release-notes-5.0.10.rst
@@ -0,0 +1,208 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Release notes for Yocto-5.0.10 (Scarthgap)
4------------------------------------------
5
6Security Fixes in Yocto-5.0.10
7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8
9- binutils: Fix :cve_nist:`2025-1153`, :cve_nist:`2025-1179`, :cve_nist:`2025-1180` and
10 :cve_nist:`2025-1182`
11- connman: Fix :cve_nist:`2025-32366` and :cve_nist:`2025-32743`
12- curl: Fix :cve_nist:`2024-11053` and :cve_nist:`2025-0167`
13- elfutils: Fix :cve_nist:`2025-1371`
14- ffmpeg: Fix :cve_nist:`2024-7055`, :cve_nist:`2024-32230`, :cve_nist:`2024-35366`,
15 :cve_nist:`2024-36613`, :cve_nist:`2024-36616`, :cve_nist:`2024-36617` and :cve_nist:`2024-36619`
16- git: Fix :cve_nist:`2024-50349` and :cve_nist:`2024-52006`
17- glib-2.0: fix :cve_nist:`2025-3360` and :cve_nist:`2025-4373`
18- iputils: Fix :cve_nist:`2025-47268`
19- libpam: Fix :cve_nist:`2024-10041`
20- libsoup-2.4: Fix :cve_nist:`2024-52530`, :cve_nist:`2024-52531`, :cve_nist:`2024-52532`,
21 :cve_nist:`2025-32906`, :cve_nist:`2025-32909`, :cve_nist:`2025-32910`, :cve_nist:`2025-32911`,
22 :cve_nist:`2025-32912`, :cve_nist:`2025-32913`, :cve_nist:`2025-32914` and :cve_nist:`2025-46420`
23- libsoup: Fix :cve_nist:`2025-4476`, :cve_nist:`2025-32906`, :cve_nist:`2025-32909`,
24 :cve_nist:`2025-32910`, :cve_nist:`2025-32911`, :cve_nist:`2025-32912`, :cve_nist:`2025-32913`,
25 :cve_nist:`2025-32914` and :cve_nist:`2025-46420`
26- libxml2: Fix :cve_nist:`2025-32414` and :cve_nist:`2025-32415`
27- openssh: Fix :cve_nist:`2025-32728`
28- perl: Fix :cve_nist:`2024-56406`
29- ppp: Fix :cve_nist:`2024-58250`
30- python3-jinja2: Fix :cve_nist:`2024-56201`, :cve_nist:`2024-56326` and :cve_nist:`2025-27516`
31- ruby: Fix :cve_nist:`2025-27221`
32- sqlite3: Fix :cve_nist:`2025-3277`, :cve_nist:`2025-29087` and :cve_nist:`2025-29088`
33
34
35Fixes in Yocto-5.0.10
36~~~~~~~~~~~~~~~~~~~~~
37
38- binutils: stable 2.42 branch updates
39- bluez5: add missing tools to noinst-tools package
40- bluez5: backport a patch to fix btmgmt -i
41- bluez5: make media control a :term:`PACKAGECONFIG` option
42- build-appliance-image: Update to scarthgap head revision
43- buildtools-tarball: Make buildtools respects host CA certificates
44- buildtools-tarball: add envvars into :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
45- buildtools-tarball: move setting of envvars to respective envfile
46- contributor-guide/submit-changes: encourage patch version changelogs
47- cve-check.bbclass: Fix symlink handling also for text files
48- cve-update-nvd2-native: Revert "cve-update-nvd2-native: Tweak to work better with NFS DL_DIR"
49- dev-manual/sbom.rst: fix wrong build outputs
50- docs: Fix dead links that use the :term:`DISTRO` macro
51- docs: conf.py: tweak SearchEnglish to be hyphen-friendly
52- docs:conf.py: define a manpage url
53- ffmpeg: upgrade to 6.1.2
54- git: upgrade to 2.44.3
55- glibc-y2038-tests: remove glibc-y2038-tests_2.39.bb recipe
56- glibc: Add single-threaded fast path to rand()
57- glibc: stable 2.39 branch updates
58- initscripts: add function log_success_msg/log_failure_msg/log_warning_msg
59- libatomic-ops: Update :term:`GITHUB_BASE_URI`
60- manuals: remove repeated word
61- migration-guides: add release notes for 4.0.26, 5.0.8, 5.0.9
62- module.bbclass: add KBUILD_EXTRA_SYMBOLS to install
63- perl: upgrade to 5.38.4
64- perlcross: upgrade to 1.6.2
65- poky.conf: bump version for 5.0.10
66- poky.yaml: introduce DISTRO_LATEST_TAG
67- python3-jinja2: upgrade to 3.1.6
68- ref-manual/release-process: update releases.svg
69- ref-manual/variables.rst: HOST_CC_ARCH: fix wrong SDK reference
70- ref-manual/variables.rst: WATCHDOG_TIMEOUT: fix recipe name
71- ref-manual/variables.rst: add manpage links for toolchain variables
72- ref-manual/variables.rst: add missing documentation for BUILD_* variables
73- ref-manual/variables.rst: document HOST_*_ARCH variables
74- ref-manual/variables.rst: document :term:`INHIBIT_DEFAULT_RUST_DEPS`
75- ref-manual/variables.rst: document :term:`INHIBIT_UPDATERCD_BBCLASS`
76- ref-manual/variables.rst: document :term:`SSTATE_SKIP_CREATION`
77- ref-manual/variables.rst: document :term:`WIC_CREATE_EXTRA_ARGS`
78- ref-manual/variables.rst: document autotools class related variables
79- ref-manual/variables.rst: document missing SDK_*_ARCH variables
80- ref-manual/variables.rst: document the :term:`IMAGE_ROOTFS_MAXSIZE` variable
81- ref-manual/variables.rst: document the :term:`INITRAMFS_MAXSIZE` variable
82- ref-manual/variables.rst: improve the :term:`PKGV` documentation
83- ref-manual/variables.rst: update :term:`ROOT_HOME` documentation
84- ref-manual: kernel-fitimage.bbclass does not use :term:`SPL_SIGN_KEYNAME`
85- scripts/install-buildtools: Update to 5.0.9
86- sphinx-lint: missing space after literal
87- sphinx-lint: trailing whitespace
88- sphinx-lint: unbalanced inline literal markup
89- systemd: Password agents shouldn't be optional
90- systemd: upgrade to 255.18
91- test-manual/intro: remove Buildbot version used
92- tzdata/tzcode-native: upgrade 2025a -> 2025b
93- u-boot: ensure keys are generated before assembling U-Boot FIT image
94- util-linux: Add fix to isolate test fstab entries using CUSTOM_FSTAB
95- wic: bootimg-efi: Support + symbol in filenames
96
97
98Known Issues in Yocto-5.0.10
99~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100
101- There is an issue where the target libsoup-2.4 build may fail if apachectl is present on the build
102 host. The issue only affects test binaries which aren't actually used. The issue can be fixed by
103 disabling the tests or updating to more recent changes on the scarthgap branch which fix this.
104
105
106Contributors to Yocto-5.0.10
107~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108
109Thanks to the following people who contributed to this release:
110
111- Adrian Freihofer
112- Aleksandar Nikolic
113- Alexander Kanavin
114- Alon Bar-Lev
115- Alper Ak
116- Andrew Kreimer
117- Antonin Godard
118- Archana Polampalli
119- Ashish Sharma
120- Changqing Li
121- Christos Gavros
122- Deepesh Varatharajan
123- Divya Chellam
124- Divyanshu Rathore
125- Enrico Jörns
126- Etienne Cordonnier
127- Guðni Már Gilbert
128- Haixiao Yan
129- Harish Sadineni
130- Igor Opaniuk
131- Jeroen Hofstee
132- Lee Chee Yang
133- Nguyen Dat Tho
134- Niko Mauno
135- Peter Marko
136- Praveen Kumar
137- Priyal Doshi
138- Rogerio Guerra Borin
139- Shubham Kulkarni
140- Soumya Sambu
141- Steve Sakoman
142- Sunil Dora
143- Trevor Woerner
144- Vijay Anusuri
145- Virendra Thakur
146- Vyacheslav Yurkov
147- Yi Zhao
148- Yogita Urade
149- rajmohan r
150
151Repositories / Downloads for Yocto-5.0.10
152~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153
154poky
155
156- Repository Location: :yocto_git:`/poky`
157- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
158- Tag: :yocto_git:`yocto-5.0.10 </poky/log/?h=yocto-5.0.10>`
159- Git Revision: :yocto_git:`ac257900c33754957b2696529682029d997a8f28 </poky/commit/?id=ac257900c33754957b2696529682029d997a8f28>`
160- Release Artefact: poky-ac257900c33754957b2696529682029d997a8f28
161- sha: ddca7e54b331e78214bea65b346320d4fbcddf4b51103bfbbd9fc3960f32cdc7
162- Download Locations:
163 https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.10/poky-ac257900c33754957b2696529682029d997a8f28.tar.bz2
164 https://mirrors.kernel.org/yocto/yocto/yocto-5.0.10/poky-ac257900c33754957b2696529682029d997a8f28.tar.bz2
165
166openembedded-core
167
168- Repository Location: :oe_git:`/openembedded-core`
169- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
170- Tag: :oe_git:`yocto-5.0.10 </openembedded-core/log/?h=yocto-5.0.10>`
171- Git Revision: :oe_git:`d5342ffc570d47a723b18297d75bd2f63c2088db </openembedded-core/commit/?id=d5342ffc570d47a723b18297d75bd2f63c2088db>`
172- Release Artefact: oecore-d5342ffc570d47a723b18297d75bd2f63c2088db
173- sha: daa62094f2327f4b3fbcc485e8964d1b86a4722f58fb37e0d8e8e9885094a262
174- Download Locations:
175 https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.10/oecore-d5342ffc570d47a723b18297d75bd2f63c2088db.tar.bz2
176 https://mirrors.kernel.org/yocto/yocto/yocto-5.0.10/oecore-d5342ffc570d47a723b18297d75bd2f63c2088db.tar.bz2
177
178meta-mingw
179
180- Repository Location: :yocto_git:`/meta-mingw`
181- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
182- Tag: :yocto_git:`yocto-5.0.10 </meta-mingw/log/?h=yocto-5.0.10>`
183- Git Revision: :yocto_git:`bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f </meta-mingw/commit/?id=bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f>`
184- Release Artefact: meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f
185- sha: ab073def6487f237ac125d239b3739bf02415270959546b6b287778664f0ae65
186- Download Locations:
187 https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.10/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
188 https://mirrors.kernel.org/yocto/yocto/yocto-5.0.10/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
189
190bitbake
191
192- Repository Location: :oe_git:`/bitbake`
193- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
194- Tag: :oe_git:`yocto-5.0.10 </bitbake/log/?h=yocto-5.0.10>`
195- Git Revision: :oe_git:`696c2c1ef095f8b11c7d2eff36fae50f58c62e5e </bitbake/commit/?id=696c2c1ef095f8b11c7d2eff36fae50f58c62e5e>`
196- Release Artefact: bitbake-696c2c1ef095f8b11c7d2eff36fae50f58c62e5e
197- sha: fc83f879cd6dd14b9b7eba0161fec23ecc191fed0fb00556ba729dceef6c145f
198- Download Locations:
199 https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.10/bitbake-696c2c1ef095f8b11c7d2eff36fae50f58c62e5e.tar.bz2
200 https://mirrors.kernel.org/yocto/yocto/yocto-5.0.10/bitbake-696c2c1ef095f8b11c7d2eff36fae50f58c62e5e.tar.bz2
201
202yocto-docs
203
204- Repository Location: :yocto_git:`/yocto-docs`
205- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
206- Tag: :yocto_git:`yocto-5.0.10 </yocto-docs/log/?h=yocto-5.0.10>`
207- Git Revision: :yocto_git:`3996388e337377bedc113d072a51fe9d68dd40c6 </yocto-docs/commit/?id=3996388e337377bedc113d072a51fe9d68dd40c6>`
208
diff --git a/documentation/migration-guides/release-notes-5.1.rst b/documentation/migration-guides/release-notes-5.1.rst
index 267934a71e..bab0c14581 100644
--- a/documentation/migration-guides/release-notes-5.1.rst
+++ b/documentation/migration-guides/release-notes-5.1.rst
@@ -377,7 +377,7 @@ New Features / Enhancements in 5.1
377 :term:`SIGGEN_EXCLUDERECIPES_ABISAFE` and does not trigger a rebuild on a 377 :term:`SIGGEN_EXCLUDERECIPES_ABISAFE` and does not trigger a rebuild on a
378 change for dependent tasks. 378 change for dependent tasks.
379 379
380 - In :ref:`ref-classes-kernel-fitimage`, the existence of 380 - In ``kernel-fitimage``, the existence of
381 :term:`EXTERNAL_KERNEL_DEVICETREE` is checked more thoroughly to avoid 381 :term:`EXTERNAL_KERNEL_DEVICETREE` is checked more thoroughly to avoid
382 false positives. 382 false positives.
383 383
diff --git a/documentation/migration-guides/release-notes-5.2.rst b/documentation/migration-guides/release-notes-5.2.rst
index aad5a2eda0..5fc426c050 100644
--- a/documentation/migration-guides/release-notes-5.2.rst
+++ b/documentation/migration-guides/release-notes-5.2.rst
@@ -29,7 +29,7 @@ New Features / Enhancements in |yocto-ver|
29 ``RuntimeWatchdogSec`` option in ``/etc/systemd/system.conf``. 29 ``RuntimeWatchdogSec`` option in ``/etc/systemd/system.conf``.
30 30
31 - :term:`FIT_UBOOT_ENV` to allow including a u-boot script as a text in a 31 - :term:`FIT_UBOOT_ENV` to allow including a u-boot script as a text in a
32 fit image. See the :ref:`ref-classes-kernel-fitimage` for more information. 32 fit image. See the ``kernel-fitimage`` for more information.
33 33
34 - :ref:`ref-classes-meson`: :term:`MESON_INSTALL_TAGS` to allow passing 34 - :ref:`ref-classes-meson`: :term:`MESON_INSTALL_TAGS` to allow passing
35 install tags (``--tags``) to the ``meson install`` command during the 35 install tags (``--tags``) to the ``meson install`` command during the
@@ -684,7 +684,7 @@ New Features / Enhancements in |yocto-ver|
684 command-line tool was added to the different Yocto Project and OpenEmbedded 684 command-line tool was added to the different Yocto Project and OpenEmbedded
685 repositories. 685 repositories.
686 686
687 - :ref:`ref-classes-kernel-fitimage`: handle :doc:`multiconfig 687 - ``kernel-fitimage``: handle :doc:`multiconfig
688 </dev-manual/multiconfig>` dependency when 688 </dev-manual/multiconfig>` dependency when
689 :term:`INITRAMFS_MULTICONFIG` is set. 689 :term:`INITRAMFS_MULTICONFIG` is set.
690 690
diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
index 85dea9fe05..b34de4d361 100644
--- a/documentation/overview-manual/concepts.rst
+++ b/documentation/overview-manual/concepts.rst
@@ -98,7 +98,7 @@ files, and how to package the compiled output.
98 98
99The term "package" is sometimes used to refer to recipes. However, since 99The term "package" is sometimes used to refer to recipes. However, since
100the word "package" is used for the packaged output from the OpenEmbedded 100the word "package" is used for the packaged output from the OpenEmbedded
101build system (i.e. ``.ipk`` or ``.deb`` files), this document avoids 101build system (i.e. ``.ipk``, ``.deb`` or ``.rpm`` files), this document avoids
102using the term "package" when referring to recipes. 102using the term "package" when referring to recipes.
103 103
104Classes 104Classes
@@ -256,7 +256,7 @@ development environment.
256.. note:: 256.. note::
257 257
258 The 258 The
259 scripts/oe-setup-builddir 259 ``scripts/oe-setup-builddir``
260 script uses the 260 script uses the
261 ``$TEMPLATECONF`` 261 ``$TEMPLATECONF``
262 variable to determine which sample configuration files to locate. 262 variable to determine which sample configuration files to locate.
@@ -352,7 +352,7 @@ layers the build system uses to further control the build. These layers
352provide Metadata for the software, machine, and policies. 352provide Metadata for the software, machine, and policies.
353 353
354In general, there are three types of layer input. You can see them below 354In general, there are three types of layer input. You can see them below
355the "User Configuration" box in the `general workflow 355the "User Configuration" box in the :ref:`general workflow
356figure <overview-manual/concepts:openembedded build system concepts>`: 356figure <overview-manual/concepts:openembedded build system concepts>`:
357 357
358- *Metadata (.bb + Patches):* Software layers containing 358- *Metadata (.bb + Patches):* Software layers containing
@@ -420,14 +420,14 @@ build.
420Distro Layer 420Distro Layer
421~~~~~~~~~~~~ 421~~~~~~~~~~~~
422 422
423The distribution layer provides policy configurations for your 423A distribution layer provides policy configurations for your
424distribution. Best practices dictate that you isolate these types of 424distribution. Best practices dictate that you isolate these types of
425configurations into their own layer. Settings you provide in 425configurations into their own layer. Settings you provide in
426``conf/distro/distro.conf`` override similar settings that BitBake finds 426``conf/distro/distro.conf`` override similar settings that BitBake finds
427in your ``conf/local.conf`` file in the :term:`Build Directory`. 427in your ``conf/local.conf`` file in the :term:`Build Directory`.
428 428
429The following list provides some explanation and references for what you 429The following list provides some explanation and references for what you
430typically find in the distribution layer: 430typically find in a distribution layer:
431 431
432- *classes:* Class files (``.bbclass``) hold common functionality that 432- *classes:* Class files (``.bbclass``) hold common functionality that
433 can be shared among recipes in the distribution. When your recipes 433 can be shared among recipes in the distribution. When your recipes
@@ -454,7 +454,7 @@ typically find in the distribution layer:
454BSP Layer 454BSP Layer
455~~~~~~~~~ 455~~~~~~~~~
456 456
457The BSP Layer provides machine configurations that target specific 457A BSP layer provides machine configurations that target specific
458hardware. Everything in this layer is specific to the machine for which 458hardware. Everything in this layer is specific to the machine for which
459you are building the image or the SDK. A common structure or form is 459you are building the image or the SDK. A common structure or form is
460defined for BSP layers. You can learn more about this structure in the 460defined for BSP layers. You can learn more about this structure in the
@@ -465,7 +465,7 @@ defined for BSP layers. You can learn more about this structure in the
465 In order for a BSP layer to be considered compliant with the Yocto 465 In order for a BSP layer to be considered compliant with the Yocto
466 Project, it must meet some structural requirements. 466 Project, it must meet some structural requirements.
467 467
468The BSP Layer's configuration directory contains configuration files for 468A BSP layer's configuration directory contains configuration files for
469the machine (``conf/machine/machine.conf``) and, of course, the layer 469the machine (``conf/machine/machine.conf``) and, of course, the layer
470(``conf/layer.conf``). 470(``conf/layer.conf``).
471 471
@@ -477,18 +477,18 @@ formfactors, graphics support systems, and so forth.
477.. note:: 477.. note::
478 478
479 While the figure shows several 479 While the figure shows several
480 recipes-\* 480 ``recipes-*``
481 directories, not all these directories appear in all BSP layers. 481 directories, not all these directories appear in all BSP layers.
482 482
483Software Layer 483Software Layer
484~~~~~~~~~~~~~~ 484~~~~~~~~~~~~~~
485 485
486The software layer provides the Metadata for additional software 486A software layer provides the Metadata for additional software
487packages used during the build. This layer does not include Metadata 487packages used during the build. This layer does not include Metadata
488that is specific to the distribution or the machine, which are found in 488that is specific to the distribution or the machine, which are found in
489their respective layers. 489their respective layers.
490 490
491This layer contains any recipes, append files, and patches, that your 491This layer contains any recipes, append files, and patches that your
492project needs. 492project needs.
493 493
494Sources 494Sources
@@ -560,9 +560,8 @@ source tree used by the group).
560 560
561The canonical method through which to include a local project is to use the 561The canonical method through which to include a local project is to use the
562:ref:`ref-classes-externalsrc` class to include that local project. You use 562:ref:`ref-classes-externalsrc` class to include that local project. You use
563either the ``local.conf`` or a recipe's append file to override or set the 563either ``local.conf`` or a recipe's append file to override or set the
564recipe to point to the local directory on your disk to pull in the whole 564recipe to point to the local directory from which to fetch the source.
565source tree.
566 565
567Source Control Managers (Optional) 566Source Control Managers (Optional)
568~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -705,7 +704,7 @@ the Yocto Project Reference Manual.
705 704
706Each recipe has an area in the :term:`Build Directory` where the unpacked 705Each recipe has an area in the :term:`Build Directory` where the unpacked
707source code resides. The :term:`UNPACKDIR` variable points to this area for a 706source code resides. The :term:`UNPACKDIR` variable points to this area for a
708recipe's unpacked source code, and has the default ``sources-unpack`` name. The 707recipe's unpacked source code, and has the default ``sources`` name. The
709preceding figure and the following list describe the :term:`Build Directory`'s 708preceding figure and the following list describe the :term:`Build Directory`'s
710hierarchy: 709hierarchy:
711 710
@@ -2369,8 +2368,6 @@ The contents of ``libhello_0.1.bb`` are::
2369 # Change <username> accordingly 2368 # Change <username> accordingly
2370 SRC_URI = "git://github.com/<username>/libhello;branch=main;protocol=https" 2369 SRC_URI = "git://github.com/<username>/libhello;branch=main;protocol=https"
2371 2370
2372 S = "${WORKDIR}/git"
2373
2374 do_install(){ 2371 do_install(){
2375 install -d ${D}${includedir} 2372 install -d ${D}${includedir}
2376 install -d ${D}${libdir} 2373 install -d ${D}${libdir}
@@ -2395,8 +2392,6 @@ The contents of ``sayhello_0.1.bb`` are::
2395 DEPENDS += "libhello" 2392 DEPENDS += "libhello"
2396 RDEPENDS:${PN} += "libhello" 2393 RDEPENDS:${PN} += "libhello"
2397 2394
2398 S = "${WORKDIR}/git"
2399
2400 do_install(){ 2395 do_install(){
2401 install -d ${D}/usr/bin 2396 install -d ${D}/usr/bin
2402 install -m 0700 sayhello ${D}/usr/bin 2397 install -m 0700 sayhello ${D}/usr/bin
diff --git a/documentation/overview-manual/development-environment.rst b/documentation/overview-manual/development-environment.rst
index d79173ff55..066d784314 100644
--- a/documentation/overview-manual/development-environment.rst
+++ b/documentation/overview-manual/development-environment.rst
@@ -240,7 +240,7 @@ and so forth.
240 240
241 For information on finding out who is responsible for (maintains) a 241 For information on finding out who is responsible for (maintains) a
242 particular area of code in the Yocto Project, see the 242 particular area of code in the Yocto Project, see the
243 ":doc:`../contributor-guide/identify-component`" 243 ":doc:`/contributor-guide/identify-component`"
244 section of the Yocto Project and OpenEmbedded Contributor Guide. 244 section of the Yocto Project and OpenEmbedded Contributor Guide.
245 245
246The Yocto Project ``poky`` Git repository also has an upstream 246The Yocto Project ``poky`` Git repository also has an upstream
@@ -272,7 +272,7 @@ push them into the "contrib" area and subsequently request that the
272maintainer include them into an upstream branch. This process is called 272maintainer include them into an upstream branch. This process is called
273"submitting a patch" or "submitting a change." For information on 273"submitting a patch" or "submitting a change." For information on
274submitting patches and changes, see the 274submitting patches and changes, see the
275":doc:`../contributor-guide/submit-changes`" section in the Yocto Project 275":doc:`/contributor-guide/submit-changes`" section in the Yocto Project
276and OpenEmbedded Contributor Guide. 276and OpenEmbedded Contributor Guide.
277 277
278In summary, there is a single point of entry for changes into the 278In summary, there is a single point of entry for changes into the
@@ -347,7 +347,7 @@ Book <https://book.git-scm.com>`__.
347 this type of change, you format the patch and then send the email 347 this type of change, you format the patch and then send the email
348 using the Git commands ``git format-patch`` and ``git send-email``. 348 using the Git commands ``git format-patch`` and ``git send-email``.
349 For information on how to use these scripts, see the 349 For information on how to use these scripts, see the
350 ":doc:`../contributor-guide/submit-changes`" section in the Yocto Project 350 ":doc:`/contributor-guide/submit-changes`" section in the Yocto Project
351 and OpenEmbedded Contributor Guide. 351 and OpenEmbedded Contributor Guide.
352 352
353Git 353Git
diff --git a/documentation/overview-manual/svg/analysis-for-package-splitting.svg b/documentation/overview-manual/svg/analysis-for-package-splitting.svg
index 3ea4280882..16e831d65d 100644
--- a/documentation/overview-manual/svg/analysis-for-package-splitting.svg
+++ b/documentation/overview-manual/svg/analysis-for-package-splitting.svg
@@ -1483,12 +1483,12 @@
1483 x="291.66635" 1483 x="291.66635"
1484 y="381.29614" 1484 y="381.29614"
1485 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1485 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1486 id="tspan15"> sources-unpack &lt;─────────────────────── UNPACKDIR</tspan><tspan 1486 id="tspan15"> sources &lt;────────────────────────────── UNPACKDIR</tspan><tspan
1487 sodipodi:role="line" 1487 sodipodi:role="line"
1488 x="291.66635" 1488 x="291.66635"
1489 y="394.62952" 1489 y="394.62952"
1490 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1490 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1491 id="tspan29"> ${BP} &lt;──────────────────────────────── S / B</tspan><tspan 1491 id="tspan29"> ${BP} &lt;────────────────────────────── S / B</tspan><tspan
1492 sodipodi:role="line" 1492 sodipodi:role="line"
1493 x="291.66635" 1493 x="291.66635"
1494 y="407.96289" 1494 y="407.96289"
@@ -1543,12 +1543,12 @@
1543 x="291.66635" 1543 x="291.66635"
1544 y="541.29663" 1544 y="541.29663"
1545 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1545 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1546 id="tspan32"> sources-unpack &lt;─────────────────────── UNPACKDIR</tspan><tspan 1546 id="tspan32"> sources &lt;────────────────────────────── UNPACKDIR</tspan><tspan
1547 sodipodi:role="line" 1547 sodipodi:role="line"
1548 x="291.66635" 1548 x="291.66635"
1549 y="554.63" 1549 y="554.63"
1550 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1550 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1551 id="tspan33"> ${BP} &lt;──────────────────────────────── S / B</tspan><tspan 1551 id="tspan33"> ${BP} &lt;────────────────────────────── S / B</tspan><tspan
1552 sodipodi:role="line" 1552 sodipodi:role="line"
1553 x="291.66635" 1553 x="291.66635"
1554 y="567.96338" 1554 y="567.96338"
diff --git a/documentation/overview-manual/svg/bitbake_tasks_map.svg b/documentation/overview-manual/svg/bitbake_tasks_map.svg
index 09ef36faae..1ba962ccc6 100644
--- a/documentation/overview-manual/svg/bitbake_tasks_map.svg
+++ b/documentation/overview-manual/svg/bitbake_tasks_map.svg
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- Do not edit this file with editors other than draw.io --> 2<!-- Do not edit this file with editors other than draw.io -->
3<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 3<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="12270px" height="3804px" viewBox="-0.5 -0.5 12270 3804" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-01T08:31:56.536Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36&quot; etag=&quot;p-CQVME_iMteI52En1Eq&quot; version=&quot;22.0.8&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;c7558073-3199-34d8-9f00-42111426c3f3&quot;&gt;7V1bc6M6tv41rprzYAohro9JnO7O2X1JJZk9Z89LCtvEZtox3oA7nfn1R1yEQcjmLmRHPVV7YowxRp++dV9rAm9ef3/27d36m7d0NhNFXv6ewNlEUaCl6uj/oiPvyRFFM2FyZOW7y+QYOBx4dP/rpAfl9OjeXTpB4cTQ8zahuyseXHjbrbMIC8ds3/feiqe9eJvit+7slVM68LiwN+Wj/3KX4To5air64fgXx12t8TcD3UremduLnyvf22/T79t6Wyd559XGl0l/Y7C2l95b7hC8ncAb3/PC5K/X3zfOJnqu+Ikln/t05N3sln1nG9b5gPOn9ja72cPZi/UlfHp//N+7+WoKLTO5zi97s08fRnq74Tt+OvHvc6LLgAm8flu7ofO4sxfRu28IEOjYOnzdpG+/uJvNjbfxfPQ6fhrwemkH6+zjL942/GS/upsIK1/duePboett0Tc+2tsgPeHR2/vx9ddhiCCgaPAK/Qf9tOg/0QmBtPK81caxd24gLbzX+I1FEJ/66SW5PPqz8AWacp1+RfnRpU/zl+OHzu/cofRRfna8Vyf00TVl/K6lpuuaYt7Er98OAFLM9Ng6Dx4tPWinoF1lFz+sHvojXcAmi4l3XW7tnCUCevrS88O1t/K29ub2cPT6cPSr5+3SVfqPE4bv6T6196FXXGP02Pz3/0MvZMnQ8Ou/8m/OosckZ6/es1fLq2i7opeLjR0E7uJp7W6TNz65G3z9AmAWe//XeaAnwN97fIHSpQ9tf+WEJ89Mt2G0fifx6DsbdIe/ikRGg1b8UfT07ffcCTvPRY8jd+X76EAO5oZqFGBu6QTLVH1AT6nyAOzkHg4wz35Me+SrssEI+b/dMA989PKv3FsH2Ecv3vN7IPlUo91SQH4Q+t7PTDpBgmknClzKC8dRsjNz78jxv4+0e7BUG3v3mFZRSABACmniE4psnv7EMPsne7RCDWioBphytRqAl7CgBijqUGoAwoxYzDaLCWuspWIwXUugKsOv5SpSxVKZc4nrip6ijiRvfmmhVXNpARhsaXUGS3uJy5nR6SnKVdluUxmUlq5a/ywubidttLsyelA/K023FFsHm+38dUusMFaqlpbVt2bZzeSHJiPDpyVsihj/ICABUObC/jBBUephAjxmfUyx5kg/fyDbQ1UFhLmDMFThWUIYyOrJDwzlfyqrbgLDY2NYxVrZuWFYHZiH9+EP7fr+38Gnuf63/Cd0vb9n0ykQEOYQwup5ahLoE+xZmBrL1Ddhigb0ztIO7Wn09zTwF/EZ+t/7KAB7nSAkwgdCxxFsxMjIcAFnV/4iMsgX0YO7RkhHhqbjHy6J/lpF/x++7vBtpJfG75Q2XGNzH+/OdJvlPTlZvJl766y+6W+Q3nGzbPrTvDgDGv5tWLO74X/ZxrhV186Se2fHTmjAN84ZAb15/s9hGIgDmDVhwQEYKKOb8RhIZ6S3tXI2nuapS9LpMjKqQVsaV7QFNG0UISa81yNAr3e3Tl3o0Y1Ozn1/GUZzCD3glY7RQtpOIQBXM/3to4BRhSpfPIjvnDP9Dd/D/HBAnRjX3/759enu29XNl+enq4fPt0/PPx4nxiyn6M3JCwjlr6PyB4vKn0qLPLPV/nB6ghDd58qWsLbo7j2psSNbQi7ZcuPO1+j2PUF6/ZAeVHQJOzZS3tOUsY1eHCBh7XYTFHbCnK1BYXxlz2R3zhmFBfa7oLAeKcwyinrb+PyF6wfPjr8u2W6tnd6l633TWKugLMQZxLjUyjwdlDVPnj5MTDYzhwTSzxHp2nkiHRB1V4ygfl6k3sKG/zC4NziL0Fht6lvPys3zcaDFR1JiU0rV9REoVTHalDcI7YEPqCt67/EdJlCfamNoDzKf2YuyBKa+LDwRfTlTie4Y8sieCCifldLKA2S6UGftzEZD4YI6gSwXE7+ruNPST54/UAnZeYUDPgqIFU6KFxqDGEB1BA0AtqrAESgeHMW9B60YoVjDgGKKYv2sHL4fBcVQ46QlVmMU68YoKD4rx8OHQTEnkbfmKDbHcJ9BU6CYRxSbxnmiuNSdkJFnjM+yOuEZGzRHx0yxOVqODq5OONWfTdT6dmVNnFJfo6kSZ6VLbRynPUrTyl7bafAWh2tF6VI7MNIXv3cJ3pGr+KxcQhJiu/HsZSCkZD9SclrqZDp+ATruFHYOuSmXLUprlxLhrsLc0BefpUQrN1QEcw3FXBCOzFzoFsZR6FOFLnuRU81OKHR9TIBooxTyANYurKjXZUVOkp0VIv1INSq8MsT5BoteawCWS6cQXa7382hxJUST9mtEejF37gPH39qvTnY0plDpUOZ0CVya225O/I+2EaEOLbjsiVGBQlKqSkknUiBLToVwnEzlzEgWnMqCU+tWfA6VAkIJExLuQ5lAePKj0k8dQN7YZ15iZ6Ui8jMSPeud6flQSC/ouSd61samZ4BTshvRc8EtKKpK2PGsVlt3xSnuvFj0Wpl/OLHohUHfD78BItPXoBTVa0y5TSvHib/ZPx30XJzLWN2cpHrRov+lX52XYPE/mmzT4389rT1WL9K1z7Jb8o2wcG+/wgimoRZfhWfly2kzCJcHFHaQZXrdQK8KOZNlejm49vXu5vb74+3F0Qob1bhEH5RpfGzpQwFtWuAydFR0bkRak3HEmGGgg9pKNx8zkohmFxasKNEiTtdZ+CPwQ81x6Iv7W9rZ4WJ9cSzKl3JmURRz1uzKPFeqJbtKsqwXGNa0YAOORe/cO76LnprjT/rzMPMA8S6EWjcvQcGoHHvaEcmQ5klCJYfSyBCwYNRyzkTsrt24c2khKHVYSqU4ctlSataDjjMHW+gMNe2KE0wy9LBpxV4RozvYlJGajYuuu6f6SFVLVd667hplW4AH6greA9/zwunSCcKl6wsW64fFshY3J2gMKCx5DMoj56iIrmLHG95U05k1Wh3Q6TvnjM58Z+HunGnKaoLN+mEzC9RgM8A07InbOgs244jNao9EMDirJDP4HIngvtorR5BYPyQGoSzhrkYneAx7mBjR2LgBfEFjJ8ipmsawD5QXGjNZDZYcZxLaKcwVQhIfB4C9t9XuKEcNLuXoPhCOjb6kqCpLSjEHkpYHp0KcBc5Ijo7T84k/HuQBkh2oz6ybLwf6byfVEYF8NqNwt4vNfimMiN6MCE0iGoxalHm4GpQMpvxnnZU7hAfgdCGp2rlyFmf6mclnEGrjzgVB9UNQqmZl1HOCoJjrZ2XDIMvbEamQ/ebtQKUooIAMygAwKd56rNcPsPzlIiVcaCsFnlQeZCAQ0IkEFDI5DxhSubMkNQA9XPKWVdaQCyCQyok2Agb9wkBVasNgMC6waDpIp3XPPfM056lQQmb7i1SD5V73bLC2AFaTPMB9SfIrq2cY6D9XztRbmCEM24P2kZdeSn5P7sP4KANFs8y6MZJWjuSiQ4Losi5rFY1QymVChG8TAPJKya/u3FJFJwqSAGbhujOmyA8Mk3CfLXaOrW8RS72Ha3e7ij4dwRYbb/Njgev5wZ6TX7zNMjIC5XBtR7/PDSIg+k7gxD+XfsHHvx4ffvx4ep7dPTweue6bG/+cOfpeeeHtXLRHI+LzHak/8ZIvFuWuTHnQ6lUyodGkGJV0RWK4zOxW1e+d3PwNSL6tiCqIF1FHpYC6zrYBMr5bMbsmE5pZFbOTQ4YZMXurwWsddTUVFtzEkmVZFdshfkWWF7aJuxUTBBrvIspOPOt9lfVOqlGf2LsTu9W+Ak01JlU1RtlXfLZ1XnrP7jYI7egX1HO1I80gLG5le+OutujvBYJbtBmvI/3BXdibq/SNV3e5TEJLTuD+155vsNWdLi66rnY90WbRtRBRBAlnANrOy5SXY/oX1/uvvmKlGCSsKe1MLYpiRRomPVa8lWfAXLqjjlULGLO41kf8stSiWmM4tw3gM20LUdbC2764q72fGZNz/8BXgsY4oDEcZDRoOGZLW2YJxSLGyKo3gElxB7Btt6LQ4gpckFja70cQGJcEhqPm9H5SVTHz4ehMoU3i4wLP+y0iyp8C0HwDWpHJTty06ZJsLQulss4uXbkD7kAegvIiW6/DQfgS/yucN8rWyEUtcnDHZyV3E/889OUy0Ha/k88QV9Hp8Y16WwstgrsLnGqNxg526PegFy/u70gLIpJBib1BuMFy72i6BowL2jXAqLNraO3rB9w1lV2PxK4xxK4Z0/qjaEuM90ilC0PsEVPskREly5S0MCgeE8Z7ppzbwYmFgT6+iwcYCBODZ0iX8ktlmjubsYlR9gIKQUBcxRKCYExBAGptG7ayAFZ6T8W2AbLYN2NKG7VGpJzxruGzb1QUc/B2+40dOs8NW+EJxYkFlDVAJnNToJyN4GGEZeFlqpYAQEiAMYuezBrbhqkEgBrzEUrN0sk7p8qKFHQFZ23VGPzce1OadqmysKQqVeTKAo3oasIoWRbSrHViP/VaDMo1FBuEqci0UWo9jkqhwkyrGECDsFpwoRizPBKrYXBUsxrepJx0scnunDOrS4xZ7m/MMgSczVlW1LKDTMxZHia3VMFdkU80mGScXKoqpdW/1Gm4vC3+6GNys2YC3A9yzKk8jcbkinJIRVVr23gaHzbesYzloyZe6QOGysDCU8tpzIH9nhSTiYmNA5MnB1Nw1XKIBK//xa0+oyrC0irX1o+GqyGEeG6GaMZxwZ5Qte5kAohHn48tJbXGnlAdT2pk6wlVaQmswhNazYaqBiTLKtoMHDQnUseZSCCmC5xak9qd6/oP5HREE5+pumJAWZ9OT9Xkb0JZ5mUVPMYPj2lKXR7TVL54DN85ZzwmBkT1yGIWjxOi0PMZhcfEhKi+ua+2oxbPxBm6+3A5dybrxV3RNLg341ErO1l5oNV51MxX0GpPymE0eco6/CtAztIo8XHGQ6gUnU8U4t51U1kCAo79wHEKiH7Q1JHwMtMMDX3k4QNV8rnofSu6juf2wlxS40OZ65iuSmTaA1WVKLqslfQm7u0QbZRtfCeKHB0tzjT4EHqEUVuPMBjpEWhPEUlPMhGtqTvFAOgVF+ppiEH5jtOCqGM3VvqArlV54+Gp8wfyxevVzSQqS0jUUgnJONLvEX1x/F1y/j11Ylz/68fDH7O7h4mB3vyUJC8ePluvoAXtiK/23NlMBqsY20SXRyy9dHxMikvnxd7H9xcgkexuV08xcSuHA1+dl5BrljotwEpiOKqt2m7RUqePapLG64+LZ2SCG2Qf+uRVR5LSiU94Ly+BM4xRgzPcOVMn8ba5ZE2yurosjSg2UTuJlJi0MjD9Tek1QA+6KTQhOQKT1sOL5kYfbOqZgoPKnIF5JmDMLYxBCcY0I0vRaX7UAYHMpwf/UQCZVyADrdpVwBzFfA7pqK15CxQzR7ECJQ7ZmE+Xq2BjbnE8zRLheIIxn310ngSMeYWxCrhUjit76IwVAVu6vgAzt2AmRttZBiWay3JIu2LwORHK3S42e4RNAWZ+wQx1naRmGp5pw1QGxDOf+dMPtzd397fP6XRrgWleMW2ZUDKL00QNSsYNALoEWLqVoQZK6OCq/Vgh56FmYkGxNJ0D+B4FUHWWgZmeWV0wh+HES6a2yWfAQngWuCVJAEuzcwy1HHdjbZOZfAYshKuXYyCTEQseYMxnxGImYMwtjDVYjiDzgGQ+YxYir4d3PMtEAyONMkGJbVaPyaebLOr/7zvRw372nYW7E1MAuGxdYahEhiatnblCK6IYbgoALpoT7Zp6a9ek6kXPEeKxekOyBmzXpFg0dbLT+n6MdjMmIYNorWayzGVGrWYstbR0XBU+fUC/n5UGgmtUKXPWXNtiNdCCv8r4DwlAKHPmeLb4zKEQLUJ6Kx42DS47hFhGC+YTHUL4o76643qg3HuTyo4IrJxdO2bWjaC/nuhPjzp5FOjPolgRzNt34JYiotMbN1yWKWc1uIyvTm/ZnXPGZRt3LnisHx6zTKuU6EfhMcZqXCbUc8CL3Zdo5aX1ZSwyNwMHTK0oxw6dz8bK9IRy2YGNG0BJgSeV8+UEAjqRAJEqgRBAG2ZP7749HAeUvdsFEEjlprYCBv3CQFVqw2A4LqBlGgwZ5LD9RaroypygpI+1JcOUNJIH0CivrK4MN29ErrSV24z5HqnOcO0G0UPaBN4k7vUT2u42OuKF6+h8OZoyGL1+8aNvwYd1+zXC53Ye7Ca5Ced+lgbg7JAx5GwXrhNI6GOztHES+pW5d6Iv9pMnQl5gbgdRiD8CmJy9S32y5d+Ez9/jA6vFIqd578nzJoWB6jd9fCNakh16cD6i/qD+V8v2dtnt22udj26qwfM427SNlCWLLFukyUsME2takTN12qB6WszfGEwnAnwa5Gnt0/Ps9vFJpN9xnH6nk6mktAKoQ8oKGw2PotAxjNngv2N/ZRTSqhe0meTdnJXTPcXYMYhn2VV6QQHOrOLFC6qMOnWgiE9D4HN8fOp84RNU5uIvsuU6SG74soj+Vxbmn91wvb9sB3u1DEfvKFBVtZ7yR6cqIMvqoFV2reAyt7zczfKJBwAOn1k6S+/5xQkX67Ite8Y21AWmvkf1bGQOkCpTUM0y+R2C6r7fydodgAcK3iM6WSYa+eheptMejWrfWHKV/AiNxg4KtAjuLnCq2d4Oduj3oBcv7u9IQhA6UW0i1nQNGJe0b6KusDX2DWS6bxQhDIQw6FkYaGMLA0UIg0phoAlhwJswoOwbtsIA8tk4BgmDhbd9cVd73xECgW9gA6AW0wkshZJLANjCWhHioNI2UIQ8GHXbgOptw1gY8Nm1JhYGcXKAEAW8Y1onMK3R8gtpofQBUV3pNReyIOqDKWTBiPsG1tk3bKWBymcKCpIG+y1C2E8hDPgGtULoNzTPJ1tJoFYau0ISCKNgVEFgVu8ZxlKgTZ0pw8rSC2oDAnHqfnX9qMpXZooKTYESDlHSe35d/NGmg8eBrBIZMcrpOeIWME6dPxlkjrgKBdPxh2G1/xw8NhgGwDj5gWFAnD1Yzoy2KJhz0YmGDCv5DxV9KbIUysAeWlPDPqr49+EP7fr+38Gnuf63/Cd0vb9n0ynOKGHHnHnerJpqkvVsmuTzq0+nVxe4ts1YFB5w2YWftTI/05eeDxXDJPzO+AccY2fyfLxfjmokOKBIP38oMi8P2tx4C3sjJXR6CbzJvMEvpZ0dpHX4Vcv82UcHBPom4rwlbIENaxLg+dSJ1mBDSntO+kIqfbNhR+dNOdVzPt/Y744fCA7ptZcSjUOoOS/DtVHRKuM17b3COd/ykfL9/Kivqpr9ZdLaIGpmsHK2aFWTpgVh1E+h+psmiC6NbACIMYvNlejQ9f139HKavLj/M36rWcn+IZR0t6Xdy8oNj/ykZHJD9IsWa3uLdj9arbDTbyp+Vy8dBxrtbu4IvNiHoA9DStFK+1ijzaWGB5WhULClDbeXFS7N+GhUiX0yR9/FB/7x3YvXB53tBP+TQ6h7fNOJ+C1XsSgyr9OkZCtTZdxw7QK1SveWiOCKVB6u0jppzdLZhnA1kQBXuWlUsWnGnK2F53DjpnW02VqMNw23VZLuNgjt6BcI9YlnTAMIVNK6ADIlVMM2B04ThZLV2dBCGoy6c5ClUb1t2IoDXSmvsxi3MK5bXqs9Okbna3RMduecKRdRVr29EqNj+vIv6oQDxaA4F2kjkAf0n1hcAu/+j8+zi0bdWfcSBboFJZzjg6FMGU0Pdcmghc0H6ydqsoqbZ1PfjO5j36rSlQrBdtGuMZPd1VIe106MnSqq48lwmTejKleUTEciPzFQfhF+tDlpcBVbeLvo93qRPUdvWl8MW85ykVaqNyI73/kdzaZzt6vjp+eu/Sl4D3zPC6feNgIXzSLrJBuO+B+4C3wOO/BcB4akF91vtDHZyAajTrgbUFnRK/3W4wVBC4qycMFx6kjQDKS4qAS1UlzLbF1wejmtU7jgSBecaFY27s5RoYRLP/kJypjlgXDCCze2fl57dn3/+nlHHuYzxJcqF8E02G0KOYCX5xZh6Ywz5WpnHHXi3YAKbmUsbjRv3O3j00Uj77wdchaRY0TzxukUKA/nijOMUSRz5phr4pf7EFLZqiuVDciZVOYzRBHY7/FE2otmRabyWDGJQSkmZUYZ2/CYIaL83DEZ5qcaTMbZODF855wx2T7wBYn1RWLQJKuJLcq8ZRXSBi0OyGNtAqMjaWOC+6oZrbLwGAwT+qwRqZShQY4NT+42/SQB5T7Clkal/3wUXp0j/Ale7YtXoQSUIq8atJa4GqRGJYejVjy5jwK+YGdvOwU9PnmbpePHRcS+Y4cIINGv8qNiYjv+7853AidGuEutT8YHsmrh+6ubP64+3zYpzv5l+24cXYzHul+74bX9M/run1vvLbq1t7Ud3UAyd/0tvb24zHm3jyueEQ+vohP3QRzoRwecWvf66e5rhxt1ftuvu036hOt+WXRyXCz+vVGxuIy2Q1zr/ebGiFl5k4aV3g2/sJiG8RLDJH76blSLK7vBkIjIjiX4FrXltRhMkzUJFtsY0mrLoQKoBAZUMzs+AInxKUFFZsXZxIcNtSSgOcisMCsjeiKzIpoFLDIrRtw5AJKCgYPMCrxPheeTH+vfNMrW/5Ezrb7N/448zGdge+nsNt779KiSnLWm2f1c5Qix1LGmDXEKk79iWoiscJefYbXpaytIcVhSrB3YtjgLB+E754wUKWwYeygSP8Hz1cPNl6KvQlDf0NRHbbTFmPqqG221tkAQLcU+zthbOq/nHPR3r0F9l9VNrWsunXmDa8qeX+uq7u5n7atKZT/H09oJ8g5f75e7jB3B8/fyydV3k/pTntHz6/vx4Uujx9jgKSZ+4/pXR4+zwdVjwRe7Zn0nNkARrUdb/Sb2R9eDGma+m69Xj4+NPNIvMUTC1EGeoeCwXgu0QxL/fVRcN+i9pK7peHvZu50TM3Dphmo6re++f7l9uHuq//VtvXfCi0zEwYgOAjQXskprwTio/1gF2iiKcZpfgP+uM8ihbRW2KLzO9OfqGT24e9vIhdeHqSc4ZJw2cTtWd136gCZXFGqrhM+b+MBkmDptqxyuwemoU1kCU1+WqEp7pl5UOzYuQWVn3gceWKpO5LBalNJpBdd5FFy5Cpk206PyXt3jravyHtrBz+jeN0GkQSydSMGIjnuNotDN9ZqbNkpwC/9eo4B8U0tmAENmEDumseo7nD3S3vLp8HD2x3fKW7qVo70y9zZL6l6ptmEKMMqbLHTLcIIHJiS5QVmwvDBGYWu/xu8m+TfRHbbZMS2yVOqBNb30w3CXPuq5qmWbVrY8GZ5cWBhPeYGZlrpxZ08dF969W1qKQkxepvVAgbSpesAYygmnyqOkcfOw8u3NFlWu2y9KlUerfKMPj2rT3KC3KYo5+/ikSYx3YzrDZ/LhZyVSAUdfYL76H2Q3zllAKonSDyP0OEAa61R6aJA2Kst5sUccRuPUJ7UMrPOAmi78VLeAcgA/XkeCOh6EnBd1/tnt/dcffz3P7h6ea+vjx4LagmAaEoyqS7g9Op6GSKnkBorFtlRHlfnssn3Icn9+89H59RErkuJHINgm7mCtKGipeb3Z1EAmib2qXJl1JFLigXHKESNS4gffN0T+E9N8eHo9NXNbvFl4uo2ZXbDTeYBOm3h+LT347kH7z+rd/e/1p6vdf7b6dbiWnWntNiI4esaLFgxoWjDV0S0014aaqwYI01jFzTxGy7xUQXUNW4cCc/8QNgqSsErYIhvz7v6PvmM3D/ff2obpjl90dtsg7CL/o6SIL9bO4mf8xJ1d9FzzekJ2Un64sUhua1IiTXTOgaopYbIr5LfRrEYg4SKjAbYgn+VLByfHRTtHz7s1J5IgZHknpGizJkWmDNadUwV8ekKevt0LMHMMZhMW7TKFAmSmbWZVwGcN1eyrYGUugXyCgXVF0k2W2FWUFj6FHoNek0bR/nbJ9rUcEdyptrWcCp2Da3rfboVjOeqmLKmWnP0jQjOmIammZiBFJfkvoUUnP3mw5n0qHsfDGYOLoMyFBmWQ0lK0Mg2D4uJhG5PBMkbEZE7EZEwRkxlz2wCiNIq2bZiGZMwW2lO3iIzx8UIyHTQhpW63IlXpvVtRu3JBiJU3DPF0LPvRckHyA3qqWw1a/Zc92IK0ECZlQ5OyF04kWxTRhmAz9YcorFiRPgE7swCraq+bUWkbO/I8qZQaqVZrEmnWpIWXSLVS6Z1j2zTm/o/P/3q4e7qd3T00Ci/Wi1jmrt4szlgzeJm7fqN46+C1mEP1hiEN6YY/o1nBarE/DJOSO+78Xv2HdC2rKCGhCSRKSoUKdMmkOF+N0iyJ/sgJKkfJqXPj/q/uwtnG7YXijIGk7/06brvToDV75IPydntE1c7zxl00ALP9ElviNb/DDqOu8Scgf/LrkgZOcwexTNz5P+12hH97sH/Ff5a/I3kkWaOApqW2X+9unuPG/c83X/54/GeThBH3ZZJOIiDvaZOtXSxgtl5Y60HefP3xeDtrT265sz5MX31KzXEPpDNViJk0hkWbFAKVw6imQv2uPFwnDhUe93Z3Jp1UIzqMwUgAvA/i6v+4s1fgoCeL6CSWdwt351B6ks3t5AMxMtAOcf1M95TQX+m3rO0g+xlJ97LWTQXIrMXo4NPVw+fbp+c/b7/PfkSdAaaFwz8em03LEFttoK2m6hrZ9Z/akQyqdPE+lG+QmRnc2qJtEU09bt5+jLpqSBksT199zhK2YTmDd+FtX6ZItXACKfwdXpz7jlG7LdL/BiEllEfrhqgMRTygTYfwEbI4moxk/Oj9HHBqf/XQxdEajNNvh70QbCUD5Ul9GSiwWBeLnMlAfOOcpfkEQYjMoenCXhxcAReZrsmyjKpWgxEgQwk3nGFTSKUed/iNCcHHx6erp1uRL8xlvjCO9KpQskz5aA4lraCDDu8+Qr8nJz5TegJfHIAYmRcmUCXLKqw0kCltAGkzDZVeIhf0lYbM9TqgWnnNbipLsgyr1Lvo1b3ju+hXR8mrTSL5x9U8HtDYXn+DuAVNZSxfGS+Wf9K2GdBxnY0xjqZi2O42Ce/Hilkaws581vJ8725iJ/U+jKdM5wqX807vaEbKYWR1dNIh7pNebVKIUy3d6GNJzGextrdxM103eoXHXafxreQS+OsT7/r+EDVK3g7sV4fSuFf4n/vyP2d9pU4IYuo4DGswB9DxUuHO+2RQbTW/iMkSUvZpMopo6aKtE3q+6xAZOEg38+N9Zy8WvhdkGzXAOySwfyUXiJvFBzGY8QggvKVDJDCOasJiKw0WNdUP4VCs7Jg1d5M6lKqjVHoNOksdDOb3ouDxEIP7eYYvgj7YRykT8UynOq3zX5P2Gv3mVAXLJvlNdedspekPDe5W5Er1Y26Q7S8UnZa2cCxVarg9WOk26a75uXG6Qm772fF9ldC6sd8dPziC8FQzy9Q9JI68fSxS0IUDN9Et39ZOhJON56VZWYlmiR6VHcnT09rah4HzMCIGyERijkqL11F76g9WRVSj9K4ruuP/RFk1CRJf3NU+W+Ai8hNEOkGAnrFrbxKTws8+1ljufLu6+XL3/XYAKTG7e3x6+CFkxPibysJ5rJnSRpEZKk1pG2xLDTptyonZOgiSOTeJVbH23iYnkl5TtwxS5pwp2mThNDY1ps72lwArYwkAcFA603Eo49FUkLX96huw1Poa2tiDo0srVy8t5dkVx0dGJ+VjGkceI+VhH49QQLIWjWK8UWvRhnqqNLXx7J4qWfUcDfij1C/QOkIO9mBp7T/P7sHKxIMFQKY8Vkp69mCPlZaZfX6Plai3MSCFX1mClaZen9tTBWpprCfUqXVMPT1a9NL3Ir0ne+8zehDrb97Sic74fw==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css?family=Liberation+Sans);&#xa;</style></defs><g><rect x="9428" y="2640" width="1120" height="600" rx="90" ry="90" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 8868 3120.57 Q 8656.57 3120.57 8656.57 1980.33" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 8656.57 1959.33 L 8665.9 1987.33 L 8656.57 1980.33 L 8647.24 1987.33 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 9228 3600 Q 9228 3760.57 9608 3760.57 Q 9988 3760.57 9988 3280.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9988 3253.42 L 10006 3289.42 L 9988 3280.42 L 9970 3289.42 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="8868" y="2640" width="480" height="960" rx="72" ry="72" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><rect x="2868" y="2640" width="1080" height="960" rx="144" ry="144" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><rect x="1082" y="840" width="1080" height="440" rx="66" ry="66" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><rect x="2148" y="2640" width="560" height="960" rx="84" ry="84" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 4928 160 L 4928 360" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 4928.57 160 L 4928.57 200.57 Q 4928.57 240.57 4888.57 240.57 L 1662.29 240.57 Q 1622.29 240.57 1622.19 280.57 L 1622.06 334.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1622.01 355.53 L 1608.08 327.49 L 1622.06 334.53 L 1636.08 327.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 4928.57 160 L 4928.57 200.57 Q 4928.57 240.57 4968.57 240.57 L 5808.57 240.57 Q 5848.57 240.57 5848.38 280.57 L 5848.12 334.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5848.02 355.53 L 5834.16 327.46 L 5848.12 334.53 L 5862.16 327.6 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 4928.57 160 L 4928.57 200.57 Q 4928.57 240.57 4968.57 240.57 L 7273.71 240.57 Q 7313.71 240.57 7313.81 280.57 L 7313.94 334.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7313.99 355.53 L 7299.92 327.56 L 7313.94 334.53 L 7327.92 327.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 4928.57 160 L 4928.57 200.57 Q 4928.57 240.57 4888.57 240.57 L 2620 240.57 Q 2580 240.57 2580.01 280.57 L 2580.02 334.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2580.02 355.53 L 2566.01 327.53 L 2580.02 334.53 L 2594.01 327.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="4788" y="0" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 20px; margin-left: 1198px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">tmp</font></div></div></div></foreignObject><text x="1232" y="24" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">tmp</text></switch></g><path d="M 4928 520 L 4928 1040" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><rect x="4788" y="360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1198px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">work</font></div></div></div></foreignObject><text x="1232" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">work</text></switch></g><path d="M 4928 1200 L 4928.29 1240.57 Q 4928.57 1280.57 4968.57 1280.57 L 5648.57 1280.57 Q 5688.57 1280.57 5688.57 1320.29 L 5688.57 1360" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 4928 1200 L 4928.29 1240.57 Q 4928.57 1280.57 4888.57 1280.57 L 3156 1280.57 Q 3116 1280.57 3115.98 1320.29 L 3115.96 1360" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 4588 1120 Q 4398.29 1120.57 4398.24 1334.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 4398.24 1355.53 L 4388.91 1327.53 L 4398.24 1334.53 L 4407.58 1327.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="4588" y="1040" width="680" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 280px; margin-left: 1148px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter"><b>${MULTIMACH_TARGET_OS}</b></font></div></div></div></foreignObject><text x="1232" y="284" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">${MULTIMACH_TARGET_OS}</text></switch></g><path d="M 3115.96 1520 L 3116 1680" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><rect x="2975.96" y="1360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 360px; margin-left: 745px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">libhello</font></div></div></div></foreignObject><text x="779" y="364" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello</text></switch></g><path d="M 5688.57 1520 L 5688.57 1560.57 Q 5688.57 1600.57 5688.57 1570.29 L 5688.57 1555.14 Q 5688.57 1540 5688.29 1580 L 5688 1620" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><rect x="5548" y="1360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 360px; margin-left: 1388px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sayhello</font></div></div></div></foreignObject><text x="1422" y="364" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello</text></switch></g><path d="M 3116 1840 L 3116 1960.57 Q 3116 2000.57 3076 2000.57 L 2036 2000.57 Q 1996 2000.57 1996 2040.57 L 1996 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1996 2155.53 L 1986.67 2127.53 L 1996 2134.53 L 2005.33 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 3116 1840 L 3116 1960.57 Q 3116 2000.57 3076 2000.57 L 2468 2000.57 Q 2428 2000.57 2428 2040.57 L 2428 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2428 2155.53 L 2418.67 2127.53 L 2428 2134.53 L 2437.33 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 3116 1840 L 3115.96 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3115.96 2155.53 L 3101.96 2127.53 L 3115.96 2134.53 L 3129.96 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 3116 1840 L 3116 1960.57 Q 3116 2000.57 3156 2000.57 L 4268 2000.57 Q 4308 2000.57 4308 2040.57 L 4308 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 4308 2155.53 L 4294 2127.53 L 4308 2134.53 L 4322 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 3116 1840 L 3116 1960.57 Q 3116 2000.57 3076 2000.57 L 1508 2000.57 Q 1468 2000.57 1468 2040.57 L 1468 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1468 2155.53 L 1458.67 2127.53 L 1468 2134.53 L 1477.33 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="2976" y="1680" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 440px; margin-left: 745px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">0.1-r0</font></div></div></div></foreignObject><text x="779" y="444" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">0.1-r0</text></switch></g><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5648.57 2000.57 L 5568.57 2000.57 Q 5528.57 2000.57 5528.43 2040.57 L 5528.09 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5528.02 2155.53 L 5514.12 2127.48 L 5528.09 2134.53 L 5542.12 2127.58 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5728.57 2000.57 L 6988 2000.57 Q 7028 2000.57 7028 2040.57 L 7028 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7028 2155.53 L 7014 2127.53 L 7028 2134.53 L 7042 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5728.57 2000.57 L 7676 2000.57 Q 7716 2000.57 7715.99 2040.57 L 7715.97 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7715.96 2155.53 L 7701.97 2127.52 L 7715.97 2134.53 L 7729.97 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5728.57 2000.57 L 8313.71 2000.57 Q 8353.71 2000.57 8353.79 2040.57 L 8353.95 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 8353.99 2155.53 L 8339.94 2127.55 L 8353.95 2134.53 L 8367.94 2127.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5728.57 2000.57 L 9068 2000.57 Q 9108 2000.57 9108 2040.57 L 9108 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9108 2155.53 L 9094 2127.53 L 9108 2134.53 L 9122 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5688.57 1780 L 5688.57 1960.57 Q 5688.57 2000.57 5728.57 2000.57 L 9948 2000.57 Q 9988 2000.57 9988 2040.57 L 9988 2134.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9988 2155.53 L 9974 2127.53 L 9988 2134.53 L 10002 2127.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5548" y="1620" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 425px; margin-left: 1388px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">0.1-r0</font></div></div></div></foreignObject><text x="1422" y="429" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">0.1-r0</text></switch></g><path d="M 1622.29 520 L 1622.29 560.57 Q 1622.29 600.57 1622.29 560.57 L 1622.29 540.57 Q 1622.29 520.57 1622.29 560.29 L 1622.29 600" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1762 440 Q 2215.43 440.57 2215.04 205.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 2215.01 184.47 L 2224.39 212.46 L 2215.04 205.47 L 2205.72 212.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="1482" y="360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 371px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">downloads</font></div></div></div></foreignObject><text x="405" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">downloads</text></switch></g><path d="M 1622 760 L 1622.14 800.57 Q 1622.29 840.57 1622.29 800.57 L 1622.29 780.57 Q 1622.29 760.57 1622.29 800.29 L 1622.29 840" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><rect x="1482" y="600" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 170px; margin-left: 371px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">git2</font></div></div></div></foreignObject><text x="405" y="174" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">git2</text></switch></g><path d="M 2082 1160 L 2628 1160.53 Q 2668 1160.57 2668 1200.57 L 2668 2200.57 Q 2668 2240.57 2628 2240.41 L 2568.42 2240.16" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2541.42 2240.05 L 2577.49 2222.2 L 2568.42 2240.16 L 2577.34 2258.2 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="1162" y="880" width="920" height="160" rx="24" ry="24" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 240px; margin-left: 291px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">github.com.&lt;username&gt;.sayhello</div></div></div></foreignObject><text x="405" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">github.com.&lt;username&gt;.sayhello</text></switch></g><path d="M 2082 960 L 6628 960.57 Q 6668 960.57 6668 1000.57 L 6668 2200.57 Q 6668 2240.57 6708 2240.48 L 6887.58 2240.09" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 6914.58 2240.03 L 6878.62 2258.11 L 6887.58 2240.09 L 6878.54 2222.11 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="1162" y="1080" width="920" height="160" rx="24" ry="24" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 290px; margin-left: 291px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">github.com.&lt;username&gt;.libhello</div></div></div></foreignObject><text x="405" y="294" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">github.com.&lt;username&gt;.libhello</text></switch></g><path d="M 2428 2320 Q 2428 2320 2428 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2428 2635.53 L 2414 2607.53 L 2428 2614.53 L 2442 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="2328" y="2160" width="200" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 560px; margin-left: 583px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">git</font></div></div></div></foreignObject><text x="607" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">git</text></switch></g><rect x="2212" y="2720" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 690px; margin-left: 554px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Makefile</div></div></div></foreignObject><text x="610" y="694" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">Makefile</text></switch></g><path d="M 2212 2880.57 L 2117.14 2880.57 Q 2077.14 2880.57 2077.14 2840.57 L 2077.14 2714.86 Q 2077.14 2674.86 2037.14 2674.9 L 1966.47 2674.97" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 1945.47 2675 L 1973.46 2665.63 L 1966.47 2674.97 L 1973.48 2684.3 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="2212" y="2840" width="456" height="80" rx="12" ry="12" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 720px; margin-left: 554px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">LICENSE</div></div></div></foreignObject><text x="610" y="724" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">LICENSE</text></switch></g><path d="M 2212 3000 Q 2028 3000.57 2028 3060.57 Q 2028 3120.57 2171.58 3120.13" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2198.58 3120.04 L 2162.62 3132.15 L 2171.58 3120.13 L 2162.55 3108.15 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="2212" y="2960" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 750px; margin-left: 554px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">fix.patch</div></div></div></foreignObject><text x="610" y="754" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">fix.patch</text></switch></g><path d="M 2214.74 3151.44 Q 1988 3151.43 1988 3278.29 Q 1988 3405.14 2179.58 3405.02" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2206.58 3405.01 L 2170.6 3423.03 L 2179.58 3405.02 L 2170.57 3387.03 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="2212" y="3080" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 780px; margin-left: 554px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">hellolib.c</div></div></div></foreignObject><text x="610" y="784" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">hellolib.c</text></switch></g><rect x="1896" y="2160" width="200" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 560px; margin-left: 475px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">temp</font></div></div></div></foreignObject><text x="499" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">temp</text></switch></g><path d="M 4308 2320 L 4308 2640" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><rect x="4068" y="2160" width="480" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 1018px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sysroot-destdir</font></div></div></div></foreignObject><text x="1077" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sysroot-destdir</text></switch></g><path d="M 5528 2320 L 5528 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5528 2635.53 L 5518.67 2607.53 L 5528 2614.53 L 5537.33 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5308" y="2160" width="440" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 560px; margin-left: 1328px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">recipe-sysroot</font></div></div></div></foreignObject><text x="1382" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">recipe-sysroot</text></switch></g><path d="M 3116 2320 L 3116 2694.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3116 2715.53 L 3106.67 2687.53 L 3116 2694.53 L 3125.33 2687.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="2989.96" y="2160" width="252" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 748px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">image</font></div></div></div></foreignObject><text x="779" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">image</text></switch></g><path d="M 3116 2880 L 3116 2920.57 Q 3116 2960.57 3115.99 2987.55 L 3115.99 3014.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3115.98 3035.53 L 3106.65 3007.53 L 3115.99 3014.53 L 3125.32 3007.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 3116 2880 Q 3116 2960.57 3354.86 2960.57 Q 3593.71 2960.57 3593.91 3014.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3593.98 3035.53 L 3584.55 3007.56 L 3593.91 3014.53 L 3603.22 3007.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="3029" y="2720" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 758px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="779" y="704" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">usr</text></switch></g><path d="M 3115.98 3200 L 3116 3294.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3116 3315.53 L 3106.66 3287.53 L 3116 3294.53 L 3125.33 3287.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="3008.48" y="3040" width="215" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 780px; margin-left: 753px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">include</font></div></div></div></foreignObject><text x="779" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">include</text></switch></g><path d="M 3593.71 3200 L 3593.71 3240.57 Q 3593.71 3280.57 3593.76 3287.55 L 3593.82 3294.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3593.97 3315.53 L 3579.77 3287.63 L 3593.82 3294.53 L 3607.76 3287.43 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="3507" y="3040" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 780px; margin-left: 878px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">lib</font></div></div></div></foreignObject><text x="899" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">lib</text></switch></g><rect x="2956" y="3320" width="320" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 843px; margin-left: 740px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">hellolib.h</div></div></div></foreignObject><text x="779" y="846" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g><rect x="3348" y="3350" width="480" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 838px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">libhello.so.1</div></div></div></foreignObject><text x="897" y="851" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello.so.1</text></switch></g><rect x="3348" y="3450" width="480" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 875px; margin-left: 838px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">libhello.so.1.0</div></div></div></foreignObject><text x="897" y="879" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g><rect x="3320" y="3320" width="548" height="250" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 4428 3600 Q 4428 3760.57 4978.29 3760.57 Q 5528.57 3760.57 5528.14 3640.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5528.05 3613.42 L 5546.18 3649.35 L 5528.14 3640.42 L 5510.18 3649.48 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="4068" y="2640" width="480" height="960" rx="72" ry="72" fill="#eeeeee" stroke="#36393d" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 780px; margin-left: 1018px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Everything in <b>image</b> folder that is present in <b>SYSROOT_DIRS</b> will be copied here.</div></div></div></foreignObject><text x="1077" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">Everything in image...</text></switch></g><path d="M 3678 3600 Q 3678.29 3760.57 3993.14 3760.57 Q 4308 3760.57 4308 3640.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 4308 3613.42 L 4326 3649.42 L 4308 3640.42 L 4290 3649.42 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><path d="M 2428 3600 Q 2428 3760.57 2941.14 3760.57 Q 3454.29 3760.57 3454.4 3639.46" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 3454.43 3612.46 L 3472.39 3648.47 L 3454.4 3639.46 L 3436.39 3648.44 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="2748" y="3680" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 732px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_install</font></div></div></div></foreignObject><text x="732" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_install</text></switch></g><rect x="2220" y="3350" width="456" height="110" rx="16.5" ry="16.5" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 851px; margin-left: 556px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">libhello.so.1.0</div></div></div></foreignObject><text x="612" y="855" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g><rect x="1668" y="3180" width="440" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 810px; margin-left: 472px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_configure<br /></font></div></div></div></foreignObject><text x="472" y="814" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_configure&#xa;</text></switch></g><rect x="2212" y="3200" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 810px; margin-left: 554px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">hellolib.h</div></div></div></foreignObject><text x="610" y="814" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g><rect x="1788" y="3000" width="320" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 765px; margin-left: 487px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_patch<br /></font></div></div></div></foreignObject><text x="487" y="769" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_patch&#xa;</text></switch></g><rect x="2494" y="1620" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 420px; margin-left: 669px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_unpack<br /></font></div></div></div></foreignObject><text x="669" y="424" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_unpack&#xa;</text></switch></g><ellipse cx="2434" cy="1680" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 420px; margin-left: 595px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">6</b></font></div></div></div></foreignObject><text x="609" y="424" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">6</text></switch></g><ellipse cx="1728" cy="3060" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 765px; margin-left: 418px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">7</b></font></div></div></div></foreignObject><text x="432" y="769" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">7</text></switch></g><ellipse cx="1608" cy="3240" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 810px; margin-left: 388px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">8</b></font></div></div></div></foreignObject><text x="402" y="814" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">8</text></switch></g><rect x="1748" y="3310" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 843px; margin-left: 482px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_compile<br /></font></div></div></div></foreignObject><text x="482" y="846" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_compile&#xa;</text></switch></g><ellipse cx="1688" cy="3370" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 843px; margin-left: 408px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">9</b></font></div></div></div></foreignObject><text x="422" y="846" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">9</text></switch></g><ellipse cx="2688" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 658px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">10</b></font></div></div></div></foreignObject><text x="672" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">10</text></switch></g><rect x="3728" y="3680" width="640" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 1012px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_populate_sysroot</font></div></div></div></foreignObject><text x="1012" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_populate_sysroot</text></switch></g><ellipse cx="3668" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 903px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">11</b></font></div></div></div></foreignObject><text x="917" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">11</text></switch></g><path d="M 7028 3280 Q 7028 3760.57 7372 3760.57 Q 7716 3760.57 7715.97 3640.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7715.96 3613.42 L 7733.97 3649.41 L 7715.97 3640.42 L 7697.97 3649.42 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="6748" y="2640" width="560" height="640" rx="84" ry="84" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 7028 2320 Q 7028 2320 7028 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7028 2635.53 L 7014 2607.53 L 7028 2614.53 L 7042 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="6928" y="2160" width="200" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 560px; margin-left: 1733px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">git</font></div></div></div></foreignObject><text x="1757" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">git</text></switch></g><rect x="6800" y="2720" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 690px; margin-left: 1701px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Makefile</div></div></div></foreignObject><text x="1757" y="694" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">Makefile</text></switch></g><rect x="6800" y="2840" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 720px; margin-left: 1701px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">LICENSE</div></div></div></foreignObject><text x="1757" y="724" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">LICENSE</text></switch></g><path d="M 6800 3000 Q 6588 3000.57 6588 3088 Q 6588 3175.43 6759.58 3175.08" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 6786.58 3175.03 L 6750.62 3193.1 L 6759.58 3175.08 L 6750.55 3157.1 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="6800" y="2960" width="456" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 750px; margin-left: 1701px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">sayhello.c</div></div></div></foreignObject><text x="1757" y="754" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello.c</text></switch></g><rect x="6800" y="3120" width="456" height="110" rx="16.5" ry="16.5" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 794px; margin-left: 1701px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">sayhello</div></div></div></foreignObject><text x="1757" y="797" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello</text></switch></g><path d="M 7835.96 3600 Q 7828 3760.57 8090.86 3760.57 Q 8353.71 3760.57 8353.94 3640.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 8353.99 3613.42 L 8371.93 3649.45 L 8353.94 3640.42 L 8335.93 3649.38 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="7475.96" y="2640" width="480" height="960" rx="72" ry="72" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 7715.96 2320 L 7715.96 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7715.96 2635.53 L 7706.63 2607.53 L 7715.96 2614.53 L 7725.29 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7589.96" y="2160" width="252" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 1898px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">image</font></div></div></div></foreignObject><text x="1929" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">image</text></switch></g><path d="M 7716 2880 L 7716 2940 Q 7716 2980 7716.01 3017.26 L 7716.01 3054.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7716.02 3075.53 L 7706.68 3047.53 L 7716.01 3054.53 L 7725.35 3047.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7629" y="2720" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 1908px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="1929" y="704" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">usr</text></switch></g><path d="M 7716.02 3240 L 7716 3394.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7716 3415.53 L 7706.67 3387.53 L 7716 3394.53 L 7725.34 3387.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7608.52" y="3080" width="215" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 790px; margin-left: 1903px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">bin</font></div></div></div></foreignObject><text x="1929" y="794" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">bin</text></switch></g><rect x="1268" y="2160" width="400" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 560px; margin-left: 318px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">libhello-0.1</font></div></div></div></foreignObject><text x="367" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello-0.1</text></switch></g><path d="M 1241 2160 Q 1241.71 2220 1245.14 2050.29 Q 1248.57 1880.57 1785.14 1880.57 Q 2321.71 1880.57 2321.08 2127.06" fill="none" stroke="#000000" stroke-width="8" stroke-miterlimit="10" stroke-dasharray="8 16" pointer-events="stroke"/><path d="M 2321.02 2151.06 L 2310.44 2119.03 L 2321.08 2127.06 L 2331.77 2119.08 Z" fill="#000000" stroke="#000000" stroke-width="8" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 472px; margin-left: 435px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); border-color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); border: 1px solid rgb(0, 0, 0); white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" style="font-size: 14px;">S = "${WORKDIR}/git"</font></div></div></div></foreignObject><text x="435" y="475" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="11px" text-anchor="middle">S = "${WORKDIR}/git"</text></switch></g><rect x="3203" y="1620" width="252" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 418px; margin-left: 802px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">WORKDIR</font></div></div></div></foreignObject><text x="832" y="421" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">WORKDIR</text></switch></g><rect x="2923" y="2160" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 553px; margin-left: 732px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">D</font></div></div></div></foreignObject><text x="744" y="556" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">D</text></switch></g><rect x="2268" y="2160" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 553px; margin-left: 568px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">S</font></div></div></div></foreignObject><text x="580" y="556" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">S</text></switch></g><rect x="2162" y="2160" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 553px; margin-left: 542px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">B</font></div></div></div></foreignObject><text x="554" y="556" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">B</text></switch></g><rect x="1188" y="2160" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 553px; margin-left: 298px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">S</font></div></div></div></foreignObject><text x="310" y="556" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">S</text></switch></g><rect x="1835" y="2160" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 553px; margin-left: 460px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">T</font></div></div></div></foreignObject><text x="472" y="556" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">T</text></switch></g><rect x="3628" y="3160" width="200" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 803px; margin-left: 908px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">libdir</font></div></div></div></foreignObject><text x="932" y="806" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">libdir</text></switch></g><rect x="3135" y="3160" width="320" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 803px; margin-left: 785px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">includedir</font></div></div></div></foreignObject><text x="824" y="806" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">includedir</text></switch></g><rect x="5603.48" y="2280" width="464.52" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 114px; height: 1px; padding-top: 583px; margin-left: 1402px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">RECIPE_SYSROOT</font></div></div></div></foreignObject><text x="1459" y="586" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">RECIPE_SYSROOT</text></switch></g><path d="M 7226.86 2260 Q 7226.86 2110.29 7197.14 2110.29 Q 7167.43 2110.29 7167.49 1985.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 7167.5 1964.47 L 7176.82 1992.48 L 7167.49 1985.47 L 7158.15 1992.47 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7174" y="2260" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 578px; margin-left: 1795px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">S</font></div></div></div></foreignObject><text x="1807" y="581" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">S</text></switch></g><rect x="7068" y="2260" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 578px; margin-left: 1768px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">B</font></div></div></div></foreignObject><text x="1780" y="581" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">B</text></switch></g><rect x="7803" y="2260" width="106" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 24px; height: 1px; padding-top: 578px; margin-left: 1952px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">D</font></div></div></div></foreignObject><text x="1964" y="581" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">D</text></switch></g><rect x="5788" y="1580" width="252" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 408px; margin-left: 1448px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">WORKDIR</font></div></div></div></foreignObject><text x="1479" y="411" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">WORKDIR</text></switch></g><rect x="4640" y="3680" width="800" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 1260px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_prepare_recipe_sysroot</font></div></div></div></foreignObject><text x="1260" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_prepare_recipe_sysroot</text></switch></g><rect x="7536" y="3420" width="360" height="110" rx="16.5" ry="16.5" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 869px; margin-left: 1885px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">sayhello</div></div></div></foreignObject><text x="1929" y="872" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello</text></switch></g><rect x="4988" y="2640" width="1080" height="960" rx="144" ry="144" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><path d="M 5236 2880 Q 5236 2960.57 5235.99 3014.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5235.98 3035.53 L 5226.65 3007.53 L 5235.99 3014.53 L 5245.32 3007.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5236 2880 Q 5236 2960.57 5474.86 2960.57 Q 5713.71 2960.57 5713.91 3014.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5713.98 3035.53 L 5704.55 3007.56 L 5713.91 3014.53 L 5723.22 3007.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5149" y="2720" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 1288px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="1309" y="704" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">usr</text></switch></g><path d="M 5235.98 3200 L 5236 3294.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5236 3315.53 L 5226.66 3287.53 L 5236 3294.53 L 5245.33 3287.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5128.48" y="3040" width="215" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 780px; margin-left: 1283px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">include</font></div></div></div></foreignObject><text x="1309" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">include</text></switch></g><path d="M 5713.71 3200 L 5713.71 3240.57 Q 5713.71 3280.57 5713.76 3287.55 L 5713.82 3294.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5713.97 3315.53 L 5704.43 3287.6 L 5713.82 3294.53 L 5723.1 3287.46 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5627" y="3040" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 780px; margin-left: 1408px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">lib</font></div></div></div></foreignObject><text x="1429" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">lib</text></switch></g><rect x="5076" y="3320" width="320" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 843px; margin-left: 1270px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">hellolib.h</div></div></div></foreignObject><text x="1309" y="846" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g><rect x="5468" y="3350" width="480" height="80" rx="12" ry="12" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 1368px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">libhello.so.1</div></div></div></foreignObject><text x="1427" y="851" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello.so.1</text></switch></g><rect x="5468" y="3450" width="480" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 875px; margin-left: 1368px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">libhello.so.1.0</div></div></div></foreignObject><text x="1427" y="879" fill="#333333" font-family="Liberation Sans" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g><rect x="5440" y="3320" width="548" height="250" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><rect x="3880" y="1680" width="1560" height="280" fill="none" stroke="#36393d" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 1165px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" style="font-size: 15px;">This also contains other files from other <br />dependencies. Default dependencies are:<br />basically <b style=""><u>gcc</u></b>, <b style=""><u>compilerlibs</u></b> and <b style=""><u style="">libc</u></b></font></div></div></div></foreignObject><text x="1165" y="459" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This also contains other files from other...</text></switch></g><rect x="4368" y="2280" width="510" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 583px; margin-left: 1093px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">SYSROOT_DESTDIR</font></div></div></div></foreignObject><text x="1156" y="586" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">SYSROOT_DESTDIR</text></switch></g><path d="M 330 960 L 1121.58 960" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1148.58 960 L 1112.58 978 L 1121.58 960 L 1112.58 942 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><path d="M 330 1160 L 1121.58 1160" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1148.58 1160 L 1112.58 1178 L 1121.58 1160 L 1112.58 1142 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="2" y="860" width="328" height="400" rx="49.2" ry="49.2" fill="#000000" stroke="#23445d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 80px; height: 1px; padding-top: 265px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#fcfcfc">Github</font></div></div></div></foreignObject><text x="41" y="269" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">Github</text></switch></g><rect x="535" y="900" width="320" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 174px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_fetch<br /></font></div></div></div></foreignObject><text x="174" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_fetch&#xa;</text></switch></g><ellipse cx="475" cy="960" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 240px; margin-left: 105px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">1</b></font></div></div></div></foreignObject><text x="119" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="535" y="1100" width="320" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 174px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_fetch<br /></font></div></div></div></foreignObject><text x="174" y="294" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_fetch&#xa;</text></switch></g><ellipse cx="475" cy="1160" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 290px; margin-left: 105px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">5</b></font></div></div></div></foreignObject><text x="119" y="294" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">5</text></switch></g><rect x="6228" y="2980" width="440" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 760px; margin-left: 1612px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_configure<br /></font></div></div></div></foreignObject><text x="1612" y="764" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_configure&#xa;</text></switch></g><ellipse cx="6168" cy="3040" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 760px; margin-left: 1528px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">12</b></font></div></div></div></foreignObject><text x="1542" y="764" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">12</text></switch></g><rect x="6308" y="3110" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 793px; margin-left: 1622px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_compile<br /></font></div></div></div></foreignObject><text x="1622" y="796" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_compile&#xa;</text></switch></g><ellipse cx="6248" cy="3170" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 793px; margin-left: 1548px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">13</b></font></div></div></div></foreignObject><text x="1562" y="796" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">13</text></switch></g><rect x="2508" y="900" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 672px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_unpack<br /></font></div></div></div></foreignObject><text x="672" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_unpack&#xa;</text></switch></g><ellipse cx="2448" cy="960" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 240px; margin-left: 598px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">2</b></font></div></div></div></foreignObject><text x="612" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">2</text></switch></g><path d="M 5848.57 520 Q 5848.57 600.57 5849.05 594.61" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5847.36 615.54 L 5835.66 586.51 L 5849.05 594.61 L 5863.57 588.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5848.57 520 Q 5848.57 560.57 5593.14 560.57 Q 5337.71 560.57 5337.31 594.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 5337.05 615.53 L 5323.39 587.36 L 5337.31 594.53 L 5351.39 587.7 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 5848.57 520 Q 5848.57 560.57 6108.57 560.57 Q 6368.57 560.57 6368.24 594.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 6368.04 615.53 L 6354.31 587.39 L 6368.24 594.53 L 6382.31 587.66 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5708" y="360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1428px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">conf</font></div></div></div></foreignObject><text x="1462" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">conf</text></switch></g><path d="M 5149 660 Q 5108 660 5108 510.29 Q 5108 360.57 5252 360.57 Q 5396 360.57 5396 205.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 5396 184.47 L 5405.33 212.47 L 5396 205.47 L 5386.67 212.47 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5149" y="620" width="376" height="80" rx="12" ry="12" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 92px; height: 1px; padding-top: 165px; margin-left: 1288px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">local.conf</div></div></div></foreignObject><text x="1334" y="169" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">local.conf</text></switch></g><path d="M 5847.43 700 Q 5847.43 860 6048 860 Q 6248.57 860 6248.09 994.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 6248.02 1015.53 L 6238.78 987.49 L 6248.09 994.53 L 6257.45 987.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="5627" y="620" width="440" height="80" rx="12" ry="12" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 165px; margin-left: 1408px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">bblayers.conf</div></div></div></foreignObject><text x="1462" y="169" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">bblayers.conf</text></switch></g><rect x="6707" y="1360" width="921" height="600" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 415px; margin-left: 1678px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;"><b><u>S</u></b> defaults generally to <b><u>${WORKDIR}/${BPN}-${PV}</u></b><br />In <b>git</b> recipes change it to <b><u>${WORKDIR}/git</u></b></font></div></div></div></foreignObject><text x="1792" y="419" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">S defaults generally to ${WORKDIR}/${B...</text></switch></g><rect x="6228" y="2700" width="440" height="160" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 695px; margin-left: 1612px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_patch<br /><i>(No patches)</i><br /></font></div></div></div></foreignObject><text x="1612" y="699" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_patch...</text></switch></g><ellipse cx="6168" cy="2780" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 695px; margin-left: 1528px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">3</b></font></div></div></div></foreignObject><text x="1542" y="699" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">3</text></switch></g><ellipse cx="4580" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 1131px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">4</b></font></div></div></div></foreignObject><text x="1145" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">4</text></switch></g><rect x="6927" y="3560" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 905px; margin-left: 1777px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_install<br /></font></div></div></div></foreignObject><text x="1777" y="909" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_install&#xa;</text></switch></g><ellipse cx="6868" cy="3620" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 905px; margin-left: 1703px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">14</b></font></div></div></div></foreignObject><text x="1717" y="909" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">14</text></switch></g><path d="M 8354.02 2320 L 8354.02 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 8354.02 2635.53 L 8344.69 2607.53 L 8354.02 2614.53 L 8363.35 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="8228" y="2160" width="252" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 2058px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">package</font></div></div></div></foreignObject><text x="2089" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">package</text></switch></g><rect x="8441.04" y="2260" width="146.96" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 35px; height: 1px; padding-top: 578px; margin-left: 2111px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">PKGD</font></div></div></div></foreignObject><text x="2129" y="581" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">PKGD</text></switch></g><path d="M 8461.77 3600 Q 8461.14 3760.57 8784.57 3760.57 Q 9108 3760.57 9108 3640.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9108 3613.42 L 9126 3649.42 L 9108 3640.42 L 9090 3649.42 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="8138.52" y="2640" width="431" height="960" rx="64.65" ry="64.65" fill="#eeeeee" stroke="#36393d" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 106px; height: 1px; padding-top: 780px; margin-left: 2036px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">A copy of <b>${D}<br /></b>excluding<br /><b>/sysroot-only</b></div></div></div></foreignObject><text x="2089" y="784" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">A copy of ${D}...</text></switch></g><rect x="7960.96" y="3680" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2035px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package<br /></font></div></div></div></foreignObject><text x="2035" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_package&#xa;</text></switch></g><ellipse cx="7901.96" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 1961px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">15</b></font></div></div></div></foreignObject><text x="1975" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">15</text></switch></g><path d="M 9108 2320 L 9108 2614.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9108 2635.53 L 9098.67 2607.53 L 9108 2614.53 L 9117.33 2607.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="8868" y="2160" width="480" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 2218px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">packages-split</font></div></div></div></foreignObject><text x="2277" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">packages-split</text></switch></g><rect x="9308" y="2260" width="240" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 578px; margin-left: 2328px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">PKGDEST</font></div></div></div></foreignObject><text x="2357" y="581" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">PKGDEST</text></switch></g><path d="M 9108 2840 L 9108 2895.1" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9108 2916.1 L 9098.67 2888.1 L 9108 2895.1 L 9117.33 2888.1 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="8982" y="2680" width="252" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 690px; margin-left: 2247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sayhello</font></div></div></div></foreignObject><text x="2277" y="694" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello</text></switch></g><path d="M 9108 3080 L 9108 3120.57 Q 9108 3160.57 9108 3162.55 L 9108 3164.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9107.98 3185.53 L 9098.67 3157.52 L 9108 3164.53 L 9117.34 3157.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="9021" y="2920" width="174" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 750px; margin-left: 2256px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="2277" y="754" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">usr</text></switch></g><path d="M 9107.98 3350 L 9107.97 3414.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9107.96 3435.53 L 9098.63 3407.53 L 9107.97 3414.53 L 9117.3 3407.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="9000.48" y="3190" width="215" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 818px; margin-left: 2251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">bin</font></div></div></div></foreignObject><text x="2277" y="821" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">bin</text></switch></g><rect x="7689.48" y="1360" width="1287" height="595" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 320px; height: 1px; padding-top: 414px; margin-left: 1923px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 15px;">Folders created here are present in <b><u>PACKAGES</u></b> variable, BitBake knows what and where to put things using the <b><u>FILES</u></b> variable, example: <b><u>FILES:${PN}</u></b> files will go to <b><u>${PN}</u></b> folder which is in <b><u>PACKAGES</u></b></span></div></div></div></foreignObject><text x="2083" y="418" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">Folders created here are present in PACKAGES variable...</text></switch></g><rect x="8640.48" y="3680" width="360" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2205px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package<br /></font></div></div></div></foreignObject><text x="2205" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_package&#xa;</text></switch></g><ellipse cx="8581.48" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 2131px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">16</b></font></div></div></div></foreignObject><text x="2145" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">16</text></switch></g><path d="M 9988 2320 L 9988 2674.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9988 2695.53 L 9978.67 2667.53 L 9988 2674.53 L 9997.33 2667.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="9748" y="2160" width="480" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 2438px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">deploy-<b><i>pkg</i></b></font></div></div></div></foreignObject><text x="2497" y="564" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">deploy-pkg</text></switch></g><path d="M 9988 2860 L 9988 3014.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 9988 3035.53 L 9978.67 3007.53 L 9988 3014.53 L 9997.33 3007.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="9748" y="2700" width="480" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 695px; margin-left: 2438px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter"><b>${PACKAGE_ARCH}</b></font></div></div></div></foreignObject><text x="2497" y="699" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">${PACKAGE_ARCH}</text></switch></g><rect x="9028" y="1360" width="1640" height="595" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 414px; margin-left: 2258px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This can be <b><u>rpms</u></b>, <b><u>debs</u></b> or <b><u>ipks</u></b>.<br />These are provided by<br /><b><u>package_rpm</u></b>, <b><u>package_deb</u></b> and <b><u>package_ipk</u></b> classes respectively, use <b><u>PACKAGE_CLASSES</u></b> for that as<br />content of <b><u>PACKAGE_CLASSES</u></b> will be appended<br />to <b><u>INHERIT</u></b><br /></font></div></div></div></foreignObject><text x="2462" y="418" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This can be rpms, debs or ipks....</text></switch></g><path d="M 10522 3105 L 10708 3105.59 Q 10748 3105.71 10748 3065.71 L 10748 1320.57 Q 10748 1280.57 10708 1280.57 L 7353.71 1280.57 Q 7313.71 1280.57 7313.8 1240.57 L 7313.92 1180.42" fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7313.97 1153.42 L 7331.9 1189.45 L 7313.92 1180.42 L 7295.9 1189.38 Z" fill="#000000" stroke="#000000" stroke-width="12" stroke-miterlimit="10" pointer-events="all"/><rect x="9454" y="3040" width="1068" height="130" rx="19.5" ry="19.5" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 265px; height: 1px; padding-top: 776px; margin-left: 2365px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">sayhello-0.1-r0.${PACKAGE_ARCH}.<i>pkg</i></div></div></div></foreignObject><text x="2497" y="780" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello-0.1-r0.${PACKAGE_ARCH}.pkg</text></switch></g><rect x="10788" y="2640" width="1480" height="680" fill="none" stroke="#36393d" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 368px; height: 1px; padding-top: 745px; margin-left: 2698px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This task also depends on <b><u>PACKAGE_CLASSES</u></b>,<br /><b><u><i>pkg</i></u></b> can be <b><u>rpm</u></b>, <b><u>deb</u></b> or <b><u>ipk</u></b> for <b><u>package_rpm</u></b>,<br /><b><u>package_deb</u></b> or <u style="font-weight: bold;">package_ipk</u> respectively.<br />The generated package generally named using:<br /><b><u>${PN}</u></b>, <b><u>${PR}</u></b>, <b><u>${PACKAGE_ARCH}</u></b> and <b><u><i>pkg</i></u></b><br /></font></div></div></div></foreignObject><text x="2882" y="749" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This task also depends on PACKAGE_CLASSES,...</text></switch></g><path d="M 7314 520 L 7314 654.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7314 675.53 L 7300 647.53 L 7314 654.53 L 7328 647.53 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 7454 440 Q 7454 440 7742.53 440" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 7763.53 440 L 7735.53 449.33 L 7742.53 440 L 7735.53 430.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7174" y="360" width="280" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1795px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">deploy</font></div></div></div></foreignObject><text x="1829" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">deploy</text></switch></g><path d="M 7313.71 840 L 7313.71 880.57 Q 7313.71 920.57 7313.71 910.29 L 7313.71 905.14 Q 7313.71 900 7313.81 927.26 L 7313.91 954.53" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 7313.98 975.53 L 7299.88 947.58 L 7313.91 954.53 L 7327.88 947.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7054.48" y="680" width="519" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 190px; margin-left: 1765px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>${DEPLOY_DIR_<i>pkg</i>}</b></div></div></div></foreignObject><text x="1828" y="194" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">${DEPLOY_DIR_pkg}</text></switch></g><rect x="9488" y="3680" width="600" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2447px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package_write_<i>pkg</i><br /></font></div></div></div></foreignObject><text x="2447" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_package_write_pkg&#xa;</text></switch></g><ellipse cx="9408" cy="3740" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 2338px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">17</b></font></div></div></div></foreignObject><text x="2352" y="939" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">17</text></switch></g><path d="M 10048 3740 Q 11528.57 3740 11528.03 3345.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 11528.01 3324.47 L 11537.38 3352.46 L 11528.03 3345.47 L 11518.71 3352.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="7074" y="980" width="480" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 265px; margin-left: 1770px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">${PACKAGE_ARCH}</div></div></div></foreignObject><text x="1829" y="269" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">${PACKAGE_ARCH}</text></switch></g><rect x="7768" y="672.52" width="1660" height="167.48" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 413px; height: 1px; padding-top: 189px; margin-left: 1943px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">For packages, this can be <b><u>IPK</u></b>, <b><u>RPM</u></b> or <b><u>DEB</u></b> (<i>check step 17</i>)</font></div></div></div></foreignObject><text x="2150" y="193" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">For packages, this can be IPK, RPM or DEB (check step 17)</text></switch></g><rect x="7369.48" y="480" width="320" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 133px; margin-left: 1843px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">DEPLOY_DIR</font></div></div></div></foreignObject><text x="1882" y="136" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">DEPLOY_DIR</text></switch></g><rect x="4988" y="80" width="240" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 33px; margin-left: 1248px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">TMPDIR</font></div></div></div></foreignObject><text x="1277" y="36" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">TMPDIR</text></switch></g><rect x="1668" y="480" width="250.72" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 133px; margin-left: 418px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">DL_DIR</font></div></div></div></foreignObject><text x="448" y="136" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">DL_DIR</text></switch></g><path d="M 7573.48 760 L 7630.29 760.34 Q 7670.29 760.57 7706.42 758.98 L 7742.55 757.38" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 7763.53 756.46 L 7735.97 767.02 L 7742.55 757.38 L 7735.15 748.37 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="10488" y="2380" width="600" height="120" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 610px; margin-left: 2697px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package_write_<i>pkg</i><br /></font></div></div></div></foreignObject><text x="2697" y="614" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">do_package_write_pkg&#xa;</text></switch></g><ellipse cx="10408" cy="2440" rx="60.00000000000001" ry="60.00000000000001" fill="#000000" stroke="#56517e" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 610px; margin-left: 2588px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1"><b style="font-size: 15px;">18</b></font></div></div></div></foreignObject><text x="2602" y="614" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">18</text></switch></g><path d="M 10268 2310.29 Q 10879.43 2310.29 10879.43 1999.43 Q 10879.43 1688.57 10878.68 1140.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 10878.65 1119.47 L 10888.02 1147.46 L 10878.68 1140.47 L 10869.35 1147.48 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="10148" y="2260" width="120" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><path d="M 10088 2200 Q 10088.57 2077.14 10173.14 2077.14 Q 10257.71 2077.14 10257.94 1980.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 10257.99 1959.47 L 10267.26 1987.49 L 10257.94 1980.47 L 10248.59 1987.45 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="9628" y="805" width="1667.52" height="310" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 415px; height: 1px; padding-top: 240px; margin-left: 2408px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This can be <b><u>PKGWRITEDIRRPM</u></b>, <b><u>PKGWRITEDIRDEB</u></b> or <b><u>PKGWRITEDIRIPK</u></b> for <b><u>package_rpm</u></b>, <b><u>package_deb</u></b><br />or <b><u>package_ipk</u></b> respectively<br /></font></div></div></div></foreignObject><text x="2615" y="244" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This can be PKGWRITEDIRRPM, PKGWRITEDIRDEB or PKGWRITEDIRIPK for pack...</text></switch></g><rect x="628" y="2470" width="1313" height="410" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 326px; height: 1px; padding-top: 669px; margin-left: 158px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 15px;">License checking happens in <b><u>do_populate_lic</u></b> after <b><u>do_patch<br /></u></b>and before that a checksum check<br />happends on <b><u>LIC_FILES_CHKSUM</u></b> if the<br />license is not <b><u>CLOSED</u></b><br /></span></div></div></div></foreignObject><text x="321" y="672" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">License checking happens in do_populate_lic after do_pa...</text></switch></g><rect x="3528.48" y="1360" width="1739.52" height="280" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 433px; height: 1px; padding-top: 375px; margin-left: 883px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 15px;">This variable is used to separate recipes<br />based on their target. This has value of<br /><b><u>${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}</u></b><br /></span></div></div></div></foreignObject><text x="1100" y="379" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This variable is used to separate recipes...</text></switch></g><path d="M 6588 660 Q 6863.43 660 6863.4 505.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 6863.39 484.47 L 6872.73 512.47 L 6863.4 505.47 L 6854.06 512.47 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="6148" y="620" width="440" height="80" rx="12" ry="12" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 165px; margin-left: 1538px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">conf-notes.txt</div></div></div></foreignObject><text x="1592" y="169" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">conf-notes.txt</text></switch></g><path d="M 2580.02 520 Q 2580 660 3042.53 660" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 3063.53 660 L 3035.53 669.33 L 3042.53 660 L 3035.53 650.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 2374 440 Q 2215.43 440.57 2215.04 205.47" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 2215.01 184.47 L 2224.39 212.46 L 2215.04 205.47 L 2205.72 212.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="2374" y="360" width="412.04" height="160" rx="24" ry="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 101px; height: 1px; padding-top: 110px; margin-left: 595px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sstate-cache</font></div></div></div></foreignObject><text x="645" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sstate-cache</text></switch></g><rect x="2643.92" y="480" width="332.04" height="100" rx="15" ry="15" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 81px; height: 1px; padding-top: 133px; margin-left: 662px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">SSTATE_DIR</font></div></div></div></foreignObject><text x="702" y="136" fill="#ffffff" font-family="Liberation Sans" font-size="12px" text-anchor="middle" font-weight="bold">SSTATE_DIR</text></switch></g><rect x="8927.96" y="3440" width="360" height="110" rx="16.5" ry="16.5" fill="#eeeeee" stroke="#36393d" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 874px; margin-left: 2233px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">sayhello</div></div></div></foreignObject><text x="2277" y="877" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">sayhello</text></switch></g><path d="M 4660 1960 Q 4660 2300 4904.57 2300 Q 5149.14 2300 5148.94 2611.65" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 5148.92 2632.65 L 5139.61 2604.64 L 5148.94 2611.65 L 5158.27 2604.65 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="3068" y="480" width="1640" height="360" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 165px; margin-left: 768px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 15px;">This folder contains cache for recipes build output, this is used by BitBake, if the recipe checksum did not change it knows that the output to use is the same.<br /></span></div></div></div></foreignObject><text x="972" y="169" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This folder contains cache for recipes build output, this is used by...</text></switch></g><rect x="1395" y="0" width="1640" height="180" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 23px; margin-left: 350px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 15px;"><font data-font-src="https://fonts.googleapis.com/css?family=Liberation+Sans">These directories can be shared accross builds to save disk space and build time</font><br /></span></div></div></div></foreignObject><text x="554" y="26" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">These directories can be shared accross builds to save disk space an...</text></switch></g><rect x="7768" y="350" width="1667.52" height="180" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 415px; height: 1px; padding-top: 110px; margin-left: 1943px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This directory contains other output directories such as <b><u>images</u></b>, <b><u>sdk</u></b> and <b><u>licenses</u></b><br /></font></div></div></div></foreignObject><text x="2150" y="114" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This directory contains other output directories such as images, sdk...</text></switch></g><rect x="5908" y="1020" width="680" height="520" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 320px; margin-left: 1478px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This file contains all <b>layers</b> that BitBake should consider when looking for metadata.<br /></font></div></div></div></foreignObject><text x="1562" y="324" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This file contains all layer...</text></switch></g><rect x="5396" y="20" width="1760" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 438px; height: 1px; padding-top: 25px; margin-left: 1350px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">This is base configuration file containing essential user config such as <b><u>MACHINE</u></b> and <b><u>DISTRO</u></b><br /></font></div></div></div></foreignObject><text x="1569" y="29" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">This is base configuration file containing essential user config such as...</text></switch></g><rect x="6140" y="320" width="964.52" height="160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" stroke-dasharray="12 12" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(4)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 100px; margin-left: 1536px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 15px;">The message to show after <b>source oe-init-build-env</b><br /></font></div></div></div></foreignObject><text x="1656" y="104" fill="rgb(0, 0, 0)" font-family="Liberation Sans" font-size="12px" text-anchor="middle">The message to show after source oe-init...</text></switch></g><rect x="10948" y="2400" width="120" height="80" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><rect x="10348" y="3065" width="80" height="80" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><rect x="9948" y="3700" width="100" height="80" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><rect x="10028" y="2200" width="80" height="80" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/><rect x="7454" y="725" width="80" height="80" fill="none" stroke="rgb(0, 0, 0)" stroke-width="4" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file 4<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3068px" height="951px" viewBox="-0.5 -0.5 3068 951" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0&quot; version=&quot;27.1.6&quot;&gt;&#xA; &lt;diagram name=&quot;Page-1&quot; id=&quot;c7558073-3199-34d8-9f00-42111426c3f3&quot;&gt;&#xA; &lt;mxGraphModel dx=&quot;2252&quot; dy=&quot;796&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;826&quot; pageHeight=&quot;1169&quot; background=&quot;none&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#xA; &lt;root&gt;&#xA; &lt;mxCell id=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-398&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1940&quot; y=&quot;840&quot; width=&quot;280&quot; height=&quot;150&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-383&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;dashed=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-380&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-382&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1747&quot; y=&quot;960&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1747&quot; y=&quot;669&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-407&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-380&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-398&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1890&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;2080&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-380&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1800&quot; y=&quot;840&quot; width=&quot;120&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-211&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;300&quot; y=&quot;840&quot; width=&quot;270&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-142&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;glass=0;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-146.5&quot; y=&quot;390&quot; width=&quot;270&quot; height=&quot;110&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-162&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;120&quot; y=&quot;840&quot; width=&quot;140&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-101&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-99&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-338&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-130&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;815&quot; y=&quot;240&quot; /&gt;&#xA; &lt;mxPoint x=&quot;-11&quot; y=&quot;240&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-344&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-343&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;815&quot; y=&quot;240&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1045&quot; y=&quot;240&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-402&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-401&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;815&quot; y=&quot;240&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1411&quot; y=&quot;240&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--12&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-440&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;815&quot; y=&quot;240&quot; /&gt;&#xA; &lt;mxPoint x=&quot;228&quot; y=&quot;240&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-98&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;tmp&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillStyle=auto;glass=0;shadow=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;780&quot; y=&quot;180&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-102&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-99&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-100&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-99&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;work&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;780&quot; y=&quot;270&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-106&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;rounded=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-100&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-105&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-155&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-100&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-103&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--14&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-100&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-434&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-100&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b&amp;gt;${MULTIMACH_TARGET_OS}&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;730&quot; y=&quot;440&quot; width=&quot;170&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-110&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-103&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-103&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;libhello&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;326.99&quot; y=&quot;520&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-111&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-105&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-105&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;sayhello&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;970&quot; y=&quot;520&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-169&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-166&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;362&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;82&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-170&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-156&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;362&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;190&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-179&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-175&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-197&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-171&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;362&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;660&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-108&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;0.1-r0&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;327&quot; y=&quot;600&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-309&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-172&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;965&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-311&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-240&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1340&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-312&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-249&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1512&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-360&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-358&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1672&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-368&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-366&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1860&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-388&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-387&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1005&quot; y=&quot;680&quot; /&gt;&#xA; &lt;mxPoint x=&quot;2080&quot; y=&quot;680&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-109&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;0.1-r0&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;970&quot; y=&quot;585&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-134&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-130&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-133&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--19&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-130&quot; target=&quot;utO5BPZsFb6q0V3ioqD--17&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-130&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;downloads&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-46.5&quot; y=&quot;270&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-143&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-133&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-142&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-133&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;git2&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-46.5&quot; y=&quot;330&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-223&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-136&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-156&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;250&quot; y=&quot;470&quot; /&gt;&#xA; &lt;mxPoint x=&quot;250&quot; y=&quot;758&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-135&quot; value=&quot;github.com.&amp;amp;lt;username&amp;amp;gt;.sayhello&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-126.5&quot; y=&quot;400&quot; width=&quot;230&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-337&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-135&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-240&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;160&quot; y=&quot;500&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1250&quot; y=&quot;420&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1250&quot; y=&quot;740&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-136&quot; value=&quot;github.com.&amp;amp;lt;username&amp;amp;gt;.libhello&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-126.5&quot; y=&quot;450&quot; width=&quot;230&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-164&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;curved=1;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-156&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-162&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-156&quot; value=&quot;sources/libhello-0.1&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;150&quot; y=&quot;737.5&quot; width=&quot;65&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-159&quot; value=&quot;Makefile&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;136&quot; y=&quot;860&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-433&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-160&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-432&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-160&quot; value=&quot;LICENSE&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;136&quot; y=&quot;890&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-215&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;endArrow=classicThin;endFill=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-161&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-163&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;90&quot; y=&quot;930&quot; /&gt;&#xA; &lt;mxPoint x=&quot;90&quot; y=&quot;960&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-161&quot; value=&quot;fix.patch&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;136&quot; y=&quot;920&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-219&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.006;exitY=0.893;exitDx=0;exitDy=0;curved=1;exitPerimeter=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-163&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-214&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;80&quot; y=&quot;968&quot; /&gt;&#xA; &lt;mxPoint x=&quot;80&quot; y=&quot;1031&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-163&quot; value=&quot;hellolib.c&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;136&quot; y=&quot;950&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-166&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;temp&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;57&quot; y=&quot;720&quot; width=&quot;50&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-210&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-171&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-209&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-171&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;sysroot-destdir&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;600&quot; y=&quot;720&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-307&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-172&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-293&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-172&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;recipe-sysroot&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;910&quot; y=&quot;720&quot; width=&quot;110&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-182&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-175&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-177&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-175&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;image&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;330.49&quot; y=&quot;720&quot; width=&quot;63&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-183&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-177&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-180&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-184&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-177&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-181&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-177&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;usr&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;340.25&quot; y=&quot;860&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-188&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-180&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-187&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-180&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;include&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;335.12&quot; y=&quot;940&quot; width=&quot;53.75&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-192&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-181&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-191&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-181&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;lib&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;459.75&quot; y=&quot;940&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-187&quot; value=&quot;hellolib.h&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;322&quot; y=&quot;1010&quot; width=&quot;80&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-189&quot; value=&quot;libhello.so.1&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;420&quot; y=&quot;1017.5&quot; width=&quot;120&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-190&quot; value=&quot;libhello.so.1.0&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;420&quot; y=&quot;1042.5&quot; width=&quot;120&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-191&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;arcSize=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;413&quot; y=&quot;1010&quot; width=&quot;137&quot; height=&quot;62.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-286&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;curved=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-209&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-293&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;830&quot; y=&quot;1330&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;mxPoint x=&quot;925&quot; y=&quot;1130&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;690&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;965&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-209&quot; value=&quot;Everything in &amp;lt;b&amp;gt;image&amp;lt;/b&amp;gt; folder that is present in &amp;lt;b&amp;gt;SYSROOT_DIRS&amp;lt;/b&amp;gt; will be copied here.&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;600&quot; y=&quot;840&quot; width=&quot;120&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-233&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-211&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-209&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;503&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;660&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-212&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.543;entryY=0.999;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;fillColor=#d0cee2;strokeColor=#000000;strokeWidth=3;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-162&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-211&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;190&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;447&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-213&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_install&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;270&quot; y=&quot;1100&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-214&quot; value=&quot;libhello.so.1.0&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;138&quot; y=&quot;1017.5&quot; width=&quot;114&quot; height=&quot;27.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-217&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_configure&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry y=&quot;975&quot; width=&quot;110&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-218&quot; value=&quot;hellolib.h&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;136&quot; y=&quot;980&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-221&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_patch&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;30&quot; y=&quot;930&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-224&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_unpack&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;206.5&quot; y=&quot;585&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-225&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;6&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;176.5&quot; y=&quot;585&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-226&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;7&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry y=&quot;930&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-227&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;8&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-30&quot; y=&quot;975&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-229&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_compile&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;20&quot; y=&quot;1007.5&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-228&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;9&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-10&quot; y=&quot;1007.5&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-231&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;10&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;240&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-235&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_populate_sysroot&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;515&quot; y=&quot;1100&quot; width=&quot;160&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-236&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;11&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;485&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-355&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-238&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-247&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1340&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1512&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-238&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1270&quot; y=&quot;840&quot; width=&quot;140&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-239&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;curved=1;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-240&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-238&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;w4JjUiD6-ryT0rcgaIPJ-1&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-240&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;1300&quot; y=&quot;740&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-240&quot; value=&quot;&amp;lt;div&amp;gt;sources/sayhello-0.1&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1307&quot; y=&quot;720&quot; width=&quot;65&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-241&quot; value=&quot;Makefile&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1283&quot; y=&quot;860&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-242&quot; value=&quot;LICENSE&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1283&quot; y=&quot;890&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-330&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;fillColor=#d0cee2;strokeColor=#000000;strokeWidth=3;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-244&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-245&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1230&quot; y=&quot;930&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1230&quot; y=&quot;974&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-244&quot; value=&quot;sayhello.c&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1283&quot; y=&quot;920&quot; width=&quot;114&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-245&quot; value=&quot;sayhello&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1283&quot; y=&quot;960&quot; width=&quot;114&quot; height=&quot;27.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-363&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-247&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-361&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1540&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1671&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-247&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1451.99&quot; y=&quot;840&quot; width=&quot;120&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-248&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-249&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-247&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-249&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;image&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1480.49&quot; y=&quot;720&quot; width=&quot;63&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-250&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-252&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-254&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-252&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;usr&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1490.25&quot; y=&quot;860&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-253&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-254&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-292&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;1512&quot; y=&quot;1010&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-254&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;bin&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1485.1299999999999&quot; y=&quot;950&quot; width=&quot;53.75&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-266&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;fillColor=#bac8d3;strokeColor=#000000;strokeWidth=2;dashPattern=1 2;curved=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-0.5&quot; y=&quot;610&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;mxPoint x=&quot;150&quot; y=&quot;765&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;89.5&quot; y=&quot;610.5&quot; /&gt;&#xA; &lt;mxPoint x=&quot;89.5&quot; y=&quot;765.5&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-267&quot; value=&quot;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 14px;&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;S = &amp;quot;${UNPACKDIR}/${BP}&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBorderColor=default;spacingTop=2;spacingLeft=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;eV5wDCu3Df9HtTySJIbg-266&quot; vertex=&quot;1&quot; connectable=&quot;0&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.2703&quot; y=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-71&quot; y=&quot;-32&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-270&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;WORKDIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;383.75&quot; y=&quot;585&quot; width=&quot;63&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-271&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;D&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;313.75&quot; y=&quot;720&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-272&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;S&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;150&quot; y=&quot;720&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-273&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;B&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;123.5&quot; y=&quot;720&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-275&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;T&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;41.75&quot; y=&quot;720&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-276&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;libdir&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;490&quot; y=&quot;970&quot; width=&quot;50&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-277&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;includedir&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;366.75&quot; y=&quot;970&quot; width=&quot;80&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-279&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;RECIPE_SYSROOT&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;983.87&quot; y=&quot;750&quot; width=&quot;116.13&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-351&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-281&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-350&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-281&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;S&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1376.5&quot; y=&quot;745&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-282&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;B&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1350&quot; y=&quot;745&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-283&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;D&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1533.75&quot; y=&quot;745&quot; width=&quot;26.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-284&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;WORKDIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1030&quot; y=&quot;575&quot; width=&quot;63&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-287&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_prepare_recipe_sysroot&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;743&quot; y=&quot;1100&quot; width=&quot;200&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-292&quot; value=&quot;sayhello&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1467&quot; y=&quot;1035&quot; width=&quot;90&quot; height=&quot;27.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-293&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;830&quot; y=&quot;840&quot; width=&quot;270&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-294&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-296&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-298&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-295&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-296&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-300&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-296&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;usr&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;870.25&quot; y=&quot;860&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-297&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-298&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-301&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-298&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;include&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;865.12&quot; y=&quot;940&quot; width=&quot;53.75&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-299&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-300&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-304&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-300&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;lib&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;989.75&quot; y=&quot;940&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-301&quot; value=&quot;hellolib.h&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;852&quot; y=&quot;1010&quot; width=&quot;80&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-302&quot; value=&quot;libhello.so.1&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;950&quot; y=&quot;1017.5&quot; width=&quot;120&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-303&quot; value=&quot;libhello.so.1.0&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;950&quot; y=&quot;1042.5&quot; width=&quot;120&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-304&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;arcSize=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;943&quot; y=&quot;1010&quot; width=&quot;137&quot; height=&quot;62.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-308&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;This also contains other files from other&amp;amp;nbsp;&amp;lt;br&amp;gt;dependencies. Default dependencies are:&amp;lt;br&amp;gt;basically &amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;gcc&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;compilerlibs&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;&amp;quot;&amp;gt;libc&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=none;rounded=1;arcSize=0;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;553&quot; y=&quot;600&quot; width=&quot;390&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-310&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;SYSROOT_DESTDIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;675&quot; y=&quot;750&quot; width=&quot;127.5&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-322&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-314&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-135&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-323&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-314&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-136&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-314&quot; value=&quot;&amp;lt;font color=&amp;quot;#fcfcfc&amp;quot;&amp;gt;Github&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=#23445d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-416.5&quot; y=&quot;395&quot; width=&quot;82&quot; height=&quot;100&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-316&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_fetch&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-283.25&quot; y=&quot;405&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-317&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-313.25&quot; y=&quot;405&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-326&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_fetch&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-283.25&quot; y=&quot;455&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-327&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;5&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-313.25&quot; y=&quot;455&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-331&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_configure&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1140&quot; y=&quot;925&quot; width=&quot;110&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-332&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;12&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1110&quot; y=&quot;925&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-333&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_compile&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1160&quot; y=&quot;957.5&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-334&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;13&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1130&quot; y=&quot;957.5&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-340&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_unpack&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;210&quot; y=&quot;405&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-341&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;2&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;180&quot; y=&quot;405&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-349&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-343&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-346&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-438&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-343&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-345&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1045&quot; y=&quot;320&quot; /&gt;&#xA; &lt;mxPoint x=&quot;917&quot; y=&quot;320&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-439&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-343&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-436&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1045&quot; y=&quot;320&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1175&quot; y=&quot;320&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-343&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;conf&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1010&quot; y=&quot;270&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--26&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-345&quot; target=&quot;utO5BPZsFb6q0V3ioqD--25&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;860&quot; y=&quot;345&quot; /&gt;&#xA; &lt;mxPoint x=&quot;860&quot; y=&quot;270&quot; /&gt;&#xA; &lt;mxPoint x=&quot;932&quot; y=&quot;270&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-345&quot; value=&quot;local.conf&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;870.25&quot; y=&quot;335&quot; width=&quot;94&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--24&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;endArrow=classicThin;endFill=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-346&quot; target=&quot;utO5BPZsFb6q0V3ioqD--22&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-346&quot; value=&quot;bblayers.conf&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;989.75&quot; y=&quot;335&quot; width=&quot;110&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-350&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;S&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; defaults generally to &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${UNPACKDIR}/${BP}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1259.75&quot; y=&quot;520&quot; width=&quot;230.25&quot; height=&quot;150&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-352&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_patch&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;(No patches)&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1140&quot; y=&quot;855&quot; width=&quot;110&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-353&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;3&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1110&quot; y=&quot;860&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-354&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;4&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;713&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-356&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_install&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1314.75&quot; y=&quot;1070&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-357&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;14&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1285&quot; y=&quot;1070&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-362&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-358&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-361&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-358&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;package&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1640&quot; y=&quot;720&quot; width=&quot;63&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-359&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;PKGD&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1693.26&quot; y=&quot;745&quot; width=&quot;36.74&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-384&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;curved=1;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-361&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-380&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;1698&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1860&quot; y=&quot;1120&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-361&quot; value=&quot;A copy of&amp;amp;nbsp;&amp;lt;b&amp;gt;${D}&amp;lt;br&amp;gt;&amp;lt;/b&amp;gt;excluding&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;/sysroot-only&amp;lt;/b&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1617.63&quot; y=&quot;840&quot; width=&quot;107.75&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-364&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_package&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1573.24&quot; y=&quot;1100&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-365&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;15&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1543.49&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-381&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-366&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-380&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-366&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;packages-split&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1800&quot; y=&quot;720&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-367&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;PKGDEST&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1910&quot; y=&quot;745&quot; width=&quot;60&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-377&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-369&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-373&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-369&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;sayhello&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1828.5&quot; y=&quot;850&quot; width=&quot;63&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-372&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-373&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-375&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-373&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;usr&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1838.25&quot; y=&quot;910&quot; width=&quot;43.5&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-374&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-375&quot; target=&quot;utO5BPZsFb6q0V3ioqD--10&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;1860&quot; y=&quot;1037.5&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-375&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;bin&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1833.12&quot; y=&quot;977.5&quot; width=&quot;53.75&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-382&quot; value=&quot;&amp;lt;span style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;Folders created here are present in &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PACKAGES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; variable, BitBake knows what and where to put things using the &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;FILES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; variable, example: &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;FILES:${PN}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; files will go to &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${PN}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;amp;nbsp;folder which is in &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PACKAGES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1505.37&quot; y=&quot;520&quot; width=&quot;321.75&quot; height=&quot;148.75&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-385&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_package&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1743.12&quot; y=&quot;1100&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-386&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;16&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1713.37&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-390&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-387&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-389&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-387&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;deploy-&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2020&quot; y=&quot;720&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-396&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-389&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-395&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-389&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b&amp;gt;${PACKAGE_ARCH}&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2020&quot; y=&quot;855&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-393&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This can be &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;rpms&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;debs&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;ipks&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br&amp;gt;These are provided by&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_rpm&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_deb&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_ipk&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; classes respectively, use &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PACKAGE_CLASSES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; for that as&amp;lt;br&amp;gt;content of &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PACKAGE_CLASSES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; will be appended&amp;lt;br&amp;gt;to &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;INHERIT&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1840&quot; y=&quot;520&quot; width=&quot;410&quot; height=&quot;148.75&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-415&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;fillColor=#d0cee2;strokeColor=#000000;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-395&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-413&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;2270&quot; y=&quot;956&quot; /&gt;&#xA; &lt;mxPoint x=&quot;2270&quot; y=&quot;500&quot; /&gt;&#xA; &lt;mxPoint x=&quot;1412&quot; y=&quot;500&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-395&quot; value=&quot;sayhello-0.1-r0.${PACKAGE_ARCH}.&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1946.5&quot; y=&quot;940&quot; width=&quot;267&quot; height=&quot;32.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-397&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This task also depends on &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PACKAGE_CLASSES&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;,&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;amp;nbsp;can be &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;rpm&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;deb&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;ipk&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_rpm&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;,&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_deb&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; or &amp;lt;u style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;package_ipk&amp;lt;/u&amp;gt;&amp;amp;nbsp;respectively.&amp;lt;br&amp;gt;The generated package generally named using:&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${PN}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${PR}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${PACKAGE_ARCH}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; and&amp;amp;nbsp;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;strokeColor=#36393d;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2280&quot; y=&quot;840&quot; width=&quot;370&quot; height=&quot;170&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-404&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-401&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-403&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--21&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=default;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-401&quot; target=&quot;utO5BPZsFb6q0V3ioqD--20&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-401&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;deploy&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1376.5&quot; y=&quot;270&quot; width=&quot;70&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-414&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-403&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-413&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-403&quot; value=&quot;&amp;lt;b&amp;gt;${DEPLOY_DIR_&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;}&amp;lt;/b&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1346.62&quot; y=&quot;350&quot; width=&quot;129.75&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-408&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_package_write_&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1955&quot; y=&quot;1100&quot; width=&quot;150&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-409&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;17&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1920&quot; y=&quot;1100&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--11&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;exitX=1;exitY=0.5;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;IR5jgyizBFApjn6Bth0e-3&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-397&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-413&quot; value=&quot;${PACKAGE_ARCH}&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1351.5&quot; y=&quot;425&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-416&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;For packages, this can be &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;IPK&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;RPM&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;DEB&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; (&amp;lt;i&amp;gt;check step 17&amp;lt;/i&amp;gt;)&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1525&quot; y=&quot;348.13&quot; width=&quot;415&quot; height=&quot;41.87&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-417&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;DEPLOY_DIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1425.37&quot; y=&quot;300&quot; width=&quot;80&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-418&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;TMPDIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;830&quot; y=&quot;200&quot; width=&quot;60&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-419&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;DL_DIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry y=&quot;300&quot; width=&quot;62.68&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-422&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=classicThin;endFill=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-403&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-416&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;1480.4900000000002&quot; y=&quot;387.48571428571427&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-424&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;do_package_write_&amp;lt;i&amp;gt;pkg&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#36393d;fillColor=#eeeeee;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2205&quot; y=&quot;775&quot; width=&quot;150&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-425&quot; value=&quot;&amp;lt;font size=&amp;quot;1&amp;quot; color=&amp;quot;#ffffff&amp;quot; data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;&amp;lt;b style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;18&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;fillColor=#000000;strokeColor=#56517e;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2170&quot; y=&quot;775&quot; width=&quot;30&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--8&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;dashed=1;endArrow=classicThin;endFill=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-427&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-429&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;2303&quot; y=&quot;758&quot; /&gt;&#xA; &lt;mxPoint x=&quot;2303&quot; y=&quot;602&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-427&quot; value=&quot;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2120&quot; y=&quot;745&quot; width=&quot;30&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-428&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;endArrow=classicThin;endFill=1;dashed=1;curved=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;IR5jgyizBFApjn6Bth0e-4&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-393&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-429&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This can be &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PKGWRITEDIRRPM&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PKGWRITEDIRDEB&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;PKGWRITEDIRIPK&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_rpm&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_deb&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;or &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;package_ipk&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; respectively&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1990&quot; y=&quot;381.25&quot; width=&quot;416.88&quot; height=&quot;77.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-432&quot; value=&quot;&amp;lt;span style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;License checking happens in &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;do_populate_lic&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; after &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;do_patch&amp;lt;br&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;and before that a checksum check&amp;lt;br&amp;gt;happends on&amp;amp;nbsp;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;LIC_FILES_CHKSUM&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; if the&amp;lt;br&amp;gt;license is not &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;CLOSED&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-260&quot; y=&quot;797.5&quot; width=&quot;328.25&quot; height=&quot;102.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-434&quot; value=&quot;&amp;lt;span style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This variable is used to separate recipes&amp;lt;br&amp;gt;based on their target. This has value of&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;465.12&quot; y=&quot;520&quot; width=&quot;434.88&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--28&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;curved=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-436&quot; target=&quot;utO5BPZsFb6q0V3ioqD--27&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-436&quot; value=&quot;conf-notes.txt&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1120&quot; y=&quot;335&quot; width=&quot;110&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--16&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-440&quot; target=&quot;utO5BPZsFb6q0V3ioqD--15&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--18&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;dashed=1;endArrow=classicThin;endFill=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-440&quot; target=&quot;utO5BPZsFb6q0V3ioqD--17&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-440&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;sstate-cache&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillStyle=auto;glass=0;shadow=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;176.5&quot; y=&quot;270&quot; width=&quot;103.01&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;eV5wDCu3Df9HtTySJIbg-442&quot; value=&quot;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Architects+Daughter&amp;quot;&amp;gt;SSTATE_DIR&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#000000;strokeColor=none;fillStyle=auto;glass=0;shadow=0;fontColor=#ffffff;fontStyle=1&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;243.98000000000002&quot; y=&quot;300&quot; width=&quot;83.01&quot; height=&quot;25&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--10&quot; value=&quot;sayhello&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;fillColor=#eeeeee;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1814.99&quot; y=&quot;1040&quot; width=&quot;90&quot; height=&quot;27.5&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--13&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.149;entryY=-0.003;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=classicThin;endFill=1;curved=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;&quot; parent=&quot;1&quot; source=&quot;eV5wDCu3Df9HtTySJIbg-308&quot; target=&quot;eV5wDCu3Df9HtTySJIbg-293&quot; edge=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--15&quot; value=&quot;&amp;lt;span style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This folder contains cache for recipes build output, this is used by BitBake, if the recipe checksum did not change it knows that the output to use is the same.&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;350&quot; y=&quot;300&quot; width=&quot;410&quot; height=&quot;90&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--17&quot; value=&quot;&amp;lt;span style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;&amp;lt;font data-font-src=&amp;quot;https://fonts.googleapis.com/css?family=Liberation+Sans&amp;quot;&amp;gt;These directories can be shared accross builds to save disk space and build time&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-68.25&quot; y=&quot;180&quot; width=&quot;410&quot; height=&quot;45&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--20&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This directory contains other output directories such as &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;images&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;sdk&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;licenses&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1525&quot; y=&quot;267.5&quot; width=&quot;416.88&quot; height=&quot;45&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--22&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This file contains all &amp;lt;b&amp;gt;layers&amp;lt;/b&amp;gt; that BitBake should consider when looking for metadata.&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1060&quot; y=&quot;435&quot; width=&quot;170&quot; height=&quot;130&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--25&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;This is base configuration file containing essential user config such as &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;MACHINE&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;DISTRO&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;932&quot; y=&quot;185&quot; width=&quot;440&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;utO5BPZsFb6q0V3ioqD--27&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 15px;&amp;quot;&amp;gt;The message to show after &amp;lt;b&amp;gt;source oe-init-build-env&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;dashed=1;fontFamily=Liberation Sans;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DLiberation%2BSans;arcSize=0;fillColor=none;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1118&quot; y=&quot;260&quot; width=&quot;241.13&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;IR5jgyizBFApjn6Bth0e-1&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=1;glass=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2320&quot; y=&quot;780&quot; width=&quot;30&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;IR5jgyizBFApjn6Bth0e-2&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=1;glass=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2170&quot; y=&quot;946.25&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;IR5jgyizBFApjn6Bth0e-3&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=1;glass=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2070&quot; y=&quot;1105&quot; width=&quot;25&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;IR5jgyizBFApjn6Bth0e-4&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=1;glass=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;2090&quot; y=&quot;730&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;IR5jgyizBFApjn6Bth0e-5&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeWidth=1;glass=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;1446.5&quot; y=&quot;361.25&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/root&gt;&#xA; &lt;/mxGraphModel&gt;&#xA; &lt;/diagram&gt;&#xA;&lt;/mxfile&gt;&#xA;"><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="eV5wDCu3Df9HtTySJIbg-398"><g><rect x="2357" y="660" width="280" height="150" rx="22.5" ry="22.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-383"><g><path d="M 2217 780 Q 2163.7 780 2163.68 495.12" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 2163.68 489.87 L 2166.02 496.87 L 2163.68 495.12 L 2161.35 496.87 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-407"><g><path d="M 2307 900 Q 2307 940 2402 940 Q 2497 940 2497 820.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2497 813.35 L 2501.5 822.35 L 2497 820.1 L 2492.5 822.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-380"><g><rect x="2217" y="660" width="120" height="240" rx="18" ry="18" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-211"><g><rect x="717" y="660" width="270" height="240" rx="36" ry="36" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-142"><g><rect x="270.5" y="210" width="270" height="110" rx="16.5" ry="16.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-162"><g><rect x="537" y="660" width="140" height="240" rx="21" ry="21" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-101"><g><path d="M 1232 40 L 1232 90" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-338"><g><path d="M 1232 40 L 1232 50 Q 1232 60 1222 60 L 415.5 60 Q 405.5 60 405.5 70 L 405.5 83.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 405.5 88.88 L 402 81.88 L 405.5 83.63 L 409 81.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-344"><g><path d="M 1232 40 L 1232 50 Q 1232 60 1242 60 L 1452 60 Q 1462 60 1462 70 L 1462 83.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1462 88.88 L 1458.5 81.88 L 1462 83.63 L 1465.5 81.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-402"><g><path d="M 1232 40 L 1232 50 Q 1232 60 1242 60 L 1818.5 60 Q 1828.5 60 1828.5 70 L 1828.5 83.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1828.5 88.88 L 1825 81.88 L 1828.5 83.63 L 1832 81.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--12"><g><path d="M 1232 40 L 1232 50 Q 1232 60 1222 60 L 655 60 Q 645 60 645 70 L 645 83.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 645 88.88 L 641.5 81.88 L 645 83.63 L 648.5 81.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-98"><g><rect x="1197" y="0" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 20px; margin-left: 1198px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">tmp</font></div></div></div></foreignObject><text x="1232" y="24" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">tmp</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-102"><g><path d="M 1232 130 L 1232 260" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-99"><g><rect x="1197" y="90" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1198px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">work</font></div></div></div></foreignObject><text x="1232" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">work</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-106"><g><path d="M 1232 300 L 1232 310 Q 1232 320 1242 320 L 1412 320 Q 1422 320 1422 330 L 1422 340" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-155"><g><path d="M 1232 300 L 1232 310 Q 1232 320 1222 320 L 789 320 Q 779 320 779 330 L 778.99 340" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--14"><g><path d="M 1147 280 Q 1099.6 280 1099.56 333.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1099.56 338.88 L 1097.23 331.88 L 1099.56 333.63 L 1101.9 331.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-100"><g><rect x="1147" y="260" width="170" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 280px; margin-left: 1148px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter"><b>${MULTIMACH_TARGET_OS}</b></font></div></div></div></foreignObject><text x="1232" y="284" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">${MULTIMACH_TARGET_OS}</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-110"><g><path d="M 778.99 380 L 779 420" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-103"><g><rect x="743.99" y="340" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 360px; margin-left: 745px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">libhello</font></div></div></div></foreignObject><text x="779" y="364" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-111"><g><path d="M 1422 380 L 1422 390 Q 1422 400 1422 392.5 L 1422 388.75 Q 1422 385 1422 395 L 1422 405" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-105"><g><rect x="1387" y="340" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 360px; margin-left: 1388px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sayhello</font></div></div></div></foreignObject><text x="1422" y="364" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-169"><g><path d="M 779 460 L 779 490 Q 779 500 769 500 L 509 500 Q 499 500 499 510 L 499 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 499 538.88 L 496.67 531.88 L 499 533.63 L 501.33 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-170"><g><path d="M 779 460 L 779 490 Q 779 500 769 500 L 617 500 Q 607 500 607 510 L 607 547.5 Q 607 557.5 606.43 557.5 L 605.87 557.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 600.62 557.5 L 607.62 555.17 L 605.87 557.5 L 607.62 559.83 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-179"><g><path d="M 779 460 L 778.99 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 778.99 538.88 L 775.49 531.88 L 778.99 533.63 L 782.49 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-197"><g><path d="M 779 460 L 779 490 Q 779 500 789 500 L 1067 500 Q 1077 500 1077 510 L 1077 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1077 538.88 L 1073.5 531.88 L 1077 533.63 L 1080.5 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-108"><g><rect x="744" y="420" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 440px; margin-left: 745px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">0.1-r0</font></div></div></div></foreignObject><text x="779" y="444" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">0.1-r0</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-309"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1412 500 L 1392 500 Q 1382 500 1382 510 L 1382 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1382 538.88 L 1378.5 531.88 L 1382 533.63 L 1385.5 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-311"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1432 500 L 1746.5 500 Q 1756.5 500 1756.5 510 L 1756.5 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1756.5 538.88 L 1753 531.88 L 1756.5 533.63 L 1760 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-312"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1432 500 L 1919 500 Q 1929 500 1929 510 L 1928.99 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1928.99 538.88 L 1925.49 531.88 L 1928.99 533.63 L 1932.49 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-360"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1432 500 L 2078.5 500 Q 2088.5 500 2088.5 510 L 2088.5 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2088.5 538.88 L 2085 531.88 L 2088.5 533.63 L 2092 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-368"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1432 500 L 2267 500 Q 2277 500 2277 510 L 2277 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2277 538.88 L 2273.5 531.88 L 2277 533.63 L 2280.5 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-388"><g><path d="M 1422 445 L 1422 490 Q 1422 500 1432 500 L 2487 500 Q 2497 500 2497 510 L 2497 533.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2497 538.88 L 2493.5 531.88 L 2497 533.63 L 2500.5 531.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-109"><g><rect x="1387" y="405" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 425px; margin-left: 1388px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">0.1-r0</font></div></div></div></foreignObject><text x="1422" y="429" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">0.1-r0</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-134"><g><path d="M 405.5 130 L 405.5 140 Q 405.5 150 405.5 140 L 405.5 135 Q 405.5 130 405.5 140 L 405.5 150" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--19"><g><path d="M 440.5 110 Q 553.8 110 553.75 51.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 553.75 46.12 L 556.09 53.12 L 553.75 51.37 L 551.42 53.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-130"><g><rect x="370.5" y="90" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">downloads</font></div></div></div></foreignObject><text x="406" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">downloads</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-143"><g><path d="M 405.5 190 L 405.5 200 Q 405.5 210 405.5 200 L 405.5 195 Q 405.5 190 405.5 200 L 405.5 210" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-133"><g><rect x="370.5" y="150" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 170px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">git2</font></div></div></div></foreignObject><text x="406" y="174" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">git2</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-223"><g><path d="M 520.5 290 L 657 290 Q 667 290 667 300 L 667 567.5 Q 667 577.5 657 577.5 L 642.1 577.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 635.35 577.5 L 644.35 573 L 642.1 577.5 L 644.35 582 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-135"><g><rect x="290.5" y="220" width="230" height="40" rx="6" ry="6" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 240px; margin-left: 292px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">github.com.&lt;username&gt;.sayhello</div></div></div></foreignObject><text x="406" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">github.com.&lt;username&gt;.sayhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-337"><g><path d="M 520.5 240 L 1657 240 Q 1667 240 1667 250 L 1667 550 Q 1667 560 1677 560 L 1713.9 560" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1720.65 560 L 1711.65 564.5 L 1713.9 560 L 1711.65 555.5 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-136"><g><rect x="290.5" y="270" width="230" height="40" rx="6" ry="6" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 290px; margin-left: 292px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">github.com.&lt;username&gt;.libhello</div></div></div></foreignObject><text x="406" y="294" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">github.com.&lt;username&gt;.libhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-164"><g><path d="M 599.5 597.5 Q 599.5 628.8 603.25 628.8 Q 607 628.8 607 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 607 658.88 L 603.5 651.88 L 607 653.63 L 610.5 651.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-156"><g><rect x="567" y="557.5" width="65" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 63px; height: 1px; padding-top: 578px; margin-left: 568px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sources/libhello-0.1</div></div></div></foreignObject><text x="600" y="581" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sources/lib...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-159"><g><rect x="553" y="680" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 690px; margin-left: 554px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Makefile</div></div></div></foreignObject><text x="610" y="694" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">Makefile</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-433"><g><path d="M 553 720 L 529.2 720 Q 519.2 720 519.2 710 L 519.2 678.8 Q 519.2 668.8 509.2 668.79 L 491.62 668.76" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 486.37 668.75 L 493.37 666.43 L 491.62 668.76 L 493.36 671.1 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-160"><g><rect x="553" y="710" width="114" height="20" rx="3" ry="3" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 720px; margin-left: 554px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">LICENSE</div></div></div></foreignObject><text x="610" y="724" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">LICENSE</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-215"><g><path d="M 553 750 Q 507 750 507 765 Q 507 780 542.9 780" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 549.65 780 L 540.65 783 L 542.9 780 L 540.65 777 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-161"><g><rect x="553" y="740" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 750px; margin-left: 554px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">fix.patch</div></div></div></foreignObject><text x="610" y="754" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">fix.patch</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-219"><g><path d="M 553.68 787.86 Q 497 787.9 497 819.6 Q 497 851.3 544.9 851.26" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 551.65 851.25 L 542.65 855.76 L 544.9 851.26 L 542.64 846.76 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-163"><g><rect x="553" y="770" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 780px; margin-left: 554px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">hellolib.c</div></div></div></foreignObject><text x="610" y="784" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">hellolib.c</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-166"><g><rect x="474" y="540" width="50" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 560px; margin-left: 475px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">temp</font></div></div></div></foreignObject><text x="499" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">temp</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-210"><g><path d="M 1077 580 L 1077 660" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-171"><g><rect x="1017" y="540" width="120" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 1018px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sysroot-destdir</font></div></div></div></foreignObject><text x="1077" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sysroot-destdir</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-307"><g><path d="M 1382 580 L 1382 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1382 658.88 L 1379.67 651.88 L 1382 653.63 L 1384.33 651.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-172"><g><rect x="1327" y="540" width="110" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 560px; margin-left: 1328px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">recipe-sysroot</font></div></div></div></foreignObject><text x="1382" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">recipe-sysroot</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-182"><g><path d="M 779 580 L 779 673.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 779 678.88 L 776.67 671.88 L 779 673.63 L 781.33 671.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-175"><g><rect x="747.49" y="540" width="63" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 748px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">image</font></div></div></div></foreignObject><text x="779" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">image</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-183"><g><path d="M 779.1 720 L 779.1 730 Q 779.1 740 779.06 746.82 L 779.03 753.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 779 758.88 L 776.7 751.87 L 779.03 753.63 L 781.37 751.89 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-184"><g><path d="M 779 720 Q 779 740 838.75 740 Q 898.5 740 898.5 753.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 898.5 758.88 L 896.17 751.88 L 898.5 753.63 L 900.83 751.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-177"><g><rect x="757.25" y="680" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 758px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="779" y="704" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">usr</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-188"><g><path d="M 778.99 800 L 779 823.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 779 828.88 L 776.67 821.88 L 779 823.63 L 781.33 821.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-180"><g><rect x="752.12" y="760" width="53.75" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 780px; margin-left: 753px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">include</font></div></div></div></foreignObject><text x="779" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">include</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-192"><g><path d="M 898.6 800 L 898.6 810 Q 898.6 820 898.58 821.82 L 898.56 823.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 898.51 828.88 L 895.08 821.85 L 898.56 823.63 L 902.08 821.92 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-181"><g><rect x="876.75" y="760" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 780px; margin-left: 878px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">lib</font></div></div></div></foreignObject><text x="899" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">lib</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-187"><g><rect x="739" y="830" width="80" height="25" rx="3.75" ry="3.75" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 843px; margin-left: 740px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">hellolib.h</div></div></div></foreignObject><text x="779" y="846" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-189"><g><rect x="837" y="837.5" width="120" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 838px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">libhello.so.1</div></div></div></foreignObject><text x="897" y="851" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello.so.1</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-190"><g><rect x="837" y="862.5" width="120" height="25" rx="3.75" ry="3.75" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 875px; margin-left: 838px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">libhello.so.1.0</div></div></div></foreignObject><text x="897" y="879" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-191"><g><rect x="830" y="830" width="137" height="62.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-286"><g><path d="M 1107 900 Q 1107 940 1244.5 940 Q 1382 940 1382 910.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1382 903.35 L 1386.5 912.35 L 1382 910.1 L 1377.5 912.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-209"><g><rect x="1017" y="660" width="120" height="240" rx="18" ry="18" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 780px; margin-left: 1018px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Everything in <b>image</b> folder that is present in <b>SYSROOT_DIRS</b> will be copied here.</div></div></div></foreignObject><text x="1077" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">Everything in image...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-233"><g><path d="M 919.5 900 Q 919.5 940 998.25 940 Q 1077 940 1077 910.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1077 903.35 L 1081.5 912.35 L 1077 910.1 L 1072.5 912.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-212"><g><path d="M 607 900 Q 607 940 735.3 940 Q 863.6 940 863.61 909.86" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 863.61 903.11 L 868.11 912.12 L 863.61 909.86 L 859.11 912.11 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-213"><g><rect x="687" y="920" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 732px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_install</font></div></div></div></foreignObject><text x="732" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_install</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-214"><g><rect x="555" y="837.5" width="114" height="27.5" rx="4.13" ry="4.13" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 851px; margin-left: 556px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">libhello.so.1.0</div></div></div></foreignObject><text x="612" y="855" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-217"><g><rect x="417" y="795" width="110" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 810px; margin-left: 472px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_configure<br /></font></div></div></div></foreignObject><text x="472" y="814" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_configure&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-218"><g><rect x="553" y="800" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 810px; margin-left: 554px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">hellolib.h</div></div></div></foreignObject><text x="610" y="814" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-221"><g><rect x="447" y="750" width="80" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 765px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_patch<br /></font></div></div></div></foreignObject><text x="487" y="769" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_patch&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-224"><g><rect x="623.5" y="405" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 420px; margin-left: 669px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_unpack<br /></font></div></div></div></foreignObject><text x="669" y="424" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_unpack&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-225"><g><ellipse cx="608.5" cy="420" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 420px; margin-left: 595px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">6</b></font></div></div></div></foreignObject><text x="609" y="424" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">6</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-226"><g><ellipse cx="432" cy="765" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 765px; margin-left: 418px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">7</b></font></div></div></div></foreignObject><text x="432" y="769" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">7</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-227"><g><ellipse cx="402" cy="810" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 810px; margin-left: 388px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">8</b></font></div></div></div></foreignObject><text x="402" y="814" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">8</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-229"><g><rect x="437" y="827.5" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 843px; margin-left: 482px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_compile<br /></font></div></div></div></foreignObject><text x="482" y="846" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_compile&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-228"><g><ellipse cx="422" cy="842.5" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 843px; margin-left: 408px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">9</b></font></div></div></div></foreignObject><text x="422" y="846" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">9</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-231"><g><ellipse cx="672" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 658px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">10</b></font></div></div></div></foreignObject><text x="672" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">10</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-235"><g><rect x="932" y="920" width="160" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 1012px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_populate_sysroot</font></div></div></div></foreignObject><text x="1012" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_populate_sysroot</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-236"><g><ellipse cx="917" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 903px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">11</b></font></div></div></div></foreignObject><text x="917" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">11</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-355"><g><path d="M 1757 820 Q 1757 940 1843 940 Q 1929 940 1928.99 910.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1928.99 903.35 L 1933.49 912.35 L 1928.99 910.1 L 1924.49 912.36 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-238"><g><rect x="1687" y="660" width="140" height="160" rx="21" ry="21" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-239"><g><path d="M 1756.5 580 Q 1756.5 620 1756.92 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1756.99 658.88 L 1753.4 651.93 L 1756.92 653.63 L 1760.4 651.84 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="w4JjUiD6-ryT0rcgaIPJ-1"><g><path d="M 1724 560 L 1723.37 560" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1718.12 560 L 1725.12 556.5 L 1723.37 560 L 1725.12 563.5 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-240"><g><rect x="1724" y="540" width="65" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 63px; height: 1px; padding-top: 560px; margin-left: 1725px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>sources/sayhello-0.1</div><div><br /></div></div></div></div></foreignObject><text x="1757" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sources/say...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-241"><g><rect x="1700" y="680" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 690px; margin-left: 1701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Makefile</div></div></div></foreignObject><text x="1757" y="694" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">Makefile</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-242"><g><rect x="1700" y="710" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 720px; margin-left: 1701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">LICENSE</div></div></div></foreignObject><text x="1757" y="724" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">LICENSE</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-330"><g><path d="M 1700 750 Q 1647 750 1647 771.9 Q 1647 793.8 1689.9 793.76" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1696.65 793.75 L 1687.65 798.26 L 1689.9 793.76 L 1687.64 789.26 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-244"><g><rect x="1700" y="740" width="114" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 750px; margin-left: 1701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sayhello.c</div></div></div></foreignObject><text x="1757" y="754" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello.c</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-245"><g><rect x="1700" y="780" width="114" height="27.5" rx="4.13" ry="4.13" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 112px; height: 1px; padding-top: 794px; margin-left: 1701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sayhello</div></div></div></foreignObject><text x="1757" y="797" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-363"><g><path d="M 1958.99 900 Q 1957 900 1957 920 Q 1957 940 2022.75 940 Q 2088.5 940 2088.5 910.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2088.5 903.35 L 2093 912.35 L 2088.5 910.1 L 2084 912.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-247"><g><rect x="1868.99" y="660" width="120" height="240" rx="18" ry="18" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-248"><g><path d="M 1928.99 580 L 1928.99 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1928.99 658.88 L 1926.66 651.88 L 1928.99 653.63 L 1931.32 651.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-249"><g><rect x="1897.49" y="540" width="63" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 1898px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">image</font></div></div></div></foreignObject><text x="1929" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">image</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-250"><g><path d="M 1929.1 720 L 1929.1 735 Q 1929.1 745 1929.06 754.32 L 1929.03 763.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1929.01 768.88 L 1926.7 761.87 L 1929.03 763.63 L 1931.37 761.89 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-252"><g><rect x="1907.25" y="680" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 1908px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="1929" y="704" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">usr</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-253"><g><path d="M 1929.01 810 L 1929 848.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1929 853.88 L 1926.67 846.88 L 1929 848.63 L 1931.33 846.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-254"><g><rect x="1902.13" y="770" width="53.75" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 790px; margin-left: 1903px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">bin</font></div></div></div></foreignObject><text x="1929" y="794" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">bin</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-266"><g><path d="M 416.5 430 Q 506.5 430 506.5 507.5 Q 506.5 585 558.76 585" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 564.76 585 L 556.76 587.67 L 558.76 585 L 556.76 582.33 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-267"><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 421px; margin-left: 438px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; border-color: #000000; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); border-width: 1px; border-style: solid; border-color: inherit; border: 1px solid light-dark(#000000, #ffffff); white-space: nowrap; "><div><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" style="font-size: 14px;">S = "${UNPACKDIR}/${BP}"</font></div></div></div></div></foreignObject><text x="438" y="424" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="11px" text-anchor="middle">S = "${UNPACKDIR}/${BP}"</text></switch></g></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-270"><g><rect x="800.75" y="405" width="63" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 418px; margin-left: 802px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">WORKDIR</font></div></div></div></foreignObject><text x="832" y="421" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">WORKDIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-271"><g><rect x="730.75" y="540" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 553px; margin-left: 732px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">D</font></div></div></div></foreignObject><text x="744" y="556" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">D</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-272"><g><rect x="567" y="540" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 553px; margin-left: 568px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">S</font></div></div></div></foreignObject><text x="580" y="556" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">S</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-273"><g><rect x="540.5" y="540" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 553px; margin-left: 542px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">B</font></div></div></div></foreignObject><text x="554" y="556" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">B</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-275"><g><rect x="458.75" y="540" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 553px; margin-left: 460px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">T</font></div></div></div></foreignObject><text x="472" y="556" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">T</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-276"><g><rect x="907" y="790" width="50" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 803px; margin-left: 908px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">libdir</font></div></div></div></foreignObject><text x="932" y="806" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">libdir</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-277"><g><rect x="783.75" y="790" width="80" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 803px; margin-left: 785px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">includedir</font></div></div></div></foreignObject><text x="824" y="806" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">includedir</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-279"><g><rect x="1400.87" y="570" width="116.13" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 114px; height: 1px; padding-top: 583px; margin-left: 1402px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">RECIPE_SYSROOT</font></div></div></div></foreignObject><text x="1459" y="586" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">RECIPE_SYSROOT</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-351"><g><path d="M 1806.8 565 Q 1806.8 527.5 1799.35 527.5 Q 1791.9 527.5 1791.88 496.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1791.88 491.12 L 1794.21 498.12 L 1791.88 496.37 L 1789.55 498.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-281"><g><rect x="1793.5" y="565" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 578px; margin-left: 1795px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">S</font></div></div></div></foreignObject><text x="1807" y="581" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">S</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-282"><g><rect x="1767" y="565" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 578px; margin-left: 1768px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">B</font></div></div></div></foreignObject><text x="1780" y="581" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">B</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-283"><g><rect x="1950.75" y="565" width="26.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 25px; height: 1px; padding-top: 578px; margin-left: 1952px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">D</font></div></div></div></foreignObject><text x="1964" y="581" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">D</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-284"><g><rect x="1447" y="395" width="63" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 408px; margin-left: 1448px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">WORKDIR</font></div></div></div></foreignObject><text x="1479" y="411" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">WORKDIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-287"><g><rect x="1160" y="920" width="200" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 1260px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_prepare_recipe_sysroot</font></div></div></div></foreignObject><text x="1260" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_prepare_recipe_sysroot</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-292"><g><rect x="1884" y="855" width="90" height="27.5" rx="4.13" ry="4.13" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 869px; margin-left: 1885px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sayhello</div></div></div></foreignObject><text x="1929" y="872" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-293"><g><rect x="1247" y="660" width="270" height="240" rx="36" ry="36" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-294"><g><path d="M 1309.1 720 Q 1309.1 740 1309.03 753.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1309 758.88 L 1306.7 751.87 L 1309.03 753.63 L 1311.37 751.89 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-295"><g><path d="M 1309 720 Q 1309 740 1368.75 740 Q 1428.5 740 1428.5 753.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1428.5 758.88 L 1426.17 751.88 L 1428.5 753.63 L 1430.83 751.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-296"><g><rect x="1287.25" y="680" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 700px; margin-left: 1288px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="1309" y="704" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">usr</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-297"><g><path d="M 1308.99 800 L 1309 823.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1309 828.88 L 1306.67 821.88 L 1309 823.63 L 1311.33 821.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-298"><g><rect x="1282.12" y="760" width="53.75" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 780px; margin-left: 1283px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">include</font></div></div></div></foreignObject><text x="1309" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">include</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-299"><g><path d="M 1428.6 800 L 1428.6 810 Q 1428.6 820 1428.58 821.82 L 1428.56 823.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1428.51 828.88 L 1426.25 821.86 L 1428.56 823.63 L 1430.91 821.91 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-300"><g><rect x="1406.75" y="760" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 780px; margin-left: 1408px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">lib</font></div></div></div></foreignObject><text x="1429" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">lib</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-301"><g><rect x="1269" y="830" width="80" height="25" rx="3.75" ry="3.75" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 843px; margin-left: 1270px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">hellolib.h</div></div></div></foreignObject><text x="1309" y="846" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">hellolib.h</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-302"><g><rect x="1367" y="837.5" width="120" height="20" rx="3" ry="3" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 848px; margin-left: 1368px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">libhello.so.1</div></div></div></foreignObject><text x="1427" y="851" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello.so.1</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-303"><g><rect x="1367" y="862.5" width="120" height="25" rx="3.75" ry="3.75" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 875px; margin-left: 1368px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">libhello.so.1.0</div></div></div></foreignObject><text x="1427" y="879" fill="#333333" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">libhello.so.1.0</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-304"><g><rect x="1360" y="830" width="137" height="62.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-308"><g><rect x="970" y="420" width="390" height="70" fill="none" stroke="#36393d" style="stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 1165px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" style="font-size: 15px;">This also contains other files from other <br />dependencies. Default dependencies are:<br />basically <b style=""><u>gcc</u></b>, <b style=""><u>compilerlibs</u></b> and <b style=""><u style="">libc</u></b></font></div></div></div></foreignObject><text x="1165" y="459" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This also contains other files from other...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-310"><g><rect x="1092" y="570" width="127.5" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 583px; margin-left: 1093px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">SYSROOT_DESTDIR</font></div></div></div></foreignObject><text x="1156" y="586" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">SYSROOT_DESTDIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-322"><g><path d="M 82.5 240 L 280.4 240" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 287.15 240 L 278.15 244.5 L 280.4 240 L 278.15 235.5 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-323"><g><path d="M 82.5 290 L 280.4 290" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 287.15 290 L 278.15 294.5 L 280.4 290 L 278.15 285.5 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-314"><g><rect x="0.5" y="215" width="82" height="100" rx="12.3" ry="12.3" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(35, 68, 93), rgb(160, 188, 210));" stroke="#23445d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 80px; height: 1px; padding-top: 265px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#fcfcfc" style="color: light-dark(rgb(252, 252, 252), rgb(20, 20, 20));">Github</font></div></div></div></foreignObject><text x="42" y="269" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">Github</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-316"><g><rect x="133.75" y="225" width="80" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 174px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_fetch<br /></font></div></div></div></foreignObject><text x="174" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_fetch&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-317"><g><ellipse cx="118.75" cy="240" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 240px; margin-left: 105px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">1</b></font></div></div></div></foreignObject><text x="119" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">1</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-326"><g><rect x="133.75" y="275" width="80" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 174px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_fetch<br /></font></div></div></div></foreignObject><text x="174" y="294" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_fetch&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-327"><g><ellipse cx="118.75" cy="290" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 290px; margin-left: 105px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">5</b></font></div></div></div></foreignObject><text x="119" y="294" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">5</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-331"><g><rect x="1557" y="745" width="110" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 760px; margin-left: 1612px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_configure<br /></font></div></div></div></foreignObject><text x="1612" y="764" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_configure&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-332"><g><ellipse cx="1542" cy="760" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 760px; margin-left: 1528px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">12</b></font></div></div></div></foreignObject><text x="1542" y="764" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">12</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-333"><g><rect x="1577" y="777.5" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 793px; margin-left: 1622px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_compile<br /></font></div></div></div></foreignObject><text x="1622" y="796" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_compile&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-334"><g><ellipse cx="1562" cy="792.5" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 793px; margin-left: 1548px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">13</b></font></div></div></div></foreignObject><text x="1562" y="796" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">13</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-340"><g><rect x="627" y="225" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_unpack<br /></font></div></div></div></foreignObject><text x="672" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_unpack&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-341"><g><ellipse cx="612" cy="240" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 240px; margin-left: 598px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">2</b></font></div></div></div></foreignObject><text x="612" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">2</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-349"><g><path d="M 1462 130 Q 1462 150 1462.07 148.64" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1461.81 153.88 L 1458.66 146.72 L 1462.07 148.64 L 1465.65 147.07 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-438"><g><path d="M 1462 130 Q 1462 140 1398.15 140 Q 1334.3 140 1334.27 148.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1334.25 153.88 L 1330.78 146.87 L 1334.27 148.63 L 1337.78 146.89 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-439"><g><path d="M 1462 130 Q 1462 140 1527 140 Q 1592 140 1592 148.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1592 153.88 L 1588.5 146.88 L 1592 148.63 L 1595.5 146.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-343"><g><rect x="1427" y="90" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1428px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">conf</font></div></div></div></foreignObject><text x="1462" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">conf</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--26"><g><path d="M 1287.25 165 Q 1277 165 1277 127.5 Q 1277 90 1313 90 Q 1349 90 1349 51.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1349 46.12 L 1351.33 53.12 L 1349 51.37 L 1346.67 53.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-345"><g><rect x="1287.25" y="155" width="94" height="20" rx="3" ry="3" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 92px; height: 1px; padding-top: 165px; margin-left: 1288px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">local.conf</div></div></div></foreignObject><text x="1334" y="169" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">local.conf</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--24"><g><path d="M 1461.8 175 Q 1461.8 215 1511.9 215 Q 1562 215 1562 248.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1562 253.88 L 1559.67 246.88 L 1562 248.63 L 1564.33 246.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-346"><g><rect x="1406.75" y="155" width="110" height="20" rx="3" ry="3" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 165px; margin-left: 1408px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">bblayers.conf</div></div></div></foreignObject><text x="1462" y="169" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">bblayers.conf</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-350"><g><rect x="1676.75" y="340" width="230.25" height="150" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 415px; margin-left: 1678px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;"><b><u>S</u></b> defaults generally to <b><u>${UNPACKDIR}/${BP}</u></b><br /></font></div></div></div></foreignObject><text x="1792" y="419" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">S defaults generally to ${UNPACKDIR}/$...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-352"><g><rect x="1557" y="675" width="110" height="40" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 695px; margin-left: 1612px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_patch<br /><i>(No patches)</i><br /></font></div></div></div></foreignObject><text x="1612" y="699" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_patch...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-353"><g><ellipse cx="1542" cy="695" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 695px; margin-left: 1528px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">3</b></font></div></div></div></foreignObject><text x="1542" y="699" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">3</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-354"><g><ellipse cx="1145" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 1131px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">4</b></font></div></div></div></foreignObject><text x="1145" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">4</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-356"><g><rect x="1731.75" y="890" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 905px; margin-left: 1777px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_install<br /></font></div></div></div></foreignObject><text x="1777" y="909" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_install&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-357"><g><ellipse cx="1717" cy="905" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 905px; margin-left: 1703px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">14</b></font></div></div></div></foreignObject><text x="1717" y="909" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">14</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-362"><g><path d="M 2088.51 580 L 2088.51 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2088.51 658.88 L 2086.17 651.88 L 2088.51 653.63 L 2090.84 651.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-358"><g><rect x="2057" y="540" width="63" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 560px; margin-left: 2058px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">package</font></div></div></div></foreignObject><text x="2089" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">package</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-359"><g><rect x="2110.26" y="565" width="36.74" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 35px; height: 1px; padding-top: 578px; margin-left: 2111px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">PKGD</font></div></div></div></foreignObject><text x="2129" y="581" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">PKGD</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-384"><g><path d="M 2115.44 900 Q 2115.4 940 2196.2 940 Q 2277 940 2277 910.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2277 903.35 L 2281.5 912.35 L 2277 910.1 L 2272.5 912.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-361"><g><rect x="2034.63" y="660" width="107.75" height="240" rx="16.16" ry="16.16" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 106px; height: 1px; padding-top: 780px; margin-left: 2036px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">A copy of <b>${D}<br /></b>excluding<br /><b>/sysroot-only</b></div></div></div></foreignObject><text x="2089" y="784" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">A copy of ${D}...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-364"><g><rect x="1990.24" y="920" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2035px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package<br /></font></div></div></div></foreignObject><text x="2035" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_package&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-365"><g><ellipse cx="1975.49" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 1961px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">15</b></font></div></div></div></foreignObject><text x="1975" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">15</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-381"><g><path d="M 2277 580 L 2277 653.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2277 658.88 L 2274.67 651.88 L 2277 653.63 L 2279.33 651.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-366"><g><rect x="2217" y="540" width="120" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 2218px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">packages-split</font></div></div></div></foreignObject><text x="2277" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">packages-split</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-367"><g><rect x="2327" y="565" width="60" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 578px; margin-left: 2328px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">PKGDEST</font></div></div></div></foreignObject><text x="2357" y="581" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">PKGDEST</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-377"><g><path d="M 2277 710 L 2277 723.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2277 728.88 L 2274.67 721.88 L 2277 723.63 L 2279.33 721.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-369"><g><rect x="2245.5" y="670" width="63" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 690px; margin-left: 2247px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sayhello</font></div></div></div></foreignObject><text x="2277" y="694" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-372"><g><path d="M 2277.1 770 L 2277.1 780 Q 2277.1 790 2277.09 790.57 L 2277.08 791.13" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2277.01 796.38 L 2274.78 789.35 L 2277.08 791.13 L 2279.44 789.42 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-373"><g><rect x="2255.25" y="730" width="43.5" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 42px; height: 1px; padding-top: 750px; margin-left: 2256px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">usr</font></div></div></div></foreignObject><text x="2277" y="754" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">usr</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-374"><g><path d="M 2276.99 837.5 L 2276.99 853.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2276.99 858.88 L 2274.66 851.88 L 2276.99 853.63 L 2279.33 851.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-375"><g><rect x="2250.12" y="797.5" width="53.75" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 52px; height: 1px; padding-top: 818px; margin-left: 2251px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">bin</font></div></div></div></foreignObject><text x="2277" y="821" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">bin</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-382"><g><rect x="1922.37" y="340" width="321.75" height="148.75" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 320px; height: 1px; padding-top: 414px; margin-left: 1923px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size: 15px;">Folders created here are present in <b><u>PACKAGES</u></b> variable, BitBake knows what and where to put things using the <b><u>FILES</u></b> variable, example: <b><u>FILES:${PN}</u></b> files will go to <b><u>${PN}</u></b> folder which is in <b><u>PACKAGES</u></b></span></div></div></div></foreignObject><text x="2083" y="418" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">Folders created here are present in PACKAGES variable...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-385"><g><rect x="2160.12" y="920" width="90" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2205px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package<br /></font></div></div></div></foreignObject><text x="2205" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_package&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-386"><g><ellipse cx="2145.37" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 2131px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">16</b></font></div></div></div></foreignObject><text x="2145" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">16</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-390"><g><path d="M 2497 580 L 2497 668.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2497 673.88 L 2494.67 666.88 L 2497 668.63 L 2499.33 666.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-387"><g><rect x="2437" y="540" width="120" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 560px; margin-left: 2438px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">deploy-<b><i>pkg</i></b></font></div></div></div></foreignObject><text x="2497" y="564" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">deploy-pkg</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-396"><g><path d="M 2497 715 L 2497 753.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2497 758.88 L 2494.67 751.88 L 2497 753.63 L 2499.33 751.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-389"><g><rect x="2437" y="675" width="120" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 695px; margin-left: 2438px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter"><b>${PACKAGE_ARCH}</b></font></div></div></div></foreignObject><text x="2497" y="699" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">${PACKAGE_ARCH}</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-393"><g><rect x="2257" y="340" width="410" height="148.75" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 414px; margin-left: 2258px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This can be <b><u>rpms</u></b>, <b><u>debs</u></b> or <b><u>ipks</u></b>.<br />These are provided by<br /><b><u>package_rpm</u></b>, <b><u>package_deb</u></b> and <b><u>package_ipk</u></b> classes respectively, use <b><u>PACKAGE_CLASSES</u></b> for that as<br />content of <b><u>PACKAGE_CLASSES</u></b> will be appended<br />to <b><u>INHERIT</u></b><br /></font></div></div></div></foreignObject><text x="2462" y="418" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This can be rpms, debs or ipks....</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-415"><g><path d="M 2630.5 776.25 L 2677 776.29 Q 2687 776.3 2687 766.3 L 2687 330 Q 2687 320 2677 320 L 1838.5 320 Q 1828.5 320 1828.5 310 L 1828.5 295.1" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1828.5 288.35 L 1833 297.35 L 1828.5 295.1 L 1824 297.35 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-395"><g><rect x="2363.5" y="760" width="267" height="32.5" rx="4.88" ry="4.88" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 265px; height: 1px; padding-top: 776px; margin-left: 2365px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sayhello-0.1-r0.${PACKAGE_ARCH}.<i>pkg</i></div></div></div></foreignObject><text x="2497" y="780" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello-0.1-r0.${PACKAGE_ARCH}.pkg</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-397"><g><rect x="2697" y="660" width="370" height="170" fill="none" stroke="#36393d" style="stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 368px; height: 1px; padding-top: 745px; margin-left: 2698px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This task also depends on <b><u>PACKAGE_CLASSES</u></b>,<br /><b><u><i>pkg</i></u></b> can be <b><u>rpm</u></b>, <b><u>deb</u></b> or <b><u>ipk</u></b> for <b><u>package_rpm</u></b>,<br /><b><u>package_deb</u></b> or <u style="font-weight: bold;">package_ipk</u> respectively.<br />The generated package generally named using:<br /><b><u>${PN}</u></b>, <b><u>${PR}</u></b>, <b><u>${PACKAGE_ARCH}</u></b> and <b><u><i>pkg</i></u></b><br /></font></div></div></div></foreignObject><text x="2882" y="749" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This task also depends on PACKAGE_CLASSES,...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-404"><g><path d="M 1828.5 130 L 1828.5 163.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1828.5 168.88 L 1825 161.88 L 1828.5 163.63 L 1832 161.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--21"><g><path d="M 1863.5 110 Q 1863.5 110 1935.63 110" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1940.88 110 L 1933.88 112.33 L 1935.63 110 L 1933.88 107.67 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-401"><g><rect x="1793.5" y="90" width="70" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 1795px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">deploy</font></div></div></div></foreignObject><text x="1829" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">deploy</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-414"><g><path d="M 1828.5 210 L 1828.5 220 Q 1828.5 230 1828.5 227.5 L 1828.5 226.25 Q 1828.5 225 1828.5 231.82 L 1828.5 238.63" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1828.5 243.88 L 1825 236.88 L 1828.5 238.63 L 1832 236.88 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-403"><g><rect x="1763.62" y="170" width="129.75" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 190px; margin-left: 1765px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>${DEPLOY_DIR_<i>pkg</i>}</b></div></div></div></foreignObject><text x="1828" y="194" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">${DEPLOY_DIR_pkg}</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-408"><g><rect x="2372" y="920" width="150" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 935px; margin-left: 2447px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package_write_<i>pkg</i><br /></font></div></div></div></foreignObject><text x="2447" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_package_write_pkg&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-409"><g><ellipse cx="2352" cy="935" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 935px; margin-left: 2338px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">17</b></font></div></div></div></foreignObject><text x="2352" y="939" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">17</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--11"><g><path d="M 2512 935 Q 2882 935 2882 836.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 2882 831.12 L 2884.33 838.12 L 2882 836.37 L 2879.67 838.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-413"><g><rect x="1768.5" y="245" width="120" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 265px; margin-left: 1770px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">${PACKAGE_ARCH}</div></div></div></foreignObject><text x="1829" y="269" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">${PACKAGE_ARCH}</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-416"><g><rect x="1942" y="168.13" width="415" height="41.87" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 413px; height: 1px; padding-top: 189px; margin-left: 1943px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">For packages, this can be <b><u>IPK</u></b>, <b><u>RPM</u></b> or <b><u>DEB</u></b> (<i>check step 17</i>)</font></div></div></div></foreignObject><text x="2150" y="193" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">For packages, this can be IPK, RPM or DEB (check step 17)</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-417"><g><rect x="1842.37" y="120" width="80" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 133px; margin-left: 1843px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">DEPLOY_DIR</font></div></div></div></foreignObject><text x="1882" y="136" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">DEPLOY_DIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-418"><g><rect x="1247" y="20" width="60" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 33px; margin-left: 1248px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">TMPDIR</font></div></div></div></foreignObject><text x="1277" y="36" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">TMPDIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-419"><g><rect x="417" y="120" width="62.68" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 61px; height: 1px; padding-top: 133px; margin-left: 418px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">DL_DIR</font></div></div></div></foreignObject><text x="448" y="136" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">DL_DIR</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-422"><g><path d="M 1893.37 190 L 1907.7 190 Q 1917.7 190 1926.67 189.65 L 1935.64 189.31" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1940.88 189.11 L 1933.98 191.71 L 1935.64 189.31 L 1933.8 187.05 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-424"><g><rect x="2622" y="595" width="150" height="30" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 610px; margin-left: 2697px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">do_package_write_<i>pkg</i><br /></font></div></div></div></foreignObject><text x="2697" y="614" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">do_package_write_pkg&#xa;</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-425"><g><ellipse cx="2602" cy="610" rx="15" ry="15" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(86, 81, 126), rgb(164, 160, 198));" stroke="#56517e" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 610px; margin-left: 2588px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" color="#ffffff" size="1" style="color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"><b style="font-size: 15px;">18</b></font></div></div></div></foreignObject><text x="2602" y="614" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">18</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--8"><g><path d="M 2567 577.5 Q 2720 577.5 2720 499.75 Q 2720 422 2719.68 285.12" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 2719.66 279.87 L 2722.01 286.86 L 2719.68 285.12 L 2717.35 286.87 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-427"><g><rect x="2537" y="565" width="30" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-428"><g><path d="M 2522 550 Q 2522 519.4 2543.25 519.4 Q 2564.5 519.4 2564.5 495.12" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 2564.5 489.87 L 2566.83 496.87 L 2564.5 495.12 L 2562.17 496.87 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-429"><g><rect x="2407" y="201.25" width="416.88" height="77.5" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 415px; height: 1px; padding-top: 240px; margin-left: 2408px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This can be <b><u>PKGWRITEDIRRPM</u></b>, <b><u>PKGWRITEDIRDEB</u></b> or <b><u>PKGWRITEDIRIPK</u></b> for <b><u>package_rpm</u></b>, <b><u>package_deb</u></b><br />or <b><u>package_ipk</u></b> respectively<br /></font></div></div></div></foreignObject><text x="2615" y="244" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This can be PKGWRITEDIRRPM, PKGWRITEDIRDEB or PKGWRITEDIRIPK for pack...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-432"><g><rect x="157" y="617.5" width="328.25" height="102.5" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 326px; height: 1px; padding-top: 669px; margin-left: 158px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size: 15px;">License checking happens in <b><u>do_populate_lic</u></b> after <b><u>do_patch<br /></u></b>and before that a checksum check<br />happends on <b><u>LIC_FILES_CHKSUM</u></b> if the<br />license is not <b><u>CLOSED</u></b><br /></span></div></div></div></foreignObject><text x="321" y="672" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">License checking happens in do_populate_lic after do_pa...</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-434"><g><rect x="882.12" y="340" width="434.88" height="70" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 433px; height: 1px; padding-top: 375px; margin-left: 883px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size: 15px;">This variable is used to separate recipes<br />based on their target. This has value of<br /><b><u>${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}</u></b><br /></span></div></div></div></foreignObject><text x="1100" y="379" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This variable is used to separate recipes...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--28"><g><path d="M 1647 165 Q 1715.8 165 1715.84 126.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1715.85 121.12 L 1718.17 128.12 L 1715.84 126.37 L 1713.51 128.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-436"><g><rect x="1537" y="155" width="110" height="20" rx="3" ry="3" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 165px; margin-left: 1538px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">conf-notes.txt</div></div></div></foreignObject><text x="1592" y="169" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">conf-notes.txt</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--16"><g><path d="M 645.01 130 Q 645 165 760.63 165" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 765.88 165 L 758.88 167.33 L 760.63 165 L 758.88 162.67 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--18"><g><path d="M 593.5 110 Q 553.8 110 553.75 51.37" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 553.75 46.12 L 556.09 53.12 L 553.75 51.37 L 551.42 53.12 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-440"><g><rect x="593.5" y="90" width="103.01" height="40" rx="6" ry="6" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 101px; height: 1px; padding-top: 110px; margin-left: 595px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">sstate-cache</font></div></div></div></foreignObject><text x="645" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sstate-cache</text></switch></g></g></g><g data-cell-id="eV5wDCu3Df9HtTySJIbg-442"><g><rect x="660.98" y="120" width="83.01" height="25" rx="3.75" ry="3.75" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 81px; height: 1px; padding-top: 133px; margin-left: 662px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><font data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter">SSTATE_DIR</font></div></div></div></foreignObject><text x="702" y="136" fill="#ffffff" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle" font-weight="bold">SSTATE_DIR</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--10"><g><rect x="2231.99" y="860" width="90" height="27.5" rx="4.13" ry="4.13" fill="#eeeeee" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));" stroke="#36393d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 874px; margin-left: 2233px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">sayhello</div></div></div></foreignObject><text x="2277" y="877" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">sayhello</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--13"><g><path d="M 1165 490 Q 1165 575 1226.1 575 Q 1287.2 575 1287.23 652.91" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1287.23 658.16 L 1284.89 651.16 L 1287.23 652.91 L 1289.56 651.16 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--15"><g><rect x="767" y="120" width="410" height="90" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 165px; margin-left: 768px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size: 15px;">This folder contains cache for recipes build output, this is used by BitBake, if the recipe checksum did not change it knows that the output to use is the same.<br /></span></div></div></div></foreignObject><text x="972" y="169" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This folder contains cache for recipes build output, this is used by...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--17"><g><rect x="348.75" y="0" width="410" height="45" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 23px; margin-left: 350px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size: 15px;"><font data-font-src="https://fonts.googleapis.com/css?family=Liberation+Sans">These directories can be shared accross builds to save disk space and build time</font><br /></span></div></div></div></foreignObject><text x="554" y="26" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">These directories can be shared accross builds to save disk space an...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--20"><g><rect x="1942" y="87.5" width="416.88" height="45" fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 415px; height: 1px; padding-top: 110px; margin-left: 1943px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This directory contains other output directories such as <b><u>images</u></b>, <b><u>sdk</u></b> and <b><u>licenses</u></b><br /></font></div></div></div></foreignObject><text x="2150" y="114" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This directory contains other output directories such as images, sdk...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--22"><g><rect x="1477" y="255" width="170" height="130" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 320px; margin-left: 1478px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This file contains all <b>layers</b> that BitBake should consider when looking for metadata.<br /></font></div></div></div></foreignObject><text x="1562" y="324" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This file contains all layer...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--25"><g><rect x="1349" y="5" width="440" height="40" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 438px; height: 1px; padding-top: 25px; margin-left: 1350px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">This is base configuration file containing essential user config such as <b><u>MACHINE</u></b> and <b><u>DISTRO</u></b><br /></font></div></div></div></foreignObject><text x="1569" y="29" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">This is base configuration file containing essential user config such as...</text></switch></g></g></g><g data-cell-id="utO5BPZsFb6q0V3ioqD--27"><g><rect x="1535" y="80" width="241.13" height="40" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-dasharray="3 3" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 239px; height: 1px; padding-top: 100px; margin-left: 1536px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Liberation Sans&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 15px;">The message to show after <b>source oe-init-build-env</b><br /></font></div></div></div></foreignObject><text x="1656" y="104" fill="light-dark(#000000, #ffffff)" font-family="&quot;Liberation Sans&quot;" font-size="12px" text-anchor="middle">The message to show after source oe-init...</text></switch></g></g></g><g data-cell-id="IR5jgyizBFApjn6Bth0e-1"><g><rect x="2737" y="600" width="30" height="20" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" pointer-events="all"/></g></g><g data-cell-id="IR5jgyizBFApjn6Bth0e-2"><g><rect x="2587" y="766.25" width="20" height="20" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" pointer-events="all"/></g></g><g data-cell-id="IR5jgyizBFApjn6Bth0e-3"><g><rect x="2487" y="925" width="25" height="20" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" pointer-events="all"/></g></g><g data-cell-id="IR5jgyizBFApjn6Bth0e-4"><g><rect x="2507" y="550" width="20" height="20" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" pointer-events="all"/></g></g><g data-cell-id="IR5jgyizBFApjn6Bth0e-5"><g><rect x="1863.5" y="181.25" width="20" height="20" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" pointer-events="all"/></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
diff --git a/documentation/overview-manual/svg/configuration-compile-autoreconf.svg b/documentation/overview-manual/svg/configuration-compile-autoreconf.svg
index c0de45681a..3be08018cb 100644
--- a/documentation/overview-manual/svg/configuration-compile-autoreconf.svg
+++ b/documentation/overview-manual/svg/configuration-compile-autoreconf.svg
@@ -1277,12 +1277,12 @@
1277 x="287.2186" 1277 x="287.2186"
1278 y="300.76147" 1278 y="300.76147"
1279 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1279 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1280 id="tspan21"> sources-unpack &lt;───────────────────── UNPACKDIR</tspan><tspan 1280 id="tspan21"> sources &lt;──────────────────────────── UNPACKDIR</tspan><tspan
1281 sodipodi:role="line" 1281 sodipodi:role="line"
1282 x="287.2186" 1282 x="287.2186"
1283 y="314.09485" 1283 y="314.09485"
1284 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1284 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1285 id="tspan22"> ${BP} &lt;────────────────────────────── S / B</tspan><tspan 1285 id="tspan22"> ${BP} &lt;──────────────────────────── S / B</tspan><tspan
1286 sodipodi:role="line" 1286 sodipodi:role="line"
1287 x="287.2186" 1287 x="287.2186"
1288 y="327.42822" 1288 y="327.42822"
@@ -1322,12 +1322,12 @@
1322 x="287.2186" 1322 x="287.2186"
1323 y="420.76184" 1323 y="420.76184"
1324 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1324 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1325 id="tspan35"> sources-unpack &lt;───────────────────── UNPACKDIR</tspan><tspan 1325 id="tspan35"> sources &lt;──────────────────────────── UNPACKDIR</tspan><tspan
1326 sodipodi:role="line" 1326 sodipodi:role="line"
1327 x="287.2186" 1327 x="287.2186"
1328 y="434.09521" 1328 y="434.09521"
1329 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1329 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1330 id="tspan36"> ${BP} &lt;────────────────────────────── S / B</tspan><tspan 1330 id="tspan36"> ${BP} &lt;──────────────────────────── S / B</tspan><tspan
1331 sodipodi:role="line" 1331 sodipodi:role="line"
1332 x="287.2186" 1332 x="287.2186"
1333 y="447.42859" 1333 y="447.42859"
diff --git a/documentation/overview-manual/svg/patching.svg b/documentation/overview-manual/svg/patching.svg
index b0de175a20..5c56b5ac23 100644
--- a/documentation/overview-manual/svg/patching.svg
+++ b/documentation/overview-manual/svg/patching.svg
@@ -1074,12 +1074,12 @@
1074 x="283.34647" 1074 x="283.34647"
1075 y="318.12881" 1075 y="318.12881"
1076 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1076 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1077 id="tspan21"> sources-unpack &lt;──────────────────── UNPACKDIR</tspan><tspan 1077 id="tspan21"> sources &lt;─────────────────────────── UNPACKDIR</tspan><tspan
1078 sodipodi:role="line" 1078 sodipodi:role="line"
1079 x="283.34647" 1079 x="283.34647"
1080 y="331.46219" 1080 y="331.46219"
1081 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1081 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1082 id="tspan31"> ${BP} &lt;───────────────────────────── S</tspan><tspan 1082 id="tspan31"> ${BP} &lt;─────────────────────────── S</tspan><tspan
1083 sodipodi:role="line" 1083 sodipodi:role="line"
1084 x="283.34647" 1084 x="283.34647"
1085 y="344.79556" 1085 y="344.79556"
@@ -1099,12 +1099,12 @@
1099 x="283.34647" 1099 x="283.34647"
1100 y="384.79568" 1100 y="384.79568"
1101 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1101 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1102 id="tspan35"> sources-unpack &lt;──────────────────── UNPACKDIR</tspan><tspan 1102 id="tspan35"> sources &lt;─────────────────────────── UNPACKDIR</tspan><tspan
1103 sodipodi:role="line" 1103 sodipodi:role="line"
1104 x="283.34647" 1104 x="283.34647"
1105 y="398.12906" 1105 y="398.12906"
1106 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1106 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1107 id="tspan47"> ${BP} &lt;───────────────────────────── S</tspan></text> 1107 id="tspan47"> ${BP} &lt;─────────────────────────── S</tspan></text>
1108 <text 1108 <text
1109 xml:space="preserve" 1109 xml:space="preserve"
1110 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.8889px;line-height:125%;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.42682px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1110 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.8889px;line-height:125%;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.42682px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
diff --git a/documentation/overview-manual/svg/source-fetching.svg b/documentation/overview-manual/svg/source-fetching.svg
index b7bab32773..39d7e0c2a7 100644
--- a/documentation/overview-manual/svg/source-fetching.svg
+++ b/documentation/overview-manual/svg/source-fetching.svg
@@ -1017,12 +1017,12 @@
1017 x="281.13275" 1017 x="281.13275"
1018 y="317.37775" 1018 y="317.37775"
1019 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1019 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1020 id="tspan22"> sources-unpack &lt;─────────────────────── UNPACKDIR</tspan><tspan 1020 id="tspan22"> sources &lt;────────────────────────────── UNPACKDIR</tspan><tspan
1021 sodipodi:role="line" 1021 sodipodi:role="line"
1022 x="281.13275" 1022 x="281.13275"
1023 y="330.71112" 1023 y="330.71112"
1024 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1024 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1025 id="tspan32"> ${BP} &lt;──────────────────────────────── S</tspan><tspan 1025 id="tspan32"> ${BP} &lt;────────────────────────────── S</tspan><tspan
1026 sodipodi:role="line" 1026 sodipodi:role="line"
1027 x="281.13275" 1027 x="281.13275"
1028 y="344.04449" 1028 y="344.04449"
@@ -1042,12 +1042,12 @@
1042 x="281.13275" 1042 x="281.13275"
1043 y="384.04462" 1043 y="384.04462"
1044 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1044 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1045 id="tspan36"> sources-unpack &lt;─────────────────────── UNPACKDIR</tspan><tspan 1045 id="tspan36"> sources &lt;────────────────────────────── UNPACKDIR</tspan><tspan
1046 sodipodi:role="line" 1046 sodipodi:role="line"
1047 x="281.13275" 1047 x="281.13275"
1048 y="397.37799" 1048 y="397.37799"
1049 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px" 1049 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Mono PS';-inkscape-font-specification:'Nimbus Mono PS, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;text-anchor:start;stroke:none;stroke-width:1.42682px"
1050 id="tspan44"> ${BP} &lt;──────────────────────────────── S</tspan></text> 1050 id="tspan44"> ${BP} &lt;────────────────────────────── S</tspan></text>
1051 <text 1051 <text
1052 xml:space="preserve" 1052 xml:space="preserve"
1053 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.5555px;line-height:125%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.42682px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1053 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.5555px;line-height:125%;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.42682px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
diff --git a/documentation/overview-manual/yp-intro.rst b/documentation/overview-manual/yp-intro.rst
index 15dfb3a6b6..40e9693a8d 100644
--- a/documentation/overview-manual/yp-intro.rst
+++ b/documentation/overview-manual/yp-intro.rst
@@ -51,7 +51,7 @@ Here are features and advantages of the Yocto Project:
51 RISC-V and other architectures. Most ODMs, OSVs, and chip vendors create and 51 RISC-V and other architectures. Most ODMs, OSVs, and chip vendors create and
52 supply BSPs that support their hardware. If you have custom silicon, you can 52 supply BSPs that support their hardware. If you have custom silicon, you can
53 create a BSP that supports that architecture. See 53 create a BSP that supports that architecture. See
54 :doc:`ref-manual/yocto-project-supported-features` for details on the level 54 :doc:`/ref-manual/yocto-project-supported-features` for details on the level
55 of support for some of these architectures. 55 of support for some of these architectures.
56 56
57 Aside from broad architecture support, the Yocto Project fully 57 Aside from broad architecture support, the Yocto Project fully
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index 54a98bf24f..f2f6e6e411 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -1732,77 +1732,158 @@ Its behavior is mainly controlled by the following variables:
1732- :term:`KERNEL_DTC_FLAGS`: flags for ``dtc``, the Device Tree Compiler 1732- :term:`KERNEL_DTC_FLAGS`: flags for ``dtc``, the Device Tree Compiler
1733- :term:`KERNEL_PACKAGE_NAME`: base name of the kernel packages 1733- :term:`KERNEL_PACKAGE_NAME`: base name of the kernel packages
1734 1734
1735.. _ref-classes-kernel-fitimage: 1735.. _ref-classes-kernel-fit-image:
1736 1736
1737``kernel-fitimage`` 1737``kernel-fit-image``
1738=================== 1738====================
1739 1739
1740The :ref:`ref-classes-kernel-fitimage` class provides support to pack a kernel image, 1740The :ref:`ref-classes-kernel-fit-image` class provides support to pack a kernel image,
1741device trees, a U-boot script, an :term:`Initramfs` bundle and a RAM disk 1741device trees, a U-boot script, and an :term:`Initramfs` into a single FIT image.
1742into a single FIT image. In theory, a FIT image can support any number 1742In theory, a FIT image can support any number of kernels, U-boot scripts,
1743of kernels, U-boot scripts, :term:`Initramfs` bundles, RAM disks and device-trees. 1743:term:`Initramfs`, and device trees.
1744However, :ref:`ref-classes-kernel-fitimage` currently only supports 1744However, :ref:`ref-classes-kernel-fit-image` currently only supports
1745limited usecases: just one kernel image, an optional U-boot script, 1745limited usecases: just one kernel image, an optional U-boot script,
1746an optional :term:`Initramfs` bundle, an optional RAM disk, and any number of 1746an optional :term:`Initramfs`, and any number of device trees.
1747device trees. 1747
1748 1748The FIT image is created by a recipe which inherits the
1749To create a FIT image, it is required that :term:`KERNEL_CLASSES` 1749:ref:`ref-classes-kernel-fit-image` class.
1750is set to include ":ref:`ref-classes-kernel-fitimage`" and one of :term:`KERNEL_IMAGETYPE`, 1750One such example is the ``linux-yocto-fitimage`` recipe which creates a FIT
1751:term:`KERNEL_ALT_IMAGETYPE` or :term:`KERNEL_IMAGETYPES` to include "fitImage". 1751image for the Linux Yocto kernel.
1752 1752Additionally, it is required that :term:`KERNEL_CLASSES` is set to include
1753The options for the device tree compiler passed to ``mkimage -D`` 1753:ref:`ref-classes-kernel-fit-extra-artifacts`.
1754when creating the FIT image are specified using the 1754The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required kernel
1755:term:`UBOOT_MKIMAGE_DTCOPTS` variable. 1755artifacts to the :term:`DEPLOY_DIR_IMAGE` which are used by the
1756 1756:ref:`ref-classes-kernel-fit-image` class to create the FIT image.
1757Only a single kernel can be added to the FIT image created by 1757
1758:ref:`ref-classes-kernel-fitimage` and the kernel image in FIT is mandatory. The 1758The simplest example for building a FIT image is to add::
1759address where the kernel image is to be loaded by U-Boot is 1759
1760specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by 1760 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1761:term:`UBOOT_ENTRYPOINT`. Setting :term:`FIT_ADDRESS_CELLS` to "2" 1761
1762is necessary if such addresses are 64 bit ones. 1762to the machine :term:`configuration file` and to execute::
1763 1763
1764Multiple device trees can be added to the FIT image created by 1764 bitbake linux-yocto-fitimage
1765:ref:`ref-classes-kernel-fitimage` and the device tree is optional. 1765
1766The address where the device tree is to be loaded by U-Boot is 1766This results in a ``fitImage`` file deployed to the :term:`DEPLOY_DIR_IMAGE`
1767specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays 1767directory and a ``linux-yocto-fitimage`` package which can be installed.
1768and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries. 1768
1769 1769The same approach works for all variants of the ``linux-yocto`` kernel.
1770Only a single RAM disk can be added to the FIT image created by 1770For example, if the ``linux-yocto-rt`` kernel should be used, add the following
1771:ref:`ref-classes-kernel-fitimage` and the RAM disk in FIT is optional. 1771lines to the machine configuration file::
1772The address where the RAM disk image is to be loaded by U-Boot 1772
1773is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by 1773 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1774:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to the FIT image when 1774 PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
1775:term:`INITRAMFS_IMAGE` is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` 1775
1776is not set to 1. 1776The FIT image, this time including the RT kernel, is built again by calling::
1777 1777
1778Only a single :term:`Initramfs` bundle can be added to the FIT image created by 1778 bitbake linux-yocto-fitimage
1779:ref:`ref-classes-kernel-fitimage` and the :term:`Initramfs` bundle in FIT is optional. 1779
1780In case of :term:`Initramfs`, the kernel is configured to be bundled with the root filesystem 1780For other kernels provided by other layers, the same approach would work.
1781in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin). 1781However, it is usually more intuitive to add a custom FIT image recipe next to
1782When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem. 1782the custom kernel recipe.
1783The :term:`Initramfs` bundle can be enabled when :term:`INITRAMFS_IMAGE` 1783For example, if a layer provides a ``linux-vanilla`` recipe, a
1784is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1. 1784``linux-vanilla-fitimage`` recipe may be added as well.
1785The address where the :term:`Initramfs` bundle is to be loaded by U-boot is specified 1785The ``linux-vanilla-fitimage`` recipe can be created as a customized copy of
1786by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. 1786the ``linux-yocto-fitimage`` recipe.
1787 1787
1788Only a single U-boot boot script can be added to the FIT image created by 1788Usually the kernel is built as a dependency of an image.
1789:ref:`ref-classes-kernel-fitimage` and the boot script is optional. 1789If the FIT image should be used as a replacement for the kernel image which
1790The boot script is specified in the ITS file as a text file containing 1790is installed in the root filesystem, then the following variables can be set
1791U-boot commands. When using a boot script the user should configure the 1791e.g. in the machine configuration file::
1792U-boot :ref:`ref-tasks-install` task to copy the script to sysroot. 1792
1793So the script can be included in the FIT image by the :ref:`ref-classes-kernel-fitimage` 1793 # Create and deploy the vmlinux artifact which gets included into the FIT image
1794class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to 1794 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1795load the boot script from the FIT image and execute it. 1795
1796 1796 # Do not install the kernel image package
1797The FIT image generated by the :ref:`ref-classes-kernel-fitimage` class is signed when the 1797 RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
1798variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`, 1798 # Install the FIT image package
1799:term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set 1799 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "linux-yocto-fitimage"
1800appropriately. The default values used for :term:`FIT_HASH_ALG` and 1800
1801:term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fitimage` are "sha256" and 1801 # Configure the image.bbclass to depend on the FIT image instead of only
1802"rsa2048" respectively. The keys for signing the FIT image can be generated using 1802 # the kernel to ensure the FIT image is built and deployed with the image
1803the :ref:`ref-classes-kernel-fitimage` class when both :term:`FIT_GENERATE_KEYS` and 1803 KERNEL_DEPLOY_DEPEND = "linux-yocto-fitimage:do_deploy"
1804:term:`UBOOT_SIGN_ENABLE` are set to "1". 1804
1805 1805The :ref:`ref-classes-kernel-fit-image` class processes several variables that
1806allow configuration:
1807
1808- The options for the device tree compiler passed to ``mkimage -D``
1809 when creating the FIT image are specified using the
1810 :term:`UBOOT_MKIMAGE_DTCOPTS` variable.
1811
1812- Only a single kernel can be added to the FIT image created by
1813 :ref:`ref-classes-kernel-fit-image` and it is a mandatory component of the
1814 FIT image.
1815 The address where the kernel image is to be loaded by U-Boot is
1816 specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
1817 :term:`UBOOT_ENTRYPOINT`. Setting :term:`FIT_ADDRESS_CELLS` to "2"
1818 is necessary if such addresses are 64 bit ones.
1819
1820- Multiple device trees can be added to the FIT image created by
1821 :ref:`ref-classes-kernel-fit-image` and the device tree is optional.
1822 The address where the device tree is to be loaded by U-Boot is
1823 specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
1824 and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
1825
1826- Only a single :term:`Initramfs` can be added to the FIT image created by
1827 :ref:`ref-classes-kernel-fit-image`. The :term:`Initramfs` in FIT is optional.
1828 The address where the RAM disk image is to be loaded by U-Boot
1829 is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
1830 :term:`UBOOT_RD_ENTRYPOINT`. The :term:`Initramfs` is added to the FIT image
1831 when :term:`INITRAMFS_IMAGE` is specified.
1832
1833- It's recommended to add the :term:`Initramfs` and the kernel image as
1834 independent image nodes to the FIT image.
1835 Bundling a RAM disk image with the kernel image and including the bundle
1836 (:term:`INITRAMFS_IMAGE_BUNDLE` set to "1") in the FIT image is possible.
1837 However, this approach has the disadvantage that any change to the RAM
1838 disk image necessitates rebuilding the kernel image.
1839 This process requires the full kernel build directory, which is kind of
1840 incompatible with the :term:`SSTATE_DIR` and, consequently, with SDKs.
1841
1842- Only a single U-Boot boot script can be added to the FIT image created by
1843 :ref:`ref-classes-kernel-fit-image`. The boot script is optional.
1844 The boot script is specified in the ITS file as a text file containing
1845 U-Boot commands. When using a boot script the recipe which inherits the
1846 :ref:`ref-classes-kernel-fit-image` class should add the script to
1847 :term:`SRC_URI` and set the :term:`FIT_UBOOT_ENV` variable to the name of the
1848 file like the following::
1849
1850 FIT_UBOOT_ENV = "boot.txt"
1851 SRC_URI += "file://${FIT_UBOOT_ENV}"
1852
1853 At run-time, U-boot's boot command can be configured to load the boot script
1854 from the FIT image and source it.
1855
1856- The FIT image generated by the :ref:`ref-classes-kernel-fit-image` class is signed when the
1857 variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
1858 :term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set
1859 appropriately. The default values used for :term:`FIT_HASH_ALG` and
1860 :term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fit-image` are "sha256" and
1861 "rsa2048" respectively. The keys for signing the FIT image can be generated using
1862 the :ref:`ref-classes-kernel-fit-image` class when both :term:`FIT_GENERATE_KEYS` and
1863 :term:`UBOOT_SIGN_ENABLE` are set to "1".
1864
1865.. _ref-classes-kernel-fit-extra-artifacts:
1866
1867``kernel-fit-extra-artifacts``
1868==============================
1869
1870The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required
1871kernel artifacts to the :term:`DEPLOY_DIR_IMAGE` directory.
1872These artifacts are used by the :ref:`ref-classes-kernel-fit-image` class to
1873create a FIT image that can include the kernel, device trees, an optional
1874U-Boot script, and an optional Initramfs.
1875
1876This class is typically included by adding it to the :term:`KERNEL_CLASSES`
1877variable in your kernel recipe or machine configuration when building FIT images.
1878It ensures that all necessary files are available for packaging into the FIT image,
1879such as the kernel binary, device tree blobs (DTBs), and other related files.
1880
1881For example, to enable this class, set::
1882
1883 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1884
1885This is required when using the :ref:`ref-classes-kernel-fit-image` class to
1886generate FIT images for your kernel.
1806 1887
1807.. _ref-classes-kernel-grub: 1888.. _ref-classes-kernel-grub:
1808 1889
@@ -2050,7 +2131,8 @@ a couple different ways:
2050 Not using this naming convention can lead to subtle problems 2131 Not using this naming convention can lead to subtle problems
2051 caused by existing code that depends on that naming convention. 2132 caused by existing code that depends on that naming convention.
2052 2133
2053- Create or modify a target recipe that contains the following:: 2134- Or, create a :ref:`ref-classes-native` variant of any target recipe (e.g.
2135 ``myrecipe.bb``) by adding the following to the recipe::
2054 2136
2055 BBCLASSEXTEND = "native" 2137 BBCLASSEXTEND = "native"
2056 2138
@@ -2081,24 +2163,25 @@ couple different ways:
2081 inherit statement in the recipe after all other inherit statements so 2163 inherit statement in the recipe after all other inherit statements so
2082 that the :ref:`ref-classes-nativesdk` class is inherited last. 2164 that the :ref:`ref-classes-nativesdk` class is inherited last.
2083 2165
2084- Create a :ref:`ref-classes-nativesdk` variant of any recipe by adding the following:: 2166 .. note::
2085 2167
2086 BBCLASSEXTEND = "nativesdk" 2168 When creating a recipe, you must follow this naming convention::
2087 2169
2088 Inside the 2170 nativesdk-myrecipe.bb
2089 recipe, use ``:class-nativesdk`` and ``:class-target`` overrides to
2090 specify any functionality specific to the respective SDK machine or
2091 target case.
2092 2171
2093.. note::
2094 2172
2095 When creating a recipe, you must follow this naming convention:: 2173 Not doing so can lead to subtle problems because there is code that
2174 depends on the naming convention.
2096 2175
2097 nativesdk-myrecipe.bb 2176- Or, create a :ref:`ref-classes-nativesdk` variant of any target recipe (e.g.
2177 ``myrecipe.bb``) by adding the following to the recipe::
2098 2178
2179 BBCLASSEXTEND = "nativesdk"
2099 2180
2100 Not doing so can lead to subtle problems because there is code that 2181 Inside the
2101 depends on the naming convention. 2182 recipe, use ``:class-nativesdk`` and ``:class-target`` overrides to
2183 specify any functionality specific to the respective SDK machine or
2184 target case.
2102 2185
2103Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both 2186Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both
2104methods. The advantage of the second method is that you do not need to 2187methods. The advantage of the second method is that you do not need to
@@ -3436,7 +3519,7 @@ See U-Boot's documentation for details about `verified boot
3436and the `signature process 3519and the `signature process
3437<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/signature.txt>`__. 3520<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/signature.txt>`__.
3438 3521
3439See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class 3522See also the description of :ref:`ref-classes-kernel-fit-image` class, which this class
3440imitates. 3523imitates.
3441 3524
3442.. _ref-classes-uki: 3525.. _ref-classes-uki:
diff --git a/documentation/ref-manual/resources.rst b/documentation/ref-manual/resources.rst
index 4eaaca942e..bcbc7ebaca 100644
--- a/documentation/ref-manual/resources.rst
+++ b/documentation/ref-manual/resources.rst
@@ -23,7 +23,7 @@ The Yocto Project gladly accepts contributions. You can submit changes
23to the project either by creating and sending pull requests, or by 23to the project either by creating and sending pull requests, or by
24submitting patches through email. For information on how to do both as 24submitting patches through email. For information on how to do both as
25well as information on how to identify the maintainer for each area of 25well as information on how to identify the maintainer for each area of
26code, see the :doc:`../contributor-guide/index`. 26code, see the :doc:`/contributor-guide/index`.
27 27
28.. _resources-bugtracker: 28.. _resources-bugtracker:
29 29
@@ -45,7 +45,7 @@ your expectations).
45For a general procedure and guidelines on how to use Bugzilla to submit a bug 45For a general procedure and guidelines on how to use Bugzilla to submit a bug
46against the Yocto Project, see the following: 46against the Yocto Project, see the following:
47 47
48- The ":doc:`../contributor-guide/report-defect`" 48- The ":doc:`/contributor-guide/report-defect`"
49 section in the Yocto Project and OpenEmbedded Contributor Guide. 49 section in the Yocto Project and OpenEmbedded Contributor Guide.
50 50
51- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 51- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst
index 2190f5b90e..d6dbb29401 100644
--- a/documentation/ref-manual/structure.rst
+++ b/documentation/ref-manual/structure.rst
@@ -611,7 +611,7 @@ example, consider ``linux-yocto-kernel-3.0`` on the machine ``qemux86``
611built within the Yocto Project. For this package, a work directory of 611built within the Yocto Project. For this package, a work directory of
612``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred 612``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred
613to as the :term:`WORKDIR`, is created. Within this directory, the source is 613to as the :term:`WORKDIR`, is created. Within this directory, the source is
614unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt. 614unpacked to ``sources/linux-qemux86-standard-build`` and then patched by Quilt.
615(See the ":ref:`dev-manual/quilt:using quilt in your workflow`" section in 615(See the ":ref:`dev-manual/quilt:using quilt in your workflow`" section in
616the Yocto Project Development Tasks Manual for more information.) Within 616the Yocto Project Development Tasks Manual for more information.) Within
617the ``linux-qemux86-standard-build`` directory, standard Quilt 617the ``linux-qemux86-standard-build`` directory, standard Quilt
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index b64a13320a..14b635013b 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -145,7 +145,7 @@ tested on former revisions of "&DISTRO_NAME;", but no longer are:
145 interested in hearing about your experience. For information on 145 interested in hearing about your experience. For information on
146 how to submit a bug, see the Yocto Project 146 how to submit a bug, see the Yocto Project
147 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 147 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
148 and the ":doc:`../contributor-guide/report-defect`" 148 and the ":doc:`/contributor-guide/report-defect`"
149 section in the Yocto Project and OpenEmbedded Contributor Guide. 149 section in the Yocto Project and OpenEmbedded Contributor Guide.
150 150
151Required Packages for the Build Host 151Required Packages for the Build Host
diff --git a/documentation/ref-manual/tasks.rst b/documentation/ref-manual/tasks.rst
index d85d1151f0..e379c424d8 100644
--- a/documentation/ref-manual/tasks.rst
+++ b/documentation/ref-manual/tasks.rst
@@ -412,8 +412,7 @@ them. You can learn more by looking at the
412------------- 412-------------
413 413
414Unpacks the source code into a working directory pointed to by 414Unpacks the source code into a working directory pointed to by
415``${``\ :term:`UNPACKDIR`\ ``}``. A legacy way to specify 415``${``\ :term:`UNPACKDIR`\ ``}``.
416this directory is through the :term:`S` and :term:`WORKDIR` variables.
417For more information on how source files are unpacked, see the 416For more information on how source files are unpacked, see the
418":ref:`overview-manual/concepts:source fetching`" 417":ref:`overview-manual/concepts:source fetching`"
419section in the Yocto Project Overview and Concepts Manual. 418section in the Yocto Project Overview and Concepts Manual.
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 5c18b852d1..c56418e2a2 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -265,7 +265,7 @@ system and gives an overview of their function and contents.
265 build process. By default, this directory is the same as the 265 build process. By default, this directory is the same as the
266 :term:`S` directory, which is defined as:: 266 :term:`S` directory, which is defined as::
267 267
268 S = "${WORKDIR}/${BP}" 268 S = "${UNPACKDIR}/${BP}"
269 269
270 You can separate the (:term:`S`) directory and the directory pointed to 270 You can separate the (:term:`S`) directory and the directory pointed to
271 by the :term:`B` variable. Most Autotools-based recipes support 271 by the :term:`B` variable. Most Autotools-based recipes support
@@ -560,6 +560,13 @@ system and gives an overview of their function and contents.
560 :term:`BB_GENERATE_SHALLOW_TARBALLS` 560 :term:`BB_GENERATE_SHALLOW_TARBALLS`
561 See :term:`bitbake:BB_GENERATE_SHALLOW_TARBALLS` in the BitBake manual. 561 See :term:`bitbake:BB_GENERATE_SHALLOW_TARBALLS` in the BitBake manual.
562 562
563 :term:`BB_GIT_DEFAULT_DESTSUFFIX`
564 See :term:`bitbake:BB_GIT_DEFAULT_DESTSUFFIX` in the BitBake manual.
565
566 In :term:`OpenEmbedded-Core (OE-Core)`, this variable is set to
567 :term:`BP` by default in :oe_git:`bitbake.conf
568 </openembedded-core/tree/meta/conf/bitbake.conf>`.
569
563 :term:`BB_GIT_SHALLOW` 570 :term:`BB_GIT_SHALLOW`
564 See :term:`bitbake:BB_GIT_SHALLOW` in the BitBake manual. 571 See :term:`bitbake:BB_GIT_SHALLOW` in the BitBake manual.
565 572
@@ -2576,7 +2583,7 @@ system and gives an overview of their function and contents.
2576 You can safely share this directory between multiple builds on the 2583 You can safely share this directory between multiple builds on the
2577 same development machine. For additional information on how the build 2584 same development machine. For additional information on how the build
2578 process gets source files when working behind a firewall or proxy 2585 process gets source files when working behind a firewall or proxy
2579 server, see this specific question in the ":doc:`faq`" 2586 server, see this specific question in the ":doc:`/ref-manual/faq`"
2580 chapter. You can also refer to the 2587 chapter. You can also refer to the
2581 ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`" 2588 ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
2582 Wiki page. 2589 Wiki page.
@@ -2790,7 +2797,7 @@ system and gives an overview of their function and contents.
2790 ``meta/classes-recipe`` to see how the variable is used. 2797 ``meta/classes-recipe`` to see how the variable is used.
2791 2798
2792 :term:`EXTERNAL_KERNEL_DEVICETREE` 2799 :term:`EXTERNAL_KERNEL_DEVICETREE`
2793 When inheriting :ref:`ref-classes-kernel-fitimage` and a 2800 When inheriting :ref:`ref-classes-kernel-fit-image` and a
2794 :term:`PREFERRED_PROVIDER` for ``virtual/dtb`` set to ``devicetree``, the 2801 :term:`PREFERRED_PROVIDER` for ``virtual/dtb`` set to ``devicetree``, the
2795 variable :term:`EXTERNAL_KERNEL_DEVICETREE` can be used to specify a 2802 variable :term:`EXTERNAL_KERNEL_DEVICETREE` can be used to specify a
2796 directory containing one or more compiled device tree or device tree 2803 directory containing one or more compiled device tree or device tree
@@ -3318,7 +3325,7 @@ system and gives an overview of their function and contents.
3318 Specifies the value of the ``#address-cells`` value for the 3325 Specifies the value of the ``#address-cells`` value for the
3319 description of the FIT image. 3326 description of the FIT image.
3320 3327
3321 The default value is set to "1" by the :ref:`ref-classes-kernel-fitimage` 3328 The default value is set to "1" by the :ref:`ref-classes-kernel-fit-image`
3322 class, which corresponds to 32 bit addresses. 3329 class, which corresponds to 32 bit addresses.
3323 3330
3324 For platforms that need to set 64 bit addresses, for example in 3331 For platforms that need to set 64 bit addresses, for example in
@@ -3337,11 +3344,11 @@ system and gives an overview of their function and contents.
3337 Specifies the default device tree binary (dtb) file for a FIT image 3344 Specifies the default device tree binary (dtb) file for a FIT image
3338 when multiple ones are provided. 3345 when multiple ones are provided.
3339 3346
3340 This variable is used in the :ref:`ref-classes-kernel-fitimage` class. 3347 This variable is used in the :ref:`ref-classes-kernel-fit-image` class.
3341 3348
3342 :term:`FIT_DESC` 3349 :term:`FIT_DESC`
3343 Specifies the description string encoded into a FIT image. The 3350 Specifies the description string encoded into a FIT image. The
3344 default value is set by the :ref:`ref-classes-kernel-fitimage` class as 3351 default value is set by the :ref:`ref-classes-kernel-fit-image` class as
3345 follows:: 3352 follows::
3346 3353
3347 FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" 3354 FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
@@ -3350,12 +3357,12 @@ system and gives an overview of their function and contents.
3350 Decides whether to generate the keys for signing the FIT image if 3357 Decides whether to generate the keys for signing the FIT image if
3351 they don't already exist. The keys are created in 3358 they don't already exist. The keys are created in
3352 :term:`UBOOT_SIGN_KEYDIR`. The default value is set to "0" 3359 :term:`UBOOT_SIGN_KEYDIR`. The default value is set to "0"
3353 by the :ref:`ref-classes-kernel-fitimage` class. 3360 by the :ref:`ref-classes-kernel-fit-image` class.
3354 3361
3355 :term:`FIT_HASH_ALG` 3362 :term:`FIT_HASH_ALG`
3356 Specifies the hash algorithm used in creating the FIT Image. 3363 Specifies the hash algorithm used in creating the FIT Image.
3357 This variable is set by default to "sha256" by the 3364 This variable is set by default to "sha256" by the
3358 :ref:`ref-classes-kernel-fitimage` class. 3365 :ref:`ref-classes-kernel-fit-image` class.
3359 3366
3360 :term:`FIT_KERNEL_COMP_ALG` 3367 :term:`FIT_KERNEL_COMP_ALG`
3361 The compression algorithm to use for the kernel image inside the FIT Image. 3368 The compression algorithm to use for the kernel image inside the FIT Image.
@@ -3374,31 +3381,31 @@ system and gives an overview of their function and contents.
3374 :term:`FIT_KEY_GENRSA_ARGS` 3381 :term:`FIT_KEY_GENRSA_ARGS`
3375 Arguments to ``openssl genrsa`` for generating a RSA private key for 3382 Arguments to ``openssl genrsa`` for generating a RSA private key for
3376 signing the FIT image. The default value is set to "-F4" by the 3383 signing the FIT image. The default value is set to "-F4" by the
3377 :ref:`ref-classes-kernel-fitimage` class. 3384 :ref:`ref-classes-kernel-fit-image` class.
3378 3385
3379 :term:`FIT_KEY_REQ_ARGS` 3386 :term:`FIT_KEY_REQ_ARGS`
3380 Arguments to ``openssl req`` for generating a certificate for signing 3387 Arguments to ``openssl req`` for generating a certificate for signing
3381 the FIT image. The default value is "-batch -new" by the 3388 the FIT image. The default value is "-batch -new" by the
3382 :ref:`ref-classes-kernel-fitimage` class, "batch" for 3389 :ref:`ref-classes-kernel-fit-image` class, "batch" for
3383 non interactive mode and "new" for generating new keys. 3390 non interactive mode and "new" for generating new keys.
3384 3391
3385 :term:`FIT_KEY_SIGN_PKCS` 3392 :term:`FIT_KEY_SIGN_PKCS`
3386 Format for the public key certificate used for signing the FIT image. 3393 Format for the public key certificate used for signing the FIT image.
3387 The default value is set to "x509" by the 3394 The default value is set to "x509" by the
3388 :ref:`ref-classes-kernel-fitimage` class. 3395 :ref:`ref-classes-kernel-fit-image` class.
3389 3396
3390 :term:`FIT_SIGN_ALG` 3397 :term:`FIT_SIGN_ALG`
3391 Specifies the signature algorithm used in creating the FIT Image. 3398 Specifies the signature algorithm used in creating the FIT Image.
3392 This variable is set by default to "rsa2048" by the 3399 This variable is set by default to "rsa2048" by the
3393 :ref:`ref-classes-kernel-fitimage` class. 3400 :ref:`ref-classes-kernel-fit-image` class.
3394 3401
3395 :term:`FIT_PAD_ALG` 3402 :term:`FIT_PAD_ALG`
3396 Specifies the padding algorithm used in creating the FIT Image. 3403 Specifies the padding algorithm used in creating the FIT Image.
3397 The default value is set to "pkcs-1.5" by the 3404 The default value is set to "pkcs-1.5" by the
3398 :ref:`ref-classes-kernel-fitimage` class. 3405 :ref:`ref-classes-kernel-fit-image` class.
3399 3406
3400 :term:`FIT_SIGN_INDIVIDUAL` 3407 :term:`FIT_SIGN_INDIVIDUAL`
3401 If set to "1", the :ref:`ref-classes-kernel-fitimage` class signs each 3408 If set to "1", the :ref:`ref-classes-kernel-fit-image` class signs each
3402 image node individually, including the kernel, DTB, RAM disk, and any 3409 image node individually, including the kernel, DTB, RAM disk, and any
3403 other image types present in the FIT image, in addition to signing the 3410 other image types present in the FIT image, in addition to signing the
3404 configuration nodes. 3411 configuration nodes.
@@ -3431,13 +3438,13 @@ system and gives an overview of their function and contents.
3431 :term:`FIT_SIGN_NUMBITS` 3438 :term:`FIT_SIGN_NUMBITS`
3432 Size of the private key used in the FIT image, in number of bits. 3439 Size of the private key used in the FIT image, in number of bits.
3433 The default value for this variable is set to "2048" 3440 The default value for this variable is set to "2048"
3434 by the :ref:`ref-classes-kernel-fitimage` class. 3441 by the :ref:`ref-classes-kernel-fit-image` class.
3435 3442
3436 :term:`FIT_UBOOT_ENV` 3443 :term:`FIT_UBOOT_ENV`
3437 This variable allows to add a U-Boot script as a text file to the 3444 This variable allows to add a U-Boot script as a text file to the
3438 FIT image. Such a script can be sourced from the U-Boot shell. 3445 FIT image. Such a script can be sourced from the U-Boot shell.
3439 3446
3440 When inheriting the :ref:`ref-classes-kernel-fitimage` class a 3447 When inheriting the :ref:`ref-classes-kernel-fit-image` class a
3441 script file should be included in the :term:`SRC_URI` of the Linux 3448 script file should be included in the :term:`SRC_URI` of the Linux
3442 kernel recipe. 3449 kernel recipe.
3443 3450
@@ -5075,9 +5082,7 @@ system and gives an overview of their function and contents.
5075 :term:`KERNEL_CLASSES` 5082 :term:`KERNEL_CLASSES`
5076 A list of classes defining kernel image types that the 5083 A list of classes defining kernel image types that the
5077 :ref:`ref-classes-kernel` class should inherit. You typically 5084 :ref:`ref-classes-kernel` class should inherit. You typically
5078 append this variable to enable extended image types. An example is 5085 append this variable to enable extended image types.
5079 ":ref:`ref-classes-kernel-fitimage`", which enables
5080 FIT image support and resides in ``meta/classes-recipe/kernel-fitimage.bbclass``.
5081 You can register custom kernel image types with the 5086 You can register custom kernel image types with the
5082 :ref:`ref-classes-kernel` class using this variable. 5087 :ref:`ref-classes-kernel` class using this variable.
5083 5088
@@ -5352,6 +5357,27 @@ system and gives an overview of their function and contents.
5352 the :term:`KERNEL_PATH` variable. Both variables are common variables 5357 the :term:`KERNEL_PATH` variable. Both variables are common variables
5353 used by external Makefiles to point to the kernel source directory. 5358 used by external Makefiles to point to the kernel source directory.
5354 5359
5360 :term:`KERNEL_SPLIT_MODULES`
5361 When inheriting the :ref:`ref-classes-kernel-module-split` class, this
5362 variable controls whether kernel modules are split into separate packages
5363 or bundled into a single package.
5364
5365 For some use cases, a monolithic kernel module package
5366 :term:`KERNEL_PACKAGE_NAME` that contains all modules built from the
5367 kernel sources may be preferred to speed up the installation.
5368
5369 By default, this variable is set to ``1``, resulting in one package per
5370 module. Setting it to any other value will generate a single monolithic
5371 package containing all kernel modules.
5372
5373 .. note::
5374
5375 If :term:`KERNEL_SPLIT_MODULES` is set to 0, it is still possible to
5376 install all kernel modules at once by adding ``kernel-modules`` (assuming
5377 :term:`KERNEL_PACKAGE_NAME` is ``kernel-modules``) to :term:`IMAGE_INSTALL`.
5378 The way it works is that a placeholder "kernel-modules" package will be
5379 created and will depend on every other individual kernel module packages.
5380
5355 :term:`KERNEL_SRC` 5381 :term:`KERNEL_SRC`
5356 The location of the kernel sources. This variable is set to the value 5382 The location of the kernel sources. This variable is set to the value
5357 of the :term:`STAGING_KERNEL_DIR` within the :ref:`ref-classes-module` 5383 of the :term:`STAGING_KERNEL_DIR` within the :ref:`ref-classes-module`
@@ -8041,7 +8067,7 @@ system and gives an overview of their function and contents.
8041 :term:`S` 8067 :term:`S`
8042 The location in the :term:`Build Directory` where 8068 The location in the :term:`Build Directory` where
8043 unpacked recipe source code resides. By default, this directory is 8069 unpacked recipe source code resides. By default, this directory is
8044 ``${``\ :term:`WORKDIR`\ ``}/${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``, 8070 ``${``\ :term:`UNPACKDIR`\ ``}/${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``,
8045 where ``${BPN}`` is the base recipe name and ``${PV}`` is the recipe 8071 where ``${BPN}`` is the base recipe name and ``${PV}`` is the recipe
8046 version. If the source tarball extracts the code to a directory named 8072 version. If the source tarball extracts the code to a directory named
8047 anything other than ``${BPN}-${PV}``, or if the source code is 8073 anything other than ``${BPN}-${PV}``, or if the source code is
@@ -8054,19 +8080,10 @@ system and gives an overview of their function and contents.
8054 ``poky/build``. In this case, the work directory the build system 8080 ``poky/build``. In this case, the work directory the build system
8055 uses to keep the unpacked recipe for ``db`` is the following:: 8081 uses to keep the unpacked recipe for ``db`` is the following::
8056 8082
8057 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19 8083 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/sources/db-5.1.19
8058 8084
8059 The unpacked source code resides in the ``db-5.1.19`` folder. 8085 The unpacked source code resides in the ``db-5.1.19`` folder.
8060 8086
8061 This next example assumes a Git repository. By default, Git
8062 repositories are cloned to ``${WORKDIR}/git`` during
8063 :ref:`ref-tasks-fetch`. Since this path is different
8064 from the default value of :term:`S`, you must set it specifically so the
8065 source can be located::
8066
8067 SRC_URI = "git://path/to/repo.git;branch=main"
8068 S = "${WORKDIR}/git"
8069
8070 :term:`SANITY_REQUIRED_UTILITIES` 8087 :term:`SANITY_REQUIRED_UTILITIES`
8071 Specifies a list of command-line utilities that should be checked for 8088 Specifies a list of command-line utilities that should be checked for
8072 during the initial sanity checking process when running BitBake. If 8089 during the initial sanity checking process when running BitBake. If
@@ -8441,7 +8458,6 @@ system and gives an overview of their function and contents.
8441 sources are fetched from a Git repository and ``setup.py`` is in a 8458 sources are fetched from a Git repository and ``setup.py`` is in a
8442 ``python/pythonmodule`` subdirectory, you would have this:: 8459 ``python/pythonmodule`` subdirectory, you would have this::
8443 8460
8444 S = "${WORKDIR}/git"
8445 SETUPTOOLS_SETUP_PATH = "${S}/python/pythonmodule" 8461 SETUPTOOLS_SETUP_PATH = "${S}/python/pythonmodule"
8446 8462
8447 :term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS` 8463 :term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS`
@@ -8764,6 +8780,28 @@ system and gives an overview of their function and contents.
8764 image), compared to just using the :ref:`ref-classes-create-spdx` class 8780 image), compared to just using the :ref:`ref-classes-create-spdx` class
8765 with no option. 8781 with no option.
8766 8782
8783 :term:`SPDX_INCLUDE_COMPILED_SOURCES`
8784 This option allows the same as :term:`SPDX_INCLUDE_SOURCES` but including
8785 only the sources used to compile the host tools and the target packages.
8786 While :term:`SPDX_INCLUDE_SOURCES` includes all files in the source
8787 directory as source file descriptions, :term:`SPDX_INCLUDE_COMPILED_SOURCES`
8788 includes only the sources that are used to produce the binaries delivered
8789 as packages. The source files that are not used during compilation are not
8790 included in the SBOM. It uses debugsource information generated during
8791 ``do_package`` to filter out source files.
8792
8793 This enables an external tool to use the SPDX information to disregard
8794 vulnerabilities that are not compiled in the packages.
8795
8796 Enable this option as follows::
8797
8798 SPDX_INCLUDE_COMPILED_SOURCES = "1"
8799
8800 According to our tests, building ``core-image-minimal`` for the
8801 ``qemux86-64`` machine, enabling this option compared with the
8802 :term:`SPDX_INCLUDE_SOURCES` reduces the size of the ``tmp/deploy/spdx``
8803 directory from 2GB to 1.6GB.
8804
8767 :term:`SPDX_NAMESPACE_PREFIX` 8805 :term:`SPDX_NAMESPACE_PREFIX`
8768 This option could be used in order to change the prefix of ``spdxDocument`` 8806 This option could be used in order to change the prefix of ``spdxDocument``
8769 and the prefix of ``documentNamespace``. It is set by default to 8807 and the prefix of ``documentNamespace``. It is set by default to
@@ -10321,13 +10359,13 @@ system and gives an overview of their function and contents.
10321 :term:`UBOOT_DTB_LOADADDRESS` 10359 :term:`UBOOT_DTB_LOADADDRESS`
10322 Specifies the load address for the dtb image used by U-Boot. During FIT 10360 Specifies the load address for the dtb image used by U-Boot. During FIT
10323 image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in 10361 image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in
10324 :ref:`ref-classes-kernel-fitimage` class to specify the load address to be 10362 :ref:`ref-classes-kernel-fit-image` class to specify the load address to be
10325 used in creating the dtb sections of Image Tree Source for the FIT image. 10363 used in creating the dtb sections of Image Tree Source for the FIT image.
10326 10364
10327 :term:`UBOOT_DTBO_LOADADDRESS` 10365 :term:`UBOOT_DTBO_LOADADDRESS`
10328 Specifies the load address for the dtbo image used by U-Boot. During FIT 10366 Specifies the load address for the dtbo image used by U-Boot. During FIT
10329 image creation, the :term:`UBOOT_DTBO_LOADADDRESS` variable is used in 10367 image creation, the :term:`UBOOT_DTBO_LOADADDRESS` variable is used in
10330 :ref:`ref-classes-kernel-fitimage` class to specify the load address to be 10368 :ref:`ref-classes-kernel-fit-image` class to specify the load address to be
10331 used in creating the dtbo sections of Image Tree Source for the FIT image. 10369 used in creating the dtbo sections of Image Tree Source for the FIT image.
10332 10370
10333 :term:`UBOOT_ENTRYPOINT` 10371 :term:`UBOOT_ENTRYPOINT`
@@ -10339,7 +10377,7 @@ system and gives an overview of their function and contents.
10339 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation. 10377 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation.
10340 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation. 10378 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation.
10341 10379
10342 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10380 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
10343 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`, 10381 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`,
10344 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10382 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
10345 classes. 10383 classes.
@@ -10616,7 +10654,7 @@ system and gives an overview of their function and contents.
10616 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation. 10654 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation.
10617 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation. 10655 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation.
10618 10656
10619 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10657 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
10620 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`, 10658 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`,
10621 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10659 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
10622 classes. 10660 classes.
@@ -10644,15 +10682,15 @@ system and gives an overview of their function and contents.
10644 10682
10645 :term:`UBOOT_MKIMAGE` 10683 :term:`UBOOT_MKIMAGE`
10646 Specifies the name of the mkimage command as used by the 10684 Specifies the name of the mkimage command as used by the
10647 :ref:`ref-classes-kernel-fitimage` class to assemble 10685 :ref:`ref-classes-kernel-fit-image` class to assemble
10648 the FIT image. This can be used to substitute an alternative command, wrapper 10686 the FIT image. This can be used to substitute an alternative command, wrapper
10649 script or function if desired. The default is "uboot-mkimage". 10687 script or function if desired. The default is "uboot-mkimage".
10650 10688
10651 :term:`UBOOT_MKIMAGE_DTCOPTS` 10689 :term:`UBOOT_MKIMAGE_DTCOPTS`
10652 Options for the device tree compiler passed to ``mkimage -D`` feature 10690 Options for the device tree compiler passed to ``mkimage -D`` feature
10653 while creating a FIT image with the :ref:`ref-classes-kernel-fitimage` 10691 while creating a FIT image with the :ref:`ref-classes-kernel-fit-image`
10654 class. If :term:`UBOOT_MKIMAGE_DTCOPTS` is not set then the 10692 class. If :term:`UBOOT_MKIMAGE_DTCOPTS` is not set then the
10655 :ref:`ref-classes-kernel-fitimage` class will not pass the ``-D`` option 10693 :ref:`ref-classes-kernel-fit-image` class will not pass the ``-D`` option
10656 to ``mkimage``. 10694 to ``mkimage``.
10657 10695
10658 This variable is also used by the :ref:`ref-classes-uboot-sign` class. 10696 This variable is also used by the :ref:`ref-classes-uboot-sign` class.
@@ -10663,42 +10701,42 @@ system and gives an overview of their function and contents.
10663 10701
10664 :term:`UBOOT_MKIMAGE_SIGN` 10702 :term:`UBOOT_MKIMAGE_SIGN`
10665 Specifies the name of the mkimage command as used by the 10703 Specifies the name of the mkimage command as used by the
10666 :ref:`ref-classes-kernel-fitimage` class to sign 10704 :ref:`ref-classes-kernel-fit-image` class to sign
10667 the FIT image after it has been assembled (if enabled). This can be used 10705 the FIT image after it has been assembled (if enabled). This can be used
10668 to substitute an alternative command, wrapper script or function if 10706 to substitute an alternative command, wrapper script or function if
10669 desired. The default is "${:term:`UBOOT_MKIMAGE`}". 10707 desired. The default is "${:term:`UBOOT_MKIMAGE`}".
10670 10708
10671 :term:`UBOOT_MKIMAGE_SIGN_ARGS` 10709 :term:`UBOOT_MKIMAGE_SIGN_ARGS`
10672 Optionally specifies additional arguments for the 10710 Optionally specifies additional arguments for the
10673 :ref:`ref-classes-kernel-fitimage` class to pass to the 10711 :ref:`ref-classes-kernel-fit-image` class to pass to the
10674 mkimage command when signing the FIT image. 10712 mkimage command when signing the FIT image.
10675 10713
10676 :term:`UBOOT_RD_ENTRYPOINT` 10714 :term:`UBOOT_RD_ENTRYPOINT`
10677 Specifies the entrypoint for the RAM disk image. During FIT image 10715 Specifies the entrypoint for the RAM disk image. During FIT image
10678 creation, the :term:`UBOOT_RD_ENTRYPOINT` variable is used in 10716 creation, the :term:`UBOOT_RD_ENTRYPOINT` variable is used in
10679 :ref:`ref-classes-kernel-fitimage` class to specify the entrypoint to be 10717 :ref:`ref-classes-kernel-fit-image` class to specify the entrypoint to be
10680 used in creating the Image Tree Source for the FIT image. 10718 used in creating the Image Tree Source for the FIT image.
10681 10719
10682 :term:`UBOOT_RD_LOADADDRESS` 10720 :term:`UBOOT_RD_LOADADDRESS`
10683 Specifies the load address for the RAM disk image. During FIT image 10721 Specifies the load address for the RAM disk image. During FIT image
10684 creation, the :term:`UBOOT_RD_LOADADDRESS` variable is used in 10722 creation, the :term:`UBOOT_RD_LOADADDRESS` variable is used in
10685 :ref:`ref-classes-kernel-fitimage` class to specify the load address to 10723 :ref:`ref-classes-kernel-fit-image` class to specify the load address to
10686 be used in creating the Image Tree Source for the FIT image. 10724 be used in creating the Image Tree Source for the FIT image.
10687 10725
10688 :term:`UBOOT_SIGN_ENABLE` 10726 :term:`UBOOT_SIGN_ENABLE`
10689 Enable signing of FIT image. The default value is "0". 10727 Enable signing of FIT image. The default value is "0".
10690 10728
10691 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10729 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
10692 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10730 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
10693 classes. 10731 classes.
10694 10732
10695 :term:`UBOOT_SIGN_KEYDIR` 10733 :term:`UBOOT_SIGN_KEYDIR`
10696 Location of the directory containing the RSA key and certificate used for 10734 Location of the directory containing the RSA key and certificate used for
10697 signing FIT image, used by the :ref:`ref-classes-kernel-fitimage` and 10735 signing FIT image, used by the :ref:`ref-classes-kernel-fit-image` and
10698 :ref:`ref-classes-uboot-sign` classes. 10736 :ref:`ref-classes-uboot-sign` classes.
10699 10737
10700 :term:`UBOOT_SIGN_KEYNAME` 10738 :term:`UBOOT_SIGN_KEYNAME`
10701 The name of keys used by the :ref:`ref-classes-kernel-fitimage` class 10739 The name of keys used by the :ref:`ref-classes-kernel-fit-image` class
10702 for signing U-Boot FIT image stored in the :term:`UBOOT_SIGN_KEYDIR` 10740 for signing U-Boot FIT image stored in the :term:`UBOOT_SIGN_KEYDIR`
10703 directory. If we have for example a ``dev.key`` key and a ``dev.crt`` 10741 directory. If we have for example a ``dev.key`` key and a ``dev.crt``
10704 certificate stored in the :term:`UBOOT_SIGN_KEYDIR` directory, you will 10742 certificate stored in the :term:`UBOOT_SIGN_KEYDIR` directory, you will
diff --git a/documentation/ref-manual/yocto-project-supported-features.rst b/documentation/ref-manual/yocto-project-supported-features.rst
index 345280d67d..283c79d4cc 100644
--- a/documentation/ref-manual/yocto-project-supported-features.rst
+++ b/documentation/ref-manual/yocto-project-supported-features.rst
@@ -92,10 +92,10 @@ Below is a list of primary tested features, their maintainer(s) and builder(s):
92 - meta-exein layer testing 92 - meta-exein layer testing
93 - TBD 93 - TBD
94 - meta-exein 94 - meta-exein
95 * - `meta-virtualization <https://git.yoctoproject.org/meta-virtualization/>`__ 95 * - `meta-webosose <https://github.com/webosose/meta-webosose>`__
96 - meta-virtualization layer testing 96 - meta-webosose layer testing
97 - TBD 97 - TBD
98 - meta-virt 98 - meta-webosose
99 * - :ref:`Multilib <dev-manual/libraries:Combining Multiple Versions of Library Files into One Image>` 99 * - :ref:`Multilib <dev-manual/libraries:Combining Multiple Versions of Library Files into One Image>`
100 - Multilib feature testing 100 - Multilib feature testing
101 - Collective effort 101 - Collective effort
@@ -114,7 +114,7 @@ Below is a list of primary tested features, their maintainer(s) and builder(s):
114 - pkgman-non-rpm (other builders use RPM by default) 114 - pkgman-non-rpm (other builders use RPM by default)
115 * - :ref:`Patchtest <contributor-guide/submit-changes:Validating Patches with Patchtest>` 115 * - :ref:`Patchtest <contributor-guide/submit-changes:Validating Patches with Patchtest>`
116 - Patchtest tool selftests 116 - Patchtest tool selftests
117 - TBD 117 - Collective effort
118 - patchtest-selftest 118 - patchtest-selftest
119 * - :wikipedia:`RISC-V (64-bit) <RISC-V>` 119 * - :wikipedia:`RISC-V (64-bit) <RISC-V>`
120 - RISC-V architecture testing (64-bit) 120 - RISC-V architecture testing (64-bit)
@@ -209,25 +209,25 @@ builder(s):
209 - Builder(s) 209 - Builder(s)
210 * - :wikipedia:`PowerPC (32-bit) <PowerPC>` 210 * - :wikipedia:`PowerPC (32-bit) <PowerPC>`
211 - PowerPC architecture testing (32-bit) 211 - PowerPC architecture testing (32-bit)
212 - TBD 212 - Peter Marko,
213 Adrian Freihofer
213 - qemuppc, 214 - qemuppc,
214 qemuppc-alt,
215 qemuppc-tc 215 qemuppc-tc
216 * - :oe_git:`meta-openembedded </meta-openembedded>` 216 * - :oe_git:`meta-openembedded </meta-openembedded>`
217 - meta-openembedded layer testing 217 - meta-openembedded layer testing
218 - TBD 218 - Collective effort / openembedded-devel mailing list <openebedded-devel@lists.openembedded.org>
219 - meta-oe 219 - meta-oe
220 * - `meta-mingw <https://git.yoctoproject.org/meta-mingw>`__ 220 * - `meta-mingw <https://git.yoctoproject.org/meta-mingw>`__
221 - mingw based SDKs testing 221 - mingw based SDKs testing
222 - TBD 222 - TBD
223 - meta-mingw 223 - meta-mingw
224 * - `meta-webosose <https://github.com/webosose/meta-webosose>`__ 224 * - `meta-virtualization <https://git.yoctoproject.org/meta-virtualization/>`__
225 - meta-webosose layer testing 225 - meta-virtualization layer testing
226 - TBD 226 - meta-virtualization mailing list <meta-virtualization@lists.yoctoproject.org>
227 - meta-webosose 227 - meta-virt
228 * - :wikipedia:`RISC-V (32-bit) <RISC-V>` 228 * - :wikipedia:`RISC-V (32-bit) <RISC-V>`
229 - RISC-V architecture testing (32-bit) 229 - RISC-V architecture testing (32-bit)
230 - Collective effort 230 - TBD
231 - qemuriscv32, 231 - qemuriscv32,
232 qemuriscv32, 232 qemuriscv32,
233 qemuriscv32-tc 233 qemuriscv32-tc
@@ -256,6 +256,10 @@ it is on a best effort only basis.
256 qemumips-alt, 256 qemumips-alt,
257 qemumips-tc, 257 qemumips-tc,
258 qemumips64-tc 258 qemumips64-tc
259 * - :wikipedia:`PowerPC (32-bit) <PowerPC>` Systemd
260 - PowerPC architecture testing (32-bit) with systemd
261 - No maintainers
262 - qemuppc-alt
259 * - :wikipedia:`PowerPC (64-bit) <PowerPC>` 263 * - :wikipedia:`PowerPC (64-bit) <PowerPC>`
260 - PowerPC architecture testing (64-bit) 264 - PowerPC architecture testing (64-bit)
261 - No maintainers 265 - No maintainers
diff --git a/documentation/standards.md b/documentation/standards.md
index 8300d813dc..801efe3457 100644
--- a/documentation/standards.md
+++ b/documentation/standards.md
@@ -126,7 +126,16 @@ that most themes only style these two admonitions.
126 126
127## ReStructured Text Syntax standards 127## ReStructured Text Syntax standards
128 128
129This section has not been filled yet 129### doc directive
130
131The [doc directive](https://www.sphinx-doc.org/en/master/usage/referencing.html#role-doc)
132allows to refer to another document within yocto-docs, like:
133
134 For more information, read :doc:`/bsp-guide/index`.
135
136Note that only "absolute" paths (starting with a '/') are allowed. The root
137directory of that path is documentation/, that is, :doc:`/bsp-guide/index`
138points at documentation/bsp-guide/index.rst.
130 139
131## Adding screenshots 140## Adding screenshots
132 141
diff --git a/documentation/test-manual/ptest.rst b/documentation/test-manual/ptest.rst
index 2c021af515..4e6be35df5 100644
--- a/documentation/test-manual/ptest.rst
+++ b/documentation/test-manual/ptest.rst
@@ -46,13 +46,19 @@ Running ptest
46============= 46=============
47 47
48The ``ptest-runner`` package installs a shell script that loops through 48The ``ptest-runner`` package installs a shell script that loops through
49all installed ptest test suites and runs them in sequence. Consequently, 49all installed ptest test suites and runs them in sequence.
50you might want to add this package to your image. 50
51During the execution ``ptest-runner`` keeps count of total and failed
52``ptests``. At end the execution summary is written to the console.
53If any of the ``run-ptest`` fails, ``ptest-runner`` returns '1'.
54
55Consequently, you might want to add ``ptest-runner`` to your image.
56
51 57
52Getting Your Package Ready 58Getting Your Package Ready
53========================== 59==========================
54 60
55In order to enable a recipe to run installed ptests on target hardware, 61In order to enable a recipe to run installed ``ptests`` on target hardware,
56you need to prepare the recipes that build the packages you want to 62you need to prepare the recipes that build the packages you want to
57test. Here is what you have to do for each recipe: 63test. Here is what you have to do for each recipe:
58 64
@@ -77,8 +83,9 @@ test. Here is what you have to do for each recipe:
77 83
78- *Create run-ptest:* This script starts your test. Locate the 84- *Create run-ptest:* This script starts your test. Locate the
79 script where you will refer to it using 85 script where you will refer to it using
80 :term:`SRC_URI`. Here is an 86 :term:`SRC_URI`. Be sure ``run-ptest`` exits with 0 to mark it
81 example that starts a test for ``dbus``:: 87 as successfully executed otherwise will be marked as fail.
88 Here is an example that starts a test for ``dbus``::
82 89
83 #!/bin/sh 90 #!/bin/sh
84 cd test 91 cd test
diff --git a/documentation/transitioning-to-a-custom-environment.rst b/documentation/transitioning-to-a-custom-environment.rst
index 6ff55e5619..a5f55c567a 100644
--- a/documentation/transitioning-to-a-custom-environment.rst
+++ b/documentation/transitioning-to-a-custom-environment.rst
@@ -8,8 +8,8 @@ Transitioning to a custom environment for systems development
8 8
9.. note:: 9.. note::
10 10
11 So you've finished the :doc:`brief-yoctoprojectqs/index` and 11 So you've finished the :doc:`/brief-yoctoprojectqs/index` and
12 glanced over the document :doc:`what-i-wish-id-known`, the latter contains 12 glanced over the document :doc:`/what-i-wish-id-known`, the latter contains
13 important information learned from other users. You're well prepared. But 13 important information learned from other users. You're well prepared. But
14 now, as you are starting your own project, it isn't exactly straightforward what 14 now, as you are starting your own project, it isn't exactly straightforward what
15 to do. And, the documentation is daunting. We've put together a few hints to 15 to do. And, the documentation is daunting. We've put together a few hints to
diff --git a/documentation/what-i-wish-id-known.rst b/documentation/what-i-wish-id-known.rst
index 836097910d..ddee6ad749 100644
--- a/documentation/what-i-wish-id-known.rst
+++ b/documentation/what-i-wish-id-known.rst
@@ -49,7 +49,7 @@ contact us with other suggestions.
49 their silicon. These layers have names such as "meta-intel" or "meta-ti". Try 49 their silicon. These layers have names such as "meta-intel" or "meta-ti". Try
50 not to build layers from scratch. If you do have custom silicon, use one of 50 not to build layers from scratch. If you do have custom silicon, use one of
51 these layers as a guide or template and familiarize yourself with the 51 these layers as a guide or template and familiarize yourself with the
52 :doc:`bsp-guide/index`. 52 :doc:`/bsp-guide/index`.
53 53
54#. **Do not put everything into one layer:** 54#. **Do not put everything into one layer:**
55 Use different layers to logically separate information in your build. As an 55 Use different layers to logically separate information in your build. As an
@@ -127,7 +127,7 @@ contact us with other suggestions.
127 You can build and run a specific task for a specific package (including 127 You can build and run a specific task for a specific package (including
128 devshell) or even a single recipe. When developers first start using the 128 devshell) or even a single recipe. When developers first start using the
129 Yocto Project, the instructions found in the 129 Yocto Project, the instructions found in the
130 :doc:`brief-yoctoprojectqs/index` show how to create an image 130 :doc:`/brief-yoctoprojectqs/index` show how to create an image
131 and then run or flash that image. However, you can actually build just a 131 and then run or flash that image. However, you can actually build just a
132 single recipe. Thus, if some dependency or recipe isn't working, you can just 132 single recipe. Thus, if some dependency or recipe isn't working, you can just
133 say "bitbake foo" where "foo" is the name for a specific recipe. As you 133 say "bitbake foo" where "foo" is the name for a specific recipe. As you
diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
index 56817450a6..483684ccdf 100644
--- a/meta-poky/conf/distro/poky.conf
+++ b/meta-poky/conf/distro/poky.conf
@@ -1,7 +1,7 @@
1DISTRO = "poky" 1DISTRO = "poky"
2DISTRO_NAME = "Poky (Yocto Project Reference Distro)" 2DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3DISTRO_VERSION = "5.2" 3DISTRO_VERSION = "5.2.99+snapshot-${METADATA_REVISION}"
4DISTRO_CODENAME = "walnascar" 4DISTRO_CODENAME = "whinlatter"
5SDK_VENDOR = "-pokysdk" 5SDK_VENDOR = "-pokysdk"
6SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}" 6SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
7SDK_VERSION[vardepvalue] = "${SDK_VERSION}" 7SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
diff --git a/meta-poky/conf/layer.conf b/meta-poky/conf/layer.conf
index 483046b6d3..9057670088 100644
--- a/meta-poky/conf/layer.conf
+++ b/meta-poky/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "yocto"
9BBFILE_PATTERN_yocto = "^${LAYERDIR}/" 9BBFILE_PATTERN_yocto = "^${LAYERDIR}/"
10BBFILE_PRIORITY_yocto = "5" 10BBFILE_PRIORITY_yocto = "5"
11 11
12LAYERSERIES_COMPAT_yocto = "walnascar" 12LAYERSERIES_COMPAT_yocto = "whinlatter"
13 13
14# This should only be incremented on significant changes that will 14# This should only be incremented on significant changes that will
15# cause compatibility issues with other layers 15# cause compatibility issues with other layers
diff --git a/meta-poky/conf/templates/default/local.conf.sample b/meta-poky/conf/templates/default/local.conf.sample
index 0a33288cf0..3d830d5b76 100644
--- a/meta-poky/conf/templates/default/local.conf.sample
+++ b/meta-poky/conf/templates/default/local.conf.sample
@@ -21,9 +21,7 @@
21# 21#
22#MACHINE ?= "qemuarm" 22#MACHINE ?= "qemuarm"
23#MACHINE ?= "qemuarm64" 23#MACHINE ?= "qemuarm64"
24#MACHINE ?= "qemumips" 24#MACHINE ?= "qemuriscv64"
25#MACHINE ?= "qemumips64"
26#MACHINE ?= "qemuppc"
27#MACHINE ?= "qemux86" 25#MACHINE ?= "qemux86"
28#MACHINE ?= "qemux86-64" 26#MACHINE ?= "qemux86-64"
29# 27#
diff --git a/meta/lib/oeqa/selftest/cases/pokybleeding.py b/meta-poky/lib/oeqa/selftest/cases/pokybleeding.py
index d0940d680d..d0940d680d 100644
--- a/meta/lib/oeqa/selftest/cases/pokybleeding.py
+++ b/meta-poky/lib/oeqa/selftest/cases/pokybleeding.py
diff --git a/meta-poky/recipes-core/tiny-init/tiny-init.bb b/meta-poky/recipes-core/tiny-init/tiny-init.bb
index 586596259b..3a774fecc4 100644
--- a/meta-poky/recipes-core/tiny-init/tiny-init.bb
+++ b/meta-poky/recipes-core/tiny-init/tiny-init.bb
@@ -11,8 +11,7 @@ SRC_URI = "file://init \
11 file://rc.local.sample \ 11 file://rc.local.sample \
12 " 12 "
13 13
14S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
15UNPACKDIR = "${S}"
16 15
17do_configure() { 16do_configure() {
18 : 17 :
diff --git a/meta-selftest/conf/layer.conf b/meta-selftest/conf/layer.conf
index c2767eb605..ecc45ded8c 100644
--- a/meta-selftest/conf/layer.conf
+++ b/meta-selftest/conf/layer.conf
@@ -11,4 +11,4 @@ BBFILE_PRIORITY_selftest = "5"
11 11
12addpylib ${LAYERDIR}/lib oeqa 12addpylib ${LAYERDIR}/lib oeqa
13 13
14LAYERSERIES_COMPAT_selftest = "walnascar" 14LAYERSERIES_COMPAT_selftest = "whinlatter"
diff --git a/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb
index ca2141c972..82019e2224 100644
--- a/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb
+++ b/meta-selftest/recipes-devtools/mtd/mtd-utils-selftest_git.bb
@@ -18,8 +18,6 @@ SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
18 file://0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch \ 18 file://0001-tests-Remove-unused-linux-fs.h-header-from-includes.patch \
19 " 19 "
20 20
21S = "${WORKDIR}/git"
22
23# xattr support creates an additional compile-time dependency on acl because 21# xattr support creates an additional compile-time dependency on acl because
24# the sys/acl.h header is needed. libacl is not needed and thus enabling xattr 22# the sys/acl.h header is needed. libacl is not needed and thus enabling xattr
25# regardless whether acl is enabled or disabled in the distro should be okay. 23# regardless whether acl is enabled or disabled in the distro should be okay.
diff --git a/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb b/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb
index 50246a8a11..12afec8b1b 100644
--- a/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb
+++ b/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://git.yoctoproject.org/guessing-game.git;protocol=https;branch=ma
12PV = "0.1.0" 12PV = "0.1.0"
13SRCREV = "469c9e2230ca4fa9e391c94be6e697733e769500" 13SRCREV = "469c9e2230ca4fa9e391c94be6e697733e769500"
14 14
15S = "${WORKDIR}/git"
16
17inherit python_maturin cargo-update-recipe-crates 15inherit python_maturin cargo-update-recipe-crates
18 16
19require ${BPN}-crates.inc 17require ${BPN}-crates.inc
diff --git a/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded b/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded
index f60a62718d..194a8efe83 100644
--- a/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded
+++ b/meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded
@@ -12,8 +12,6 @@ SRC_URI = "git://git.yoctoproject.org/guessing-game.git;protocol=https;branch=ma
12PV = "0.2.0" 12PV = "0.2.0"
13SRCREV = "40cf004c2772ffa20ea803fa3be1528a75be3e98" 13SRCREV = "40cf004c2772ffa20ea803fa3be1528a75be3e98"
14 14
15S = "${WORKDIR}/git"
16
17inherit python_maturin cargo-update-recipe-crates 15inherit python_maturin cargo-update-recipe-crates
18 16
19require ${BPN}-crates.inc 17require ${BPN}-crates.inc
diff --git a/meta-selftest/recipes-devtools/rust/rust-c-lib-example-bin_git.bb b/meta-selftest/recipes-devtools/rust/rust-c-lib-example-bin_git.bb
index 47d878597a..890dbbbe8d 100644
--- a/meta-selftest/recipes-devtools/rust/rust-c-lib-example-bin_git.bb
+++ b/meta-selftest/recipes-devtools/rust/rust-c-lib-example-bin_git.bb
@@ -8,7 +8,6 @@ SRC_URI = " \
8" 8"
9 9
10SRCREV = "fc53c457f69aa5221ec1f8619a007e8150db5e60" 10SRCREV = "fc53c457f69aa5221ec1f8619a007e8150db5e60"
11S = "${WORKDIR}/git"
12 11
13DEPENDS = "rust-c-lib-example" 12DEPENDS = "rust-c-lib-example"
14 13
diff --git a/meta-selftest/recipes-devtools/rust/rust-c-lib-example_git.bb b/meta-selftest/recipes-devtools/rust/rust-c-lib-example_git.bb
index 6e7c250b92..0217d1718f 100644
--- a/meta-selftest/recipes-devtools/rust/rust-c-lib-example_git.bb
+++ b/meta-selftest/recipes-devtools/rust/rust-c-lib-example_git.bb
@@ -8,7 +8,6 @@ SRC_URI = " \
8" 8"
9 9
10SRCREV = "fc53c457f69aa5221ec1f8619a007e8150db5e60" 10SRCREV = "fc53c457f69aa5221ec1f8619a007e8150db5e60"
11S = "${WORKDIR}/git"
12 11
13inherit cargo_c 12inherit cargo_c
14 13
diff --git a/meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb b/meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb
index 9a136f2978..f6555a31dd 100644
--- a/meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb
+++ b/meta-selftest/recipes-extended/hello-rs/hello-rs_0.1.0.bb
@@ -12,7 +12,7 @@ SRCREV = "d3d096eda182644868f8e7458dcfa538ff637db3"
12SRCREV_FORMAT .= "_hello-lib" 12SRCREV_FORMAT .= "_hello-lib"
13SRCREV_hello-lib = "59c84574e844617043cf337bc8fa537cf87ad8ae" 13SRCREV_hello-lib = "59c84574e844617043cf337bc8fa537cf87ad8ae"
14 14
15S = "${WORKDIR}/rust" 15S = "${UNPACKDIR}/rust"
16 16
17inherit cargo cargo-update-recipe-crates ptest-cargo 17inherit cargo cargo-update-recipe-crates ptest-cargo
18 18
diff --git a/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
index 819f65409d..ea9a78dd1b 100644
--- a/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
+++ b/meta-selftest/recipes-extended/sysdig/sysdig-selftest_0.28.0.bb
@@ -23,7 +23,7 @@ JIT:powerpc64 = ""
23RDEPENDS:${PN} = "bash" 23RDEPENDS:${PN} = "bash"
24 24
25SRC_URI = "git://github.com/draios/sysdig.git;branch=dev;protocol=https;name=sysdig \ 25SRC_URI = "git://github.com/draios/sysdig.git;branch=dev;protocol=https;name=sysdig \
26 git://github.com/falcosecurity/libs;protocol=https;branch=master;name=falco;subdir=git/falcosecurity-libs \ 26 git://github.com/falcosecurity/libs;protocol=https;branch=master;name=falco;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/falcosecurity-libs \
27 file://0055-Add-cstdint-for-uintXX_t-types.patch;patchdir=./falcosecurity-libs \ 27 file://0055-Add-cstdint-for-uintXX_t-types.patch;patchdir=./falcosecurity-libs \
28 file://0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch \ 28 file://0099-cmake-Pass-PROBE_NAME-via-CFLAGS.patch \
29 " 29 "
@@ -32,8 +32,6 @@ SRCREV_falco = "caa0e4d0044fdaaebab086592a97f0c7f32aeaa9"
32 32
33SRCREV_FORMAT = "sysdig_falco" 33SRCREV_FORMAT = "sysdig_falco"
34 34
35S = "${WORKDIR}/git"
36
37EXTRA_OECMAKE = "\ 35EXTRA_OECMAKE = "\
38 -DBUILD_DRIVER=OFF \ 36 -DBUILD_DRIVER=OFF \
39 -DMINIMAL_BUILD=ON \ 37 -DMINIMAL_BUILD=ON \
diff --git a/meta-selftest/recipes-test/cpp/cpp-example.inc b/meta-selftest/recipes-test/cpp/cpp-example.inc
index 41aaa7219a..76ff64e87f 100644
--- a/meta-selftest/recipes-test/cpp/cpp-example.inc
+++ b/meta-selftest/recipes-test/cpp/cpp-example.inc
@@ -19,7 +19,6 @@ SRC_URI = "\
19 file://run-ptest \ 19 file://run-ptest \
20" 20"
21 21
22S = "${WORKDIR}/sources" 22S = "${UNPACKDIR}"
23UNPACKDIR = "${S}"
24 23
25inherit ptest 24inherit ptest
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb b/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb
index 6a3d58c884..c7740eb118 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb
@@ -4,6 +4,6 @@ INHIBIT_DEFAULT_DEPS = "1"
4SRC_URI = "file://${BPN}.tar.gz \ 4SRC_URI = "file://${BPN}.tar.gz \
5 file://${BPN}.patch" 5 file://${BPN}.patch"
6 6
7S = "${WORKDIR}/${BPN}" 7S = "${UNPACKDIR}/${BPN}"
8 8
9EXCLUDE_FROM_WORLD = "1" 9EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-local_6.03.bb b/meta-selftest/recipes-test/devtool/devtool-test-local_6.03.bb
index d0fd697978..03e082e83f 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-local_6.03.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-local_6.03.bb
@@ -12,7 +12,7 @@ SRC_URI:append:class-native = " file://file3"
12SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13" 12SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13"
13SRC_URI[sha256sum] = "26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e" 13SRC_URI[sha256sum] = "26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e"
14 14
15S = "${WORKDIR}/syslinux-${PV}" 15S = "${UNPACKDIR}/syslinux-${PV}"
16 16
17EXCLUDE_FROM_WORLD = "1" 17EXCLUDE_FROM_WORLD = "1"
18BBCLASSEXTEND = "native" 18BBCLASSEXTEND = "native"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-localonly.bb b/meta-selftest/recipes-test/devtool/devtool-test-localonly.bb
index 446c51f09b..54463fed98 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-localonly.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-localonly.bb
@@ -6,8 +6,7 @@ SRC_URI = "file://file1 \
6 6
7SRC_URI:append:class-native = " file://file3" 7SRC_URI:append:class-native = " file://file3"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12EXCLUDE_FROM_WORLD = "1" 11EXCLUDE_FROM_WORLD = "1"
13BBCLASSEXTEND = "native" 12BBCLASSEXTEND = "native"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb b/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb
index 3ec22cae7f..3653403a2e 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb
@@ -4,6 +4,6 @@ INHIBIT_DEFAULT_DEPS = "1"
4SRC_URI = "file://${BPN}.tar.gz \ 4SRC_URI = "file://${BPN}.tar.gz \
5 file://0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch" 5 file://0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch"
6 6
7S = "${WORKDIR}/${BPN}" 7S = "${UNPACKDIR}/${BPN}"
8 8
9EXCLUDE_FROM_WORLD = "1" 9EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-patch-gz.bb b/meta-selftest/recipes-test/devtool/devtool-test-patch-gz.bb
index e25b3d9747..f6960320db 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-patch-gz.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-patch-gz.bb
@@ -8,7 +8,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/xrestop/xrestop-0.4.tar.gz
8 " 8 "
9UPSTREAM_VERSION_UNKNOWN = "1" 9UPSTREAM_VERSION_UNKNOWN = "1"
10 10
11S = "${WORKDIR}/xrestop-0.4" 11S = "${UNPACKDIR}/xrestop-0.4"
12 12
13SRC_URI[md5sum] = "d8a54596cbaf037e62b80c4585a3ca9b" 13SRC_URI[md5sum] = "d8a54596cbaf037e62b80c4585a3ca9b"
14SRC_URI[sha256sum] = "67c2fc94a7ecedbaae0d1837e82e93d1d98f4a6d759828860e552119af3ce257" 14SRC_URI[sha256sum] = "67c2fc94a7ecedbaae0d1837e82e93d1d98f4a6d759828860e552119af3ce257"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-reset-re++.bb b/meta-selftest/recipes-test/devtool/devtool-test-reset-re++.bb
index 35672a5265..0146be4c52 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-reset-re++.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-reset-re++.bb
@@ -3,7 +3,6 @@ INHIBIT_DEFAULT_DEPS = "1"
3 3
4SRC_URI = "file://file1" 4SRC_URI = "file://file1"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9EXCLUDE_FROM_WORLD = "1" 8EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-subdir.bb b/meta-selftest/recipes-test/devtool/devtool-test-subdir.bb
index 3f6956524b..966142431b 100644
--- a/meta-selftest/recipes-test/devtool/devtool-test-subdir.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-test-subdir.bb
@@ -4,6 +4,6 @@ INHIBIT_DEFAULT_DEPS = "1"
4SRC_URI = "file://devtool-test-subdir.tar.gz \ 4SRC_URI = "file://devtool-test-subdir.tar.gz \
5 file://testfile;subdir=${BPN}" 5 file://testfile;subdir=${BPN}"
6 6
7S = "${WORKDIR}/${BPN}" 7S = "${UNPACKDIR}/${BPN}"
8 8
9EXCLUDE_FROM_WORLD = "1" 9EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
index fee5bee739..254ea45708 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
@@ -14,7 +14,7 @@ SRC_URI[sha256sum] = "681bcca9784bf3cb2207e68236d1f68e2aa7b80f999b5750dc77dcd756
14 14
15PR = "r5" 15PR = "r5"
16 16
17S = "${WORKDIR}/pv-${PV}" 17S = "${UNPACKDIR}/pv-${PV}"
18 18
19EXCLUDE_FROM_WORLD = "1" 19EXCLUDE_FROM_WORLD = "1"
20 20
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
index d75df0c8c7..f80744e14b 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
@@ -11,7 +11,7 @@ RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
11 11
12SRC_URI[sha256sum] = "9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07fd82c3" 12SRC_URI[sha256sum] = "9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07fd82c3"
13 13
14S = "${WORKDIR}/pv-${PV}" 14S = "${UNPACKDIR}/pv-${PV}"
15 15
16EXCLUDE_FROM_WORLD = "1" 16EXCLUDE_FROM_WORLD = "1"
17 17
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
index 2558a22ce5..66d66e95e2 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://git.yoctoproject.org/dbus-wait;branch=master"
15UPSTREAM_CHECK_COMMITS = "1" 15UPSTREAM_CHECK_COMMITS = "1"
16RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" 16RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
17 17
18S = "${WORKDIR}/git"
19
20EXCLUDE_FROM_WORLD = "1" 18EXCLUDE_FROM_WORLD = "1"
21 19
22inherit autotools pkgconfig 20inherit autotools pkgconfig
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
index eaa8bd898d..d3256ef5df 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb.upgraded
@@ -14,8 +14,6 @@ SRC_URI = "git://git.yoctoproject.org/dbus-wait;branch=master"
14UPSTREAM_CHECK_COMMITS = "1" 14UPSTREAM_CHECK_COMMITS = "1"
15RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" 15RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
16 16
17S = "${WORKDIR}/git"
18
19EXCLUDE_FROM_WORLD = "1" 17EXCLUDE_FROM_WORLD = "1"
20 18
21inherit autotools pkgconfig 19inherit autotools pkgconfig
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb
index 69c0d351ec..0501e2025f 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb
@@ -8,7 +8,7 @@ RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
8 8
9SRC_URI[md5sum] = "9365d86bd884222b4bf1039b5a9ed1bd" 9SRC_URI[md5sum] = "9365d86bd884222b4bf1039b5a9ed1bd"
10 10
11S = "${WORKDIR}/pv-${PV}" 11S = "${UNPACKDIR}/pv-${PV}"
12 12
13EXCLUDE_FROM_WORLD = "1" 13EXCLUDE_FROM_WORLD = "1"
14 14
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb.upgraded
index 3ce7e85e10..2ba7c8213e 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb.upgraded
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test3_1.5.3.bb.upgraded
@@ -7,7 +7,7 @@ SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz"
7UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml" 7UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
8RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature" 8RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
9 9
10S = "${WORKDIR}/pv-${PV}" 10S = "${UNPACKDIR}/pv-${PV}"
11 11
12EXCLUDE_FROM_WORLD = "1" 12EXCLUDE_FROM_WORLD = "1"
13 13
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb
index 9abf80e6ed..71c03653f7 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb
@@ -14,7 +14,7 @@ SRC_URI[sha512sum] = "32efe7071a363f547afc74e96774f711795edda1d2702823a347d0f995
14 14
15PR = "r5" 15PR = "r5"
16 16
17S = "${WORKDIR}/pv-${PV}" 17S = "${UNPACKDIR}/pv-${PV}"
18 18
19EXCLUDE_FROM_WORLD = "1" 19EXCLUDE_FROM_WORLD = "1"
20 20
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb.upgraded
index cd2a0842f4..0bc9f71da6 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb.upgraded
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test4_1.5.3.bb.upgraded
@@ -11,7 +11,7 @@ SRC_URI[sha256sum] = "9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07
11SRC_URI[sha384sum] = "218c8d2d097aeba5310be759bc20573f18ffa0b11701eac6dd2e7e14ddf13c6e0e094ca7ca026eaa05ef92a056402e36" 11SRC_URI[sha384sum] = "218c8d2d097aeba5310be759bc20573f18ffa0b11701eac6dd2e7e14ddf13c6e0e094ca7ca026eaa05ef92a056402e36"
12SRC_URI[sha512sum] = "1cf9d7376fceefcd594d0a8b591afc8e11ce89f7210d10ad74438974ecebe9cc5d9ec4db9cc79e0566bfd2b0278c0cc263c07547803e7536432cd1ffd32d8a45" 12SRC_URI[sha512sum] = "1cf9d7376fceefcd594d0a8b591afc8e11ce89f7210d10ad74438974ecebe9cc5d9ec4db9cc79e0566bfd2b0278c0cc263c07547803e7536432cd1ffd32d8a45"
13 13
14S = "${WORKDIR}/pv-${PV}" 14S = "${UNPACKDIR}/pv-${PV}"
15 15
16EXCLUDE_FROM_WORLD = "1" 16EXCLUDE_FROM_WORLD = "1"
17 17
diff --git a/meta-selftest/recipes-test/fortran/fortran-helloworld.bb b/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
index 11928dc95a..240ed473cc 100644
--- a/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
+++ b/meta-selftest/recipes-test/fortran/fortran-helloworld.bb
@@ -6,8 +6,7 @@ DEPENDS = "libgfortran"
6 6
7SRC_URI = "file://hello.f95" 7SRC_URI = "file://hello.f95"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12# These set flags that Fortran doesn't support 11# These set flags that Fortran doesn't support
13SECURITY_CFLAGS = "" 12SECURITY_CFLAGS = ""
diff --git a/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb b/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
index 90d9b66b2c..1c0886dcbe 100644
--- a/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
+++ b/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
@@ -10,8 +10,6 @@ UPSTREAM_VERSION_UNKNOWN = "1"
10SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master" 10SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master"
11SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee" 11SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee"
12 12
13S = "${WORKDIR}/git"
14
15do_test_git_as_user() { 13do_test_git_as_user() {
16 cd ${S} 14 cd ${S}
17 git status 15 git status
diff --git a/meta-selftest/recipes-test/gitrepotest/gitrepotest.bb b/meta-selftest/recipes-test/gitrepotest/gitrepotest.bb
index c4806793ee..756c01cb09 100644
--- a/meta-selftest/recipes-test/gitrepotest/gitrepotest.bb
+++ b/meta-selftest/recipes-test/gitrepotest/gitrepotest.bb
@@ -13,4 +13,3 @@ SRC_URI = "git://git.yoctoproject.org/git/matchbox-panel-2;branch=master;protoco
13 13
14SRCREV = "f82ca3f42510fb3ef10f598b393eb373a2c34ca7" 14SRCREV = "f82ca3f42510fb3ef10f598b393eb373a2c34ca7"
15 15
16S = "${WORKDIR}/git"
diff --git a/meta-selftest/recipes-test/gitunpackoffline/gitunpackoffline.inc b/meta-selftest/recipes-test/gitunpackoffline/gitunpackoffline.inc
index 602e895199..59b383800c 100644
--- a/meta-selftest/recipes-test/gitunpackoffline/gitunpackoffline.inc
+++ b/meta-selftest/recipes-test/gitunpackoffline/gitunpackoffline.inc
@@ -13,4 +13,3 @@ SRC_URI:append:gitunpack-enable-recipe = ";tag=${TAGVALUE}"
13SRCREV = "f82ca3f42510fb3ef10f598b393eb373a2c34ca7" 13SRCREV = "f82ca3f42510fb3ef10f598b393eb373a2c34ca7"
14SRCREV:gitunpack-enable-recipe = "" 14SRCREV:gitunpack-enable-recipe = ""
15 15
16S = "${WORKDIR}/git"
diff --git a/meta-selftest/recipes-test/images/wic-image-minimal.bb b/meta-selftest/recipes-test/images/wic-image-minimal.bb
index 84d3721885..89843d9b3c 100644
--- a/meta-selftest/recipes-test/images/wic-image-minimal.bb
+++ b/meta-selftest/recipes-test/images/wic-image-minimal.bb
@@ -16,3 +16,5 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
16IMAGE_ROOTFS_EXTRA_SPACE = "2000" 16IMAGE_ROOTFS_EXTRA_SPACE = "2000"
17 17
18inherit image 18inherit image
19
20include test_recipe.inc
diff --git a/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb b/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
index 8b314d396e..dfaf67c938 100644
--- a/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
+++ b/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
@@ -6,8 +6,7 @@ LICENSE = "HPND"
6LIC_FILES_CHKSUM = "file://${UNPACKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e" 6LIC_FILES_CHKSUM = "file://${UNPACKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
7DEPENDS += "zlib" 7DEPENDS += "zlib"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
13 12
diff --git a/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb b/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
index a0eeb4f223..ca22e1e19c 100644
--- a/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
+++ b/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT"
5 5
6DEPENDS += "coreutils-native" 6DEPENDS += "coreutils-native"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11inherit useradd allarch 10inherit useradd allarch
12 11
diff --git a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.20.2.bb b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.20.2.bb
index d4232b72ee..e183d2d4e5 100644
--- a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.20.2.bb
+++ b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.20.2.bb
@@ -21,7 +21,7 @@ UPSTREAM_CHECK_URI = "${GNU_MIRROR}/ed/"
21 21
22SRC_URI[sha256sum] = "65fec7318f48c2ca17f334ac0f4703defe62037bb13cc23920de077b5fa24523" 22SRC_URI[sha256sum] = "65fec7318f48c2ca17f334ac0f4703defe62037bb13cc23920de077b5fa24523"
23 23
24S = "${WORKDIR}/ed-${PV}" 24S = "${UNPACKDIR}/ed-${PV}"
25 25
26EXTRA_OEMAKE = "-e MAKEFLAGS=" 26EXTRA_OEMAKE = "-e MAKEFLAGS="
27 27
diff --git a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.21.1.bb b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.21.1.bb
index acd1ce5907..6b8ce6e23b 100644
--- a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.21.1.bb
+++ b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.21.1.bb
@@ -22,7 +22,7 @@ UPSTREAM_CHECK_URI = "${GNU_MIRROR}/ed/"
22 22
23SRC_URI[sha256sum] = "d6d0c7192b02b0519c902a93719053e865ade5a784a3b327d93d888457b23c4b" 23SRC_URI[sha256sum] = "d6d0c7192b02b0519c902a93719053e865ade5a784a3b327d93d888457b23c4b"
24 24
25S = "${WORKDIR}/ed-${PV}" 25S = "${UNPACKDIR}/ed-${PV}"
26 26
27EXTRA_OEMAKE = "-e MAKEFLAGS=" 27EXTRA_OEMAKE = "-e MAKEFLAGS="
28 28
diff --git a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
index 64fea8ed95..8b2aa6c737 100644
--- a/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
+++ b/meta-selftest/recipes-test/selftest-hardlink/selftest-hardlink.bb
@@ -6,8 +6,7 @@ SRC_URI = "file://hello.c \
6 file://gdb.sh \ 6 file://gdb.sh \
7" 7"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12do_compile () { 11do_compile () {
13 ${CC} hello.c -o hello1 ${CFLAGS} ${LDFLAGS} 12 ${CC} hello.c -o hello1 ${CFLAGS} ${LDFLAGS}
diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
index 2dc352d479..0ffe7308ba 100644
--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
5 5
6SRC_URI = "file://helloworld.c" 6SRC_URI = "file://helloworld.c"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_compile() { 10do_compile() {
12 ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld 11 ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld
diff --git a/meta-selftest/recipes-test/selftest-users/acreategroup.bb b/meta-selftest/recipes-test/selftest-users/acreategroup.bb
index a970c41134..07771ecf40 100644
--- a/meta-selftest/recipes-test/selftest-users/acreategroup.bb
+++ b/meta-selftest/recipes-test/selftest-users/acreategroup.bb
@@ -3,8 +3,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
3 3
4LICENSE = "MIT" 4LICENSE = "MIT"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9EXCLUDE_FROM_WORLD = "1" 8EXCLUDE_FROM_WORLD = "1"
10 9
diff --git a/meta-selftest/recipes-test/selftest-users/bcreategroup.bb b/meta-selftest/recipes-test/selftest-users/bcreategroup.bb
index 08106dab7c..0071fcc331 100644
--- a/meta-selftest/recipes-test/selftest-users/bcreategroup.bb
+++ b/meta-selftest/recipes-test/selftest-users/bcreategroup.bb
@@ -7,8 +7,7 @@ LICENSE = "MIT"
7 7
8USERADD_DEPENDS = "acreategroup ccreategroup" 8USERADD_DEPENDS = "acreategroup ccreategroup"
9 9
10S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 11
13EXCLUDE_FROM_WORLD = "1" 12EXCLUDE_FROM_WORLD = "1"
14 13
diff --git a/meta-selftest/recipes-test/selftest-users/ccreategroup.bb b/meta-selftest/recipes-test/selftest-users/ccreategroup.bb
index c82ced8481..1685916630 100644
--- a/meta-selftest/recipes-test/selftest-users/ccreategroup.bb
+++ b/meta-selftest/recipes-test/selftest-users/ccreategroup.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT"
5 5
6USERADD_DEPENDS = "acreategroup" 6USERADD_DEPENDS = "acreategroup"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11EXCLUDE_FROM_WORLD = "1" 10EXCLUDE_FROM_WORLD = "1"
12 11
diff --git a/meta-selftest/recipes-test/selftest-users/creategroup1.bb b/meta-selftest/recipes-test/selftest-users/creategroup1.bb
index 4ab278f589..28651d3ed7 100644
--- a/meta-selftest/recipes-test/selftest-users/creategroup1.bb
+++ b/meta-selftest/recipes-test/selftest-users/creategroup1.bb
@@ -3,8 +3,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
3 3
4LICENSE = "MIT" 4LICENSE = "MIT"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9inherit useradd allarch 8inherit useradd allarch
10 9
diff --git a/meta-selftest/recipes-test/selftest-users/creategroup2.bb b/meta-selftest/recipes-test/selftest-users/creategroup2.bb
index 179aba9bfc..2840c92106 100644
--- a/meta-selftest/recipes-test/selftest-users/creategroup2.bb
+++ b/meta-selftest/recipes-test/selftest-users/creategroup2.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT"
5 5
6USERADD_DEPENDS = "creategroup1" 6USERADD_DEPENDS = "creategroup1"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11inherit useradd allarch 10inherit useradd allarch
12 11
diff --git a/meta-selftest/recipes-test/selftest-users/dcreategroup.bb b/meta-selftest/recipes-test/selftest-users/dcreategroup.bb
index 0030e81ee0..eba91fe63d 100644
--- a/meta-selftest/recipes-test/selftest-users/dcreategroup.bb
+++ b/meta-selftest/recipes-test/selftest-users/dcreategroup.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT"
5 5
6USERADD_DEPENDS = "bcreategroup" 6USERADD_DEPENDS = "bcreategroup"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11EXCLUDE_FROM_WORLD = "1" 10EXCLUDE_FROM_WORLD = "1"
12 11
diff --git a/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb
index 2863541010..7ba7ec85fe 100644
--- a/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb
+++ b/meta-selftest/recipes-test/selftest-users/useraddbadtask.bb
@@ -5,8 +5,7 @@ LICENSE = "MIT"
5 5
6DEPENDS:append = "coreutils-native" 6DEPENDS:append = "coreutils-native"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11inherit useradd allarch 10inherit useradd allarch
12 11
diff --git a/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb b/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb
index db674d0efc..17ab7af0ab 100644
--- a/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb
+++ b/meta-selftest/recipes-test/testrpm/testrpm_0.0.1.bb
@@ -6,8 +6,7 @@ LICENSE = "MIT"
6SRC_URI = "file://testfile.txt" 6SRC_URI = "file://testfile.txt"
7INHIBIT_DEFAULT_DEPS = "1" 7INHIBIT_DEFAULT_DEPS = "1"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12do_compile(){ 11do_compile(){
13 echo "testdata" > ${B}/"file with [brackets].txt" 12 echo "testdata" > ${B}/"file with [brackets].txt"
diff --git a/meta-skeleton/conf/layer.conf b/meta-skeleton/conf/layer.conf
index ad62721e41..43ef90a9f0 100644
--- a/meta-skeleton/conf/layer.conf
+++ b/meta-skeleton/conf/layer.conf
@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
14 14
15LAYERDEPENDS_skeleton = "core" 15LAYERDEPENDS_skeleton = "core"
16 16
17LAYERSERIES_COMPAT_skeleton = "walnascar" 17LAYERSERIES_COMPAT_skeleton = "whinlatter"
diff --git a/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb b/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
index 79f2e8a092..e5f0ca1023 100644
--- a/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
+++ b/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
@@ -10,8 +10,7 @@ SRC_URI = "file://Makefile \
10 file://COPYING \ 10 file://COPYING \
11 " 11 "
12 12
13S = "${WORKDIR}/sources" 13S = "${UNPACKDIR}"
14UNPACKDIR = "${S}"
15 14
16# The inherit of module.bbclass will automatically name module packages with 15# The inherit of module.bbclass will automatically name module packages with
17# "kernel-module-" prefix as required by the oe-core build environment. 16# "kernel-module-" prefix as required by the oe-core build environment.
diff --git a/meta-skeleton/recipes-skeleton/hello-single/hello_1.0.bb b/meta-skeleton/recipes-skeleton/hello-single/hello_1.0.bb
index 8be7980919..cb07b13974 100644
--- a/meta-skeleton/recipes-skeleton/hello-single/hello_1.0.bb
+++ b/meta-skeleton/recipes-skeleton/hello-single/hello_1.0.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
5 5
6SRC_URI = "file://helloworld.c" 6SRC_URI = "file://helloworld.c"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_compile() { 10do_compile() {
12 ${CC} ${LDFLAGS} helloworld.c -o helloworld 11 ${CC} ${LDFLAGS} helloworld.c -o helloworld
diff --git a/meta-skeleton/recipes-skeleton/service/service_0.1.bb b/meta-skeleton/recipes-skeleton/service/service_0.1.bb
index 54b834d45f..f249579310 100644
--- a/meta-skeleton/recipes-skeleton/service/service_0.1.bb
+++ b/meta-skeleton/recipes-skeleton/service/service_0.1.bb
@@ -9,8 +9,7 @@ SRC_URI = "file://skeleton \
9 file://COPYRIGHT \ 9 file://COPYRIGHT \
10 " 10 "
11 11
12S = "${WORKDIR}/sources" 12S = "${UNPACKDIR}"
13UNPACKDIR = "${S}"
14 13
15do_compile () { 14do_compile () {
16 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/skeleton_test.c -o ${B}/skeleton-test 15 ${CC} ${CFLAGS} ${LDFLAGS} ${S}/skeleton_test.c -o ${B}/skeleton-test
diff --git a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
index b0d96e7f71..5783d9e245 100644
--- a/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
+++ b/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
@@ -9,8 +9,7 @@ SRC_URI = "file://file1 \
9 file://file3 \ 9 file://file3 \
10 file://file4" 10 file://file4"
11 11
12S = "${WORKDIR}/sources" 12S = "${UNPACKDIR}"
13UNPACKDIR = "${S}"
14 13
15PACKAGES =+ "${PN}-user3" 14PACKAGES =+ "${PN}-user3"
16 15
diff --git a/meta-yocto-bsp/conf/layer.conf b/meta-yocto-bsp/conf/layer.conf
index f229cdec5e..cb36037aa2 100644
--- a/meta-yocto-bsp/conf/layer.conf
+++ b/meta-yocto-bsp/conf/layer.conf
@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "yoctobsp"
9BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/" 9BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
10BBFILE_PRIORITY_yoctobsp = "5" 10BBFILE_PRIORITY_yoctobsp = "5"
11LAYERVERSION_yoctobsp = "4" 11LAYERVERSION_yoctobsp = "4"
12LAYERSERIES_COMPAT_yoctobsp = "walnascar" 12LAYERSERIES_COMPAT_yoctobsp = "whinlatter"
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass
index e55a538e36..b86f50e283 100644
--- a/meta/classes-global/base.bbclass
+++ b/meta/classes-global/base.bbclass
@@ -183,23 +183,16 @@ python base_do_unpack() {
183 183
184 basedir = None 184 basedir = None
185 unpackdir = d.getVar('UNPACKDIR') 185 unpackdir = d.getVar('UNPACKDIR')
186 workdir = d.getVar('WORKDIR') 186 if sourcedir.startswith(unpackdir):
187 if sourcedir.startswith(workdir) and not sourcedir.startswith(unpackdir): 187 basedir = sourcedir.replace(unpackdir, '').strip("/").split('/')[0]
188 basedir = sourcedir.replace(workdir, '').strip("/").split('/')[0]
189 if basedir: 188 if basedir:
190 bb.utils.remove(workdir + '/' + basedir, True) 189 d.setVar("SOURCE_BASEDIR", unpackdir + '/' + basedir)
191 d.setVar("SOURCE_BASEDIR", workdir + '/' + basedir)
192 190
193 try: 191 try:
194 fetcher = bb.fetch2.Fetch(src_uri, d) 192 fetcher = bb.fetch2.Fetch(src_uri, d)
195 fetcher.unpack(d.getVar('UNPACKDIR')) 193 fetcher.unpack(d.getVar('UNPACKDIR'))
196 except bb.fetch2.BBFetchException as e: 194 except bb.fetch2.BBFetchException as e:
197 bb.fatal("Bitbake Fetcher Error: " + repr(e)) 195 bb.fatal("Bitbake Fetcher Error: " + repr(e))
198
199 if basedir and os.path.exists(unpackdir + '/' + basedir):
200 # Compatibility magic to ensure ${WORKDIR}/git and ${WORKDIR}/${BP}
201 # as often used in S work as expected.
202 shutil.move(unpackdir + '/' + basedir, workdir + '/' + basedir)
203} 196}
204 197
205SSTATETASKS += "do_deploy_source_date_epoch" 198SSTATETASKS += "do_deploy_source_date_epoch"
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index c45650291f..4ef664b3ce 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -1431,6 +1431,14 @@ Rerun configure task after fixing this."""
1431python do_qa_unpack() { 1431python do_qa_unpack() {
1432 src_uri = d.getVar('SRC_URI') 1432 src_uri = d.getVar('SRC_URI')
1433 s_dir = d.getVar('S') 1433 s_dir = d.getVar('S')
1434 s_dir_orig = d.getVar('S', False)
1435
1436 if s_dir_orig == '${WORKDIR}/git' or s_dir_orig == '${UNPACKDIR}/git':
1437 bb.fatal('Recipes that set S = "${WORKDIR}/git" or S = "${UNPACKDIR}/git" should remove that assignment, as S set by bitbake.conf in oe-core now works.')
1438
1439 if '${WORKDIR}' in s_dir_orig:
1440 bb.fatal('S should be set relative to UNPACKDIR, e.g. replace WORKDIR with UNPACKDIR in "S = {}"'.format(s_dir_orig))
1441
1434 if src_uri and not os.path.exists(s_dir): 1442 if src_uri and not os.path.exists(s_dir):
1435 bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir)) 1443 bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir))
1436} 1444}
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 1d7b033b80..2968cc4c2e 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -726,7 +726,6 @@ def pstaging_fetch(sstatefetch, d):
726 localdata = bb.data.createCopy(d) 726 localdata = bb.data.createCopy(d)
727 727
728 dldir = localdata.expand("${SSTATE_DIR}") 728 dldir = localdata.expand("${SSTATE_DIR}")
729 bb.utils.mkdirhier(dldir)
730 729
731 localdata.delVar('MIRRORS') 730 localdata.delVar('MIRRORS')
732 localdata.setVar('FILESPATH', dldir) 731 localdata.setVar('FILESPATH', dldir)
@@ -746,16 +745,19 @@ def pstaging_fetch(sstatefetch, d):
746 if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False): 745 if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
747 uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)] 746 uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)]
748 747
749 for srcuri in uris: 748 with bb.utils.umask(0o002):
750 localdata.delVar('SRC_URI') 749 bb.utils.mkdirhier(dldir)
751 localdata.setVar('SRC_URI', srcuri)
752 try:
753 fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
754 fetcher.checkstatus()
755 fetcher.download()
756 750
757 except bb.fetch2.BBFetchException: 751 for srcuri in uris:
758 pass 752 localdata.delVar('SRC_URI')
753 localdata.setVar('SRC_URI', srcuri)
754 try:
755 fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
756 fetcher.checkstatus()
757 fetcher.download()
758
759 except bb.fetch2.BBFetchException:
760 pass
759 761
760def sstate_setscene(d): 762def sstate_setscene(d):
761 shared_state = sstate_state_fromvars(d) 763 shared_state = sstate_state_fromvars(d)
diff --git a/meta/classes-recipe/barebox.bbclass b/meta/classes-recipe/barebox.bbclass
index a562dce169..ece8fb6485 100644
--- a/meta/classes-recipe/barebox.bbclass
+++ b/meta/classes-recipe/barebox.bbclass
@@ -14,7 +14,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
14 14
15DEPENDS += "bison-native flex-native lz4-native" 15DEPENDS += "bison-native flex-native lz4-native"
16 16
17S = "${WORKDIR}/barebox-${PV}" 17S = "${UNPACKDIR}/barebox-${PV}"
18B = "${WORKDIR}/build" 18B = "${WORKDIR}/build"
19 19
20require conf/image-uefi.conf 20require conf/image-uefi.conf
diff --git a/meta/classes-recipe/devicetree.bbclass b/meta/classes-recipe/devicetree.bbclass
index 2a2ac93e9b..ce9d008aac 100644
--- a/meta/classes-recipe/devicetree.bbclass
+++ b/meta/classes-recipe/devicetree.bbclass
@@ -40,8 +40,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
40SYSROOT_DIRS += "/boot/devicetree" 40SYSROOT_DIRS += "/boot/devicetree"
41FILES:${PN} = "/boot/devicetree/*.dtb /boot/devicetree/*.dtbo" 41FILES:${PN} = "/boot/devicetree/*.dtb /boot/devicetree/*.dtbo"
42 42
43S = "${WORKDIR}/sources" 43S = "${UNPACKDIR}"
44UNPACKDIR = "${S}"
45B = "${WORKDIR}/build" 44B = "${WORKDIR}/build"
46 45
47# Default kernel includes, these represent what are normally used for in-kernel 46# Default kernel includes, these represent what are normally used for in-kernel
diff --git a/meta/classes-recipe/devupstream.bbclass b/meta/classes-recipe/devupstream.bbclass
index d941763fb7..60026a527f 100644
--- a/meta/classes-recipe/devupstream.bbclass
+++ b/meta/classes-recipe/devupstream.bbclass
@@ -13,9 +13,6 @@
13# SRC_URI:class-devupstream = "git://git.example.com/example;branch=master" 13# SRC_URI:class-devupstream = "git://git.example.com/example;branch=master"
14# SRCREV:class-devupstream = "abcdef" 14# SRCREV:class-devupstream = "abcdef"
15# 15#
16# If the first entry in SRC_URI is a git: URL then S is rewritten to
17# WORKDIR/git.
18#
19# There are a few caveats that remain to be solved: 16# There are a few caveats that remain to be solved:
20# - You can't build native or nativesdk recipes using for example 17# - You can't build native or nativesdk recipes using for example
21# devupstream:native, you can only build target recipes. 18# devupstream:native, you can only build target recipes.
@@ -39,9 +36,6 @@ python devupstream_virtclass_handler () {
39 src_uri = d.getVar("SRC_URI:class-devupstream") or d.getVar("SRC_URI") 36 src_uri = d.getVar("SRC_URI:class-devupstream") or d.getVar("SRC_URI")
40 uri = bb.fetch2.URI(src_uri.split()[0]) 37 uri = bb.fetch2.URI(src_uri.split()[0])
41 38
42 if uri.scheme == "git" and not d.getVar("S:class-devupstream"):
43 d.setVar("S", "${WORKDIR}/git")
44
45 # Modify the PV if the recipe hasn't already overridden it 39 # Modify the PV if the recipe hasn't already overridden it
46 pv = d.getVar("PV") 40 pv = d.getVar("PV")
47 proto_marker = "+" + uri.scheme 41 proto_marker = "+" + uri.scheme
diff --git a/meta/classes-recipe/image-live.bbclass b/meta/classes-recipe/image-live.bbclass
index d2e95ef51c..c3054be630 100644
--- a/meta/classes-recipe/image-live.bbclass
+++ b/meta/classes-recipe/image-live.bbclass
@@ -147,7 +147,10 @@ build_iso() {
147 isohybrid_args="-u" 147 isohybrid_args="-u"
148 fi 148 fi
149 149
150 isohybrid $isohybrid_args ${IMGDEPLOYDIR}/${IMAGE_NAME}.iso 150 # EFI only does not need isohybrid
151 if [ "${PCBIOS}" = "1" ] || [ "${EFI}" != "1" ]; then
152 isohybrid $isohybrid_args ${IMGDEPLOYDIR}/${IMAGE_NAME}.iso
153 fi
151} 154}
152 155
153build_fat_img() { 156build_fat_img() {
diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass
index 740ed946f8..6180874a4c 100644
--- a/meta/classes-recipe/image_types_wic.bbclass
+++ b/meta/classes-recipe/image_types_wic.bbclass
@@ -57,6 +57,16 @@ def wks_search(files, search_path):
57 if searched: 57 if searched:
58 return searched 58 return searched
59 59
60def wks_checksums(files, search_path):
61 ret = ""
62 for f in files:
63 found, hist = bb.utils.which(search_path, f, history=True)
64 ret = ret + " " + " ".join(h + ":False" for h in hist[:-1])
65 if found:
66 ret = ret + " " + found + ":True"
67 return ret
68
69
60WIC_CREATE_EXTRA_ARGS ?= "" 70WIC_CREATE_EXTRA_ARGS ?= ""
61 71
62IMAGE_CMD:wic () { 72IMAGE_CMD:wic () {
@@ -98,7 +108,7 @@ do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
98 108
99# Rebuild when the wks file or vars in WICVARS change 109# Rebuild when the wks file or vars in WICVARS change
100USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}" 110USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
101WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}" 111WKS_FILE_CHECKSUM = "${@wks_checksums(d.getVar('WKS_FILES').split(), d.getVar('WKS_SEARCH_PATH')) if '${USING_WIC}' else ''}"
102do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}" 112do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}"
103do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r in ('parted', 'gptfdisk', 'dosfstools', 'mtools'))}" 113do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r in ('parted', 'gptfdisk', 'dosfstools', 'mtools'))}"
104 114
diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass
index d2eebb88bc..39845997ed 100644
--- a/meta/classes-recipe/kernel-fit-image.bbclass
+++ b/meta/classes-recipe/kernel-fit-image.bbclass
@@ -2,8 +2,7 @@
2inherit kernel-arch kernel-artifact-names uboot-config deploy 2inherit kernel-arch kernel-artifact-names uboot-config deploy
3require conf/image-fitimage.conf 3require conf/image-fitimage.conf
4 4
5S = "${WORKDIR}/sources" 5S = "${UNPACKDIR}"
6UNPACKDIR = "${S}"
7 6
8PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
9 8
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass
index ba93145fd3..e53bf15194 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -388,19 +388,19 @@ do_kernel_checkout() {
388 set +e 388 set +e
389 389
390 source_dir=`echo ${S} | sed 's%/$%%'` 390 source_dir=`echo ${S} | sed 's%/$%%'`
391 source_workdir="${UNPACKDIR}/git" 391 source_unpackdir="${UNPACKDIR}/${BB_GIT_DEFAULT_DESTSUFFIX}"
392 if [ -d "${UNPACKDIR}/git/" ]; then 392 if [ -d "${source_unpackdir}" ]; then
393 # case: git repository 393 # case: git repository
394 # if S is WORKDIR/git, then we shouldn't be moving or deleting the tree. 394 # if S is UNPACKDIR/BB_GIT_DEFAULT_DESTSUFFIX, then we shouldn't be moving or deleting the tree.
395 if [ "${source_dir}" != "${source_workdir}" ]; then 395 if [ "${source_dir}" != "${source_unpackdir}" ]; then
396 if [ -d "${source_workdir}/.git" ]; then 396 if [ -d "${source_unpackdir}/.git" ]; then
397 # regular git repository with .git 397 # regular git repository with .git
398 rm -rf ${S} 398 rm -rf ${S}
399 mv ${UNPACKDIR}/git ${S} 399 mv ${source_unpackdir} ${S}
400 else 400 else
401 # create source for bare cloned git repository 401 # create source for bare cloned git repository
402 git clone ${WORKDIR}/git ${S} 402 git clone ${source_unpackdir} ${S}
403 rm -rf ${UNPACKDIR}/git 403 rm -rf ${source_unpackdir}
404 fi 404 fi
405 fi 405 fi
406 cd ${S} 406 cd ${S}
diff --git a/meta/classes-recipe/pypi.bbclass b/meta/classes-recipe/pypi.bbclass
index b0bc167cdf..eb30004a0f 100644
--- a/meta/classes-recipe/pypi.bbclass
+++ b/meta/classes-recipe/pypi.bbclass
@@ -41,7 +41,7 @@ PYPI_SRC_URI ?= "${@pypi_src_uri(d)}"
41HOMEPAGE ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/" 41HOMEPAGE ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/"
42SECTION = "devel/python" 42SECTION = "devel/python"
43SRC_URI:prepend = "${PYPI_SRC_URI} " 43SRC_URI:prepend = "${PYPI_SRC_URI} "
44S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}" 44S = "${UNPACKDIR}/${PYPI_PACKAGE}-${PV}"
45 45
46# Replace any '_' characters in the pypi URI with '-'s to follow the PyPi website naming conventions 46# Replace any '_' characters in the pypi URI with '-'s to follow the PyPi website naming conventions
47UPSTREAM_CHECK_PYPI_PACKAGE ?= "${@pypi_normalize(d)}" 47UPSTREAM_CHECK_PYPI_PACKAGE ?= "${@pypi_normalize(d)}"
diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass
index c04940ce54..cac6e90a9e 100644
--- a/meta/classes-recipe/rust-target-config.bbclass
+++ b/meta/classes-recipe/rust-target-config.bbclass
@@ -77,8 +77,33 @@ def llvm_features_from_tune(d):
77 f.append("+a15") 77 f.append("+a15")
78 if 'cortexa17' in feat: 78 if 'cortexa17' in feat:
79 f.append("+a17") 79 f.append("+a17")
80 if ('riscv64' in feat) or ('riscv32' in feat): 80 if 'rv' in feat:
81 f.append("+a,+c,+d,+f,+m") 81 if 'm' in feat:
82 f.append("+m")
83 if 'a' in feat:
84 f.append("+a")
85 if 'f' in feat:
86 f.append("+f")
87 if 'd' in feat:
88 f.append("+d")
89 if 'c' in feat:
90 f.append("+c")
91 if 'v' in feat:
92 f.append("+v")
93 if 'zicbom' in feat:
94 f.append("+zicbom")
95 if 'zicsr' in feat:
96 f.append("+zicsr")
97 if 'zifencei' in feat:
98 f.append("+zifencei")
99 if 'zba' in feat:
100 f.append("+zba")
101 if 'zbb' in feat:
102 f.append("+zbb")
103 if 'zbc' in feat:
104 f.append("+zbc")
105 if 'zbs' in feat:
106 f.append("+zbs")
82 return f 107 return f
83llvm_features_from_tune[vardepvalue] = "${@llvm_features_from_tune(d)}" 108llvm_features_from_tune[vardepvalue] = "${@llvm_features_from_tune(d)}"
84 109
@@ -146,7 +171,7 @@ MAX_ATOMIC_WIDTH[armv7-eabi] = "64"
146FEATURES[armv7-eabi] = "+v7,+vfp2,+thumb2" 171FEATURES[armv7-eabi] = "+v7,+vfp2,+thumb2"
147 172
148## aarch64-unknown-linux-{gnu, musl} 173## aarch64-unknown-linux-{gnu, musl}
149DATA_LAYOUT[aarch64] = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 174DATA_LAYOUT[aarch64] = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
150TARGET_ENDIAN[aarch64] = "little" 175TARGET_ENDIAN[aarch64] = "little"
151TARGET_POINTER_WIDTH[aarch64] = "64" 176TARGET_POINTER_WIDTH[aarch64] = "64"
152TARGET_C_INT_WIDTH[aarch64] = "32" 177TARGET_C_INT_WIDTH[aarch64] = "32"
@@ -236,19 +261,19 @@ TARGET_POINTER_WIDTH[powerpc64le] = "64"
236TARGET_C_INT_WIDTH[powerpc64le] = "32" 261TARGET_C_INT_WIDTH[powerpc64le] = "32"
237MAX_ATOMIC_WIDTH[powerpc64le] = "64" 262MAX_ATOMIC_WIDTH[powerpc64le] = "64"
238 263
239## riscv32gc-unknown-linux-{gnu, musl} 264## riscv32-unknown-linux-{gnu, musl}
240DATA_LAYOUT[riscv32gc] = "e-m:e-p:32:32-i64:64-n32-S128" 265DATA_LAYOUT[riscv32] = "e-m:e-p:32:32-i64:64-n32-S128"
241TARGET_ENDIAN[riscv32gc] = "little" 266TARGET_ENDIAN[riscv32] = "little"
242TARGET_POINTER_WIDTH[riscv32gc] = "32" 267TARGET_POINTER_WIDTH[riscv32] = "32"
243TARGET_C_INT_WIDTH[riscv32gc] = "32" 268TARGET_C_INT_WIDTH[riscv32] = "32"
244MAX_ATOMIC_WIDTH[riscv32gc] = "32" 269MAX_ATOMIC_WIDTH[riscv32] = "32"
245 270
246## riscv64gc-unknown-linux-{gnu, musl} 271## riscv64-unknown-linux-{gnu, musl}
247DATA_LAYOUT[riscv64gc] = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" 272DATA_LAYOUT[riscv64] = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
248TARGET_ENDIAN[riscv64gc] = "little" 273TARGET_ENDIAN[riscv64] = "little"
249TARGET_POINTER_WIDTH[riscv64gc] = "64" 274TARGET_POINTER_WIDTH[riscv64] = "64"
250TARGET_C_INT_WIDTH[riscv64gc] = "32" 275TARGET_C_INT_WIDTH[riscv64] = "32"
251MAX_ATOMIC_WIDTH[riscv64gc] = "64" 276MAX_ATOMIC_WIDTH[riscv64] = "64"
252 277
253## loongarch64-unknown-linux-{gnu, musl} 278## loongarch64-unknown-linux-{gnu, musl}
254DATA_LAYOUT[loongarch64] = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" 279DATA_LAYOUT[loongarch64] = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
@@ -271,19 +296,11 @@ def arch_to_rust_target_arch(arch):
271 return "arm" 296 return "arm"
272 elif arch == "powerpc64le": 297 elif arch == "powerpc64le":
273 return "powerpc64" 298 return "powerpc64"
274 elif arch == "riscv32gc":
275 return "riscv32"
276 elif arch == "riscv64gc":
277 return "riscv64"
278 else: 299 else:
279 return arch 300 return arch
280 301
281# Convert a rust target string to a llvm-compatible triplet 302# Convert a rust target string to a llvm-compatible triplet
282def rust_sys_to_llvm_target(sys): 303def rust_sys_to_llvm_target(sys):
283 if sys.startswith('riscv32gc-'):
284 return sys.replace('riscv32gc-', 'riscv32-', 1)
285 if sys.startswith('riscv64gc-'):
286 return sys.replace('riscv64gc-', 'riscv64-', 1)
287 return sys 304 return sys
288 305
289# generates our target CPU value 306# generates our target CPU value
@@ -380,9 +397,9 @@ def rust_gen_target(d, thing, wd, arch):
380 else: 397 else:
381 tspec['env'] = "gnu" 398 tspec['env'] = "gnu"
382 if "riscv64" in tspec['llvm-target']: 399 if "riscv64" in tspec['llvm-target']:
383 tspec['llvm-abiname'] = "lp64d" 400 tspec['llvm-abiname'] = d.getVar('TUNE_RISCV_ABI')
384 if "riscv32" in tspec['llvm-target']: 401 if "riscv32" in tspec['llvm-target']:
385 tspec['llvm-abiname'] = "ilp32d" 402 tspec['llvm-abiname'] = d.getVar('TUNE_RISCV_ABI')
386 if "loongarch64" in tspec['llvm-target']: 403 if "loongarch64" in tspec['llvm-target']:
387 tspec['llvm-abiname'] = "lp64d" 404 tspec['llvm-abiname'] = "lp64d"
388 tspec['vendor'] = "unknown" 405 tspec['vendor'] = "unknown"
diff --git a/meta/classes-recipe/uboot-config.bbclass b/meta/classes-recipe/uboot-config.bbclass
index f44605cb6a..bc20913f73 100644
--- a/meta/classes-recipe/uboot-config.bbclass
+++ b/meta/classes-recipe/uboot-config.bbclass
@@ -22,12 +22,17 @@ def removesuffix(s, suffix):
22UBOOT_ENTRYPOINT ?= "0x20008000" 22UBOOT_ENTRYPOINT ?= "0x20008000"
23UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" 23UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
24 24
25# When naming the files we install/deploy, the package version and revision
26# are part of the filename. Create a single variable to represent this and
27# allow it to be customized if desired.
28UBOOT_VERSION ?= "${PV}-${PR}"
29
25# Some versions of u-boot use .bin and others use .img. By default use .bin 30# Some versions of u-boot use .bin and others use .img. By default use .bin
26# but enable individual recipes to change this value. 31# but enable individual recipes to change this value.
27UBOOT_SUFFIX ??= "bin" 32UBOOT_SUFFIX ??= "bin"
28UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" 33UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
29UBOOT_BINARYNAME ?= "${@os.path.splitext(d.getVar("UBOOT_BINARY"))[0]}" 34UBOOT_BINARYNAME ?= "${@os.path.splitext(d.getVar("UBOOT_BINARY"))[0]}"
30UBOOT_IMAGE ?= "${UBOOT_BINARYNAME}-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}" 35UBOOT_IMAGE ?= "${UBOOT_BINARYNAME}-${MACHINE}-${UBOOT_VERSION}.${UBOOT_SUFFIX}"
31UBOOT_SYMLINK ?= "${UBOOT_BINARYNAME}-${MACHINE}.${UBOOT_SUFFIX}" 36UBOOT_SYMLINK ?= "${UBOOT_BINARYNAME}-${MACHINE}.${UBOOT_SUFFIX}"
32UBOOT_MAKE_TARGET ?= "all" 37UBOOT_MAKE_TARGET ?= "all"
33 38
@@ -36,7 +41,7 @@ UBOOT_MAKE_TARGET ?= "all"
36# purposes. 41# purposes.
37UBOOT_ELF ?= "" 42UBOOT_ELF ?= ""
38UBOOT_ELF_SUFFIX ?= "elf" 43UBOOT_ELF_SUFFIX ?= "elf"
39UBOOT_ELF_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}" 44UBOOT_ELF_IMAGE ?= "u-boot-${MACHINE}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}"
40UBOOT_ELF_BINARY ?= "u-boot.${UBOOT_ELF_SUFFIX}" 45UBOOT_ELF_BINARY ?= "u-boot.${UBOOT_ELF_SUFFIX}"
41UBOOT_ELF_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_ELF_SUFFIX}" 46UBOOT_ELF_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_ELF_SUFFIX}"
42 47
@@ -49,7 +54,7 @@ SPL_BINARY ?= ""
49SPL_DELIMITER ?= "${@'.' if d.getVar("SPL_SUFFIX") else ''}" 54SPL_DELIMITER ?= "${@'.' if d.getVar("SPL_SUFFIX") else ''}"
50SPL_BINARYFILE ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}" 55SPL_BINARYFILE ?= "${@os.path.basename(d.getVar("SPL_BINARY"))}"
51SPL_BINARYNAME ?= "${@removesuffix(d.getVar("SPL_BINARYFILE"), "." + d.getVar("SPL_SUFFIX"))}" 56SPL_BINARYNAME ?= "${@removesuffix(d.getVar("SPL_BINARYFILE"), "." + d.getVar("SPL_SUFFIX"))}"
52SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX}" 57SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}"
53SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}${SPL_DELIMITER}${SPL_SUFFIX}" 58SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}${SPL_DELIMITER}${SPL_SUFFIX}"
54 59
55# Additional environment variables or a script can be installed alongside 60# Additional environment variables or a script can be installed alongside
@@ -62,14 +67,14 @@ UBOOT_ENV ?= ""
62UBOOT_ENV_SRC_SUFFIX ?= "cmd" 67UBOOT_ENV_SRC_SUFFIX ?= "cmd"
63UBOOT_ENV_SRC ?= "${UBOOT_ENV}.${UBOOT_ENV_SRC_SUFFIX}" 68UBOOT_ENV_SRC ?= "${UBOOT_ENV}.${UBOOT_ENV_SRC_SUFFIX}"
64UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}" 69UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
65UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}" 70UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${UBOOT_VERSION}.${UBOOT_ENV_SUFFIX}"
66UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}" 71UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
67 72
68# U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf 73# U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
69# to find EXTLINUX conf file. 74# to find EXTLINUX conf file.
70UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux" 75UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
71UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf" 76UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf"
72UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}" 77UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${UBOOT_VERSION}"
73 78
74# Options for the device tree compiler passed to mkimage '-D' feature: 79# Options for the device tree compiler passed to mkimage '-D' feature:
75UBOOT_MKIMAGE_DTCOPTS ??= "" 80UBOOT_MKIMAGE_DTCOPTS ??= ""
diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass
index 73e9ce3f11..0f387a3a3e 100644
--- a/meta/classes-recipe/uboot-sign.bbclass
+++ b/meta/classes-recipe/uboot-sign.bbclass
@@ -50,6 +50,8 @@ UBOOT_FITIMAGE_BINARY ?= "u-boot-fitImage"
50UBOOT_FITIMAGE_SYMLINK ?= "u-boot-fitImage-${MACHINE}" 50UBOOT_FITIMAGE_SYMLINK ?= "u-boot-fitImage-${MACHINE}"
51SPL_DIR ?= "spl" 51SPL_DIR ?= "spl"
52SPL_DTB_IMAGE ?= "u-boot-spl-${MACHINE}-${PV}-${PR}.dtb" 52SPL_DTB_IMAGE ?= "u-boot-spl-${MACHINE}-${PV}-${PR}.dtb"
53# When SPL is not used, set SPL_DTB_BINARY ?= "" to explicitly indicate
54# that no SPL DTB should be created or signed.
53SPL_DTB_BINARY ?= "u-boot-spl.dtb" 55SPL_DTB_BINARY ?= "u-boot-spl.dtb"
54SPL_DTB_SIGNED ?= "${SPL_DTB_BINARY}-signed" 56SPL_DTB_SIGNED ?= "${SPL_DTB_BINARY}-signed"
55SPL_DTB_SYMLINK ?= "u-boot-spl-${MACHINE}.dtb" 57SPL_DTB_SYMLINK ?= "u-boot-spl-${MACHINE}.dtb"
@@ -196,21 +198,23 @@ concat_dtb() {
196 # If we're not using a signed u-boot fit, concatenate SPL w/o DTB & U-Boot DTB 198 # If we're not using a signed u-boot fit, concatenate SPL w/o DTB & U-Boot DTB
197 # with public key (otherwise U-Boot will be packaged by uboot_fitimage_assemble) 199 # with public key (otherwise U-Boot will be packaged by uboot_fitimage_assemble)
198 if [ "${SPL_SIGN_ENABLE}" != "1" ] ; then 200 if [ "${SPL_SIGN_ENABLE}" != "1" ] ; then
199 if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \ 201 if [ ! -e "${UBOOT_DTB_BINARY}" ]; then
200 [ -e "${UBOOT_DTB_BINARY}" ]; then 202 bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
203 return
204 fi
205
206 if [ "x${UBOOT_SUFFIX}" = "ximg" ] || [ "x${UBOOT_SUFFIX}" = "xrom" ]; then
201 oe_runmake EXT_DTB="${UBOOT_DTB_SIGNED}" ${UBOOT_MAKE_TARGET} 207 oe_runmake EXT_DTB="${UBOOT_DTB_SIGNED}" ${UBOOT_MAKE_TARGET}
202 if [ -n "${binary}" ]; then 208 if [ -n "${binary}" ]; then
203 cp ${binary} ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} 209 cp ${binary} ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX}
204 fi 210 fi
205 elif [ -e "${UBOOT_NODTB_BINARY}" -a -e "${UBOOT_DTB_BINARY}" ]; then 211 elif [ -e "${UBOOT_NODTB_BINARY}" ]; then
206 if [ -n "${binary}" ]; then 212 if [ -n "${binary}" ]; then
207 cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} | tee ${binary} > \ 213 cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} | tee ${binary} > \
208 ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} 214 ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX}
209 else 215 else
210 cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} > ${UBOOT_BINARY} 216 cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} > ${UBOOT_BINARY}
211 fi 217 fi
212 else
213 bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
214 fi 218 fi
215 fi 219 fi
216} 220}
@@ -242,7 +246,7 @@ deploy_dtb() {
242} 246}
243 247
244concat_spl_dtb() { 248concat_spl_dtb() {
245 if [ -e "${SPL_DIR}/${SPL_NODTB_BINARY}" -a -e "${SPL_DIR}/${SPL_DTB_BINARY}" ] ; then 249 if [ -e "${SPL_DIR}/${SPL_NODTB_BINARY}" ] && [ -e "${SPL_DIR}/${SPL_DTB_BINARY}" ] ; then
246 cat ${SPL_DIR}/${SPL_NODTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED} > "${SPL_BINARY}" 250 cat ${SPL_DIR}/${SPL_NODTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED} > "${SPL_BINARY}"
247 else 251 else
248 bbwarn "Failure while adding public key to spl binary. Verified U-Boot boot won't be available." 252 bbwarn "Failure while adding public key to spl binary. Verified U-Boot boot won't be available."
@@ -466,25 +470,31 @@ EOF
466 ${UBOOT_FITIMAGE_BINARY} 470 ${UBOOT_FITIMAGE_BINARY}
467 471
468 if [ "${SPL_SIGN_ENABLE}" = "1" ] ; then 472 if [ "${SPL_SIGN_ENABLE}" = "1" ] ; then
469 # 473 if [ -n "${SPL_DTB_BINARY}" ] ; then
470 # Sign the U-boot FIT image and add public key to SPL dtb 474 #
471 # 475 # Sign the U-boot FIT image and add public key to SPL dtb
472 ${UBOOT_MKIMAGE_SIGN} \ 476 #
473 ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \ 477 ${UBOOT_MKIMAGE_SIGN} \
474 -F -k "${SPL_SIGN_KEYDIR}" \ 478 ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \
475 -K "${SPL_DIR}/${SPL_DTB_BINARY}" \ 479 -F -k "${SPL_SIGN_KEYDIR}" \
476 -r ${UBOOT_FITIMAGE_BINARY} \ 480 -K "${SPL_DIR}/${SPL_DTB_BINARY}" \
477 ${SPL_MKIMAGE_SIGN_ARGS} 481 -r ${UBOOT_FITIMAGE_BINARY} \
478 # 482 ${SPL_MKIMAGE_SIGN_ARGS}
479 # Verify the U-boot FIT image and SPL dtb 483
480 # 484 # Verify the U-boot FIT image and SPL dtb
481 ${UBOOT_FIT_CHECK_SIGN} \ 485 ${UBOOT_FIT_CHECK_SIGN} \
482 -k "${SPL_DIR}/${SPL_DTB_BINARY}" \ 486 -k "${SPL_DIR}/${SPL_DTB_BINARY}" \
483 -f ${UBOOT_FITIMAGE_BINARY} 487 -f ${UBOOT_FITIMAGE_BINARY}
484 fi
485 488
486 if [ -e "${SPL_DIR}/${SPL_DTB_BINARY}" ]; then 489 cp ${SPL_DIR}/${SPL_DTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED}
487 cp ${SPL_DIR}/${SPL_DTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED} 490 else
491 # Sign the U-boot FIT image
492 ${UBOOT_MKIMAGE_SIGN} \
493 ${@'-D "${SPL_MKIMAGE_DTCOPTS}"' if len('${SPL_MKIMAGE_DTCOPTS}') else ''} \
494 -F -k "${SPL_SIGN_KEYDIR}" \
495 -r ${UBOOT_FITIMAGE_BINARY} \
496 ${SPL_MKIMAGE_SIGN_ARGS}
497 fi
488 fi 498 fi
489} 499}
490 500
@@ -492,15 +502,15 @@ uboot_assemble_fitimage_helper() {
492 type="$1" 502 type="$1"
493 binary="$2" 503 binary="$2"
494 504
495 if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then 505 if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_BINARY}" ] ; then
496 concat_dtb "$type" "$binary" 506 concat_dtb "$type" "$binary"
497 fi 507 fi
498 508
499 if [ "${UBOOT_FITIMAGE_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ]; then 509 if [ "${UBOOT_FITIMAGE_ENABLE}" = "1" ]; then
500 uboot_fitimage_assemble 510 uboot_fitimage_assemble
501 fi 511 fi
502 512
503 if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ] ; then 513 if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
504 concat_spl_dtb 514 concat_spl_dtb
505 fi 515 fi
506} 516}
@@ -539,11 +549,11 @@ addtask uboot_assemble_fitimage before do_install do_deploy after do_compile
539deploy_helper() { 549deploy_helper() {
540 type="$1" 550 type="$1"
541 551
542 if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_SIGNED}" ] ; then 552 if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_SIGNED}" ] ; then
543 deploy_dtb $type 553 deploy_dtb $type
544 fi 554 fi
545 555
546 if [ "${UBOOT_FITIMAGE_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ]; then 556 if [ "${UBOOT_FITIMAGE_ENABLE}" = "1" ]; then
547 if [ -n "${type}" ]; then 557 if [ -n "${type}" ]; then
548 uboot_its_image="u-boot-its-${type}-${PV}-${PR}" 558 uboot_its_image="u-boot-its-${type}-${PV}-${PR}"
549 uboot_fitimage_image="u-boot-fitImage-${type}-${PV}-${PR}" 559 uboot_fitimage_image="u-boot-fitImage-${type}-${PV}-${PR}"
@@ -561,7 +571,7 @@ deploy_helper() {
561 fi 571 fi
562 fi 572 fi
563 573
564 if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_SIGNED}" ] ; then 574 if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
565 deploy_spl_dtb $type 575 deploy_spl_dtb $type
566 fi 576 fi
567} 577}
@@ -586,7 +596,7 @@ do_deploy:prepend() {
586 deploy_helper "" 596 deploy_helper ""
587 fi 597 fi
588 598
589 if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then 599 if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_BINARY}" ] ; then
590 ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_BINARY} 600 ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_BINARY}
591 ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_SYMLINK} 601 ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_SYMLINK}
592 ln -sf ${UBOOT_NODTB_IMAGE} ${DEPLOYDIR}/${UBOOT_NODTB_SYMLINK} 602 ln -sf ${UBOOT_NODTB_IMAGE} ${DEPLOYDIR}/${UBOOT_NODTB_SYMLINK}
@@ -600,7 +610,7 @@ do_deploy:prepend() {
600 ln -sf ${UBOOT_FITIMAGE_IMAGE} ${DEPLOYDIR}/${UBOOT_FITIMAGE_SYMLINK} 610 ln -sf ${UBOOT_FITIMAGE_IMAGE} ${DEPLOYDIR}/${UBOOT_FITIMAGE_SYMLINK}
601 fi 611 fi
602 612
603 if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ] ; then 613 if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
604 ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_SYMLINK} 614 ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_SYMLINK}
605 ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_BINARY} 615 ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_BINARY}
606 ln -sf ${SPL_NODTB_IMAGE} ${DEPLOYDIR}/${SPL_NODTB_SYMLINK} 616 ln -sf ${SPL_NODTB_IMAGE} ${DEPLOYDIR}/${SPL_NODTB_SYMLINK}
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index e970182620..4a380c10c6 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -16,28 +16,6 @@ BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
16BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" 16BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
17BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" 17BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}"
18 18
19# Setting this to non-empty will remove the old content of the buildhistory as part of
20# the current bitbake invocation and replace it with information about what was built
21# during the build.
22#
23# This is meant to be used in continuous integration (CI) systems when invoking bitbake
24# for full world builds. The effect in that case is that information about packages
25# that no longer get build also gets removed from the buildhistory, which is not
26# the case otherwise.
27#
28# The advantage over manually cleaning the buildhistory outside of bitbake is that
29# the "version-going-backwards" check still works. When relying on that, be careful
30# about failed world builds: they will lead to incomplete information in the
31# buildhistory because information about packages that could not be built will
32# also get removed. A CI system should handle that by discarding the buildhistory
33# of failed builds.
34#
35# The expected usage is via auto.conf, but passing via the command line also works
36# with: BB_ENV_PASSTHROUGH_ADDITIONS=BUILDHISTORY_RESET BUILDHISTORY_RESET=1
37BUILDHISTORY_RESET ?= ""
38
39BUILDHISTORY_OLD_DIR = "${BUILDHISTORY_DIR}/${@ "old" if "${BUILDHISTORY_RESET}" else ""}"
40BUILDHISTORY_OLD_DIR_PACKAGE = "${BUILDHISTORY_OLD_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}"
41BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}${SDK_EXT}/${IMAGE_BASENAME}" 19BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}${SDK_EXT}/${IMAGE_BASENAME}"
42BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" 20BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
43BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/bblayers.conf conf/auto.conf conf/locked-sigs.inc conf/devtool.conf" 21BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/bblayers.conf conf/auto.conf conf/locked-sigs.inc conf/devtool.conf"
@@ -70,9 +48,10 @@ SSTATEPOSTUNPACKFUNCS[vardepvalueexclude] .= "| buildhistory_emit_outputsigs"
70# necessary because some of these items (package directories, files that 48# necessary because some of these items (package directories, files that
71# we no longer emit) might be obsolete. 49# we no longer emit) might be obsolete.
72# 50#
73# When extending build history, derive your class from buildhistory.bbclass 51# The files listed here are either written by tasks that aren't do_package (e.g.
74# and extend this list here with the additional files created by the derived 52# latest_srcrev from do_fetch) so do_package must not remove them, or, they're
75# class. 53# used to read values in do_package before always being overwritten, e.g. latest,
54# for version backwards checks.
76BUILDHISTORY_PRESERVE = "latest latest_srcrev sysroot" 55BUILDHISTORY_PRESERVE = "latest latest_srcrev sysroot"
77 56
78PATCH_GIT_USER_EMAIL ?= "buildhistory@oe" 57PATCH_GIT_USER_EMAIL ?= "buildhistory@oe"
@@ -108,7 +87,6 @@ python buildhistory_emit_pkghistory() {
108 return 0 87 return 0
109 88
110 pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE') 89 pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE')
111 oldpkghistdir = d.getVar('BUILDHISTORY_OLD_DIR_PACKAGE')
112 90
113 class RecipeInfo: 91 class RecipeInfo:
114 def __init__(self, name): 92 def __init__(self, name):
@@ -203,7 +181,7 @@ python buildhistory_emit_pkghistory() {
203 181
204 def getlastpkgversion(pkg): 182 def getlastpkgversion(pkg):
205 try: 183 try:
206 histfile = os.path.join(oldpkghistdir, pkg, "latest") 184 histfile = os.path.join(pkghistdir, pkg, "latest")
207 return readPackageInfo(pkg, histfile) 185 return readPackageInfo(pkg, histfile)
208 except EnvironmentError: 186 except EnvironmentError:
209 return None 187 return None
@@ -219,20 +197,6 @@ python buildhistory_emit_pkghistory() {
219 items.sort() 197 items.sort()
220 return ' '.join(items) 198 return ' '.join(items)
221 199
222 def preservebuildhistoryfiles(pkg, preserve):
223 if os.path.exists(os.path.join(oldpkghistdir, pkg)):
224 listofobjs = os.listdir(os.path.join(oldpkghistdir, pkg))
225 for obj in listofobjs:
226 if obj not in preserve:
227 continue
228 try:
229 bb.utils.mkdirhier(os.path.join(pkghistdir, pkg))
230 shutil.copyfile(os.path.join(oldpkghistdir, pkg, obj), os.path.join(pkghistdir, pkg, obj))
231 except IOError as e:
232 bb.note("Unable to copy file. %s" % e)
233 except EnvironmentError as e:
234 bb.note("Unable to copy file. %s" % e)
235
236 pn = d.getVar('PN') 200 pn = d.getVar('PN')
237 pe = d.getVar('PE') or "0" 201 pe = d.getVar('PE') or "0"
238 pv = d.getVar('PV') 202 pv = d.getVar('PV')
@@ -260,14 +224,6 @@ python buildhistory_emit_pkghistory() {
260 if not os.path.exists(pkghistdir): 224 if not os.path.exists(pkghistdir):
261 bb.utils.mkdirhier(pkghistdir) 225 bb.utils.mkdirhier(pkghistdir)
262 else: 226 else:
263 # We need to make sure that all files kept in
264 # buildhistory/old are restored successfully
265 # otherwise next block of code wont have files to
266 # check and purge
267 if d.getVar("BUILDHISTORY_RESET"):
268 for pkg in packagelist:
269 preservebuildhistoryfiles(pkg, preserve)
270
271 # Remove files for packages that no longer exist 227 # Remove files for packages that no longer exist
272 for item in os.listdir(pkghistdir): 228 for item in os.listdir(pkghistdir):
273 if item not in preserve: 229 if item not in preserve:
@@ -887,25 +843,7 @@ END
887 843
888python buildhistory_eventhandler() { 844python buildhistory_eventhandler() {
889 if (e.data.getVar('BUILDHISTORY_FEATURES') or "").strip(): 845 if (e.data.getVar('BUILDHISTORY_FEATURES') or "").strip():
890 reset = e.data.getVar("BUILDHISTORY_RESET") 846 if isinstance(e, bb.event.BuildCompleted):
891 olddir = e.data.getVar("BUILDHISTORY_OLD_DIR")
892 if isinstance(e, bb.event.BuildStarted):
893 if reset:
894 import shutil
895 # Clean up after potentially interrupted build.
896 if os.path.isdir(olddir):
897 shutil.rmtree(olddir)
898 rootdir = e.data.getVar("BUILDHISTORY_DIR")
899 bb.utils.mkdirhier(rootdir)
900 entries = [ x for x in os.listdir(rootdir) if not x.startswith('.') ]
901 bb.utils.mkdirhier(olddir)
902 for entry in entries:
903 bb.utils.rename(os.path.join(rootdir, entry),
904 os.path.join(olddir, entry))
905 elif isinstance(e, bb.event.BuildCompleted):
906 if reset:
907 import shutil
908 shutil.rmtree(olddir)
909 if e.data.getVar("BUILDHISTORY_COMMIT") == "1": 847 if e.data.getVar("BUILDHISTORY_COMMIT") == "1":
910 bb.note("Writing buildhistory") 848 bb.note("Writing buildhistory")
911 bb.build.exec_func("buildhistory_write_sigs", d) 849 bb.build.exec_func("buildhistory_write_sigs", d)
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass
index 7e8f8b9ff5..6fc60a1d97 100644
--- a/meta/classes/create-spdx-2.2.bbclass
+++ b/meta/classes/create-spdx-2.2.bbclass
@@ -137,6 +137,11 @@ def add_package_files(d, doc, spdx_pkg, topdir, get_spdxid, get_types, *, archiv
137 spdx_files = [] 137 spdx_files = []
138 138
139 file_counter = 1 139 file_counter = 1
140
141 check_compiled_sources = d.getVar("SPDX_INCLUDE_COMPILED_SOURCES") == "1"
142 if check_compiled_sources:
143 compiled_sources, types = oe.spdx_common.get_compiled_sources(d)
144 bb.debug(1, f"Total compiled files: {len(compiled_sources)}")
140 for subdir, dirs, files in os.walk(topdir): 145 for subdir, dirs, files in os.walk(topdir):
141 dirs[:] = [d for d in dirs if d not in ignore_dirs] 146 dirs[:] = [d for d in dirs if d not in ignore_dirs]
142 if subdir == str(topdir): 147 if subdir == str(topdir):
@@ -147,6 +152,10 @@ def add_package_files(d, doc, spdx_pkg, topdir, get_spdxid, get_types, *, archiv
147 filename = str(filepath.relative_to(topdir)) 152 filename = str(filepath.relative_to(topdir))
148 153
149 if not filepath.is_symlink() and filepath.is_file(): 154 if not filepath.is_symlink() and filepath.is_file():
155 # Check if file is compiled
156 if check_compiled_sources:
157 if not oe.spdx_common.is_compiled_source(filename, compiled_sources, types):
158 continue
150 spdx_file = oe.spdx.SPDXFile() 159 spdx_file = oe.spdx.SPDXFile()
151 spdx_file.SPDXID = get_spdxid(file_counter) 160 spdx_file.SPDXID = get_spdxid(file_counter)
152 for t in get_types(filepath): 161 for t in get_types(filepath):
diff --git a/meta/classes/devtool-source.bbclass b/meta/classes/devtool-source.bbclass
index 9762003ba7..2e0070486b 100644
--- a/meta/classes/devtool-source.bbclass
+++ b/meta/classes/devtool-source.bbclass
@@ -92,9 +92,9 @@ python devtool_post_unpack() {
92 for fname in local_files: 92 for fname in local_files:
93 f.write('%s\n' % fname) 93 f.write('%s\n' % fname)
94 94
95 if os.path.dirname(srcsubdir) != workdir: 95 if srcsubdir.startswith(unpackdir) and os.path.dirname(srcsubdir) != unpackdir:
96 # Handle if S is set to a subdirectory of the source 96 # Handle if S is set to a subdirectory of the source
97 srcsubdir = os.path.join(workdir, os.path.relpath(srcsubdir, workdir).split(os.sep)[0]) 97 srcsubdir = os.path.normpath(os.path.join(unpackdir, os.path.relpath(srcsubdir, unpackdir).split(os.sep)[0]))
98 98
99 scriptutils.git_convert_standalone_clone(srcsubdir) 99 scriptutils.git_convert_standalone_clone(srcsubdir)
100 100
diff --git a/meta/classes/spdx-common.bbclass b/meta/classes/spdx-common.bbclass
index 713a7fc651..ca0416d1c7 100644
--- a/meta/classes/spdx-common.bbclass
+++ b/meta/classes/spdx-common.bbclass
@@ -26,6 +26,7 @@ SPDX_TOOL_VERSION ??= "1.0"
26SPDXRUNTIMEDEPLOY = "${SPDXDIR}/runtime-deploy" 26SPDXRUNTIMEDEPLOY = "${SPDXDIR}/runtime-deploy"
27 27
28SPDX_INCLUDE_SOURCES ??= "0" 28SPDX_INCLUDE_SOURCES ??= "0"
29SPDX_INCLUDE_COMPILED_SOURCES ??= "0"
29 30
30SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org" 31SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org"
31SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdocs" 32SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdocs"
@@ -40,6 +41,8 @@ SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}"
40python () { 41python () {
41 from oe.cve_check import extend_cve_status 42 from oe.cve_check import extend_cve_status
42 extend_cve_status(d) 43 extend_cve_status(d)
44 if d.getVar("SPDX_INCLUDE_COMPILED_SOURCES") == "1":
45 d.setVar("SPDX_INCLUDE_SOURCES", "1")
43} 46}
44 47
45def create_spdx_source_deps(d): 48def create_spdx_source_deps(d):
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 54d6bebc39..a3300fc172 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -407,10 +407,11 @@ STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
407STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*" 407STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
408BASE_WORKDIR ?= "${TMPDIR}/work" 408BASE_WORKDIR ?= "${TMPDIR}/work"
409WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}" 409WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
410UNPACKDIR ??= "${WORKDIR}/sources-unpack" 410UNPACKDIR ??= "${WORKDIR}/sources"
411BB_GIT_DEFAULT_DESTSUFFIX = "${BP}"
411T = "${WORKDIR}/temp" 412T = "${WORKDIR}/temp"
412D = "${WORKDIR}/image" 413D = "${WORKDIR}/image"
413S = "${WORKDIR}/${BP}" 414S = "${UNPACKDIR}/${BP}"
414B = "${S}" 415B = "${S}"
415 416
416STAGING_DIR = "${TMPDIR}/sysroots" 417STAGING_DIR = "${TMPDIR}/sysroots"
@@ -821,7 +822,8 @@ include conf/local.conf
821 822
822OE_FRAGMENTS_PREFIX ?= "conf/fragments" 823OE_FRAGMENTS_PREFIX ?= "conf/fragments"
823OE_FRAGMENTS_METADATA_VARS ?= "BB_CONF_FRAGMENT_SUMMARY BB_CONF_FRAGMENT_DESCRIPTION" 824OE_FRAGMENTS_METADATA_VARS ?= "BB_CONF_FRAGMENT_SUMMARY BB_CONF_FRAGMENT_DESCRIPTION"
824addfragments ${OE_FRAGMENTS_PREFIX} OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS 825OE_FRAGMENTS_BUILTIN ?= "machine:MACHINE distro:DISTRO"
826addfragments ${OE_FRAGMENTS_PREFIX} OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS OE_FRAGMENTS_BUILTIN
825 827
826require ${@"conf/multiconfig/${BB_CURRENT_MC}.conf" if "${BB_CURRENT_MC}" != "" else ""} 828require ${@"conf/multiconfig/${BB_CURRENT_MC}.conf" if "${BB_CURRENT_MC}" != "" else ""}
827include conf/machine/${MACHINE}.conf 829include conf/machine/${MACHINE}.conf
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc
index 4f09416354..3f113543cd 100644
--- a/meta/conf/distro/include/default-providers.inc
+++ b/meta/conf/distro/include/default-providers.inc
@@ -6,15 +6,13 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
6PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" 6PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg"
7PREFERRED_PROVIDER_virtual/libsdl2 ?= "libsdl2" 7PREFERRED_PROVIDER_virtual/libsdl2 ?= "libsdl2"
8PREFERRED_PROVIDER_virtual/libsdl2-native ?= "libsdl2-native" 8PREFERRED_PROVIDER_virtual/libsdl2-native ?= "libsdl2-native"
9PREFERRED_PROVIDER_virtual/egl ?= "mesa" 9PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains('DISTRO_FEATURES','glvnd','libglvnd','mesa',d)}"
10PREFERRED_PROVIDER_virtual/libegl-icd ?= "mesa" 10PREFERRED_PROVIDER_virtual/libgl ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'libglvnd', 'mesa',d)}"
11PREFERRED_PROVIDER_virtual/libgl ?= "mesa" 11PREFERRED_PROVIDER_virtual/libgl-native ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'libglvnd-native', 'mesa-native',d)}"
12PREFERRED_PROVIDER_virtual/libglx-icd ?= "mesa" 12PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'nativesdk-libglvnd', 'nativesdk-mesa',d)}"
13PREFERRED_PROVIDER_virtual/libgl-native ?= "mesa-native" 13PREFERRED_PROVIDER_virtual/libgles1 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'libglvnd', 'mesa',d)}"
14PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa" 14PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'libglvnd', 'mesa',d)}"
15PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" 15PREFERRED_PROVIDER_virtual/libgles3 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'glvnd', 'libglvnd', 'mesa',d)}"
16PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
17PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
18PREFERRED_PROVIDER_virtual/mesa ?= "mesa" 16PREFERRED_PROVIDER_virtual/mesa ?= "mesa"
19PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg-utils" 17PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg-utils"
20PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-utils-native" 18PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-utils-native"
@@ -68,4 +66,6 @@ PREFERRED_RPROVIDER_initd-functions ?= "initscripts"
68PREFERRED_PROVIDER_nativesdk-mesa ?= "nativesdk-mesa" 66PREFERRED_PROVIDER_nativesdk-mesa ?= "nativesdk-mesa"
69PREFERRED_PROVIDER_virtual/nativesdk-libsdl2 ?= "nativesdk-libsdl2" 67PREFERRED_PROVIDER_virtual/nativesdk-libsdl2 ?= "nativesdk-libsdl2"
70 68
69PREFERRED_RPROVIDER_virtual-libegl-icd ?= "mesa"
70PREFERRED_RPROVIDER_virtual-libglx-icd ?= "mesa"
71PREFERRED_RPROVIDER_virtual-x-terminal-emulator ?= "rxvt-unicode" 71PREFERRED_RPROVIDER_virtual-x-terminal-emulator ?= "rxvt-unicode"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index b6cf4b7cfa..d94fb693e3 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -353,6 +353,7 @@ RECIPE_MAINTAINER:pn-libgcrypt = "Hongxu Jia <hongxu.jia@windriver.com>"
353RECIPE_MAINTAINER:pn-libgfortran = "Khem Raj <raj.khem@gmail.com>" 353RECIPE_MAINTAINER:pn-libgfortran = "Khem Raj <raj.khem@gmail.com>"
354RECIPE_MAINTAINER:pn-libgit2 = "Unassigned <unassigned@yoctoproject.org>" 354RECIPE_MAINTAINER:pn-libgit2 = "Unassigned <unassigned@yoctoproject.org>"
355RECIPE_MAINTAINER:pn-libgloss = "Alejandro Hernandez <alejandro@enedino.org>" 355RECIPE_MAINTAINER:pn-libgloss = "Alejandro Hernandez <alejandro@enedino.org>"
356RECIPE_MAINTAINER:pn-libglvnd = "Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>"
356RECIPE_MAINTAINER:pn-libglu = "Ross Burton <ross.burton@arm.com>" 357RECIPE_MAINTAINER:pn-libglu = "Ross Burton <ross.burton@arm.com>"
357RECIPE_MAINTAINER:pn-libgpg-error = "Hongxu Jia <hongxu.jia@windriver.com>" 358RECIPE_MAINTAINER:pn-libgpg-error = "Hongxu Jia <hongxu.jia@windriver.com>"
358RECIPE_MAINTAINER:pn-libgudev = "Ross Burton <ross.burton@arm.com>" 359RECIPE_MAINTAINER:pn-libgudev = "Ross Burton <ross.burton@arm.com>"
@@ -627,6 +628,7 @@ RECIPE_MAINTAINER:pn-python3-certifi = "Tim Orling <tim.orling@konsulko.com>"
627RECIPE_MAINTAINER:pn-python3-cffi = "Tim Orling <tim.orling@konsulko.com>" 628RECIPE_MAINTAINER:pn-python3-cffi = "Tim Orling <tim.orling@konsulko.com>"
628RECIPE_MAINTAINER:pn-python3-chardet = "Tim Orling <tim.orling@konsulko.com>" 629RECIPE_MAINTAINER:pn-python3-chardet = "Tim Orling <tim.orling@konsulko.com>"
629RECIPE_MAINTAINER:pn-python3-click = "Wang Mingyu <wangmy@fujitsu.com>" 630RECIPE_MAINTAINER:pn-python3-click = "Wang Mingyu <wangmy@fujitsu.com>"
631RECIPE_MAINTAINER:pn-python3-colorama = "Trevor Gamblin <tgamblin@baylibre.com>"
630RECIPE_MAINTAINER:pn-python3-cryptography = "Tim Orling <tim.orling@konsulko.com>" 632RECIPE_MAINTAINER:pn-python3-cryptography = "Tim Orling <tim.orling@konsulko.com>"
631RECIPE_MAINTAINER:pn-python3-cryptography-vectors = "Tim Orling <tim.orling@konsulko.com>" 633RECIPE_MAINTAINER:pn-python3-cryptography-vectors = "Tim Orling <tim.orling@konsulko.com>"
632RECIPE_MAINTAINER:pn-python3-cython = "Trevor Gamblin <tgamblin@baylibre.com>" 634RECIPE_MAINTAINER:pn-python3-cython = "Trevor Gamblin <tgamblin@baylibre.com>"
@@ -637,29 +639,25 @@ RECIPE_MAINTAINER:pn-python3-dtc = "Trevor Gamblin <tgamblin@baylibre.com>"
637RECIPE_MAINTAINER:pn-python3-dtschema = "Bruce Ashfield <bruce.ashfield@gmail.com>" 639RECIPE_MAINTAINER:pn-python3-dtschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
638RECIPE_MAINTAINER:pn-python3-dtschema-wrapper = "Bruce Ashfield <bruce.ashfield@gmail.com>" 640RECIPE_MAINTAINER:pn-python3-dtschema-wrapper = "Bruce Ashfield <bruce.ashfield@gmail.com>"
639RECIPE_MAINTAINER:pn-python3-editables = "Ross Burton <ross.burton@arm.com>" 641RECIPE_MAINTAINER:pn-python3-editables = "Ross Burton <ross.burton@arm.com>"
640RECIPE_MAINTAINER:pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
641RECIPE_MAINTAINER:pn-python3-pycryptodomex = "Joshua Watt <JPEWhacker@gmail.com>"
642RECIPE_MAINTAINER:pn-python3-pyproject-metadata = "Trevor Gamblin <tgamblin@baylibre.com>"
643RECIPE_MAINTAINER:pn-python3-pyrsistent = "Bruce Ashfield <bruce.ashfield@gmail.com>"
644RECIPE_MAINTAINER:pn-python3-extras = "Trevor Gamblin <tgamblin@baylibre.com>" 642RECIPE_MAINTAINER:pn-python3-extras = "Trevor Gamblin <tgamblin@baylibre.com>"
645RECIPE_MAINTAINER:pn-python3-flit-core = "Tim Orling <tim.orling@konsulko.com>" 643RECIPE_MAINTAINER:pn-python3-flit-core = "Tim Orling <tim.orling@konsulko.com>"
646RECIPE_MAINTAINER:pn-python3-git = "Trevor Gamblin <tgamblin@baylibre.com>" 644RECIPE_MAINTAINER:pn-python3-git = "Trevor Gamblin <tgamblin@baylibre.com>"
647RECIPE_MAINTAINER:pn-python3-gitdb = "Trevor Gamblin <tgamblin@baylibre.com>" 645RECIPE_MAINTAINER:pn-python3-gitdb = "Trevor Gamblin <tgamblin@baylibre.com>"
648RECIPE_MAINTAINER:pn-python3-hatchling = "Ross Burton <ross.burton@arm.com>"
649RECIPE_MAINTAINER:pn-python3-hatch-fancy-pypi-readme = "Ross Burton <ross.burton@arm.com>" 646RECIPE_MAINTAINER:pn-python3-hatch-fancy-pypi-readme = "Ross Burton <ross.burton@arm.com>"
650RECIPE_MAINTAINER:pn-python3-hatch-vcs = "Ross Burton <ross.burton@arm.com>" 647RECIPE_MAINTAINER:pn-python3-hatch-vcs = "Ross Burton <ross.burton@arm.com>"
648RECIPE_MAINTAINER:pn-python3-hatchling = "Ross Burton <ross.burton@arm.com>"
651RECIPE_MAINTAINER:pn-python3-hypothesis = "Trevor Gamblin <tgamblin@baylibre.com>" 649RECIPE_MAINTAINER:pn-python3-hypothesis = "Trevor Gamblin <tgamblin@baylibre.com>"
652RECIPE_MAINTAINER:pn-python3-idna = "Bruce Ashfield <bruce.ashfield@gmail.com>" 650RECIPE_MAINTAINER:pn-python3-idna = "Bruce Ashfield <bruce.ashfield@gmail.com>"
653RECIPE_MAINTAINER:pn-python3-imagesize = "Tim Orling <tim.orling@konsulko.com>" 651RECIPE_MAINTAINER:pn-python3-imagesize = "Tim Orling <tim.orling@konsulko.com>"
654RECIPE_MAINTAINER:pn-python3-iniconfig = "Tim Orling <tim.orling@konsulko.com>" 652RECIPE_MAINTAINER:pn-python3-iniconfig = "Tim Orling <tim.orling@konsulko.com>"
655RECIPE_MAINTAINER:pn-python3-iso8601 = "Tim Orling <tim.orling@konsulko.com>"
656RECIPE_MAINTAINER:pn-python3-installer = "Ross Burton <ross.burton@arm.com>" 653RECIPE_MAINTAINER:pn-python3-installer = "Ross Burton <ross.burton@arm.com>"
654RECIPE_MAINTAINER:pn-python3-iso8601 = "Tim Orling <tim.orling@konsulko.com>"
657RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>" 655RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
658RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>" 656RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>"
659RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>" 657RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
660RECIPE_MAINTAINER:pn-python3-jsonschema-specifications = "Bruce Ashfield <bruce.ashfield@gmail.com>" 658RECIPE_MAINTAINER:pn-python3-jsonschema-specifications = "Bruce Ashfield <bruce.ashfield@gmail.com>"
661RECIPE_MAINTAINER:pn-python3-license-expression = "Wang Mingyu <wangmy@fujitsu.com>"
662RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>" 659RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
660RECIPE_MAINTAINER:pn-python3-license-expression = "Wang Mingyu <wangmy@fujitsu.com>"
663RECIPE_MAINTAINER:pn-python3-lxml = "Khem Raj <raj.khem@gmail.com>" 661RECIPE_MAINTAINER:pn-python3-lxml = "Khem Raj <raj.khem@gmail.com>"
664RECIPE_MAINTAINER:pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>" 662RECIPE_MAINTAINER:pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>"
665RECIPE_MAINTAINER:pn-python3-mako = "Trevor Gamblin <tgamblin@baylibre.com>" 663RECIPE_MAINTAINER:pn-python3-mako = "Trevor Gamblin <tgamblin@baylibre.com>"
@@ -685,12 +683,16 @@ RECIPE_MAINTAINER:pn-python3-psutil = "Tim Orling <tim.orling@konsulko.com>"
685RECIPE_MAINTAINER:pn-python3-pyasn1 = "Tim Orling <tim.orling@konsulko.com>" 683RECIPE_MAINTAINER:pn-python3-pyasn1 = "Tim Orling <tim.orling@konsulko.com>"
686RECIPE_MAINTAINER:pn-python3-pycairo = "Zang Ruochen <zangruochen@loongson.cn>" 684RECIPE_MAINTAINER:pn-python3-pycairo = "Zang Ruochen <zangruochen@loongson.cn>"
687RECIPE_MAINTAINER:pn-python3-pycparser = "Tim Orling <tim.orling@konsulko.com>" 685RECIPE_MAINTAINER:pn-python3-pycparser = "Tim Orling <tim.orling@konsulko.com>"
686RECIPE_MAINTAINER:pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
687RECIPE_MAINTAINER:pn-python3-pycryptodomex = "Joshua Watt <JPEWhacker@gmail.com>"
688RECIPE_MAINTAINER:pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>" 688RECIPE_MAINTAINER:pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
689RECIPE_MAINTAINER:pn-python3-pygments = "Trevor Gamblin <tgamblin@baylibre.com>" 689RECIPE_MAINTAINER:pn-python3-pygments = "Trevor Gamblin <tgamblin@baylibre.com>"
690RECIPE_MAINTAINER:pn-python3-pygobject = "Zang Ruochen <zangruochen@loongson.cn>" 690RECIPE_MAINTAINER:pn-python3-pygobject = "Zang Ruochen <zangruochen@loongson.cn>"
691RECIPE_MAINTAINER:pn-python3-pyopenssl = "Tim Orling <tim.orling@konsulko.com>" 691RECIPE_MAINTAINER:pn-python3-pyopenssl = "Tim Orling <tim.orling@konsulko.com>"
692RECIPE_MAINTAINER:pn-python3-pyparsing = "Trevor Gamblin <tgamblin@baylibre.com>" 692RECIPE_MAINTAINER:pn-python3-pyparsing = "Trevor Gamblin <tgamblin@baylibre.com>"
693RECIPE_MAINTAINER:pn-python3-pyproject-hooks = "Ross Burton <ross.burton@arm.com>" 693RECIPE_MAINTAINER:pn-python3-pyproject-hooks = "Ross Burton <ross.burton@arm.com>"
694RECIPE_MAINTAINER:pn-python3-pyproject-metadata = "Trevor Gamblin <tgamblin@baylibre.com>"
695RECIPE_MAINTAINER:pn-python3-pyrsistent = "Bruce Ashfield <bruce.ashfield@gmail.com>"
694RECIPE_MAINTAINER:pn-python3-pysocks = "Tim Orling <tim.orling@konsulko.com>" 696RECIPE_MAINTAINER:pn-python3-pysocks = "Tim Orling <tim.orling@konsulko.com>"
695RECIPE_MAINTAINER:pn-python3-pytest = "Trevor Gamblin <tgamblin@baylibre.com>" 697RECIPE_MAINTAINER:pn-python3-pytest = "Trevor Gamblin <tgamblin@baylibre.com>"
696RECIPE_MAINTAINER:pn-python3-pytest-subtests = "Tim Orling <tim.orling@konsulko.com>" 698RECIPE_MAINTAINER:pn-python3-pytest-subtests = "Tim Orling <tim.orling@konsulko.com>"
@@ -716,14 +718,14 @@ RECIPE_MAINTAINER:pn-python3-snowballstemmer = "Tim Orling <tim.orling@konsulko.
716RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <tim.orling@konsulko.com>" 718RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <tim.orling@konsulko.com>"
717RECIPE_MAINTAINER:pn-python3-spdx-tools = "Marta Rybczynska <marta.rybczynska@ygreky.com>" 719RECIPE_MAINTAINER:pn-python3-spdx-tools = "Marta Rybczynska <marta.rybczynska@ygreky.com>"
718RECIPE_MAINTAINER:pn-python3-sphinx = "Trevor Gamblin <tgamblin@baylibre.com>" 720RECIPE_MAINTAINER:pn-python3-sphinx = "Trevor Gamblin <tgamblin@baylibre.com>"
721RECIPE_MAINTAINER:pn-python3-sphinx-rtd-theme = "Tim Orling <tim.orling@konsulko.com>"
719RECIPE_MAINTAINER:pn-python3-sphinxcontrib-applehelp = "Tim Orling <tim.orling@konsulko.com>" 722RECIPE_MAINTAINER:pn-python3-sphinxcontrib-applehelp = "Tim Orling <tim.orling@konsulko.com>"
720RECIPE_MAINTAINER:pn-python3-sphinxcontrib-devhelp = "Tim Orling <tim.orling@konsulko.com>" 723RECIPE_MAINTAINER:pn-python3-sphinxcontrib-devhelp = "Tim Orling <tim.orling@konsulko.com>"
721RECIPE_MAINTAINER:pn-python3-sphinxcontrib-htmlhelp = "Tim Orling <tim.orling@konsulko.com>" 724RECIPE_MAINTAINER:pn-python3-sphinxcontrib-htmlhelp = "Tim Orling <tim.orling@konsulko.com>"
722RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jsmath = "Tim Orling <tim.orling@konsulko.com>"
723RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jquery = "Tim Orling <tim.orling@konsulko.com>" 725RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jquery = "Tim Orling <tim.orling@konsulko.com>"
726RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jsmath = "Tim Orling <tim.orling@konsulko.com>"
724RECIPE_MAINTAINER:pn-python3-sphinxcontrib-qthelp = "Tim Orling <tim.orling@konsulko.com>" 727RECIPE_MAINTAINER:pn-python3-sphinxcontrib-qthelp = "Tim Orling <tim.orling@konsulko.com>"
725RECIPE_MAINTAINER:pn-python3-sphinxcontrib-serializinghtml = "Tim Orling <tim.orling@konsulko.com>" 728RECIPE_MAINTAINER:pn-python3-sphinxcontrib-serializinghtml = "Tim Orling <tim.orling@konsulko.com>"
726RECIPE_MAINTAINER:pn-python3-sphinx-rtd-theme = "Tim Orling <tim.orling@konsulko.com>"
727RECIPE_MAINTAINER:pn-python3-subunit = "Trevor Gamblin <tgamblin@baylibre.com>" 729RECIPE_MAINTAINER:pn-python3-subunit = "Trevor Gamblin <tgamblin@baylibre.com>"
728RECIPE_MAINTAINER:pn-python3-testtools = "Trevor Gamblin <tgamblin@baylibre.com>" 730RECIPE_MAINTAINER:pn-python3-testtools = "Trevor Gamblin <tgamblin@baylibre.com>"
729RECIPE_MAINTAINER:pn-python3-trove-classifiers = "Trevor Gamblin <tgamblin@baylibre.com>" 731RECIPE_MAINTAINER:pn-python3-trove-classifiers = "Trevor Gamblin <tgamblin@baylibre.com>"
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 9cd7928154..e06731ece7 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -108,6 +108,7 @@ PTESTS_SLOW = "\
108 libevent \ 108 libevent \
109 libgcrypt \ 109 libgcrypt \
110 libmodule-build-perl \ 110 libmodule-build-perl \
111 libpng \
111 libseccomp \ 112 libseccomp \
112 lttng-tools \ 113 lttng-tools \
113 lz4 \ 114 lz4 \
diff --git a/meta/conf/distro/include/tclibc-picolibc.inc b/meta/conf/distro/include/tclibc-picolibc.inc
index 203765dfcb..2cd26cfd7d 100644
--- a/meta/conf/distro/include/tclibc-picolibc.inc
+++ b/meta/conf/distro/include/tclibc-picolibc.inc
@@ -37,4 +37,3 @@ TOOLCHAIN_NEED_CONFIGSITE_CACHE:remove = "zlib ncurses"
37SECURITY_CFLAGS:libc-picolibc:qemuriscv32 = "${SECURITY_NOPIE_CFLAGS}" 37SECURITY_CFLAGS:libc-picolibc:qemuriscv32 = "${SECURITY_NOPIE_CFLAGS}"
38SECURITY_CFLAGS:libc-picolibc:qemuriscv64 = "${SECURITY_NOPIE_CFLAGS}" 38SECURITY_CFLAGS:libc-picolibc:qemuriscv64 = "${SECURITY_NOPIE_CFLAGS}"
39 39
40
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index e943ca77d1..c506bb3ad5 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -12,7 +12,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
12GCCVERSION ?= "15.%" 12GCCVERSION ?= "15.%"
13SDKGCCVERSION ?= "${GCCVERSION}" 13SDKGCCVERSION ?= "${GCCVERSION}"
14GLIBCVERSION ?= "2.41%" 14GLIBCVERSION ?= "2.41%"
15RUSTVERSION ?= "1.86.0%" 15RUSTVERSION ?= "1.87.0%"
16 16
17PREFERRED_VERSION_gcc ?= "${GCCVERSION}" 17PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
18PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}" 18PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/meta/conf/distro/include/yocto-uninative.inc b/meta/conf/distro/include/yocto-uninative.inc
index 3d0f1fdccd..dabd604e8e 100644
--- a/meta/conf/distro/include/yocto-uninative.inc
+++ b/meta/conf/distro/include/yocto-uninative.inc
@@ -7,9 +7,9 @@
7# 7#
8 8
9UNINATIVE_MAXGLIBCVERSION = "2.41" 9UNINATIVE_MAXGLIBCVERSION = "2.41"
10UNINATIVE_VERSION = "4.7" 10UNINATIVE_VERSION = "4.8"
11 11
12UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/" 12UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
13UNINATIVE_CHECKSUM[aarch64] ?= "ac440e4fc80665c79f9718c665c6e28d771e51609c088c3c97ba3ad5cfed197a" 13UNINATIVE_CHECKSUM[aarch64] ?= "0d75ae3cc6e8245be40f55d48612285248ad331896ca3f4c772ed2fb34239fcf"
14UNINATIVE_CHECKSUM[i686] ?= "c5efa31450f3bbd63ea961d4e7c747ae41317937d429f65e1d5cf2050338e27a" 14UNINATIVE_CHECKSUM[i686] ?= "2cbfd7ad3e1362538764999dd4962eb2511211867ae17a327b65631f64f38e31"
15UNINATIVE_CHECKSUM[x86_64] ?= "5800d4e9a129d1be09cf548918d25f74e91a7c1193ae5239d5b0c9246c486d2c" 15UNINATIVE_CHECKSUM[x86_64] ?= "6d5e28258176c52b9eecf882d4553033fa700902e60ba80d4b7ce0edacbe41d6"
diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index 44267ce8e2..54fa04e213 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core"
7BBFILE_PATTERN_core = "^${LAYERDIR}/" 7BBFILE_PATTERN_core = "^${LAYERDIR}/"
8BBFILE_PRIORITY_core = "5" 8BBFILE_PRIORITY_core = "5"
9 9
10LAYERSERIES_CORENAMES = "walnascar" 10LAYERSERIES_CORENAMES = "whinlatter"
11 11
12# This should only be incremented on significant changes that will 12# This should only be incremented on significant changes that will
13# cause compatibility issues with other layers 13# cause compatibility issues with other layers
14LAYERVERSION_core = "15" 14LAYERVERSION_core = "15"
15LAYERSERIES_COMPAT_core = "walnascar" 15LAYERSERIES_COMPAT_core = "whinlatter"
16 16
17BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core" 17BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
18 18
diff --git a/meta/conf/machine/include/mips/tune-mips-24k.inc b/meta/conf/machine/include/mips/tune-mips-24k.inc
index ec4e53f63f..5dc2a8a115 100644
--- a/meta/conf/machine/include/mips/tune-mips-24k.inc
+++ b/meta/conf/machine/include/mips/tune-mips-24k.inc
@@ -5,13 +5,11 @@ MIPSPKGSFX_MIPS16E ??= ""
5require conf/machine/include/mips/tune-mips32r2.inc 5require conf/machine/include/mips/tune-mips32r2.inc
6require conf/machine/include/mips/feature-mips-mips16e.inc 6require conf/machine/include/mips/feature-mips-mips16e.inc
7 7
8
9TUNEVALID[24kc] = "Enable MIPS 24Kc processor optimizations" 8TUNEVALID[24kc] = "Enable MIPS 24Kc processor optimizations"
10TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kc", " -mtune=24kc", "", d)}" 9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kc", " -mtune=24kc", "", d)}"
11TUNEVALID[24kec] = "Enable MIPS 24KEc processor optimizations, including DSP" 10TUNEVALID[24kec] = "Enable MIPS 24KEc processor optimizations, including DSP"
12TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kec", " -mtune=24kec -mdsp", "", d)}" 11TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kec", " -mtune=24kec -mdsp", "", d)}"
13 12
14
15AVAILTUNES += "mips32r2-24kc mips32r2-24kec mips32r2-24kec-m16" 13AVAILTUNES += "mips32r2-24kc mips32r2-24kec mips32r2-24kec-m16"
16AVAILTUNES += "mips32r2el-24kc mips32r2el-24kec mips32r2el-24kec-m16" 14AVAILTUNES += "mips32r2el-24kc mips32r2el-24kec mips32r2el-24kec-m16"
17 15
@@ -32,7 +30,6 @@ MIPSPKGSFX_VARIANT:tune-mips32r2-24kec-m16 = "mips32r2-24kec${MIPSPKGSFX_MIPS16E
32PACKAGE_EXTRA_ARCHS:tune-mips32r2-24kec-m16 = "${PACKAGE_EXTRA_ARCHS:tune-mips32r2-24kec} mips32r2-24kec-m16-nf" 30PACKAGE_EXTRA_ARCHS:tune-mips32r2-24kec-m16 = "${PACKAGE_EXTRA_ARCHS:tune-mips32r2-24kec} mips32r2-24kec-m16-nf"
33QEMU_EXTRAOPTIONS:tune-mips32r2-24kec-m16-nf = " -cpu 24KEc" 31QEMU_EXTRAOPTIONS:tune-mips32r2-24kec-m16-nf = " -cpu 24KEc"
34 32
35
36# little endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16 33# little endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16
37TUNE_FEATURES:tune-mips32r2el-24kc = "${TUNE_FEATURES:tune-mips32r2el-nf} 24kc" 34TUNE_FEATURES:tune-mips32r2el-24kc = "${TUNE_FEATURES:tune-mips32r2el-nf} 24kc"
38TUNE_FEATURES:tune-mips32r2el-24kec = "${TUNE_FEATURES:tune-mips32r2el-nf} 24kec" 35TUNE_FEATURES:tune-mips32r2el-24kec = "${TUNE_FEATURES:tune-mips32r2el-nf} 24kec"
diff --git a/meta/conf/machine/include/mips/tune-mips-74k.inc b/meta/conf/machine/include/mips/tune-mips-74k.inc
index 0ec90ca076..e328b3b490 100644
--- a/meta/conf/machine/include/mips/tune-mips-74k.inc
+++ b/meta/conf/machine/include/mips/tune-mips-74k.inc
@@ -5,7 +5,6 @@ MIPSPKGSFX_MIPS16E ??= ""
5require conf/machine/include/mips/tune-mips32r2.inc 5require conf/machine/include/mips/tune-mips32r2.inc
6require conf/machine/include/mips/feature-mips-mips16e.inc 6require conf/machine/include/mips/feature-mips-mips16e.inc
7 7
8
9TUNEVALID[74kc] = "Enable MIPS 74K with DSPr2 processor optimizations" 8TUNEVALID[74kc] = "Enable MIPS 74K with DSPr2 processor optimizations"
10TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "74kc", " -mtune=74kc", "", d)}" 9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "74kc", " -mtune=74kc", "", d)}"
11 10
diff --git a/meta/conf/machine/include/mips/tune-octeon.inc b/meta/conf/machine/include/mips/tune-octeon.inc
index d4670e3259..0004190c34 100644
--- a/meta/conf/machine/include/mips/tune-octeon.inc
+++ b/meta/conf/machine/include/mips/tune-octeon.inc
@@ -17,7 +17,6 @@ BASE_LIB:tune-octeon2_64 = "lib64"
17MIPSPKGSFX_VARIANT:tune-octeon2_64 = "octeon2_64" 17MIPSPKGSFX_VARIANT:tune-octeon2_64 = "octeon2_64"
18PACKAGE_EXTRA_ARCHS:tune-octeon2_64 = "mips64 octeon2_64" 18PACKAGE_EXTRA_ARCHS:tune-octeon2_64 = "mips64 octeon2_64"
19 19
20
21TUNEVALID[octeon3] = "Enable optimization related to octeon3 support" 20TUNEVALID[octeon3] = "Enable optimization related to octeon3 support"
22TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'octeon3', ' -march=octeon3 ', '',d)}" 21TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'octeon3', ' -march=octeon3 ', '',d)}"
23 22
diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
index d7392d4762..c143e37f71 100644
--- a/meta/conf/machine/include/qemu.inc
+++ b/meta/conf/machine/include/qemu.inc
@@ -1,10 +1,3 @@
1PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
2PREFERRED_PROVIDER_virtual/egl ?= "mesa"
3PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
4PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
5PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
6PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
7
8XSERVER ?= "xserver-xorg \ 1XSERVER ?= "xserver-xorg \
9 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \ 2 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \
10 xf86-video-fbdev \ 3 xf86-video-fbdev \
diff --git a/meta/conf/machine/include/riscv/README b/meta/conf/machine/include/riscv/README
new file mode 100644
index 0000000000..beef68f523
--- /dev/null
+++ b/meta/conf/machine/include/riscv/README
@@ -0,0 +1,122 @@
12025/06/08 - Mark Hatle <mark.hatle@amd.com>
2 - Initial Revision
3
4The RISC-V ISA is broken into two parts, a base ISA and extensions. As
5of the writing of this document these are documented at:
6
7https://lf-riscv.atlassian.net/wiki/spaces/HOME/pages/16154769/RISC-V+Technical+Specifications
8
9Specifically "The RISC-V Instruction Set Manual Volume I: Unprivileged ISA"
10was used to create this implementation.
11
12Requirements
13------------
14As RISC-V is a “variable” ISA (a base isa plus numerous extensions), a
15mechanism is required to specify a series of ISA features that a user or
16tune can use to specify a specific CPU instantiation.
17
18Not all ratified or draft features should or can be implemented with the
19available resources.
20
21The implementation should work for Linux, baremetal (newlib), zephyr and
22other operating systems. Supported extensions should be based on
23real-world examples.
24
25Linux
26-----
27Linux required base and support extensions should be available. Linux
28requires:
29* Base: rv32ima & rv64ima
30* Optional FPU: fd
31* Optional RISCV_ISA_C: c
32* Optiona RISCV_ISA_V: v
33* Required additional: _zicsr_zifencei
34* Optional RISCV_ISA_ZBA: _zba
35* Optional RISCV_ISA_ZBB: _zbb
36* Optional RISCV_ISA_ZBC: _zbc (not supported by current QEMU design)
37
38See: https://git.yoctoproject.org/linux-yocto/tree/arch/riscv/Makefile?h=v6.12/base
39
40Baremetal
41---------
42AMD Microblaze-V FPGA support uses the following static configurations:
43Base: rv32e, rv32i, rv64i
44Extensions: m, a, f, d, c, b, zicsr, zifencei
45
46Zephyr
47------
48AMD Microblaze-V development for Zephyr is the same as Baremetal, with a
49few additional extensions: zbc, zicbom
50
51ABI
52---
53The following ABIs are supported GNU tools and some combination of systems.
54* ilp32 - Integer, long and pointer are 32-bit
55* lp64 - Long and pointer are 64-bit (integer is 32-bit)
56
57The ABI is dependent upon the core system implementation, as ilp32 can
58only used on an ‘rv32’ system, while lp64 can only be used on an ‘rv64’
59system.
60
61There are additional variations of each ABI:
62* e - used with the Reduced register extension
63* f - used when single precision floating point (but not double precision) is
64 enabled
65* d - used when both single and double precision floating point is enabled
66
67Based on the above, the ABI should be automatically determined based on
68the selected Base ISA and Extensions.
69
70Implementation
71--------------
72To make it easier to generate the RISC-V canonical arch, ISA based -march,
73and the ABI string, a few new variables are added for specific RISC-V items.
74
75TUNE_RISCV_ARCH - This contains the canonical GNU style arch, generally this
76 will evaluate to "riscv32" or "riscv64".
77
78TUNE_RISCV_MARCH - This will contain an ISA based -march string compatible
79 with gcc and similar toolchains. For example:
80 rv32imacfd_zicsr_zifencei
81
82TUNE_RISCV_ABI - This is the generated ABI that corresponds to the ARCH and
83 MARCH/ISA values. For riscv32, the value will be ilp32
84 (int, long and pointer is 32-bit) with the ISA
85 variation. For riscv64, the value will be lp64 (long
86 and pointer are 64-bit bit, while int is 32-bit) with the
87 ISA variation. The ISA affects the ABI when the 'e', 'f'
88 and 'd' extension are used.
89
90TUNE_RISCV_PKGARCH - This is the generated PKGARCH value.
91
92The standard variables are defined as:
93
94TUNE_CCARGS = "${@ '-march=${TUNE_RISCV_MARCH} -mabi=${TUNE_RISCV_ABI}' if not d.getVar('TUNE_CCARGS:tune-${DEFAULTTUNE}') else 'TUNE_CCARGS:tune-${DEFAULTTUNE}'}"
95
96The above will allow the user to specify an implementation specific
97TUNE_CCARGS for a given processor tune if the default implementtion is
98not adequate for some reason. It is expected that most, if not all,
99implementations will use the default behavior.
100
101TUNE_ARCH = "${TUNE_RISCV_ARCH}"
102TUNE_PKGARCH = "${TUNE_RISCV_PKGARCH}"
103
104The above two will always base their setting off the standard TUNE_FEATURES.
105
106Ratified and draft extensions should be implemented as TUNE_FEATURES in
107the arch-riscv.inc file.
108
109Vendor specific extensions and processor specific settings should go
110into a 'tune-<vendor>.inc' file, with tune-riscv.inc being reserved for
111general purpose tunes.
112
113TUNE_FEATURE Helper
114-------------------
115A special helper function has been written that will convert RISC-V ISA
116notation into TUNE_FEATURE notion, for example:
117
118rv32g -> rv 32 i m a f d zicsr zifencei
119
120The helper can be called using oe.tune.riscv_isa_to_tune("<ISA>") such as
121oe.tune.riscv_isa_to_tune("rv64gc") which would return:
122 rv 64 i m a f d c zicsr zifencei
diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc b/meta/conf/machine/include/riscv/arch-riscv.inc
index b34064e78f..99bed8fde5 100644
--- a/meta/conf/machine/include/riscv/arch-riscv.inc
+++ b/meta/conf/machine/include/riscv/arch-riscv.inc
@@ -1,14 +1,140 @@
1# RISCV Architecture definition 1# RISCV Architecture definition
2 2
3DEFAULTTUNE ?= "riscv64" 3# Based on the RISC-V Instruction Set Manual Volume I: Unprivileged ISA from May 2025
4# As well as the RISC-V options for using GCC (as of June 2025)
4 5
5TUNE_ARCH = "${TUNE_ARCH:tune-${DEFAULTTUNE}}" 6# Note: the following should be implemented in the order that GCC expects
6TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" 7# -march= values to be defined in.
7TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}"
8TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}"
9 8
10TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nc', ' -march=rv64imafd', ' ', d)}" 9# Base ISA
10# All supported march strings must start with rv32 or rv64
11TUNEVALID[rv] = "RISC-V"
12TUNE_RISCV_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "rv", "riscv", "", d)}"
13TUNE_RISCV_MARCH = "${@bb.utils.contains("TUNE_FEATURES", "rv", "rv", "", d)}"
14TUNE_RISCV_ABI = ""
11 15
16# There are two primary ABIs, ilp32 and lp64
17# There are variants of both, that appears to be based on extensions above
18# For example:
19# rv32i uses ilp32, rv32e uses ilp32e, rv32f uses ilp32f
20# rv64i uses lp64, rv64if uses lp64f, rv64id uses lp64d
21TUNEVALID[32] = "ISA XLEN - 32-bit"
22TUNECONFLICTS[32] = "64"
23TUNE_RISCV_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "32", "32", "", d)}"
24TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "32", "32", "", d)}"
25TUNE_RISCV_ABI .= "${@bb.utils.contains("TUNE_FEATURES", "32", "ilp32", "", d)}"
26
27TUNEVALID[64] = "ISA XLEN - 64-bit"
28TUNECONFLICTS[64] = "32"
29TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "64", "64", "", d)}"
30TUNE_RISCV_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "64", "64", "", d)}"
31TUNE_RISCV_ABI .= "${@bb.utils.contains("TUNE_FEATURES", "64", "lp64", "", d)}"
32
33# The package arch starts with the canonical arch, but adds some extensions to make
34# package compatibility clear
35TUNE_RISCV_PKGARCH = "${TUNE_RISCV_ARCH}"
36
37# i, e, or g are defined by gcc, but 'g' refers to 'i' + extensions 'MAFD Zicsr Zifencei'
38# So 'g' will not be defined here as it is an abbreviation of the expanded version
39TUNEVALID[e] = "Reduced register base integer extension"
40TUNECONFLICTS[e] = "i"
41TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "e", "e", "", d)}"
42TUNE_RISCV_ABI .= "${@bb.utils.contains("TUNE_FEATURES", "e", "e", "", d)}"
43TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "e", "e", "", d)}"
44
45TUNEVALID[i] = "Base integer extension"
46TUNECONFLICTS[i] = "e"
47TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "i", "i", "", d)}"
48TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "i", "i", "", d)}"
49
50# Extensions
51TUNEVALID[m] = "Integer multiplication and division extension"
52TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m", "m", "", d)}"
53TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m", "m", "", d)}"
54
55TUNEVALID[a] = "Atomic extension"
56TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "a", "a", "", d)}"
57TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "a", "a", "", d)}"
58
59TUNEVALID[f] = "Single-precision floating-point extension"
60TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "f d", "f", "", d)}"
61TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "f d", "f", "", d)}"
62
63TUNEVALID[d] = "Double-precision floating-point extension"
64TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "d", "d", "", d)}"
65TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "d", "d", "", d)}"
66
67# Only f OR d, but just one
68TUNE_RISCV_ABI .= "${@bb.utils.contains("TUNE_FEATURES", "d", "d", bb.utils.contains("TUNE_FEATURES", "f", "f", "", d), d)}"
69
70TUNEVALID[c] = "Compressed extension"
71TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "c", "c", "", d)}"
72TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "c", "c", "", d)}"
73
74TUNEVALID[b] = "Bit Manipulation extension"
75# Handled below via zba, zbb, zbs
76# This matches current Linux kernel behavior
77#TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "b", "b", "", d)}"
78#TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "b", "b", "", d)}"
79
80TUNEVALID[v] = "Vector operations extension"
81TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "v", "v", "", d)}"
82TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "v", "v", "", d)}"
83
84# Now the special Z extensions
85TUNEVALID[zicbom] = "Cache-block management extension"
86TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicbom", "_zicbom", "", d)}"
87TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicbom", "_zicbom", "", d)}"
88
89TUNEVALID[zicsr] = "Control and status register access extension"
90TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicsr f d", "_zicsr", "", d)}"
91# If zicsr (or zifencei) is in the path, OpenSBI fails to use the extensions, do to (Makefile):
92# # Check whether the assembler and the compiler support the Zicsr and Zifencei extensions
93# CC_SUPPORT_ZICSR_ZIFENCEI := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) -nostdlib -march=rv$(OPENSBI_CC_XLEN)imafd_zicsr_zifencei -x c /dev/null -o /dev/null 2>&1 | grep -e "zicsr" -e "zifencei" > /dev/null && echo n || echo y)
94# this will match on the path containing zicsr or zifencei when an error is reported, which
95# will always happens in this check.
96#
97# Yocto Project Bugzilla 15897
98#
99#TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicsr f d", "_zicsr", "", d)}"
100
101TUNEVALID[zifencei] = "Instruction-fetch fence extension"
102TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zifencei", "_zifencei", "", d)}"
103# See above Bug 15897
104#TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zifencei", "_zifencei", "", d)}"
105
106TUNEVALID[zba] = "Address bit manipulation extension"
107TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zba", "_zba", "", d)}"
108TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zba", "_zba", "", d)}"
109
110TUNEVALID[zbb] = "Basic bit manipulation extension"
111TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbb", "_zbb", "", d)}"
112TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbb", "_zbb", "", d)}"
113
114TUNEVALID[zbc] = "Carry-less multiplication extension"
115TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zbc", "_zbc", "", d)}"
116TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zbc", "_zbc", "", d)}"
117
118TUNEVALID[zbs] = "Single-bit manipulation extension"
119TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbs", "_zbs", "", d)}"
120TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbs", "_zbs", "", d)}"
121
122# Construct TUNE_CCARGS
123# This should result in a CCARG similar to:
124# -march=rv32imac -mabi=ilp32
125TUNE_CCARGS = "${@ '-march=${TUNE_RISCV_MARCH} -mabi=${TUNE_RISCV_ABI}' if not d.getVar('TUNE_CCARGS:tune-${DEFAULTTUNE}') else 'TUNE_CCARGS:tune-${DEFAULTTUNE}'}"
126
127# Construct TUNE_ARCH
128# This should result in an arch string similar to:
129# riscv32
130TUNE_ARCH = "${TUNE_RISCV_ARCH}"
131
132# Construct TUNE_PKGARCH
133# This should result in a package are like:
134# riscv32imac
135TUNE_PKGARCH = "${TUNE_RISCV_PKGARCH}"
136
137# Misc settings
12# Fix: ld: unrecognized option '--hash-style=sysv' 138# Fix: ld: unrecognized option '--hash-style=sysv'
13LINKER_HASH_STYLE:libc-newlib = "" 139LINKER_HASH_STYLE:libc-newlib = ""
14LINKER_HASH_STYLE:libc-picolibc = "" 140LINKER_HASH_STYLE:libc-picolibc = ""
diff --git a/meta/conf/machine/include/riscv/tune-riscv.inc b/meta/conf/machine/include/riscv/tune-riscv.inc
index 804712077e..12c1125c8b 100644
--- a/meta/conf/machine/include/riscv/tune-riscv.inc
+++ b/meta/conf/machine/include/riscv/tune-riscv.inc
@@ -1,41 +1,23 @@
1require conf/machine/include/riscv/arch-riscv.inc 1require conf/machine/include/riscv/arch-riscv.inc
2 2
3TUNEVALID[riscv64] = "Enable 64-bit RISC-V optimizations" 3DEFAULTTUNE ?= "riscv64"
4TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations"
5
6TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point"
7TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point"
8
9TUNEVALID[riscv64nc] = "Enable 64-bit RISC-V optimizations without compressed instructions"
10
11TUNEVALID[bigendian] = "Big endian mode"
12 4
13AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf" 5AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf"
14 6
15# Default 7# Default
16TUNE_FEATURES:tune-riscv64 = "riscv64" 8TUNE_FEATURES:tune-riscv64 := "${@oe.tune.riscv_isa_to_tune("rv64gc")}"
17TUNE_ARCH:tune-riscv64 = "riscv64" 9PACKAGE_EXTRA_ARCHS:tune-riscv64 = "${TUNE_RISCV_PKGARCH}"
18TUNE_PKGARCH:tune-riscv64 = "riscv64"
19PACKAGE_EXTRA_ARCHS:tune-riscv64 = "riscv64"
20 10
21TUNE_FEATURES:tune-riscv32 = "riscv32" 11TUNE_FEATURES:tune-riscv32 := "${@oe.tune.riscv_isa_to_tune("rv32gc")}"
22TUNE_ARCH:tune-riscv32 = "riscv32" 12PACKAGE_EXTRA_ARCHS:tune-riscv32 = "${TUNE_RISCV_PKGARCH}"
23TUNE_PKGARCH:tune-riscv32 = "riscv32"
24PACKAGE_EXTRA_ARCHS:tune-riscv32 = "riscv32"
25 13
26# No float 14# No float
27TUNE_FEATURES:tune-riscv64nf = "${TUNE_FEATURES:tune-riscv64} riscv64nf" 15TUNE_FEATURES:tune-riscv64nf := "${@oe.tune.riscv_isa_to_tune("rv64imac_zicsr_zifencei")}"
28TUNE_ARCH:tune-riscv64nf = "riscv64" 16PACKAGE_EXTRA_ARCHS:tune-riscv64nf = "${TUNE_RISCV_PKGARCH}"
29TUNE_PKGARCH:tune-riscv64nf = "riscv64nf"
30PACKAGE_EXTRA_ARCHS:tune-riscv64nf = "riscv64nf"
31 17
32TUNE_FEATURES:tune-riscv32nf = "${TUNE_FEATURES:tune-riscv32} riscv32nf" 18TUNE_FEATURES:tune-riscv32nf := "${@oe.tune.riscv_isa_to_tune("rv32imac_zicsr_zifencei")}"
33TUNE_ARCH:tune-riscv32nf = "riscv32" 19PACKAGE_EXTRA_ARCHS:tune-riscv32nf = "${TUNE_RISCV_PKGARCH}"
34TUNE_PKGARCH:tune-riscv32nf = "riscv32nf"
35PACKAGE_EXTRA_ARCHS:tune-riscv32nf = "riscv32nf"
36 20
37# no compressed 21# no compressed
38TUNE_FEATURES:tune-riscv64nc = "${TUNE_FEATURES:tune-riscv64} riscv64nc" 22TUNE_FEATURES:tune-riscv64nc := "${@oe.tune.riscv_isa_to_tune("rv64imafd_zicsr_zifencei")}"
39TUNE_ARCH:tune-riscv64nc = "riscv64" 23PACKAGE_EXTRA_ARCHS:tune-riscv64nc = "${TUNE_RISCV_PKGARCH}"
40TUNE_PKGARCH:tune-riscv64nc = "riscv64nc"
41PACKAGE_EXTRA_ARCHS:tune-riscv64nc = "riscv64nc"
diff --git a/meta/conf/machine/qemuriscv32.conf b/meta/conf/machine/qemuriscv32.conf
index d3858dc051..aff36c28a5 100644
--- a/meta/conf/machine/qemuriscv32.conf
+++ b/meta/conf/machine/qemuriscv32.conf
@@ -2,9 +2,9 @@
2#@NAME: generic riscv32 machine 2#@NAME: generic riscv32 machine
3#@DESCRIPTION: Machine configuration for running a generic riscv32 3#@DESCRIPTION: Machine configuration for running a generic riscv32
4 4
5require conf/machine/include/riscv/qemuriscv.inc 5DEFAULTTUNE ?= "riscv32"
6 6
7DEFAULTTUNE = "riscv32" 7require conf/machine/include/riscv/qemuriscv.inc
8 8
9PREFERRED_VERSION_openocd-native = "riscv" 9PREFERRED_VERSION_openocd-native = "riscv"
10PREFERRED_VERSION_openocd = "riscv" 10PREFERRED_VERSION_openocd = "riscv"
diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf
index 4a9c6d364b..62108b703b 100644
--- a/meta/conf/machine/qemux86-64.conf
+++ b/meta/conf/machine/qemux86-64.conf
@@ -2,12 +2,6 @@
2#@NAME: QEMU x86-64 machine 2#@NAME: QEMU x86-64 machine
3#@DESCRIPTION: Machine configuration for running an x86-64 system on QEMU 3#@DESCRIPTION: Machine configuration for running an x86-64 system on QEMU
4 4
5PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
6PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
7PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
8PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
9PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
10
11require conf/machine/include/qemu.inc 5require conf/machine/include/qemu.inc
12DEFAULTTUNE ?= "core2-64" 6DEFAULTTUNE ?= "core2-64"
13require conf/machine/include/x86/tune-x86-64-v3.inc 7require conf/machine/include/x86/tune-x86-64-v3.inc
diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf
index 1e072e1ae2..51f080bd2a 100644
--- a/meta/conf/machine/qemux86.conf
+++ b/meta/conf/machine/qemux86.conf
@@ -2,12 +2,6 @@
2#@NAME: QEMU x86 machine 2#@NAME: QEMU x86 machine
3#@DESCRIPTION: Machine configuration for running an x86 system on QEMU 3#@DESCRIPTION: Machine configuration for running an x86 system on QEMU
4 4
5PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
6PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
7PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
8PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
9PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
10
11require conf/machine/include/qemu.inc 5require conf/machine/include/qemu.inc
12DEFAULTTUNE ?= "core2-32" 6DEFAULTTUNE ?= "core2-32"
13require conf/machine/include/x86/tune-corei7.inc 7require conf/machine/include/x86/tune-corei7.inc
diff --git a/meta/files/license-hashes.csv b/meta/files/license-hashes.csv
index 906660b85d..5e81dbcdec 100644
--- a/meta/files/license-hashes.csv
+++ b/meta/files/license-hashes.csv
@@ -3,7 +3,8 @@
30636e73ff0215e8d672dc4c32c317bb3,GPL-2.0-only 30636e73ff0215e8d672dc4c32c317bb3,GPL-2.0-only
4063b5c3ebb5f3aa4c85a2ed18a31fbe7,GPL-2.0-only 4063b5c3ebb5f3aa4c85a2ed18a31fbe7,GPL-2.0-only
50a97f8e4cbaf889d6fa51f84b89a79f6,ISC 50a97f8e4cbaf889d6fa51f84b89a79f6,ISC
60ceb9ff3b27d3a8cf451ca3785d73c71,BSD-3-Clause & MIT 60c241922fc69330e2e5590de114f3bf5,BSD-3-Clause
70ceb9ff3b27d3a8cf451ca3785d73c71,MIT
70dd48ae8103725bd7b401261520cdfbb,BSD-3-Clause 80dd48ae8103725bd7b401261520cdfbb,BSD-3-Clause
80e46634a01bfef056892949acaea85b1,BSD-3-Clause 90e46634a01bfef056892949acaea85b1,BSD-3-Clause
91034431802e57486b393d00c5d262b8a,Apache-2.0 101034431802e57486b393d00c5d262b8a,Apache-2.0
@@ -13,16 +14,22 @@
13201414b6610203caed355323b1ab3116,BSD-3-Clause 14201414b6610203caed355323b1ab3116,BSD-3-Clause
14252890d9eee26aab7b432e8b8a616475,LGPL-2.0-only 15252890d9eee26aab7b432e8b8a616475,LGPL-2.0-only
152b8c039b2b9a25f0feb4410c4542d346,BSD-2-Clause 162b8c039b2b9a25f0feb4410c4542d346,BSD-2-Clause
172d1c30374313ae40df7772dc92ef9fd5,GPL-3.0-only
162d5025d4aa3495befef8f17206a5b0a1,LGPL-2.1-only 182d5025d4aa3495befef8f17206a5b0a1,LGPL-2.1-only
173214f080875748938ba060314b4f727d,LGPL-2.0-only 193214f080875748938ba060314b4f727d,LGPL-2.0-only
2037acb030ba070680be4a9fcb57f2735a,MIT
18385c55653886acac3821999a3ccd17b3,Artistic-1.0 | GPL-2.0-only 21385c55653886acac3821999a3ccd17b3,Artistic-1.0 | GPL-2.0-only
2238be95f95200434dc208e2ee3dab5081,BSD-3-Clause
19393a5ca445f6965873eca0259a17f833,GPL-2.0-only 23393a5ca445f6965873eca0259a17f833,GPL-2.0-only
203b83ef96387f14655fc854ddc3c6bd57,Apache-2.0 243b83ef96387f14655fc854ddc3c6bd57,Apache-2.0
213bf50002aefd002f49e7bb854063f7e7,LGPL-2.0-only 253bf50002aefd002f49e7bb854063f7e7,LGPL-2.0-only
263c91c17266710e16afdbb2b6d15c761c,Apache-2.0
223debde09238a8c8e1f6a847e1ec9055b,LGPL-2.1-only 273debde09238a8c8e1f6a847e1ec9055b,LGPL-2.1-only
234325afd396febcb659c36b49533135d4,GPL-2.0-only 284325afd396febcb659c36b49533135d4,GPL-2.0-only
244c641f2d995c47f5cb08bdb4b5b6ea05,BSD-2-Clause 294c641f2d995c47f5cb08bdb4b5b6ea05,BSD-2-Clause
304e2a8d8f9935d6a766a5879a77ddc24d,Apache-2.0
254ee4feb2b545c2231749e5c54ace343e,BSD-3-Clause 314ee4feb2b545c2231749e5c54ace343e,BSD-3-Clause
324efd8bdbab9cff00dcd75f2c3ee4e190,BSD-2-Clause
264fbd65380cdd255951079008b364516c,LGPL-2.1-only 334fbd65380cdd255951079008b364516c,LGPL-2.1-only
2750fab24ce589d69af8964fdbfe414c60,BSD-2-Clause 3450fab24ce589d69af8964fdbfe414c60,BSD-2-Clause
2854c7042be62e169199200bc6477f04d1,BSD-3-Clause 3554c7042be62e169199200bc6477f04d1,BSD-3-Clause
@@ -30,6 +37,7 @@
3059530bdf33659b29e73d4adb9f9f6552,GPL-2.0-only 3759530bdf33659b29e73d4adb9f9f6552,GPL-2.0-only
315d4950ecb7b26d2c5e4e7b4e0dd74707,BSD-3-Clause 385d4950ecb7b26d2c5e4e7b4e0dd74707,BSD-3-Clause
325f30f0716dfdd0d91eb439ebec522ec2,LGPL-2.0-only 395f30f0716dfdd0d91eb439ebec522ec2,LGPL-2.0-only
406551d79bf661eed41a50157513ee4ad6,BSD-3-Clause
336a6a8e020838b23406c81b19c1d46df6,LGPL-3.0-only 416a6a8e020838b23406c81b19c1d46df6,LGPL-3.0-only
34721f23a96ff4161ca3a5f071bbe18108,MIT 42721f23a96ff4161ca3a5f071bbe18108,MIT
357364d1e4653d3584181e9d22d81f275f,CC0-1.0 437364d1e4653d3584181e9d22d81f275f,CC0-1.0
@@ -41,8 +49,10 @@
417fbc338309ac38fefcd64b04bb903e34,LGPL-2.1-only 497fbc338309ac38fefcd64b04bb903e34,LGPL-2.1-only
4280fa7b56a28e8c902e6af194003220a5,BSD-2-Clause 5080fa7b56a28e8c902e6af194003220a5,BSD-2-Clause
4385d8a977ee9d7c5ab4ac03c9b95431c4,MIT-0 5185d8a977ee9d7c5ab4ac03c9b95431c4,MIT-0
5288073b6dd8ec00fe09da59e0b6dfded1,BSD-3-Clause
4488a4355858a1433fea99fae34a44da88,GPL-2.0-only 5388a4355858a1433fea99fae34a44da88,GPL-2.0-only
458bd23871802951c9ad63855151204c2c,BSD-2-Clause 548bd23871802951c9ad63855151204c2c,BSD-2-Clause
558c6127b79304a5e0a5756d03c7a58766,MIT
468ca43cbc842c2336e835926c2166c28b,GPL-2.0-only 568ca43cbc842c2336e835926c2166c28b,GPL-2.0-only
47939cce1ec101726fa754e698ac871622,BSD-3-Clause 57939cce1ec101726fa754e698ac871622,BSD-3-Clause
4894d55d512a9ba36caa9b7df079bae19f,GPL-2.0-only 5894d55d512a9ba36caa9b7df079bae19f,GPL-2.0-only
@@ -53,8 +63,10 @@ a54a1a6a39e7f9dbb4a23a42f5c7fd1c,Apache-2.0
53a651bb3d8b1c412632e28823bb432b40,BSD-3-Clause 63a651bb3d8b1c412632e28823bb432b40,BSD-3-Clause
54a6f89e2100d9b6cdffcea4f398e37343,LGPL-2.1-only 64a6f89e2100d9b6cdffcea4f398e37343,LGPL-2.1-only
55ad4e9d34a2e966dfe9837f18de03266d,GFDL-1.1-only 65ad4e9d34a2e966dfe9837f18de03266d,GFDL-1.1-only
66ae6de3dee02712a1e55b280671be53bf,BSD-3-Clause
56b234ee4d69f5fce4486a80fdaf4a4263,GPL-2.0-only 67b234ee4d69f5fce4486a80fdaf4a4263,GPL-2.0-only
57b27575459e02221ccef97ec0bfd457ae,Apache-2.0 68b27575459e02221ccef97ec0bfd457ae,Apache-2.0
69b278a92d2c1509760384428817710378,MPL-2.0
58b376d29a53c9573006b9970709231431,MIT 70b376d29a53c9573006b9970709231431,MIT
59b5f72aef53d3b2b432702c30b0215666,BSD-3-Clause 71b5f72aef53d3b2b432702c30b0215666,BSD-3-Clause
60b66384e7137e41a9b1904ef4d39703b6,Apache-2.0 72b66384e7137e41a9b1904ef4d39703b6,Apache-2.0
@@ -63,12 +75,16 @@ bfe1f75d606912a4111c90743d6c7325,MPL-1.1-only
63c93c0550bd3173f4504b2cbd8991e50b,GPL-2.0-only 75c93c0550bd3173f4504b2cbd8991e50b,GPL-2.0-only
64d014fb11a34eb67dc717fdcfc97e60ed,GFDL-1.2-only 76d014fb11a34eb67dc717fdcfc97e60ed,GFDL-1.2-only
65d0b68be4a2dc957aaf09144970bc6696,MIT 77d0b68be4a2dc957aaf09144970bc6696,MIT
78d0fd9ebda39468b51ff4539c9fbb13a8,BSD-3-Clause
66d32239bcb673463ab874e80d47fae504,GPL-3.0-only 79d32239bcb673463ab874e80d47fae504,GPL-3.0-only
80d44fdeb607e2d2614db9464dbedd4094,MPL-2.0
81d4eb2084b3083d2c275ec52ef4ba9ac1,BSD-3-Clause
67d7810fab7487fb0aad327b76f1be7cd7,GPL-2.0-only 82d7810fab7487fb0aad327b76f1be7cd7,GPL-2.0-only
68d8045f3b8f929c1cb29a1e3fd737b499,LGPL-2.1-only 83d8045f3b8f929c1cb29a1e3fd737b499,LGPL-2.1-only
69db979804f025cf55aabec7129cb671ed,LGPL-2.0-only 84db979804f025cf55aabec7129cb671ed,LGPL-2.0-only
70e020ca655b06c112def28e597ab844f1,GFDL-1.3-only 85e020ca655b06c112def28e597ab844f1,GFDL-1.3-only
71e659f77bfd9002659e112d0d3d59b2c1,BSD-2-Clause 86e659f77bfd9002659e112d0d3d59b2c1,BSD-2-Clause
87eb1e647870add0502f8f010b19de32af,AGPL-3.0-or-later
72eb723b61539feef013de476e68b5c50a,GPL-2.0-only 88eb723b61539feef013de476e68b5c50a,GPL-2.0-only
73ebb5c50ab7cab4baeffba14977030c07,GPL-2.0-only 89ebb5c50ab7cab4baeffba14977030c07,GPL-2.0-only
74efe2cb9a35826992b9df68224e3c2628,EPL-1.0 90efe2cb9a35826992b9df68224e3c2628,EPL-1.0
diff --git a/meta/lib/bbconfigbuild/configfragments.py b/meta/lib/bbconfigbuild/configfragments.py
index c1dddc3e4c..61c33ac316 100644
--- a/meta/lib/bbconfigbuild/configfragments.py
+++ b/meta/lib/bbconfigbuild/configfragments.py
@@ -62,7 +62,22 @@ class ConfigFragmentsPlugin(LayerPlugin):
62 else: 62 else:
63 print('Name: {}\nPath: {}\nEnabled: {}\nSummary: {}\nDescription:\n{}\n'.format(f['name'], f['path'], 'yes' if is_enabled else 'no', f['summary'],''.join(f['description']))) 63 print('Name: {}\nPath: {}\nEnabled: {}\nSummary: {}\nDescription:\n{}\n'.format(f['name'], f['path'], 'yes' if is_enabled else 'no', f['summary'],''.join(f['description'])))
64 64
65 def print_builtin_fragments(builtin, enabled):
66 print('Available built-in fragments:')
67 builtin_dict = {i[0]:i[1] for i in [f.split(':') for f in builtin]}
68 for prefix,var in builtin_dict.items():
69 print('{}/...\tSets {} = ...'.format(prefix, var))
70 print('')
71 enabled_builtin_fragments = [f for f in enabled if self.builtin_fragment_exists(f)]
72 print('Enabled built-in fragments:')
73 for f in enabled_builtin_fragments:
74 prefix, value = f.split('/', 1)
75 print('{}\tSets {} = "{}"'.format(f, builtin_dict[prefix], value))
76 print('')
77
65 all_enabled_fragments = (self.tinfoil.config_data.getVar('OE_FRAGMENTS') or "").split() 78 all_enabled_fragments = (self.tinfoil.config_data.getVar('OE_FRAGMENTS') or "").split()
79 all_builtin_fragments = (self.tinfoil.config_data.getVar('OE_FRAGMENTS_BUILTIN') or "").split()
80 print_builtin_fragments(all_builtin_fragments, all_enabled_fragments)
66 81
67 for layername, layerdata in self.discover_fragments().items(): 82 for layername, layerdata in self.discover_fragments().items():
68 layerdir = layerdata['layerdir'] 83 layerdir = layerdata['layerdir']
@@ -89,6 +104,11 @@ class ConfigFragmentsPlugin(LayerPlugin):
89 return True 104 return True
90 return False 105 return False
91 106
107 def builtin_fragment_exists(self, fragmentname):
108 fragment_prefix = fragmentname.split("/",1)[0]
109 fragment_prefix_defs = set([f.split(':')[0] for f in self.tinfoil.config_data.getVar('OE_FRAGMENTS_BUILTIN').split()])
110 return fragment_prefix in fragment_prefix_defs
111
92 def create_conf(self, confpath): 112 def create_conf(self, confpath):
93 if not os.path.exists(confpath): 113 if not os.path.exists(confpath):
94 with open(confpath, 'w') as f: 114 with open(confpath, 'w') as f:
@@ -112,7 +132,7 @@ class ConfigFragmentsPlugin(LayerPlugin):
112 return " ".join(enabled_fragments), None, 0, True 132 return " ".join(enabled_fragments), None, 0, True
113 133
114 for f in args.fragmentname: 134 for f in args.fragmentname:
115 if not self.fragment_exists(f): 135 if not self.fragment_exists(f) and not self.builtin_fragment_exists(f):
116 raise Exception("Fragment {} does not exist; use 'list-fragments' to see the full list.".format(f)) 136 raise Exception("Fragment {} does not exist; use 'list-fragments' to see the full list.".format(f))
117 137
118 self.create_conf(args.confpath) 138 self.create_conf(args.confpath)
diff --git a/meta/lib/oe/__init__.py b/meta/lib/oe/__init__.py
index dd094a874a..73de774266 100644
--- a/meta/lib/oe/__init__.py
+++ b/meta/lib/oe/__init__.py
@@ -12,4 +12,4 @@ __path__ = extend_path(__path__, __name__)
12BBIMPORTS = ["qa", "data", "path", "utils", "types", "package", "packagedata", \ 12BBIMPORTS = ["qa", "data", "path", "utils", "types", "package", "packagedata", \
13 "packagegroup", "sstatesig", "lsb", "cachedpath", "license", "qemu", \ 13 "packagegroup", "sstatesig", "lsb", "cachedpath", "license", "qemu", \
14 "reproducible", "rust", "buildcfg", "go", "spdx30_tasks", "spdx_common", \ 14 "reproducible", "rust", "buildcfg", "go", "spdx30_tasks", "spdx_common", \
15 "cve_check"] 15 "cve_check", "tune"]
diff --git a/meta/lib/oe/go.py b/meta/lib/oe/go.py
index dfd957d157..4559dc63b2 100644
--- a/meta/lib/oe/go.py
+++ b/meta/lib/oe/go.py
@@ -7,6 +7,10 @@
7import re 7import re
8 8
9def map_arch(a): 9def map_arch(a):
10 """
11 Map our architecture names to Go's GOARCH names.
12 See https://github.com/golang/go/blob/master/src/internal/syslist/syslist.go for the complete list.
13 """
10 if re.match('i.86', a): 14 if re.match('i.86', a):
11 return '386' 15 return '386'
12 elif a == 'x86_64': 16 elif a == 'x86_64':
@@ -31,4 +35,4 @@ def map_arch(a):
31 return 'riscv64' 35 return 'riscv64'
32 elif a == 'loongarch64': 36 elif a == 'loongarch64':
33 return 'loong64' 37 return 'loong64'
34 return '' 38 raise KeyError(f"Cannot map architecture {a}")
diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py
index cdb38d5aa4..0270024a83 100644
--- a/meta/lib/oe/reproducible.py
+++ b/meta/lib/oe/reproducible.py
@@ -75,10 +75,11 @@ def get_source_date_epoch_from_known_files(d, sourcedir):
75 return source_date_epoch 75 return source_date_epoch
76 76
77def find_git_folder(d, sourcedir): 77def find_git_folder(d, sourcedir):
78 # First guess: UNPACKDIR/git 78 # First guess: UNPACKDIR/BB_GIT_DEFAULT_DESTSUFFIX
79 # This is the default git fetcher unpack path 79 # This is the default git fetcher unpack path
80 unpackdir = d.getVar('UNPACKDIR') 80 unpackdir = d.getVar('UNPACKDIR')
81 gitpath = os.path.join(unpackdir, "git/.git") 81 default_destsuffix = d.getVar('BB_GIT_DEFAULT_DESTSUFFIX')
82 gitpath = os.path.join(unpackdir, default_destsuffix, ".git")
82 if os.path.isdir(gitpath): 83 if os.path.isdir(gitpath):
83 return gitpath 84 return gitpath
84 85
diff --git a/meta/lib/oe/rust.py b/meta/lib/oe/rust.py
index 185553eeeb..1dc9cf150d 100644
--- a/meta/lib/oe/rust.py
+++ b/meta/lib/oe/rust.py
@@ -8,6 +8,4 @@
8def arch_to_rust_arch(arch): 8def arch_to_rust_arch(arch):
9 if arch == "ppc64le": 9 if arch == "ppc64le":
10 return "powerpc64le" 10 return "powerpc64le"
11 if arch in ('riscv32', 'riscv64'):
12 return arch + 'gc'
13 return arch 11 return arch
diff --git a/meta/lib/oe/spdx30_tasks.py b/meta/lib/oe/spdx30_tasks.py
index 61d7ba45e3..5d9f3168d9 100644
--- a/meta/lib/oe/spdx30_tasks.py
+++ b/meta/lib/oe/spdx30_tasks.py
@@ -156,6 +156,11 @@ def add_package_files(
156 bb.note(f"Skip {topdir}") 156 bb.note(f"Skip {topdir}")
157 return spdx_files 157 return spdx_files
158 158
159 check_compiled_sources = d.getVar("SPDX_INCLUDE_COMPILED_SOURCES") == "1"
160 if check_compiled_sources:
161 compiled_sources, types = oe.spdx_common.get_compiled_sources(d)
162 bb.debug(1, f"Total compiled files: {len(compiled_sources)}")
163
159 for subdir, dirs, files in os.walk(topdir, onerror=walk_error): 164 for subdir, dirs, files in os.walk(topdir, onerror=walk_error):
160 dirs[:] = [d for d in dirs if d not in ignore_dirs] 165 dirs[:] = [d for d in dirs if d not in ignore_dirs]
161 if subdir == str(topdir): 166 if subdir == str(topdir):
@@ -171,6 +176,11 @@ def add_package_files(
171 filename = str(filepath.relative_to(topdir)) 176 filename = str(filepath.relative_to(topdir))
172 file_purposes = get_purposes(filepath) 177 file_purposes = get_purposes(filepath)
173 178
179 # Check if file is compiled
180 if check_compiled_sources:
181 if not oe.spdx_common.is_compiled_source(filename, compiled_sources, types):
182 continue
183
174 spdx_file = objset.new_file( 184 spdx_file = objset.new_file(
175 get_spdxid(file_counter), 185 get_spdxid(file_counter),
176 filename, 186 filename,
@@ -542,7 +552,7 @@ def create_spdx(d):
542 ) 552 )
543 build_objset.new_relationship( 553 build_objset.new_relationship(
544 source_files, 554 source_files,
545 oe.spdx30.RelationshipType.hasConcludedLicense, 555 oe.spdx30.RelationshipType.hasDeclaredLicense,
546 [oe.sbom30.get_element_link_id(recipe_spdx_license)], 556 [oe.sbom30.get_element_link_id(recipe_spdx_license)],
547 ) 557 )
548 558
diff --git a/meta/lib/oe/spdx_common.py b/meta/lib/oe/spdx_common.py
index 4caefc7673..c2dec65563 100644
--- a/meta/lib/oe/spdx_common.py
+++ b/meta/lib/oe/spdx_common.py
@@ -242,3 +242,44 @@ def fetch_data_to_uri(fd, name):
242 uri = uri + "@" + fd.revision 242 uri = uri + "@" + fd.revision
243 243
244 return uri 244 return uri
245
246def is_compiled_source (filename, compiled_sources, types):
247 """
248 Check if the file is a compiled file
249 """
250 import os
251 # If we don't have compiled source, we assume all are compiled.
252 if not compiled_sources:
253 return True
254
255 # We return always true if the file type is not in the list of compiled files.
256 # Some files in the source directory are not compiled, for example, Makefiles,
257 # but also python .py file. We need to include them in the SPDX.
258 basename = os.path.basename(filename)
259 ext = basename.partition(".")[2]
260 if ext not in types:
261 return True
262 # Check that the file is in the list
263 return filename in compiled_sources
264
265def get_compiled_sources(d):
266 """
267 Get list of compiled sources from debug information and normalize the paths
268 """
269 import itertools
270 source_info = oe.package.read_debugsources_info(d)
271 if not source_info:
272 bb.debug(1, "Do not have debugsources.list. Skipping")
273 return [], []
274
275 # Sources are not split now in SPDX, so we aggregate them
276 sources = set(itertools.chain.from_iterable(source_info.values()))
277 # Check extensions of files
278 types = set()
279 for src in sources:
280 basename = os.path.basename(src)
281 ext = basename.partition(".")[2]
282 if ext not in types and ext:
283 types.add(ext)
284 bb.debug(1, f"Num of sources: {len(sources)} and types: {len(types)} {str(types)}")
285 return sources, types
diff --git a/meta/lib/oe/tune.py b/meta/lib/oe/tune.py
new file mode 100644
index 0000000000..7fda19430d
--- /dev/null
+++ b/meta/lib/oe/tune.py
@@ -0,0 +1,81 @@
1#
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: GPL-2.0-only
5#
6
7# riscv_isa_to_tune(isa)
8#
9# Automatically translate a RISC-V ISA string to TUNE_FEATURES
10#
11# Abbreviations, such as rv32g -> rv32imaffd_zicsr_zifencei are supported.
12#
13# Profiles, such as rva22u64, are NOT supported, you must use ISA strings.
14#
15def riscv_isa_to_tune(isa):
16 _isa = isa.lower()
17
18 feature = []
19 iter = 0
20
21 # rv or riscv
22 if _isa[iter:].startswith('rv'):
23 feature.append('rv')
24 iter = iter + 2
25 elif _isa[iter:].startswith('riscv'):
26 feature.append('rv')
27 iter = iter + 5
28 else:
29 # Not a risc-v ISA!
30 return _isa
31
32 while (_isa[iter:]):
33 # Skip _ and whitespace
34 if _isa[iter] == '_' or _isa[iter].isspace():
35 iter = iter + 1
36 continue
37
38 # Length, just capture numbers here
39 if _isa[iter].isdigit():
40 iter_end = iter
41 while iter_end < len(_isa) and _isa[iter_end].isdigit():
42 iter_end = iter_end + 1
43
44 feature.append(_isa[iter:iter_end])
45 iter = iter_end
46 continue
47
48 # Typically i, e or g is next, followed by extensions.
49 # Extensions are single character, except for Z, Ss, Sh, Sm, Sv, and X
50
51 # If the extension starts with 'Z', 'S' or 'X' use the name until the next _, whitespace or end
52 if _isa[iter] in ['z', 's', 'x']:
53 ext_type = _isa[iter]
54 iter_end = iter + 1
55
56 # Multicharacter extension, these are supposed to have a _ before the next multicharacter extension
57 # See 37.4 and 37.5:
58 # 37.4: Underscores "_" may be used to separate ISA extensions...
59 # 37.5: All multi-letter extensions ... must be separated from other multi-letter extensions by an underscore...
60 # Some extensions permit only alphabetic characters, while others allow alphanumeric chartacters
61 while iter_end < len(_isa) and _isa[iter_end] != "_" and not _isa[iter_end].isspace():
62 iter_end = iter_end + 1
63
64 feature.append(_isa[iter:iter_end])
65 iter = iter_end
66 continue
67
68 # 'g' is special, it's an abbreviation for imafd_zicsr_zifencei
69 # When expanding the abbreviation, any additional letters must appear before the _z* extensions
70 if _isa[iter] == 'g':
71 _isa = 'imafd' + _isa[iter+1:] + '_zicsr_zifencei'
72 iter = 0
73 continue
74
75 feature.append(_isa[iter])
76 iter = iter + 1
77 continue
78
79 # Eliminate duplicates, but preserve the order
80 feature = list(dict.fromkeys(feature))
81 return ' '.join(feature)
diff --git a/meta/lib/oeqa/core/case.py b/meta/lib/oeqa/core/case.py
index bc4446a938..ad5524a714 100644
--- a/meta/lib/oeqa/core/case.py
+++ b/meta/lib/oeqa/core/case.py
@@ -5,6 +5,7 @@
5# 5#
6 6
7import base64 7import base64
8import os
8import zlib 9import zlib
9import unittest 10import unittest
10 11
@@ -57,6 +58,13 @@ class OETestCase(unittest.TestCase):
57 d.tearDownDecorator() 58 d.tearDownDecorator()
58 self.tearDownMethod() 59 self.tearDownMethod()
59 60
61 def assertFileExists(self, filename, msg=None):
62 """
63 Test that filename exists. If it does not, the test will fail.
64 """
65 if not os.path.exists(filename):
66 self.fail(msg or "%s does not exist" % filename)
67
60class OEPTestResultTestCase: 68class OEPTestResultTestCase:
61 """ 69 """
62 Mix-in class to provide functions to make interacting with extraresults for 70 Mix-in class to provide functions to make interacting with extraresults for
diff --git a/meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py b/meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py
index 4e671ec0cc..c3be60f006 100644
--- a/meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py
+++ b/meta/lib/oeqa/runtime/cases/ethernet_ip_connman.py
@@ -10,7 +10,6 @@ from oeqa.core.decorator.data import skipIfQemu
10class Ethernet_Test(OERuntimeTestCase): 10class Ethernet_Test(OERuntimeTestCase):
11 11
12 @skipIfQemu() 12 @skipIfQemu()
13 @OETestDepends(['ethernet_ip_connman.Ethernet_Test.test_set_virtual_ip'])
14 def test_get_ip_from_dhcp(self): 13 def test_get_ip_from_dhcp(self):
15 (status, output) = self.target.run("connmanctl services | grep -E '*AO Wired|*AR Wired' | awk '{print $3}'") 14 (status, output) = self.target.run("connmanctl services | grep -E '*AO Wired|*AR Wired' | awk '{print $3}'")
16 self.assertEqual(status, 0, msg='No wired interfaces are detected, output: %s' % output) 15 self.assertEqual(status, 0, msg='No wired interfaces are detected, output: %s' % output)
diff --git a/meta/lib/oeqa/runtime/cases/stap.py b/meta/lib/oeqa/runtime/cases/stap.py
index 3be4162108..6b55e7de50 100644
--- a/meta/lib/oeqa/runtime/cases/stap.py
+++ b/meta/lib/oeqa/runtime/cases/stap.py
@@ -21,11 +21,12 @@ class StapTest(OERuntimeTestCase):
21 status, output = self.target.run(cmd, 900) 21 status, output = self.target.run(cmd, 900)
22 self.assertEqual(status, 0, msg='\n'.join([cmd, output])) 22 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
23 23
24 cmd = 'stap -v -p4 -m stap-hello --disable-cache -DSTP_NO_VERREL_CHECK -e \'probe oneshot { print("Hello, "); println("SystemTap!") }\'' 24 cmd = 'stap -v -p4 -m stap_hello --disable-cache -DSTP_NO_VERREL_CHECK -e \'probe oneshot { print("Hello, "); println("SystemTap!") }\''
25 status, output = self.target.run(cmd, 900) 25 status, output = self.target.run(cmd, 900)
26 self.assertEqual(status, 0, msg='\n'.join([cmd, output])) 26 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
27 27
28 cmd = 'staprun -v -R -b1 stap-hello.ko' 28 cmd = 'staprun -v -R -b1 stap_hello.ko'
29 status, output = self.target.run(cmd, 60)
29 self.assertEqual(status, 0, msg='\n'.join([cmd, output])) 30 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
30 self.assertIn('Hello, SystemTap!', output, msg='\n'.join([cmd, output])) 31 self.assertIn('Hello, SystemTap!', output, msg='\n'.join([cmd, output]))
31 except: 32 except:
diff --git a/meta/lib/oeqa/selftest/cases/buildhistory.py b/meta/lib/oeqa/selftest/cases/buildhistory.py
index 2d55994916..511c666554 100644
--- a/meta/lib/oeqa/selftest/cases/buildhistory.py
+++ b/meta/lib/oeqa/selftest/cases/buildhistory.py
@@ -9,10 +9,10 @@ import re
9import datetime 9import datetime
10 10
11from oeqa.selftest.case import OESelftestTestCase 11from oeqa.selftest.case import OESelftestTestCase
12from oeqa.utils.commands import bitbake, get_bb_vars 12from oeqa.utils.commands import bitbake, get_bb_vars, get_bb_var, runCmd
13 13
14 14
15class BuildhistoryBase(OESelftestTestCase): 15class BuildhistoryTests(OESelftestTestCase):
16 16
17 def config_buildhistory(self, tmp_bh_location=False): 17 def config_buildhistory(self, tmp_bh_location=False):
18 bb_vars = get_bb_vars(['USER_CLASSES', 'INHERIT']) 18 bb_vars = get_bb_vars(['USER_CLASSES', 'INHERIT'])
@@ -48,5 +48,58 @@ class BuildhistoryBase(OESelftestTestCase):
48 else: 48 else:
49 self.assertEqual(result.status, 0, msg="Command 'bitbake %s' has failed unexpectedly: %s" % (target, result.output)) 49 self.assertEqual(result.status, 0, msg="Command 'bitbake %s' has failed unexpectedly: %s" % (target, result.output))
50 50
51 # No tests should be added to the base class. 51
52 # Please create a new class that inherit this one, or use one of those already available for adding tests. 52 def test_buildhistory_basic(self):
53 self.run_buildhistory_operation('xcursor-transparent-theme')
54 self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.")
55
56 def test_buildhistory_buildtime_pr_backwards(self):
57 target = 'xcursor-transparent-theme'
58 error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target
59 self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
60 self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
61
62 def test_fileinfo(self):
63 self.config_buildhistory()
64 bitbake('hicolor-icon-theme')
65 history_dir = get_bb_var('BUILDHISTORY_DIR_PACKAGE', 'hicolor-icon-theme')
66 self.assertTrue(os.path.isdir(history_dir), 'buildhistory dir was not created.')
67
68 def load_bh(f):
69 d = {}
70 for line in open(f):
71 split = [s.strip() for s in line.split('=', 1)]
72 if len(split) > 1:
73 d[split[0]] = split[1]
74 return d
75
76 data = load_bh(os.path.join(history_dir, 'hicolor-icon-theme', 'latest'))
77 self.assertIn('FILELIST', data)
78 self.assertEqual(data['FILELIST'], '/usr/share/icons/hicolor/index.theme')
79 self.assertGreater(int(data['PKGSIZE']), 0)
80
81 data = load_bh(os.path.join(history_dir, 'hicolor-icon-theme-dev', 'latest'))
82 if 'FILELIST' in data:
83 self.assertEqual(data['FILELIST'], '/usr/share/pkgconfig/default-icon-theme.pc')
84 self.assertGreater(int(data['PKGSIZE']), 0)
85
86 def test_buildhistory_diff(self):
87 target = 'xcursor-transparent-theme'
88 self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
89 self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True)
90 result = runCmd("oe-pkgdata-util read-value PKGV %s" % target)
91 pkgv = result.output.rstrip()
92 result = runCmd("buildhistory-diff -p %s" % get_bb_var('BUILDHISTORY_DIR'))
93 expected_endlines = [
94 "xcursor-transparent-theme-dev: RRECOMMENDS: removed \"xcursor-transparent-theme (['= %s-r1'])\", added \"xcursor-transparent-theme (['= %s-r0'])\"" % (pkgv, pkgv),
95 "xcursor-transparent-theme-staticdev: RDEPENDS: removed \"xcursor-transparent-theme-dev (['= %s-r1'])\", added \"xcursor-transparent-theme-dev (['= %s-r0'])\"" % (pkgv, pkgv)
96 ]
97 for line in result.output.splitlines():
98 for el in expected_endlines:
99 if line.endswith(el):
100 expected_endlines.remove(el)
101 break
102 else:
103 self.fail('Unexpected line:\n%s\nExpected line endings:\n %s' % (line, '\n '.join(expected_endlines)))
104 if expected_endlines:
105 self.fail('Missing expected line endings:\n %s' % '\n '.join(expected_endlines)) \ No newline at end of file
diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py
index b509bcf951..767e19bd88 100644
--- a/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -10,7 +10,6 @@ import glob as g
10import shutil 10import shutil
11import tempfile 11import tempfile
12from oeqa.selftest.case import OESelftestTestCase 12from oeqa.selftest.case import OESelftestTestCase
13from oeqa.selftest.cases.buildhistory import BuildhistoryBase
14from oeqa.core.decorator.data import skipIfMachine 13from oeqa.core.decorator.data import skipIfMachine
15from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars 14from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars
16import oeqa.utils.ftools as ftools 15import oeqa.utils.ftools as ftools
@@ -139,43 +138,6 @@ class SanityOptionsTest(OESelftestTestCase):
139 138
140 self.assertNotIn(err, ret.output) 139 self.assertNotIn(err, ret.output)
141 140
142
143class BuildhistoryTests(BuildhistoryBase):
144
145 def test_buildhistory_basic(self):
146 self.run_buildhistory_operation('xcursor-transparent-theme')
147 self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.")
148
149 def test_buildhistory_buildtime_pr_backwards(self):
150 target = 'xcursor-transparent-theme'
151 error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target
152 self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
153 self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
154
155 def test_fileinfo(self):
156 self.config_buildhistory()
157 bitbake('hicolor-icon-theme')
158 history_dir = get_bb_var('BUILDHISTORY_DIR_PACKAGE', 'hicolor-icon-theme')
159 self.assertTrue(os.path.isdir(history_dir), 'buildhistory dir was not created.')
160
161 def load_bh(f):
162 d = {}
163 for line in open(f):
164 split = [s.strip() for s in line.split('=', 1)]
165 if len(split) > 1:
166 d[split[0]] = split[1]
167 return d
168
169 data = load_bh(os.path.join(history_dir, 'hicolor-icon-theme', 'latest'))
170 self.assertIn('FILELIST', data)
171 self.assertEqual(data['FILELIST'], '/usr/share/icons/hicolor/index.theme')
172 self.assertGreater(int(data['PKGSIZE']), 0)
173
174 data = load_bh(os.path.join(history_dir, 'hicolor-icon-theme-dev', 'latest'))
175 if 'FILELIST' in data:
176 self.assertEqual(data['FILELIST'], '/usr/share/pkgconfig/default-icon-theme.pc')
177 self.assertGreater(int(data['PKGSIZE']), 0)
178
179class ArchiverTest(OESelftestTestCase): 141class ArchiverTest(OESelftestTestCase):
180 def test_arch_work_dir_and_export_source(self): 142 def test_arch_work_dir_and_export_source(self):
181 """ 143 """
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py
index 0155ee62ee..74a7727cc0 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -469,7 +469,7 @@ class DevtoolAddTests(DevtoolBase):
469 checkvars = {} 469 checkvars = {}
470 checkvars['LICENSE'] = 'GPL-2.0-only' 470 checkvars['LICENSE'] = 'GPL-2.0-only'
471 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263' 471 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263'
472 checkvars['S'] = '${WORKDIR}/git' 472 checkvars['S'] = None
473 checkvars['PV'] = '0.1+git' 473 checkvars['PV'] = '0.1+git'
474 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https;branch=master' 474 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https;branch=master'
475 checkvars['SRCREV'] = srcrev 475 checkvars['SRCREV'] = srcrev
@@ -565,7 +565,7 @@ class DevtoolAddTests(DevtoolBase):
565 recipefile = get_bb_var('FILE', testrecipe) 565 recipefile = get_bb_var('FILE', testrecipe)
566 self.assertIn('%s_%s.bb' % (testrecipe, testver), recipefile, 'Recipe file incorrectly named') 566 self.assertIn('%s_%s.bb' % (testrecipe, testver), recipefile, 'Recipe file incorrectly named')
567 checkvars = {} 567 checkvars = {}
568 checkvars['S'] = '${WORKDIR}/MarkupSafe-${PV}' 568 checkvars['S'] = '${UNPACKDIR}/MarkupSafe-${PV}'
569 checkvars['SRC_URI'] = url.replace(testver, '${PV}') 569 checkvars['SRC_URI'] = url.replace(testver, '${PV}')
570 self._test_recipe_contents(recipefile, checkvars, []) 570 self._test_recipe_contents(recipefile, checkvars, [])
571 # Try with version specified 571 # Try with version specified
@@ -582,7 +582,7 @@ class DevtoolAddTests(DevtoolBase):
582 recipefile = get_bb_var('FILE', testrecipe) 582 recipefile = get_bb_var('FILE', testrecipe)
583 self.assertIn('%s_%s.bb' % (testrecipe, fakever), recipefile, 'Recipe file incorrectly named') 583 self.assertIn('%s_%s.bb' % (testrecipe, fakever), recipefile, 'Recipe file incorrectly named')
584 checkvars = {} 584 checkvars = {}
585 checkvars['S'] = '${WORKDIR}/MarkupSafe-%s' % testver 585 checkvars['S'] = '${UNPACKDIR}/MarkupSafe-%s' % testver
586 checkvars['SRC_URI'] = url 586 checkvars['SRC_URI'] = url
587 self._test_recipe_contents(recipefile, checkvars, []) 587 self._test_recipe_contents(recipefile, checkvars, [])
588 588
@@ -609,7 +609,7 @@ class DevtoolAddTests(DevtoolBase):
609 recipefile = get_bb_var('FILE', testrecipe) 609 recipefile = get_bb_var('FILE', testrecipe)
610 self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named') 610 self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named')
611 checkvars = {} 611 checkvars = {}
612 checkvars['S'] = '${WORKDIR}/git' 612 checkvars['S'] = None
613 checkvars['PV'] = '1.0+git' 613 checkvars['PV'] = '1.0+git'
614 checkvars['SRC_URI'] = url_branch 614 checkvars['SRC_URI'] = url_branch
615 checkvars['SRCREV'] = '${AUTOREV}' 615 checkvars['SRCREV'] = '${AUTOREV}'
@@ -628,7 +628,7 @@ class DevtoolAddTests(DevtoolBase):
628 recipefile = get_bb_var('FILE', testrecipe) 628 recipefile = get_bb_var('FILE', testrecipe)
629 self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named') 629 self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named')
630 checkvars = {} 630 checkvars = {}
631 checkvars['S'] = '${WORKDIR}/git' 631 checkvars['S'] = None
632 checkvars['PV'] = '1.5+git' 632 checkvars['PV'] = '1.5+git'
633 checkvars['SRC_URI'] = url_branch 633 checkvars['SRC_URI'] = url_branch
634 checkvars['SRCREV'] = checkrev 634 checkvars['SRCREV'] = checkrev
@@ -1627,12 +1627,12 @@ class DevtoolUpdateTests(DevtoolBase):
1627 # Check preconditions 1627 # Check preconditions
1628 testrecipe = 'dos2unix' 1628 testrecipe = 'dos2unix'
1629 self.append_config('ERROR_QA:remove:pn-dos2unix = "patch-status"\n') 1629 self.append_config('ERROR_QA:remove:pn-dos2unix = "patch-status"\n')
1630 bb_vars = get_bb_vars(['SRC_URI', 'S', 'WORKDIR', 'FILE'], testrecipe) 1630 bb_vars = get_bb_vars(['SRC_URI', 'S', 'UNPACKDIR', 'FILE', 'BB_GIT_DEFAULT_DESTSUFFIX'], testrecipe)
1631 self.assertIn('git://', bb_vars['SRC_URI'], 'This test expects the %s recipe to be a git recipe' % testrecipe) 1631 self.assertIn('git://', bb_vars['SRC_URI'], 'This test expects the %s recipe to be a git recipe' % testrecipe)
1632 workdir_git = '%s/git/' % bb_vars['WORKDIR'] 1632 unpackdir_git = '%s/%s/' % (bb_vars['UNPACKDIR'], bb_vars['BB_GIT_DEFAULT_DESTSUFFIX'])
1633 if not bb_vars['S'].startswith(workdir_git): 1633 if not bb_vars['S'].startswith(unpackdir_git):
1634 self.fail('This test expects the %s recipe to be building from a subdirectory of the git repo' % testrecipe) 1634 self.fail('This test expects the %s recipe to be building from a subdirectory of the git repo' % testrecipe)
1635 subdir = bb_vars['S'].split(workdir_git, 1)[1] 1635 subdir = bb_vars['S'].split(unpackdir_git, 1)[1]
1636 # Clean up anything in the workdir/sysroot/sstate cache 1636 # Clean up anything in the workdir/sysroot/sstate cache
1637 bitbake('%s -c cleansstate' % testrecipe) 1637 bitbake('%s -c cleansstate' % testrecipe)
1638 # Try modifying a recipe 1638 # Try modifying a recipe
@@ -2414,7 +2414,7 @@ class DevtoolUpgradeTests(DevtoolBase):
2414 newsrctree = os.path.join(self.workspacedir, 'sources', newrecipename) 2414 newsrctree = os.path.join(self.workspacedir, 'sources', newrecipename)
2415 self.assertExists(newsrctree, 'Source directory not renamed') 2415 self.assertExists(newsrctree, 'Source directory not renamed')
2416 checkvars = {} 2416 checkvars = {}
2417 checkvars['S'] = '${WORKDIR}/%s-%s' % (recipename, recipever) 2417 checkvars['S'] = '${UNPACKDIR}/%s-%s' % (recipename, recipever)
2418 checkvars['SRC_URI'] = url 2418 checkvars['SRC_URI'] = url
2419 self._test_recipe_contents(newrecipefile, checkvars, []) 2419 self._test_recipe_contents(newrecipefile, checkvars, [])
2420 # Try again - change just name this time 2420 # Try again - change just name this time
@@ -2426,7 +2426,7 @@ class DevtoolUpgradeTests(DevtoolBase):
2426 self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipename), 'Old recipe directory still exists') 2426 self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipename), 'Old recipe directory still exists')
2427 self.assertExists(os.path.join(self.workspacedir, 'sources', newrecipename), 'Source directory not renamed') 2427 self.assertExists(os.path.join(self.workspacedir, 'sources', newrecipename), 'Source directory not renamed')
2428 checkvars = {} 2428 checkvars = {}
2429 checkvars['S'] = '${WORKDIR}/%s-${PV}' % recipename 2429 checkvars['S'] = '${UNPACKDIR}/%s-${PV}' % recipename
2430 checkvars['SRC_URI'] = url.replace(recipever, '${PV}') 2430 checkvars['SRC_URI'] = url.replace(recipever, '${PV}')
2431 self._test_recipe_contents(newrecipefile, checkvars, []) 2431 self._test_recipe_contents(newrecipefile, checkvars, [])
2432 # Try again - change just version this time 2432 # Try again - change just version this time
@@ -2437,7 +2437,7 @@ class DevtoolUpgradeTests(DevtoolBase):
2437 self.assertExists(newrecipefile, 'Recipe file not renamed') 2437 self.assertExists(newrecipefile, 'Recipe file not renamed')
2438 self.assertExists(os.path.join(self.workspacedir, 'sources', recipename), 'Source directory no longer exists') 2438 self.assertExists(os.path.join(self.workspacedir, 'sources', recipename), 'Source directory no longer exists')
2439 checkvars = {} 2439 checkvars = {}
2440 checkvars['S'] = '${WORKDIR}/${BPN}-%s' % recipever 2440 checkvars['S'] = '${UNPACKDIR}/${BPN}-%s' % recipever
2441 checkvars['SRC_URI'] = url 2441 checkvars['SRC_URI'] = url
2442 self._test_recipe_contents(newrecipefile, checkvars, []) 2442 self._test_recipe_contents(newrecipefile, checkvars, [])
2443 2443
diff --git a/meta/lib/oeqa/selftest/cases/distrodata.py b/meta/lib/oeqa/selftest/cases/distrodata.py
index 1e88ea82e6..f2c6124d70 100644
--- a/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -56,7 +56,7 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
56 56
57 def is_maintainer_exception(entry): 57 def is_maintainer_exception(entry):
58 exceptions = ["musl", "newlib", "picolibc", "linux-yocto", "linux-dummy", "mesa-gl", "libgfortran", "libx11-compose-data", 58 exceptions = ["musl", "newlib", "picolibc", "linux-yocto", "linux-dummy", "mesa-gl", "libgfortran", "libx11-compose-data",
59 "cve-update-nvd2-native", "barebox"] 59 "cve-update-nvd2-native", "barebox", "libglvnd"]
60 for i in exceptions: 60 for i in exceptions:
61 if i in entry: 61 if i in entry:
62 return True 62 return True
diff --git a/meta/lib/oeqa/selftest/cases/esdk.py b/meta/lib/oeqa/selftest/cases/esdk.py
index 9f5de2cde7..7a5fe00a08 100644
--- a/meta/lib/oeqa/selftest/cases/esdk.py
+++ b/meta/lib/oeqa/selftest/cases/esdk.py
@@ -27,11 +27,7 @@ class oeSDKExtSelfTest(OESelftestTestCase):
27 return glob.glob(pattern)[0] 27 return glob.glob(pattern)[0]
28 28
29 @staticmethod 29 @staticmethod
30 def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, **options): 30 def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, **options):
31 if postconfig:
32 esdk_conf_file = os.path.join(tmpdir_eSDKQA, 'conf', 'local.conf')
33 with open(esdk_conf_file, 'a+') as f:
34 f.write(postconfig)
35 if not options: 31 if not options:
36 options = {} 32 options = {}
37 if not 'shell' in options: 33 if not 'shell' in options:
diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py
index ca4724d1ae..3c40857747 100644
--- a/meta/lib/oeqa/selftest/cases/fitimage.py
+++ b/meta/lib/oeqa/selftest/cases/fitimage.py
@@ -1692,3 +1692,40 @@ FIT_SIGN_INDIVIDUAL = "1"
1692 1692
1693 # Just check the DTB of u-boot since there is no u-boot FIT image 1693 # Just check the DTB of u-boot since there is no u-boot FIT image
1694 self._check_kernel_dtb(bb_vars) 1694 self._check_kernel_dtb(bb_vars)
1695
1696
1697 def test_sign_uboot_fit_image_without_spl(self):
1698 """
1699 Summary: Check if U-Boot FIT image and Image Tree Source (its) are
1700 created and signed correctly for the scenario where only
1701 the U-Boot proper fitImage is being created and signed
1702 (no SPL included).
1703 Expected: 1) U-Boot its and FIT image are built successfully
1704 2) Scanning the its file indicates signing is enabled
1705 as requested by SPL_SIGN_ENABLE (using keys generated
1706 via UBOOT_FIT_GENERATE_KEYS)
1707 3) Dumping the FIT image indicates signature values
1708 are present
1709 4) Examination of the do_uboot_assemble_fitimage
1710 runfile/logfile indicate that UBOOT_MKIMAGE and
1711 UBOOT_MKIMAGE_SIGN are working as expected.
1712 Product: oe-core
1713 Author: Jamin Lin <jamin_lin@aspeedtech.com>
1714 """
1715 config = """
1716# There's no U-boot defconfig with CONFIG_FIT_SIGNATURE yet, so we need at
1717# least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set
1718MACHINE = "qemuarm"
1719UBOOT_MACHINE = "am57xx_evm_defconfig"
1720# Enable creation and signing of the U-Boot fitImage (no SPL)
1721UBOOT_FITIMAGE_ENABLE = "1"
1722SPL_DTB_BINARY = ""
1723SPL_SIGN_ENABLE = "1"
1724SPL_SIGN_KEYNAME = "spl-oe-selftest"
1725SPL_SIGN_KEYDIR = "${TOPDIR}/signing-keys"
1726UBOOT_FIT_GENERATE_KEYS = "1"
1727"""
1728 self.write_config(config)
1729 bb_vars = self._fit_get_bb_vars()
1730 self._test_fitimage(bb_vars)
1731
diff --git a/meta/lib/oeqa/selftest/cases/oescripts.py b/meta/lib/oeqa/selftest/cases/oescripts.py
index bfbc33b08d..3f9899b289 100644
--- a/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -9,33 +9,9 @@ import shutil
9import importlib 9import importlib
10import unittest 10import unittest
11from oeqa.selftest.case import OESelftestTestCase 11from oeqa.selftest.case import OESelftestTestCase
12from oeqa.selftest.cases.buildhistory import BuildhistoryBase
13from oeqa.utils.commands import runCmd, bitbake, get_bb_var 12from oeqa.utils.commands import runCmd, bitbake, get_bb_var
14from oeqa.utils import CommandError 13from oeqa.utils import CommandError
15 14
16class BuildhistoryDiffTests(BuildhistoryBase):
17
18 def test_buildhistory_diff(self):
19 target = 'xcursor-transparent-theme'
20 self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
21 self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True)
22 result = runCmd("oe-pkgdata-util read-value PKGV %s" % target)
23 pkgv = result.output.rstrip()
24 result = runCmd("buildhistory-diff -p %s" % get_bb_var('BUILDHISTORY_DIR'))
25 expected_endlines = [
26 "xcursor-transparent-theme-dev: RRECOMMENDS: removed \"xcursor-transparent-theme (['= %s-r1'])\", added \"xcursor-transparent-theme (['= %s-r0'])\"" % (pkgv, pkgv),
27 "xcursor-transparent-theme-staticdev: RDEPENDS: removed \"xcursor-transparent-theme-dev (['= %s-r1'])\", added \"xcursor-transparent-theme-dev (['= %s-r0'])\"" % (pkgv, pkgv)
28 ]
29 for line in result.output.splitlines():
30 for el in expected_endlines:
31 if line.endswith(el):
32 expected_endlines.remove(el)
33 break
34 else:
35 self.fail('Unexpected line:\n%s\nExpected line endings:\n %s' % (line, '\n '.join(expected_endlines)))
36 if expected_endlines:
37 self.fail('Missing expected line endings:\n %s' % '\n '.join(expected_endlines))
38
39@unittest.skipUnless(importlib.util.find_spec("cairo"), "Python cairo module is not present") 15@unittest.skipUnless(importlib.util.find_spec("cairo"), "Python cairo module is not present")
40class OEPybootchartguyTests(OESelftestTestCase): 16class OEPybootchartguyTests(OESelftestTestCase):
41 17
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py
index 36557f270f..2a91f6c7ae 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -385,7 +385,7 @@ class RecipetoolCreateTests(RecipetoolBase):
385 checkvars = {} 385 checkvars = {}
386 checkvars['LICENSE'] = 'LGPL-2.1-only' 386 checkvars['LICENSE'] = 'LGPL-2.1-only'
387 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34' 387 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34'
388 checkvars['S'] = '${WORKDIR}/git' 388 checkvars['S'] = None
389 checkvars['PV'] = '1.11+git' 389 checkvars['PV'] = '1.11+git'
390 checkvars['SRC_URI'] = srcuri + ';branch=master' 390 checkvars['SRC_URI'] = srcuri + ';branch=master'
391 checkvars['DEPENDS'] = set(['libcheck', 'libjpeg-turbo', 'libpng', 'libx11', 'libxext', 'pango']) 391 checkvars['DEPENDS'] = set(['libcheck', 'libjpeg-turbo', 'libpng', 'libx11', 'libxext', 'pango'])
@@ -1144,10 +1144,10 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
1144 1144
1145 def test_recipetool_appendsrcfile_srcdir_basic(self): 1145 def test_recipetool_appendsrcfile_srcdir_basic(self):
1146 testrecipe = 'bash' 1146 testrecipe = 'bash'
1147 bb_vars = get_bb_vars(['S', 'WORKDIR'], testrecipe) 1147 bb_vars = get_bb_vars(['S', 'UNPACKDIR'], testrecipe)
1148 srcdir = bb_vars['S'] 1148 srcdir = bb_vars['S']
1149 workdir = bb_vars['WORKDIR'] 1149 unpackdir = bb_vars['UNPACKDIR']
1150 subdir = os.path.relpath(srcdir, workdir) 1150 subdir = os.path.relpath(srcdir, unpackdir)
1151 self._test_appendsrcfile(testrecipe, 'a-file', srcdir=subdir) 1151 self._test_appendsrcfile(testrecipe, 'a-file', srcdir=subdir)
1152 1152
1153 def test_recipetool_appendsrcfile_existing_in_src_uri(self): 1153 def test_recipetool_appendsrcfile_existing_in_src_uri(self):
@@ -1196,10 +1196,10 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
1196 def test_recipetool_appendsrcfile_replace_file_srcdir(self): 1196 def test_recipetool_appendsrcfile_replace_file_srcdir(self):
1197 testrecipe = 'bash' 1197 testrecipe = 'bash'
1198 filepath = 'Makefile.in' 1198 filepath = 'Makefile.in'
1199 bb_vars = get_bb_vars(['S', 'WORKDIR'], testrecipe) 1199 bb_vars = get_bb_vars(['S', 'UNPACKDIR'], testrecipe)
1200 srcdir = bb_vars['S'] 1200 srcdir = bb_vars['S']
1201 workdir = bb_vars['WORKDIR'] 1201 unpackdir = bb_vars['UNPACKDIR']
1202 subdir = os.path.relpath(srcdir, workdir) 1202 subdir = os.path.relpath(srcdir, unpackdir)
1203 1203
1204 self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir) 1204 self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir)
1205 bitbake('%s:do_unpack' % testrecipe) 1205 bitbake('%s:do_unpack' % testrecipe)
diff --git a/meta/lib/oeqa/selftest/cases/recipeutils.py b/meta/lib/oeqa/selftest/cases/recipeutils.py
index 9949737172..e697fd2920 100644
--- a/meta/lib/oeqa/selftest/cases/recipeutils.py
+++ b/meta/lib/oeqa/selftest/cases/recipeutils.py
@@ -72,7 +72,7 @@ class RecipeUtilsTests(OESelftestTestCase):
72 expected_patch = """ 72 expected_patch = """
73--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb 73--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb
74+++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb 74+++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb
75@@ -11,6 +11,4 @@ 75@@ -10,6 +10,4 @@
76 76
77 BBCLASSEXTEND = "native nativesdk" 77 BBCLASSEXTEND = "native nativesdk"
78 78
@@ -97,7 +97,7 @@ class RecipeUtilsTests(OESelftestTestCase):
97 expected_patch = """ 97 expected_patch = """
98--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb 98--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb
99+++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb 99+++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb
100@@ -11,6 +11,3 @@ 100@@ -10,6 +10,3 @@
101 101
102 BBCLASSEXTEND = "native nativesdk" 102 BBCLASSEXTEND = "native nativesdk"
103 103
diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py
index 487995acc3..08f94b168a 100644
--- a/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -27,17 +27,15 @@ class SStateBase(OESelftestTestCase):
27 def setUpLocal(self): 27 def setUpLocal(self):
28 super(SStateBase, self).setUpLocal() 28 super(SStateBase, self).setUpLocal()
29 self.temp_sstate_location = None 29 self.temp_sstate_location = None
30 needed_vars = ['SSTATE_DIR', 'NATIVELSBSTRING', 'TCLIBC', 'TUNE_ARCH', 30 needed_vars = ['SSTATE_DIR', 'TCLIBC', 'TUNE_ARCH',
31 'TOPDIR', 'TARGET_VENDOR', 'TARGET_OS'] 31 'TOPDIR', 'TARGET_VENDOR', 'TARGET_OS']
32 bb_vars = get_bb_vars(needed_vars) 32 bb_vars = get_bb_vars(needed_vars)
33 self.sstate_path = bb_vars['SSTATE_DIR'] 33 self.sstate_path = bb_vars['SSTATE_DIR']
34 self.hostdistro = bb_vars['NATIVELSBSTRING']
35 self.tclibc = bb_vars['TCLIBC'] 34 self.tclibc = bb_vars['TCLIBC']
36 self.tune_arch = bb_vars['TUNE_ARCH'] 35 self.tune_arch = bb_vars['TUNE_ARCH']
37 self.topdir = bb_vars['TOPDIR'] 36 self.topdir = bb_vars['TOPDIR']
38 self.target_vendor = bb_vars['TARGET_VENDOR'] 37 self.target_vendor = bb_vars['TARGET_VENDOR']
39 self.target_os = bb_vars['TARGET_OS'] 38 self.target_os = bb_vars['TARGET_OS']
40 self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro)
41 39
42 def track_for_cleanup(self, path): 40 def track_for_cleanup(self, path):
43 if not keep_temp_files: 41 if not keep_temp_files:
@@ -52,10 +50,7 @@ class SStateBase(OESelftestTestCase):
52 config_temp_sstate = "SSTATE_DIR = \"%s\"" % temp_sstate_path 50 config_temp_sstate = "SSTATE_DIR = \"%s\"" % temp_sstate_path
53 self.append_config(config_temp_sstate) 51 self.append_config(config_temp_sstate)
54 self.track_for_cleanup(temp_sstate_path) 52 self.track_for_cleanup(temp_sstate_path)
55 bb_vars = get_bb_vars(['SSTATE_DIR', 'NATIVELSBSTRING']) 53 self.sstate_path = get_bb_var('SSTATE_DIR')
56 self.sstate_path = bb_vars['SSTATE_DIR']
57 self.hostdistro = bb_vars['NATIVELSBSTRING']
58 self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro)
59 54
60 if add_local_mirrors: 55 if add_local_mirrors:
61 config_set_sstate_if_not_set = 'SSTATE_MIRRORS ?= ""' 56 config_set_sstate_if_not_set = 'SSTATE_MIRRORS ?= ""'
@@ -65,8 +60,16 @@ class SStateBase(OESelftestTestCase):
65 config_sstate_mirror = "SSTATE_MIRRORS += \"file://.* file:///%s/PATH\"" % local_mirror 60 config_sstate_mirror = "SSTATE_MIRRORS += \"file://.* file:///%s/PATH\"" % local_mirror
66 self.append_config(config_sstate_mirror) 61 self.append_config(config_sstate_mirror)
67 62
63 def set_hostdistro(self):
64 # This needs to be read after a BuildStarted event in case it gets changed by event
65 # handling in uninative.bbclass
66 self.hostdistro = get_bb_var('NATIVELSBSTRING')
67 self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro)
68
68 # Returns a list containing sstate files 69 # Returns a list containing sstate files
69 def search_sstate(self, filename_regex, distro_specific=True, distro_nonspecific=True): 70 def search_sstate(self, filename_regex, distro_specific=True, distro_nonspecific=True):
71 self.set_hostdistro()
72
70 result = [] 73 result = []
71 for root, dirs, files in os.walk(self.sstate_path): 74 for root, dirs, files in os.walk(self.sstate_path):
72 if distro_specific and re.search(r"%s/%s/[a-z0-9]{2}/[a-z0-9]{2}$" % (self.sstate_path, self.hostdistro), root): 75 if distro_specific and re.search(r"%s/%s/[a-z0-9]{2}/[a-z0-9]{2}$" % (self.sstate_path, self.hostdistro), root):
@@ -80,55 +83,43 @@ class SStateBase(OESelftestTestCase):
80 return result 83 return result
81 84
82 # Test sstate files creation and their location and directory perms 85 # Test sstate files creation and their location and directory perms
83 def run_test_sstate_creation(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True, should_pass=True): 86 def run_test_sstate_creation(self, targets, hostdistro_specific):
84 self.config_sstate(temp_sstate_location, [self.sstate_path]) 87 self.config_sstate(True, [self.sstate_path])
88
89 bitbake(['-cclean'] + targets)
85 90
86 if self.temp_sstate_location:
87 bitbake(['-cclean'] + targets)
88 else:
89 bitbake(['-ccleansstate'] + targets)
90
91 # We need to test that the env umask have does not effect sstate directory creation
92 # So, first, we'll get the current umask and set it to something we know incorrect
93 # See: sstate_task_postfunc for correct umask of os.umask(0o002)
94 import os
95 def current_umask():
96 current_umask = os.umask(0)
97 os.umask(current_umask)
98 return current_umask
99
100 orig_umask = current_umask()
101 # Set it to a umask we know will be 'wrong' 91 # Set it to a umask we know will be 'wrong'
102 os.umask(0o022) 92 with bb.utils.umask(0o022):
93 bitbake(targets)
103 94
104 bitbake(targets) 95 # Distro specific files
105 file_tracker = [] 96 distro_specific_files = self.search_sstate('|'.join(map(str, targets)), True, False)
106 results = self.search_sstate('|'.join(map(str, targets)), distro_specific, distro_nonspecific) 97
107 if distro_nonspecific: 98 # Distro non-specific
108 for r in results: 99 distro_non_specific_files = []
109 if r.endswith(("_populate_lic.tar.zst", "_populate_lic.tar.zst.siginfo", "_fetch.tar.zst.siginfo", "_unpack.tar.zst.siginfo", "_patch.tar.zst.siginfo")): 100 results = self.search_sstate('|'.join(map(str, targets)), False, True)
110 continue 101 for r in results:
111 file_tracker.append(r) 102 if r.endswith(("_populate_lic.tar.zst", "_populate_lic.tar.zst.siginfo", "_fetch.tar.zst.siginfo", "_unpack.tar.zst.siginfo", "_patch.tar.zst.siginfo")):
112 else: 103 continue
113 file_tracker = results 104 distro_non_specific_files.append(r)
114 105
115 if should_pass: 106 if hostdistro_specific:
116 self.assertTrue(file_tracker , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets))) 107 self.assertTrue(distro_specific_files , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets)))
108 self.assertFalse(distro_non_specific_files, msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(distro_non_specific_files)))
117 else: 109 else:
118 self.assertTrue(not file_tracker , msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(file_tracker))) 110 self.assertTrue(distro_non_specific_files , msg="Could not find sstate files for: %s" % ', '.join(map(str, targets)))
111 self.assertFalse(distro_specific_files, msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(distro_specific_files)))
119 112
120 # Now we'll walk the tree to check the mode and see if things are incorrect. 113 # Now we'll walk the tree to check the mode and see if things are incorrect.
121 badperms = [] 114 badperms = []
122 for root, dirs, files in os.walk(self.sstate_path): 115 for root, dirs, files in os.walk(self.sstate_path):
123 for directory in dirs: 116 for directory in dirs:
124 if (os.stat(os.path.join(root, directory)).st_mode & 0o777) != 0o775: 117 mode = os.stat(os.path.join(root, directory)).st_mode & 0o777
125 badperms.append(os.path.join(root, directory)) 118 if mode != 0o775:
126 119 badperms.append("%s: %s vs %s" % (os.path.join(root, directory), mode, 0o775))
127 # Return to original umask
128 os.umask(orig_umask)
129 120
130 if should_pass: 121 # Check badperms is empty
131 self.assertTrue(badperms , msg="Found sstate directories with the wrong permissions: %s (found %s)" % (', '.join(map(str, targets)), str(badperms))) 122 self.assertFalse(badperms , msg="Found sstate directories with the wrong permissions: %s (found %s)" % (', '.join(map(str, targets)), str(badperms)))
132 123
133 # Test the sstate files deletion part of the do_cleansstate task 124 # Test the sstate files deletion part of the do_cleansstate task
134 def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True): 125 def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True):
@@ -153,6 +144,8 @@ class SStateBase(OESelftestTestCase):
153 144
154 bitbake(['-ccleansstate'] + targets) 145 bitbake(['-ccleansstate'] + targets)
155 146
147 self.set_hostdistro()
148
156 bitbake(targets) 149 bitbake(targets)
157 results = self.search_sstate('|'.join(map(str, [s + r'.*?\.tar.zst$' for s in targets])), distro_specific=False, distro_nonspecific=True) 150 results = self.search_sstate('|'.join(map(str, [s + r'.*?\.tar.zst$' for s in targets])), distro_specific=False, distro_nonspecific=True)
158 filtered_results = [] 151 filtered_results = []
@@ -251,17 +244,11 @@ class SStateTests(SStateBase):
251 bitbake("dbus-wait-test -c unpack") 244 bitbake("dbus-wait-test -c unpack")
252 245
253class SStateCreation(SStateBase): 246class SStateCreation(SStateBase):
254 def test_sstate_creation_distro_specific_pass(self): 247 def test_sstate_creation_distro_specific(self):
255 self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True) 248 self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], hostdistro_specific=True)
256
257 def test_sstate_creation_distro_specific_fail(self):
258 self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False)
259
260 def test_sstate_creation_distro_nonspecific_pass(self):
261 self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True)
262 249
263 def test_sstate_creation_distro_nonspecific_fail(self): 250 def test_sstate_creation_distro_nonspecific(self):
264 self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) 251 self.run_test_sstate_creation(['linux-libc-headers'], hostdistro_specific=False)
265 252
266class SStateCleanup(SStateBase): 253class SStateCleanup(SStateBase):
267 def test_cleansstate_task_distro_specific_nonspecific(self): 254 def test_cleansstate_task_distro_specific_nonspecific(self):
diff --git a/meta/lib/oeqa/selftest/cases/toolchain.py b/meta/lib/oeqa/selftest/cases/toolchain.py
new file mode 100644
index 0000000000..b4b280d037
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/toolchain.py
@@ -0,0 +1,71 @@
1#
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: MIT
5#
6
7import shutil
8import subprocess
9import tempfile
10from types import SimpleNamespace
11
12import oe.path
13from oeqa.selftest.case import OESelftestTestCase
14from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars
15
16class ToolchainTests(OESelftestTestCase):
17
18 def test_toolchain_switching(self):
19 """
20 Test that a configuration that uses GCC by default but clang for one
21 specific recipe does infact do that.
22 """
23
24 def extract_comment(objcopy, filename):
25 """
26 Using the specified `objcopy`, return the .comment segment from
27 `filename` as a bytes().
28 """
29 with tempfile.NamedTemporaryFile(prefix="comment-") as f:
30 cmd = [objcopy, "--dump-section", ".comment=" + f.name, filename]
31 subprocess.run(cmd, check=True)
32 # clang's objcopy writes to a temporary file and renames, so we need to re-open.
33 with open(f.name, "rb") as f2:
34 return f2.read()
35
36 def check_recipe(recipe, filename, override, comment_present, comment_absent=None):
37 """
38 Check that `filename` in `recipe`'s bindir contains `comment`, and
39 the overrides contain `override`.
40 """
41 d = SimpleNamespace(**get_bb_vars(("D", "bindir", "OBJCOPY", "OVERRIDES", "PATH"), target=recipe))
42
43 self.assertIn(override, d.OVERRIDES)
44
45 binary = oe.path.join(d.D, d.bindir, filename)
46
47 objcopy = shutil.which(d.OBJCOPY, path=d.PATH)
48 self.assertIsNotNone(objcopy)
49
50 comment = extract_comment(objcopy, binary)
51 self.assertIn(comment_present, comment)
52 if comment_absent:
53 self.assertNotIn(comment_absent, comment)
54
55
56 # GCC by default, clang for selftest-hello.
57 self.write_config("""
58TOOLCHAIN = "gcc"
59TOOLCHAIN:pn-selftest-hello = "clang"
60 """)
61
62 # Force these recipes to re-install so we can extract the .comments from
63 # the install directory, as they're stripped out of the final packages.
64 bitbake("m4 selftest-hello -C install")
65
66 # m4 should be built with GCC and only GCC
67 check_recipe("m4", "m4", "toolchain-gcc", b"GCC: (GNU)", b"clang")
68
69 # helloworld should be built with clang. We can't assert that GCC is not
70 # present as it will be linked against glibc which is built with GCC.
71 check_recipe("selftest-hello", "helloworld", "toolchain-clang", b"clang version")
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py
index f45608172f..680f99d381 100644
--- a/meta/lib/oeqa/selftest/cases/wic.py
+++ b/meta/lib/oeqa/selftest/cases/wic.py
@@ -1021,6 +1021,18 @@ class Wic2(WicTestCase):
1021 """Test building wic images by bitbake""" 1021 """Test building wic images by bitbake"""
1022 config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "wic-image-minimal"\n'\ 1022 config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "wic-image-minimal"\n'\
1023 'MACHINE_FEATURES:append = " efi"\n' 1023 'MACHINE_FEATURES:append = " efi"\n'
1024 image_recipe_append = """
1025do_image_wic[postfuncs] += "run_wic_cmd"
1026run_wic_cmd() {
1027 echo "test" >> ${WORKDIR}/test.wic-cp
1028 wic cp --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${WORKDIR}/test.wic-cp ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1029 wic ls --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1030 wic rm --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/test.wic-cp
1031 wic cp --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${WORKDIR}/test.wic-cp ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1032}
1033"""
1034 self.write_recipeinc('images', image_recipe_append)
1035
1024 self.append_config(config) 1036 self.append_config(config)
1025 image = 'wic-image-minimal' 1037 image = 'wic-image-minimal'
1026 bitbake(image) 1038 bitbake(image)
@@ -1029,6 +1041,11 @@ class Wic2(WicTestCase):
1029 bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], image) 1041 bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], image)
1030 prefix = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], '%s.' % bb_vars['IMAGE_LINK_NAME']) 1042 prefix = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], '%s.' % bb_vars['IMAGE_LINK_NAME'])
1031 1043
1044 sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
1045 # check if file is there
1046 result = runCmd("wic ls %s:1/ -n %s" % (prefix+"wic", sysroot))
1047 self.assertIn("test.wic-cp", result.output)
1048
1032 # check if we have result image and manifests symlinks 1049 # check if we have result image and manifests symlinks
1033 # pointing to existing files 1050 # pointing to existing files
1034 for suffix in ('wic', 'manifest'): 1051 for suffix in ('wic', 'manifest'):
@@ -1044,7 +1061,25 @@ class Wic2(WicTestCase):
1044 config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "wic-image-minimal"\n'\ 1061 config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "wic-image-minimal"\n'\
1045 'MACHINE_FEATURES:append = " efi"\n' 1062 'MACHINE_FEATURES:append = " efi"\n'
1046 self.append_config(config) 1063 self.append_config(config)
1064 image_recipe_append = """
1065do_image_wic[postfuncs] += "run_wic_cmd"
1066run_wic_cmd() {
1067 echo "test" >> ${WORKDIR}/test.wic-cp
1068 wic cp --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${WORKDIR}/test.wic-cp ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1069 wic ls --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1070 wic rm --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/test.wic-cp
1071 wic cp --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" ${WORKDIR}/test.wic-cp ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic:1/
1072}
1073"""
1074 self.write_recipeinc('images', image_recipe_append)
1047 bitbake('wic-image-minimal') 1075 bitbake('wic-image-minimal')
1076
1077 sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
1078 bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], "wic-image-minimal")
1079 image_path = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], bb_vars['IMAGE_LINK_NAME'])
1080 # check if file is there
1081 result = runCmd("wic ls %s:1/ -n %s" % (image_path+".wic", sysroot))
1082 self.assertIn("test.wic-cp", result.output)
1048 self.remove_config(config) 1083 self.remove_config(config)
1049 1084
1050 runqemu_params = get_bb_var('TEST_RUNQEMUPARAMS', 'wic-image-minimal') or "" 1085 runqemu_params = get_bb_var('TEST_RUNQEMUPARAMS', 'wic-image-minimal') or ""
diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py
index 2a47f90e32..b60a6e6c38 100644
--- a/meta/lib/oeqa/utils/commands.py
+++ b/meta/lib/oeqa/utils/commands.py
@@ -285,7 +285,20 @@ def get_bb_vars(variables=None, target=None, postconfig=None):
285 return values 285 return values
286 286
287def get_bb_var(var, target=None, postconfig=None): 287def get_bb_var(var, target=None, postconfig=None):
288 return get_bb_vars([var], target, postconfig)[var] 288 if postconfig:
289 return bitbake("-e %s" % target or "", postconfig=postconfig).output
290 else:
291 # Fast-path for the non-postconfig case
292 cmd = ["bitbake-getvar", "--quiet", "--value", var]
293 if target:
294 cmd.extend(["--recipe", target])
295 try:
296 return subprocess.run(cmd, check=True, text=True, stdout=subprocess.PIPE).stdout.strip()
297 except subprocess.CalledProcessError as e:
298 # We need to return None not the empty string if the variable hasn't been set.
299 if e.returncode == 1:
300 return None
301 raise
289 302
290def get_test_layer(bblayers=None): 303def get_test_layer(bblayers=None):
291 if bblayers is None: 304 if bblayers is None:
diff --git a/meta/recipes-bsp/alsa-state/alsa-state.bb b/meta/recipes-bsp/alsa-state/alsa-state.bb
index 099fbd3b9d..9452a1a4ce 100644
--- a/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -21,8 +21,7 @@ SRC_URI = "\
21 file://alsa-state-init \ 21 file://alsa-state-init \
22" 22"
23 23
24S = "${WORKDIR}/sources" 24S = "${UNPACKDIR}"
25UNPACKDIR = "${S}"
26 25
27# As the recipe doesn't inherit systemd.bbclass, we need to set this variable 26# As the recipe doesn't inherit systemd.bbclass, we need to set this variable
28# manually to avoid unnecessary postinst/preinst generated. 27# manually to avoid unnecessary postinst/preinst generated.
diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc
index d6ea1eedfe..67bc964188 100644
--- a/meta/recipes-bsp/barebox/barebox-common.inc
+++ b/meta/recipes-bsp/barebox/barebox-common.inc
@@ -3,6 +3,6 @@ SECTION = "bootloaders"
3 3
4LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192" 4LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
5 5
6PV = "2025.04.0" 6PV = "2025.06.0"
7SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2" 7SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
8SRC_URI[sha256sum] = "3124f3c2b69d9ce0512b2d40fa17cace9c356f65f005a63da0474387b8839c41" 8SRC_URI[sha256sum] = "d05bc1f85dc1d95b0b6b6a52cac0a469148fbb8f1edb0d352c3ca3b632426941"
diff --git a/meta/recipes-bsp/barebox/barebox-tools.bb b/meta/recipes-bsp/barebox/barebox-tools.bb
index 2a117bc9c0..e519796c1d 100644
--- a/meta/recipes-bsp/barebox/barebox-tools.bb
+++ b/meta/recipes-bsp/barebox/barebox-tools.bb
@@ -6,7 +6,7 @@ LICENSE = "GPL-2.0-only"
6 6
7DEPENDS = "bison-native flex-native libusb1" 7DEPENDS = "bison-native flex-native libusb1"
8 8
9S = "${WORKDIR}/barebox-${PV}" 9S = "${UNPACKDIR}/barebox-${PV}"
10B = "${WORKDIR}/build" 10B = "${WORKDIR}/build"
11 11
12inherit pkgconfig 12inherit pkgconfig
diff --git a/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb b/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
index fbd2f5dbc8..6f4178216b 100644
--- a/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
+++ b/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
@@ -13,8 +13,6 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main" 13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main"
14SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6" 14SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6"
15 15
16S = "${WORKDIR}/git"
17
18inherit pkgconfig 16inherit pkgconfig
19 17
20# The directory under the ESP that the default bootloader is found in. When 18# The directory under the ESP that the default bootloader is found in. When
diff --git a/meta/recipes-bsp/efivar/efivar_39.bb b/meta/recipes-bsp/efivar/efivar_39.bb
index b052e3838f..fb6b6b3821 100644
--- a/meta/recipes-bsp/efivar/efivar_39.bb
+++ b/meta/recipes-bsp/efivar/efivar_39.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \
12 " 12 "
13SRCREV = "c47820c37ac26286559ec004de07d48d05f3308c" 13SRCREV = "c47820c37ac26286559ec004de07d48d05f3308c"
14 14
15S = "${WORKDIR}/git"
16
17inherit pkgconfig 15inherit pkgconfig
18 16
19export CCLD_FOR_BUILD = "${BUILD_CCLD}" 17export CCLD_FOR_BUILD = "${BUILD_CCLD}"
diff --git a/meta/recipes-bsp/formfactor/formfactor_0.0.bb b/meta/recipes-bsp/formfactor/formfactor_0.0.bb
index 4714bb2e5e..f8d5613ffa 100644
--- a/meta/recipes-bsp/formfactor/formfactor_0.0.bb
+++ b/meta/recipes-bsp/formfactor/formfactor_0.0.bb
@@ -8,8 +8,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
8 8
9SRC_URI = "file://config file://machconfig" 9SRC_URI = "file://config file://machconfig"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14PACKAGE_ARCH = "${MACHINE_ARCH}" 13PACKAGE_ARCH = "${MACHINE_ARCH}"
15INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.1.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.1.bb
index c93e06b96c..10a4ab6800 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.1.bb
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi_4.0.1.bb
@@ -20,8 +20,6 @@ SRC_URI = "git://github.com/ncroxon/gnu-efi;protocol=https;branch=master \
20 " 20 "
21SRCREV = "00cdfa66e923ab2f6683bb52cab0d0d1a9083b16" 21SRCREV = "00cdfa66e923ab2f6683bb52cab0d0d1a9083b16"
22 22
23S = "${WORKDIR}/git"
24
25# llvm-objcopy fails 23# llvm-objcopy fails
26# arm-poky-linux-gnueabi-llvm-objcopy: error: 't8.so': section '.dynstr' cannot be removed because it is referenced by the section '.dynamic' 24# arm-poky-linux-gnueabi-llvm-objcopy: error: 't8.so': section '.dynstr' cannot be removed because it is referenced by the section '.dynamic'
27OBJCOPY:toolchain-clang = "${HOST_PREFIX}objcopy" 25OBJCOPY:toolchain-clang = "${HOST_PREFIX}objcopy"
diff --git a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
index a004e3a3b2..0b4005e5bf 100644
--- a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
+++ b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
@@ -11,8 +11,7 @@ inherit grub-efi-cfg
11 11
12require conf/image-uefi.conf 12require conf/image-uefi.conf
13 13
14S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
15UNPACKDIR = "${S}"
16 15
17GRUB_CFG = "${S}/grub-bootconf" 16GRUB_CFG = "${S}/grub-bootconf"
18LABELS = "boot" 17LABELS = "boot"
diff --git a/meta/recipes-bsp/grub/grub-efi_2.12.bb b/meta/recipes-bsp/grub/grub-efi_2.12.bb
index 5b435245ee..6354b43989 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.12.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.12.bb
@@ -11,7 +11,7 @@ SRC_URI += " \
11 file://cfg \ 11 file://cfg \
12 " 12 "
13 13
14S = "${WORKDIR}/grub-${PV}" 14S = "${UNPACKDIR}/grub-${PV}"
15 15
16# Determine the target arch for the grub modules 16# Determine the target arch for the grub modules
17python __anonymous () { 17python __anonymous () {
diff --git a/meta/recipes-bsp/keymaps/keymaps_1.0.bb b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
index 0425197c98..ab2d68d6a1 100644
--- a/meta/recipes-bsp/keymaps/keymaps_1.0.bb
+++ b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
@@ -24,8 +24,7 @@ SRC_URI = "file://keymap.sh"
24INITSCRIPT_NAME = "keymap.sh" 24INITSCRIPT_NAME = "keymap.sh"
25INITSCRIPT_PARAMS = "start 01 S ." 25INITSCRIPT_PARAMS = "start 01 S ."
26 26
27S = "${WORKDIR}/sources" 27S = "${UNPACKDIR}"
28UNPACKDIR = "${S}"
29 28
30do_install () { 29do_install () {
31 # Only install the script if 'sysvinit' is in DISTRO_FEATURES 30 # Only install the script if 'sysvinit' is in DISTRO_FEATURES
diff --git a/meta/recipes-bsp/opensbi/opensbi_1.6.bb b/meta/recipes-bsp/opensbi/opensbi_1.6.bb
index c9dfcfbe4f..308ac43ac8 100644
--- a/meta/recipes-bsp/opensbi/opensbi_1.6.bb
+++ b/meta/recipes-bsp/opensbi/opensbi_1.6.bb
@@ -12,7 +12,6 @@ SRCREV = "bd613dd92113f683052acfb23d9dc8ba60029e0a"
12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https \ 12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https \
13 file://0001-Makefile-Add-flag-for-reprodubility-compiler-flags.patch \ 13 file://0001-Makefile-Add-flag-for-reprodubility-compiler-flags.patch \
14" 14"
15S = "${WORKDIR}/git"
16 15
17TARGET_DBGSRC_DIR = "/share/opensbi/*/generic/firmware/" 16TARGET_DBGSRC_DIR = "/share/opensbi/*/generic/firmware/"
18 17
diff --git a/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb b/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
index b252ae45d2..8756511c17 100644
--- a/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
+++ b/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
@@ -6,7 +6,6 @@ LICENSE = "GPL-2.0-only"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ 6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
7 file://src/pm-pmu.c;beginline=1;endline=22;md5=3c1ddbc54e735fb4a0386e14c78a3147" 7 file://src/pm-pmu.c;beginline=1;endline=22;md5=3c1ddbc54e735fb4a0386e14c78a3147"
8 8
9
10SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz" 9SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz"
11 10
12SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b" 11SRC_URI[sha256sum] = "8ed899032866d88b2933a1d34cc75e8ae42dcde20e1cc21836baaae3d4370c0b"
diff --git a/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb b/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
index 8c7a59ba96..35678e2361 100644
--- a/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
+++ b/meta/recipes-bsp/u-boot/libubootenv_0.3.6.bb
@@ -13,8 +13,6 @@ SECTION = "libs"
13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master" 13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master"
14SRCREV = "5507339628b5caf244e1ff9d58cb3fa534b16beb" 14SRCREV = "5507339628b5caf244e1ff9d58cb3fa534b16beb"
15 15
16S = "${WORKDIR}/git"
17
18inherit cmake lib_package 16inherit cmake lib_package
19 17
20EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release" 18EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index fd1eab5cdd..617f5a60bb 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -16,7 +16,6 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
16 16
17SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}" 17SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
18 18
19S = "${WORKDIR}/git"
20B = "${WORKDIR}/build" 19B = "${WORKDIR}/build"
21 20
22inherit pkgconfig 21inherit pkgconfig
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
index 9464736b84..b7242de5de 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -192,16 +192,16 @@ uboot_install_config () {
192 config=$1 192 config=$1
193 type=$2 193 type=$2
194 194
195 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 195 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
196 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} 196 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
197 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY} 197 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
198 198
199 # Install the uboot-initial-env 199 # Install the uboot-initial-env
200 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 200 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
201 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 201 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
202 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type} 202 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
203 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type} 203 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
204 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} 204 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
205 fi 205 fi
206} 206}
207 207
@@ -211,9 +211,9 @@ uboot_install () {
211 211
212 # Install the uboot-initial-env 212 # Install the uboot-initial-env
213 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 213 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
214 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 214 install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
215 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE} 215 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
216 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} 216 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
217 fi 217 fi
218} 218}
219 219
@@ -221,9 +221,9 @@ uboot_install_elf_config () {
221 config=$1 221 config=$1
222 type=$2 222 type=$2
223 223
224 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} 224 install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
225 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type} 225 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
226 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY} 226 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
227} 227}
228 228
229uboot_install_elf () { 229uboot_install_elf () {
@@ -235,9 +235,9 @@ uboot_install_spl_config () {
235 config=$1 235 config=$1
236 type=$2 236 type=$2
237 237
238 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} 238 install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
239 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type} 239 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}-${type}
240 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE} 240 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${D}/boot/${SPL_BINARYFILE}
241} 241}
242 242
243uboot_install_spl () { 243uboot_install_spl () {
@@ -282,10 +282,10 @@ do_deploy () {
282 fi 282 fi
283 283
284 if [ -e ${UNPACKDIR}/fw_env.config ] ; then 284 if [ -e ${UNPACKDIR}/fw_env.config ] ; then
285 install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR} 285 install -D -m 644 ${UNPACKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${UBOOT_VERSION}
286 cd ${DEPLOYDIR} 286 cd ${DEPLOYDIR}
287 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE} 287 ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config-${MACHINE}
288 ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config 288 ln -sf fw_env.config-${MACHINE}-${UBOOT_VERSION} fw_env.config
289 fi 289 fi
290 290
291 if [ -n "${UBOOT_ELF}" ] 291 if [ -n "${UBOOT_ELF}" ]
@@ -309,7 +309,6 @@ do_deploy () {
309 fi 309 fi
310 fi 310 fi
311 311
312
313 if [ -n "${SPL_BINARY}" ] 312 if [ -n "${SPL_BINARY}" ]
314 then 313 then
315 if [ -n "${UBOOT_CONFIG}" ] 314 if [ -n "${UBOOT_CONFIG}" ]
@@ -355,19 +354,19 @@ uboot_deploy_config () {
355 config=$1 354 config=$1
356 type=$2 355 type=$2
357 356
358 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} 357 install -D -m 644 ${B}/${config}/${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX}
359 cd ${DEPLOYDIR} 358 cd ${DEPLOYDIR}
360 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type} 359 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
361 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK} 360 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
362 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type} 361 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
363 ln -sf ${UBOOT_BINARYNAME}-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY} 362 ln -sf ${UBOOT_BINARYNAME}-${type}-${UBOOT_VERSION}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
364 363
365 # Deploy the uboot-initial-env 364 # Deploy the uboot-initial-env
366 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 365 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
367 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} 366 install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION}
368 cd ${DEPLOYDIR} 367 cd ${DEPLOYDIR}
369 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type} 368 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
370 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type} 369 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${type}
371 fi 370 fi
372} 371}
373 372
@@ -381,10 +380,10 @@ uboot_deploy () {
381 380
382 # Deploy the uboot-initial-env 381 # Deploy the uboot-initial-env
383 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 382 if [ -n "${UBOOT_INITIAL_ENV}" ]; then
384 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} 383 install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION}
385 cd ${DEPLOYDIR} 384 cd ${DEPLOYDIR}
386 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE} 385 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}-${MACHINE}
387 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV} 386 ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${UBOOT_VERSION} ${UBOOT_INITIAL_ENV}
388 fi 387 fi
389} 388}
390 389
@@ -392,11 +391,11 @@ uboot_deploy_elf_config () {
392 config=$1 391 config=$1
393 type=$2 392 type=$2
394 393
395 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} 394 install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX}
396 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type} 395 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
397 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY} 396 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
398 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type} 397 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
399 ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK} 398 ln -sf u-boot-${type}-${UBOOT_VERSION}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
400} 399}
401 400
402uboot_deploy_elf () { 401uboot_deploy_elf () {
@@ -409,12 +408,12 @@ uboot_deploy_spl_config () {
409 config=$1 408 config=$1
410 type=$2 409 type=$2
411 410
412 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} 411 install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX}
413 rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK} 412 rm -f ${DEPLOYDIR}/${SPL_BINARYFILE} ${DEPLOYDIR}/${SPL_SYMLINK}
414 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type} 413 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}-${type}
415 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE} 414 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_BINARYFILE}
416 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type} 415 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
417 ln -sf ${SPL_BINARYNAME}-${type}-${PV}-${PR}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK} 416 ln -sf ${SPL_BINARYNAME}-${type}-${UBOOT_VERSION}${SPL_DELIMITER}${SPL_SUFFIX} ${DEPLOYDIR}/${SPL_SYMLINK}
418} 417}
419 418
420uboot_deploy_spl () { 419uboot_deploy_spl () {
diff --git a/meta/recipes-connectivity/avahi/avahi-libnss-mdns_0.15.1.bb b/meta/recipes-connectivity/avahi/avahi-libnss-mdns_0.15.1.bb
index 9b8275b113..d45c06357d 100644
--- a/meta/recipes-connectivity/avahi/avahi-libnss-mdns_0.15.1.bb
+++ b/meta/recipes-connectivity/avahi/avahi-libnss-mdns_0.15.1.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://github.com/lathiat/nss-mdns;branch=master;protocol=https \
13 13
14SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633" 14SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools pkgconfig 16inherit autotools pkgconfig
19 17
20COMPATIBLE_HOST:libc-musl = 'null' 18COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index 7bae968094..287ebf658e 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -69,7 +69,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
69 file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \ 69 file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
70 file://0001-bluez5-disable-aics-tests.patch \ 70 file://0001-bluez5-disable-aics-tests.patch \
71 " 71 "
72S = "${WORKDIR}/bluez-${PV}" 72S = "${UNPACKDIR}/bluez-${PV}"
73 73
74CVE_PRODUCT = "bluez" 74CVE_PRODUCT = "bluez"
75 75
diff --git a/meta/recipes-connectivity/connman/connman-conf.bb b/meta/recipes-connectivity/connman/connman-conf.bb
index 73c54cddae..854e1f1f29 100644
--- a/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/meta/recipes-connectivity/connman/connman-conf.bb
@@ -4,12 +4,10 @@ network interface inside qemu machines."
4LICENSE = "GPL-2.0-only" 4LICENSE = "GPL-2.0-only"
5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
6 6
7
8SRC_URI = "file://main.conf \ 7SRC_URI = "file://main.conf \
9 " 8 "
10 9
11S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 11
14PACKAGE_ARCH = "${MACHINE_ARCH}" 12PACKAGE_ARCH = "${MACHINE_ARCH}"
15 13
diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index 46b3f854c5..8bfc1540b3 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -18,8 +18,6 @@ SRC_URI = "git://github.com/connectivity/connman-gnome.git;branch=master;protoco
18 file://0001-Port-to-Gtk3.patch \ 18 file://0001-Port-to-Gtk3.patch \
19 " 19 "
20 20
21S = "${WORKDIR}/git"
22
23inherit autotools-brokensep gtk-icon-cache pkgconfig features_check 21inherit autotools-brokensep gtk-icon-cache pkgconfig features_check
24ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 22ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
25 23
diff --git a/meta/recipes-connectivity/dhcpcd/dhcpcd_10.2.4.bb b/meta/recipes-connectivity/dhcpcd/dhcpcd_10.2.4.bb
index dee921d21c..bfb24aa58c 100644
--- a/meta/recipes-connectivity/dhcpcd/dhcpcd_10.2.4.bb
+++ b/meta/recipes-connectivity/dhcpcd/dhcpcd_10.2.4.bb
@@ -18,7 +18,6 @@ SRC_URI = "git://github.com/NetworkConfiguration/dhcpcd;protocol=https;branch=ma
18 " 18 "
19 19
20SRCREV = "93df2b254caf9639f9ffb66e0fe2b584eeba6220" 20SRCREV = "93df2b254caf9639f9ffb66e0fe2b584eeba6220"
21S = "${WORKDIR}/git"
22 21
23# Doesn't use automake so we can't do out-of-tree builds 22# Doesn't use automake so we can't do out-of-tree builds
24inherit pkgconfig autotools-brokensep systemd useradd 23inherit pkgconfig autotools-brokensep systemd useradd
diff --git a/meta/recipes-connectivity/inetutils/inetutils_2.6.bb b/meta/recipes-connectivity/inetutils/inetutils_2.6.bb
index ef453d3bb2..6e03195f2d 100644
--- a/meta/recipes-connectivity/inetutils/inetutils_2.6.bb
+++ b/meta/recipes-connectivity/inetutils/inetutils_2.6.bb
@@ -165,7 +165,6 @@ ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
165ALTERNATIVE:${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}" 165ALTERNATIVE:${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}"
166ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" 166ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6"
167 167
168
169FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" 168FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug"
170FILES:${PN}-ping = "${base_bindir}/ping.${BPN}" 169FILES:${PN}-ping = "${base_bindir}/ping.${BPN}"
171FILES:${PN}-ping6 = "${base_bindir}/ping6.${BPN}" 170FILES:${PN}-ping6 = "${base_bindir}/ping6.${BPN}"
diff --git a/meta/recipes-connectivity/libuv/libuv_1.51.0.bb b/meta/recipes-connectivity/libuv/libuv_1.51.0.bb
index 569bff1439..9ff9cf35e2 100644
--- a/meta/recipes-connectivity/libuv/libuv_1.51.0.bb
+++ b/meta/recipes-connectivity/libuv/libuv_1.51.0.bb
@@ -10,8 +10,6 @@ SRCREV = "5152db2cbfeb5582e9c27c5ea1dba2cd9e10759b"
10SRC_URI = "git://github.com/libuv/libuv.git;branch=v1.x;protocol=https;tag=v${PV}" 10SRC_URI = "git://github.com/libuv/libuv.git;branch=v1.x;protocol=https;tag=v${PV}"
11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
12 12
13S = "${WORKDIR}/git"
14
15inherit autotools 13inherit autotools
16 14
17do_configure() { 15do_configure() {
diff --git a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_20240407.bb b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_20240407.bb
index e07b93d695..2e8702a045 100644
--- a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_20240407.bb
+++ b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_20240407.bb
@@ -10,8 +10,6 @@ PE = "1"
10SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=main" 10SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=main"
11SRCREV = "55ba955d53305df96123534488fd160ea882b4dd" 11SRCREV = "55ba955d53305df96123534488fd160ea882b4dd"
12 12
13S = "${WORKDIR}/git"
14
15inherit meson 13inherit meson
16 14
17DEPENDS += "libxslt-native" 15DEPENDS += "libxslt-native"
diff --git a/meta/recipes-connectivity/neard/neard_0.19.bb b/meta/recipes-connectivity/neard/neard_0.19.bb
index 9e0ac6aa69..41c7e55f44 100644
--- a/meta/recipes-connectivity/neard/neard_0.19.bb
+++ b/meta/recipes-connectivity/neard/neard_0.19.bb
@@ -17,8 +17,6 @@ SRC_URI = "git://git.kernel.org/pub/scm/network/nfc/neard.git;protocol=https;bra
17 17
18SRCREV = "a1dc8a75cba999728e154a0f811ab9dd50c809f7" 18SRCREV = "a1dc8a75cba999728e154a0f811ab9dd50c809f7"
19 19
20S = "${WORKDIR}/git"
21
22inherit autotools pkgconfig systemd update-rc.d 20inherit autotools pkgconfig systemd update-rc.d
23 21
24PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 22PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
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 0ee47d47c2..5c9c8219d7 100644
--- a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
+++ b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
@@ -11,8 +11,7 @@ SRC_URI = "file://host-peer \
11 11
12inherit allarch useradd 12inherit allarch useradd
13 13
14S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
15UNPACKDIR = "${S}"
16 15
17do_install() { 16do_install() {
18 install -d ${D}${sysconfdir}/ppp/peers 17 install -d ${D}${sysconfdir}/ppp/peers
diff --git a/meta/recipes-connectivity/resolvconf/resolvconf_1.93.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.93.bb
index 93e5a944d1..c10c57267a 100644
--- a/meta/recipes-connectivity/resolvconf/resolvconf_1.93.bb
+++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.93.bb
@@ -17,8 +17,6 @@ SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https;branch=un
17 17
18SRCREV = "ab766fa31f7939f6d879123236b4275320b7ff64" 18SRCREV = "ab766fa31f7939f6d879123236b4275320b7ff64"
19 19
20S = "${WORKDIR}/git"
21
22# the package is taken from snapshots.debian.org; that source is static and goes stale 20# the package is taken from snapshots.debian.org; that source is static and goes stale
23# so we check the latest upstream from a directory that does get updated 21# so we check the latest upstream from a directory that does get updated
24UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/" 22UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/"
diff --git a/meta/recipes-connectivity/slirp/libslirp_4.9.1.bb b/meta/recipes-connectivity/slirp/libslirp_4.9.1.bb
index 568bac389f..9f7005d709 100644
--- a/meta/recipes-connectivity/slirp/libslirp_4.9.1.bb
+++ b/meta/recipes-connectivity/slirp/libslirp_4.9.1.bb
@@ -7,8 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bca0186b14e6b05e338e729f106db727"
7SRC_URI = "git://gitlab.freedesktop.org/slirp/libslirp.git;protocol=https;branch=master" 7SRC_URI = "git://gitlab.freedesktop.org/slirp/libslirp.git;protocol=https;branch=master"
8SRCREV = "9c744e1e52aa0d9646ed91d789d588696292c21e" 8SRCREV = "9c744e1e52aa0d9646ed91d789d588696292c21e"
9 9
10S = "${WORKDIR}/git"
11
12DEPENDS = "glib-2.0" 10DEPENDS = "glib-2.0"
13 11
14inherit meson pkgconfig 12inherit meson pkgconfig
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 db5a0eb8ce..57b0534929 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
@@ -6,8 +6,7 @@ SRC_URI = "file://dropbear_rsa_host_key \
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 7LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12INHIBIT_DEFAULT_DEPS = "1" 11INHIBIT_DEFAULT_DEPS = "1"
13 12
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.11.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.11.bb
index ac99d0db49..6dc76494f7 100644
--- a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.11.bb
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.11.bb
@@ -19,7 +19,7 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
19 " 19 "
20SRC_URI[sha256sum] = "912ea06f74e30a8e36fbb68064d6cdff218d8d591db0fc5d75dee6c81ac7fc0a" 20SRC_URI[sha256sum] = "912ea06f74e30a8e36fbb68064d6cdff218d8d591db0fc5d75dee6c81ac7fc0a"
21 21
22S = "${WORKDIR}/wpa_supplicant-${PV}" 22S = "${UNPACKDIR}/wpa_supplicant-${PV}"
23 23
24inherit pkgconfig systemd 24inherit pkgconfig systemd
25 25
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 59b084d141..3f01bb35d9 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -25,8 +25,7 @@ SRC_URI = "file://rotation \
25 file://licenses/GPL-2 \ 25 file://licenses/GPL-2 \
26 " 26 "
27 27
28S = "${WORKDIR}/sources" 28S = "${UNPACKDIR}"
29UNPACKDIR = "${S}"
30 29
31INHIBIT_DEFAULT_DEPS = "1" 30INHIBIT_DEFAULT_DEPS = "1"
32 31
diff --git a/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb b/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb
index 3d5247ee87..177927d674 100644
--- a/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb
+++ b/meta/recipes-core/base-passwd/base-passwd_3.6.7.bb
@@ -21,7 +21,7 @@ SRC_URI[sha256sum] = "cf869870fed7862b57bfa9e99cd5cd6f365e2349705a1b65af7fc18262
21# so we check the latest upstream from a directory that does get updated 21# so we check the latest upstream from a directory that does get updated
22UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/b/base-passwd/" 22UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/b/base-passwd/"
23 23
24S = "${WORKDIR}/work" 24S = "${UNPACKDIR}/work"
25 25
26PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" 26PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
27PACKAGECONFIG[selinux] = "--enable-selinux, --disable-selinux, libselinux" 27PACKAGECONFIG[selinux] = "--enable-selinux, --disable-selinux, libselinux"
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb b/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb
index 4ffc44c808..8b46b5763e 100644
--- a/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb
+++ b/meta/recipes-core/busybox/busybox-inittab_1.37.0.bb
@@ -4,8 +4,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;m
4 4
5SRC_URI = "file://inittab" 5SRC_URI = "file://inittab"
6 6
7S = "${WORKDIR}/sources" 7S = "${UNPACKDIR}"
8UNPACKDIR = "${S}"
9 8
10INHIBIT_DEFAULT_DEPS = "1" 9INHIBIT_DEFAULT_DEPS = "1"
11 10
@@ -49,7 +48,6 @@ EOF
49 48
50} 49}
51 50
52
53# SERIAL_CONSOLES is generally defined by the MACHINE .conf. 51# SERIAL_CONSOLES is generally defined by the MACHINE .conf.
54# Set PACKAGE_ARCH appropriately. 52# Set PACKAGE_ARCH appropriately.
55PACKAGE_ARCH = "${MACHINE_ARCH}" 53PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch b/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch
new file mode 100644
index 0000000000..41be1635b5
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils/0001-sort-fix-buffer-under-read-CWE-127.patch
@@ -0,0 +1,112 @@
1From 8763c305c29d0abb7e2be4695212b42917d054b2 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
3Date: Tue, 20 May 2025 16:03:44 +0100
4Subject: [PATCH] sort: fix buffer under-read (CWE-127)
5
6* src/sort.c (begfield): Check pointer adjustment
7to avoid Out-of-range pointer offset (CWE-823).
8(limfield): Likewise.
9* tests/sort/sort-field-limit.sh: Add a new test,
10which triggers with ASAN or Valgrind.
11* tests/local.mk: Reference the new test.
12* NEWS: Mention bug fix introduced in v7.2 (2009).
13Fixes https://bugs.gnu.org/78507
14
15CVE: CVE-2025-5278
16
17Upstream-Status: Backport [https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?id=8c9602e3a145e9596dc1a63c6ed67865814b6633]
18
19Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
20---
21 src/sort.c | 12 ++++++++++--
22 tests/local.mk | 1 +
23 tests/sort/sort-field-limit.sh | 35 ++++++++++++++++++++++++++++++++++
24 3 files changed, 46 insertions(+), 2 deletions(-)
25 create mode 100755 tests/sort/sort-field-limit.sh
26
27diff --git a/src/sort.c b/src/sort.c
28index b10183b6f..7af1a2512 100644
29--- a/src/sort.c
30+++ b/src/sort.c
31@@ -1644,7 +1644,11 @@ begfield (struct line const *line, struct keyfield const *key)
32 ++ptr;
33
34 /* Advance PTR by SCHAR (if possible), but no further than LIM. */
35- ptr = MIN (lim, ptr + schar);
36+ size_t remaining_bytes = lim - ptr;
37+ if (schar < remaining_bytes)
38+ ptr += schar;
39+ else
40+ ptr = lim;
41
42 return ptr;
43 }
44@@ -1746,7 +1750,11 @@ limfield (struct line const *line, struct keyfield const *key)
45 ++ptr;
46
47 /* Advance PTR by ECHAR (if possible), but no further than LIM. */
48- ptr = MIN (lim, ptr + echar);
49+ size_t remaining_bytes = lim - ptr;
50+ if (echar < remaining_bytes)
51+ ptr += echar;
52+ else
53+ ptr = lim;
54 }
55
56 return ptr;
57diff --git a/tests/local.mk b/tests/local.mk
58index 4da6756ac..642d225fa 100644
59--- a/tests/local.mk
60+++ b/tests/local.mk
61@@ -388,6 +388,7 @@ all_tests = \
62 tests/sort/sort-debug-keys.sh \
63 tests/sort/sort-debug-warn.sh \
64 tests/sort/sort-discrim.sh \
65+ tests/sort/sort-field-limit.sh \
66 tests/sort/sort-files0-from.pl \
67 tests/sort/sort-float.sh \
68 tests/sort/sort-h-thousands-sep.sh \
69diff --git a/tests/sort/sort-field-limit.sh b/tests/sort/sort-field-limit.sh
70new file mode 100755
71index 000000000..52d8e1d17
72--- /dev/null
73+++ b/tests/sort/sort-field-limit.sh
74@@ -0,0 +1,35 @@
75+#!/bin/sh
76+# From 7.2-9.7, this would trigger an out of bounds mem read
77+
78+# Copyright (C) 2025 Free Software Foundation, Inc.
79+
80+# This program is free software: you can redistribute it and/or modify
81+# it under the terms of the GNU General Public License as published by
82+# the Free Software Foundation, either version 3 of the License, or
83+# (at your option) any later version.
84+
85+# This program is distributed in the hope that it will be useful,
86+# but WITHOUT ANY WARRANTY; without even the implied warranty of
87+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
88+# GNU General Public License for more details.
89+
90+# You should have received a copy of the GNU General Public License
91+# along with this program. If not, see <https://www.gnu.org/licenses/>.
92+
93+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
94+print_ver_ sort
95+getlimits_
96+
97+# This issue triggers with valgrind or ASAN
98+valgrind --error-exitcode=1 sort --version 2>/dev/null &&
99+ VALGRIND='valgrind --error-exitcode=1'
100+
101+{ printf '%s\n' aa bb; } > in || framework_failure_
102+
103+_POSIX2_VERSION=200809 $VALGRIND sort +0.${SIZE_MAX}R in > out || fail=1
104+compare in out || fail=1
105+
106+_POSIX2_VERSION=200809 $VALGRIND sort +1 -1.${SIZE_MAX}R in > out || fail=1
107+compare in out || fail=1
108+
109+Exit $fail
110--
1112.34.1
112
diff --git a/meta/recipes-core/coreutils/coreutils_9.7.bb b/meta/recipes-core/coreutils/coreutils_9.7.bb
index dc9dfae26b..5a6456d65e 100644
--- a/meta/recipes-core/coreutils/coreutils_9.7.bb
+++ b/meta/recipes-core/coreutils/coreutils_9.7.bb
@@ -15,6 +15,7 @@ inherit autotools gettext texinfo
15 15
16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ 16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
17 file://remove-usr-local-lib-from-m4.patch \ 17 file://remove-usr-local-lib-from-m4.patch \
18 file://0001-sort-fix-buffer-under-read-CWE-127.patch \
18 file://run-ptest \ 19 file://run-ptest \
19 " 20 "
20SRC_URI[sha256sum] = "e8bb26ad0293f9b5a1fc43fb42ba970e312c66ce92c1b0b16713d7500db251bf" 21SRC_URI[sha256sum] = "e8bb26ad0293f9b5a1fc43fb42ba970e312c66ce92c1b0b16713d7500db251bf"
diff --git a/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 39363b9b3a..c6a9abde63 100644
--- a/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -13,6 +13,4 @@ PV = "0.1+git"
13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" 13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
14UPSTREAM_CHECK_COMMITS = "1" 14UPSTREAM_CHECK_COMMITS = "1"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools pkgconfig 16inherit autotools pkgconfig
diff --git a/meta/recipes-core/dbus/dbus_1.16.2.bb b/meta/recipes-core/dbus/dbus_1.16.2.bb
index caff4c079b..65f7028b4f 100644
--- a/meta/recipes-core/dbus/dbus_1.16.2.bb
+++ b/meta/recipes-core/dbus/dbus_1.16.2.bb
@@ -148,7 +148,6 @@ do_install:append:class-target() {
148 ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service 148 ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service
149 fi 149 fi
150 150
151
152 mkdir -p ${D}${localstatedir}/lib/dbus 151 mkdir -p ${D}${localstatedir}/lib/dbus
153 152
154 chown messagebus:messagebus ${D}${localstatedir}/lib/dbus 153 chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
diff --git a/meta/recipes-core/dropbear/dropbear_2025.88.bb b/meta/recipes-core/dropbear/dropbear_2025.88.bb
index f203763b17..72a886d907 100644
--- a/meta/recipes-core/dropbear/dropbear_2025.88.bb
+++ b/meta/recipes-core/dropbear/dropbear_2025.88.bb
@@ -48,10 +48,10 @@ SBINCOMMANDS = "dropbear dropbearkey dropbearconvert"
48BINCOMMANDS = "dbclient ssh scp" 48BINCOMMANDS = "dbclient ssh scp"
49EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"' 49EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
50 50
51PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" 51PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}"
52PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}" 52PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}"
53PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt" 53PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt"
54PACKAGECONFIG[enable-x11-forwarding] = "" 54PACKAGECONFIG[x11] = ",,,,xauth"
55 55
56# This option appends to CFLAGS and LDFLAGS from OE 56# This option appends to CFLAGS and LDFLAGS from OE
57# This is causing [textrel] QA warning 57# This is causing [textrel] QA warning
@@ -62,7 +62,7 @@ EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
62 62
63do_configure:append() { 63do_configure:append() {
64 echo "/* Dropbear features */" > ${B}/localoptions.h 64 echo "/* Dropbear features */" > ${B}/localoptions.h
65 if ${@bb.utils.contains('PACKAGECONFIG', 'enable-x11-forwarding', 'true', 'false', d)}; then 65 if ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'true', 'false', d)}; then
66 echo "#define DROPBEAR_X11FWD 1" >> ${B}/localoptions.h 66 echo "#define DROPBEAR_X11FWD 1" >> ${B}/localoptions.h
67 fi 67 fi
68} 68}
diff --git a/meta/recipes-core/fts/fts_1.2.7.bb b/meta/recipes-core/fts/fts_1.2.7.bb
index 10103830af..699dc5ddd3 100644
--- a/meta/recipes-core/fts/fts_1.2.7.bb
+++ b/meta/recipes-core/fts/fts_1.2.7.bb
@@ -12,8 +12,6 @@ SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472"
12 12
13SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https" 13SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https"
14 14
15S = "${WORKDIR}/git"
16
17inherit autotools pkgconfig 15inherit autotools pkgconfig
18# 16#
19# We will skip parsing for non-musl systems 17# We will skip parsing for non-musl systems
diff --git a/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb b/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb
index e443b6b34f..941896ec48 100644
--- a/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb
+++ b/meta/recipes-core/gettext/gettext-minimal-native_0.23.1.bb
@@ -17,7 +17,7 @@ LIC_FILES_CHKSUM = "file://${UNPACKDIR}/COPYING;md5=4bd090a20bfcd1a18f1f79837b5e
17 17
18inherit native 18inherit native
19 19
20S = "${WORKDIR}/gettext-${PV}" 20S = "${UNPACKDIR}/gettext-${PV}"
21 21
22python get_aclocal_files() { 22python get_aclocal_files() {
23 fpath = oe.path.join(d.getVar("S"), "/gettext-tools/m4/Makefile.am") 23 fpath = oe.path.join(d.getVar("S"), "/gettext-tools/m4/Makefile.am")
diff --git a/meta/recipes-core/gettext/gettext_0.23.1.bb b/meta/recipes-core/gettext/gettext_0.23.1.bb
index cbc3e48890..c704a3b6d7 100644
--- a/meta/recipes-core/gettext/gettext_0.23.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.23.1.bb
@@ -13,7 +13,6 @@ LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '',
13# without glib in PACKAGECONFIG vendor copy of the lib will be used 13# without glib in PACKAGECONFIG vendor copy of the lib will be used
14LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}" 14LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}"
15 15
16
17DEPENDS = "gettext-native virtual/libiconv" 16DEPENDS = "gettext-native virtual/libiconv"
18DEPENDS:class-native = "gettext-minimal-native" 17DEPENDS:class-native = "gettext-minimal-native"
19PROVIDES = "virtual/libintl virtual/gettext" 18PROVIDES = "virtual/libintl virtual/gettext"
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index 38e75aab61..ba7763c841 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -30,7 +30,7 @@ LEAD_SONAME = "libglib-2.0.*"
30 30
31inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data 31inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
32 32
33S = "${WORKDIR}/glib-${PV}" 33S = "${UNPACKDIR}/glib-${PV}"
34 34
35GIDOCGEN_MESON_OPTION = "documentation" 35GIDOCGEN_MESON_OPTION = "documentation"
36 36
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.41.bb b/meta/recipes-core/glibc/cross-localedef-native_2.41.bb
index 5aeb84ac80..95acb3fc56 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.41.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.41.bb
@@ -20,7 +20,7 @@ inherit native
20FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" 20FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
21 21
22SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ 22SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
23 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef;protocol=https \ 23 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/localedef;protocol=https \
24 \ 24 \
25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \ 25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \
26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \ 26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \
@@ -37,8 +37,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
37# 37#
38SRCREV_FORMAT = "glibc_localedef" 38SRCREV_FORMAT = "glibc_localedef"
39 39
40S = "${WORKDIR}/git"
41
42EXTRA_OECONF = "--with-glibc=${S}" 40EXTRA_OECONF = "--with-glibc=${S}"
43 41
44# We do not need bash to run tzselect script, the default is to use 42# We do not need bash to run tzselect script, the default is to use
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index d84106fb95..2d31131e03 100644
--- a/meta/recipes-core/glibc/glibc-version.inc
+++ b/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
1SRCBRANCH ?= "release/2.41/master" 1SRCBRANCH ?= "release/2.41/master"
2PV = "2.41+git" 2PV = "2.41+git"
3SRCREV_glibc ?= "5b4c4617016d28569106549dff6f9fec73eed5ce" 3SRCREV_glibc ?= "0c76c951620f9e12df2a89b2c684878b55bb6795"
4SRCREV_localedef ?= "fab74f31b3811df543e24b6de47efdf45b538abc" 4SRCREV_localedef ?= "fab74f31b3811df543e24b6de47efdf45b538abc"
5 5
6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https" 6GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"
diff --git a/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch
index 862c7b9086..b42b186418 100644
--- a/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch
+++ b/meta/recipes-core/glibc/glibc/0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch
@@ -13,7 +13,7 @@ diff --git a/Makeconfig b/Makeconfig
13index e35c5cfe4e..7a19c731c6 100644 13index e35c5cfe4e..7a19c731c6 100644
14--- a/Makeconfig 14--- a/Makeconfig
15+++ b/Makeconfig 15+++ b/Makeconfig
16@@ -1176,7 +1176,7 @@ endif 16@@ -1172,7 +1172,7 @@ endif
17 17
18 # The assembler can generate debug information too. 18 # The assembler can generate debug information too.
19 ifndef ASFLAGS 19 ifndef ASFLAGS
diff --git a/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch b/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch
index 71777d3f2c..50d80ed577 100644
--- a/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch
+++ b/meta/recipes-core/glibc/glibc/0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch
@@ -40,7 +40,7 @@ index 8a755293b3..22dafcaad1 100644
40 # tests 40 # tests
41 41
42 # process_madvise requires CAP_SYS_ADMIN. 42 # process_madvise requires CAP_SYS_ADMIN.
43@@ -277,9 +278,10 @@ tests-time64 += \ 43@@ -282,9 +283,10 @@ tests-time64 += \
44 tst-ntp_gettimex-time64 \ 44 tst-ntp_gettimex-time64 \
45 tst-ppoll-time64 \ 45 tst-ppoll-time64 \
46 tst-prctl-time64 \ 46 tst-prctl-time64 \
diff --git a/meta/recipes-core/glibc/glibc_2.41.bb b/meta/recipes-core/glibc/glibc_2.41.bb
index 82dcf08fcd..7771fac041 100644
--- a/meta/recipes-core/glibc/glibc_2.41.bb
+++ b/meta/recipes-core/glibc/glibc_2.41.bb
@@ -17,7 +17,7 @@ Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, m
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" 19CVE_STATUS_GROUPS += "CVE_STATUS_STABLE_BACKPORTS"
20CVE_STATUS_STABLE_BACKPORTS = "" 20CVE_STATUS_STABLE_BACKPORTS = "CVE-2025-4802 CVE-2025-5702 CVE-2025-5745"
21CVE_STATUS_STABLE_BACKPORTS[status] = "cpe-stable-backport: fix available in used git hash" 21CVE_STATUS_STABLE_BACKPORTS[status] = "cpe-stable-backport: fix available in used git hash"
22 22
23DEPENDS += "gperf-native bison-native" 23DEPENDS += "gperf-native bison-native"
@@ -56,7 +56,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
56 file://0001-stdlib-Add-single-threaded-fast-path-to-rand.patch \ 56 file://0001-stdlib-Add-single-threaded-fast-path-to-rand.patch \
57 file://0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch \ 57 file://0001-Propagate-ffile-prefix-map-from-CFLAGS-to-ASFLAGS.patch \
58" 58"
59S = "${WORKDIR}/git"
60B = "${WORKDIR}/build-${TARGET_SYS}" 59B = "${WORKDIR}/build-${TARGET_SYS}"
61 60
62PACKAGES_DYNAMIC = "" 61PACKAGES_DYNAMIC = ""
diff --git a/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb b/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
index 9ca95d1e52..1c475eeb8a 100644
--- a/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
+++ b/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
@@ -19,12 +19,11 @@ SRC_URI = "file://ldconfig-native-2.12.1.tar.bz2 \
19 file://ldconfig-handle-.dynstr-located-in-separate-segment.patch \ 19 file://ldconfig-handle-.dynstr-located-in-separate-segment.patch \
20" 20"
21 21
22
23FILESEXTRAPATHS =. "${FILE_DIRNAME}/${P}:" 22FILESEXTRAPATHS =. "${FILE_DIRNAME}/${P}:"
24 23
25inherit native 24inherit native
26 25
27S = "${WORKDIR}/${PN}-${PV}" 26S = "${UNPACKDIR}/${PN}-${PV}"
28 27
29do_compile () { 28do_compile () {
30 $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig 29 $CC ldconfig.c -std=gnu99 chroot_canon.c xmalloc.c xstrdup.c cache.c readlib.c -I. dl-cache.c -o ldconfig
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb
index 3e7bece41b..8a8f477361 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.44.bb
@@ -18,9 +18,6 @@ SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https;branch=mast
18 " 18 "
19SRCREV = "7d44f9ce6717a4a496fd46f28c52e12dbf5bafdd" 19SRCREV = "7d44f9ce6717a4a496fd46f28c52e12dbf5bafdd"
20 20
21S = "${WORKDIR}/git"
22
23
24inherit ptest update-alternatives 21inherit ptest update-alternatives
25 22
26do_compile () { 23do_compile () {
diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 03f02d14ae..4daedfb43c 100644
--- a/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -26,8 +26,8 @@ inherit core-image setuptools3 features_check
26 26
27REQUIRED_DISTRO_FEATURES += "xattr" 27REQUIRED_DISTRO_FEATURES += "xattr"
28 28
29SRCREV ?= "52b5f6a95de7228a12a9156a4aaa932daf54456f" 29SRCREV ?= "b1b3318eff36d4d9b2d3a935dee607c4f012f992"
30SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ 30SRC_URI = "git://git.yoctoproject.org/poky;branch=master;destsuffix=poky \
31 file://Yocto_Build_Appliance.vmx \ 31 file://Yocto_Build_Appliance.vmx \
32 file://Yocto_Build_Appliance.vmxf \ 32 file://Yocto_Build_Appliance.vmxf \
33 file://README_VirtualBox_Guest_Additions.txt \ 33 file://README_VirtualBox_Guest_Additions.txt \
@@ -44,10 +44,10 @@ IMAGE_CMD:ext4:append () {
44fakeroot do_populate_poky_src () { 44fakeroot do_populate_poky_src () {
45 # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo 45 # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo
46 # will become invalid in the target. 46 # will become invalid in the target.
47 rm -rf ${UNPACKDIR}/git/.git 47 rm -rf ${UNPACKDIR}/poky/.git
48 rm -f ${UNPACKDIR}/git/.gitignore 48 rm -f ${UNPACKDIR}/poky/.gitignore
49 49
50 cp -R ${UNPACKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky 50 cp -R ${UNPACKDIR}/poky ${IMAGE_ROOTFS}/home/builder/poky
51 51
52 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf 52 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf
53 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads 53 mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads
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 ddf9d1b311..da594d00b7 100644
--- a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -15,8 +15,7 @@ SRC_URI = "file://copyright \
15 file://interfaces \ 15 file://interfaces \
16 file://nfsroot" 16 file://nfsroot"
17 17
18S = "${WORKDIR}/sources" 18S = "${UNPACKDIR}"
19UNPACKDIR = "${S}"
20 19
21do_install () { 20do_install () {
22 install -d ${D}${sysconfdir}/init.d \ 21 install -d ${D}${sysconfdir}/init.d \
diff --git a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
index ec3544c67a..e0a6319ccf 100644
--- a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -3,8 +3,7 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4SRC_URI = "file://init-boot.sh" 4SRC_URI = "file://init-boot.sh"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9do_install() { 8do_install() {
10 install -m 0755 ${S}/init-boot.sh ${D}/init 9 install -m 0755 ${S}/init-boot.sh ${D}/init
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs b/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
index e67ee4c25d..30555aef55 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/nfsrootfs
@@ -1,7 +1,7 @@
1#!/bin/sh 1#!/bin/sh
2 2
3nfsrootfs_enabled() { 3nfsrootfs_enabled() {
4 if [ ${bootparam_root} != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then 4 if [ "${bootparam_root}" != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then
5 return 1 5 return 1
6 fi 6 fi
7 return 0 7 return 0
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index bb4984366d..2ec03bc34c 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
4RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}" 4RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6 6
7
8inherit allarch 7inherit allarch
9 8
10SRC_URI = "file://init \ 9SRC_URI = "file://init \
@@ -20,8 +19,7 @@ SRC_URI = "file://init \
20 file://overlayroot \ 19 file://overlayroot \
21 " 20 "
22 21
23S = "${WORKDIR}/sources" 22S = "${UNPACKDIR}"
24UNPACKDIR = "${S}"
25 23
26do_install() { 24do_install() {
27 install -d ${D}/init.d 25 install -d ${D}/init.d
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 40046f30a7..6b99ab1843 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
@@ -5,8 +5,7 @@ DEPENDS = "virtual/kernel"
5RDEPENDS:${PN} = "busybox-mdev" 5RDEPENDS:${PN} = "busybox-mdev"
6SRC_URI = "file://init-live.sh" 6SRC_URI = "file://init-live.sh"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${S}/init-live.sh ${D}/init 11 install -m 0755 ${S}/init-live.sh ${D}/init
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 7851cc9605..8c8355a53e 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -5,8 +5,7 @@ DEPENDS = "virtual/kernel"
5RDEPENDS:${PN} = "udev udev-extraconf" 5RDEPENDS:${PN} = "udev udev-extraconf"
6SRC_URI = "file://init-live.sh" 6SRC_URI = "file://init-live.sh"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${S}/init-live.sh ${D}/init 11 install -m 0755 ${S}/init-live.sh ${D}/init
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 31291bcdf2..e308727320 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
@@ -5,8 +5,7 @@ SRC_URI = "file://init-install-efi-testfs.sh"
5 5
6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools" 6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${S}/init-install-efi-testfs.sh ${D}/install-efi.sh 11 install -m 0755 ${S}/init-install-efi-testfs.sh ${D}/install-efi.sh
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 ff3b5622db..77462f4425 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
@@ -6,8 +6,7 @@ SRC_URI = "file://init-install-efi.sh"
6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 6RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
7RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 7RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12do_install() { 11do_install() {
13 install -m 0755 ${S}/init-install-efi.sh ${D}/install-efi.sh 12 install -m 0755 ${S}/init-install-efi.sh ${D}/install-efi.sh
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 19f05f9fec..05f92203cd 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
@@ -5,8 +5,7 @@ SRC_URI = "file://init-install-testfs.sh"
5 5
6RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs" 6RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_install() { 10do_install() {
12 install -m 0755 ${S}/init-install-testfs.sh ${D}/install.sh 11 install -m 0755 ${S}/init-install-testfs.sh ${D}/install.sh
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 1d489e2b64..791bd57171 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -3,8 +3,7 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4SRC_URI = "file://init-install.sh" 4SRC_URI = "file://init-install.sh"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 8RDEPENDS:${PN} = "grub parted e2fsprogs-mke2fs util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
10RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 9RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
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 bb3f275f26..0283149899 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
@@ -4,11 +4,9 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
4RDEPENDS:${PN} = "initramfs-framework-base parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}" 4RDEPENDS:${PN} = "initramfs-framework-base parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" 5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6 6
7
8SRC_URI = "file://init-install-efi.sh" 7SRC_URI = "file://init-install-efi.sh"
9 8
10S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 10
13do_install() { 11do_install() {
14 install -d ${D}/init.d 12 install -d ${D}/init.d
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 d6d8348731..f44c753da0 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
@@ -9,11 +9,9 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
9COMPATIBLE_HOST:armv7a = 'null' 9COMPATIBLE_HOST:armv7a = 'null'
10COMPATIBLE_HOST:armv7ve = 'null' 10COMPATIBLE_HOST:armv7ve = 'null'
11 11
12
13SRC_URI = "file://init-install.sh" 12SRC_URI = "file://init-install.sh"
14 13
15S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
16UNPACKDIR = "${S}"
17 15
18do_install() { 16do_install() {
19 install -d ${D}/init.d 17 install -d ${D}/init.d
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 4d9ef79a63..3afbd5d47d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
@@ -3,14 +3,12 @@ LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4RDEPENDS:${PN} = "initramfs-framework-base udev-extraconf" 4RDEPENDS:${PN} = "initramfs-framework-base udev-extraconf"
5 5
6
7inherit allarch 6inherit allarch
8 7
9FILESEXTRAPATHS:prepend := "${THISDIR}/initramfs-framework:" 8FILESEXTRAPATHS:prepend := "${THISDIR}/initramfs-framework:"
10SRC_URI = "file://setup-live" 9SRC_URI = "file://setup-live"
11 10
12S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
13UNPACKDIR = "${S}"
14 12
15do_install() { 13do_install() {
16 install -d ${D}/init.d 14 install -d ${D}/init.d
diff --git a/meta/recipes-core/initscripts/init-system-helpers_1.68.bb b/meta/recipes-core/initscripts/init-system-helpers_1.68.bb
index 036c86a536..48ac7792d3 100644
--- a/meta/recipes-core/initscripts/init-system-helpers_1.68.bb
+++ b/meta/recipes-core/initscripts/init-system-helpers_1.68.bb
@@ -20,8 +20,6 @@ SRCREV = "78486a4a2a305170b66ce4d907bedadbaed10daf"
20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master" 20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master"
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)" 21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)"
22 22
23S = "${WORKDIR}/git"
24
25do_configure[noexec] = "1" 23do_configure[noexec] = "1"
26do_compile[noexec] = "1" 24do_compile[noexec] = "1"
27 25
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index 0bc078c5eb..c984257c5c 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -35,8 +35,7 @@ SRC_URI = "file://functions \
35 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \ 35 ${@bb.utils.contains('DISTRO_FEATURES','selinux','file://sushell','',d)} \
36" 36"
37 37
38S = "${WORKDIR}/sources" 38S = "${UNPACKDIR}"
39UNPACKDIR = "${S}"
40 39
41SRC_URI:append:arm = " file://alignment.sh" 40SRC_URI:append:arm = " file://alignment.sh"
42SRC_URI:append:armeb = " file://alignment.sh" 41SRC_URI:append:armeb = " file://alignment.sh"
diff --git a/meta/recipes-core/libxcrypt/libxcrypt.inc b/meta/recipes-core/libxcrypt/libxcrypt.inc
index 55619daef7..77fec83234 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -16,8 +16,6 @@ SRCBRANCH ?= "master"
16 16
17PROVIDES = "virtual/crypt" 17PROVIDES = "virtual/crypt"
18 18
19S = "${WORKDIR}/git"
20
21BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" 19BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
22TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error" 20TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error"
23CPPFLAGS:append:class-nativesdk = " -Wno-error" 21CPPFLAGS:append:class-nativesdk = " -Wno-error"
diff --git a/meta/recipes-core/meta/cve-update-db-native.bb b/meta/recipes-core/meta/cve-update-db-native.bb
index 792252f510..86cd1a1a21 100644
--- a/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/meta/recipes-core/meta/cve-update-db-native.bb
@@ -393,7 +393,6 @@ def update_db_fkie(conn, jsondata):
393 for node in config["nodes"]: 393 for node in config["nodes"]:
394 parse_node_and_insert(conn, node, cveId, False) 394 parse_node_and_insert(conn, node, cveId, False)
395 395
396
397def update_db(d, conn, jsondata): 396def update_db(d, conn, jsondata):
398 if (d.getVar("NVD_DB_VERSION") == "FKIE"): 397 if (d.getVar("NVD_DB_VERSION") == "FKIE"):
399 return update_db_fkie(conn, jsondata) 398 return update_db_fkie(conn, jsondata)
diff --git a/meta/recipes-core/meta/meta-toolchain.bb b/meta/recipes-core/meta/meta-toolchain.bb
index 260e03934e..1b108f0a1c 100644
--- a/meta/recipes-core/meta/meta-toolchain.bb
+++ b/meta/recipes-core/meta/meta-toolchain.bb
@@ -1,5 +1,4 @@
1SUMMARY = "Meta package for building a installable toolchain" 1SUMMARY = "Meta package for building a installable toolchain"
2LICENSE = "MIT" 2LICENSE = "MIT"
3 3
4
5inherit populate_sdk 4inherit populate_sdk
diff --git a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
index 2813fbc397..0ba1ca6e42 100644
--- a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
+++ b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
@@ -41,7 +41,6 @@ DUMMYPROVIDES = "\
41 /usr/bin/perl \ 41 /usr/bin/perl \
42 " 42 "
43 43
44
45require dummy-sdk-package.inc 44require dummy-sdk-package.inc
46 45
47inherit nativesdk 46inherit nativesdk
diff --git a/meta/recipes-core/meta/signing-keys.bb b/meta/recipes-core/meta/signing-keys.bb
index 107a39d658..94f4032911 100644
--- a/meta/recipes-core/meta/signing-keys.bb
+++ b/meta/recipes-core/meta/signing-keys.bb
@@ -4,7 +4,6 @@
4SUMMARY = "Makes public keys of the signing keys available" 4SUMMARY = "Makes public keys of the signing keys available"
5LICENSE = "MIT" 5LICENSE = "MIT"
6 6
7
8inherit allarch deploy 7inherit allarch deploy
9 8
10EXCLUDE_FROM_WORLD = "1" 9EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-core/meta/uninative-tarball.bb b/meta/recipes-core/meta/uninative-tarball.bb
index 0fd01fdb64..0dbc698ccd 100644
--- a/meta/recipes-core/meta/uninative-tarball.bb
+++ b/meta/recipes-core/meta/uninative-tarball.bb
@@ -51,7 +51,6 @@ fakeroot create_sdk_files() {
51 sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py 51 sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py
52} 52}
53 53
54
55fakeroot archive_sdk() { 54fakeroot archive_sdk() {
56 cd ${SDK_OUTPUT}/${SDKPATH} 55 cd ${SDK_OUTPUT}/${SDKPATH}
57 56
diff --git a/meta/recipes-core/musl/bsd-headers.bb b/meta/recipes-core/musl/bsd-headers.bb
index 7d0bdee870..ad9ba81e4f 100644
--- a/meta/recipes-core/musl/bsd-headers.bb
+++ b/meta/recipes-core/musl/bsd-headers.bb
@@ -15,8 +15,7 @@ do_compile[noexec] = "1"
15 15
16INHIBIT_DEFAULT_DEPS = "1" 16INHIBIT_DEFAULT_DEPS = "1"
17 17
18S = "${WORKDIR}/sources" 18S = "${UNPACKDIR}"
19UNPACKDIR = "${S}"
20 19
21do_install() { 20do_install() {
22 install -Dm 0644 ${S}/sys-queue.h ${D}${includedir}/sys/queue.h 21 install -Dm 0644 ${S}/sys-queue.h ${D}${includedir}/sys/queue.h
diff --git a/meta/recipes-core/musl/gcompat_git.bb b/meta/recipes-core/musl/gcompat_git.bb
index 40fe8c6a5f..6f9710e71a 100644
--- a/meta/recipes-core/musl/gcompat_git.bb
+++ b/meta/recipes-core/musl/gcompat_git.bb
@@ -16,8 +16,6 @@ SRC_URI:append:powerpc = "\
16PV = "1.1.0" 16PV = "1.1.0"
17SRCREV = "b7bfe0b08c52fdc72e0c1d9d4dcb2129f1642bd6" 17SRCREV = "b7bfe0b08c52fdc72e0c1d9d4dcb2129f1642bd6"
18 18
19S = "${WORKDIR}/git"
20
21inherit pkgconfig linuxloader siteinfo 19inherit pkgconfig linuxloader siteinfo
22 20
23DEPENDS += "musl-obstack" 21DEPENDS += "musl-obstack"
diff --git a/meta/recipes-core/musl/libc-test_git.bb b/meta/recipes-core/musl/libc-test_git.bb
index f55a125a89..71a111cfa4 100644
--- a/meta/recipes-core/musl/libc-test_git.bb
+++ b/meta/recipes-core/musl/libc-test_git.bb
@@ -18,8 +18,6 @@ SRC_URI = " \
18 18
19PV = "0+git" 19PV = "0+git"
20 20
21S = "${WORKDIR}/git"
22
23# libc-test 'make' or 'make run' command is designed to build and run tests. It 21# libc-test 'make' or 'make run' command is designed to build and run tests. It
24# reports both build and test failures. The commands should be run on target. 22# reports both build and test failures. The commands should be run on target.
25do_compile() { 23do_compile() {
diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
index fde3bc97b4..4bcbaef7ea 100644
--- a/meta/recipes-core/musl/libssp-nonshared.bb
+++ b/meta/recipes-core/musl/libssp-nonshared.bb
@@ -17,8 +17,7 @@ DEPENDS = "virtual/cross-binutils \
17 17
18do_configure[noexec] = "1" 18do_configure[noexec] = "1"
19 19
20S = "${WORKDIR}/sources" 20S = "${UNPACKDIR}"
21UNPACKDIR = "${S}"
22 21
23do_compile() { 22do_compile() {
24 ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c stack_chk.c -o stack_chk.o 23 ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c stack_chk.c -o stack_chk.o
diff --git a/meta/recipes-core/musl/libucontext_1.3.2.bb b/meta/recipes-core/musl/libucontext_1.3.2.bb
index 65ee77d06e..2362cba5c8 100644
--- a/meta/recipes-core/musl/libucontext_1.3.2.bb
+++ b/meta/recipes-core/musl/libucontext_1.3.2.bb
@@ -12,8 +12,6 @@ SRCREV = "a0323579ac50b9a9d4033754d089f1fed0f59a00"
12SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \ 12SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \
13 " 13 "
14 14
15S = "${WORKDIR}/git"
16
17COMPATIBLE_HOST = ".*-musl.*" 15COMPATIBLE_HOST = ".*-musl.*"
18 16
19valid_archs = " \ 17valid_archs = " \
diff --git a/meta/recipes-core/musl/musl-legacy-error.bb b/meta/recipes-core/musl/musl-legacy-error.bb
index 11a838a6e8..b40075c0b6 100644
--- a/meta/recipes-core/musl/musl-legacy-error.bb
+++ b/meta/recipes-core/musl/musl-legacy-error.bb
@@ -13,8 +13,7 @@ do_compile[noexec] = "1"
13 13
14INHIBIT_DEFAULT_DEPS = "1" 14INHIBIT_DEFAULT_DEPS = "1"
15 15
16S = "${WORKDIR}/sources" 16S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 17
19do_install() { 18do_install() {
20 install -Dm 0644 ${S}/error.h -t ${D}${includedir} 19 install -Dm 0644 ${S}/error.h -t ${D}${includedir}
diff --git a/meta/recipes-core/musl/musl-locales_git.bb b/meta/recipes-core/musl/musl-locales_git.bb
index 2815e2ddf0..c8510596cf 100644
--- a/meta/recipes-core/musl/musl-locales_git.bb
+++ b/meta/recipes-core/musl/musl-locales_git.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://git.adelielinux.org/adelie/musl-locales;protocol=https;branch=m
12PV = "1.0+git" 12PV = "1.0+git"
13SRCREV = "5663f5bfd30bf9e1e0ba3fc5fe2da6725969f30e" 13SRCREV = "5663f5bfd30bf9e1e0ba3fc5fe2da6725969f30e"
14 14
15S = "${WORKDIR}/git"
16
17DEPENDS = "virtual/libintl gettext-native" 15DEPENDS = "virtual/libintl gettext-native"
18 16
19PROVIDES = "virtual/libc-locale" 17PROVIDES = "virtual/libc-locale"
diff --git a/meta/recipes-core/musl/musl-obstack.bb b/meta/recipes-core/musl/musl-obstack.bb
index 4c71a141b2..d8a5ae8d82 100644
--- a/meta/recipes-core/musl/musl-obstack.bb
+++ b/meta/recipes-core/musl/musl-obstack.bb
@@ -16,7 +16,5 @@ UPSTREAM_CHECK_COMMITS = "1"
16 16
17inherit autotools pkgconfig 17inherit autotools pkgconfig
18 18
19S = "${WORKDIR}/git"
20
21COMPATIBLE_HOST = ".*-musl.*" 19COMPATIBLE_HOST = ".*-musl.*"
22 20
diff --git a/meta/recipes-core/musl/musl-utils.bb b/meta/recipes-core/musl/musl-utils.bb
index 8280333daf..4b685640c8 100644
--- a/meta/recipes-core/musl/musl-utils.bb
+++ b/meta/recipes-core/musl/musl-utils.bb
@@ -17,8 +17,6 @@ UPSTREAM_CHECK_COMMITS = "1"
17 17
18inherit autotools 18inherit autotools
19 19
20S = "${WORKDIR}/git"
21
22PACKAGES =+ "${PN}-iconv" 20PACKAGES =+ "${PN}-iconv"
23 21
24FILES:${PN}-iconv = "${bindir}/iconv" 22FILES:${PN}-iconv = "${bindir}/iconv"
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index afc459bf1c..51e429b093 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -16,8 +16,6 @@ SRC_URI = "git://git.musl-libc.org/musl;branch=master \
16 file://0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch \ 16 file://0001-Update-syscalls-for-r32-rv64-from-kernel-6.4-through.patch \
17 " 17 "
18 18
19S = "${WORKDIR}/git"
20
21PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt" 19PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt"
22 20
23DEPENDS = "virtual/cross-binutils \ 21DEPENDS = "virtual/cross-binutils \
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index 1e9ec38cea..951f96beb5 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -175,7 +175,6 @@ do_install() {
175 oe_runmake -C narrowc ${_install_cfgs} \ 175 oe_runmake -C narrowc ${_install_cfgs} \
176 install.data 176 install.data
177 177
178
179 ! ${ENABLE_WIDEC} || \ 178 ! ${ENABLE_WIDEC} || \
180 oe_runmake -C widec ${_install_cfgs} ${_install_opts} 179 oe_runmake -C widec ${_install_cfgs} ${_install_opts}
181 180
@@ -263,7 +262,6 @@ python populate_packages:prepend () {
263 do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) 262 do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True)
264} 263}
265 264
266
267inherit update-alternatives 265inherit update-alternatives
268 266
269ALTERNATIVE_PRIORITY = "100" 267ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-core/ncurses/ncurses_6.5.bb b/meta/recipes-core/ncurses/ncurses_6.5.bb
index 2e3ee337ea..bba3495266 100644
--- a/meta/recipes-core/ncurses/ncurses_6.5.bb
+++ b/meta/recipes-core/ncurses/ncurses_6.5.bb
@@ -7,7 +7,6 @@ SRC_URI += "file://0001-tic-hang.patch \
7 " 7 "
8# commit id corresponds to the revision in package version 8# commit id corresponds to the revision in package version
9SRCREV = "1c55d64d9d3e00399a21f04e9cac1e472ab5f70a" 9SRCREV = "1c55d64d9d3e00399a21f04e9cac1e472ab5f70a"
10S = "${WORKDIR}/git"
11EXTRA_OECONF += "--with-abi-version=5" 10EXTRA_OECONF += "--with-abi-version=5"
12UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+_\d+)$" 11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+_\d+)$"
13 12
diff --git a/meta/recipes-core/netbase/netbase_6.5.bb b/meta/recipes-core/netbase/netbase_6.5.bb
index d273dbfe66..c6cf798421 100644
--- a/meta/recipes-core/netbase/netbase_6.5.bb
+++ b/meta/recipes-core/netbase/netbase_6.5.bb
@@ -22,4 +22,4 @@ do_install () {
22 install -m 0644 ${S}/etc/ethertypes ${D}${sysconfdir}/ethertypes 22 install -m 0644 ${S}/etc/ethertypes ${D}${sysconfdir}/ethertypes
23} 23}
24 24
25S = "${WORKDIR}/netbase" 25S = "${UNPACKDIR}/netbase"
diff --git a/meta/recipes-core/newlib/newlib.inc b/meta/recipes-core/newlib/newlib.inc
index 5b5025148e..a8794dd1d9 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -22,7 +22,6 @@ SRCREV = "5e5e51f1dc56a99eb4648c28e00d73b6ea44a8b0"
22INHIBIT_DEFAULT_DEPS = "1" 22INHIBIT_DEFAULT_DEPS = "1"
23DEPENDS = "virtual/cross-cc" 23DEPENDS = "virtual/cross-cc"
24 24
25S = "${WORKDIR}/git"
26B = "${WORKDIR}/build" 25B = "${WORKDIR}/build"
27 26
28## disable stdlib 27## disable stdlib
@@ -35,7 +34,6 @@ TARGET_CC_ARCH:append = " -nostdlib"
35# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB) 34# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB)
36TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany" 35TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
37 36
38
39EXTRA_OECONF = " \ 37EXTRA_OECONF = " \
40 --build=${BUILD_SYS} \ 38 --build=${BUILD_SYS} \
41 --target=${TARGET_SYS} \ 39 --target=${TARGET_SYS} \
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index ab6c580722..08879966c3 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -16,7 +16,6 @@ PACKAGECONFIG[debug] = ",,,"
16PACKAGECONFIG[secureboot] = ",,," 16PACKAGECONFIG[secureboot] = ",,,"
17PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,," 17PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,,"
18 18
19
20# GCC12 trips on it 19# GCC12 trips on it
21#see https://src.fedoraproject.org/rpms/edk2/blob/rawhide/f/0032-Basetools-turn-off-gcc12-warning.patch 20#see https://src.fedoraproject.org/rpms/edk2/blob/rawhide/f/0032-Basetools-turn-off-gcc12-warning.patch
22BUILD_CFLAGS += "-Wno-error=stringop-overflow" 21BUILD_CFLAGS += "-Wno-error=stringop-overflow"
@@ -55,8 +54,6 @@ inherit deploy
55 54
56PARALLEL_MAKE = "" 55PARALLEL_MAKE = ""
57 56
58S = "${WORKDIR}/git"
59
60DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native" 57DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native"
61 58
62EDK_TOOLS_DIR = "edk2_basetools" 59EDK_TOOLS_DIR = "edk2_basetools"
diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb b/meta/recipes-core/packagegroups/packagegroup-base.bb
index 2e051dba33..fd61ba4437 100644
--- a/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -72,7 +72,6 @@ RDEPENDS:packagegroup-base = "\
72 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \ 72 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \
73 " 73 "
74 74
75
76RRECOMMENDS:packagegroup-base = "\ 75RRECOMMENDS:packagegroup-base = "\
77 kernel-module-nls-utf8 \ 76 kernel-module-nls-utf8 \
78 kernel-module-input \ 77 kernel-module-input \
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
index 56ff1d2b06..f19fd64ec1 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -8,7 +8,6 @@ PACKAGE_ARCH = "${TUNE_PKGARCH}"
8 8
9inherit packagegroup 9inherit packagegroup
10 10
11
12MTRACE = "" 11MTRACE = ""
13MTRACE:libc-glibc = "libc-mtrace" 12MTRACE:libc-glibc = "libc-mtrace"
14 13
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index 4e324caa96..54915e4f0c 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -4,7 +4,6 @@
4 4
5SUMMARY = "Profiling tools" 5SUMMARY = "Profiling tools"
6 6
7
8PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
9 8
10inherit packagegroup 9inherit packagegroup
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index d7ea8e937f..25561f6878 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -4,7 +4,6 @@
4 4
5SUMMARY = "Testing tools/applications" 5SUMMARY = "Testing tools/applications"
6 6
7
8PACKAGE_ARCH = "${MACHINE_ARCH}" 7PACKAGE_ARCH = "${MACHINE_ARCH}"
9 8
10inherit packagegroup 9inherit packagegroup
diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index df71695a97..c386267781 100644
--- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -107,7 +107,6 @@ RDEPENDS:packagegroup-self-hosted-debug = " \
107 ${STRACE} \ 107 ${STRACE} \
108 tcf-agent" 108 tcf-agent"
109 109
110
111RDEPENDS:packagegroup-self-hosted-extended = "\ 110RDEPENDS:packagegroup-self-hosted-extended = "\
112 bzip2 \ 111 bzip2 \
113 chrpath \ 112 chrpath \
@@ -178,7 +177,6 @@ RDEPENDS:packagegroup-self-hosted-extended = "\
178 zstd \ 177 zstd \
179 " 178 "
180 179
181
182RDEPENDS:packagegroup-self-hosted-graphics = "\ 180RDEPENDS:packagegroup-self-hosted-graphics = "\
183 adwaita-icon-theme \ 181 adwaita-icon-theme \
184 builder \ 182 builder \
diff --git a/meta/recipes-core/picolibc/picolibc.inc b/meta/recipes-core/picolibc/picolibc.inc
index 640be819a3..68c32894a7 100644
--- a/meta/recipes-core/picolibc/picolibc.inc
+++ b/meta/recipes-core/picolibc/picolibc.inc
@@ -17,5 +17,4 @@ PV = "${BASEVER}+git"
17SRC_URI = "git://github.com/picolibc/picolibc.git;protocol=https;branch=main" 17SRC_URI = "git://github.com/picolibc/picolibc.git;protocol=https;branch=main"
18SRCREV = "764ef4e401a8f4c6a86ab723533841f072885a5b" 18SRCREV = "764ef4e401a8f4c6a86ab723533841f072885a5b"
19 19
20S = "${WORKDIR}/git"
21B = "${WORKDIR}/build" 20B = "${WORKDIR}/build"
diff --git a/meta/recipes-core/picolibc/picolibc_git.bb b/meta/recipes-core/picolibc/picolibc_git.bb
index e6735184cd..eaa6c8de1e 100644
--- a/meta/recipes-core/picolibc/picolibc_git.bb
+++ b/meta/recipes-core/picolibc/picolibc_git.bb
@@ -28,7 +28,6 @@ PACKAGECONFIG ??= " specsdir"
28# Install GCC specs on libdir 28# Install GCC specs on libdir
29PACKAGECONFIG[specsdir] = "-Dspecsdir=${libdir},-Dspecsdir=none" 29PACKAGECONFIG[specsdir] = "-Dspecsdir=${libdir},-Dspecsdir=none"
30 30
31
32FILES:${PN}-dev:append = " ${libdir}/*.specs ${libdir}/*.ld" 31FILES:${PN}-dev:append = " ${libdir}/*.specs ${libdir}/*.ld"
33 32
34# No rpm package is actually created but -dev depends on it, avoid dnf error 33# No rpm package is actually created but -dev depends on it, avoid dnf error
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index f3647d389d..3be0e26a0c 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -62,8 +62,6 @@ python __anonymous() {
62 d.appendVar("RDEPENDS:%s" % pn, " %s" % ep) 62 d.appendVar("RDEPENDS:%s" % pn, " %s" % ep)
63} 63}
64 64
65S = "${WORKDIR}/git"
66
67inherit autotools pkgconfig update-rc.d update-alternatives systemd 65inherit autotools pkgconfig update-rc.d update-alternatives systemd
68 66
69PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} progress-bar fullscreen" 67PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} progress-bar fullscreen"
diff --git a/meta/recipes-core/seatd/seatd_0.9.1.bb b/meta/recipes-core/seatd/seatd_0.9.1.bb
index 3b4b3bae4c..3be27dda9d 100644
--- a/meta/recipes-core/seatd/seatd_0.9.1.bb
+++ b/meta/recipes-core/seatd/seatd_0.9.1.bb
@@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a"
9SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https;branch=master \ 9SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https;branch=master \
10 file://init" 10 file://init"
11SRCREV = "566ffeb032af42865dc1210e48cec08368059bb9" 11SRCREV = "566ffeb032af42865dc1210e48cec08368059bb9"
12S = "${WORKDIR}/git"
13 12
14inherit meson pkgconfig systemd update-rc.d useradd 13inherit meson pkgconfig systemd update-rc.d useradd
15 14
diff --git a/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb b/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
index d99039b6f8..5040d8864e 100644
--- a/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
+++ b/meta/recipes-core/sysfsutils/sysfsutils_2.1.1.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://github.com/linux-ras/sysfsutils.git;protocol=https;branch=maste
15 15
16SRCREV = "da2f1f8500c0af6663a56ce2bff07f67e60a92e0" 16SRCREV = "da2f1f8500c0af6663a56ce2bff07f67e60a92e0"
17 17
18S = "${WORKDIR}/git"
19
20inherit autotools 18inherit autotools
21 19
22PACKAGES =+ "libsysfs" 20PACKAGES =+ "libsysfs"
diff --git a/meta/recipes-core/systemd/systemd-bootconf_1.00.bb b/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
index 0ec49365d0..5efac3e410 100644
--- a/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
+++ b/meta/recipes-core/systemd/systemd-bootconf_1.00.bb
@@ -7,8 +7,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
7 7
8inherit systemd-boot-cfg 8inherit systemd-boot-cfg
9 9
10S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 11
13LABELS = "boot" 12LABELS = "boot"
14 13
diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb
index 3325739544..d6da34e9b8 100644
--- a/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -2,11 +2,9 @@ SUMMARY = "Enhances systemd compatilibity with existing SysVinit scripts"
2HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd" 2HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
3LICENSE = "MIT" 3LICENSE = "MIT"
4 4
5
6PACKAGE_WRITE_DEPS += "systemd-systemctl-native" 5PACKAGE_WRITE_DEPS += "systemd-systemctl-native"
7 6
8S = "${WORKDIR}/sources" 7S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 8
11inherit features_check 9inherit features_check
12 10
diff --git a/meta/recipes-core/systemd/systemd-conf_1.0.bb b/meta/recipes-core/systemd/systemd-conf_1.0.bb
index b8bea0c25b..60066cd60a 100644
--- a/meta/recipes-core/systemd/systemd-conf_1.0.bb
+++ b/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -21,8 +21,7 @@ SRC_URI = "\
21 file://wired.network \ 21 file://wired.network \
22" 22"
23 23
24S = "${WORKDIR}/sources" 24S = "${UNPACKDIR}"
25UNPACKDIR = "${S}"
26 25
27do_install() { 26do_install() {
28 install -D -m0644 ${S}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf 27 install -D -m0644 ${S}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf
diff --git a/meta/recipes-core/systemd/systemd-machine-units_1.0.bb b/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
index 8df7ff7cf1..a366f199ee 100644
--- a/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
+++ b/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
5 5
6PACKAGE_ARCH = "${MACHINE_ARCH}" 6PACKAGE_ARCH = "${MACHINE_ARCH}"
7 7
8
9inherit systemd features_check 8inherit systemd features_check
10REQUIRED_DISTRO_FEATURES += "usrmerge" 9REQUIRED_DISTRO_FEATURES += "usrmerge"
11SYSTEMD_SERVICE:${PN} = "" 10SYSTEMD_SERVICE:${PN} = ""
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index 5ed84757f3..101457140f 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -19,6 +19,4 @@ SRCREV = "00a12c234e2506f5cab683460199575f13c454db"
19SRCBRANCH = "v257-stable" 19SRCBRANCH = "v257-stable"
20SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH};tag=v${PV}" 20SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH};tag=v${PV}"
21 21
22S = "${WORKDIR}/git"
23
24CVE_PRODUCT = "systemd" 22CVE_PRODUCT = "systemd"
diff --git a/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
index f0aa3a0bd8..1443c5082b 100644
--- a/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -15,8 +15,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 src/shared/base-filesystem.c | 1 + 15 src/shared/base-filesystem.c | 1 +
16 2 files changed, 7 insertions(+) 16 2 files changed, 7 insertions(+)
17 17
18diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
19index e2cd8b4e35..f2fe489de7 100644
20--- a/src/basic/missing_syscall.h 18--- a/src/basic/missing_syscall.h
21+++ b/src/basic/missing_syscall.h 19+++ b/src/basic/missing_syscall.h
22@@ -20,6 +20,12 @@ 20@@ -20,6 +20,12 @@
@@ -32,8 +30,6 @@ index e2cd8b4e35..f2fe489de7 100644
32 #include "macro.h" 30 #include "macro.h"
33 #include "missing_keyctl.h" 31 #include "missing_keyctl.h"
34 #include "missing_sched.h" 32 #include "missing_sched.h"
35diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
36index 389c77eee0..e3627c4603 100644
37--- a/src/shared/base-filesystem.c 33--- a/src/shared/base-filesystem.c
38+++ b/src/shared/base-filesystem.c 34+++ b/src/shared/base-filesystem.c
39@@ -20,6 +20,7 @@ 35@@ -20,6 +20,7 @@
@@ -42,8 +38,5 @@ index 389c77eee0..e3627c4603 100644
42 #include "user-util.h" 38 #include "user-util.h"
43+#include "missing_syscall.h" 39+#include "missing_syscall.h"
44 40
45 typedef struct BaseFilesystem { 41 typedef enum BaseFilesystemFlags {
46 const char *dir; /* directory or symlink to create */ 42 BASE_FILESYSTEM_IGNORE_ON_FAILURE = 1 << 0,
47--
482.34.1
49
diff --git a/meta/recipes-core/systemd/systemd_257.6.bb b/meta/recipes-core/systemd/systemd_257.6.bb
index 995b55580e..5f7f20c434 100644
--- a/meta/recipes-core/systemd/systemd_257.6.bb
+++ b/meta/recipes-core/systemd/systemd_257.6.bb
@@ -519,7 +519,6 @@ RRECOMMENDS:${PN}-binfmt = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', 'ker
519 519
520RDEPENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}" 520RDEPENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}"
521 521
522
523FILES:${PN}-journal-gatewayd = "${nonarch_libdir}/systemd/systemd-journal-gatewayd \ 522FILES:${PN}-journal-gatewayd = "${nonarch_libdir}/systemd/systemd-journal-gatewayd \
524 ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ 523 ${systemd_system_unitdir}/systemd-journal-gatewayd.service \
525 ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ 524 ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \
@@ -542,7 +541,6 @@ FILES:${PN}-journal-remote = "${nonarch_libdir}/systemd/systemd-journal-remote \
542 " 541 "
543SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket" 542SYSTEMD_SERVICE:${PN}-journal-remote = "systemd-journal-remote.socket"
544 543
545
546FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \ 544FILES:${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
547 ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ 545 ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
548 ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \ 546 ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 6ff2ca1bf4..c77266e71e 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -2,12 +2,10 @@ SUMMARY = "Inittab configuration for SysVinit"
2LICENSE = "GPL-2.0-only" 2LICENSE = "GPL-2.0-only"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
4 4
5
6SRC_URI = "file://inittab \ 5SRC_URI = "file://inittab \
7 file://start_getty" 6 file://start_getty"
8 7
9S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 9
12INHIBIT_DEFAULT_DEPS = "1" 10INHIBIT_DEFAULT_DEPS = "1"
13 11
diff --git a/meta/recipes-core/sysvinit/sysvinit_3.14.bb b/meta/recipes-core/sysvinit/sysvinit_3.14.bb
index 521eda0bfb..d4bb797624 100644
--- a/meta/recipes-core/sysvinit/sysvinit_3.14.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_3.14.bb
@@ -20,7 +20,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \
20 " 20 "
21SRC_URI[sha256sum] = "c90874b8c054a35991fb8c4d30c443ed1e9b1815ff6165c7b483f558be4e4b53" 21SRC_URI[sha256sum] = "c90874b8c054a35991fb8c4d30c443ed1e9b1815ff6165c7b483f558be4e4b53"
22 22
23S = "${WORKDIR}/sysvinit-${PV}" 23S = "${UNPACKDIR}/sysvinit-${PV}"
24 24
25inherit update-alternatives features_check github-releases 25inherit update-alternatives features_check github-releases
26DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt" 26DEPENDS:append = " update-rc.d-native base-passwd virtual/crypt"
diff --git a/meta/recipes-core/ttyrun/ttyrun_2.37.0.bb b/meta/recipes-core/ttyrun/ttyrun_2.37.0.bb
index e8fb4831e2..507ad1b09e 100644
--- a/meta/recipes-core/ttyrun/ttyrun_2.37.0.bb
+++ b/meta/recipes-core/ttyrun/ttyrun_2.37.0.bb
@@ -11,8 +11,6 @@ SRCREV = "793c037ded98cd001075cdb55a9c58e122380256"
11 11
12CVE_PRODUCT = "s390-tools" 12CVE_PRODUCT = "s390-tools"
13 13
14S = "${WORKDIR}/git"
15
16EXTRA_OEMAKE = "\ 14EXTRA_OEMAKE = "\
17 V=1 \ 15 V=1 \
18 CC="${CC}" \ 16 CC="${CC}" \
diff --git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index 0d7e4f4f36..2ba6606c05 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.1.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -13,8 +13,7 @@ SRC_URI = " \
13 file://localextra.rules \ 13 file://localextra.rules \
14" 14"
15 15
16S = "${WORKDIR}/sources" 16S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 17
19MOUNT_BASE = "/run/media" 18MOUNT_BASE = "/run/media"
20MOUNT_GROUP ?= "disk" 19MOUNT_GROUP ?= "disk"
diff --git a/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb b/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
index 27723c88ef..124b7d32a2 100644
--- a/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
+++ b/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
@@ -12,8 +12,6 @@ PV .= "+git"
12 12
13UPSTREAM_CHECK_COMMITS = "1" 13UPSTREAM_CHECK_COMMITS = "1"
14 14
15S = "${WORKDIR}/git"
16
17inherit allarch 15inherit allarch
18 16
19do_compile() { 17do_compile() {
diff --git a/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb b/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb
index ad0bfa1d12..5ad2997c27 100644
--- a/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb
+++ b/meta/recipes-core/util-linux/util-linux-libuuid_2.41.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c
9 9
10inherit autotools gettext pkgconfig 10inherit autotools gettext pkgconfig
11 11
12S = "${WORKDIR}/util-linux-${PV}" 12S = "${UNPACKDIR}/util-linux-${PV}"
13 13
14EXTRA_AUTORECONF += "--exclude=gtkdocize" 14EXTRA_AUTORECONF += "--exclude=gtkdocize"
15EXTRA_OECONF += "--disable-all-programs --enable-libuuid" 15EXTRA_OECONF += "--disable-all-programs --enable-libuuid"
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc
index 6611ec0fe7..111f29cb92 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -19,8 +19,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
19 file://fcntl-lock.c \ 19 file://fcntl-lock.c \
20 file://0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch \ 20 file://0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch \
21 file://0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch \ 21 file://0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch \
22 file://0001-test_sysinfo.c-print-out-SIGRTMIN.patch \ 22 file://0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch \
23 file://0002-ts-kill-decode-use-SIGRTMIN-from-test_sysinfo-instea.patch \
24 " 23 "
25 24
26SRC_URI[sha256sum] = "81ee93b3cfdfeb7d7c4090cedeba1d7bbce9141fd0b501b686b3fe475ddca4c6" 25SRC_URI[sha256sum] = "81ee93b3cfdfeb7d7c4090cedeba1d7bbce9141fd0b501b686b3fe475ddca4c6"
diff --git a/meta/recipes-core/util-linux/util-linux/0001-test_sysinfo.c-print-out-SIGRTMIN.patch b/meta/recipes-core/util-linux/util-linux/0001-test_sysinfo.c-print-out-SIGRTMIN.patch
deleted file mode 100644
index ee9f220842..0000000000
--- a/meta/recipes-core/util-linux/util-linux/0001-test_sysinfo.c-print-out-SIGRTMIN.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From 50774e34fee0cd528b195a863bcd4e3a04fbfc4b Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 4 Jun 2025 10:52:18 +0800
4Subject: [PATCH 1/2] test_sysinfo.c: print out SIGRTMIN
5
6This will be used by ts/kill/decode.
7
8Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/3605]
9
10Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11---
12 tests/helpers/test_sysinfo.c | 8 ++++++++
13 1 file changed, 8 insertions(+)
14
15diff --git a/tests/helpers/test_sysinfo.c b/tests/helpers/test_sysinfo.c
16index 1559d471f..3a791e7f1 100644
17--- a/tests/helpers/test_sysinfo.c
18+++ b/tests/helpers/test_sysinfo.c
19@@ -27,6 +27,7 @@
20 #include <errno.h>
21 #include <time.h>
22 #include <sys/ioctl.h>
23+#include <signal.h>
24
25 #include "c.h"
26
27@@ -116,6 +117,12 @@ static int hlp_ulong_max32(void)
28 return 0;
29 }
30
31+static int hlp_sigrtmin(void)
32+{
33+ printf("%d\n", SIGRTMIN);
34+ return 0;
35+}
36+
37 static int hlp_wcsspn_ok(void)
38 {
39 printf("%d\n", wcsspn(L"FOO", L"F") == 1);
40@@ -229,6 +236,7 @@ static const mntHlpfnc hlps[] =
41 { "ULONG_MAX", hlp_ulong_max },
42 { "ULONG_MAX32",hlp_ulong_max32 },
43 { "UINT64_MAX", hlp_u64_max },
44+ { "SIGRTMIN", hlp_sigrtmin },
45 { "byte-order", hlp_endianness },
46 { "wcsspn-ok", hlp_wcsspn_ok },
47 { "enotty-ok", hlp_enotty_ok },
48--
492.34.1
50
diff --git a/meta/recipes-core/util-linux/util-linux/0002-ts-kill-decode-use-SIGRTMIN-from-test_sysinfo-instea.patch b/meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch
index 5a00c9037a..f4e2f9e745 100644
--- a/meta/recipes-core/util-linux/util-linux/0002-ts-kill-decode-use-SIGRTMIN-from-test_sysinfo-instea.patch
+++ b/meta/recipes-core/util-linux/util-linux/0001-ts-kill-decode-use-RTMIN-from-kill-L-instead-of-hard.patch
@@ -1,7 +1,7 @@
1From 9848b0d8c90d9a24275bf402f6d76e97f62b3ba4 Mon Sep 17 00:00:00 2001 1From c5d5e8873029d170fcab38a6fbd5d5a355574b9f Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 4 Jun 2025 16:27:19 +0800 3Date: Wed, 4 Jun 2025 16:27:19 +0800
4Subject: [PATCH 2/2] ts/kill/decode: use SIGRTMIN from test_sysinfo instead of 4Subject: [PATCH] ts/kill/decode: use RTMIN from 'kill -L' instead of
5 hardcoding 34 5 hardcoding 34
6 6
7glibc uses 34 as the value of SIGRTMIN: 7glibc uses 34 as the value of SIGRTMIN:
@@ -16,9 +16,11 @@ With the hardcoded 34, test case fails with the following difference:
16-Ignored: HUP QUIT TRAP PIPE ALRM 16-Ignored: HUP QUIT TRAP PIPE ALRM
17+Ignored: HUP QUIT TRAP PIPE ALRM 34 17+Ignored: HUP QUIT TRAP PIPE ALRM 34
18 18
19Use SIGRTMIN got from test_sysinfo to fix this issue. 19Extract the value of RTMIN from 'kill -L' to avoid such hardcoding.
20 20
21Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/3605] 21Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
22
23Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/c5d5e8873029d170fcab38a6fbd5d5a355574b9f]
22 24
23Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 25Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
24--- 26---
@@ -26,15 +28,15 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
26 1 file changed, 7 insertions(+), 2 deletions(-) 28 1 file changed, 7 insertions(+), 2 deletions(-)
27 29
28diff --git a/tests/ts/kill/decode b/tests/ts/kill/decode 30diff --git a/tests/ts/kill/decode b/tests/ts/kill/decode
29index 03bc25ff6..dd34aacef 100755 31index 57149899e..524b4e5e2 100755
30--- a/tests/ts/kill/decode 32--- a/tests/ts/kill/decode
31+++ b/tests/ts/kill/decode 33+++ b/tests/ts/kill/decode
32@@ -48,14 +48,19 @@ ACK= 34@@ -53,14 +53,19 @@ ACK=
33 # Sending one more USR1 is for making the signal pending state. 35 # Sending one more USR1 is for making the signal pending state.
34 "$TS_CMD_KILL" -USR1 "$PID" 36 "$TS_CMD_KILL" -USR1 "$PID"
35 "$TS_CMD_KILL" -d "$PID" | { 37 "$TS_CMD_KILL" -d "$PID" | {
36- if [[ $("$TS_CMD_KILL" --list=34) == RT0 ]]; then 38- if [[ $("$TS_CMD_KILL" --list=34) == RT0 ]]; then
37+ SIGRTMIN=$($TS_HELPER_SYSINFO SIGRTMIN) 39+ SIGRTMIN=$("$TS_CMD_KILL" -L | grep -o '[0-9]\+ RTMIN' | cut -d " " -f 1)
38+ if [[ $("$TS_CMD_KILL" --list=$SIGRTMIN) == RT0 ]]; then 40+ if [[ $("$TS_CMD_KILL" --list=$SIGRTMIN) == RT0 ]]; then
39 # See man signal(7). 41 # See man signal(7).
40 # The Linux kernel supports a range of 33 different real-time signals, 42 # The Linux kernel supports a range of 33 different real-time signals,
diff --git a/meta/recipes-core/volatile-binds/volatile-binds.bb b/meta/recipes-core/volatile-binds/volatile-binds.bb
index 3597ec7356..857bcc93ff 100644
--- a/meta/recipes-core/volatile-binds/volatile-binds.bb
+++ b/meta/recipes-core/volatile-binds/volatile-binds.bb
@@ -9,8 +9,7 @@ SRC_URI = "\
9 file://volatile-binds.service.in \ 9 file://volatile-binds.service.in \
10" 10"
11 11
12S = "${WORKDIR}/sources" 12S = "${UNPACKDIR}"
13UNPACKDIR = "${S}"
14 13
15inherit allarch systemd features_check 14inherit allarch systemd features_check
16 15
diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
index 5578fb3d18..79f2488727 100644
--- a/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
+++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
@@ -8,7 +8,6 @@ inherit rust cargo cargo-update-recipe-crates
8 8
9SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;branch=main" 9SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;branch=main"
10SRCREV = "af7fd38d5e80514406fb6a8bba2d407d252c30b9" 10SRCREV = "af7fd38d5e80514406fb6a8bba2d407d252c30b9"
11S = "${WORKDIR}/git"
12 11
13require ${BPN}-crates.inc 12require ${BPN}-crates.inc
14 13
diff --git a/meta/recipes-devtools/binutils/binutils-2.44.inc b/meta/recipes-devtools/binutils/binutils-2.44.inc
index 90546a0cfa..18bff2816a 100644
--- a/meta/recipes-devtools/binutils/binutils-2.44.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.44.inc
@@ -44,4 +44,3 @@ SRC_URI = "\
44 file://0019-CVE-2025-5244.patch \ 44 file://0019-CVE-2025-5244.patch \
45 file://0019-CVE-2025-3198.patch \ 45 file://0019-CVE-2025-3198.patch \
46" 46"
47S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index 06625d099e..922e665028 100644
--- a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -98,10 +98,8 @@ SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \
98 file://0002-Makefile-Add-n-to-gzip.patch \ 98 file://0002-Makefile-Add-n-to-gzip.patch \
99 " 99 "
100 100
101S = "${WORKDIR}/git"
102SRCREV = "868a2afab9da34f32c007d773b77253c93104636" 101SRCREV = "868a2afab9da34f32c007d773b77253c93104636"
103 102
104
105inherit systemd update-rc.d python3native update-alternatives 103inherit systemd update-rc.d python3native update-alternatives
106 104
107ALTERNATIVE:${PN} = "bootchartd" 105ALTERNATIVE:${PN} = "bootchartd"
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.14.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.14.bb
index d3d320e107..982d4830b5 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.14.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.14.bb
@@ -19,7 +19,6 @@ SRC_URI = "git://github.com/kdave/btrfs-progs.git;branch=master;protocol=https;t
19 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ 19 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
20 " 20 "
21SRCREV = "5ad147c9ec00e657393c85b195c9bcc0f4c35a54" 21SRCREV = "5ad147c9ec00e657393c85b195c9bcc0f4c35a54"
22S = "${WORKDIR}/git"
23 22
24PACKAGECONFIG ??= " \ 23PACKAGECONFIG ??= " \
25 programs \ 24 programs \
@@ -60,7 +59,6 @@ do_configure:prepend() {
60 cp -f $(automake --print-libdir)/install-sh ${S}/config/ 59 cp -f $(automake --print-libdir)/install-sh ${S}/config/
61} 60}
62 61
63
64do_install:append() { 62do_install:append() {
65 if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then 63 if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
66 oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python 64 oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python
diff --git a/meta/recipes-devtools/chrpath/chrpath_0.18.bb b/meta/recipes-devtools/chrpath/chrpath_0.18.bb
index 653c1115d0..3d89fd2c92 100644
--- a/meta/recipes-devtools/chrpath/chrpath_0.18.bb
+++ b/meta/recipes-devtools/chrpath/chrpath_0.18.bb
@@ -12,7 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \
12SRC_URI[sha256sum] = "f09c49f0618660ca11fc6d9580ddde904c7224d4c6d0f6f2d1f9bcdc9102c9aa" 12SRC_URI[sha256sum] = "f09c49f0618660ca11fc6d9580ddde904c7224d4c6d0f6f2d1f9bcdc9102c9aa"
13 13
14inherit autotools 14inherit autotools
15S = "${WORKDIR}/chrpath" 15S = "${UNPACKDIR}/chrpath"
16 16
17# We don't have a staged chrpath-native for ensuring our binary is 17# We don't have a staged chrpath-native for ensuring our binary is
18# relocatable, so use the one we've just built 18# relocatable, so use the one we've just built
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb
index f958b72414..23dfbb5deb 100644
--- a/meta/recipes-devtools/clang/clang_git.bb
+++ b/meta/recipes-devtools/clang/clang_git.bb
@@ -22,7 +22,7 @@ INHIBIT_DEFAULT_DEPS:class-native = "1"
22LDFLAGS:append:class-target:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed" 22LDFLAGS:append:class-target:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
23LDFLAGS:append:class-target:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed" 23LDFLAGS:append:class-target:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
24 24
25inherit cmake pkgconfig python3native python3targetconfig 25inherit cmake pkgconfig python3native python3targetconfig multilib_header
26 26
27OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" 27OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
28 28
@@ -237,6 +237,9 @@ do_install:append() {
237 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/$t ${D}${bindir}/$t 237 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/$t ${D}${bindir}/$t
238 fi 238 fi
239 done 239 done
240
241 oe_multilib_header llvm/Config/llvm-config.h
242 oe_multilib_header clang/Config/config.h
240} 243}
241 244
242do_install:append:class-target () { 245do_install:append:class-target () {
@@ -316,7 +319,6 @@ PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc"
316PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc \ 319PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc \
317 libclang lldb lldb-server liblldb llvm-linker-tools" 320 libclang lldb lldb-server liblldb llvm-linker-tools"
318 321
319
320BBCLASSEXTEND = "native nativesdk" 322BBCLASSEXTEND = "native nativesdk"
321 323
322RDEPENDS:lldb += "${PN}-lldb-python lldb-server" 324RDEPENDS:lldb += "${PN}-lldb-python lldb-server"
diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc
index 5244298dfb..0684e648cc 100644
--- a/meta/recipes-devtools/clang/common.inc
+++ b/meta/recipes-devtools/clang/common.inc
@@ -63,7 +63,8 @@ SRC_URI = "\
63# Fallback to no-PIE if not set 63# Fallback to no-PIE if not set
64GCCPIE ??= "" 64GCCPIE ??= ""
65 65
66S = "${TMPDIR}/work-shared/llvm-project-source-${PV}-${PR}/${SOURCEDIR}" 66UNPACKDIR = "${TMPDIR}/work-shared/llvm-project-source-${PV}-${PR}/sources"
67S = "${UNPACKDIR}/${SOURCEDIR}"
67B ?= "${WORKDIR}/llvm-project-source-${PV}/build.${HOST_SYS}.${TARGET_SYS}" 68B ?= "${WORKDIR}/llvm-project-source-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
68 69
69# We need to ensure that for the shared work directory, the do_patch signatures match 70# We need to ensure that for the shared work directory, the do_patch signatures match
diff --git a/meta/recipes-devtools/clang/compiler-rt_git.bb b/meta/recipes-devtools/clang/compiler-rt_git.bb
index 7b442183ef..ff6cc29bf3 100644
--- a/meta/recipes-devtools/clang/compiler-rt_git.bb
+++ b/meta/recipes-devtools/clang/compiler-rt_git.bb
@@ -16,7 +16,6 @@ BPN = "compiler-rt"
16 16
17inherit cmake pkgconfig python3native 17inherit cmake pkgconfig python3native
18 18
19
20LIC_FILES_CHKSUM = "file://compiler-rt/LICENSE.TXT;md5=d846d1d65baf322d4c485d6ee54e877a" 19LIC_FILES_CHKSUM = "file://compiler-rt/LICENSE.TXT;md5=d846d1d65baf322d4c485d6ee54e877a"
21 20
22LIBCPLUSPLUS = "" 21LIBCPLUSPLUS = ""
diff --git a/meta/recipes-devtools/clang/llvm-project-source.inc b/meta/recipes-devtools/clang/llvm-project-source.inc
index 0820dd3492..13e54efbc2 100644
--- a/meta/recipes-devtools/clang/llvm-project-source.inc
+++ b/meta/recipes-devtools/clang/llvm-project-source.inc
@@ -66,7 +66,6 @@ python do_preconfigure() {
66 cmd = d.expand("sed -i 's#//CLANG_EXTRA_OE_VENDORS_CASES#%s#g' -i ${S}/llvm/lib/TargetParser/Triple.cpp" % (case)) 66 cmd = d.expand("sed -i 's#//CLANG_EXTRA_OE_VENDORS_CASES#%s#g' -i ${S}/llvm/lib/TargetParser/Triple.cpp" % (case))
67 subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) 67 subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
68 68
69
70 case = "" 69 case = ""
71 triple = "" 70 triple = ""
72 name = "" 71 name = ""
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.31.6.bb b/meta/recipes-devtools/cmake/cmake-native_3.31.6.bb
index e285a17681..b940abb3fd 100644
--- a/meta/recipes-devtools/cmake/cmake-native_3.31.6.bb
+++ b/meta/recipes-devtools/cmake/cmake-native_3.31.6.bb
@@ -51,7 +51,7 @@ do_compile() {
51do_install() { 51do_install() {
52 oe_runmake 'DESTDIR=${D}' install 52 oe_runmake 'DESTDIR=${D}' install
53 53
54 # The following codes are here because eSDK needs to provide compatibilty 54 # The following codes are here because eSDK needs to provide compatibility
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 ${UNPACKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ 57 install -m 644 ${UNPACKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
diff --git a/meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch b/meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch
new file mode 100644
index 0000000000..31f6148cac
--- /dev/null
+++ b/meta/recipes-devtools/cmake/cmake/0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch
@@ -0,0 +1,202 @@
1From c7e8b03324883760a2d6fab86ae034beb82af651 Mon Sep 17 00:00:00 2001
2From: John Drouhard <john@drouhard.dev>
3Date: Thu, 9 Jan 2025 20:34:42 -0600
4Subject: [PATCH] ctest: Allow arbitrary characters in test names of
5 CTestCostData.txt
6
7This changes the way lines in CTestCostData.txt are parsed to allow for
8spaces in the test name.
9
10It does so by looking for space characters from the end; and once two
11have been found, assumes everything from the beginning up to that
12second-to-last-space is the test name.
13
14Additionally, parsing the file should be much more efficient since there
15is no string or vector heap allocation per line. The std::string used by
16the parse function to convert the int and float should be within most
17standard libraries' small string optimization.
18
19Fixes: #26594
20
21Upstream-Status: Backport [4.0.0, 040da7d83216ace59710407e8ce35d5fd38e1340]
22Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de>
23---
24 Source/CTest/cmCTestMultiProcessHandler.cxx | 77 +++++++++++++++------
25 Source/CTest/cmCTestMultiProcessHandler.h | 3 +-
26 Tests/CTestTestScheduler/CMakeLists.txt | 4 +-
27 3 files changed, 61 insertions(+), 23 deletions(-)
28
29diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
30index 84ea32b84d40025ec333a90d30c42eeaf7adc9ef..231e7b5f39b1d8aa75f4e59a890a099b53fcdaac 100644
31--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
32+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
33@@ -20,6 +20,7 @@
34
35 #include <cm/memory>
36 #include <cm/optional>
37+#include <cm/string_view>
38 #include <cmext/algorithm>
39
40 #include <cm3p/json/value.h>
41@@ -52,6 +53,48 @@ constexpr unsigned long kParallelLevelMinimum = 2u;
42 // Under a job server, parallelism is effectively limited
43 // only by available job server tokens.
44 constexpr unsigned long kParallelLevelUnbounded = 0x10000u;
45+
46+struct CostEntry
47+{
48+ cm::string_view name;
49+ int prevRuns;
50+ float cost;
51+};
52+
53+cm::optional<CostEntry> splitCostLine(cm::string_view line)
54+{
55+ std::string part;
56+ cm::string_view::size_type pos1 = line.size();
57+ cm::string_view::size_type pos2 = line.find_last_of(' ', pos1);
58+ auto findNext = [line, &part, &pos1, &pos2]() -> bool {
59+ if (pos2 != cm::string_view::npos) {
60+ cm::string_view sub = line.substr(pos2 + 1, pos1 - pos2 - 1);
61+ part.assign(sub.begin(), sub.end());
62+ pos1 = pos2;
63+ if (pos1 > 0) {
64+ pos2 = line.find_last_of(' ', pos1 - 1);
65+ }
66+ return true;
67+ }
68+ return false;
69+ };
70+
71+ // parse the cost
72+ if (!findNext()) {
73+ return cm::nullopt;
74+ }
75+ float cost = static_cast<float>(atof(part.c_str()));
76+
77+ // parse the previous runs
78+ if (!findNext()) {
79+ return cm::nullopt;
80+ }
81+ int prev = atoi(part.c_str());
82+
83+ // from start to the last found space is the name
84+ return CostEntry{ line.substr(0, pos1), prev, cost };
85+}
86+
87 }
88
89 namespace cmsys {
90@@ -797,24 +840,21 @@ void cmCTestMultiProcessHandler::UpdateCostData()
91 if (line == "---") {
92 break;
93 }
94- std::vector<std::string> parts = cmSystemTools::SplitString(line, ' ');
95 // Format: <name> <previous_runs> <avg_cost>
96- if (parts.size() < 3) {
97+ cm::optional<CostEntry> entry = splitCostLine(line);
98+ if (!entry) {
99 break;
100 }
101
102- std::string name = parts[0];
103- int prev = atoi(parts[1].c_str());
104- float cost = static_cast<float>(atof(parts[2].c_str()));
105-
106- int index = this->SearchByName(name);
107+ int index = this->SearchByName(entry->name);
108 if (index == -1) {
109 // This test is not in memory. We just rewrite the entry
110- fout << name << " " << prev << " " << cost << "\n";
111+ fout << entry->name << " " << entry->prevRuns << " " << entry->cost
112+ << "\n";
113 } else {
114 // Update with our new average cost
115- fout << name << " " << this->Properties[index]->PreviousRuns << " "
116- << this->Properties[index]->Cost << "\n";
117+ fout << entry->name << " " << this->Properties[index]->PreviousRuns
118+ << " " << this->Properties[index]->Cost << "\n";
119 temp.erase(index);
120 }
121 }
122@@ -850,28 +890,25 @@ void cmCTestMultiProcessHandler::ReadCostData()
123 break;
124 }
125
126- std::vector<std::string> parts = cmSystemTools::SplitString(line, ' ');
127+ // Format: <name> <previous_runs> <avg_cost>
128+ cm::optional<CostEntry> entry = splitCostLine(line);
129
130 // Probably an older version of the file, will be fixed next run
131- if (parts.size() < 3) {
132+ if (!entry) {
133 fin.close();
134 return;
135 }
136
137- std::string name = parts[0];
138- int prev = atoi(parts[1].c_str());
139- float cost = static_cast<float>(atof(parts[2].c_str()));
140-
141- int index = this->SearchByName(name);
142+ int index = this->SearchByName(entry->name);
143 if (index == -1) {
144 continue;
145 }
146
147- this->Properties[index]->PreviousRuns = prev;
148+ this->Properties[index]->PreviousRuns = entry->prevRuns;
149 // When not running in parallel mode, don't use cost data
150 if (this->GetParallelLevel() > 1 && this->Properties[index] &&
151 this->Properties[index]->Cost == 0) {
152- this->Properties[index]->Cost = cost;
153+ this->Properties[index]->Cost = entry->cost;
154 }
155 }
156 // Next part of the file is the failed tests
157@@ -884,7 +921,7 @@ void cmCTestMultiProcessHandler::ReadCostData()
158 }
159 }
160
161-int cmCTestMultiProcessHandler::SearchByName(std::string const& name)
162+int cmCTestMultiProcessHandler::SearchByName(cm::string_view name)
163 {
164 int index = -1;
165
166diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h
167index fd6c17f2fac06949c20f3792dd3eae442b15850b..811be613c3387240c0181f8372b24cf09219621f 100644
168--- a/Source/CTest/cmCTestMultiProcessHandler.h
169+++ b/Source/CTest/cmCTestMultiProcessHandler.h
170@@ -13,6 +13,7 @@
171 #include <vector>
172
173 #include <cm/optional>
174+#include <cm/string_view>
175
176 #include "cmCTest.h"
177 #include "cmCTestResourceAllocator.h"
178@@ -110,7 +111,7 @@ protected:
179 void UpdateCostData();
180 void ReadCostData();
181 // Return index of a test based on its name
182- int SearchByName(std::string const& name);
183+ int SearchByName(cm::string_view name);
184
185 void CreateTestCostList();
186
187diff --git a/Tests/CTestTestScheduler/CMakeLists.txt b/Tests/CTestTestScheduler/CMakeLists.txt
188index 6f8cb4dbc0de35984540e1868788e0a02124e819..daf6ce2b23d8c048334ae1047759130b246dccef 100644
189--- a/Tests/CTestTestScheduler/CMakeLists.txt
190+++ b/Tests/CTestTestScheduler/CMakeLists.txt
191@@ -1,9 +1,9 @@
192-cmake_minimum_required(VERSION 3.10)
193+cmake_minimum_required(VERSION 3.19)
194 project (CTestTestScheduler)
195 include (CTest)
196
197 add_executable (Sleep sleep.c)
198
199 foreach (time RANGE 1 4)
200- add_test (TestSleep${time} Sleep ${time})
201+ add_test ("TestSleep ${time}" Sleep ${time})
202 endforeach ()
diff --git a/meta/recipes-devtools/cmake/cmake_3.31.6.bb b/meta/recipes-devtools/cmake/cmake_3.31.6.bb
index 7d8b8cac65..2d343d6f52 100644
--- a/meta/recipes-devtools/cmake/cmake_3.31.6.bb
+++ b/meta/recipes-devtools/cmake/cmake_3.31.6.bb
@@ -5,6 +5,7 @@ inherit cmake bash-completion
5DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" 5DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
6 6
7SRC_URI:append:class-nativesdk = " \ 7SRC_URI:append:class-nativesdk = " \
8 file://0001-ctest-Allow-arbitrary-characters-in-test-names-of-CT.patch \
8 file://OEToolchainConfig.cmake \ 9 file://OEToolchainConfig.cmake \
9 file://SDKToolchainConfig.cmake.template \ 10 file://SDKToolchainConfig.cmake.template \
10 file://cmake-setup.py \ 11 file://cmake-setup.py \
diff --git a/meta/recipes-devtools/createrepo-c/createrepo-c_1.2.1.bb b/meta/recipes-devtools/createrepo-c/createrepo-c_1.2.1.bb
index d12e3184a0..63a717726c 100644
--- a/meta/recipes-devtools/createrepo-c/createrepo-c_1.2.1.bb
+++ b/meta/recipes-devtools/createrepo-c/createrepo-c_1.2.1.bb
@@ -11,8 +11,6 @@ SRC_URI = "git://github.com/rpm-software-management/createrepo_c;branch=master;p
11 11
12SRCREV = "8c6e6f88df86d1e34ca26d3835d77a2816326414" 12SRCREV = "8c6e6f88df86d1e34ca26d3835d77a2816326414"
13 13
14S = "${WORKDIR}/git"
15
16DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm" 14DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm"
17DEPENDS:append:class-native = " file-replacement-native" 15DEPENDS:append:class-native = " file-replacement-native"
18 16
diff --git a/meta/recipes-devtools/devel-config/distcc-config.bb b/meta/recipes-devtools/devel-config/distcc-config.bb
index 2c30488b82..f5b2f0f246 100644
--- a/meta/recipes-devtools/devel-config/distcc-config.bb
+++ b/meta/recipes-devtools/devel-config/distcc-config.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
6 6
7SRC_URI = "file://distcc.sh" 7SRC_URI = "file://distcc.sh"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12# Default to the host machine for a running qemu session 11# Default to the host machine for a running qemu session
13DISTCC_HOSTS ?= "192.168.7.1" 12DISTCC_HOSTS ?= "192.168.7.1"
diff --git a/meta/recipes-devtools/devel-config/nfs-export-root.bb b/meta/recipes-devtools/devel-config/nfs-export-root.bb
index ad5486aa87..a827bb58ee 100644
--- a/meta/recipes-devtools/devel-config/nfs-export-root.bb
+++ b/meta/recipes-devtools/devel-config/nfs-export-root.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
5 5
6SRC_URI = "file://exports" 6SRC_URI = "file://exports"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11do_install() { 10do_install() {
12 install -d ${D}${sysconfdir} 11 install -d ${D}${sysconfdir}
diff --git a/meta/recipes-devtools/distcc/distcc_3.4.bb b/meta/recipes-devtools/distcc/distcc_3.4.bb
index ab138b3ab6..392f4ae272 100644
--- a/meta/recipes-devtools/distcc/distcc_3.4.bb
+++ b/meta/recipes-devtools/distcc/distcc_3.4.bb
@@ -21,7 +21,6 @@ SRC_URI = "git://github.com/distcc/distcc.git;branch=master;protocol=https \
21 file://distcc.service \ 21 file://distcc.service \
22 " 22 "
23SRCREV = "50d821efe99cae82c05be0a4ab3b4035ef0d3883" 23SRCREV = "50d821efe99cae82c05be0a4ab3b4035ef0d3883"
24S = "${WORKDIR}/git"
25UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 24UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
26 25
27inherit autotools pkgconfig update-rc.d useradd systemd 26inherit autotools pkgconfig update-rc.d useradd systemd
diff --git a/meta/recipes-devtools/dnf/dnf_4.22.0.bb b/meta/recipes-devtools/dnf/dnf_4.23.0.bb
index e5ac3c9824..927a8d8930 100644
--- a/meta/recipes-devtools/dnf/dnf_4.22.0.bb
+++ b/meta/recipes-devtools/dnf/dnf_4.23.0.bb
@@ -20,11 +20,9 @@ SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protoc
20 20
21SRC_URI:append:class-native = " file://0001-dnf-write-the-log-lock-to-root.patch" 21SRC_URI:append:class-native = " file://0001-dnf-write-the-log-lock-to-root.patch"
22 22
23SRCREV = "da9a7066be8e1628d9453428d33685225cd9c90d" 23SRCREV = "8fa4bb94a99eadaed91ad2ee51f27a4baafcebed"
24UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 24UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
25 25
26S = "${WORKDIR}/git"
27
28inherit cmake gettext bash-completion setuptools3-base systemd 26inherit cmake gettext bash-completion setuptools3-base systemd
29 27
30DEPENDS += "libdnf librepo libcomps" 28DEPENDS += "libdnf librepo libcomps"
@@ -37,6 +35,7 @@ BBCLASSEXTEND = "native nativesdk"
37RDEPENDS:${PN} += " \ 35RDEPENDS:${PN} += " \
38 python3-core \ 36 python3-core \
39 python3-codecs \ 37 python3-codecs \
38 python3-ctypes \
40 python3-netclient \ 39 python3-netclient \
41 python3-email \ 40 python3-email \
42 python3-threading \ 41 python3-threading \
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 58e9b6659e..1148d53694 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
@@ -26,8 +26,7 @@ SRC_URI[payloadPV.sha256sum] = "4e4e037a2b83c98c6c94818390d4bdd3f6e10f6ec62dd791
26 26
27UPSTREAM_CHECK_REGEX = "docbook-xml-(?P<pver>4(\.\d+)).zip" 27UPSTREAM_CHECK_REGEX = "docbook-xml-(?P<pver>4(\.\d+)).zip"
28 28
29S = "${WORKDIR}/sources" 29S = "${UNPACKDIR}"
30UNPACKDIR = "${S}"
31 30
32do_configure (){ 31do_configure (){
33 : 32 :
diff --git a/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb b/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb
index ea81bf9507..7e4730b5e9 100644
--- a/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb
+++ b/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb
@@ -13,7 +13,7 @@ UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/docbook/files/docbook-xsl/
13# Reject versions ending in .0 as those are release candidates 13# Reject versions ending in .0 as those are release candidates
14UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P<pver>(\d+[\.\-_]*)+(?!\.0)\.\d+)/" 14UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P<pver>(\d+[\.\-_]*)+(?!\.0)\.\d+)/"
15 15
16S = "${WORKDIR}/docbook-xsl-${PV}" 16S = "${UNPACKDIR}/docbook-xsl-${PV}"
17 17
18inherit allarch xmlcatalog 18inherit allarch xmlcatalog
19 19
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index 45b67bf168..f87d0739ad 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -33,7 +33,6 @@ EXTRA_OECONF:append:class-nativesdk = " --disable-update-alternatives DEB_HOST_A
33PACKAGECONFIG = "liblzma" 33PACKAGECONFIG = "liblzma"
34PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" 34PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz"
35 35
36
37#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux 36#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux
38AUTOTOOLS_AUXDIR = "${S}/build-aux" 37AUTOTOOLS_AUXDIR = "${S}/build-aux"
39 38
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.22.11.bb b/meta/recipes-devtools/dpkg/dpkg_1.22.11.bb
index 47a8d5d5ea..adceebf8e6 100644
--- a/meta/recipes-devtools/dpkg/dpkg_1.22.11.bb
+++ b/meta/recipes-devtools/dpkg/dpkg_1.22.11.bb
@@ -19,4 +19,3 @@ SRC_URI:append:class-native = " file://0001-build.c-ignore-return-of-1-from-tar-
19 19
20SRCREV = "ee7e9118d0a9581cb00c5ce02dccd561b3096387" 20SRCREV = "ee7e9118d0a9581cb00c5ce02dccd561b3096387"
21 21
22S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb b/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb
index 8e42b12b77..c1eca13107 100644
--- a/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb
+++ b/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb
@@ -8,8 +8,7 @@ BBCLASSEXTEND = "native"
8DEPENDS = "elfutils" 8DEPENDS = "elfutils"
9DEPENDS:append:libc-musl = " argp-standalone" 9DEPENDS:append:libc-musl = " argp-standalone"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14do_compile () { 13do_compile () {
15 ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ${S}/dwarfsrcfiles.c -lelf -ldw 14 ${CC} ${CFLAGS} ${LDFLAGS} -o dwarfsrcfiles ${S}/dwarfsrcfiles.c -lelf -ldw
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
index 0cb3f0e6a6..cce6e5f1ac 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
@@ -20,7 +20,6 @@ SECTION = "base"
20DEPENDS = "util-linux attr autoconf-archive-native" 20DEPENDS = "util-linux attr autoconf-archive-native"
21 21
22SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master;protocol=https" 22SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master;protocol=https"
23S = "${WORKDIR}/git"
24 23
25inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest 24inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest
26 25
diff --git a/meta/recipes-devtools/erofs-utils/erofs-utils_1.8.5.bb b/meta/recipes-devtools/erofs-utils/erofs-utils_1.8.5.bb
index 54ead294fb..2bedd6e16b 100644
--- a/meta/recipes-devtools/erofs-utils/erofs-utils_1.8.5.bb
+++ b/meta/recipes-devtools/erofs-utils/erofs-utils_1.8.5.bb
@@ -10,8 +10,6 @@ SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;b
10 10
11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))" 11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
12 12
13S = "${WORKDIR}/git"
14
15DEPENDS = "util-linux-libuuid" 13DEPENDS = "util-linux-libuuid"
16 14
17inherit pkgconfig autotools 15inherit pkgconfig autotools
diff --git a/meta/recipes-devtools/expect/expect_5.45.4.bb b/meta/recipes-devtools/expect/expect_5.45.4.bb
index e3ecf4b25e..48b5b0d934 100644
--- a/meta/recipes-devtools/expect/expect_5.45.4.bb
+++ b/meta/recipes-devtools/expect/expect_5.45.4.bb
@@ -37,7 +37,7 @@ SRC_URI[sha256sum] = "49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760
37UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/expect/files/Expect/" 37UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/expect/files/Expect/"
38UPSTREAM_CHECK_REGEX = "/Expect/(?P<pver>(\d+[\.\-_]*)+)/" 38UPSTREAM_CHECK_REGEX = "/Expect/(?P<pver>(\d+[\.\-_]*)+)/"
39 39
40S = "${WORKDIR}/${BPN}${PV}" 40S = "${UNPACKDIR}/${BPN}${PV}"
41 41
42EXTRA_AUTORECONF += "--exclude=aclocal" 42EXTRA_AUTORECONF += "--exclude=aclocal"
43 43
diff --git a/meta/recipes-devtools/fastfloat/fastfloat_8.0.2.bb b/meta/recipes-devtools/fastfloat/fastfloat_8.0.2.bb
index b3f45ccef4..ca69a4238f 100644
--- a/meta/recipes-devtools/fastfloat/fastfloat_8.0.2.bb
+++ b/meta/recipes-devtools/fastfloat/fastfloat_8.0.2.bb
@@ -10,6 +10,5 @@ LIC_FILES_CHKSUM = " \
10SRC_URI = "git://github.com/fastfloat/fast_float.git;protocol=https;branch=main" 10SRC_URI = "git://github.com/fastfloat/fast_float.git;protocol=https;branch=main"
11 11
12SRCREV = "50a80a73ab2ab256ba1c3bf86923ddd8b4202bc7" 12SRCREV = "50a80a73ab2ab256ba1c3bf86923ddd8b4202bc7"
13S = "${WORKDIR}/git"
14 13
15inherit cmake 14inherit cmake
diff --git a/meta/recipes-devtools/file/file_5.46.bb b/meta/recipes-devtools/file/file_5.46.bb
index e97fac99f2..c035e0b11d 100644
--- a/meta/recipes-devtools/file/file_5.46.bb
+++ b/meta/recipes-devtools/file/file_5.46.bb
@@ -17,7 +17,6 @@ SRC_URI = "git://github.com/file/file.git;branch=master;protocol=https \
17 " 17 "
18 18
19SRCREV = "c5aa4f7f8d5063fb3c37ad57bf54bb67ec641a09" 19SRCREV = "c5aa4f7f8d5063fb3c37ad57bf54bb67ec641a09"
20S = "${WORKDIR}/git"
21 20
22inherit autotools update-alternatives 21inherit autotools update-alternatives
23 22
diff --git a/meta/recipes-devtools/fmt/fmt_11.2.0.bb b/meta/recipes-devtools/fmt/fmt_11.2.0.bb
index b2b8c575c8..d0d4cea23e 100644
--- a/meta/recipes-devtools/fmt/fmt_11.2.0.bb
+++ b/meta/recipes-devtools/fmt/fmt_11.2.0.bb
@@ -8,8 +8,6 @@ SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https;tag=${PV}\
8 file://0001-Workaround-an-ABI-issue-in-spdlog.patch" 8 file://0001-Workaround-an-ABI-issue-in-spdlog.patch"
9SRCREV = "40626af88bd7df9a5fb80be7b25ac85b122d6c21" 9SRCREV = "40626af88bd7df9a5fb80be7b25ac85b122d6c21"
10 10
11S = "${WORKDIR}/git"
12
13inherit cmake 11inherit cmake
14 12
15EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON" 13EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
diff --git a/meta/recipes-devtools/gcc/gcc-15.1.inc b/meta/recipes-devtools/gcc/gcc-15.1.inc
index 18f8cae5ca..af29db8e5b 100644
--- a/meta/recipes-devtools/gcc/gcc-15.1.inc
+++ b/meta/recipes-devtools/gcc/gcc-15.1.inc
@@ -75,7 +75,8 @@ SRC_URI = "${BASEURI} \
75 file://0026-fix-incorrect-preprocessor-line-numbers.patch \ 75 file://0026-fix-incorrect-preprocessor-line-numbers.patch \
76" 76"
77 77
78S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${SOURCEDIR}" 78UNPACKDIR = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/sources"
79S = "${UNPACKDIR}/${SOURCEDIR}"
79B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" 80B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
80 81
81# Language Overrides 82# Language Overrides
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index de559eb9c3..8d95698743 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -104,7 +104,8 @@ MIRRORS =+ "\
104gcclibdir = "${libdir}/gcc" 104gcclibdir = "${libdir}/gcc"
105BINV = "${PV}" 105BINV = "${PV}"
106#S = "${WORKDIR}/gcc-${PV}" 106#S = "${WORKDIR}/gcc-${PV}"
107S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" 107UNPACKDIR = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/sources"
108S = "${UNPACKDIR}/gcc-${PV}"
108 109
109B ?= "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" 110B ?= "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
110 111
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index e3fb48c030..50ff0d2e82 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -116,6 +116,5 @@ do_configure () {
116 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}" 116 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
117 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}" 117 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
118 118
119
120 oe_runconf 119 oe_runconf
121} 120}
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb
index bf53c5cd78..355757c656 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb
@@ -1,5 +1,3 @@
1require recipes-devtools/gcc/gcc-${PV}.inc 1require recipes-devtools/gcc/gcc-${PV}.inc
2require gcc-cross-canadian.inc 2require gcc-cross-canadian.inc
3 3
4
5
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index 54a1d3d85c..80b85fb054 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -44,7 +44,6 @@ EXTRA_OECONF_PATHS = "\
44 44
45ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}" 45ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
46 46
47
48do_configure:prepend () { 47do_configure:prepend () {
49 install -d ${RECIPE_SYSROOT}${target_includedir} 48 install -d ${RECIPE_SYSROOT}${target_includedir}
50 touch ${RECIPE_SYSROOT}${target_includedir}/limits.h 49 touch ${RECIPE_SYSROOT}${target_includedir}/limits.h
diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
index 1a4169f91a..2afd8f6f2a 100644
--- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
+++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
@@ -59,7 +59,6 @@ python gcc_multilib_setup() {
59 if ('%sgcc' % mlprefix) != pn and (not pn.startswith('gcc-cross-canadian')) and pn != "nativesdk-gcc": 59 if ('%sgcc' % mlprefix) != pn and (not pn.startswith('gcc-cross-canadian')) and pn != "nativesdk-gcc":
60 return 60 return
61 61
62
63 def write_config(root, files, options, dirnames, osdirnames): 62 def write_config(root, files, options, dirnames, osdirnames):
64 for ml_conf_file in files: 63 for ml_conf_file in files:
65 with open(root + '/' + ml_conf_file, 'r') as f: 64 with open(root + '/' + ml_conf_file, 'r') as f:
@@ -142,7 +141,6 @@ python gcc_multilib_setup() {
142 with open(root + '/' + ml_conf_file, 'w') as f: 141 with open(root + '/' + ml_conf_file, 'w') as f:
143 f.write(''.join(filelines)) 142 f.write(''.join(filelines))
144 143
145
146 gcc_target_config_files = { 144 gcc_target_config_files = {
147 'x86_64' : ['gcc/config/i386/t-linux64'], 145 'x86_64' : ['gcc/config/i386/t-linux64'],
148 'i586' : ['gcc/config/i386/t-linux64'], 146 'i586' : ['gcc/config/i386/t-linux64'],
@@ -176,7 +174,6 @@ python gcc_multilib_setup() {
176 libdirx32 = 'SYSTEMLIBS_DIR' 174 libdirx32 = 'SYSTEMLIBS_DIR'
177 libdirn32 = 'SYSTEMLIBS_DIR' 175 libdirn32 = 'SYSTEMLIBS_DIR'
178 176
179
180 target_arch = (d.getVar('TARGET_ARCH_MULTILIB_ORIGINAL') if mlprefix 177 target_arch = (d.getVar('TARGET_ARCH_MULTILIB_ORIGINAL') if mlprefix
181 else d.getVar('TARGET_ARCH')) 178 else d.getVar('TARGET_ARCH'))
182 if pn == "nativesdk-gcc": 179 if pn == "nativesdk-gcc":
diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc b/meta/recipes-devtools/gcc/gcc-shared-source.inc
index 03f520b093..c01410b47a 100644
--- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
+++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
@@ -16,6 +16,6 @@ do_deploy_source_date_epoch () {
16 sde_file=${SDE_FILE} 16 sde_file=${SDE_FILE}
17 sde_file=${sde_file#${WORKDIR}/} 17 sde_file=${sde_file#${WORKDIR}/}
18 mkdir -p ${SDE_DEPLOYDIR} $(dirname ${SDE_FILE}) 18 mkdir -p ${SDE_DEPLOYDIR} $(dirname ${SDE_FILE})
19 cp -p $(dirname ${S})/$sde_file ${SDE_DEPLOYDIR} 19 cp -p $(dirname ${UNPACKDIR})/$sde_file ${SDE_DEPLOYDIR}
20 cp -p $(dirname ${S})/$sde_file ${SDE_FILE} 20 cp -p $(dirname ${UNPACKDIR})/$sde_file ${SDE_FILE}
21} 21}
diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc
index e3db17d700..65bcd24bc7 100644
--- a/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -104,7 +104,6 @@ fakeroot python do_multilib_install() {
104 os.symlink(src, dest) 104 os.symlink(src, dest)
105 return 105 return
106 106
107
108 for ml in multilibs.split(): 107 for ml in multilibs.split():
109 tune = d.getVar('DEFAULTTUNE:virtclass-multilib-' + ml) 108 tune = d.getVar('DEFAULTTUNE:virtclass-multilib-' + ml)
110 if not tune: 109 if not tune:
diff --git a/meta/recipes-devtools/gcc/libgcc.inc b/meta/recipes-devtools/gcc/libgcc.inc
index 9554475382..a3f0f947f7 100644
--- a/meta/recipes-devtools/gcc/libgcc.inc
+++ b/meta/recipes-devtools/gcc/libgcc.inc
@@ -36,7 +36,6 @@ LICENSE:${PN} = "GPL-3.0-with-GCC-exception"
36LICENSE:${PN}-dev = "GPL-3.0-with-GCC-exception" 36LICENSE:${PN}-dev = "GPL-3.0-with-GCC-exception"
37LICENSE:${PN}-dbg = "GPL-3.0-with-GCC-exception" 37LICENSE:${PN}-dbg = "GPL-3.0-with-GCC-exception"
38 38
39
40FILES:${PN}-dev = "\ 39FILES:${PN}-dev = "\
41 ${base_libdir}/libgcc*.so \ 40 ${base_libdir}/libgcc*.so \
42 ${@oe.utils.conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \ 41 ${@oe.utils.conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
diff --git a/meta/recipes-devtools/git/git_2.49.0.bb b/meta/recipes-devtools/git/git_2.49.0.bb
index 3538170d08..e1b501d62b 100644
--- a/meta/recipes-devtools/git/git_2.49.0.bb
+++ b/meta/recipes-devtools/git/git_2.49.0.bb
@@ -16,7 +16,7 @@ SRC_URI:append:class-nativesdk = " \
16 file://environment.d-git.sh \ 16 file://environment.d-git.sh \
17 " 17 "
18 18
19S = "${WORKDIR}/git-${PV}" 19S = "${UNPACKDIR}/git-${PV}"
20 20
21LIC_FILES_CHKSUM = "\ 21LIC_FILES_CHKSUM = "\
22 file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1 \ 22 file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1 \
diff --git a/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index 60601d23e2..515777caf4 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -14,7 +14,6 @@ PV = "20240823+git"
14 14
15SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \ 15SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \
16 file://gnu-configize.in" 16 file://gnu-configize.in"
17S = "${WORKDIR}/git"
18UPSTREAM_CHECK_COMMITS = "1" 17UPSTREAM_CHECK_COMMITS = "1"
19 18
20CLEANBROKEN = "1" 19CLEANBROKEN = "1"
diff --git a/meta/recipes-devtools/go/go-binary-native_1.24.4.bb b/meta/recipes-devtools/go/go-binary-native_1.24.4.bb
index 9f788536c4..ae85d3e266 100644
--- a/meta/recipes-devtools/go/go-binary-native_1.24.4.bb
+++ b/meta/recipes-devtools/go/go-binary-native_1.24.4.bb
@@ -17,8 +17,9 @@ UPSTREAM_CHECK_URI = "https://golang.org/dl/"
17UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux" 17UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
18 18
19CVE_PRODUCT = "golang:go" 19CVE_PRODUCT = "golang:go"
20CVE_STATUS[CVE-2024-3566] = "not-applicable-platform: Issue only applies on Windows"
20 21
21S = "${WORKDIR}/go" 22S = "${UNPACKDIR}/go"
22 23
23inherit goarch native 24inherit goarch native
24 25
diff --git a/meta/recipes-devtools/go/go-common.inc b/meta/recipes-devtools/go/go-common.inc
index ca8469dbd9..061db4296c 100644
--- a/meta/recipes-devtools/go/go-common.inc
+++ b/meta/recipes-devtools/go/go-common.inc
@@ -15,12 +15,13 @@ LICENSE = "BSD-3-Clause"
15inherit goarch 15inherit goarch
16 16
17SRC_URI = "https://golang.org/dl/go${PV}.src.tar.gz;name=main" 17SRC_URI = "https://golang.org/dl/go${PV}.src.tar.gz;name=main"
18S = "${WORKDIR}/go" 18S = "${UNPACKDIR}/go"
19B = "${S}" 19B = "${S}"
20UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.src\.tar" 20UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.src\.tar"
21 21
22# all recipe variants are created from the same product 22# all recipe variants are created from the same product
23CVE_PRODUCT = "golang:go" 23CVE_PRODUCT = "golang:go"
24CVE_STATUS[CVE-2024-3566] = "not-applicable-platform: Issue only applies on Windows"
24 25
25INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 26INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
26SSTATE_SCAN_CMD = "true" 27SSTATE_SCAN_CMD = "true"
diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc
index ff6c063d69..39330fc98b 100644
--- a/meta/recipes-devtools/go/go-cross-canadian.inc
+++ b/meta/recipes-devtools/go/go-cross-canadian.inc
@@ -29,7 +29,6 @@ do_compile() {
29} 29}
30do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" 30do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg"
31 31
32
33make_wrapper() { 32make_wrapper() {
34 rm -f ${D}${bindir}/$2 33 rm -f ${D}${bindir}/$2
35 cat <<END >${D}${bindir}/$2 34 cat <<END >${D}${bindir}/$2
diff --git a/meta/recipes-devtools/json-c/json-c_0.18.bb b/meta/recipes-devtools/json-c/json-c_0.18.bb
index 2fd1897ba8..ece320d66c 100644
--- a/meta/recipes-devtools/json-c/json-c_0.18.bb
+++ b/meta/recipes-devtools/json-c/json-c_0.18.bb
@@ -19,8 +19,11 @@ UPSTREAM_CHECK_REGEX = "json-c-(?P<pver>\d+(\.\d+)+)-\d+"
19 19
20RPROVIDES:${PN} = "libjson" 20RPROVIDES:${PN} = "libjson"
21 21
22# Required for ICECC builds 22# - '-Werror' must be disabled for ICECC builds
23EXTRA_OECMAKE = "-DDISABLE_WERROR=ON" 23# - Apps aren't needed/packaged and their CMakeLists.txt is incompatible with CMake 4+.
24EXTRA_OECMAKE = "-DDISABLE_WERROR=ON \
25 -DBUILD_APPS=OFF \
26"
24 27
25inherit cmake ptest 28inherit cmake ptest
26 29
diff --git a/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb b/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb
index 91170dfbed..5709f3e69f 100644
--- a/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb
+++ b/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb
@@ -10,8 +10,6 @@ SRC_URI = "git://github.com/rpm-software-management/libcomps.git;branch=master;p
10 10
11SRCREV = "2e973ce22698dd64f472180e3a689755268fb06b" 11SRCREV = "2e973ce22698dd64f472180e3a689755268fb06b"
12 12
13S = "${WORKDIR}/git"
14
15inherit cmake setuptools3-base 13inherit cmake setuptools3-base
16 14
17DEPENDS = "expat libxml2 zlib" 15DEPENDS = "expat libxml2 zlib"
diff --git a/meta/recipes-devtools/libdnf/libdnf_0.74.0.bb b/meta/recipes-devtools/libdnf/libdnf_0.74.0.bb
index 5a2d4d9364..6ac518564b 100644
--- a/meta/recipes-devtools/libdnf/libdnf_0.74.0.bb
+++ b/meta/recipes-devtools/libdnf/libdnf_0.74.0.bb
@@ -16,8 +16,6 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;p
16SRCREV = "91a0bf9aada36a722855051526f012e0b5ab1af9" 16SRCREV = "91a0bf9aada36a722855051526f012e0b5ab1af9"
17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)" 17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)"
18 18
19S = "${WORKDIR}/git"
20
21DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native util-linux" 19DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native util-linux"
22 20
23inherit gtk-doc gobject-introspection cmake pkgconfig setuptools3-base 21inherit gtk-doc gobject-introspection cmake pkgconfig setuptools3-base
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd_2.15.1.bb b/meta/recipes-devtools/libmodulemd/libmodulemd_2.15.1.bb
index c31fc44ce4..6504414387 100644
--- a/meta/recipes-devtools/libmodulemd/libmodulemd_2.15.1.bb
+++ b/meta/recipes-devtools/libmodulemd/libmodulemd_2.15.1.bb
@@ -8,8 +8,6 @@ SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=
8 8
9SRCREV = "e7f179eeeb6eee1403f090fc43a3c80bb08b5bfd" 9SRCREV = "e7f179eeeb6eee1403f090fc43a3c80bb08b5bfd"
10 10
11S = "${WORKDIR}/git"
12
13inherit meson gobject-introspection pkgconfig manpages 11inherit meson gobject-introspection pkgconfig manpages
14 12
15EXTRA_OEMESON = "-Dwith_py3=false -Dwith_docs=false -Drpmio=disabled -Dgobject_overrides_dir_py3=${PYTHON_SITEPACKAGES_DIR}/gi/overrides" 13EXTRA_OEMESON = "-Dwith_py3=false -Dwith_docs=false -Drpmio=disabled -Dgobject_overrides_dir_py3=${PYTHON_SITEPACKAGES_DIR}/gi/overrides"
diff --git a/meta/recipes-devtools/librepo/librepo_1.19.0.bb b/meta/recipes-devtools/librepo/librepo_1.19.0.bb
index 634967fcbc..ba66c8ef68 100644
--- a/meta/recipes-devtools/librepo/librepo_1.19.0.bb
+++ b/meta/recipes-devtools/librepo/librepo_1.19.0.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://github.com/rpm-software-management/librepo.git;branch=master;pr
12 12
13SRCREV = "7955987e33ba98dddb3fc2c63bb6dc892e3505fa" 13SRCREV = "7955987e33ba98dddb3fc2c63bb6dc892e3505fa"
14 14
15S = "${WORKDIR}/git"
16
17DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" 15DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2"
18 16
19inherit cmake setuptools3-base pkgconfig 17inherit cmake setuptools3-base pkgconfig
diff --git a/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.4.bb b/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.4.bb
index 2e39a1e1d7..de556a5d81 100644
--- a/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.4.bb
+++ b/meta/recipes-devtools/libtool/nativesdk-libtool_2.5.4.bb
@@ -7,7 +7,7 @@ SRC_URI += "file://0008-libtool-Avoid-relinking-when-cross-compiling-its-poi.pat
7 7
8inherit nativesdk 8inherit nativesdk
9 9
10S = "${WORKDIR}/libtool-${PV}" 10S = "${UNPACKDIR}/libtool-${PV}"
11FILES:${PN} += "${datadir}/libtool/*" 11FILES:${PN} += "${datadir}/libtool/*"
12 12
13do_install () { 13do_install () {
diff --git a/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb b/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
index 7b11093364..deed684537 100644
--- a/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
+++ b/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://makedevs.c;beginline=2;endline=2;md5=c3817b10013a3007
5SECTION = "base" 5SECTION = "base"
6SRC_URI = "file://makedevs.c" 6SRC_URI = "file://makedevs.c"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11FILES:${PN}:append:class-nativesdk = " ${datadir}" 10FILES:${PN}:append:class-nativesdk = " ${datadir}"
12 11
diff --git a/meta/recipes-devtools/mmc/mmc-utils_git.bb b/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 1f287a8df9..f3944aebf0 100644
--- a/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -15,8 +15,6 @@ UPSTREAM_CHECK_COMMITS = "1"
15DEPENDS = "python3-sphinx-native" 15DEPENDS = "python3-sphinx-native"
16EXTRA_OEMAKE = "C=" 16EXTRA_OEMAKE = "C="
17 17
18S = "${WORKDIR}/git"
19
20CFLAGS:append:powerpc64 = " -D__SANE_USERSPACE_TYPES__" 18CFLAGS:append:powerpc64 = " -D__SANE_USERSPACE_TYPES__"
21CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" 19CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
22CFLAGS:append:mipsarchn32 = " -D__SANE_USERSPACE_TYPES__" 20CFLAGS:append:mipsarchn32 = " -D__SANE_USERSPACE_TYPES__"
diff --git a/meta/recipes-devtools/mtd/mtd-utils_2.3.0.bb b/meta/recipes-devtools/mtd/mtd-utils_2.3.0.bb
index 2f7043b977..47f0b01abe 100644
--- a/meta/recipes-devtools/mtd/mtd-utils_2.3.0.bb
+++ b/meta/recipes-devtools/mtd/mtd-utils_2.3.0.bb
@@ -19,8 +19,6 @@ SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
19 file://0004-ubifs-utils-extract_files-Include-linux-limits.h.patch \ 19 file://0004-ubifs-utils-extract_files-Include-linux-limits.h.patch \
20 file://0001-Improve-check-for-GCC-compiler-version.patch" 20 file://0001-Improve-check-for-GCC-compiler-version.patch"
21 21
22S = "${WORKDIR}/git"
23
24# xattr support creates an additional compile-time dependency on acl because 22# xattr support creates an additional compile-time dependency on acl because
25# the sys/acl.h header is needed. libacl is not needed and thus enabling xattr 23# the sys/acl.h header is needed. libacl is not needed and thus enabling xattr
26# regardless whether acl is enabled or disabled in the distro should be okay. 24# regardless whether acl is enabled or disabled in the distro should be okay.
diff --git a/meta/recipes-devtools/ninja/ninja_1.12.1.bb b/meta/recipes-devtools/ninja/ninja_1.12.1.bb
index 9f5c014b9b..5aff82edec 100644
--- a/meta/recipes-devtools/ninja/ninja_1.12.1.bb
+++ b/meta/recipes-devtools/ninja/ninja_1.12.1.bb
@@ -11,8 +11,6 @@ SRCREV = "2daa09ba270b0a43e1929d29b073348aa985dfaa"
11SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https" 11SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
12UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" 12UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
13 13
14S = "${WORKDIR}/git"
15
16do_configure[noexec] = "1" 14do_configure[noexec] = "1"
17 15
18do_compile:class-native() { 16do_compile:class-native() {
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.7.0.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.7.0.bb
index 44958b442e..9f1a91e1d3 100644
--- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.7.0.bb
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.7.0.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://git.yoctoproject.org/opkg-utils;protocol=https;branch=master \
12 " 12 "
13SRCREV = "68a969f0e867ace0d94faf8ebe7c7bb67f59d386" 13SRCREV = "68a969f0e867ace0d94faf8ebe7c7bb67f59d386"
14 14
15S = "${WORKDIR}/git"
16
17TARGET_CC_ARCH += "${LDFLAGS}" 15TARGET_CC_ARCH += "${LDFLAGS}"
18 16
19RDEPENDS:${PN} += "bash" 17RDEPENDS:${PN} += "bash"
diff --git a/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb b/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
index 4db35c1092..9e9e70209e 100644
--- a/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
+++ b/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
@@ -3,8 +3,7 @@ HOMEPAGE = "https://git.yoctoproject.org/opkg/"
3LICENSE = "MIT" 3LICENSE = "MIT"
4PACKAGE_ARCH = "${MACHINE_ARCH}" 4PACKAGE_ARCH = "${MACHINE_ARCH}"
5 5
6S = "${WORKDIR}/sources" 6S = "${UNPACKDIR}"
7UNPACKDIR = "${S}"
8 7
9do_compile() { 8do_compile() {
10 mkdir -p ${S}/${sysconfdir}/opkg/ 9 mkdir -p ${S}/${sysconfdir}/opkg/
@@ -20,7 +19,6 @@ do_compile() {
20 done 19 done
21} 20}
22 21
23
24do_install () { 22do_install () {
25 install -d ${D}${sysconfdir}/opkg 23 install -d ${D}${sysconfdir}/opkg
26 install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/ 24 install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/
diff --git a/meta/recipes-devtools/opkg/opkg_0.7.0.bb b/meta/recipes-devtools/opkg/opkg_0.7.0.bb
index 0a54247c5b..95480b4716 100644
--- a/meta/recipes-devtools/opkg/opkg_0.7.0.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.7.0.bb
@@ -68,7 +68,6 @@ def qa_check_solver_deprecation (pn, d):
68 if "libsolv" not in pkgconfig: 68 if "libsolv" not in pkgconfig:
69 oe.qa.handle_error("internal-solver-deprecation", "The opkg internal solver will be deprecated in future opkg releases. Consider enabling \"libsolv\" in PACKAGECONFIG.", d) 69 oe.qa.handle_error("internal-solver-deprecation", "The opkg internal solver will be deprecated in future opkg releases. Consider enabling \"libsolv\" in PACKAGECONFIG.", d)
70 70
71
72RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" 71RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive"
73RDEPENDS:${PN}:class-native = "" 72RDEPENDS:${PN}:class-native = ""
74RDEPENDS:${PN}:class-nativesdk = "" 73RDEPENDS:${PN}:class-nativesdk = ""
diff --git a/meta/recipes-devtools/patch/patch.inc b/meta/recipes-devtools/patch/patch.inc
index a12d426b2c..44d3046fd8 100644
--- a/meta/recipes-devtools/patch/patch.inc
+++ b/meta/recipes-devtools/patch/patch.inc
@@ -6,7 +6,7 @@ SECTION = "utils"
6HOMEPAGE = "http://savannah.gnu.org/projects/patch/" 6HOMEPAGE = "http://savannah.gnu.org/projects/patch/"
7 7
8SRC_URI = "${GNU_MIRROR}/patch/patch-${PV}.tar.gz" 8SRC_URI = "${GNU_MIRROR}/patch/patch-${PV}.tar.gz"
9S = "${WORKDIR}/patch-${PV}" 9S = "${UNPACKDIR}/patch-${PV}"
10 10
11inherit autotools update-alternatives 11inherit autotools update-alternatives
12 12
diff --git a/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb b/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
index dece34240c..6e86ddbde6 100644
--- a/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
+++ b/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
@@ -11,8 +11,6 @@ SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master \
11" 11"
12SRCREV = "99c24238981b7b1084313aca8f5c493bb46f302c" 12SRCREV = "99c24238981b7b1084313aca8f5c493bb46f302c"
13 13
14S = "${WORKDIR}/git"
15
16LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 14LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
17 15
18inherit autotools 16inherit autotools
diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.6.2.bb b/meta/recipes-devtools/perl-cross/perlcross_1.6.2.bb
index 42ba15a572..debf2717ce 100644
--- a/meta/recipes-devtools/perl-cross/perlcross_1.6.2.bb
+++ b/meta/recipes-devtools/perl-cross/perlcross_1.6.2.bb
@@ -20,7 +20,7 @@ GITHUB_BASE_URI = "https://github.com/arsv/perl-cross/releases/"
20 20
21SRC_URI[perl-cross.sha256sum] = "131f7496152ee32067dbac2bc9b44b2f582fc778140e545701b3b2faee782f1d" 21SRC_URI[perl-cross.sha256sum] = "131f7496152ee32067dbac2bc9b44b2f582fc778140e545701b3b2faee782f1d"
22 22
23S = "${WORKDIR}/perl-cross-${PV}" 23S = "${UNPACKDIR}/perl-cross-${PV}"
24 24
25do_configure () { 25do_configure () {
26} 26}
diff --git a/meta/recipes-devtools/perl/libmodule-build-perl_0.4234.bb b/meta/recipes-devtools/perl/libmodule-build-perl_0.4234.bb
index b57618724d..b27a8c15e6 100644
--- a/meta/recipes-devtools/perl/libmodule-build-perl_0.4234.bb
+++ b/meta/recipes-devtools/perl/libmodule-build-perl_0.4234.bb
@@ -18,7 +18,7 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \
18 " 18 "
19SRC_URI[sha256sum] = "66aeac6127418be5e471ead3744648c766bd01482825c5b66652675f2bc86a8f" 19SRC_URI[sha256sum] = "66aeac6127418be5e471ead3744648c766bd01482825c5b66652675f2bc86a8f"
20 20
21S = "${WORKDIR}/Module-Build-${PV}" 21S = "${UNPACKDIR}/Module-Build-${PV}"
22 22
23inherit cpan_build ptest-perl 23inherit cpan_build ptest-perl
24 24
diff --git a/meta/recipes-devtools/perl/libtest-fatal-perl_0.017.bb b/meta/recipes-devtools/perl/libtest-fatal-perl_0.017.bb
index 1c3a7e5136..eae128b0cc 100644
--- a/meta/recipes-devtools/perl/libtest-fatal-perl_0.017.bb
+++ b/meta/recipes-devtools/perl/libtest-fatal-perl_0.017.bb
@@ -13,7 +13,7 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/R/RJ/RJBS/Test-Fatal-${PV}.tar.gz"
13 13
14SRC_URI[sha256sum] = "37dfffdafb84b762efe96b02fb2aa41f37026c73e6b83590db76229697f3c4a6" 14SRC_URI[sha256sum] = "37dfffdafb84b762efe96b02fb2aa41f37026c73e6b83590db76229697f3c4a6"
15 15
16S = "${WORKDIR}/Test-Fatal-${PV}" 16S = "${UNPACKDIR}/Test-Fatal-${PV}"
17 17
18inherit cpan ptest-perl 18inherit cpan ptest-perl
19 19
diff --git a/meta/recipes-devtools/perl/libtest-needs-perl_0.002010.bb b/meta/recipes-devtools/perl/libtest-needs-perl_0.002010.bb
index 79a06170e0..0045e575af 100644
--- a/meta/recipes-devtools/perl/libtest-needs-perl_0.002010.bb
+++ b/meta/recipes-devtools/perl/libtest-needs-perl_0.002010.bb
@@ -19,7 +19,7 @@ SRC_URI = "https://cpan.metacpan.org/authors/id/H/HA/${CPAN_AUTHOR}/${CPAN_NAME}
19 19
20SRC_URI[sha256sum] = "923ffdc78fcba96609753e4bae26b0ba0186893de4a63cd5236e012c7c90e208" 20SRC_URI[sha256sum] = "923ffdc78fcba96609753e4bae26b0ba0186893de4a63cd5236e012c7c90e208"
21 21
22S = "${WORKDIR}/${CPAN_NAME}-${PV}" 22S = "${UNPACKDIR}/${CPAN_NAME}-${PV}"
23 23
24inherit cpan ptest-perl 24inherit cpan ptest-perl
25 25
diff --git a/meta/recipes-devtools/perl/libtest-warnings-perl_0.038.bb b/meta/recipes-devtools/perl/libtest-warnings-perl_0.038.bb
index 656b38f2d8..2eccf40999 100644
--- a/meta/recipes-devtools/perl/libtest-warnings-perl_0.038.bb
+++ b/meta/recipes-devtools/perl/libtest-warnings-perl_0.038.bb
@@ -17,7 +17,7 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Test-Warnings-${PV}.tar.gz"
17 17
18SRC_URI[sha256sum] = "3da27e003a3c3cafed3c09b42be05cf9bdbff0bee5c8590a731b02853880a273" 18SRC_URI[sha256sum] = "3da27e003a3c3cafed3c09b42be05cf9bdbff0bee5c8590a731b02853880a273"
19 19
20S = "${WORKDIR}/Test-Warnings-${PV}" 20S = "${UNPACKDIR}/Test-Warnings-${PV}"
21 21
22inherit cpan ptest-perl 22inherit cpan ptest-perl
23 23
diff --git a/meta/recipes-devtools/perl/libtry-tiny-perl_0.32.bb b/meta/recipes-devtools/perl/libtry-tiny-perl_0.32.bb
index d0714695b8..e924b3bd64 100644
--- a/meta/recipes-devtools/perl/libtry-tiny-perl_0.32.bb
+++ b/meta/recipes-devtools/perl/libtry-tiny-perl_0.32.bb
@@ -13,7 +13,7 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Try-Tiny-${PV}.tar.gz"
13 13
14SRC_URI[sha256sum] = "ef2d6cab0bad18e3ab1c4e6125cc5f695c7e459899f512451c8fa3ef83fa7fc0" 14SRC_URI[sha256sum] = "ef2d6cab0bad18e3ab1c4e6125cc5f695c7e459899f512451c8fa3ef83fa7fc0"
15 15
16S = "${WORKDIR}/Try-Tiny-${PV}" 16S = "${UNPACKDIR}/Try-Tiny-${PV}"
17 17
18inherit cpan ptest-perl 18inherit cpan ptest-perl
19 19
diff --git a/meta/recipes-devtools/perl/libxml-parser-perl_2.47.bb b/meta/recipes-devtools/perl/libxml-parser-perl_2.47.bb
index 1f312b00e1..b6d28c4bb3 100644
--- a/meta/recipes-devtools/perl/libxml-parser-perl_2.47.bb
+++ b/meta/recipes-devtools/perl/libxml-parser-perl_2.47.bb
@@ -12,7 +12,7 @@ SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz \
12 12
13SRC_URI[sha256sum] = "ad4aae643ec784f489b956abe952432871a622d4e2b5c619e8855accbfc4d1d8" 13SRC_URI[sha256sum] = "ad4aae643ec784f489b956abe952432871a622d4e2b5c619e8855accbfc4d1d8"
14 14
15S = "${WORKDIR}/XML-Parser-${PV}" 15S = "${UNPACKDIR}/XML-Parser-${PV}"
16 16
17EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC='${CC}' LD='${CCLD}' FULL_AR='${AR}'" 17EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC='${CC}' LD='${CCLD}' FULL_AR='${AR}'"
18 18
diff --git a/meta/recipes-devtools/perl/libxml-simple-perl_2.25.bb b/meta/recipes-devtools/perl/libxml-simple-perl_2.25.bb
index dff0f84aab..a4f08433e7 100644
--- a/meta/recipes-devtools/perl/libxml-simple-perl_2.25.bb
+++ b/meta/recipes-devtools/perl/libxml-simple-perl_2.25.bb
@@ -14,7 +14,7 @@ SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Simple-${PV}.tar.gz"
14 14
15SRC_URI[sha256sum] = "531fddaebea2416743eb5c4fdfab028f502123d9a220405a4100e68fc480dbf8" 15SRC_URI[sha256sum] = "531fddaebea2416743eb5c4fdfab028f502123d9a220405a4100e68fc480dbf8"
16 16
17S = "${WORKDIR}/XML-Simple-${PV}" 17S = "${UNPACKDIR}/XML-Simple-${PV}"
18 18
19EXTRA_PERLFLAGS = "-I ${PERLHOSTLIB}" 19EXTRA_PERLFLAGS = "-I ${PERLHOSTLIB}"
20 20
diff --git a/meta/recipes-devtools/perl/perl_5.40.2.bb b/meta/recipes-devtools/perl/perl_5.40.2.bb
index 95c230060d..c3bcbf053d 100644
--- a/meta/recipes-devtools/perl/perl_5.40.2.bb
+++ b/meta/recipes-devtools/perl/perl_5.40.2.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \
7 file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \ 7 file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \
8 " 8 "
9 9
10
11SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ 10SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
12 file://perl-rdepends.txt \ 11 file://perl-rdepends.txt \
13 file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \ 12 file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index af512a42b4..f537c635ef 100644
--- a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -18,8 +18,6 @@ SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;
18 file://0001-Do-not-use-bool-as-a-field-name.patch \ 18 file://0001-Do-not-use-bool-as-a-field-name.patch \
19 " 19 "
20 20
21S = "${WORKDIR}/git"
22
23inherit autotools 21inherit autotools
24 22
25# Because of a faulty test, the current auto mode always evaluates to no, 23# Because of a faulty test, the current auto mode always evaluates to no,
diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc
index 36283ffa74..22c934977d 100644
--- a/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/meta/recipes-devtools/pseudo/pseudo.inc
@@ -124,7 +124,6 @@ do_compile:append:class-native () {
124 fi 124 fi
125} 125}
126 126
127
128do_install () { 127do_install () {
129 oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install 128 oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install
130} 129}
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index 4693afcaf6..385b6f34d9 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -5,15 +5,14 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=master;protocol=https \
5 file://fallback-group \ 5 file://fallback-group \
6 " 6 "
7SRC_URI:append:class-native = " \ 7SRC_URI:append:class-native = " \
8 http://downloads.yoctoproject.org/mirror/sources/pseudo-prebuilt-2.33.tar.xz;subdir=git/prebuilt;name=prebuilt \ 8 http://downloads.yoctoproject.org/mirror/sources/pseudo-prebuilt-2.33.tar.xz;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/prebuilt;name=prebuilt \
9 file://older-glibc-symbols.patch" 9 file://older-glibc-symbols.patch"
10SRC_URI:append:class-nativesdk = " \ 10SRC_URI:append:class-nativesdk = " \
11 http://downloads.yoctoproject.org/mirror/sources/pseudo-prebuilt-2.33.tar.xz;subdir=git/prebuilt;name=prebuilt \ 11 http://downloads.yoctoproject.org/mirror/sources/pseudo-prebuilt-2.33.tar.xz;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/prebuilt;name=prebuilt \
12 file://older-glibc-symbols.patch" 12 file://older-glibc-symbols.patch"
13SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa" 13SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
14 14
15SRCREV = "2c43381180f9cfef4c0a8bb0c1658a86c3fcc876" 15SRCREV = "2c43381180f9cfef4c0a8bb0c1658a86c3fcc876"
16S = "${WORKDIR}/git"
17PV = "1.9.0+git" 16PV = "1.9.0+git"
18 17
19# largefile and 64bit time_t support adds these macros via compiler flags globally 18# largefile and 64bit time_t support adds these macros via compiler flags globally
diff --git a/meta/recipes-devtools/python/python3-babel_2.17.0.bb b/meta/recipes-devtools/python/python3-babel_2.17.0.bb
index f7ffbccdac..adffaa044c 100644
--- a/meta/recipes-devtools/python/python3-babel_2.17.0.bb
+++ b/meta/recipes-devtools/python/python3-babel_2.17.0.bb
@@ -7,7 +7,7 @@ SRC_URI[sha256sum] = "0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf
7 7
8inherit pypi setuptools3 8inherit pypi setuptools3
9 9
10S = "${WORKDIR}/babel-${PV}" 10S = "${UNPACKDIR}/babel-${PV}"
11 11
12CLEANBROKEN = "1" 12CLEANBROKEN = "1"
13 13
diff --git a/meta/recipes-devtools/python/python3-calver_2025.04.17.bb b/meta/recipes-devtools/python/python3-calver_2025.04.17.bb
index 290be21ce2..85ad18701c 100644
--- a/meta/recipes-devtools/python/python3-calver_2025.04.17.bb
+++ b/meta/recipes-devtools/python/python3-calver_2025.04.17.bb
@@ -8,8 +8,6 @@ SRCREV = "3b74bdce35f2814eb2b65db39a133d5c849ddea7"
8 8
9inherit python_setuptools_build_meta ptest-python-pytest 9inherit python_setuptools_build_meta ptest-python-pytest
10 10
11S = "${WORKDIR}/git"
12
13RDEPENDS:${PN}-ptest += " \ 11RDEPENDS:${PN}-ptest += " \
14 python3-pretend \ 12 python3-pretend \
15" 13"
diff --git a/meta/recipes-devtools/python/python3-certifi_2025.4.26.bb b/meta/recipes-devtools/python/python3-certifi_2025.6.15.bb
index 07f9f3bfc8..e8ad8da486 100644
--- a/meta/recipes-devtools/python/python3-certifi_2025.4.26.bb
+++ b/meta/recipes-devtools/python/python3-certifi_2025.6.15.bb
@@ -7,9 +7,9 @@ HOMEPAGE = " http://certifi.io/"
7LICENSE = "ISC" 7LICENSE = "ISC"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c"
9 9
10SRC_URI[sha256sum] = "0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6" 10SRC_URI[sha256sum] = "d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"
11 11
12inherit pypi setuptools3 12inherit pypi python_setuptools_build_meta
13 13
14BBCLASSEXTEND = "native nativesdk" 14BBCLASSEXTEND = "native nativesdk"
15 15
diff --git a/meta/recipes-devtools/python/python3-colorama_0.4.6.bb b/meta/recipes-devtools/python/python3-colorama_0.4.6.bb
new file mode 100644
index 0000000000..c33310b969
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-colorama_0.4.6.bb
@@ -0,0 +1,10 @@
1SUMMARY = "Cross-platform colored terminal text."
2HOMEPAGE = "https://github.com/tartley/colorama"
3LICENSE = "BSD-3-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26"
5
6inherit pypi python_hatchling
7
8SRC_URI[sha256sum] = "08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"
9
10BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-cryptography-common.inc b/meta/recipes-devtools/python/python3-cryptography-common.inc
index 3018d967b2..5ce2485ed5 100644
--- a/meta/recipes-devtools/python/python3-cryptography-common.inc
+++ b/meta/recipes-devtools/python/python3-cryptography-common.inc
@@ -3,4 +3,4 @@
3# 3#
4# Additionally AUH will detect that they share this .inc file and 4# Additionally AUH will detect that they share this .inc file and
5# perform a lockstep upgrade for both. 5# perform a lockstep upgrade for both.
6PV = "45.0.3" 6PV = "45.0.4"
diff --git a/meta/recipes-devtools/python/python3-cryptography-vectors.bb b/meta/recipes-devtools/python/python3-cryptography-vectors.bb
index 46597134b6..a8f8d0cd17 100644
--- a/meta/recipes-devtools/python/python3-cryptography-vectors.bb
+++ b/meta/recipes-devtools/python/python3-cryptography-vectors.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
9# NOTE: Make sure to keep this recipe at the same version as python3-cryptography 9# NOTE: Make sure to keep this recipe at the same version as python3-cryptography
10# Upgrade both recipes at the same time 10# Upgrade both recipes at the same time
11require python3-cryptography-common.inc 11require python3-cryptography-common.inc
12SRC_URI[sha256sum] = "b65cebdc334c6b9db8c79081a08253fddf262d009d2c914398edd24a4321db21" 12SRC_URI[sha256sum] = "fbb0408df8ff2d2b3dbd2928bc5b7feebfdd36fb092fa8790d5778a9b9a1f9ef"
13 13
14PYPI_PACKAGE = "cryptography_vectors" 14PYPI_PACKAGE = "cryptography_vectors"
15UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 15UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
diff --git a/meta/recipes-devtools/python/python3-cryptography.bb b/meta/recipes-devtools/python/python3-cryptography.bb
index e40e62f626..f41e13f4a1 100644
--- a/meta/recipes-devtools/python/python3-cryptography.bb
+++ b/meta/recipes-devtools/python/python3-cryptography.bb
@@ -11,7 +11,7 @@ LDSHARED += "-pthread"
11# NOTE: Make sure to keep this recipe at the same version as python3-cryptography-vectors 11# NOTE: Make sure to keep this recipe at the same version as python3-cryptography-vectors
12# Upgrade both recipes at the same time 12# Upgrade both recipes at the same time
13require python3-cryptography-common.inc 13require python3-cryptography-common.inc
14SRC_URI[sha256sum] = "ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899" 14SRC_URI[sha256sum] = "7405ade85c83c37682c8fe65554759800a4a8c54b2d96e0f8ad114d31b808d57"
15 15
16SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \ 16SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
17 file://check-memfree.py \ 17 file://check-memfree.py \
diff --git a/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch b/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
index 42876e3489..e238717208 100644
--- a/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
+++ b/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
@@ -1,4 +1,4 @@
1From 7da554d52bfed4370766d5afd94bc7865791231d Mon Sep 17 00:00:00 2001 1From baa3c56b87ceaea331811a0a4642991cbb12e6ea Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com> 2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Tue, 17 May 2022 17:22:48 +0800 3Date: Tue, 17 May 2022 17:22:48 +0800
4Subject: [PATCH] pyproject.toml: remove --benchmark-disable option 4Subject: [PATCH] pyproject.toml: remove --benchmark-disable option
@@ -26,7 +26,7 @@ Signed-off-by: Tim Orling <tim.orling@konsulko.com>
26 1 file changed, 1 insertion(+), 1 deletion(-) 26 1 file changed, 1 insertion(+), 1 deletion(-)
27 27
28diff --git a/pyproject.toml b/pyproject.toml 28diff --git a/pyproject.toml b/pyproject.toml
29index d94a1f5..c0f87a7 100644 29index d9ef704..878b720 100644
30--- a/pyproject.toml 30--- a/pyproject.toml
31+++ b/pyproject.toml 31+++ b/pyproject.toml
32@@ -129,7 +129,7 @@ exclude = [ 32@@ -129,7 +129,7 @@ exclude = [
diff --git a/meta/recipes-devtools/python/python3-dbus_1.4.0.bb b/meta/recipes-devtools/python/python3-dbus_1.4.0.bb
index 057c97f656..2854eda30a 100644
--- a/meta/recipes-devtools/python/python3-dbus_1.4.0.bb
+++ b/meta/recipes-devtools/python/python3-dbus_1.4.0.bb
@@ -9,7 +9,7 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.ta
9 9
10SRC_URI[sha256sum] = "c36b28f10ffcc8f1f798aca973bcc132f91f33eb9b6b8904381b4077766043d5" 10SRC_URI[sha256sum] = "c36b28f10ffcc8f1f798aca973bcc132f91f33eb9b6b8904381b4077766043d5"
11 11
12S = "${WORKDIR}/dbus-python-${PV}" 12S = "${UNPACKDIR}/dbus-python-${PV}"
13 13
14inherit setuptools3-base meson pkgconfig 14inherit setuptools3-base meson pkgconfig
15 15
diff --git a/meta/recipes-devtools/python/python3-dtc_1.7.2.bb b/meta/recipes-devtools/python/python3-dtc_1.7.2.bb
index 99ff0cca87..9525c340cd 100644
--- a/meta/recipes-devtools/python/python3-dtc_1.7.2.bb
+++ b/meta/recipes-devtools/python/python3-dtc_1.7.2.bb
@@ -15,8 +15,6 @@ LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c9
15 15
16SRCREV = "2d10aa2afe35527728db30b35ec491ecb6959e5c" 16SRCREV = "2d10aa2afe35527728db30b35ec491ecb6959e5c"
17 17
18S = "${WORKDIR}/git"
19
20PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl" 18PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
21 19
22inherit setuptools3 pkgconfig 20inherit setuptools3 pkgconfig
diff --git a/meta/recipes-devtools/python/python3-mako_1.3.10.bb b/meta/recipes-devtools/python/python3-mako_1.3.10.bb
index 4facce9233..2d937dc184 100644
--- a/meta/recipes-devtools/python/python3-mako_1.3.10.bb
+++ b/meta/recipes-devtools/python/python3-mako_1.3.10.bb
@@ -8,8 +8,6 @@ PYPI_PACKAGE = "mako"
8 8
9inherit pypi python_setuptools_build_meta ptest-python-pytest 9inherit pypi python_setuptools_build_meta ptest-python-pytest
10 10
11
12
13SRC_URI[sha256sum] = "99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28" 11SRC_URI[sha256sum] = "99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28"
14 12
15RDEPENDS:${PN} = "python3-html \ 13RDEPENDS:${PN} = "python3-html \
diff --git a/meta/recipes-devtools/python/python3-maturin-crates.inc b/meta/recipes-devtools/python/python3-maturin-crates.inc
index 5c939a09a8..28551ff4ca 100644
--- a/meta/recipes-devtools/python/python3-maturin-crates.inc
+++ b/meta/recipes-devtools/python/python3-maturin-crates.inc
@@ -33,10 +33,10 @@ SRC_URI += " \
33 crate://crates.io/cargo-config2/0.1.26 \ 33 crate://crates.io/cargo-config2/0.1.26 \
34 crate://crates.io/cargo-options/0.7.4 \ 34 crate://crates.io/cargo-options/0.7.4 \
35 crate://crates.io/cargo-platform/0.1.8 \ 35 crate://crates.io/cargo-platform/0.1.8 \
36 crate://crates.io/cargo-xwin/0.18.4 \ 36 crate://crates.io/cargo-xwin/0.18.6 \
37 crate://crates.io/cargo-zigbuild/0.20.0 \ 37 crate://crates.io/cargo-zigbuild/0.20.0 \
38 crate://crates.io/cargo_metadata/0.19.0 \ 38 crate://crates.io/cargo_metadata/0.19.0 \
39 crate://crates.io/cbindgen/0.28.0 \ 39 crate://crates.io/cbindgen/0.29.0 \
40 crate://crates.io/cc/1.2.16 \ 40 crate://crates.io/cc/1.2.16 \
41 crate://crates.io/cfb/0.10.0 \ 41 crate://crates.io/cfb/0.10.0 \
42 crate://crates.io/cfg-if/1.0.0 \ 42 crate://crates.io/cfg-if/1.0.0 \
@@ -105,12 +105,12 @@ SRC_URI += " \
105 crate://crates.io/futures-util/0.3.31 \ 105 crate://crates.io/futures-util/0.3.31 \
106 crate://crates.io/generic-array/0.14.7 \ 106 crate://crates.io/generic-array/0.14.7 \
107 crate://crates.io/getrandom/0.2.15 \ 107 crate://crates.io/getrandom/0.2.15 \
108 crate://crates.io/getrandom/0.3.3 \
108 crate://crates.io/glob/0.3.1 \ 109 crate://crates.io/glob/0.3.1 \
109 crate://crates.io/globset/0.4.15 \ 110 crate://crates.io/globset/0.4.16 \
110 crate://crates.io/goblin/0.9.2 \ 111 crate://crates.io/goblin/0.9.2 \
111 crate://crates.io/hashbrown/0.14.5 \ 112 crate://crates.io/hashbrown/0.14.5 \
112 crate://crates.io/hashbrown/0.15.2 \ 113 crate://crates.io/hashbrown/0.15.2 \
113 crate://crates.io/heck/0.4.1 \
114 crate://crates.io/heck/0.5.0 \ 114 crate://crates.io/heck/0.5.0 \
115 crate://crates.io/home/0.5.9 \ 115 crate://crates.io/home/0.5.9 \
116 crate://crates.io/humantime/2.1.0 \ 116 crate://crates.io/humantime/2.1.0 \
@@ -131,15 +131,17 @@ SRC_URI += " \
131 crate://crates.io/indexmap/2.6.0 \ 131 crate://crates.io/indexmap/2.6.0 \
132 crate://crates.io/indicatif/0.17.9 \ 132 crate://crates.io/indicatif/0.17.9 \
133 crate://crates.io/indoc/2.0.5 \ 133 crate://crates.io/indoc/2.0.5 \
134 crate://crates.io/insta/1.43.1 \
134 crate://crates.io/is_terminal_polyfill/1.70.0 \ 135 crate://crates.io/is_terminal_polyfill/1.70.0 \
135 crate://crates.io/itertools/0.12.1 \ 136 crate://crates.io/itertools/0.12.1 \
136 crate://crates.io/itertools/0.13.0 \ 137 crate://crates.io/itertools/0.13.0 \
137 crate://crates.io/itoa/1.0.11 \ 138 crate://crates.io/itoa/1.0.11 \
139 crate://crates.io/jobserver/0.1.33 \
138 crate://crates.io/js-sys/0.3.73 \ 140 crate://crates.io/js-sys/0.3.73 \
139 crate://crates.io/keyring/2.3.3 \ 141 crate://crates.io/keyring/2.3.3 \
140 crate://crates.io/lazy_static/1.4.0 \ 142 crate://crates.io/lazy_static/1.4.0 \
141 crate://crates.io/lddtree/0.3.7 \ 143 crate://crates.io/lddtree/0.3.7 \
142 crate://crates.io/libc/0.2.167 \ 144 crate://crates.io/libc/0.2.172 \
143 crate://crates.io/libmimalloc-sys/0.1.39 \ 145 crate://crates.io/libmimalloc-sys/0.1.39 \
144 crate://crates.io/libredox/0.1.3 \ 146 crate://crates.io/libredox/0.1.3 \
145 crate://crates.io/linux-keyutils/0.2.4 \ 147 crate://crates.io/linux-keyutils/0.2.4 \
@@ -148,6 +150,7 @@ SRC_URI += " \
148 crate://crates.io/lock_api/0.4.12 \ 150 crate://crates.io/lock_api/0.4.12 \
149 crate://crates.io/lockfree-object-pool/0.1.6 \ 151 crate://crates.io/lockfree-object-pool/0.1.6 \
150 crate://crates.io/log/0.4.22 \ 152 crate://crates.io/log/0.4.22 \
153 crate://crates.io/lzma-rs/0.3.0 \
151 crate://crates.io/lzma-sys/0.1.20 \ 154 crate://crates.io/lzma-sys/0.1.20 \
152 crate://crates.io/lzxd/0.2.5 \ 155 crate://crates.io/lzxd/0.2.5 \
153 crate://crates.io/mailparse/0.15.0 \ 156 crate://crates.io/mailparse/0.15.0 \
@@ -187,7 +190,7 @@ SRC_URI += " \
187 crate://crates.io/pin-utils/0.1.0 \ 190 crate://crates.io/pin-utils/0.1.0 \
188 crate://crates.io/pkg-config/0.3.30 \ 191 crate://crates.io/pkg-config/0.3.30 \
189 crate://crates.io/plain/0.2.3 \ 192 crate://crates.io/plain/0.2.3 \
190 crate://crates.io/platform-info/2.0.3 \ 193 crate://crates.io/platform-info/2.0.5 \
191 crate://crates.io/portable-atomic/1.6.0 \ 194 crate://crates.io/portable-atomic/1.6.0 \
192 crate://crates.io/powerfmt/0.2.0 \ 195 crate://crates.io/powerfmt/0.2.0 \
193 crate://crates.io/ppv-lite86/0.2.17 \ 196 crate://crates.io/ppv-lite86/0.2.17 \
@@ -195,10 +198,11 @@ SRC_URI += " \
195 crate://crates.io/proc-macro-crate/3.1.0 \ 198 crate://crates.io/proc-macro-crate/3.1.0 \
196 crate://crates.io/proc-macro2/1.0.92 \ 199 crate://crates.io/proc-macro2/1.0.92 \
197 crate://crates.io/psm/0.1.21 \ 200 crate://crates.io/psm/0.1.21 \
198 crate://crates.io/pyproject-toml/0.13.4 \ 201 crate://crates.io/pyproject-toml/0.13.5 \
199 crate://crates.io/python-pkginfo/0.6.5 \ 202 crate://crates.io/python-pkginfo/0.6.5 \
200 crate://crates.io/quote/1.0.37 \ 203 crate://crates.io/quote/1.0.37 \
201 crate://crates.io/quoted_printable/0.5.0 \ 204 crate://crates.io/quoted_printable/0.5.0 \
205 crate://crates.io/r-efi/5.2.0 \
202 crate://crates.io/rand/0.8.5 \ 206 crate://crates.io/rand/0.8.5 \
203 crate://crates.io/rand_chacha/0.3.1 \ 207 crate://crates.io/rand_chacha/0.3.1 \
204 crate://crates.io/rand_core/0.6.4 \ 208 crate://crates.io/rand_core/0.6.4 \
@@ -268,9 +272,9 @@ SRC_URI += " \
268 crate://crates.io/terminal_size/0.3.0 \ 272 crate://crates.io/terminal_size/0.3.0 \
269 crate://crates.io/textwrap/0.16.1 \ 273 crate://crates.io/textwrap/0.16.1 \
270 crate://crates.io/thiserror/1.0.69 \ 274 crate://crates.io/thiserror/1.0.69 \
271 crate://crates.io/thiserror/2.0.3 \ 275 crate://crates.io/thiserror/2.0.12 \
272 crate://crates.io/thiserror-impl/1.0.69 \ 276 crate://crates.io/thiserror-impl/1.0.69 \
273 crate://crates.io/thiserror-impl/2.0.3 \ 277 crate://crates.io/thiserror-impl/2.0.12 \
274 crate://crates.io/thread_local/1.1.8 \ 278 crate://crates.io/thread_local/1.1.8 \
275 crate://crates.io/time/0.3.36 \ 279 crate://crates.io/time/0.3.36 \
276 crate://crates.io/time-core/0.1.2 \ 280 crate://crates.io/time-core/0.1.2 \
@@ -312,6 +316,7 @@ SRC_URI += " \
312 crate://crates.io/wait-timeout/0.2.0 \ 316 crate://crates.io/wait-timeout/0.2.0 \
313 crate://crates.io/walkdir/2.5.0 \ 317 crate://crates.io/walkdir/2.5.0 \
314 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ 318 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
319 crate://crates.io/wasi/0.14.2+wasi-0.2.4 \
315 crate://crates.io/wasm-bindgen/0.2.96 \ 320 crate://crates.io/wasm-bindgen/0.2.96 \
316 crate://crates.io/wasm-bindgen-backend/0.2.96 \ 321 crate://crates.io/wasm-bindgen-backend/0.2.96 \
317 crate://crates.io/wasm-bindgen-macro/0.2.96 \ 322 crate://crates.io/wasm-bindgen-macro/0.2.96 \
@@ -347,6 +352,7 @@ SRC_URI += " \
347 crate://crates.io/winnow/0.5.40 \ 352 crate://crates.io/winnow/0.5.40 \
348 crate://crates.io/winnow/0.6.20 \ 353 crate://crates.io/winnow/0.6.20 \
349 crate://crates.io/winsafe/0.0.19 \ 354 crate://crates.io/winsafe/0.0.19 \
355 crate://crates.io/wit-bindgen-rt/0.39.0 \
350 crate://crates.io/write16/1.0.0 \ 356 crate://crates.io/write16/1.0.0 \
351 crate://crates.io/writeable/0.5.5 \ 357 crate://crates.io/writeable/0.5.5 \
352 crate://crates.io/xattr/1.3.1 \ 358 crate://crates.io/xattr/1.3.1 \
@@ -364,6 +370,9 @@ SRC_URI += " \
364 crate://crates.io/zerovec-derive/0.10.3 \ 370 crate://crates.io/zerovec-derive/0.10.3 \
365 crate://crates.io/zip/2.3.0 \ 371 crate://crates.io/zip/2.3.0 \
366 crate://crates.io/zopfli/0.8.1 \ 372 crate://crates.io/zopfli/0.8.1 \
373 crate://crates.io/zstd/0.13.3 \
374 crate://crates.io/zstd-safe/7.2.4 \
375 crate://crates.io/zstd-sys/2.0.15+zstd.1.5.7 \
367" 376"
368 377
369SRC_URI[adler2-2.0.0.sha256sum] = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 378SRC_URI[adler2-2.0.0.sha256sum] = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
@@ -397,10 +406,10 @@ SRC_URI[camino-1.1.9.sha256sum] = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc39808
397SRC_URI[cargo-config2-0.1.26.sha256sum] = "d83ce0be8bd1479e5de6202def660e6c7e27e4e0599bffa4fed05bd380ec2ede" 406SRC_URI[cargo-config2-0.1.26.sha256sum] = "d83ce0be8bd1479e5de6202def660e6c7e27e4e0599bffa4fed05bd380ec2ede"
398SRC_URI[cargo-options-0.7.4.sha256sum] = "f3540247c0a37a76eb324acc238dc617786ea22c43b95da560c82a8f2714321f" 407SRC_URI[cargo-options-0.7.4.sha256sum] = "f3540247c0a37a76eb324acc238dc617786ea22c43b95da560c82a8f2714321f"
399SRC_URI[cargo-platform-0.1.8.sha256sum] = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" 408SRC_URI[cargo-platform-0.1.8.sha256sum] = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
400SRC_URI[cargo-xwin-0.18.4.sha256sum] = "60f1954e4ffa0f4c47b3df5e6e9508706d8dcaa56152cd672dcee02930ba0326" 409SRC_URI[cargo-xwin-0.18.6.sha256sum] = "5dff83aad332bd6ee29072dd874b48892cd22c58e233c25735eb4417b3999685"
401SRC_URI[cargo-zigbuild-0.20.0.sha256sum] = "3f6e9e856390d5b0a859acaeda16528f8a61c964bdb894c3216c254908f1c2ea" 410SRC_URI[cargo-zigbuild-0.20.0.sha256sum] = "3f6e9e856390d5b0a859acaeda16528f8a61c964bdb894c3216c254908f1c2ea"
402SRC_URI[cargo_metadata-0.19.0.sha256sum] = "afc309ed89476c8957c50fb818f56fe894db857866c3e163335faa91dc34eb85" 411SRC_URI[cargo_metadata-0.19.0.sha256sum] = "afc309ed89476c8957c50fb818f56fe894db857866c3e163335faa91dc34eb85"
403SRC_URI[cbindgen-0.28.0.sha256sum] = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff" 412SRC_URI[cbindgen-0.29.0.sha256sum] = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684"
404SRC_URI[cc-1.2.16.sha256sum] = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" 413SRC_URI[cc-1.2.16.sha256sum] = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
405SRC_URI[cfb-0.10.0.sha256sum] = "d8a4f8e55be323b378facfcf1f06aa97f6ec17cf4ac84fb17325093aaf62da41" 414SRC_URI[cfb-0.10.0.sha256sum] = "d8a4f8e55be323b378facfcf1f06aa97f6ec17cf4ac84fb17325093aaf62da41"
406SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 415SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
@@ -469,12 +478,12 @@ SRC_URI[futures-timer-3.0.3.sha256sum] = "f288b0a4f20f9a56b5d1da57e2227c661b7b16
469SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 478SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
470SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 479SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
471SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 480SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
481SRC_URI[getrandom-0.3.3.sha256sum] = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
472SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 482SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
473SRC_URI[globset-0.4.15.sha256sum] = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" 483SRC_URI[globset-0.4.16.sha256sum] = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5"
474SRC_URI[goblin-0.9.2.sha256sum] = "53ab3f32d1d77146981dea5d6b1e8fe31eedcb7013e5e00d6ccd1259a4b4d923" 484SRC_URI[goblin-0.9.2.sha256sum] = "53ab3f32d1d77146981dea5d6b1e8fe31eedcb7013e5e00d6ccd1259a4b4d923"
475SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 485SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
476SRC_URI[hashbrown-0.15.2.sha256sum] = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 486SRC_URI[hashbrown-0.15.2.sha256sum] = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
477SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
478SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 487SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
479SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 488SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
480SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 489SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
@@ -495,15 +504,17 @@ SRC_URI[ignore-0.4.23.sha256sum] = "6d89fd380afde86567dfba715db065673989d6253f42
495SRC_URI[indexmap-2.6.0.sha256sum] = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 504SRC_URI[indexmap-2.6.0.sha256sum] = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
496SRC_URI[indicatif-0.17.9.sha256sum] = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" 505SRC_URI[indicatif-0.17.9.sha256sum] = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281"
497SRC_URI[indoc-2.0.5.sha256sum] = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" 506SRC_URI[indoc-2.0.5.sha256sum] = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
507SRC_URI[insta-1.43.1.sha256sum] = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371"
498SRC_URI[is_terminal_polyfill-1.70.0.sha256sum] = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" 508SRC_URI[is_terminal_polyfill-1.70.0.sha256sum] = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
499SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 509SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
500SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 510SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
501SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 511SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
512SRC_URI[jobserver-0.1.33.sha256sum] = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
502SRC_URI[js-sys-0.3.73.sha256sum] = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" 513SRC_URI[js-sys-0.3.73.sha256sum] = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9"
503SRC_URI[keyring-2.3.3.sha256sum] = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0" 514SRC_URI[keyring-2.3.3.sha256sum] = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0"
504SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 515SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
505SRC_URI[lddtree-0.3.7.sha256sum] = "e0779ac94bd7b6ab781fa12388dbf79ac45ec1fa433e7d25521753be8227b08e" 516SRC_URI[lddtree-0.3.7.sha256sum] = "e0779ac94bd7b6ab781fa12388dbf79ac45ec1fa433e7d25521753be8227b08e"
506SRC_URI[libc-0.2.167.sha256sum] = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" 517SRC_URI[libc-0.2.172.sha256sum] = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
507SRC_URI[libmimalloc-sys-0.1.39.sha256sum] = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" 518SRC_URI[libmimalloc-sys-0.1.39.sha256sum] = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44"
508SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 519SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
509SRC_URI[linux-keyutils-0.2.4.sha256sum] = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" 520SRC_URI[linux-keyutils-0.2.4.sha256sum] = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e"
@@ -512,6 +523,7 @@ SRC_URI[litemap-0.7.3.sha256sum] = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e
512SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 523SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
513SRC_URI[lockfree-object-pool-0.1.6.sha256sum] = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" 524SRC_URI[lockfree-object-pool-0.1.6.sha256sum] = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e"
514SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 525SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
526SRC_URI[lzma-rs-0.3.0.sha256sum] = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e"
515SRC_URI[lzma-sys-0.1.20.sha256sum] = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" 527SRC_URI[lzma-sys-0.1.20.sha256sum] = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27"
516SRC_URI[lzxd-0.2.5.sha256sum] = "5de7336a183103429ad66d11d56d8bdc9c4a2916f6b85a8f11e5b127bde12001" 528SRC_URI[lzxd-0.2.5.sha256sum] = "5de7336a183103429ad66d11d56d8bdc9c4a2916f6b85a8f11e5b127bde12001"
517SRC_URI[mailparse-0.15.0.sha256sum] = "3da03d5980411a724e8aaf7b61a7b5e386ec55a7fb49ee3d0ff79efc7e5e7c7e" 529SRC_URI[mailparse-0.15.0.sha256sum] = "3da03d5980411a724e8aaf7b61a7b5e386ec55a7fb49ee3d0ff79efc7e5e7c7e"
@@ -551,7 +563,7 @@ SRC_URI[pin-project-lite-0.2.15.sha256sum] = "915a1e146535de9163f3987b8944ed8cf4
551SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 563SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
552SRC_URI[pkg-config-0.3.30.sha256sum] = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 564SRC_URI[pkg-config-0.3.30.sha256sum] = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
553SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 565SRC_URI[plain-0.2.3.sha256sum] = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
554SRC_URI[platform-info-2.0.3.sha256sum] = "d5ff316b9c4642feda973c18f0decd6c8b0919d4722566f6e4337cce0dd88217" 566SRC_URI[platform-info-2.0.5.sha256sum] = "7539aeb3fdd8cb4f6a331307cf71a1039cee75e94e8a71725b9484f4a0d9451a"
555SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" 567SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
556SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 568SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
557SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 569SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
@@ -559,10 +571,11 @@ SRC_URI[pretty_assertions-1.4.1.sha256sum] = "3ae130e2f271fbc2ac3a40fb1d07180839
559SRC_URI[proc-macro-crate-3.1.0.sha256sum] = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" 571SRC_URI[proc-macro-crate-3.1.0.sha256sum] = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
560SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 572SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
561SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" 573SRC_URI[psm-0.1.21.sha256sum] = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
562SRC_URI[pyproject-toml-0.13.4.sha256sum] = "643af57c3f36ba90a8b53e972727d8092f7408a9ebfbaf4c3d2c17b07c58d835" 574SRC_URI[pyproject-toml-0.13.5.sha256sum] = "7b0f6160dc48298b9260d9b958ad1d7f96f6cd0b9df200b22329204e09334663"
563SRC_URI[python-pkginfo-0.6.5.sha256sum] = "c21f58880fc45e91d29b2f639ab4051aaa6a2b054534c2d343a953347d0dd600" 575SRC_URI[python-pkginfo-0.6.5.sha256sum] = "c21f58880fc45e91d29b2f639ab4051aaa6a2b054534c2d343a953347d0dd600"
564SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 576SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
565SRC_URI[quoted_printable-0.5.0.sha256sum] = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0" 577SRC_URI[quoted_printable-0.5.0.sha256sum] = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
578SRC_URI[r-efi-5.2.0.sha256sum] = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
566SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 579SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
567SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 580SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
568SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 581SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
@@ -632,9 +645,9 @@ SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c7
632SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" 645SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
633SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" 646SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
634SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 647SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
635SRC_URI[thiserror-2.0.3.sha256sum] = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" 648SRC_URI[thiserror-2.0.12.sha256sum] = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
636SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 649SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
637SRC_URI[thiserror-impl-2.0.3.sha256sum] = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" 650SRC_URI[thiserror-impl-2.0.12.sha256sum] = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
638SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 651SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
639SRC_URI[time-0.3.36.sha256sum] = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 652SRC_URI[time-0.3.36.sha256sum] = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
640SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 653SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
@@ -676,6 +689,7 @@ SRC_URI[versions-6.2.0.sha256sum] = "38a8931f8d167b6448076020e70b9de46dcf5ea1731
676SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" 689SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
677SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 690SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
678SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 691SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
692SRC_URI[wasi-0.14.2+wasi-0.2.4.sha256sum] = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
679SRC_URI[wasm-bindgen-0.2.96.sha256sum] = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" 693SRC_URI[wasm-bindgen-0.2.96.sha256sum] = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b"
680SRC_URI[wasm-bindgen-backend-0.2.96.sha256sum] = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" 694SRC_URI[wasm-bindgen-backend-0.2.96.sha256sum] = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283"
681SRC_URI[wasm-bindgen-macro-0.2.96.sha256sum] = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" 695SRC_URI[wasm-bindgen-macro-0.2.96.sha256sum] = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981"
@@ -711,6 +725,7 @@ SRC_URI[windows_x86_64_msvc-0.52.5.sha256sum] = "bec47e5bfd1bff0eeaf6d8b485cc107
711SRC_URI[winnow-0.5.40.sha256sum] = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 725SRC_URI[winnow-0.5.40.sha256sum] = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
712SRC_URI[winnow-0.6.20.sha256sum] = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 726SRC_URI[winnow-0.6.20.sha256sum] = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
713SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" 727SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
728SRC_URI[wit-bindgen-rt-0.39.0.sha256sum] = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
714SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 729SRC_URI[write16-1.0.0.sha256sum] = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
715SRC_URI[writeable-0.5.5.sha256sum] = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 730SRC_URI[writeable-0.5.5.sha256sum] = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
716SRC_URI[xattr-1.3.1.sha256sum] = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" 731SRC_URI[xattr-1.3.1.sha256sum] = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
@@ -728,3 +743,6 @@ SRC_URI[zerovec-0.10.4.sha256sum] = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c
728SRC_URI[zerovec-derive-0.10.3.sha256sum] = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 743SRC_URI[zerovec-derive-0.10.3.sha256sum] = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
729SRC_URI[zip-2.3.0.sha256sum] = "84e9a772a54b54236b9b744aaaf8d7be01b4d6e99725523cb82cb32d1c81b1d7" 744SRC_URI[zip-2.3.0.sha256sum] = "84e9a772a54b54236b9b744aaaf8d7be01b4d6e99725523cb82cb32d1c81b1d7"
730SRC_URI[zopfli-0.8.1.sha256sum] = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" 745SRC_URI[zopfli-0.8.1.sha256sum] = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946"
746SRC_URI[zstd-0.13.3.sha256sum] = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
747SRC_URI[zstd-safe-7.2.4.sha256sum] = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
748SRC_URI[zstd-sys-2.0.15+zstd.1.5.7.sha256sum] = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237"
diff --git a/meta/recipes-devtools/python/python3-maturin/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch b/meta/recipes-devtools/python/python3-maturin/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch
deleted file mode 100644
index aceefa7967..0000000000
--- a/meta/recipes-devtools/python/python3-maturin/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch
+++ /dev/null
@@ -1,110 +0,0 @@
1From 4b439b0953573e0383da7e092b1f516ba21f3398 Mon Sep 17 00:00:00 2001
2From: Dan Gohman <dev@sunfishcode.online>
3Date: Sun, 6 Apr 2025 05:22:49 -0700
4Subject: [PATCH] Define Linux ioctl codes on more architectures.
5
6Define ioctl codes including `FICLONE` and `FS_IOC32_GETVERSION` using
7`_IOR` and `_IOW` so that they're automatically supported on all
8architectures, including riscv32gc-unknown-linux-gnu.
9
10Upstream-Status: Backport [https://github.com/rust-lang/libc/pull/4382/]
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/unix/linux_like/linux/arch/generic/mod.rs | 75 ++++---------------
14 1 file changed, 15 insertions(+), 60 deletions(-)
15
16--- a/src/unix/linux_like/linux/arch/generic/mod.rs
17+++ b/src/unix/linux_like/linux/arch/generic/mod.rs
18@@ -1,5 +1,5 @@
19 use crate::prelude::*;
20-use crate::Ioctl;
21+use crate::{Ioctl, _IOR, _IOW};
22
23 s! {
24 pub struct termios2 {
25@@ -116,21 +116,8 @@ cfg_if! {
26 // pub const SO_PREFER_BUSY_POLL: c_int = 69;
27 // pub const SO_BUSY_POLL_BUDGET: c_int = 70;
28
29-cfg_if! {
30- if #[cfg(any(
31- target_arch = "x86",
32- target_arch = "x86_64",
33- target_arch = "arm",
34- target_arch = "aarch64",
35- target_arch = "riscv64",
36- target_arch = "s390x",
37- target_arch = "csky",
38- target_arch = "loongarch64"
39- ))] {
40- pub const FICLONE: c_ulong = 0x40049409;
41- pub const FICLONERANGE: c_ulong = 0x4020940D;
42- }
43-}
44+pub const FICLONE: Ioctl = _IOW::<c_int>(0x94, 9) as Ioctl;
45+pub const FICLONERANGE: Ioctl = _IOW::<crate::file_clone_range>(0x94, 13) as Ioctl;
46
47 // Defined in unix/linux_like/mod.rs
48 // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP;
49@@ -248,49 +235,18 @@ pub const TUNGETVNETBE: Ioctl = 0x800454
50 pub const TUNSETSTEERINGEBPF: Ioctl = 0x800454e0;
51 pub const TUNSETFILTEREBPF: Ioctl = 0x800454e1;
52
53-cfg_if! {
54- // Those type are constructed using the _IOC macro
55- // DD-SS_SSSS_SSSS_SSSS-TTTT_TTTT-NNNN_NNNN
56- // where D stands for direction (either None (00), Read (01) or Write (11))
57- // where S stands for size (int, long, struct...)
58- // where T stands for type ('f','v','X'...)
59- // where N stands for NR (NumbeR)
60- if #[cfg(any(
61- target_arch = "x86",
62- target_arch = "arm",
63- target_arch = "csky"
64- ))] {
65- pub const FS_IOC_GETFLAGS: Ioctl = 0x80046601;
66- pub const FS_IOC_SETFLAGS: Ioctl = 0x40046602;
67- pub const FS_IOC_GETVERSION: Ioctl = 0x80047601;
68- pub const FS_IOC_SETVERSION: Ioctl = 0x40047602;
69- pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601;
70- pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602;
71- pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601;
72- pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602;
73- pub const TUNATTACHFILTER: Ioctl = 0x400854d5;
74- pub const TUNDETACHFILTER: Ioctl = 0x400854d6;
75- pub const TUNGETFILTER: Ioctl = 0x800854db;
76- } else if #[cfg(any(
77- target_arch = "x86_64",
78- target_arch = "riscv64",
79- target_arch = "aarch64",
80- target_arch = "s390x",
81- target_arch = "loongarch64"
82- ))] {
83- pub const FS_IOC_GETFLAGS: Ioctl = 0x80086601;
84- pub const FS_IOC_SETFLAGS: Ioctl = 0x40086602;
85- pub const FS_IOC_GETVERSION: Ioctl = 0x80087601;
86- pub const FS_IOC_SETVERSION: Ioctl = 0x40087602;
87- pub const FS_IOC32_GETFLAGS: Ioctl = 0x80046601;
88- pub const FS_IOC32_SETFLAGS: Ioctl = 0x40046602;
89- pub const FS_IOC32_GETVERSION: Ioctl = 0x80047601;
90- pub const FS_IOC32_SETVERSION: Ioctl = 0x40047602;
91- pub const TUNATTACHFILTER: Ioctl = 0x401054d5;
92- pub const TUNDETACHFILTER: Ioctl = 0x401054d6;
93- pub const TUNGETFILTER: Ioctl = 0x801054db;
94- }
95-}
96+pub const FS_IOC_GETFLAGS: Ioctl = _IOR::<c_long>('f' as u32, 1) as Ioctl;
97+pub const FS_IOC_SETFLAGS: Ioctl = _IOW::<c_long>('f' as u32, 2) as Ioctl;
98+pub const FS_IOC_GETVERSION: Ioctl = _IOR::<c_long>('v' as u32, 1) as Ioctl;
99+pub const FS_IOC_SETVERSION: Ioctl = _IOW::<c_long>('v' as u32, 2) as Ioctl;
100+pub const FS_IOC32_GETFLAGS: Ioctl = _IOR::<c_int>('f' as u32, 1) as Ioctl;
101+pub const FS_IOC32_SETFLAGS: Ioctl = _IOW::<c_int>('f' as u32, 2) as Ioctl;
102+pub const FS_IOC32_GETVERSION: Ioctl = _IOR::<c_int>('v' as u32, 1) as Ioctl;
103+pub const FS_IOC32_SETVERSION: Ioctl = _IOW::<c_int>('v' as u32, 2) as Ioctl;
104+
105+pub const TUNATTACHFILTER: Ioctl = _IOW::<crate::sock_fprog>('T' as u32, 213) as Ioctl;
106+pub const TUNDETACHFILTER: Ioctl = _IOW::<crate::sock_fprog>('T' as u32, 214) as Ioctl;
107+pub const TUNGETFILTER: Ioctl = _IOR::<crate::sock_fprog>('T' as u32, 219) as Ioctl;
108
109 cfg_if! {
110 if #[cfg(any(target_arch = "arm", target_arch = "s390x"))] {
diff --git a/meta/recipes-devtools/python/python3-maturin_1.8.6.bb b/meta/recipes-devtools/python/python3-maturin_1.9.0.bb
index ab509331c3..e4147b9321 100644
--- a/meta/recipes-devtools/python/python3-maturin_1.8.6.bb
+++ b/meta/recipes-devtools/python/python3-maturin_1.9.0.bb
@@ -5,11 +5,9 @@ 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
8# This is needed until Cargo.lock has libc-0.2.172+ 8SRC_URI[sha256sum] = "ccb9cb87f8df88d1bab8f49efe3fc77f0abb0639ea4b4ebf4f35549200d16b9e"
9SRC_URI += "file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${CARGO_VENDORING_DIRECTORY}/libc-0.2.167"
10SRC_URI[sha256sum] = "0e0dc2e0bfaa2e1bd238e0236cf8a2b7e2250ccaa29c1aa8d0e61fa664b0289d"
11 9
12S = "${WORKDIR}/maturin-${PV}" 10S = "${UNPACKDIR}/maturin-${PV}"
13 11
14CFLAGS += "-ffile-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home" 12CFLAGS += "-ffile-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home"
15 13
diff --git a/meta/recipes-devtools/python/python3-numpy_2.3.0.bb b/meta/recipes-devtools/python/python3-numpy_2.3.0.bb
index e77a4ba5c3..34a14f7ca6 100644
--- a/meta/recipes-devtools/python/python3-numpy_2.3.0.bb
+++ b/meta/recipes-devtools/python/python3-numpy_2.3.0.bb
@@ -19,7 +19,7 @@ UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
19 19
20inherit pkgconfig ptest python_mesonpy github-releases cython 20inherit pkgconfig ptest python_mesonpy github-releases cython
21 21
22S = "${WORKDIR}/numpy-${PV}" 22S = "${UNPACKDIR}/numpy-${PV}"
23 23
24PACKAGECONFIG[svml] = "-Ddisable-svml=false,-Ddisable-svml=true" 24PACKAGECONFIG[svml] = "-Ddisable-svml=false,-Ddisable-svml=true"
25 25
diff --git a/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
index 6e72c93741..11765b3cb3 100644
--- a/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
+++ b/meta/recipes-devtools/python/python3-pefile_2024.8.26.bb
@@ -8,7 +8,6 @@ inherit setuptools3 ptest-python-pytest
8SRCREV = "4b3b1e2e568a88d4f1897d694d684f23d9e270c4" 8SRCREV = "4b3b1e2e568a88d4f1897d694d684f23d9e270c4"
9SRC_URI = "git://github.com/erocarrera/pefile;branch=master;protocol=https \ 9SRC_URI = "git://github.com/erocarrera/pefile;branch=master;protocol=https \
10 file://run-ptest" 10 file://run-ptest"
11S = "${WORKDIR}/git"
12 11
13BBCLASSEXTEND = "native nativesdk" 12BBCLASSEXTEND = "native nativesdk"
14 13
diff --git a/meta/recipes-devtools/python/python3-psutil_7.0.0.bb b/meta/recipes-devtools/python/python3-psutil_7.0.0.bb
index 22ead67ad9..a2af198083 100644
--- a/meta/recipes-devtools/python/python3-psutil_7.0.0.bb
+++ b/meta/recipes-devtools/python/python3-psutil_7.0.0.bb
@@ -14,7 +14,6 @@ FILES:${PN}-tests += " \
14 ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \ 14 ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \
15" 15"
16 16
17
18RDEPENDS:${PN} += " \ 17RDEPENDS:${PN} += " \
19 python3-shell \ 18 python3-shell \
20 python3-threading \ 19 python3-threading \
diff --git a/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb b/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb
index c610f3eae9..498c4db586 100644
--- a/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb
+++ b/meta/recipes-devtools/python/python3-pycairo_1.28.0.bb
@@ -15,7 +15,7 @@ GITHUB_BASE_URI = "https://github.com/pygobject/pycairo/releases/"
15 15
16SRC_URI[sha256sum] = "26ec5c6126781eb167089a123919f87baa2740da2cca9098be8b3a6b91cc5fbc" 16SRC_URI[sha256sum] = "26ec5c6126781eb167089a123919f87baa2740da2cca9098be8b3a6b91cc5fbc"
17 17
18S = "${WORKDIR}/pycairo-${PV}" 18S = "${UNPACKDIR}/pycairo-${PV}"
19 19
20inherit meson pkgconfig python3targetconfig github-releases 20inherit meson pkgconfig python3targetconfig github-releases
21 21
diff --git a/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb b/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb
index d0384fcce1..42b071ca08 100644
--- a/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb
+++ b/meta/recipes-devtools/python/python3-pygobject_3.52.3.bb
@@ -21,7 +21,7 @@ SRCNAME = "pygobject"
21SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.gz" 21SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.gz"
22SRC_URI[sha256sum] = "00e427d291e957462a8fad659a9f9c8be776ff82a8b76bdf402f1eaeec086d82" 22SRC_URI[sha256sum] = "00e427d291e957462a8fad659a9f9c8be776ff82a8b76bdf402f1eaeec086d82"
23 23
24S = "${WORKDIR}/${SRCNAME}-${PV}" 24S = "${UNPACKDIR}/${SRCNAME}-${PV}"
25 25
26PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}" 26PACKAGECONFIG ??= "${@bb.utils.contains_any('DISTRO_FEATURES', [ 'directfb', 'wayland', 'x11' ], 'cairo', '', d)}"
27 27
diff --git a/meta/recipes-devtools/python/python3-pytest-subtests_0.14.1.bb b/meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb
index 56cec25b86..58212bfb1c 100644
--- a/meta/recipes-devtools/python/python3-pytest-subtests_0.14.1.bb
+++ b/meta/recipes-devtools/python/python3-pytest-subtests_0.14.2.bb
@@ -7,7 +7,7 @@ BUGTRACKER = "https://github.com/pytest-dev/pytest-subtests/issues"
7LICENSE = "MIT" 7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1"
9 9
10SRC_URI[sha256sum] = "350c00adc36c3aff676a66135c81aed9e2182e15f6c3ec8721366918bbbf7580" 10SRC_URI[sha256sum] = "7154a8665fd528ee70a76d00216a44d139dc3c9c83521a0f779f7b0ad4f800de"
11 11
12PYPI_PACKAGE = "pytest_subtests" 12PYPI_PACKAGE = "pytest_subtests"
13UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 13UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
diff --git a/meta/recipes-devtools/python/python3-pytest_8.3.5.bb b/meta/recipes-devtools/python/python3-pytest_8.4.1.bb
index 4d4e8b8511..1f98b6d87e 100644
--- a/meta/recipes-devtools/python/python3-pytest_8.3.5.bb
+++ b/meta/recipes-devtools/python/python3-pytest_8.4.1.bb
@@ -5,21 +5,23 @@ 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] = "f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845" 8SRC_URI[sha256sum] = "7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"
9 9
10DEPENDS += "python3-setuptools-scm-native" 10DEPENDS += "python3-setuptools-scm-native"
11 11
12inherit update-alternatives pypi python_setuptools_build_meta 12inherit update-alternatives pypi python_setuptools_build_meta
13 13
14RDEPENDS:${PN} += " \ 14RDEPENDS:${PN} += " \
15 python3-xml \ 15 python3-colorama \
16 python3-debugger \ 16 python3-debugger \
17 python3-doctest \ 17 python3-doctest \
18 python3-iniconfig \ 18 python3-iniconfig \
19 python3-json \ 19 python3-json \
20 python3-packaging \ 20 python3-packaging \
21 python3-pluggy \ 21 python3-pluggy \
22 python3-pygments \
22 python3-tomllib \ 23 python3-tomllib \
24 python3-xml \
23" 25"
24 26
25ALTERNATIVE:${PN} += "py.test pytest" 27ALTERNATIVE:${PN} += "py.test pytest"
diff --git a/meta/recipes-devtools/python/python3-scons_4.9.1.bb b/meta/recipes-devtools/python/python3-scons_4.9.1.bb
index c849667970..1eac1ce5a9 100644
--- a/meta/recipes-devtools/python/python3-scons_4.9.1.bb
+++ b/meta/recipes-devtools/python/python3-scons_4.9.1.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "bacac880ba2e86d6a156c116e2f8f2bfa82b257046f3ac2666c85c53c6
8 8
9inherit pypi python_setuptools_build_meta 9inherit pypi python_setuptools_build_meta
10 10
11S = "${WORKDIR}/scons-${PV}" 11S = "${UNPACKDIR}/scons-${PV}"
12 12
13RDEPENDS:${PN}:class-target = "\ 13RDEPENDS:${PN}:class-target = "\
14 python3-core \ 14 python3-core \
diff --git a/meta/recipes-devtools/python/python3-setuptools-scm_8.2.1.bb b/meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb
index e35ef7c25e..70eaf312d3 100644
--- a/meta/recipes-devtools/python/python3-setuptools-scm_8.2.1.bb
+++ b/meta/recipes-devtools/python/python3-setuptools-scm_8.3.1.bb
@@ -6,7 +6,7 @@ argument or in a SCM managed file."
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2"
8 8
9SRC_URI[sha256sum] = "51cfdd1deefc9b8c08d1a61e940a59c4dec39eb6c285d33fa2f1b4be26c7874d" 9SRC_URI[sha256sum] = "3d555e92b75dacd037d32bafdf94f97af51ea29ae8c7b234cf94b7a5bd242a63"
10 10
11PYPI_PACKAGE = "setuptools_scm" 11PYPI_PACKAGE = "setuptools_scm"
12UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" 12UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
diff --git a/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch b/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch
index aab16eaab4..63bd523cb7 100644
--- a/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch
+++ b/meta/recipes-devtools/python/python3-smartypants/0001-Change-hash-bang-to-python3.patch
@@ -1,4 +1,4 @@
1From e299bcb05405ff49450307bf3002c1fac14a866c Mon Sep 17 00:00:00 2001 1From 7425e49166e6f16743ec9528697d06bc4103dc5e Mon Sep 17 00:00:00 2001
2From: Tim Orling <tim.orling@konsulko.com> 2From: Tim Orling <tim.orling@konsulko.com>
3Date: Sun, 20 Feb 2022 18:55:50 -0800 3Date: Sun, 20 Feb 2022 18:55:50 -0800
4Subject: [PATCH] Change hash bang to python3 4Subject: [PATCH] Change hash bang to python3
@@ -9,6 +9,9 @@ Upstream-Status: Inappropriate [oe-core specific]
9 9
10Signed-off-by: Tim Orling <tim.orling@konsulko.com> 10Signed-off-by: Tim Orling <tim.orling@konsulko.com>
11 11
12Update to apply on v2.0.2.
13
14Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
12--- 15---
13 setup.py | 2 +- 16 setup.py | 2 +-
14 smartypants | 2 +- 17 smartypants | 2 +-
@@ -16,32 +19,35 @@ Signed-off-by: Tim Orling <tim.orling@konsulko.com>
16 3 files changed, 3 insertions(+), 3 deletions(-) 19 3 files changed, 3 insertions(+), 3 deletions(-)
17 20
18diff --git a/setup.py b/setup.py 21diff --git a/setup.py b/setup.py
19index ff1ea76..96a8b73 100755 22index c183fc0..e10d757 100755
20--- a/setup.py 23--- a/setup.py
21+++ b/setup.py 24+++ b/setup.py
22@@ -1,4 +1,4 @@ 25@@ -1,4 +1,4 @@
23-#!/usr/bin/env python 26-#!/usr/bin/env python
24+#!/usr/bin/env python3 27+#!/usr/bin/env python3
25 # Copyright (C) 2013, 2014 by Yu-Jie Lin 28 # Copyright (c) 2025–present Justin Mayer
26 # For detail license information, See COPYING 29 # For detail license information, See COPYING
27 30
28diff --git a/smartypants b/smartypants 31diff --git a/smartypants b/smartypants
29index 189adf5..0cca568 100755 32index 1dabf7d..20c130e 100755
30--- a/smartypants 33--- a/smartypants
31+++ b/smartypants 34+++ b/smartypants
32@@ -1,4 +1,4 @@ 35@@ -1,4 +1,4 @@
33-#!/usr/bin/env python 36-#!/usr/bin/env python
34+#!/usr/bin/env python3 37+#!/usr/bin/env python3
35 # Copyright (c) 2013, 2014 Yu-Jie Lin 38 # Copyright (c) 2025–present Justin Mayer
36 # Licensed under the BSD License, for detailed license information, see COPYING 39 # Licensed under the BSD License, for detailed license information, see COPYING
37 40
38diff --git a/smartypants.py b/smartypants.py 41diff --git a/smartypants.py b/smartypants.py
39index a70575b..e53bd87 100755 42index 62c1472..a440d14 100755
40--- a/smartypants.py 43--- a/smartypants.py
41+++ b/smartypants.py 44+++ b/smartypants.py
42@@ -1,4 +1,4 @@ 45@@ -1,4 +1,4 @@
43-#!/usr/bin/python 46-#!/usr/bin/python
44+#!/usr/bin/env python3 47+#!/usr/bin/python3
45 # -*- coding: utf-8 -*- 48 # Copyright (c) 2025–present Justin Mayer
49 # Copyright (c) 2017 Leo Hemsted
46 # Copyright (c) 2013, 2014, 2016 Yu-Jie Lin 50 # Copyright (c) 2013, 2014, 2016 Yu-Jie Lin
47 # Copyright (c) 2004, 2005, 2007, 2013 Chad Miller 51--
522.49.0
53
diff --git a/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb b/meta/recipes-devtools/python/python3-smartypants_2.0.2.bb
index 9bb07eab52..a439f8a880 100644
--- a/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb
+++ b/meta/recipes-devtools/python/python3-smartypants_2.0.2.bb
@@ -1,12 +1,12 @@
1SUMMARY = "Translator of plain ASCII punctuation characters into 'smart' typographic punctuation HTML entities" 1SUMMARY = "Translator of plain ASCII punctuation characters into 'smart' typographic punctuation HTML entities"
2HOMEPAGE = "https://pythonhosted.org/smartypants/" 2HOMEPAGE = "https://pythonhosted.org/smartypants/"
3LICENSE = "BSD-3-Clause" 3LICENSE = "BSD-3-Clause"
4LIC_FILES_CHKSUM = "file://COPYING;md5=977036977591ac666c728921ecc54c4f" 4LIC_FILES_CHKSUM = "file://COPYING;md5=ca325788d94ee694fef2a308c5073454"
5 5
6inherit pypi setuptools3 6inherit pypi setuptools3
7 7
8PYPI_PACKAGE = "smartypants" 8PYPI_PACKAGE = "smartypants"
9SRC_URI += "file://0001-Change-hash-bang-to-python3.patch" 9SRC_URI += "file://0001-Change-hash-bang-to-python3.patch"
10SRC_URI[sha256sum] = "7812353a32022699a1aa8cd5626e01c94a946dcaeedaee2d0b382bae4c4cbf36" 10SRC_URI[sha256sum] = "39d64ce1d7cc6964b698297bdf391bc12c3251b7f608e6e55d857cd7c5f800c6"
11 11
12BBCLASSEXTEND = "native nativesdk" 12BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb b/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb
index a8b834a126..216fea2b93 100644
--- a/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb
+++ b/meta/recipes-devtools/python/python3-unittest-automake-output_0.2.bb
@@ -8,8 +8,6 @@ SRC_URI = "git://gitlab.com/rossburton/python-unittest-automake-output;protocol=
8 8
9SRCREV = "aebdfb188e368c690ea55cf6c9c9ffa1a52def65" 9SRCREV = "aebdfb188e368c690ea55cf6c9c9ffa1a52def65"
10 10
11S = "${WORKDIR}/git"
12
13inherit python_flit_core 11inherit python_flit_core
14 12
15RDEPENDS:${PN} += "python3-unittest" 13RDEPENDS:${PN} += "python3-unittest"
diff --git a/meta/recipes-devtools/python/python3_3.13.4.bb b/meta/recipes-devtools/python/python3_3.13.5.bb
index 5b49fee3bf..f9ae534213 100644
--- a/meta/recipes-devtools/python/python3_3.13.4.bb
+++ b/meta/recipes-devtools/python/python3_3.13.5.bb
@@ -36,7 +36,7 @@ SRC_URI:append:class-native = " \
36 file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \ 36 file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \
37 " 37 "
38 38
39SRC_URI[sha256sum] = "27b15a797562a2971dce3ffe31bb216042ce0b995b39d768cf15f784cc757365" 39SRC_URI[sha256sum] = "93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640"
40 40
41# exclude pre-releases for both python 2.x and 3.x 41# exclude pre-releases for both python 2.x and 3.x
42UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" 42UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -53,7 +53,7 @@ CVE_STATUS[CVE-2023-36632] = "disputed: Not an issue, in fact expected behaviour
53 53
54PYTHON_MAJMIN = "3.13" 54PYTHON_MAJMIN = "3.13"
55 55
56S = "${WORKDIR}/Python-${PV}" 56S = "${UNPACKDIR}/Python-${PV}"
57 57
58BBCLASSEXTEND = "native nativesdk" 58BBCLASSEXTEND = "native nativesdk"
59 59
@@ -65,7 +65,6 @@ ALTERNATIVE:${PN}-dev = "python3-config"
65ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config" 65ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config"
66ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}" 66ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
67 67
68
69DEPENDS = "\ 68DEPENDS = "\
70 autoconf-archive-native \ 69 autoconf-archive-native \
71 bzip2 \ 70 bzip2 \
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 90bba84b03..35735c1e15 100644
--- a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
+++ b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
@@ -4,10 +4,8 @@ RDEPENDS:${PN} = "nativesdk-qemu nativesdk-unfs3 nativesdk-pseudo \
4 nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \ 4 nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \
5 " 5 "
6 6
7
8LIC_FILES_CHKSUM = "file://${COREBASE}/scripts/runqemu;beginline=5;endline=10;md5=ac2b489a58739c7628a2604698db5e7f" 7LIC_FILES_CHKSUM = "file://${COREBASE}/scripts/runqemu;beginline=5;endline=10;md5=ac2b489a58739c7628a2604698db5e7f"
9 8
10
11SRC_URI = "file://${COREBASE}/scripts/runqemu \ 9SRC_URI = "file://${COREBASE}/scripts/runqemu \
12 file://${COREBASE}/scripts/runqemu-addptable2image \ 10 file://${COREBASE}/scripts/runqemu-addptable2image \
13 file://${COREBASE}/scripts/runqemu-gen-tapdevs \ 11 file://${COREBASE}/scripts/runqemu-gen-tapdevs \
@@ -18,8 +16,7 @@ SRC_URI = "file://${COREBASE}/scripts/runqemu \
18 file://${COREBASE}/scripts/runqemu-export-rootfs \ 16 file://${COREBASE}/scripts/runqemu-export-rootfs \
19 " 17 "
20 18
21S = "${WORKDIR}/sources" 19S = "${UNPACKDIR}"
22UNPACKDIR = "${S}"
23 20
24inherit nativesdk 21inherit nativesdk
25 22
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 28a3b95c4e..30108e76df 100644
--- a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://${S}/qemu-oe-bridge-helper.c;endline=4;md5=ae00a3bab8
6 6
7SRC_URI = "file://qemu-oe-bridge-helper.c" 7SRC_URI = "file://qemu-oe-bridge-helper.c"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12inherit native 11inherit native
13 12
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 0aba6d8276..7893df0df2 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -92,7 +92,6 @@ do_install_ptest() {
92# QEMU_TARGETS is overridable variable 92# QEMU_TARGETS is overridable variable
93QEMU_TARGETS ?= "arm aarch64 i386 loongarch64 mips mipsel mips64 mips64el ppc ppc64 ppc64le riscv32 riscv64 sh4 x86_64" 93QEMU_TARGETS ?= "arm aarch64 i386 loongarch64 mips mipsel mips64 mips64el ppc ppc64 ppc64le riscv32 riscv64 sh4 x86_64"
94 94
95
96EXTRA_OECONF = " \ 95EXTRA_OECONF = " \
97 --prefix=${prefix} \ 96 --prefix=${prefix} \
98 --bindir=${bindir} \ 97 --bindir=${bindir} \
diff --git a/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb b/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
index 6d0e7883ad..752ff3198d 100644
--- a/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
@@ -2,8 +2,7 @@ SUMMARY = "QEMU wrapper script"
2HOMEPAGE = "http://qemu.org" 2HOMEPAGE = "http://qemu.org"
3LICENSE = "MIT" 3LICENSE = "MIT"
4 4
5S = "${WORKDIR}/sources" 5S = "${UNPACKDIR}"
6UNPACKDIR = "${S}"
7 6
8DEPENDS += "qemu-native" 7DEPENDS += "qemu-native"
9 8
@@ -27,7 +26,6 @@ if [ ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False',
27 exit 1 26 exit 1
28fi 27fi
29 28
30
31$qemu_binary $qemu_options "\$@" 29$qemu_binary $qemu_options "\$@"
32EOF 30EOF
33 31
diff --git a/meta/recipes-devtools/repo/repo_2.55.2.bb b/meta/recipes-devtools/repo/repo_2.55.2.bb
index 9cff3c0b7c..882f3e6312 100644
--- a/meta/recipes-devtools/repo/repo_2.55.2.bb
+++ b/meta/recipes-devtools/repo/repo_2.55.2.bb
@@ -15,8 +15,6 @@ SRCREV = "b262d0e4619c406a2708856ed312091d21c5bf39"
15 15
16MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git" 16MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
17 17
18S = "${WORKDIR}/git"
19
20do_configure:prepend() { 18do_configure:prepend() {
21 sed -Ei "s/REPO_REV\s*=\s*('|\")stable('|\")/REPO_REV = '${SRCREV}'/g" ${S}/repo 19 sed -Ei "s/REPO_REV\s*=\s*('|\")stable('|\")/REPO_REV = '${SRCREV}'/g" ${S}/repo
22} 20}
diff --git a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia-crypto-policy_git.bb b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia-crypto-policy_git.bb
index 4ccfc95c33..658b9ab36a 100644
--- a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia-crypto-policy_git.bb
+++ b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia-crypto-policy_git.bb
@@ -16,8 +16,6 @@ SRC_URI = " \
16SRCREV = "032b418a6db842f0eab330eb5909e4604e888728" 16SRCREV = "032b418a6db842f0eab330eb5909e4604e888728"
17UPSTREAM_CHECK_COMMITS = "1" 17UPSTREAM_CHECK_COMMITS = "1"
18 18
19S = "${UNPACKDIR}/git"
20
21do_compile () { 19do_compile () {
22 # Remove most policy variants, leave DEFAULT.pol 20 # Remove most policy variants, leave DEFAULT.pol
23 # It speeds up the build and we only need DEFAULT/rpm-sequoia. 21 # It speeds up the build and we only need DEFAULT/rpm-sequoia.
diff --git a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.7.0.bb b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.7.0.bb
index 6ef626e466..17d5a747ff 100644
--- a/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.7.0.bb
+++ b/meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.7.0.bb
@@ -16,11 +16,8 @@ SRC_URI = "git://github.com/rpm-software-management/rpm-sequoia.git;protocol=htt
16 file://0001-Use-optional-env-vars-to-force-runtime-paths-in-test.patch \ 16 file://0001-Use-optional-env-vars-to-force-runtime-paths-in-test.patch \
17" 17"
18 18
19
20SRCREV = "0667e04ae7fb8cf0490919978d69883d16400e41" 19SRCREV = "0667e04ae7fb8cf0490919978d69883d16400e41"
21 20
22S = "${UNPACKDIR}/git"
23
24require ${BPN}-crates.inc 21require ${BPN}-crates.inc
25 22
26CARGO_BUILD_FLAGS += "--no-default-features --features crypto-openssl" 23CARGO_BUILD_FLAGS += "--no-default-features --features crypto-openssl"
diff --git a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch b/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch
index ed270a5704..412e1c146d 100644
--- a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch
+++ b/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch
@@ -1,18 +1,9 @@
1From 19f7ef341f19ac5594c7d0113f9eb8224934464a Mon Sep 17 00:00:00 2001 1From e14502834fe6a9c6c9a439401ac3d2c8fd979267 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com> 2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Sun, 8 Jun 2025 00:19:06 -0700 3Date: Sun, 8 Jun 2025 00:36:38 -0700
4Subject: [PATCH] CMakeLists.txt: Fix checking for CFLAGS 4Subject: [PATCH] CMakeLists.txt: Improve checking for CFLAGS
5 5
6The previous code doesn't work because the check_c_compiler_flag() only ran 6The previous log wasn't clear:
7once because 'found' is in CACHE, here is log:
8-- Performing Test found
9-- Performing Test found - Success
10
11That would result in:
12* All the flags are added when the first one works
13* None of the flags is added when the first one doesn't work
14
15We can use "unset(found CACHE)" to fix that, but the log is still not clear:
16-- Performing Test found 7-- Performing Test found
17-- Performing Test found - Success 8-- Performing Test found - Success
18-- Performing Test found 9-- Performing Test found
@@ -20,15 +11,15 @@ We can use "unset(found CACHE)" to fix that, but the log is still not clear:
20-- Performing Test found 11-- Performing Test found
21-- Performing Test found - Failed 12-- Performing Test found - Failed
22 13
23Use a new var SUPPORTS_${flag} will make it more clear: 14Use a new var compiler-supports${flag} will make it more clear:
24-- Performing Test SUPPORTS_-fno-strict-overflow 15-- Performing Test compiler-supports-fno-strict-overflow
25-- Performing Test SUPPORTS_-fno-strict-overflow - Success 16-- Performing Test compiler-supports-fno-strict-overflow - Success
26-- Performing Test SUPPORTS_-fno-delete-null-pointer-checks 17-- Performing Test compiler-supports-fno-delete-null-pointer-checks
27-- Performing Test SUPPORTS_-fno-delete-null-pointer-checks - Success 18-- Performing Test compiler-supports-fno-delete-null-pointer-checks - Success
28-- Performing Test SUPPORTS_-fhardened 19-- Performing Test compiler-supports-fhardened
29-- Performing Test SUPPORTS_-fhardened - Failed 20-- Performing Test compiler-supports-fhardened - Failed
30 21
31Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/3796] 22Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/e14502834fe6a9c6c9a439401ac3d2c8fd979267]
32 23
33Signed-off-by: Robert Yang <liezhi.yang@windriver.com> 24Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
34--- 25---
@@ -36,7 +27,7 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
36 1 file changed, 2 insertions(+), 3 deletions(-) 27 1 file changed, 2 insertions(+), 3 deletions(-)
37 28
38diff --git a/CMakeLists.txt b/CMakeLists.txt 29diff --git a/CMakeLists.txt b/CMakeLists.txt
39index 08e3e5274..a7566ab5a 100644 30index 08e3e5274..f275c396b 100644
40--- a/CMakeLists.txt 31--- a/CMakeLists.txt
41+++ b/CMakeLists.txt 32+++ b/CMakeLists.txt
42@@ -416,11 +416,10 @@ endif() 33@@ -416,11 +416,10 @@ endif()
@@ -45,14 +36,11 @@ index 08e3e5274..a7566ab5a 100644
45 foreach (flag -fno-strict-overflow -fno-delete-null-pointer-checks -fhardened) 36 foreach (flag -fno-strict-overflow -fno-delete-null-pointer-checks -fhardened)
46- check_c_compiler_flag(${flag} found) 37- check_c_compiler_flag(${flag} found)
47- if (found) 38- if (found)
48+ check_c_compiler_flag(${flag} SUPPORTS_${flag}) 39+ check_c_compiler_flag(${flag} compiler-supports${flag})
49+ if (SUPPORTS_${flag}) 40+ if (compiler-supports${flag})
50 add_compile_options(${flag}) 41 add_compile_options(${flag})
51 endif() 42 endif()
52- unset(found) 43- unset(found)
53 endforeach() 44 endforeach()
54 45
55 # generated sources 46 # generated sources
56--
572.49.0
58
diff --git a/meta/recipes-devtools/rpm/rpm_4.20.1.bb b/meta/recipes-devtools/rpm/rpm_4.20.1.bb
index 7bb6993811..dc4cfd4abb 100644
--- a/meta/recipes-devtools/rpm/rpm_4.20.1.bb
+++ b/meta/recipes-devtools/rpm/rpm_4.20.1.bb
@@ -44,8 +44,6 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protoc
44PE = "1" 44PE = "1"
45SRCREV = "c8dc5ea575a2e9c1488036d12f4b75f6a5a49120" 45SRCREV = "c8dc5ea575a2e9c1488036d12f4b75f6a5a49120"
46 46
47S = "${WORKDIR}/git"
48
49DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd" 47DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd"
50DEPENDS:append:class-native = " file-replacement-native bzip2-replacement-native" 48DEPENDS:append:class-native = " file-replacement-native bzip2-replacement-native"
51 49
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 f571e61921..5486f89ae7 100644
--- a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
+++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
@@ -8,8 +8,7 @@ SRC_URI = "file://run-postinsts \
8 file://run-postinsts.init \ 8 file://run-postinsts.init \
9 file://run-postinsts.service" 9 file://run-postinsts.service"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14inherit allarch systemd update-rc.d 13inherit allarch systemd update-rc.d
15 14
diff --git a/meta/recipes-devtools/rust/cargo-c-crates.inc b/meta/recipes-devtools/rust/cargo-c-crates.inc
index 8f4a223065..ab0b0d09e1 100644
--- a/meta/recipes-devtools/rust/cargo-c-crates.inc
+++ b/meta/recipes-devtools/rust/cargo-c-crates.inc
@@ -3,315 +3,345 @@
3# from Cargo.lock 3# from Cargo.lock
4SRC_URI += " \ 4SRC_URI += " \
5 crate://crates.io/adler2/2.0.0 \ 5 crate://crates.io/adler2/2.0.0 \
6 crate://crates.io/ahash/0.8.11 \ 6 crate://crates.io/ahash/0.8.12 \
7 crate://crates.io/aho-corasick/1.1.3 \ 7 crate://crates.io/aho-corasick/1.1.3 \
8 crate://crates.io/allocator-api2/0.2.18 \ 8 crate://crates.io/allocator-api2/0.2.21 \
9 crate://crates.io/annotate-snippets/0.11.4 \ 9 crate://crates.io/annotate-snippets/0.11.5 \
10 crate://crates.io/anstream/0.6.15 \ 10 crate://crates.io/anstream/0.6.18 \
11 crate://crates.io/anstyle/1.0.8 \ 11 crate://crates.io/anstyle/1.0.10 \
12 crate://crates.io/anstyle-parse/0.2.5 \ 12 crate://crates.io/anstyle-parse/0.2.6 \
13 crate://crates.io/anstyle-query/1.1.1 \ 13 crate://crates.io/anstyle-query/1.1.2 \
14 crate://crates.io/anstyle-wincon/3.0.4 \ 14 crate://crates.io/anstyle-wincon/3.0.7 \
15 crate://crates.io/anyhow/1.0.89 \ 15 crate://crates.io/anyhow/1.0.98 \
16 crate://crates.io/arc-swap/1.7.1 \ 16 crate://crates.io/arc-swap/1.7.1 \
17 crate://crates.io/arrayref/0.3.9 \
18 crate://crates.io/arrayvec/0.7.6 \
17 crate://crates.io/autocfg/1.4.0 \ 19 crate://crates.io/autocfg/1.4.0 \
18 crate://crates.io/base16ct/0.2.0 \ 20 crate://crates.io/base16ct/0.2.0 \
19 crate://crates.io/base64/0.22.1 \ 21 crate://crates.io/base64/0.22.1 \
20 crate://crates.io/base64ct/1.6.0 \ 22 crate://crates.io/base64ct/1.7.3 \
21 crate://crates.io/bitflags/2.6.0 \ 23 crate://crates.io/bitflags/2.9.1 \
22 crate://crates.io/bitmaps/2.1.0 \ 24 crate://crates.io/bitmaps/2.1.0 \
25 crate://crates.io/blake3/1.8.2 \
23 crate://crates.io/block-buffer/0.10.4 \ 26 crate://crates.io/block-buffer/0.10.4 \
24 crate://crates.io/bstr/1.10.0 \ 27 crate://crates.io/bstr/1.12.0 \
25 crate://crates.io/bumpalo/3.16.0 \ 28 crate://crates.io/bumpalo/3.17.0 \
26 crate://crates.io/byteorder/1.5.0 \ 29 crate://crates.io/bytes/1.10.1 \
27 crate://crates.io/bytes/1.7.2 \ 30 crate://crates.io/cargo/0.88.0 \
28 crate://crates.io/bytesize/1.3.0 \ 31 crate://crates.io/cargo-credential/0.4.8 \
29 crate://crates.io/cargo/0.83.0 \ 32 crate://crates.io/cargo-credential-libsecret/0.4.13 \
30 crate://crates.io/cargo-credential/0.4.6 \ 33 crate://crates.io/cargo-credential-macos-keychain/0.4.13 \
31 crate://crates.io/cargo-credential-libsecret/0.4.8 \ 34 crate://crates.io/cargo-credential-wincred/0.4.13 \
32 crate://crates.io/cargo-credential-macos-keychain/0.4.8 \ 35 crate://crates.io/cargo-platform/0.2.0 \
33 crate://crates.io/cargo-credential-wincred/0.4.8 \ 36 crate://crates.io/cargo-util/0.2.20 \
34 crate://crates.io/cargo-platform/0.1.8 \ 37 crate://crates.io/cargo-util-schemas/0.8.1 \
35 crate://crates.io/cargo-util/0.2.15 \ 38 crate://crates.io/cbindgen/0.28.0 \
36 crate://crates.io/cargo-util-schemas/0.6.0 \ 39 crate://crates.io/cc/1.2.22 \
37 crate://crates.io/cbindgen/0.27.0 \
38 crate://crates.io/cc/1.1.30 \
39 crate://crates.io/cfg-if/1.0.0 \ 40 crate://crates.io/cfg-if/1.0.0 \
40 crate://crates.io/clap/4.5.20 \ 41 crate://crates.io/clap/4.5.38 \
41 crate://crates.io/clap_builder/4.5.20 \ 42 crate://crates.io/clap_builder/4.5.38 \
42 crate://crates.io/clap_derive/4.5.18 \ 43 crate://crates.io/clap_complete/4.5.50 \
43 crate://crates.io/clap_lex/0.7.2 \ 44 crate://crates.io/clap_derive/4.5.32 \
45 crate://crates.io/clap_lex/0.7.4 \
44 crate://crates.io/clru/0.6.2 \ 46 crate://crates.io/clru/0.6.2 \
45 crate://crates.io/color-print/0.3.6 \ 47 crate://crates.io/color-print/0.3.7 \
46 crate://crates.io/color-print-proc-macro/0.3.6 \ 48 crate://crates.io/color-print-proc-macro/0.3.7 \
47 crate://crates.io/colorchoice/1.0.2 \ 49 crate://crates.io/colorchoice/1.0.3 \
48 crate://crates.io/const-oid/0.9.6 \ 50 crate://crates.io/const-oid/0.9.6 \
49 crate://crates.io/core-foundation/0.9.4 \ 51 crate://crates.io/constant_time_eq/0.3.1 \
52 crate://crates.io/core-foundation/0.10.0 \
50 crate://crates.io/core-foundation-sys/0.8.7 \ 53 crate://crates.io/core-foundation-sys/0.8.7 \
51 crate://crates.io/cpufeatures/0.2.14 \ 54 crate://crates.io/cpufeatures/0.2.17 \
52 crate://crates.io/crates-io/0.40.5 \ 55 crate://crates.io/crates-io/0.40.10 \
53 crate://crates.io/crc32fast/1.4.2 \ 56 crate://crates.io/crc32fast/1.4.2 \
54 crate://crates.io/crossbeam-channel/0.5.13 \ 57 crate://crates.io/crossbeam-channel/0.5.15 \
55 crate://crates.io/crossbeam-deque/0.8.5 \ 58 crate://crates.io/crossbeam-deque/0.8.6 \
56 crate://crates.io/crossbeam-epoch/0.9.18 \ 59 crate://crates.io/crossbeam-epoch/0.9.18 \
57 crate://crates.io/crossbeam-utils/0.8.20 \ 60 crate://crates.io/crossbeam-utils/0.8.21 \
58 crate://crates.io/crypto-bigint/0.5.5 \ 61 crate://crates.io/crypto-bigint/0.5.5 \
59 crate://crates.io/crypto-common/0.1.6 \ 62 crate://crates.io/crypto-common/0.1.6 \
60 crate://crates.io/ct-codecs/1.1.2 \ 63 crate://crates.io/ct-codecs/1.1.5 \
61 crate://crates.io/curl/0.4.47 \ 64 crate://crates.io/curl/0.4.47 \
62 crate://crates.io/curl-sys/0.4.77+curl-8.10.1 \ 65 crate://crates.io/curl-sys/0.4.80+curl-8.12.1 \
63 crate://crates.io/dbus/0.9.7 \ 66 crate://crates.io/dbus/0.9.7 \
64 crate://crates.io/der/0.7.9 \ 67 crate://crates.io/der/0.7.10 \
65 crate://crates.io/deranged/0.3.11 \ 68 crate://crates.io/deranged/0.4.0 \
66 crate://crates.io/digest/0.10.7 \ 69 crate://crates.io/digest/0.10.7 \
70 crate://crates.io/displaydoc/0.2.5 \
67 crate://crates.io/dunce/1.0.5 \ 71 crate://crates.io/dunce/1.0.5 \
68 crate://crates.io/ecdsa/0.16.9 \ 72 crate://crates.io/ecdsa/0.16.9 \
69 crate://crates.io/ed25519-compact/2.1.1 \ 73 crate://crates.io/ed25519-compact/2.1.1 \
70 crate://crates.io/either/1.13.0 \ 74 crate://crates.io/either/1.15.0 \
71 crate://crates.io/elliptic-curve/0.13.8 \ 75 crate://crates.io/elliptic-curve/0.13.8 \
72 crate://crates.io/encoding_rs/0.8.34 \ 76 crate://crates.io/encoding_rs/0.8.35 \
73 crate://crates.io/equivalent/1.0.1 \ 77 crate://crates.io/equivalent/1.0.2 \
74 crate://crates.io/erased-serde/0.4.5 \ 78 crate://crates.io/erased-serde/0.4.6 \
75 crate://crates.io/errno/0.3.9 \ 79 crate://crates.io/errno/0.3.12 \
76 crate://crates.io/fallible-iterator/0.3.0 \ 80 crate://crates.io/fallible-iterator/0.3.0 \
77 crate://crates.io/fallible-streaming-iterator/0.1.9 \ 81 crate://crates.io/fallible-streaming-iterator/0.1.9 \
78 crate://crates.io/faster-hex/0.9.0 \ 82 crate://crates.io/faster-hex/0.9.0 \
79 crate://crates.io/fastrand/2.1.1 \ 83 crate://crates.io/fastrand/2.3.0 \
80 crate://crates.io/ff/0.13.0 \ 84 crate://crates.io/ff/0.13.1 \
81 crate://crates.io/fiat-crypto/0.2.9 \ 85 crate://crates.io/fiat-crypto/0.2.9 \
82 crate://crates.io/filetime/0.2.25 \ 86 crate://crates.io/filetime/0.2.25 \
83 crate://crates.io/flate2/1.0.34 \ 87 crate://crates.io/flate2/1.1.1 \
84 crate://crates.io/fnv/1.0.7 \ 88 crate://crates.io/fnv/1.0.7 \
85 crate://crates.io/foldhash/0.1.3 \ 89 crate://crates.io/foldhash/0.1.5 \
86 crate://crates.io/foreign-types/0.3.2 \ 90 crate://crates.io/foreign-types/0.3.2 \
87 crate://crates.io/foreign-types-shared/0.1.1 \ 91 crate://crates.io/foreign-types-shared/0.1.1 \
88 crate://crates.io/form_urlencoded/1.2.1 \ 92 crate://crates.io/form_urlencoded/1.2.1 \
89 crate://crates.io/generic-array/0.14.7 \ 93 crate://crates.io/generic-array/0.14.7 \
90 crate://crates.io/getrandom/0.2.15 \ 94 crate://crates.io/getrandom/0.2.16 \
91 crate://crates.io/git2/0.19.0 \ 95 crate://crates.io/getrandom/0.3.3 \
92 crate://crates.io/git2-curl/0.20.0 \ 96 crate://crates.io/git2/0.20.2 \
93 crate://crates.io/gix/0.64.0 \ 97 crate://crates.io/git2-curl/0.21.0 \
94 crate://crates.io/gix-actor/0.31.5 \ 98 crate://crates.io/gix/0.70.0 \
95 crate://crates.io/gix-attributes/0.22.5 \ 99 crate://crates.io/gix-actor/0.33.2 \
96 crate://crates.io/gix-bitmap/0.2.11 \ 100 crate://crates.io/gix-attributes/0.24.0 \
97 crate://crates.io/gix-chunk/0.4.8 \ 101 crate://crates.io/gix-bitmap/0.2.14 \
98 crate://crates.io/gix-command/0.3.9 \ 102 crate://crates.io/gix-chunk/0.4.11 \
99 crate://crates.io/gix-commitgraph/0.24.3 \ 103 crate://crates.io/gix-command/0.4.1 \
100 crate://crates.io/gix-config/0.38.0 \ 104 crate://crates.io/gix-commitgraph/0.26.0 \
101 crate://crates.io/gix-config-value/0.14.8 \ 105 crate://crates.io/gix-config/0.43.0 \
102 crate://crates.io/gix-credentials/0.24.5 \ 106 crate://crates.io/gix-config-value/0.14.12 \
103 crate://crates.io/gix-date/0.8.7 \ 107 crate://crates.io/gix-credentials/0.27.0 \
104 crate://crates.io/gix-date/0.9.0 \ 108 crate://crates.io/gix-date/0.9.4 \
105 crate://crates.io/gix-diff/0.44.1 \ 109 crate://crates.io/gix-diff/0.50.0 \
106 crate://crates.io/gix-dir/0.6.0 \ 110 crate://crates.io/gix-dir/0.12.0 \
107 crate://crates.io/gix-discover/0.33.0 \ 111 crate://crates.io/gix-discover/0.38.0 \
108 crate://crates.io/gix-features/0.38.2 \ 112 crate://crates.io/gix-features/0.40.0 \
109 crate://crates.io/gix-filter/0.11.3 \ 113 crate://crates.io/gix-filter/0.17.0 \
110 crate://crates.io/gix-fs/0.11.3 \ 114 crate://crates.io/gix-fs/0.13.0 \
111 crate://crates.io/gix-glob/0.16.5 \ 115 crate://crates.io/gix-glob/0.18.0 \
112 crate://crates.io/gix-hash/0.14.2 \ 116 crate://crates.io/gix-hash/0.16.0 \
113 crate://crates.io/gix-hashtable/0.5.2 \ 117 crate://crates.io/gix-hashtable/0.7.0 \
114 crate://crates.io/gix-ignore/0.11.4 \ 118 crate://crates.io/gix-ignore/0.13.0 \
115 crate://crates.io/gix-index/0.33.1 \ 119 crate://crates.io/gix-index/0.38.0 \
116 crate://crates.io/gix-lock/14.0.0 \ 120 crate://crates.io/gix-lock/16.0.0 \
117 crate://crates.io/gix-macros/0.1.5 \ 121 crate://crates.io/gix-negotiate/0.18.0 \
118 crate://crates.io/gix-negotiate/0.13.2 \ 122 crate://crates.io/gix-object/0.47.0 \
119 crate://crates.io/gix-object/0.42.3 \ 123 crate://crates.io/gix-odb/0.67.0 \
120 crate://crates.io/gix-odb/0.61.1 \ 124 crate://crates.io/gix-pack/0.57.0 \
121 crate://crates.io/gix-pack/0.51.1 \ 125 crate://crates.io/gix-packetline/0.18.4 \
122 crate://crates.io/gix-packetline/0.17.6 \ 126 crate://crates.io/gix-packetline-blocking/0.18.3 \
123 crate://crates.io/gix-packetline-blocking/0.17.5 \ 127 crate://crates.io/gix-path/0.10.18 \
124 crate://crates.io/gix-path/0.10.11 \ 128 crate://crates.io/gix-pathspec/0.9.0 \
125 crate://crates.io/gix-pathspec/0.7.7 \ 129 crate://crates.io/gix-prompt/0.9.1 \
126 crate://crates.io/gix-prompt/0.8.7 \ 130 crate://crates.io/gix-protocol/0.48.0 \
127 crate://crates.io/gix-protocol/0.45.3 \ 131 crate://crates.io/gix-quote/0.4.15 \
128 crate://crates.io/gix-quote/0.4.12 \ 132 crate://crates.io/gix-ref/0.50.0 \
129 crate://crates.io/gix-ref/0.45.0 \ 133 crate://crates.io/gix-refspec/0.28.0 \
130 crate://crates.io/gix-refspec/0.23.1 \ 134 crate://crates.io/gix-revision/0.32.0 \
131 crate://crates.io/gix-revision/0.27.2 \ 135 crate://crates.io/gix-revwalk/0.18.0 \
132 crate://crates.io/gix-revwalk/0.13.2 \ 136 crate://crates.io/gix-sec/0.10.12 \
133 crate://crates.io/gix-sec/0.10.8 \ 137 crate://crates.io/gix-shallow/0.2.0 \
134 crate://crates.io/gix-submodule/0.12.0 \ 138 crate://crates.io/gix-submodule/0.17.0 \
135 crate://crates.io/gix-tempfile/14.0.2 \ 139 crate://crates.io/gix-tempfile/16.0.0 \
136 crate://crates.io/gix-trace/0.1.10 \ 140 crate://crates.io/gix-trace/0.1.12 \
137 crate://crates.io/gix-transport/0.42.3 \ 141 crate://crates.io/gix-transport/0.45.0 \
138 crate://crates.io/gix-traverse/0.39.2 \ 142 crate://crates.io/gix-traverse/0.44.0 \
139 crate://crates.io/gix-url/0.27.5 \ 143 crate://crates.io/gix-url/0.29.0 \
140 crate://crates.io/gix-utils/0.1.12 \ 144 crate://crates.io/gix-utils/0.1.14 \
141 crate://crates.io/gix-validate/0.8.5 \ 145 crate://crates.io/gix-validate/0.9.4 \
142 crate://crates.io/gix-worktree/0.34.1 \ 146 crate://crates.io/gix-validate/0.10.0 \
143 crate://crates.io/glob/0.3.1 \ 147 crate://crates.io/gix-worktree/0.39.0 \
144 crate://crates.io/globset/0.4.15 \ 148 crate://crates.io/glob/0.3.2 \
149 crate://crates.io/globset/0.4.16 \
145 crate://crates.io/group/0.13.0 \ 150 crate://crates.io/group/0.13.0 \
146 crate://crates.io/hashbrown/0.14.5 \ 151 crate://crates.io/hashbrown/0.14.5 \
147 crate://crates.io/hashbrown/0.15.0 \ 152 crate://crates.io/hashbrown/0.15.3 \
148 crate://crates.io/hashlink/0.9.1 \ 153 crate://crates.io/hashlink/0.10.0 \
149 crate://crates.io/heck/0.4.1 \ 154 crate://crates.io/heck/0.4.1 \
150 crate://crates.io/heck/0.5.0 \ 155 crate://crates.io/heck/0.5.0 \
151 crate://crates.io/hex/0.4.3 \ 156 crate://crates.io/hex/0.4.3 \
152 crate://crates.io/hkdf/0.12.4 \ 157 crate://crates.io/hkdf/0.12.4 \
153 crate://crates.io/hmac/0.12.1 \ 158 crate://crates.io/hmac/0.12.1 \
154 crate://crates.io/home/0.5.9 \ 159 crate://crates.io/home/0.5.11 \
155 crate://crates.io/http-auth/0.1.10 \ 160 crate://crates.io/http-auth/0.1.10 \
156 crate://crates.io/humantime/2.1.0 \ 161 crate://crates.io/icu_collections/2.0.0 \
157 crate://crates.io/idna/0.5.0 \ 162 crate://crates.io/icu_locale_core/2.0.0 \
163 crate://crates.io/icu_normalizer/2.0.0 \
164 crate://crates.io/icu_normalizer_data/2.0.0 \
165 crate://crates.io/icu_properties/2.0.0 \
166 crate://crates.io/icu_properties_data/2.0.0 \
167 crate://crates.io/icu_provider/2.0.0 \
168 crate://crates.io/idna/1.0.3 \
169 crate://crates.io/idna_adapter/1.2.1 \
158 crate://crates.io/ignore/0.4.23 \ 170 crate://crates.io/ignore/0.4.23 \
159 crate://crates.io/im-rc/15.1.0 \ 171 crate://crates.io/im-rc/15.1.0 \
160 crate://crates.io/implib/0.3.3 \ 172 crate://crates.io/implib/0.3.5 \
161 crate://crates.io/indexmap/2.6.0 \ 173 crate://crates.io/indexmap/2.9.0 \
174 crate://crates.io/is_executable/1.0.4 \
162 crate://crates.io/is_terminal_polyfill/1.70.1 \ 175 crate://crates.io/is_terminal_polyfill/1.70.1 \
163 crate://crates.io/itertools/0.13.0 \ 176 crate://crates.io/itertools/0.14.0 \
164 crate://crates.io/itoa/1.0.11 \ 177 crate://crates.io/itoa/1.0.15 \
165 crate://crates.io/jiff/0.1.13 \ 178 crate://crates.io/jiff/0.2.13 \
166 crate://crates.io/jiff-tzdb/0.1.1 \ 179 crate://crates.io/jiff-static/0.2.13 \
167 crate://crates.io/jiff-tzdb-platform/0.1.1 \ 180 crate://crates.io/jiff-tzdb/0.1.4 \
168 crate://crates.io/jobserver/0.1.32 \ 181 crate://crates.io/jiff-tzdb-platform/0.1.3 \
169 crate://crates.io/js-sys/0.3.72 \ 182 crate://crates.io/jobserver/0.1.33 \
183 crate://crates.io/js-sys/0.3.77 \
170 crate://crates.io/kstring/2.0.2 \ 184 crate://crates.io/kstring/2.0.2 \
171 crate://crates.io/lazy_static/1.5.0 \ 185 crate://crates.io/lazy_static/1.5.0 \
172 crate://crates.io/lazycell/1.3.0 \ 186 crate://crates.io/lazycell/1.3.0 \
173 crate://crates.io/libc/0.2.161 \ 187 crate://crates.io/libc/0.2.172 \
174 crate://crates.io/libdbus-sys/0.2.5 \ 188 crate://crates.io/libdbus-sys/0.2.5 \
175 crate://crates.io/libgit2-sys/0.17.0+1.8.1 \ 189 crate://crates.io/libgit2-sys/0.18.1+1.9.0 \
176 crate://crates.io/libloading/0.8.5 \ 190 crate://crates.io/libloading/0.8.7 \
177 crate://crates.io/libnghttp2-sys/0.1.10+1.61.0 \ 191 crate://crates.io/libnghttp2-sys/0.1.11+1.64.0 \
178 crate://crates.io/libredox/0.1.3 \ 192 crate://crates.io/libredox/0.1.3 \
179 crate://crates.io/libsqlite3-sys/0.30.1 \ 193 crate://crates.io/libsqlite3-sys/0.31.0 \
180 crate://crates.io/libssh2-sys/0.3.0 \ 194 crate://crates.io/libssh2-sys/0.3.1 \
181 crate://crates.io/libz-sys/1.1.20 \ 195 crate://crates.io/libz-sys/1.1.22 \
182 crate://crates.io/linux-raw-sys/0.4.14 \ 196 crate://crates.io/linux-raw-sys/0.4.15 \
197 crate://crates.io/linux-raw-sys/0.9.4 \
198 crate://crates.io/litemap/0.8.0 \
183 crate://crates.io/lock_api/0.4.12 \ 199 crate://crates.io/lock_api/0.4.12 \
184 crate://crates.io/log/0.4.22 \ 200 crate://crates.io/log/0.4.27 \
185 crate://crates.io/matchers/0.1.0 \ 201 crate://crates.io/matchers/0.1.0 \
186 crate://crates.io/maybe-async/0.2.10 \ 202 crate://crates.io/maybe-async/0.2.10 \
187 crate://crates.io/memchr/2.7.4 \ 203 crate://crates.io/memchr/2.7.4 \
188 crate://crates.io/memmap2/0.9.5 \ 204 crate://crates.io/memmap2/0.9.5 \
189 crate://crates.io/memoffset/0.9.1 \ 205 crate://crates.io/memoffset/0.9.1 \
190 crate://crates.io/minimal-lexical/0.2.1 \ 206 crate://crates.io/minimal-lexical/0.2.1 \
191 crate://crates.io/miniz_oxide/0.8.0 \ 207 crate://crates.io/miniz_oxide/0.8.8 \
192 crate://crates.io/miow/0.6.0 \ 208 crate://crates.io/miow/0.6.0 \
193 crate://crates.io/nom/7.1.3 \ 209 crate://crates.io/nom/7.1.3 \
194 crate://crates.io/normpath/1.3.0 \ 210 crate://crates.io/normpath/1.3.0 \
195 crate://crates.io/nu-ansi-term/0.46.0 \ 211 crate://crates.io/nu-ansi-term/0.46.0 \
196 crate://crates.io/num-conv/0.1.0 \ 212 crate://crates.io/num-conv/0.1.0 \
197 crate://crates.io/num-traits/0.2.19 \ 213 crate://crates.io/num-traits/0.2.19 \
198 crate://crates.io/num_threads/0.1.7 \ 214 crate://crates.io/object/0.36.7 \
199 crate://crates.io/object/0.36.5 \ 215 crate://crates.io/once_cell/1.21.3 \
200 crate://crates.io/once_cell/1.20.2 \
201 crate://crates.io/opener/0.7.2 \ 216 crate://crates.io/opener/0.7.2 \
202 crate://crates.io/openssl/0.10.57 \ 217 crate://crates.io/openssl/0.10.57 \
203 crate://crates.io/openssl-macros/0.1.1 \ 218 crate://crates.io/openssl-macros/0.1.1 \
204 crate://crates.io/openssl-probe/0.1.5 \ 219 crate://crates.io/openssl-probe/0.1.6 \
205 crate://crates.io/openssl-src/300.3.2+3.3.2 \ 220 crate://crates.io/openssl-src/300.5.0+3.5.0 \
206 crate://crates.io/openssl-sys/0.9.104 \ 221 crate://crates.io/openssl-sys/0.9.108 \
207 crate://crates.io/ordered-float/2.10.1 \ 222 crate://crates.io/ordered-float/2.10.1 \
208 crate://crates.io/orion/0.17.7 \ 223 crate://crates.io/orion/0.17.10 \
209 crate://crates.io/os_info/3.8.2 \ 224 crate://crates.io/os_info/3.11.0 \
210 crate://crates.io/overload/0.1.1 \ 225 crate://crates.io/overload/0.1.1 \
211 crate://crates.io/p384/0.13.0 \ 226 crate://crates.io/p384/0.13.1 \
212 crate://crates.io/parking_lot/0.12.3 \ 227 crate://crates.io/parking_lot/0.12.3 \
213 crate://crates.io/parking_lot_core/0.9.10 \ 228 crate://crates.io/parking_lot_core/0.9.10 \
214 crate://crates.io/pasetors/0.6.8 \ 229 crate://crates.io/pasetors/0.7.4 \
215 crate://crates.io/pathdiff/0.2.2 \ 230 crate://crates.io/pathdiff/0.2.3 \
216 crate://crates.io/pem-rfc7468/0.7.0 \ 231 crate://crates.io/pem-rfc7468/0.7.0 \
217 crate://crates.io/percent-encoding/2.3.1 \ 232 crate://crates.io/percent-encoding/2.3.1 \
218 crate://crates.io/pin-project-lite/0.2.14 \ 233 crate://crates.io/pin-project-lite/0.2.16 \
219 crate://crates.io/pkcs8/0.10.2 \ 234 crate://crates.io/pkcs8/0.10.2 \
220 crate://crates.io/pkg-config/0.3.31 \ 235 crate://crates.io/pkg-config/0.3.32 \
236 crate://crates.io/portable-atomic/1.11.0 \
237 crate://crates.io/portable-atomic-util/0.2.4 \
238 crate://crates.io/potential_utf/0.1.2 \
221 crate://crates.io/powerfmt/0.2.0 \ 239 crate://crates.io/powerfmt/0.2.0 \
222 crate://crates.io/ppv-lite86/0.2.20 \ 240 crate://crates.io/ppv-lite86/0.2.21 \
223 crate://crates.io/primeorder/0.13.6 \ 241 crate://crates.io/primeorder/0.13.6 \
224 crate://crates.io/proc-macro2/1.0.88 \ 242 crate://crates.io/proc-macro2/1.0.95 \
225 crate://crates.io/prodash/28.0.0 \ 243 crate://crates.io/prodash/29.0.2 \
226 crate://crates.io/quote/1.0.37 \ 244 crate://crates.io/quote/1.0.40 \
227 crate://crates.io/rand/0.8.5 \ 245 crate://crates.io/r-efi/5.2.0 \
228 crate://crates.io/rand_chacha/0.3.1 \ 246 crate://crates.io/rand/0.9.1 \
247 crate://crates.io/rand_chacha/0.9.0 \
229 crate://crates.io/rand_core/0.6.4 \ 248 crate://crates.io/rand_core/0.6.4 \
249 crate://crates.io/rand_core/0.9.3 \
230 crate://crates.io/rand_xoshiro/0.6.0 \ 250 crate://crates.io/rand_xoshiro/0.6.0 \
231 crate://crates.io/redox_syscall/0.5.7 \ 251 crate://crates.io/redox_syscall/0.5.12 \
232 crate://crates.io/regex/1.11.0 \ 252 crate://crates.io/regex/1.11.1 \
233 crate://crates.io/regex-automata/0.1.10 \ 253 crate://crates.io/regex-automata/0.1.10 \
234 crate://crates.io/regex-automata/0.4.8 \ 254 crate://crates.io/regex-automata/0.4.9 \
235 crate://crates.io/regex-syntax/0.6.29 \ 255 crate://crates.io/regex-syntax/0.6.29 \
236 crate://crates.io/regex-syntax/0.8.5 \ 256 crate://crates.io/regex-syntax/0.8.5 \
237 crate://crates.io/rfc6979/0.4.0 \ 257 crate://crates.io/rfc6979/0.4.0 \
238 crate://crates.io/rusqlite/0.32.1 \ 258 crate://crates.io/rusqlite/0.33.0 \
239 crate://crates.io/rustfix/0.8.6 \ 259 crate://crates.io/rustc-hash/2.1.1 \
240 crate://crates.io/rustix/0.38.37 \ 260 crate://crates.io/rustc-stable-hash/0.1.2 \
241 crate://crates.io/ryu/1.0.18 \ 261 crate://crates.io/rustfix/0.9.0 \
262 crate://crates.io/rustix/0.38.44 \
263 crate://crates.io/rustix/1.0.7 \
264 crate://crates.io/ryu/1.0.20 \
242 crate://crates.io/same-file/1.0.6 \ 265 crate://crates.io/same-file/1.0.6 \
243 crate://crates.io/schannel/0.1.26 \ 266 crate://crates.io/schannel/0.1.27 \
244 crate://crates.io/scopeguard/1.2.0 \ 267 crate://crates.io/scopeguard/1.2.0 \
245 crate://crates.io/sec1/0.7.3 \ 268 crate://crates.io/sec1/0.7.3 \
246 crate://crates.io/security-framework/2.11.1 \ 269 crate://crates.io/security-framework/3.2.0 \
247 crate://crates.io/security-framework-sys/2.12.0 \ 270 crate://crates.io/security-framework-sys/2.14.0 \
248 crate://crates.io/semver/1.0.23 \ 271 crate://crates.io/semver/1.0.26 \
249 crate://crates.io/serde/1.0.210 \ 272 crate://crates.io/serde/1.0.219 \
250 crate://crates.io/serde-untagged/0.1.6 \ 273 crate://crates.io/serde-untagged/0.1.7 \
251 crate://crates.io/serde-value/0.7.0 \ 274 crate://crates.io/serde-value/0.7.0 \
252 crate://crates.io/serde_derive/1.0.210 \ 275 crate://crates.io/serde_derive/1.0.219 \
253 crate://crates.io/serde_ignored/0.1.10 \ 276 crate://crates.io/serde_ignored/0.1.12 \
254 crate://crates.io/serde_json/1.0.129 \ 277 crate://crates.io/serde_json/1.0.140 \
255 crate://crates.io/serde_spanned/0.6.8 \ 278 crate://crates.io/serde_spanned/0.6.8 \
256 crate://crates.io/sha1/0.10.6 \ 279 crate://crates.io/sha1/0.10.6 \
257 crate://crates.io/sha1_smol/1.0.1 \ 280 crate://crates.io/sha1_smol/1.0.1 \
258 crate://crates.io/sha2/0.10.8 \ 281 crate://crates.io/sha2/0.10.9 \
259 crate://crates.io/sharded-slab/0.1.7 \ 282 crate://crates.io/sharded-slab/0.1.7 \
260 crate://crates.io/shell-escape/0.1.5 \ 283 crate://crates.io/shell-escape/0.1.5 \
261 crate://crates.io/shell-words/1.1.0 \ 284 crate://crates.io/shell-words/1.1.0 \
262 crate://crates.io/shlex/1.3.0 \ 285 crate://crates.io/shlex/1.3.0 \
263 crate://crates.io/signature/2.2.0 \ 286 crate://crates.io/signature/2.2.0 \
264 crate://crates.io/sized-chunks/0.6.5 \ 287 crate://crates.io/sized-chunks/0.6.5 \
265 crate://crates.io/smallvec/1.13.2 \ 288 crate://crates.io/smallvec/1.15.0 \
266 crate://crates.io/socket2/0.5.7 \ 289 crate://crates.io/socket2/0.5.9 \
267 crate://crates.io/spki/0.7.3 \ 290 crate://crates.io/spki/0.7.3 \
291 crate://crates.io/stable_deref_trait/1.2.0 \
268 crate://crates.io/static_assertions/1.1.0 \ 292 crate://crates.io/static_assertions/1.1.0 \
269 crate://crates.io/strsim/0.11.1 \ 293 crate://crates.io/strsim/0.11.1 \
270 crate://crates.io/subtle/2.6.1 \ 294 crate://crates.io/subtle/2.6.1 \
271 crate://crates.io/supports-hyperlinks/3.0.0 \ 295 crate://crates.io/supports-hyperlinks/3.1.0 \
272 crate://crates.io/supports-unicode/3.0.0 \ 296 crate://crates.io/supports-unicode/3.0.0 \
273 crate://crates.io/syn/2.0.79 \ 297 crate://crates.io/syn/2.0.101 \
274 crate://crates.io/tar/0.4.42 \ 298 crate://crates.io/synstructure/0.13.2 \
275 crate://crates.io/tempfile/3.13.0 \ 299 crate://crates.io/tar/0.4.44 \
276 crate://crates.io/terminal_size/0.4.0 \ 300 crate://crates.io/tempfile/3.20.0 \
277 crate://crates.io/thiserror/1.0.64 \ 301 crate://crates.io/terminal_size/0.4.2 \
278 crate://crates.io/thiserror-impl/1.0.64 \ 302 crate://crates.io/thiserror/1.0.69 \
303 crate://crates.io/thiserror/2.0.12 \
304 crate://crates.io/thiserror-impl/1.0.69 \
305 crate://crates.io/thiserror-impl/2.0.12 \
279 crate://crates.io/thread_local/1.1.8 \ 306 crate://crates.io/thread_local/1.1.8 \
280 crate://crates.io/time/0.3.36 \ 307 crate://crates.io/time/0.3.41 \
281 crate://crates.io/time-core/0.1.2 \ 308 crate://crates.io/time-core/0.1.4 \
282 crate://crates.io/time-macros/0.2.18 \ 309 crate://crates.io/time-macros/0.2.22 \
283 crate://crates.io/tinyvec/1.8.0 \ 310 crate://crates.io/tinystr/0.8.1 \
311 crate://crates.io/tinyvec/1.9.0 \
284 crate://crates.io/tinyvec_macros/0.1.1 \ 312 crate://crates.io/tinyvec_macros/0.1.1 \
285 crate://crates.io/toml/0.8.19 \ 313 crate://crates.io/toml/0.8.22 \
286 crate://crates.io/toml_datetime/0.6.8 \ 314 crate://crates.io/toml_datetime/0.6.9 \
287 crate://crates.io/toml_edit/0.22.22 \ 315 crate://crates.io/toml_edit/0.22.26 \
288 crate://crates.io/tracing/0.1.40 \ 316 crate://crates.io/toml_write/0.1.1 \
289 crate://crates.io/tracing-attributes/0.1.27 \ 317 crate://crates.io/tracing/0.1.41 \
318 crate://crates.io/tracing-attributes/0.1.28 \
290 crate://crates.io/tracing-chrome/0.7.2 \ 319 crate://crates.io/tracing-chrome/0.7.2 \
291 crate://crates.io/tracing-core/0.1.32 \ 320 crate://crates.io/tracing-core/0.1.33 \
292 crate://crates.io/tracing-log/0.2.0 \ 321 crate://crates.io/tracing-log/0.2.0 \
293 crate://crates.io/tracing-subscriber/0.3.18 \ 322 crate://crates.io/tracing-subscriber/0.3.19 \
294 crate://crates.io/typeid/1.0.2 \ 323 crate://crates.io/typeid/1.0.3 \
295 crate://crates.io/typenum/1.17.0 \ 324 crate://crates.io/typenum/1.18.0 \
296 crate://crates.io/unicase/2.7.0 \ 325 crate://crates.io/unicase/2.8.1 \
297 crate://crates.io/unicode-bidi/0.3.17 \
298 crate://crates.io/unicode-bom/2.0.3 \ 326 crate://crates.io/unicode-bom/2.0.3 \
299 crate://crates.io/unicode-ident/1.0.13 \ 327 crate://crates.io/unicode-ident/1.0.18 \
300 crate://crates.io/unicode-normalization/0.1.24 \ 328 crate://crates.io/unicode-normalization/0.1.24 \
301 crate://crates.io/unicode-width/0.1.14 \ 329 crate://crates.io/unicode-width/0.2.0 \
302 crate://crates.io/unicode-xid/0.2.6 \ 330 crate://crates.io/unicode-xid/0.2.6 \
303 crate://crates.io/url/2.5.2 \ 331 crate://crates.io/url/2.5.4 \
332 crate://crates.io/utf8_iter/1.0.4 \
304 crate://crates.io/utf8parse/0.2.2 \ 333 crate://crates.io/utf8parse/0.2.2 \
305 crate://crates.io/valuable/0.1.0 \ 334 crate://crates.io/valuable/0.1.1 \
306 crate://crates.io/vcpkg/0.2.15 \ 335 crate://crates.io/vcpkg/0.2.15 \
307 crate://crates.io/version_check/0.9.5 \ 336 crate://crates.io/version_check/0.9.5 \
308 crate://crates.io/walkdir/2.5.0 \ 337 crate://crates.io/walkdir/2.5.0 \
309 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ 338 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
310 crate://crates.io/wasm-bindgen/0.2.95 \ 339 crate://crates.io/wasi/0.14.2+wasi-0.2.4 \
311 crate://crates.io/wasm-bindgen-backend/0.2.95 \ 340 crate://crates.io/wasm-bindgen/0.2.100 \
312 crate://crates.io/wasm-bindgen-macro/0.2.95 \ 341 crate://crates.io/wasm-bindgen-backend/0.2.100 \
313 crate://crates.io/wasm-bindgen-macro-support/0.2.95 \ 342 crate://crates.io/wasm-bindgen-macro/0.2.100 \
314 crate://crates.io/wasm-bindgen-shared/0.2.95 \ 343 crate://crates.io/wasm-bindgen-macro-support/0.2.100 \
344 crate://crates.io/wasm-bindgen-shared/0.2.100 \
315 crate://crates.io/winapi/0.3.9 \ 345 crate://crates.io/winapi/0.3.9 \
316 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ 346 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
317 crate://crates.io/winapi-util/0.1.9 \ 347 crate://crates.io/winapi-util/0.1.9 \
@@ -321,337 +351,386 @@ SRC_URI += " \
321 crate://crates.io/windows-sys/0.59.0 \ 351 crate://crates.io/windows-sys/0.59.0 \
322 crate://crates.io/windows-targets/0.48.5 \ 352 crate://crates.io/windows-targets/0.48.5 \
323 crate://crates.io/windows-targets/0.52.6 \ 353 crate://crates.io/windows-targets/0.52.6 \
354 crate://crates.io/windows-targets/0.53.0 \
324 crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ 355 crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
325 crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ 356 crate://crates.io/windows_aarch64_gnullvm/0.52.6 \
357 crate://crates.io/windows_aarch64_gnullvm/0.53.0 \
326 crate://crates.io/windows_aarch64_msvc/0.48.5 \ 358 crate://crates.io/windows_aarch64_msvc/0.48.5 \
327 crate://crates.io/windows_aarch64_msvc/0.52.6 \ 359 crate://crates.io/windows_aarch64_msvc/0.52.6 \
360 crate://crates.io/windows_aarch64_msvc/0.53.0 \
328 crate://crates.io/windows_i686_gnu/0.48.5 \ 361 crate://crates.io/windows_i686_gnu/0.48.5 \
329 crate://crates.io/windows_i686_gnu/0.52.6 \ 362 crate://crates.io/windows_i686_gnu/0.52.6 \
363 crate://crates.io/windows_i686_gnu/0.53.0 \
330 crate://crates.io/windows_i686_gnullvm/0.52.6 \ 364 crate://crates.io/windows_i686_gnullvm/0.52.6 \
365 crate://crates.io/windows_i686_gnullvm/0.53.0 \
331 crate://crates.io/windows_i686_msvc/0.48.5 \ 366 crate://crates.io/windows_i686_msvc/0.48.5 \
332 crate://crates.io/windows_i686_msvc/0.52.6 \ 367 crate://crates.io/windows_i686_msvc/0.52.6 \
368 crate://crates.io/windows_i686_msvc/0.53.0 \
333 crate://crates.io/windows_x86_64_gnu/0.48.5 \ 369 crate://crates.io/windows_x86_64_gnu/0.48.5 \
334 crate://crates.io/windows_x86_64_gnu/0.52.6 \ 370 crate://crates.io/windows_x86_64_gnu/0.52.6 \
371 crate://crates.io/windows_x86_64_gnu/0.53.0 \
335 crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ 372 crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
336 crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ 373 crate://crates.io/windows_x86_64_gnullvm/0.52.6 \
374 crate://crates.io/windows_x86_64_gnullvm/0.53.0 \
337 crate://crates.io/windows_x86_64_msvc/0.48.5 \ 375 crate://crates.io/windows_x86_64_msvc/0.48.5 \
338 crate://crates.io/windows_x86_64_msvc/0.52.6 \ 376 crate://crates.io/windows_x86_64_msvc/0.52.6 \
339 crate://crates.io/winnow/0.6.20 \ 377 crate://crates.io/windows_x86_64_msvc/0.53.0 \
340 crate://crates.io/zerocopy/0.7.35 \ 378 crate://crates.io/winnow/0.6.26 \
341 crate://crates.io/zerocopy-derive/0.7.35 \ 379 crate://crates.io/winnow/0.7.10 \
380 crate://crates.io/wit-bindgen-rt/0.39.0 \
381 crate://crates.io/writeable/0.6.1 \
382 crate://crates.io/yoke/0.8.0 \
383 crate://crates.io/yoke-derive/0.8.0 \
384 crate://crates.io/zerocopy/0.8.25 \
385 crate://crates.io/zerocopy-derive/0.8.25 \
386 crate://crates.io/zerofrom/0.1.6 \
387 crate://crates.io/zerofrom-derive/0.1.6 \
342 crate://crates.io/zeroize/1.8.1 \ 388 crate://crates.io/zeroize/1.8.1 \
389 crate://crates.io/zerotrie/0.2.2 \
390 crate://crates.io/zerovec/0.11.2 \
391 crate://crates.io/zerovec-derive/0.11.1 \
343" 392"
344 393
345SRC_URI[adler2-2.0.0.sha256sum] = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 394SRC_URI[adler2-2.0.0.sha256sum] = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
346SRC_URI[ahash-0.8.11.sha256sum] = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 395SRC_URI[ahash-0.8.12.sha256sum] = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
347SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 396SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
348SRC_URI[allocator-api2-0.2.18.sha256sum] = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" 397SRC_URI[allocator-api2-0.2.21.sha256sum] = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
349SRC_URI[annotate-snippets-0.11.4.sha256sum] = "24e35ed54e5ea7997c14ed4c70ba043478db1112e98263b3b035907aa197d991" 398SRC_URI[annotate-snippets-0.11.5.sha256sum] = "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4"
350SRC_URI[anstream-0.6.15.sha256sum] = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" 399SRC_URI[anstream-0.6.18.sha256sum] = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
351SRC_URI[anstyle-1.0.8.sha256sum] = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" 400SRC_URI[anstyle-1.0.10.sha256sum] = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
352SRC_URI[anstyle-parse-0.2.5.sha256sum] = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" 401SRC_URI[anstyle-parse-0.2.6.sha256sum] = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
353SRC_URI[anstyle-query-1.1.1.sha256sum] = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" 402SRC_URI[anstyle-query-1.1.2.sha256sum] = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
354SRC_URI[anstyle-wincon-3.0.4.sha256sum] = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" 403SRC_URI[anstyle-wincon-3.0.7.sha256sum] = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
355SRC_URI[anyhow-1.0.89.sha256sum] = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 404SRC_URI[anyhow-1.0.98.sha256sum] = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
356SRC_URI[arc-swap-1.7.1.sha256sum] = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 405SRC_URI[arc-swap-1.7.1.sha256sum] = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
406SRC_URI[arrayref-0.3.9.sha256sum] = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
407SRC_URI[arrayvec-0.7.6.sha256sum] = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
357SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 408SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
358SRC_URI[base16ct-0.2.0.sha256sum] = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 409SRC_URI[base16ct-0.2.0.sha256sum] = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
359SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 410SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
360SRC_URI[base64ct-1.6.0.sha256sum] = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 411SRC_URI[base64ct-1.7.3.sha256sum] = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3"
361SRC_URI[bitflags-2.6.0.sha256sum] = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 412SRC_URI[bitflags-2.9.1.sha256sum] = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
362SRC_URI[bitmaps-2.1.0.sha256sum] = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 413SRC_URI[bitmaps-2.1.0.sha256sum] = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
414SRC_URI[blake3-1.8.2.sha256sum] = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
363SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 415SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
364SRC_URI[bstr-1.10.0.sha256sum] = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" 416SRC_URI[bstr-1.12.0.sha256sum] = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4"
365SRC_URI[bumpalo-3.16.0.sha256sum] = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 417SRC_URI[bumpalo-3.17.0.sha256sum] = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
366SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 418SRC_URI[bytes-1.10.1.sha256sum] = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
367SRC_URI[bytes-1.7.2.sha256sum] = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" 419SRC_URI[cargo-0.88.0.sha256sum] = "e3266d7f10870d970f22fd244b5d4bb017f723247e6743f2283f6fe63a4f6084"
368SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" 420SRC_URI[cargo-credential-0.4.8.sha256sum] = "ac1ef5080adde1db190e901884d2c400990856c2a23201c5a181b910a6dbdf2a"
369SRC_URI[cargo-0.83.0.sha256sum] = "82921fd88b95a7c1a66106437f00f701169c656e221bba9f76f9d983e01e6b7b" 421SRC_URI[cargo-credential-libsecret-0.4.13.sha256sum] = "02d4e8e593dd3967cf90d6ae8e0e820abbb9ba168c4015dc04d90abc80477b8b"
370SRC_URI[cargo-credential-0.4.6.sha256sum] = "3a3e7c625670eacbefd48f552588c491eccc79a85a96898af13af7b312d1c4cd" 422SRC_URI[cargo-credential-macos-keychain-0.4.13.sha256sum] = "4037e5af4bd682580c82143a0a22d9fd2ae6e57ee8b9ea7110dabcf1160828cc"
371SRC_URI[cargo-credential-libsecret-0.4.8.sha256sum] = "7f83dd22c4024559012dd1f05b4391aa07c7765a935a4a6fc44ef34ba6cd6193" 423SRC_URI[cargo-credential-wincred-0.4.13.sha256sum] = "320491fd2d43703fe8685cc844af75eba650d32f51a26a9f37ec8fd0d426a738"
372SRC_URI[cargo-credential-macos-keychain-0.4.8.sha256sum] = "8ace02b644d20964a5e62067ed931600a1bdf88e43890bd881941643d56465d5" 424SRC_URI[cargo-platform-0.2.0.sha256sum] = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4"
373SRC_URI[cargo-credential-wincred-0.4.8.sha256sum] = "5bfc1351f7d7a121209e9ac65622abd8605cd411b502f7d9c88a8dfce26ebec5" 425SRC_URI[cargo-util-0.2.20.sha256sum] = "d767bc85f367f6483a6072430b56f5c0d6ee7636751a21a800526d0711753d76"
374SRC_URI[cargo-platform-0.1.8.sha256sum] = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" 426SRC_URI[cargo-util-schemas-0.8.1.sha256sum] = "ea8b01266e95c3cf839fe626e651fa36a9171033caa917a773d7a0ba1d5ce6be"
375SRC_URI[cargo-util-0.2.15.sha256sum] = "b6dd67a24439ca5260a08128b6cbf4b0f4453497a2f60508163ab9d5b534b122" 427SRC_URI[cbindgen-0.28.0.sha256sum] = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff"
376SRC_URI[cargo-util-schemas-0.6.0.sha256sum] = "3c052794544a1be7decd4bbfbe08440f9331bf2df90f95c3a731bdf21c4b7d98" 428SRC_URI[cc-1.2.22.sha256sum] = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1"
377SRC_URI[cbindgen-0.27.0.sha256sum] = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb"
378SRC_URI[cc-1.1.30.sha256sum] = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945"
379SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 429SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
380SRC_URI[clap-4.5.20.sha256sum] = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" 430SRC_URI[clap-4.5.38.sha256sum] = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000"
381SRC_URI[clap_builder-4.5.20.sha256sum] = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" 431SRC_URI[clap_builder-4.5.38.sha256sum] = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120"
382SRC_URI[clap_derive-4.5.18.sha256sum] = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 432SRC_URI[clap_complete-4.5.50.sha256sum] = "c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1"
383SRC_URI[clap_lex-0.7.2.sha256sum] = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" 433SRC_URI[clap_derive-4.5.32.sha256sum] = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7"
434SRC_URI[clap_lex-0.7.4.sha256sum] = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
384SRC_URI[clru-0.6.2.sha256sum] = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" 435SRC_URI[clru-0.6.2.sha256sum] = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59"
385SRC_URI[color-print-0.3.6.sha256sum] = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" 436SRC_URI[color-print-0.3.7.sha256sum] = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4"
386SRC_URI[color-print-proc-macro-0.3.6.sha256sum] = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" 437SRC_URI[color-print-proc-macro-0.3.7.sha256sum] = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22"
387SRC_URI[colorchoice-1.0.2.sha256sum] = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" 438SRC_URI[colorchoice-1.0.3.sha256sum] = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
388SRC_URI[const-oid-0.9.6.sha256sum] = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 439SRC_URI[const-oid-0.9.6.sha256sum] = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
389SRC_URI[core-foundation-0.9.4.sha256sum] = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 440SRC_URI[constant_time_eq-0.3.1.sha256sum] = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
441SRC_URI[core-foundation-0.10.0.sha256sum] = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63"
390SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 442SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
391SRC_URI[cpufeatures-0.2.14.sha256sum] = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 443SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
392SRC_URI[crates-io-0.40.5.sha256sum] = "5c1f3f1277728b222abe5d05f2683e6643344de0ed563eb46d3574b6cd3cf1c3" 444SRC_URI[crates-io-0.40.10.sha256sum] = "9c15b946f2bbd53f5be858ed02fcacfeb3646f3ca67b24defc276a01edd10de6"
393SRC_URI[crc32fast-1.4.2.sha256sum] = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 445SRC_URI[crc32fast-1.4.2.sha256sum] = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
394SRC_URI[crossbeam-channel-0.5.13.sha256sum] = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" 446SRC_URI[crossbeam-channel-0.5.15.sha256sum] = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
395SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 447SRC_URI[crossbeam-deque-0.8.6.sha256sum] = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
396SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 448SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
397SRC_URI[crossbeam-utils-0.8.20.sha256sum] = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 449SRC_URI[crossbeam-utils-0.8.21.sha256sum] = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
398SRC_URI[crypto-bigint-0.5.5.sha256sum] = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" 450SRC_URI[crypto-bigint-0.5.5.sha256sum] = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
399SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 451SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
400SRC_URI[ct-codecs-1.1.2.sha256sum] = "026ac6ceace6298d2c557ef5ed798894962296469ec7842288ea64674201a2d1" 452SRC_URI[ct-codecs-1.1.5.sha256sum] = "dd0d274c65cbc1c34703d2fc2ce0fb892ff68f4516b677671a2f238a30b9b2b2"
401SRC_URI[curl-0.4.47.sha256sum] = "d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265" 453SRC_URI[curl-0.4.47.sha256sum] = "d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265"
402SRC_URI[curl-sys-0.4.77+curl-8.10.1.sha256sum] = "f469e8a5991f277a208224f6c7ad72ecb5f986e36d09ae1f2c1bb9259478a480" 454SRC_URI[curl-sys-0.4.80+curl-8.12.1.sha256sum] = "55f7df2eac63200c3ab25bde3b2268ef2ee56af3d238e76d61f01c3c49bff734"
403SRC_URI[dbus-0.9.7.sha256sum] = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" 455SRC_URI[dbus-0.9.7.sha256sum] = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
404SRC_URI[der-0.7.9.sha256sum] = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" 456SRC_URI[der-0.7.10.sha256sum] = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
405SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 457SRC_URI[deranged-0.4.0.sha256sum] = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
406SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 458SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
459SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
407SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 460SRC_URI[dunce-1.0.5.sha256sum] = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
408SRC_URI[ecdsa-0.16.9.sha256sum] = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" 461SRC_URI[ecdsa-0.16.9.sha256sum] = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
409SRC_URI[ed25519-compact-2.1.1.sha256sum] = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190" 462SRC_URI[ed25519-compact-2.1.1.sha256sum] = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190"
410SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 463SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
411SRC_URI[elliptic-curve-0.13.8.sha256sum] = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 464SRC_URI[elliptic-curve-0.13.8.sha256sum] = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
412SRC_URI[encoding_rs-0.8.34.sha256sum] = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 465SRC_URI[encoding_rs-0.8.35.sha256sum] = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
413SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 466SRC_URI[equivalent-1.0.2.sha256sum] = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
414SRC_URI[erased-serde-0.4.5.sha256sum] = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" 467SRC_URI[erased-serde-0.4.6.sha256sum] = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
415SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 468SRC_URI[errno-0.3.12.sha256sum] = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
416SRC_URI[fallible-iterator-0.3.0.sha256sum] = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" 469SRC_URI[fallible-iterator-0.3.0.sha256sum] = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
417SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" 470SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
418SRC_URI[faster-hex-0.9.0.sha256sum] = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" 471SRC_URI[faster-hex-0.9.0.sha256sum] = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
419SRC_URI[fastrand-2.1.1.sha256sum] = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" 472SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
420SRC_URI[ff-0.13.0.sha256sum] = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" 473SRC_URI[ff-0.13.1.sha256sum] = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
421SRC_URI[fiat-crypto-0.2.9.sha256sum] = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 474SRC_URI[fiat-crypto-0.2.9.sha256sum] = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
422SRC_URI[filetime-0.2.25.sha256sum] = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 475SRC_URI[filetime-0.2.25.sha256sum] = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"
423SRC_URI[flate2-1.0.34.sha256sum] = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" 476SRC_URI[flate2-1.1.1.sha256sum] = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
424SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 477SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
425SRC_URI[foldhash-0.1.3.sha256sum] = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" 478SRC_URI[foldhash-0.1.5.sha256sum] = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
426SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 479SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
427SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 480SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
428SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 481SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
429SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 482SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
430SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 483SRC_URI[getrandom-0.2.16.sha256sum] = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
431SRC_URI[git2-0.19.0.sha256sum] = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" 484SRC_URI[getrandom-0.3.3.sha256sum] = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
432SRC_URI[git2-curl-0.20.0.sha256sum] = "68ff14527a1c242320039b138376f8e0786697a1b7b172bc44f6efda3ab9079f" 485SRC_URI[git2-0.20.2.sha256sum] = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110"
433SRC_URI[gix-0.64.0.sha256sum] = "d78414d29fcc82329080166077e0f7689f4016551fdb334d787c3d040fe2634f" 486SRC_URI[git2-curl-0.21.0.sha256sum] = "be8dcabbc09ece4d30a9aa983d5804203b7e2f8054a171f792deff59b56d31fa"
434SRC_URI[gix-actor-0.31.5.sha256sum] = "a0e454357e34b833cc3a00b6efbbd3dd4d18b24b9fb0c023876ec2645e8aa3f2" 487SRC_URI[gix-0.70.0.sha256sum] = "736f14636705f3a56ea52b553e67282519418d9a35bb1e90b3a9637a00296b68"
435SRC_URI[gix-attributes-0.22.5.sha256sum] = "ebccbf25aa4a973dd352564a9000af69edca90623e8a16dad9cbc03713131311" 488SRC_URI[gix-actor-0.33.2.sha256sum] = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2"
436SRC_URI[gix-bitmap-0.2.11.sha256sum] = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" 489SRC_URI[gix-attributes-0.24.0.sha256sum] = "f151000bf662ef5f641eca6102d942ee31ace80f271a3ef642e99776ce6ddb38"
437SRC_URI[gix-chunk-0.4.8.sha256sum] = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" 490SRC_URI[gix-bitmap-0.2.14.sha256sum] = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540"
438SRC_URI[gix-command-0.3.9.sha256sum] = "dff2e692b36bbcf09286c70803006ca3fd56551a311de450be317a0ab8ea92e7" 491SRC_URI[gix-chunk-0.4.11.sha256sum] = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f"
439SRC_URI[gix-commitgraph-0.24.3.sha256sum] = "133b06f67f565836ec0c473e2116a60fb74f80b6435e21d88013ac0e3c60fc78" 492SRC_URI[gix-command-0.4.1.sha256sum] = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1"
440SRC_URI[gix-config-0.38.0.sha256sum] = "28f53fd03d1bf09ebcc2c8654f08969439c4556e644ca925f27cf033bc43e658" 493SRC_URI[gix-commitgraph-0.26.0.sha256sum] = "e23a8ec2d8a16026a10dafdb6ed51bcfd08f5d97f20fa52e200bc50cb72e4877"
441SRC_URI[gix-config-value-0.14.8.sha256sum] = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" 494SRC_URI[gix-config-0.43.0.sha256sum] = "377c1efd2014d5d469e0b3cd2952c8097bce9828f634e04d5665383249f1d9e9"
442SRC_URI[gix-credentials-0.24.5.sha256sum] = "8ce391d305968782f1ae301c4a3d42c5701df7ff1d8bc03740300f6fd12bce78" 495SRC_URI[gix-config-value-0.14.12.sha256sum] = "8dc2c844c4cf141884678cabef736fd91dd73068b9146e6f004ba1a0457944b6"
443SRC_URI[gix-date-0.8.7.sha256sum] = "9eed6931f21491ee0aeb922751bd7ec97b4b2fe8fbfedcb678e2a2dce5f3b8c0" 496SRC_URI[gix-credentials-0.27.0.sha256sum] = "cf950f9ee1690bb9c4388b5152baa8a9f41ad61e5cf1ba0ec8c207b08dab9e45"
444SRC_URI[gix-date-0.9.0.sha256sum] = "35c84b7af01e68daf7a6bb8bb909c1ff5edb3ce4326f1f43063a5a96d3c3c8a5" 497SRC_URI[gix-date-0.9.4.sha256sum] = "daa30058ec7d3511fbc229e4f9e696a35abd07ec5b82e635eff864a2726217e4"
445SRC_URI[gix-diff-0.44.1.sha256sum] = "1996d5c8a305b59709467d80617c9fde48d9d75fd1f4179ea970912630886c9d" 498SRC_URI[gix-diff-0.50.0.sha256sum] = "62afb7f4ca0acdf4e9dad92065b2eb1bf2993bcc5014b57bc796e3a365b17c4d"
446SRC_URI[gix-dir-0.6.0.sha256sum] = "0c975679aa00dd2d757bfd3ddb232e8a188c0094c3306400575a0813858b1365" 499SRC_URI[gix-dir-0.12.0.sha256sum] = "c1d78db3927a12f7d1b788047b84efacaab03ef25738bd1c77856ad8966bd57b"
447SRC_URI[gix-discover-0.33.0.sha256sum] = "67662731cec3cb31ba3ed2463809493f76d8e5d6c6d245de8b0560438c13450e" 500SRC_URI[gix-discover-0.38.0.sha256sum] = "d0c2414bdf04064e0f5a5aa029dfda1e663cf9a6c4bfc8759f2d369299bb65d8"
448SRC_URI[gix-features-0.38.2.sha256sum] = "ac7045ac9fe5f9c727f38799d002a7ed3583cd777e3322a7c4b43e3cf437dc69" 501SRC_URI[gix-features-0.40.0.sha256sum] = "8bfdd4838a8d42bd482c9f0cb526411d003ee94cc7c7b08afe5007329c71d554"
449SRC_URI[gix-filter-0.11.3.sha256sum] = "e6547738da28275f4dff4e9f3a0f28509f53f94dd6bd822733c91cb306bca61a" 502SRC_URI[gix-filter-0.17.0.sha256sum] = "bdcc36cd7dbc63ed0ec3558645886553d1afd3cd09daa5efb9cba9cceb942bbb"
450SRC_URI[gix-fs-0.11.3.sha256sum] = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" 503SRC_URI[gix-fs-0.13.0.sha256sum] = "182e7fa7bfdf44ffb7cfe7451b373cdf1e00870ac9a488a49587a110c562063d"
451SRC_URI[gix-glob-0.16.5.sha256sum] = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" 504SRC_URI[gix-glob-0.18.0.sha256sum] = "4e9c7249fa0a78f9b363aa58323db71e0a6161fd69860ed6f48dedf0ef3a314e"
452SRC_URI[gix-hash-0.14.2.sha256sum] = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" 505SRC_URI[gix-hash-0.16.0.sha256sum] = "e81c5ec48649b1821b3ed066a44efb95f1a268b35c1d91295e61252539fbe9f8"
453SRC_URI[gix-hashtable-0.5.2.sha256sum] = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" 506SRC_URI[gix-hashtable-0.7.0.sha256sum] = "189130bc372accd02e0520dc5ab1cef318dcc2bc829b76ab8d84bbe90ac212d1"
454SRC_URI[gix-ignore-0.11.4.sha256sum] = "e447cd96598460f5906a0f6c75e950a39f98c2705fc755ad2f2020c9e937fab7" 507SRC_URI[gix-ignore-0.13.0.sha256sum] = "4f529dcb80bf9855c0a7c49f0ac588df6d6952d63a63fefc254b9c869d2cdf6f"
455SRC_URI[gix-index-0.33.1.sha256sum] = "9a9a44eb55bd84bb48f8a44980e951968ced21e171b22d115d1cdcef82a7d73f" 508SRC_URI[gix-index-0.38.0.sha256sum] = "acd12e3626879369310fffe2ac61acc828613ef656b50c4ea984dd59d7dc85d8"
456SRC_URI[gix-lock-14.0.0.sha256sum] = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" 509SRC_URI[gix-lock-16.0.0.sha256sum] = "9739815270ff6940968441824d162df9433db19211ca9ba8c3fc1b50b849c642"
457SRC_URI[gix-macros-0.1.5.sha256sum] = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" 510SRC_URI[gix-negotiate-0.18.0.sha256sum] = "a6a8af1ef7bbe303d30b55312b7f4d33e955de43a3642ae9b7347c623d80ef80"
458SRC_URI[gix-negotiate-0.13.2.sha256sum] = "9ec879fb6307bb63519ba89be0024c6f61b4b9d61f1a91fd2ce572d89fe9c224" 511SRC_URI[gix-object-0.47.0.sha256sum] = "ddc4b3a0044244f0fe22347fb7a79cca165e37829d668b41b85ff46a43e5fd68"
459SRC_URI[gix-object-0.42.3.sha256sum] = "25da2f46b4e7c2fa7b413ce4dffb87f69eaf89c2057e386491f4c55cadbfe386" 512SRC_URI[gix-odb-0.67.0.sha256sum] = "3e93457df69cd09573608ce9fa4f443fbd84bc8d15d8d83adecd471058459c1b"
460SRC_URI[gix-odb-0.61.1.sha256sum] = "20d384fe541d93d8a3bb7d5d5ef210780d6df4f50c4e684ccba32665a5e3bc9b" 513SRC_URI[gix-pack-0.57.0.sha256sum] = "fc13a475b3db735617017fb35f816079bf503765312d4b1913b18cf96f3fa515"
461SRC_URI[gix-pack-0.51.1.sha256sum] = "3e0594491fffe55df94ba1c111a6566b7f56b3f8d2e1efc750e77d572f5f5229" 514SRC_URI[gix-packetline-0.18.4.sha256sum] = "123844a70cf4d5352441dc06bab0da8aef61be94ec239cb631e0ba01dc6d3a04"
462SRC_URI[gix-packetline-0.17.6.sha256sum] = "8c43ef4d5fe2fa222c606731c8bdbf4481413ee4ef46d61340ec39e4df4c5e49" 515SRC_URI[gix-packetline-blocking-0.18.3.sha256sum] = "1ecf3ea2e105c7e45587bac04099824301262a6c43357fad5205da36dbb233b3"
463SRC_URI[gix-packetline-blocking-0.17.5.sha256sum] = "b9802304baa798dd6f5ff8008a2b6516d54b74a69ca2d3a2b9e2d6c3b5556b40" 516SRC_URI[gix-path-0.10.18.sha256sum] = "567f65fec4ef10dfab97ae71f26a27fd4d7fe7b8e3f90c8a58551c41ff3fb65b"
464SRC_URI[gix-path-0.10.11.sha256sum] = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" 517SRC_URI[gix-pathspec-0.9.0.sha256sum] = "6430d3a686c08e9d59019806faa78c17315fe22ae73151a452195857ca02f86c"
465SRC_URI[gix-pathspec-0.7.7.sha256sum] = "5d23bf239532b4414d0e63b8ab3a65481881f7237ed9647bb10c1e3cc54c5ceb" 518SRC_URI[gix-prompt-0.9.1.sha256sum] = "79f2185958e1512b989a007509df8d61dca014aa759a22bee80cfa6c594c3b6d"
466SRC_URI[gix-prompt-0.8.7.sha256sum] = "74fde865cdb46b30d8dad1293385d9bcf998d3a39cbf41bee67d0dab026fe6b1" 519SRC_URI[gix-protocol-0.48.0.sha256sum] = "6c61bd61afc6b67d213241e2100394c164be421e3f7228d3521b04f48ca5ba90"
467SRC_URI[gix-protocol-0.45.3.sha256sum] = "cc43a1006f01b5efee22a003928c9eb83dde2f52779ded9d4c0732ad93164e3e" 520SRC_URI[gix-quote-0.4.15.sha256sum] = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6"
468SRC_URI[gix-quote-0.4.12.sha256sum] = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" 521SRC_URI[gix-ref-0.50.0.sha256sum] = "47adf4c5f933429f8554e95d0d92eee583cfe4b95d2bf665cd6fd4a1531ee20c"
469SRC_URI[gix-ref-0.45.0.sha256sum] = "636e96a0a5562715153fee098c217110c33a6f8218f08f4687ff99afde159bb5" 522SRC_URI[gix-refspec-0.28.0.sha256sum] = "59650228d8f612f68e7f7a25f517fcf386c5d0d39826085492e94766858b0a90"
470SRC_URI[gix-refspec-0.23.1.sha256sum] = "6868f8cd2e62555d1f7c78b784bece43ace40dd2a462daf3b588d5416e603f37" 523SRC_URI[gix-revision-0.32.0.sha256sum] = "3fe28bbccca55da6d66e6c6efc6bb4003c29d407afd8178380293729733e6b53"
471SRC_URI[gix-revision-0.27.2.sha256sum] = "01b13e43c2118c4b0537ddac7d0821ae0dfa90b7b8dbf20c711e153fb749adce" 524SRC_URI[gix-revwalk-0.18.0.sha256sum] = "d4ecb80c235b1e9ef2b99b23a81ea50dd569a88a9eb767179793269e0e616247"
472SRC_URI[gix-revwalk-0.13.2.sha256sum] = "1b030ccaab71af141f537e0225f19b9e74f25fefdba0372246b844491cab43e0" 525SRC_URI[gix-sec-0.10.12.sha256sum] = "47aeb0f13de9ef2f3033f5ff218de30f44db827ac9f1286f9ef050aacddd5888"
473SRC_URI[gix-sec-0.10.8.sha256sum] = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" 526SRC_URI[gix-shallow-0.2.0.sha256sum] = "ab72543011e303e52733c85bef784603ef39632ddf47f69723def52825e35066"
474SRC_URI[gix-submodule-0.12.0.sha256sum] = "0f2e0f69aa00805e39d39ec80472a7e9da20ed5d73318b27925a2cc198e854fd" 527SRC_URI[gix-submodule-0.17.0.sha256sum] = "74972fe8d46ac8a09490ae1e843b4caf221c5b157c5ac17057e8e1c38417a3ac"
475SRC_URI[gix-tempfile-14.0.2.sha256sum] = "046b4927969fa816a150a0cda2e62c80016fe11fb3c3184e4dddf4e542f108aa" 528SRC_URI[gix-tempfile-16.0.0.sha256sum] = "2558f423945ef24a8328c55d1fd6db06b8376b0e7013b1bb476cc4ffdf678501"
476SRC_URI[gix-trace-0.1.10.sha256sum] = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" 529SRC_URI[gix-trace-0.1.12.sha256sum] = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7"
477SRC_URI[gix-transport-0.42.3.sha256sum] = "421dcccab01b41a15d97b226ad97a8f9262295044e34fbd37b10e493b0a6481f" 530SRC_URI[gix-transport-0.45.0.sha256sum] = "11187418489477b1b5b862ae1aedbbac77e582f2c4b0ef54280f20cfe5b964d9"
478SRC_URI[gix-traverse-0.39.2.sha256sum] = "e499a18c511e71cf4a20413b743b9f5bcf64b3d9e81e9c3c6cd399eae55a8840" 531SRC_URI[gix-traverse-0.44.0.sha256sum] = "2bec70e53896586ef32a3efa7e4427b67308531ed186bb6120fb3eca0f0d61b4"
479SRC_URI[gix-url-0.27.5.sha256sum] = "fd280c5e84fb22e128ed2a053a0daeacb6379469be6a85e3d518a0636e160c89" 532SRC_URI[gix-url-0.29.0.sha256sum] = "29218c768b53dd8f116045d87fec05b294c731a4b2bdd257eeca2084cc150b13"
480SRC_URI[gix-utils-0.1.12.sha256sum] = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" 533SRC_URI[gix-utils-0.1.14.sha256sum] = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f"
481SRC_URI[gix-validate-0.8.5.sha256sum] = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf" 534SRC_URI[gix-validate-0.9.4.sha256sum] = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084"
482SRC_URI[gix-worktree-0.34.1.sha256sum] = "26f7326ebe0b9172220694ea69d344c536009a9b98fb0f9de092c440f3efe7a6" 535SRC_URI[gix-validate-0.10.0.sha256sum] = "77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d"
483SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 536SRC_URI[gix-worktree-0.39.0.sha256sum] = "6673512f7eaa57a6876adceca6978a501d6c6569a4f177767dc405f8b9778958"
484SRC_URI[globset-0.4.15.sha256sum] = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" 537SRC_URI[glob-0.3.2.sha256sum] = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
538SRC_URI[globset-0.4.16.sha256sum] = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5"
485SRC_URI[group-0.13.0.sha256sum] = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 539SRC_URI[group-0.13.0.sha256sum] = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
486SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 540SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
487SRC_URI[hashbrown-0.15.0.sha256sum] = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" 541SRC_URI[hashbrown-0.15.3.sha256sum] = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
488SRC_URI[hashlink-0.9.1.sha256sum] = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" 542SRC_URI[hashlink-0.10.0.sha256sum] = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
489SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 543SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
490SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 544SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
491SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 545SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
492SRC_URI[hkdf-0.12.4.sha256sum] = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 546SRC_URI[hkdf-0.12.4.sha256sum] = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
493SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 547SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
494SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 548SRC_URI[home-0.5.11.sha256sum] = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"
495SRC_URI[http-auth-0.1.10.sha256sum] = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822" 549SRC_URI[http-auth-0.1.10.sha256sum] = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822"
496SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 550SRC_URI[icu_collections-2.0.0.sha256sum] = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
497SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 551SRC_URI[icu_locale_core-2.0.0.sha256sum] = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
552SRC_URI[icu_normalizer-2.0.0.sha256sum] = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
553SRC_URI[icu_normalizer_data-2.0.0.sha256sum] = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
554SRC_URI[icu_properties-2.0.0.sha256sum] = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a"
555SRC_URI[icu_properties_data-2.0.0.sha256sum] = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04"
556SRC_URI[icu_provider-2.0.0.sha256sum] = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
557SRC_URI[idna-1.0.3.sha256sum] = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
558SRC_URI[idna_adapter-1.2.1.sha256sum] = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
498SRC_URI[ignore-0.4.23.sha256sum] = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" 559SRC_URI[ignore-0.4.23.sha256sum] = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b"
499SRC_URI[im-rc-15.1.0.sha256sum] = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" 560SRC_URI[im-rc-15.1.0.sha256sum] = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
500SRC_URI[implib-0.3.3.sha256sum] = "27a77d80daf69d39932349c736810ce6577550b75342e2b426e559ab99632bd8" 561SRC_URI[implib-0.3.5.sha256sum] = "598bf7096215f835b0f70c94d7b033da3cbf66181b619f25e54d65adaf825e62"
501SRC_URI[indexmap-2.6.0.sha256sum] = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 562SRC_URI[indexmap-2.9.0.sha256sum] = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
563SRC_URI[is_executable-1.0.4.sha256sum] = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2"
502SRC_URI[is_terminal_polyfill-1.70.1.sha256sum] = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 564SRC_URI[is_terminal_polyfill-1.70.1.sha256sum] = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
503SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 565SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
504SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 566SRC_URI[itoa-1.0.15.sha256sum] = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
505SRC_URI[jiff-0.1.13.sha256sum] = "8a45489186a6123c128fdf6016183fcfab7113e1820eb813127e036e287233fb" 567SRC_URI[jiff-0.2.13.sha256sum] = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806"
506SRC_URI[jiff-tzdb-0.1.1.sha256sum] = "91335e575850c5c4c673b9bd467b0e025f164ca59d0564f69d0c2ee0ffad4653" 568SRC_URI[jiff-static-0.2.13.sha256sum] = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48"
507SRC_URI[jiff-tzdb-platform-0.1.1.sha256sum] = "9835f0060a626fe59f160437bc725491a6af23133ea906500027d1bd2f8f4329" 569SRC_URI[jiff-tzdb-0.1.4.sha256sum] = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524"
508SRC_URI[jobserver-0.1.32.sha256sum] = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" 570SRC_URI[jiff-tzdb-platform-0.1.3.sha256sum] = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
509SRC_URI[js-sys-0.3.72.sha256sum] = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" 571SRC_URI[jobserver-0.1.33.sha256sum] = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
572SRC_URI[js-sys-0.3.77.sha256sum] = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
510SRC_URI[kstring-2.0.2.sha256sum] = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" 573SRC_URI[kstring-2.0.2.sha256sum] = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1"
511SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 574SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
512SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 575SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
513SRC_URI[libc-0.2.161.sha256sum] = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" 576SRC_URI[libc-0.2.172.sha256sum] = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
514SRC_URI[libdbus-sys-0.2.5.sha256sum] = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" 577SRC_URI[libdbus-sys-0.2.5.sha256sum] = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
515SRC_URI[libgit2-sys-0.17.0+1.8.1.sha256sum] = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" 578SRC_URI[libgit2-sys-0.18.1+1.9.0.sha256sum] = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e"
516SRC_URI[libloading-0.8.5.sha256sum] = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" 579SRC_URI[libloading-0.8.7.sha256sum] = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c"
517SRC_URI[libnghttp2-sys-0.1.10+1.61.0.sha256sum] = "959c25552127d2e1fa72f0e52548ec04fc386e827ba71a7bd01db46a447dc135" 580SRC_URI[libnghttp2-sys-0.1.11+1.64.0.sha256sum] = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4"
518SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 581SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
519SRC_URI[libsqlite3-sys-0.30.1.sha256sum] = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" 582SRC_URI[libsqlite3-sys-0.31.0.sha256sum] = "ad8935b44e7c13394a179a438e0cebba0fe08fe01b54f152e29a93b5cf993fd4"
520SRC_URI[libssh2-sys-0.3.0.sha256sum] = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" 583SRC_URI[libssh2-sys-0.3.1.sha256sum] = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
521SRC_URI[libz-sys-1.1.20.sha256sum] = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" 584SRC_URI[libz-sys-1.1.22.sha256sum] = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d"
522SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 585SRC_URI[linux-raw-sys-0.4.15.sha256sum] = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
586SRC_URI[linux-raw-sys-0.9.4.sha256sum] = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
587SRC_URI[litemap-0.8.0.sha256sum] = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
523SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 588SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
524SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 589SRC_URI[log-0.4.27.sha256sum] = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
525SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 590SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
526SRC_URI[maybe-async-0.2.10.sha256sum] = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" 591SRC_URI[maybe-async-0.2.10.sha256sum] = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
527SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 592SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
528SRC_URI[memmap2-0.9.5.sha256sum] = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" 593SRC_URI[memmap2-0.9.5.sha256sum] = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"
529SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 594SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
530SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 595SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
531SRC_URI[miniz_oxide-0.8.0.sha256sum] = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 596SRC_URI[miniz_oxide-0.8.8.sha256sum] = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
532SRC_URI[miow-0.6.0.sha256sum] = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" 597SRC_URI[miow-0.6.0.sha256sum] = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044"
533SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 598SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
534SRC_URI[normpath-1.3.0.sha256sum] = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" 599SRC_URI[normpath-1.3.0.sha256sum] = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed"
535SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 600SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
536SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 601SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
537SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 602SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
538SRC_URI[num_threads-0.1.7.sha256sum] = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" 603SRC_URI[object-0.36.7.sha256sum] = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
539SRC_URI[object-0.36.5.sha256sum] = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 604SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
540SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
541SRC_URI[opener-0.7.2.sha256sum] = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681" 605SRC_URI[opener-0.7.2.sha256sum] = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681"
542SRC_URI[openssl-0.10.57.sha256sum] = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" 606SRC_URI[openssl-0.10.57.sha256sum] = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
543SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 607SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
544SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 608SRC_URI[openssl-probe-0.1.6.sha256sum] = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
545SRC_URI[openssl-src-300.3.2+3.3.2.sha256sum] = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" 609SRC_URI[openssl-src-300.5.0+3.5.0.sha256sum] = "e8ce546f549326b0e6052b649198487d91320875da901e7bd11a06d1ee3f9c2f"
546SRC_URI[openssl-sys-0.9.104.sha256sum] = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" 610SRC_URI[openssl-sys-0.9.108.sha256sum] = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847"
547SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" 611SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
548SRC_URI[orion-0.17.7.sha256sum] = "97ab5415cf60cd271259e576f2ddee7a5f9fed42659035224c01af766943fad3" 612SRC_URI[orion-0.17.10.sha256sum] = "ccc95d369bc6b5cf404c562cd33de439ae9ca6dc4b044cd2625b2072ca0b81e4"
549SRC_URI[os_info-3.8.2.sha256sum] = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" 613SRC_URI[os_info-3.11.0.sha256sum] = "41fc863e2ca13dc2d5c34fb22ea4a588248ac14db929616ba65c45f21744b1e9"
550SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 614SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
551SRC_URI[p384-0.13.0.sha256sum] = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" 615SRC_URI[p384-0.13.1.sha256sum] = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6"
552SRC_URI[parking_lot-0.12.3.sha256sum] = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 616SRC_URI[parking_lot-0.12.3.sha256sum] = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
553SRC_URI[parking_lot_core-0.9.10.sha256sum] = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 617SRC_URI[parking_lot_core-0.9.10.sha256sum] = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
554SRC_URI[pasetors-0.6.8.sha256sum] = "6b36d47c66f2230dd1b7143d9afb2b4891879020210eddf2ccb624e529b96dba" 618SRC_URI[pasetors-0.7.4.sha256sum] = "cb798c661c80718af935bea17997928937822e7369cd087667ff4179f9146551"
555SRC_URI[pathdiff-0.2.2.sha256sum] = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" 619SRC_URI[pathdiff-0.2.3.sha256sum] = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
556SRC_URI[pem-rfc7468-0.7.0.sha256sum] = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 620SRC_URI[pem-rfc7468-0.7.0.sha256sum] = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
557SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 621SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
558SRC_URI[pin-project-lite-0.2.14.sha256sum] = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 622SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
559SRC_URI[pkcs8-0.10.2.sha256sum] = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 623SRC_URI[pkcs8-0.10.2.sha256sum] = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
560SRC_URI[pkg-config-0.3.31.sha256sum] = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 624SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
625SRC_URI[portable-atomic-1.11.0.sha256sum] = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
626SRC_URI[portable-atomic-util-0.2.4.sha256sum] = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
627SRC_URI[potential_utf-0.1.2.sha256sum] = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
561SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 628SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
562SRC_URI[ppv-lite86-0.2.20.sha256sum] = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 629SRC_URI[ppv-lite86-0.2.21.sha256sum] = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
563SRC_URI[primeorder-0.13.6.sha256sum] = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" 630SRC_URI[primeorder-0.13.6.sha256sum] = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
564SRC_URI[proc-macro2-1.0.88.sha256sum] = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" 631SRC_URI[proc-macro2-1.0.95.sha256sum] = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
565SRC_URI[prodash-28.0.0.sha256sum] = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" 632SRC_URI[prodash-29.0.2.sha256sum] = "f04bb108f648884c23b98a0e940ebc2c93c0c3b89f04dbaf7eb8256ce617d1bc"
566SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 633SRC_URI[quote-1.0.40.sha256sum] = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
567SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 634SRC_URI[r-efi-5.2.0.sha256sum] = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
568SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 635SRC_URI[rand-0.9.1.sha256sum] = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
636SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
569SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 637SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
638SRC_URI[rand_core-0.9.3.sha256sum] = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
570SRC_URI[rand_xoshiro-0.6.0.sha256sum] = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 639SRC_URI[rand_xoshiro-0.6.0.sha256sum] = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
571SRC_URI[redox_syscall-0.5.7.sha256sum] = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 640SRC_URI[redox_syscall-0.5.12.sha256sum] = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
572SRC_URI[regex-1.11.0.sha256sum] = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" 641SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
573SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 642SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
574SRC_URI[regex-automata-0.4.8.sha256sum] = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" 643SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
575SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 644SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
576SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 645SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
577SRC_URI[rfc6979-0.4.0.sha256sum] = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 646SRC_URI[rfc6979-0.4.0.sha256sum] = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
578SRC_URI[rusqlite-0.32.1.sha256sum] = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" 647SRC_URI[rusqlite-0.33.0.sha256sum] = "1c6d5e5acb6f6129fe3f7ba0a7fc77bca1942cb568535e18e7bc40262baf3110"
579SRC_URI[rustfix-0.8.6.sha256sum] = "8fb2b066405a6d48a1b39c0022270503e352ae84da0c24e1d5f8ffc38e97a325" 648SRC_URI[rustc-hash-2.1.1.sha256sum] = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
580SRC_URI[rustix-0.38.37.sha256sum] = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 649SRC_URI[rustc-stable-hash-0.1.2.sha256sum] = "781442f29170c5c93b7185ad559492601acdc71d5bb0706f5868094f45cfcd08"
581SRC_URI[ryu-1.0.18.sha256sum] = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 650SRC_URI[rustfix-0.9.0.sha256sum] = "7f66156d7471ff4f12253cd7fd76dfe637a595a9418168154e8570f3947fe9a8"
651SRC_URI[rustix-0.38.44.sha256sum] = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
652SRC_URI[rustix-1.0.7.sha256sum] = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
653SRC_URI[ryu-1.0.20.sha256sum] = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
582SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 654SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
583SRC_URI[schannel-0.1.26.sha256sum] = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" 655SRC_URI[schannel-0.1.27.sha256sum] = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d"
584SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 656SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
585SRC_URI[sec1-0.7.3.sha256sum] = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 657SRC_URI[sec1-0.7.3.sha256sum] = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
586SRC_URI[security-framework-2.11.1.sha256sum] = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 658SRC_URI[security-framework-3.2.0.sha256sum] = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316"
587SRC_URI[security-framework-sys-2.12.0.sha256sum] = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" 659SRC_URI[security-framework-sys-2.14.0.sha256sum] = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32"
588SRC_URI[semver-1.0.23.sha256sum] = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 660SRC_URI[semver-1.0.26.sha256sum] = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
589SRC_URI[serde-1.0.210.sha256sum] = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 661SRC_URI[serde-1.0.219.sha256sum] = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
590SRC_URI[serde-untagged-0.1.6.sha256sum] = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" 662SRC_URI[serde-untagged-0.1.7.sha256sum] = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e"
591SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" 663SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
592SRC_URI[serde_derive-1.0.210.sha256sum] = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 664SRC_URI[serde_derive-1.0.219.sha256sum] = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
593SRC_URI[serde_ignored-0.1.10.sha256sum] = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf" 665SRC_URI[serde_ignored-0.1.12.sha256sum] = "b516445dac1e3535b6d658a7b528d771153dfb272ed4180ca4617a20550365ff"
594SRC_URI[serde_json-1.0.129.sha256sum] = "6dbcf9b78a125ee667ae19388837dd12294b858d101fdd393cb9d5501ef09eb2" 666SRC_URI[serde_json-1.0.140.sha256sum] = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
595SRC_URI[serde_spanned-0.6.8.sha256sum] = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 667SRC_URI[serde_spanned-0.6.8.sha256sum] = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
596SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 668SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
597SRC_URI[sha1_smol-1.0.1.sha256sum] = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" 669SRC_URI[sha1_smol-1.0.1.sha256sum] = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
598SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 670SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
599SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 671SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
600SRC_URI[shell-escape-0.1.5.sha256sum] = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" 672SRC_URI[shell-escape-0.1.5.sha256sum] = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
601SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 673SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
602SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 674SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
603SRC_URI[signature-2.2.0.sha256sum] = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 675SRC_URI[signature-2.2.0.sha256sum] = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
604SRC_URI[sized-chunks-0.6.5.sha256sum] = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 676SRC_URI[sized-chunks-0.6.5.sha256sum] = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
605SRC_URI[smallvec-1.13.2.sha256sum] = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 677SRC_URI[smallvec-1.15.0.sha256sum] = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
606SRC_URI[socket2-0.5.7.sha256sum] = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 678SRC_URI[socket2-0.5.9.sha256sum] = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef"
607SRC_URI[spki-0.7.3.sha256sum] = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 679SRC_URI[spki-0.7.3.sha256sum] = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
680SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
608SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 681SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
609SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 682SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
610SRC_URI[subtle-2.6.1.sha256sum] = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 683SRC_URI[subtle-2.6.1.sha256sum] = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
611SRC_URI[supports-hyperlinks-3.0.0.sha256sum] = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee" 684SRC_URI[supports-hyperlinks-3.1.0.sha256sum] = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b"
612SRC_URI[supports-unicode-3.0.0.sha256sum] = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" 685SRC_URI[supports-unicode-3.0.0.sha256sum] = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
613SRC_URI[syn-2.0.79.sha256sum] = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" 686SRC_URI[syn-2.0.101.sha256sum] = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
614SRC_URI[tar-0.4.42.sha256sum] = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" 687SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
615SRC_URI[tempfile-3.13.0.sha256sum] = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" 688SRC_URI[tar-0.4.44.sha256sum] = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
616SRC_URI[terminal_size-0.4.0.sha256sum] = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" 689SRC_URI[tempfile-3.20.0.sha256sum] = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
617SRC_URI[thiserror-1.0.64.sha256sum] = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" 690SRC_URI[terminal_size-0.4.2.sha256sum] = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed"
618SRC_URI[thiserror-impl-1.0.64.sha256sum] = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" 691SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
692SRC_URI[thiserror-2.0.12.sha256sum] = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
693SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
694SRC_URI[thiserror-impl-2.0.12.sha256sum] = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
619SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 695SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
620SRC_URI[time-0.3.36.sha256sum] = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 696SRC_URI[time-0.3.41.sha256sum] = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
621SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 697SRC_URI[time-core-0.1.4.sha256sum] = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
622SRC_URI[time-macros-0.2.18.sha256sum] = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 698SRC_URI[time-macros-0.2.22.sha256sum] = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
623SRC_URI[tinyvec-1.8.0.sha256sum] = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 699SRC_URI[tinystr-0.8.1.sha256sum] = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
700SRC_URI[tinyvec-1.9.0.sha256sum] = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71"
624SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 701SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
625SRC_URI[toml-0.8.19.sha256sum] = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" 702SRC_URI[toml-0.8.22.sha256sum] = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae"
626SRC_URI[toml_datetime-0.6.8.sha256sum] = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 703SRC_URI[toml_datetime-0.6.9.sha256sum] = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3"
627SRC_URI[toml_edit-0.22.22.sha256sum] = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 704SRC_URI[toml_edit-0.22.26.sha256sum] = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e"
628SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 705SRC_URI[toml_write-0.1.1.sha256sum] = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076"
629SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 706SRC_URI[tracing-0.1.41.sha256sum] = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
707SRC_URI[tracing-attributes-0.1.28.sha256sum] = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
630SRC_URI[tracing-chrome-0.7.2.sha256sum] = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724" 708SRC_URI[tracing-chrome-0.7.2.sha256sum] = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724"
631SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 709SRC_URI[tracing-core-0.1.33.sha256sum] = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
632SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 710SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
633SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" 711SRC_URI[tracing-subscriber-0.3.19.sha256sum] = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
634SRC_URI[typeid-1.0.2.sha256sum] = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" 712SRC_URI[typeid-1.0.3.sha256sum] = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
635SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 713SRC_URI[typenum-1.18.0.sha256sum] = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
636SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 714SRC_URI[unicase-2.8.1.sha256sum] = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
637SRC_URI[unicode-bidi-0.3.17.sha256sum] = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
638SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" 715SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
639SRC_URI[unicode-ident-1.0.13.sha256sum] = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 716SRC_URI[unicode-ident-1.0.18.sha256sum] = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
640SRC_URI[unicode-normalization-0.1.24.sha256sum] = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 717SRC_URI[unicode-normalization-0.1.24.sha256sum] = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
641SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 718SRC_URI[unicode-width-0.2.0.sha256sum] = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
642SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 719SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
643SRC_URI[url-2.5.2.sha256sum] = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 720SRC_URI[url-2.5.4.sha256sum] = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
721SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
644SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 722SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
645SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 723SRC_URI[valuable-0.1.1.sha256sum] = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
646SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 724SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
647SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 725SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
648SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 726SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
649SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 727SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
650SRC_URI[wasm-bindgen-0.2.95.sha256sum] = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" 728SRC_URI[wasi-0.14.2+wasi-0.2.4.sha256sum] = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
651SRC_URI[wasm-bindgen-backend-0.2.95.sha256sum] = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" 729SRC_URI[wasm-bindgen-0.2.100.sha256sum] = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
652SRC_URI[wasm-bindgen-macro-0.2.95.sha256sum] = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" 730SRC_URI[wasm-bindgen-backend-0.2.100.sha256sum] = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
653SRC_URI[wasm-bindgen-macro-support-0.2.95.sha256sum] = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" 731SRC_URI[wasm-bindgen-macro-0.2.100.sha256sum] = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
654SRC_URI[wasm-bindgen-shared-0.2.95.sha256sum] = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" 732SRC_URI[wasm-bindgen-macro-support-0.2.100.sha256sum] = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
733SRC_URI[wasm-bindgen-shared-0.2.100.sha256sum] = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
655SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 734SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
656SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 735SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
657SRC_URI[winapi-util-0.1.9.sha256sum] = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 736SRC_URI[winapi-util-0.1.9.sha256sum] = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
@@ -661,22 +740,41 @@ SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec
661SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 740SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
662SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 741SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
663SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 742SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
743SRC_URI[windows-targets-0.53.0.sha256sum] = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b"
664SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 744SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
665SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 745SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
746SRC_URI[windows_aarch64_gnullvm-0.53.0.sha256sum] = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
666SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 747SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
667SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 748SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
749SRC_URI[windows_aarch64_msvc-0.53.0.sha256sum] = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
668SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 750SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
669SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 751SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
752SRC_URI[windows_i686_gnu-0.53.0.sha256sum] = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
670SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 753SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
754SRC_URI[windows_i686_gnullvm-0.53.0.sha256sum] = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
671SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 755SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
672SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 756SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
757SRC_URI[windows_i686_msvc-0.53.0.sha256sum] = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
673SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 758SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
674SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 759SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
760SRC_URI[windows_x86_64_gnu-0.53.0.sha256sum] = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
675SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 761SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
676SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 762SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
763SRC_URI[windows_x86_64_gnullvm-0.53.0.sha256sum] = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
677SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 764SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
678SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 765SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
679SRC_URI[winnow-0.6.20.sha256sum] = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 766SRC_URI[windows_x86_64_msvc-0.53.0.sha256sum] = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
680SRC_URI[zerocopy-0.7.35.sha256sum] = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 767SRC_URI[winnow-0.6.26.sha256sum] = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28"
681SRC_URI[zerocopy-derive-0.7.35.sha256sum] = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 768SRC_URI[winnow-0.7.10.sha256sum] = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
769SRC_URI[wit-bindgen-rt-0.39.0.sha256sum] = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
770SRC_URI[writeable-0.6.1.sha256sum] = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
771SRC_URI[yoke-0.8.0.sha256sum] = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
772SRC_URI[yoke-derive-0.8.0.sha256sum] = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
773SRC_URI[zerocopy-0.8.25.sha256sum] = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
774SRC_URI[zerocopy-derive-0.8.25.sha256sum] = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
775SRC_URI[zerofrom-0.1.6.sha256sum] = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
776SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
682SRC_URI[zeroize-1.8.1.sha256sum] = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 777SRC_URI[zeroize-1.8.1.sha256sum] = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
778SRC_URI[zerotrie-0.2.2.sha256sum] = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
779SRC_URI[zerovec-0.11.2.sha256sum] = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
780SRC_URI[zerovec-derive-0.11.1.sha256sum] = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
diff --git a/meta/recipes-devtools/rust/cargo-c/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch b/meta/recipes-devtools/rust/cargo-c/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch
deleted file mode 100644
index 95dcb45e56..0000000000
--- a/meta/recipes-devtools/rust/cargo-c/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 3665e73b2f087370f8058c12911996b109d8e93a Mon Sep 17 00:00:00 2001
2From: Dan Gohman <dev@sunfishcode.online>
3Date: Sun, 6 Apr 2025 05:22:49 -0700
4Subject: [PATCH] Define more ioctl codes on riscv32gc-unknown-linux-gnu
5
6Define ioctl codes including `FICLONE` and `FS_IOC32_GETVERSION` on
7riscv32gc-unknown-linux-gnu.
8
9Upstream-Status: Backport [https://github.com/rust-lang/libc/commit/4b439b0953573e0383da7e092b1f516ba21f3398]
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 src/unix/linux_like/linux/arch/generic/mod.rs | 6 +++++-
13 1 file changed, 5 insertions(+), 1 deletion(-)
14
15diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs
16index 2f437e1..fdac4bb 100644
17--- a/src/unix/linux_like/linux/arch/generic/mod.rs
18+++ b/src/unix/linux_like/linux/arch/generic/mod.rs
19@@ -114,6 +114,7 @@ cfg_if! {
20 target_arch = "x86_64",
21 target_arch = "arm",
22 target_arch = "aarch64",
23+ target_arch = "riscv32",
24 target_arch = "riscv64",
25 target_arch = "s390x",
26 target_arch = "csky",
27@@ -218,7 +219,10 @@ cfg_if! {
28 // where S stands for size (int, long, struct...)
29 // where T stands for type ('f','v','X'...)
30 // where N stands for NR (NumbeR)
31- if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "csky"))] {
32+ if #[cfg(any(target_arch = "x86",
33+ target_arch = "arm",
34+ target_arch = "csky",
35+ target_arch = "riscv32"))] {
36 pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80046601;
37 pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40046602;
38 pub const FS_IOC_GETVERSION: ::Ioctl = 0x80047601;
diff --git a/meta/recipes-devtools/rust/cargo-c_0.10.5+cargo-0.83.0.bb b/meta/recipes-devtools/rust/cargo-c_0.10.13+cargo-0.88.0.bb
index b8b646e384..6777726072 100644
--- a/meta/recipes-devtools/rust/cargo-c_0.10.5+cargo-0.83.0.bb
+++ b/meta/recipes-devtools/rust/cargo-c_0.10.13+cargo-0.88.0.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = " \
6" 6"
7 7
8SRC_URI = "crate://crates.io/cargo-c/${PV};name=cargo-c" 8SRC_URI = "crate://crates.io/cargo-c/${PV};name=cargo-c"
9SRC_URI += "file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${CARGO_VENDORING_DIRECTORY}/libc-0.2.161" 9SRC_URI[cargo-c.sha256sum] = "bd11efb38aee5930cabfe8d41465f22859b2af9071fa04d3642814cf1cc2bc75"
10SRC_URI[cargo-c.sha256sum] = "5bfa9ba93806384d940e71dafbc185316e0a6a47561b33b7105fcf67f99df70a"
11S = "${CARGO_VENDORING_DIRECTORY}/cargo-c-${PV}" 10S = "${CARGO_VENDORING_DIRECTORY}/cargo-c-${PV}"
12 11
13inherit cargo cargo-update-recipe-crates pkgconfig 12inherit cargo cargo-update-recipe-crates pkgconfig
diff --git a/meta/recipes-devtools/rust/cargo_1.86.0.bb b/meta/recipes-devtools/rust/cargo_1.87.0.bb
index 150c2d2b80..fc41a19a25 100644
--- a/meta/recipes-devtools/rust/cargo_1.86.0.bb
+++ b/meta/recipes-devtools/rust/cargo_1.87.0.bb
@@ -34,7 +34,6 @@ addtask cargo_setup_snapshot after do_unpack before do_configure
34do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}" 34do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}"
35do_cargo_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER" 35do_cargo_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
36 36
37
38do_compile:prepend () { 37do_compile:prepend () {
39 export RUSTC_BOOTSTRAP="1" 38 export RUSTC_BOOTSTRAP="1"
40} 39}
diff --git a/meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch b/meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
index 5e0f5912a1..a7da69dce3 100644
--- a/meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
+++ b/meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
@@ -24,9 +24,9 @@ diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core
24index 087df2f8a..00790affb 100644 24index 087df2f8a..00790affb 100644
25--- a/src/bootstrap/src/core/build_steps/tool.rs 25--- a/src/bootstrap/src/core/build_steps/tool.rs
26+++ b/src/bootstrap/src/core/build_steps/tool.rs 26+++ b/src/bootstrap/src/core/build_steps/tool.rs
27@@ -1,14 +1,11 @@ 27@@ -15,14 +15,12 @@
28 use std::path::PathBuf; 28 #[cfg(feature = "tracing")]
29 use std::{env, fs}; 29 use tracing::instrument;
30 30
31-use crate::core::build_steps::compile::is_lto_stage; 31-use crate::core::build_steps::compile::is_lto_stage;
32 use crate::core::build_steps::toolstate::ToolState; 32 use crate::core::build_steps::toolstate::ToolState;
@@ -36,18 +36,20 @@ index 087df2f8a..00790affb 100644
36- Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step, cargo_profile_var, 36- Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step, cargo_profile_var,
37-}; 37-};
38-use crate::core::config::{DebuginfoLevel, RustcLto, TargetSelection}; 38-use crate::core::config::{DebuginfoLevel, RustcLto, TargetSelection};
39+
39+use crate::core::builder::{Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step}; 40+use crate::core::builder::{Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step};
40+use crate::core::config::{DebuginfoLevel, TargetSelection}; 41+use crate::core::config::{DebuginfoLevel, TargetSelection};
41 use crate::utils::channel::GitInfo; 42 use crate::utils::channel::GitInfo;
42 use crate::utils::exec::{BootstrapCommand, command}; 43 use crate::utils::exec::{BootstrapCommand, command};
43 use crate::utils::helpers::{add_dylib_path, exe, t}; 44 use crate::utils::helpers::{add_dylib_path, exe, t};
44@@ -658,19 +655,7 @@ 45@@ -148,20 +146,7 @@
45 SourceType::InTree, 46 &self.extra_features,
46 features.as_slice(),
47 ); 47 );
48- 48
49- // rustdoc is performance sensitive, so apply LTO to it. 49- if path.ends_with("/rustdoc") &&
50- if is_lto_stage(&build_compiler) { 50- // rustdoc is performance sensitive, so apply LTO to it.
51- is_lto_stage(&self.compiler)
52- {
51- let lto = match builder.config.rust_lto { 53- let lto = match builder.config.rust_lto {
52- RustcLto::Off => Some("off"), 54- RustcLto::Off => Some("off"),
53- RustcLto::Thin => Some("thin"), 55- RustcLto::Thin => Some("thin"),
@@ -60,14 +62,14 @@ index 087df2f8a..00790affb 100644
60- } 62- }
61+ cargo.rustflag("-Clto=off"); 63+ cargo.rustflag("-Clto=off");
62 64
63 let _guard = builder.msg_tool( 65 if !self.allow_features.is_empty() {
64 Kind::Build, 66 cargo.allow_features(self.allow_features);
65diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs 67diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs
66--- a/src/bootstrap/src/core/builder/mod.rs 68--- a/src/bootstrap/src/core/builder/mod.rs
67+++ b/src/bootstrap/src/core/builder/mod.rs 69+++ b/src/bootstrap/src/core/builder/mod.rs
68@@ -11,7 +11,7 @@ 70@@ -13,7 +13,7 @@
69 71 #[cfg(feature = "tracing")]
70 use clap::ValueEnum; 72 use tracing::instrument;
71 73
72-pub use self::cargo::{Cargo, cargo_profile_var}; 74-pub use self::cargo::{Cargo, cargo_profile_var};
73+pub use self::cargo::Cargo; 75+pub use self::cargo::Cargo;
diff --git a/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch b/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
index bb27ca35ff..5bd1abffb4 100644
--- a/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
+++ b/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
@@ -22,10 +22,10 @@ index 11f363d62..c12d66016 100644
22+++ b/tests/ui/process/process-sigpipe.rs 22+++ b/tests/ui/process/process-sigpipe.rs
23@@ -23,7 +23,7 @@ use std::thread; 23@@ -23,7 +23,7 @@ use std::thread;
24 fn main() { 24 fn main() {
25 // Just in case `yes` doesn't check for EPIPE... 25 // Just in case `yes` or `while-echo` doesn't check for EPIPE...
26 thread::spawn(|| { 26 thread::spawn(|| {
27- thread::sleep_ms(5000); 27- thread::sleep_ms(5000);
28+ thread::sleep_ms(50000); 28+ thread::sleep_ms(50000);
29 process::exit(1); 29 process::exit(1);
30 }); 30 });
31 let output = process::Command::new("sh") 31 // QNX Neutrino does not have `yes`. Therefore, use `while-echo` for `nto`
diff --git a/meta/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch b/meta/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
index 20a49d46dc..9bbbce0182 100644
--- a/meta/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
+++ b/meta/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
@@ -200,11 +200,10 @@ diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/c
200index 27bbc8bd8f..a6fc4df2eb 100644 200index 27bbc8bd8f..a6fc4df2eb 100644
201--- a/src/bootstrap/src/core/build_steps/compile.rs 201--- a/src/bootstrap/src/core/build_steps/compile.rs
202+++ b/src/bootstrap/src/core/build_steps/compile.rs 202+++ b/src/bootstrap/src/core/build_steps/compile.rs
203@@ -1940,24 +1940,8 @@ impl Step for Assemble { 203@@ -2158,23 +2158,7 @@
204 let src_libdir = builder.sysroot_target_libdir(build_compiler, host);
205 for f in builder.read_dir(&src_libdir) { 204 for f in builder.read_dir(&src_libdir) {
206 let filename = f.file_name().into_string().unwrap(); 205 let filename = f.file_name().into_string().unwrap();
207- 206
208- let is_proc_macro = proc_macros.contains(&filename); 207- let is_proc_macro = proc_macros.contains(&filename);
209- let is_dylib_or_debug = is_dylib(&f.path()) || is_debug_info(&filename); 208- let is_dylib_or_debug = is_dylib(&f.path()) || is_debug_info(&filename);
210- 209-
@@ -214,8 +213,7 @@ index 27bbc8bd8f..a6fc4df2eb 100644
214- let can_be_rustc_dynamic_dep = if builder 213- let can_be_rustc_dynamic_dep = if builder
215- .link_std_into_rustc_driver(target_compiler.host) 214- .link_std_into_rustc_driver(target_compiler.host)
216- && !target_compiler.host.is_windows() 215- && !target_compiler.host.is_windows()
217+ if (is_dylib(Path::new(&filename)) || is_debug_info(&filename)) && !proc_macros.contains(&filename) 216- {
218 {
219- let is_std = filename.starts_with("std-") || filename.starts_with("libstd-"); 217- let is_std = filename.starts_with("std-") || filename.starts_with("libstd-");
220- !is_std 218- !is_std
221- } else { 219- } else {
@@ -223,6 +221,7 @@ index 27bbc8bd8f..a6fc4df2eb 100644
223- }; 221- };
224- 222-
225- if is_dylib_or_debug && can_be_rustc_dynamic_dep && !is_proc_macro { 223- if is_dylib_or_debug && can_be_rustc_dynamic_dep && !is_proc_macro {
226 builder.copy_link(&f.path(), &rustc_libdir.join(&filename)); 224+ if (is_dylib(Path::new(&filename)) || is_debug_info(&filename)) && !proc_macros.contains(&filename) {
225 builder.copy_link(&f.path(), &rustc_libdir.join(&filename), FileType::Regular);
227 } 226 }
228 } 227 }
diff --git a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
index 49d85072cb..b7ef806e65 100644
--- a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -47,61 +47,85 @@ diff --git a/library/std/tests/sync/rwlock.rs b/library/std/tests/sync/rwlock.rs
47index 1a9d3d3f12f..0a9cfc48806 100644 47index 1a9d3d3f12f..0a9cfc48806 100644
48--- a/library/std/tests/sync/rwlock.rs 48--- a/library/std/tests/sync/rwlock.rs
49+++ b/library/std/tests/sync/rwlock.rs 49+++ b/library/std/tests/sync/rwlock.rs
50@@ -47,6 +47,7 @@ fn frob() { 50@@ -74,6 +74,7 @@
51 } 51
52
53 #[test] 52 #[test]
53 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
54+#[ignore] 54+#[ignore]
55 fn test_rw_arc_poison_wr() { 55 fn test_rw_arc_poison_wr() {
56 let arc = Arc::new(RwLock::new(1)); 56 let arc = Arc::new(RwLock::new(1));
57 let arc2 = arc.clone(); 57 let arc2 = arc.clone();
58@@ -72,6 +73,7 @@ fn test_rw_arc_poison_mapped_w_r() { 58@@ -87,6 +88,7 @@
59 } 59
60 60 #[test]
61 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
62+#[ignore]
63 fn test_rw_arc_poison_mapped_w_r() {
64 let arc = Arc::new(RwLock::new(1));
65 let arc2 = arc.clone();
66@@ -101,6 +103,7 @@
67
61 #[test] 68 #[test]
69 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
62+#[ignore] 70+#[ignore]
63 fn test_rw_arc_poison_ww() { 71 fn test_rw_arc_poison_ww() {
64 let arc = Arc::new(RwLock::new(1)); 72 let arc = Arc::new(RwLock::new(1));
65 assert!(!arc.is_poisoned()); 73 assert!(!arc.is_poisoned());
66@@ -100,6 +102,7 @@ fn test_rw_arc_poison_mapped_w_w() { 74@@ -115,6 +118,7 @@
67 } 75 }
68 76
77 #[test]
78+#[ignore]
79 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
80 fn test_rw_arc_poison_mapped_w_w() {
81 let arc = Arc::new(RwLock::new(1));
82@@ -131,6 +135,7 @@
83
69 #[test] 84 #[test]
85 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
70+#[ignore] 86+#[ignore]
71 fn test_rw_arc_no_poison_rr() { 87 fn test_rw_arc_no_poison_rr() {
72 let arc = Arc::new(RwLock::new(1)); 88 let arc = Arc::new(RwLock::new(1));
73 let arc2 = arc.clone(); 89 let arc2 = arc.clone();
74@@ -127,6 +130,7 @@ fn test_rw_arc_no_poison_mapped_r_r() { 90@@ -160,6 +165,7 @@
75 } 91
76
77 #[test] 92 #[test]
93 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
78+#[ignore] 94+#[ignore]
79 fn test_rw_arc_no_poison_rw() { 95 fn test_rw_arc_no_poison_rw() {
80 let arc = Arc::new(RwLock::new(1)); 96 let arc = Arc::new(RwLock::new(1));
81 let arc2 = arc.clone(); 97 let arc2 = arc.clone();
82@@ -192,6 +196,7 @@ fn test_rw_arc() { 98@@ -227,6 +233,7 @@
83 } 99
84
85 #[test] 100 #[test]
101 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
86+#[ignore] 102+#[ignore]
87 fn test_rw_arc_access_in_unwind() { 103 fn test_rw_arc_access_in_unwind() {
88 let arc = Arc::new(RwLock::new(1)); 104 let arc = Arc::new(RwLock::new(1));
89 let arc2 = arc.clone(); 105 let arc2 = arc.clone();
90@@ -275,6 +280,7 @@ fn drop(&mut self) { 106@@ -326,6 +333,7 @@
91 } 107
92
93 #[test] 108 #[test]
109 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
94+#[ignore] 110+#[ignore]
95 fn test_into_inner_poison() { 111 fn test_into_inner_poison() {
96 let m = new_poisoned_rwlock(NonCopy(10)); 112 let m = new_poisoned_rwlock(NonCopy(10));
97 113
98@@ -299,6 +305,7 @@ fn test_get_mut() { 114@@ -362,6 +370,7 @@
99 } 115
100
101 #[test] 116 #[test]
117 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
102+#[ignore] 118+#[ignore]
103 fn test_get_mut_poison() { 119 fn test_get_mut_poison() {
104 let mut m = new_poisoned_rwlock(NonCopy(10)); 120 let mut m = new_poisoned_rwlock(NonCopy(10));
121
122@@ -567,6 +576,7 @@
123
124 #[test]
125 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
126+#[ignore]
127 fn panic_while_mapping_write_unlocked_poison() {
128 let lock = RwLock::new(());
105 129
106diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs 130diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs
107--- a/library/test/src/tests.rs 131--- a/library/test/src/tests.rs
@@ -117,52 +141,22 @@ diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs
117diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs 141diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs
118--- a/library/std/tests/sync/mutex.rs 142--- a/library/std/tests/sync/mutex.rs
119+++ b/library/std/tests/sync/mutex.rs 143+++ b/library/std/tests/sync/mutex.rs
120@@ -193,6 +193,7 @@ 144@@ -312,6 +312,7 @@
121 } 145
122
123 #[test] 146 #[test]
147 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
124+#[ignore] 148+#[ignore]
125 fn test_mutex_arc_poison_mapped() { 149 fn test_mutex_arc_poison_mapped() {
126 let arc = Arc::new(Mutex::new(1)); 150 let arc = Arc::new(Mutex::new(1));
127 assert!(!arc.is_poisoned()); 151 assert!(!arc.is_poisoned());
128diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs 152@@ -391,6 +392,7 @@
129--- a/library/std/tests/sync/mutex.rs 153
130+++ b/library/std/tests/sync/mutex.rs
131@@ -272,6 +272,7 @@
132 }
133
134 #[test] 154 #[test]
155 #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
135+#[ignore] 156+#[ignore]
136 fn panic_while_mapping_unlocked_poison() { 157 fn panic_while_mapping_unlocked_poison() {
137 let lock = Mutex::new(()); 158 let lock = Mutex::new(());
138 159
139diff --git a/library/std/src/sync/rwlock/tests.rs b/library/std/tests/sync/rwlock.rs
140--- a/library/std/tests/sync/rwlock.rs
141+++ b/library/std/tests/sync/rwlock.rs
142@@ -59,6 +59,7 @@ fn test_rw_arc_poison_wr() {
143 }
144
145 #[test]
146+#[ignore]
147 fn test_rw_arc_poison_mapped_w_r() {
148 let arc = Arc::new(RwLock::new(1));
149 let arc2 = arc.clone();
150@@ -86,6 +87,7 @@ fn test_rw_arc_poison_ww() {
151 }
152
153 #[test]
154+#[ignore]
155 fn test_rw_arc_poison_mapped_w_w() {
156 let arc = Arc::new(RwLock::new(1));
157 let arc2 = arc.clone();
158@@ -431,6 +433,7 @@ fn panic_while_mapping_read_unlocked_no_poison() {
159 }
160
161 #[test]
162+#[ignore]
163 fn panic_while_mapping_write_unlocked_poison() {
164 let lock = RwLock::new(());
165
166diff --git a/library/coretests/benches/num/int_log/mod.rs b/library/coretests/benches/num/int_log/mod.rs 160diff --git a/library/coretests/benches/num/int_log/mod.rs b/library/coretests/benches/num/int_log/mod.rs
167index 3807cd5d76c..018c5c04456 100644 161index 3807cd5d76c..018c5c04456 100644
168--- a/library/coretests/benches/num/int_log/mod.rs 162--- a/library/coretests/benches/num/int_log/mod.rs
@@ -199,10 +193,10 @@ index 9d4f52a092..d425e5f7b7 100644
199 fn thread_current_in_dtor() { 193 fn thread_current_in_dtor() {
200 // Go through one round of TLS destruction first. 194 // Go through one round of TLS destruction first.
201 struct Defer; 195 struct Defer;
202diff --git a/library/alloc/tests/sort/tests.rs b/library/alloc/tests/sort/tests.rs 196diff --git a/library/alloctests/tests/sort/tests.rs b/library/alloctests/tests/sort/tests.rs
203index 14e6013f96..b670f27ab4 100644 197index 14e6013f96..b670f27ab4 100644
204--- a/library/alloc/tests/sort/tests.rs 198--- a/library/alloctests/tests/sort/tests.rs
205+++ b/library/alloc/tests/sort/tests.rs 199+++ b/library/alloctests/tests/sort/tests.rs
206@@ -915,12 +915,14 @@ gen_sort_test_fns_with_default_patterns_3_ty!( 200@@ -915,12 +915,14 @@ gen_sort_test_fns_with_default_patterns_3_ty!(
207 macro_rules! instantiate_sort_test_inner { 201 macro_rules! instantiate_sort_test_inner {
208 ($sort_impl:ty, miri_yes, $test_fn_name:ident) => { 202 ($sort_impl:ty, miri_yes, $test_fn_name:ident) => {
@@ -234,10 +228,10 @@ diff --git a/tests/assembly/dwarf-mixed-versions-lto.rs b/tests/assembly/dwarf-m
234index 5b8e5ff4f4a..e558fbd7bd7 100644 228index 5b8e5ff4f4a..e558fbd7bd7 100644
235--- a/tests/assembly/dwarf-mixed-versions-lto.rs 229--- a/tests/assembly/dwarf-mixed-versions-lto.rs
236+++ b/tests/assembly/dwarf-mixed-versions-lto.rs 230+++ b/tests/assembly/dwarf-mixed-versions-lto.rs
237@@ -1,6 +1,11 @@ 231@@ -2,6 +2,11 @@
238 // This test ensures that if LTO occurs between crates with different DWARF versions, we
239 // will choose the highest DWARF version for the final binary. This matches Clang's behavior. 232 // will choose the highest DWARF version for the final binary. This matches Clang's behavior.
240 233 // Note: `.2byte` directive is used on MIPS.
234
241+//@ only-x86 235+//@ only-x86
242+//@ only-x86_64 236+//@ only-x86_64
243+//@ only-arm 237+//@ only-arm
@@ -259,3 +253,30 @@ index 0e712bc3a4e..93965d990d0 100644
259 //@ revisions: OPT2 OPT3 253 //@ revisions: OPT2 OPT3
260 //@[OPT2] compile-flags: -Copt-level=2 254 //@[OPT2] compile-flags: -Copt-level=2
261 //@[OPT3] compile-flags: -C opt-level=3 255 //@[OPT3] compile-flags: -C opt-level=3
256diff --git a/tests/codegen/uninhabited-transparent-return-abi.rs b/tests/codegen/uninhabited-transparent-return-abi.rs
257index face1577c3f..d69e5e34a7b 100644
258--- a/tests/codegen/uninhabited-transparent-return-abi.rs
259+++ b/tests/codegen/uninhabited-transparent-return-abi.rs
260@@ -1,4 +1,8 @@
261 //@ compile-flags: -Copt-level=3
262+//@ only-x86
263+//@ only-x86_64
264+//@ only-arm
265+//@ only-aarch64
266
267 // See https://github.com/rust-lang/rust/issues/135802
268
269diff --git a/tests/ui/abi/rust-cold-works-with-rustic-args.rs b/tests/ui/abi/rust-cold-works-with-rustic-args.rs
270index 57027364699..3faa7ea035e 100644
271--- a/tests/ui/abi/rust-cold-works-with-rustic-args.rs
272+++ b/tests/ui/abi/rust-cold-works-with-rustic-args.rs
273@@ -1,5 +1,9 @@
274 //@build-pass
275 //@compile-flags: -Clink-dead-code=true --crate-type lib
276+//@ only-x86
277+//@ only-x86_64
278+//@ only-arm
279+//@ only-aarch64
280 // We used to not handle all "rustic" ABIs in a (relatively) uniform way,
281 // so we failed to fix up arguments for actually passing through the ABI...
282 #![feature(rust_cold_cc)]
diff --git a/meta/recipes-devtools/rust/files/triagebot.patch b/meta/recipes-devtools/rust/files/triagebot.patch
new file mode 100644
index 0000000000..715664d081
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/triagebot.patch
@@ -0,0 +1,32 @@
1Skip tidy triagebot linkcheck if triagebot.toml doesn't exist
2
3Distribution tarballs won't include triagebot.toml, which
4causes tidy checks to fail with the following error:
5
6 tidy error: triagebot.toml file not found
7 some tidy checks failed
8
9Drop the triagebot.toml check which is mostly to catch broken
10path filters *within* `triagebot.toml` and not enforce
11the existence of it.
12
13Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/142666/commits]
14
15Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
16---
17diff --git a/src/tools/tidy/src/triagebot.rs b/src/tools/tidy/src/triagebot.rs
18--- a/src/tools/tidy/src/triagebot.rs
19+++ b/src/tools/tidy/src/triagebot.rs
20@@ -6,8 +6,11 @@
21
22 pub fn check(path: &Path, bad: &mut bool) {
23 let triagebot_path = path.join("triagebot.toml");
24+
25+ // This check is mostly to catch broken path filters *within* `triagebot.toml`, and not enforce
26+ // the existence of `triagebot.toml` itself (which is more obvious), as distribution tarballs
27+ // will not include non-essential bits like `triagebot.toml`.
28 if !triagebot_path.exists() {
29- tidy_error!(bad, "triagebot.toml file not found");
30 return;
31 }
32
diff --git a/meta/recipes-devtools/rust/libstd-rs_1.86.0.bb b/meta/recipes-devtools/rust/libstd-rs_1.87.0.bb
index b39ec0ab39..b39ec0ab39 100644
--- a/meta/recipes-devtools/rust/libstd-rs_1.86.0.bb
+++ b/meta/recipes-devtools/rust/libstd-rs_1.87.0.bb
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc
index 09e1b911a2..df8b78d326 100644
--- a/meta/recipes-devtools/rust/rust-cross-canadian.inc
+++ b/meta/recipes-devtools/rust/rust-cross-canadian.inc
@@ -13,8 +13,7 @@ DEPENDS += "virtual/nativesdk-cross-cc virtual/nativesdk-libc virtual/nativesdk-
13 13
14SRC_URI += "file://target-rust-ccld.c" 14SRC_URI += "file://target-rust-ccld.c"
15LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7" 15LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7"
16S = "${WORKDIR}/sources" 16S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 17
19# Need to use our SDK's sh here, see #14878 18# Need to use our SDK's sh here, see #14878
20create_sdk_wrapper () { 19create_sdk_wrapper () {
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian_1.86.0.bb b/meta/recipes-devtools/rust/rust-cross-canadian_1.87.0.bb
index 55865238ab..55865238ab 100644
--- a/meta/recipes-devtools/rust/rust-cross-canadian_1.86.0.bb
+++ b/meta/recipes-devtools/rust/rust-cross-canadian_1.87.0.bb
diff --git a/meta/recipes-devtools/rust/rust-llvm_1.86.0.bb b/meta/recipes-devtools/rust/rust-llvm_1.87.0.bb
index 327e8e6b69..d70aa350ab 100644
--- a/meta/recipes-devtools/rust/rust-llvm_1.86.0.bb
+++ b/meta/recipes-devtools/rust/rust-llvm_1.87.0.bb
@@ -2,9 +2,9 @@ SUMMARY = "LLVM compiler framework (packaged with rust)"
2LICENSE ?= "Apache-2.0-with-LLVM-exception" 2LICENSE ?= "Apache-2.0-with-LLVM-exception"
3HOMEPAGE = "http://www.rust-lang.org" 3HOMEPAGE = "http://www.rust-lang.org"
4 4
5# check src/llvm-project/cmake/Modules/LLVMVersion.cmake for llvm version in use 5# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use
6# 6#
7LLVM_RELEASE = "19.1.7" 7LLVM_RELEASE = "20.1.1"
8 8
9require rust-source.inc 9require rust-source.inc
10 10
diff --git a/meta/recipes-devtools/rust/rust-snapshot.inc b/meta/recipes-devtools/rust/rust-snapshot.inc
index 445390fcaf..87b39a2cc2 100644
--- a/meta/recipes-devtools/rust/rust-snapshot.inc
+++ b/meta/recipes-devtools/rust/rust-snapshot.inc
@@ -4,56 +4,56 @@
4## The exact (previous) version that has been used is specified in the source tarball. 4## The exact (previous) version that has been used is specified in the source tarball.
5## The version is replicated here. 5## The version is replicated here.
6 6
7SNAPSHOT_VERSION = "1.85.0" 7SNAPSHOT_VERSION = "1.86.0"
8 8
9SRC_URI[rustc-snapshot-aarch64.sha256sum] = "e742b768f67303010b002b515f6613c639e69ffcc78cd0857d6fe7989e9880f6" 9SRC_URI[rustc-snapshot-aarch64.sha256sum] = "ccece9e59546d2e6ff3fc3b8f4b033aab21631c271eefbe814b3cbace6628c6e"
10SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "8af1d793f7820e9ad0ee23247a9123542c3ea23f8857a018651c7788af9bc5b7" 10SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "176129577a5d560bbd94bcd2d24c0228bb495b73219df02556b4e4b4f0815bf7"
11SRC_URI[cargo-snapshot-aarch64.sha256sum] = "cdebe48b066d512d664c13441e8fae2d0f67106c2080aa44289d98b24192b8bc" 11SRC_URI[cargo-snapshot-aarch64.sha256sum] = "37156542b702e8b4ffd1c5c75017632582343e93ca378285cdc92196c85c77e3"
12SRC_URI[clippy-snapshot-aarch64.sha256sum] = "f3b8e769021a6bcee8174ac49a60c367effb6d97af0f2a6c44dc9ea39ff2bda9" 12SRC_URI[clippy-snapshot-aarch64.sha256sum] = "e70edcf560e6b50861618d7045d2b38cae9e2a555f489062570e2e7041563f42"
13 13
14SRC_URI[rustc-snapshot-i686.sha256sum] = "c5a5751f3cfa027b53fee83d01dec8e555f3622b6993335aed12b1747aa9543c" 14SRC_URI[rustc-snapshot-i686.sha256sum] = "976f4604d949d722738a9fe95313035226571128396e942b0fc678180be487b0"
15SRC_URI[rust-std-snapshot-i686.sha256sum] = "401571adfe1223d83ed041e5a8c54c1f3afb3010d1d5b0c1fd79e7da1ab0a0de" 15SRC_URI[rust-std-snapshot-i686.sha256sum] = "ce9f0fa4b0760730e26bf315cebe099f0b883436e095c5fc4b94ba20bd9f121a"
16SRC_URI[cargo-snapshot-i686.sha256sum] = "3832027242911ab96fd86128587fc563596a5b10e8e38a073facf61c1ac9668f" 16SRC_URI[cargo-snapshot-i686.sha256sum] = "24f20bdc1bb14f4ffbdc2f540488bebc3340437418725c3162215ae03cdad480"
17SRC_URI[clippy-snapshot-i686.sha256sum] = "74ed13a67c6ea0452c0d9e8697c6cfdd8280f983b207187ac93c287f72b65066" 17SRC_URI[clippy-snapshot-i686.sha256sum] = "6788449fa0eceebe4ea8c797bbaf27495dad152087b3085d58dc05cacab0617a"
18 18
19SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "d43d2119ff25d879b2d280d3e5a03fcd21c57a32d479ad5626500c32432f18c9" 19SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "970089ad61f8ca82017b59444aee483c1fc005e3f7a6af63cd5f146df8287cce"
20SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "2d05f5e13e7cb3ee6b0ca0dcd13a231a28eeb0faa4d15257a35cf7284149cd6a" 20SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "2f528377f57fbf81da35e2f08ec7ba50daddabebdce2cc86b6ec909fee157a33"
21SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "9aa447eefcd3ba2f9dbab77596c8669849899ab243543fc8f1914089707081ac" 21SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "c3b8ab03b64c824f2ea25db578b5760d44302be3fd1e4a78404c98cba39301f4"
22SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "d437b39465343a71ff475a65acb6c03bc0f800861f293f48accf1fa170458432" 22SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "1ab711423497a1d02408a240da28ad366450574dd7f528ffaee80d1d5ed10550"
23 23
24SRC_URI[rustc-snapshot-powerpc.sha256sum] = "fbe7154abc641d6cacfdc6239ed4701fc7a09b5046c6d1bd209b59e7f2b2d0f0" 24SRC_URI[rustc-snapshot-powerpc.sha256sum] = "21ea61181ba7daa04f61bec6a295ad76ce34bfbd74ad1d679c4548977bd82eb9"
25SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "ab2d5ac7cd295adaa4d959e8abbf42b372292c95d1a9f18aad64951ad6e2ab2b" 25SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "e5ed58a861619bcc89fc3f969174c84fd6ed8a26b5d4b196f06efb868653c1c1"
26SRC_URI[cargo-snapshot-powerpc.sha256sum] = "e67c30a72f969c51ad199084b3ce0cdc573a4e21f732b2cc39dafbcb9807a5ce" 26SRC_URI[cargo-snapshot-powerpc.sha256sum] = "fd832c269af81dd1ee9f3831991fccdc2c7312e9a9069908510eefe7c313d144"
27SRC_URI[clippy-snapshot-powerpc.sha256sum] = "497104d49803598cd3801749ac86cb26c88a2bd9c3a8c7bdc18fdf487f4650c0" 27SRC_URI[clippy-snapshot-powerpc.sha256sum] = "c94578d31e4145a4169ab5761537a2a0133818278fb62ee76251ef8ef45228c8"
28 28
29SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "f8e38291ba4241bc28e9c118d7a449ce3601abdeb2076f2f618858679fb3b929" 29SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "a54bbe16e6a405f137a0dc51fd570140c80077ba769d29d885a60e74cb3196bb"
30SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "e9ff89e759125ad2786ad2f6c40e820095720ea00fba66819d15fba79489430a" 30SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "06538b41a9351c449d215498d4ec2f072f728bd18df8fac7ef8534a0d0f34e27"
31SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "73cf850f6715acbf0029c7e5d4694825f61bd4e193e6413e65a78bcb13df97b7" 31SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "4d398cd8da17d1a5f26734b39cb17e791b243ac3570f8da2e5e5580a9dfad578"
32SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "29b63f23cd9af95846a246c9cc8349e514c3fb92ec0c840a38155e252d6cc668" 32SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "0abf31a8cb2762a7a81dbee8a5798e43e11a83326711ce00ad16c5587bcf5e49"
33 33
34SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "371e40f9d6d82aecb056f70f82868d98ddc1c20510aa7d388442ac8d2d86a6ca" 34SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "7585a20b02b7dd497e393a2e7552a0c6aabb51556fcf7507c6f7ffde530f8c88"
35SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "d0cfda4e18623d17922eb367e44ac9549ab3d5fe1c0bdbe0c2c95754255fa705" 35SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "fcf940c0553a04cb9bd85cce524729c2f54b000b554fee95c7aa218d608b7e3d"
36SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "e1469f4249a7e21f872af487dcd1bd10ce388b5b3679bdab0cb0965e1e30fe47" 36SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "8fefd2317023716a018986c4a62558a7b543ccf34e4e6d1104afc66edcae1c9c"
37SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "d8c590bc2e6fc75800e41516427f5095ba0e15d7633167689499fcf6523dc61a" 37SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "8cc65649396ccad73cecd17b972ab8d4c34837136cf374425be63d697b541469"
38 38
39SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "2da33044f17a8bc49a1478dc1eb2536df491a44d6e6bb0ec7c86f46877d44e98" 39SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "4d1106b576221182f84412f3377a5148eab6950d20e45e4274cd8b58df46f26b"
40SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "0f5ecfe54859bbe715821f982b1a5396784fdf55605d00ece05d3e57a965ed16" 40SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "b28b9c2f183521a204f2899610253c11c86ee4aa903fe66d8410dfaa22c926e6"
41SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "c9f28b519799fc2d8089865e30fad04bb5339604d13725365fcd7ad7ee6c1489" 41SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "7825556908e10a48320cfb2d812851271d7cf549977173e028a0dd23af9d7eac"
42SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "9d21bc180196bccdb301e7e03034d3fd0df14b0c6520da0317bba7b1ce385fe8" 42SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "c39c53a82fdaaa97413728a4f3f9feb5b31bdf3e3e563c64651bd01713e79166"
43 43
44SRC_URI[rustc-snapshot-s390x.sha256sum] = "308361737ed522aa77dd8b4ea91b5db244113ada5fa234d3ed008b526d07e2e8" 44SRC_URI[rustc-snapshot-s390x.sha256sum] = "18caf22fbfc4d26c80b39b4c6b1cd5fb42dba3e32d5d3600c22eae6f688d7f4c"
45SRC_URI[rust-std-snapshot-s390x.sha256sum] = "d25053fbee1a0cb899bac8c8e4968aa35f9c3637e486cb5bb2c79ad43a78f3e7" 45SRC_URI[rust-std-snapshot-s390x.sha256sum] = "3919f6962d0aefdd2cd75d8dba749ed826936065b64c9a8d54d1d85c2685fd66"
46SRC_URI[cargo-snapshot-s390x.sha256sum] = "7e1defd60095c91ded1612194f811ec5f2fc2e83bb914d35594d01fa3c54049d" 46SRC_URI[cargo-snapshot-s390x.sha256sum] = "1c6eb1be254574881a611a3b8904cdcfe43c79a285875673e59c890dcd5766c2"
47SRC_URI[clippy-snapshot-s390x.sha256sum] = "9780d8c4cfef9d05460b3e540aad142391b2e3994accf8cfc8afb87fefac6cf0" 47SRC_URI[clippy-snapshot-s390x.sha256sum] = "c87183b52ddb4085ddf2524a775fd255d5fd11ad2fdd6424574f08750a8cf378"
48 48
49SRC_URI[rustc-snapshot-x86_64.sha256sum] = "7436f13797475082cd87aa65547449e01659d6a810b4cd5f8aedc48bb9f89dfb" 49SRC_URI[rustc-snapshot-x86_64.sha256sum] = "4438b809ce4a083af31ed17aeeedcc8fc60ccffc0625bef1926620751b6989d7"
50SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "285e105d25ebdf501341238d4c0594ecdda50ec9078f45095f793a736b1f1ac2" 50SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "67be7184ea388d8ce0feaf7fdea46f1775cfc2970930264343b3089898501d37"
51SRC_URI[cargo-snapshot-x86_64.sha256sum] = "0aff33b57b0e0b102d762a2b53042846c1ca346cff4b7bd96b5c03c9e8e51d81" 51SRC_URI[cargo-snapshot-x86_64.sha256sum] = "c5c1590f7e9246ad9f4f97cfe26ffa92707b52a769726596a9ef81565ebd908b"
52SRC_URI[clippy-snapshot-x86_64.sha256sum] = "0dc3ca1708a6c9eed05d0802364377572b79ff079815b7bcbe8e3991f77c4117" 52SRC_URI[clippy-snapshot-x86_64.sha256sum] = "02aaff2c1407d2da8dba19aa4970dd873e311902b120a66cbcdbe51eb8836edf"
53 53
54SRC_URI[rust-std-snapshot-i586.sha256sum] = "3cb7318da10876de14076549d79410a8441923a92d62b616d8c105f5f5cd831b" 54SRC_URI[rust-std-snapshot-i586.sha256sum] = "f0bddc6dba7d719b8ba131bcd634a8379e00fc825a51c0f17abf424c9cb5c052"
55 55
56SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "65cd47af46a5b74e61ff6ae4cce8a979ee8670a57b8aa61e732828d1da073f73" 56SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "722238ae13e6e101d1b698d2b3a7915d59bb7f485b594e8d833cce8b9460383b"
57 57
58SRC_URI += " \ 58SRC_URI += " \
59 ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \ 59 ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index f9c1fcd1c8..ed15d9c763 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -9,10 +9,11 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
9 file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \ 9 file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
10 file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} \ 10 file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} \
11 file://0001-Disable-libunwind-cross-architecture-unwinding.patch;patchdir=${RUSTSRC} \ 11 file://0001-Disable-libunwind-cross-architecture-unwinding.patch;patchdir=${RUSTSRC} \
12 file://triagebot.patch;patchdir=${RUSTSRC} \
12" 13"
13SRC_URI[rust.sha256sum] = "d939eada065dc827a9d4dbb55bd48533ad14c16e7f0a42e70147029c82a7707b" 14SRC_URI[rust.sha256sum] = "8623b8651893e8c6aebfa45b6a90645a4f652f7b18189a0992a90d11ac2631f4"
14 15
15RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src" 16RUSTSRC = "${UNPACKDIR}/rustc-${RUST_VERSION}-src"
16 17
17UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html" 18UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
18UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src" 19UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
diff --git a/meta/recipes-devtools/rust/rust_1.86.0.bb b/meta/recipes-devtools/rust/rust_1.87.0.bb
index c2443fbb15..5d804c7398 100644
--- a/meta/recipes-devtools/rust/rust_1.86.0.bb
+++ b/meta/recipes-devtools/rust/rust_1.87.0.bb
@@ -7,13 +7,13 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=11a3899825f4376896e438c8c753f8dc"
7inherit rust 7inherit rust
8inherit cargo_common 8inherit cargo_common
9 9
10DEPENDS += "rust-llvm pkgconfig-native openssl ninja-native" 10DEPENDS += "rust-llvm"
11# native rust uses cargo/rustc from binary snapshots to bootstrap 11# native rust uses cargo/rustc from binary snapshots to bootstrap
12# but everything else should use our native builds 12# but everything else should use our native builds
13DEPENDS:append:class-target = " cargo-native rust-native" 13DEPENDS:append:class-target = " cargo-native rust-native"
14DEPENDS:append:class-nativesdk = " cargo-native rust-native" 14DEPENDS:append:class-nativesdk = " cargo-native rust-native"
15 15
16RDEPENDS:${PN}:append:class-target = " gcc g++ binutils bash" 16RDEPENDS:${PN}:append:class-target = " gcc g++ binutils"
17 17
18# Otherwise we'll depend on what we provide 18# Otherwise we'll depend on what we provide
19INHIBIT_DEFAULT_RUST_DEPS:class-native = "1" 19INHIBIT_DEFAULT_RUST_DEPS:class-native = "1"
@@ -237,11 +237,10 @@ do_test_compile () {
237 237
238ALLOW_EMPTY:${PN} = "1" 238ALLOW_EMPTY:${PN} = "1"
239 239
240PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt ${PN}-zsh-completion" 240PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt"
241FILES:${PN}-rustdoc = "${bindir}/rustdoc" 241FILES:${PN}-rustdoc = "${bindir}/rustdoc"
242FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver" 242FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
243FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt" 243FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
244FILES:${PN}-zsh-completion = "${datadir}/zsh"
245 244
246RDEPENDS:${PN}-rustdoc = "${PN}" 245RDEPENDS:${PN}-rustdoc = "${PN}"
247RDEPENDS:${PN}-tools-clippy = "${PN}" 246RDEPENDS:${PN}-tools-clippy = "${PN}"
@@ -258,10 +257,6 @@ rust_do_install() {
258 rust_runx install 257 rust_runx install
259} 258}
260 259
261rust_do_install:append:class-native () {
262 rm -f ${D}${bindir}/cargo
263}
264
265rust_do_install:class-nativesdk() { 260rust_do_install:class-nativesdk() {
266 export PSEUDO_UNLOAD=1 261 export PSEUDO_UNLOAD=1
267 rust_runx install 262 rust_runx install
@@ -271,7 +266,7 @@ rust_do_install:class-nativesdk() {
271 266
272 install -d ${D}${bindir} 267 install -d ${D}${bindir}
273 for i in cargo-clippy clippy-driver rustfmt; do 268 for i in cargo-clippy clippy-driver rustfmt; do
274 cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} 269 cp build/${RUST_BUILD_SYS}/stage1-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
275 patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i 270 patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i
276 done 271 done
277 272
@@ -306,7 +301,7 @@ rust_do_install:class-target() {
306 301
307 install -d ${D}${bindir} 302 install -d ${D}${bindir}
308 for i in ${EXTRA_TOOLS}; do 303 for i in ${EXTRA_TOOLS}; do
309 cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} 304 cp build/${RUST_BUILD_SYS}/stage1-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
310 patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i 305 patchelf --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i
311 done 306 done
312 307
diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.7.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.7.bb
index 930439e2d2..8006f80aee 100644
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.7.bb
+++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.7.bb
@@ -12,8 +12,6 @@ SRCREV = "2e87d42ed089dc31990d83eeb07437b9d085d6d1"
12 12
13UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 13UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
14 14
15S = "${WORKDIR}/git"
16
17EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}" 15EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}"
18 16
19PACKAGECONFIG ??= "gzip lz4 xz zstd xattr" 17PACKAGECONFIG ??= "gzip lz4 xz zstd xattr"
diff --git a/meta/recipes-devtools/strace/strace_6.15.bb b/meta/recipes-devtools/strace/strace_6.15.bb
index 2093c92eb3..fdc79bcf85 100644
--- a/meta/recipes-devtools/strace/strace_6.15.bb
+++ b/meta/recipes-devtools/strace/strace_6.15.bb
@@ -17,7 +17,6 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/strace-${PV}.tar.xz \
17 " 17 "
18SRC_URI[sha256sum] = "8552dfab08abc22a0f2048c98fd9541fd4d71b6882507952780dab7c7c512f51" 18SRC_URI[sha256sum] = "8552dfab08abc22a0f2048c98fd9541fd4d71b6882507952780dab7c7c512f51"
19 19
20
21inherit autotools github-releases ptest 20inherit autotools github-releases ptest
22 21
23# Not yet ported to rv32 22# Not yet ported to rv32
diff --git a/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
index 859c7eb906..31f3add89f 100644
--- a/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
+++ b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
@@ -21,11 +21,8 @@ SRC_URI:append:libc-musl = " \
21 file://0001-Define-portable-basename-function.patch \ 21 file://0001-Define-portable-basename-function.patch \
22 " 22 "
23 23
24
25SRCREV = "8ab9680a1bd5eb8fe7a7dcc44897af7ee41e56e7" 24SRCREV = "8ab9680a1bd5eb8fe7a7dcc44897af7ee41e56e7"
26 25
27S = "${WORKDIR}/git"
28
29DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool" 26DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool"
30 27
31inherit pkgconfig autotools systemd features_check 28inherit pkgconfig autotools systemd features_check
diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb
index b02fcb9cad..1639ae84e9 100644
--- a/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb
+++ b/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb
@@ -18,7 +18,7 @@ SRC_URI = "git://gitlab.eclipse.org/eclipse/tcf/tcf.agent.git;protocol=https;bra
18DEPENDS = "util-linux openssl" 18DEPENDS = "util-linux openssl"
19RDEPENDS:${PN} = "bash" 19RDEPENDS:${PN} = "bash"
20 20
21S = "${WORKDIR}/git/agent" 21S = "${UNPACKDIR}/${BP}/agent"
22 22
23inherit update-rc.d systemd 23inherit update-rc.d systemd
24 24
@@ -37,7 +37,6 @@ LCL_STOP_SERVICES = "-DSERVICE_RunControl=0 -DSERVICE_Breakpoints=0 \
37 -DSERVICE_Memory=0 -DSERVICE_Registers=0 -DSERVICE_MemoryMap=0 \ 37 -DSERVICE_Memory=0 -DSERVICE_Registers=0 -DSERVICE_MemoryMap=0 \
38 -DSERVICE_StackTrace=0 -DSERVICE_Expressions=0" 38 -DSERVICE_StackTrace=0 -DSERVICE_Expressions=0"
39 39
40
41# These features don't compile for several cases. 40# These features don't compile for several cases.
42# 41#
43CFLAGS:append:arc = " ${LCL_STOP_SERVICES}" 42CFLAGS:append:arc = " ${LCL_STOP_SERVICES}"
diff --git a/meta/recipes-devtools/tcltk/tcl_9.0.1.bb b/meta/recipes-devtools/tcltk/tcl_9.0.1.bb
index 485b293768..70aa9b606c 100644
--- a/meta/recipes-devtools/tcltk/tcl_9.0.1.bb
+++ b/meta/recipes-devtools/tcltk/tcl_9.0.1.bb
@@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "488fcb6c875a1762e9e8478319b20fbad9a31de475f056aeed94cc54b4
28UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html" 28UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html"
29UPSTREAM_CHECK_REGEX = "tcl(?P<pver>\d+(\.\d+)+)-src" 29UPSTREAM_CHECK_REGEX = "tcl(?P<pver>\d+(\.\d+)+)-src"
30 30
31S = "${WORKDIR}/${BPN}${PV}" 31S = "${UNPACKDIR}/${BPN}${PV}"
32 32
33VER = "${PV}" 33VER = "${PV}"
34 34
diff --git a/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb b/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb
index 076bbc906c..225f04be48 100644
--- a/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb
+++ b/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb
@@ -32,7 +32,7 @@ SRC_URI:class-native = "${BASE_SRC_URI}"
32UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html" 32UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html"
33UPSTREAM_CHECK_REGEX = "tcl(?P<pver>8(\.\d+)+)-src" 33UPSTREAM_CHECK_REGEX = "tcl(?P<pver>8(\.\d+)+)-src"
34 34
35S = "${WORKDIR}/tcl${PV}" 35S = "${UNPACKDIR}/tcl${PV}"
36 36
37VER = "${PV}" 37VER = "${PV}"
38 38
diff --git a/meta/recipes-devtools/unfs3/unfs3_0.11.0.bb b/meta/recipes-devtools/unfs3/unfs3_0.11.0.bb
index da5ca45277..b8c235fb7c 100644
--- a/meta/recipes-devtools/unfs3/unfs3_0.11.0.bb
+++ b/meta/recipes-devtools/unfs3/unfs3_0.11.0.bb
@@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c1c621cd2786a3a1344a60a0d608c910"
9 9
10DEPENDS = "bison-native flex-native libtirpc" 10DEPENDS = "bison-native flex-native libtirpc"
11 11
12S = "${WORKDIR}/git"
13SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master;tag=${BP}" 12SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master;tag=${BP}"
14SRCREV = "ec1660ba33c80d5c67131e163e68834c1a10e243" 13SRCREV = "ec1660ba33c80d5c67131e163e68834c1a10e243"
15UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>\d+(\.\d+)+)" 14UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>\d+(\.\d+)+)"
diff --git a/meta/recipes-devtools/xmlto/xmlto_0.0.29.bb b/meta/recipes-devtools/xmlto/xmlto_0.0.29.bb
index 1415e5d781..613d7973ec 100644
--- a/meta/recipes-devtools/xmlto/xmlto_0.0.29.bb
+++ b/meta/recipes-devtools/xmlto/xmlto_0.0.29.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
8 8
9SRCREV = "74862a684907ada3d4ed2ce0f8111adf626e1456" 9SRCREV = "74862a684907ada3d4ed2ce0f8111adf626e1456"
10SRC_URI = "git://pagure.io/xmlto.git;protocol=https;branch=master" 10SRC_URI = "git://pagure.io/xmlto.git;protocol=https;branch=master"
11S = "${WORKDIR}/git"
12 11
13inherit autotools 12inherit autotools
14 13
diff --git a/meta/recipes-extended/acpica/acpica_20240827.bb b/meta/recipes-extended/acpica/acpica_20240827.bb
index 7e8c68db90..f9f9f9f687 100644
--- a/meta/recipes-extended/acpica/acpica_20240827.bb
+++ b/meta/recipes-extended/acpica/acpica_20240827.bb
@@ -19,8 +19,6 @@ DEPENDS = "m4-native flex-native bison-native"
19SRC_URI = "git://github.com/acpica/acpica;protocol=https;branch=master" 19SRC_URI = "git://github.com/acpica/acpica;protocol=https;branch=master"
20SRCREV = "e80cbd7b52de20aa8c75bfba9845e9cb61f2e681" 20SRCREV = "e80cbd7b52de20aa8c75bfba9845e9cb61f2e681"
21 21
22S = "${WORKDIR}/git"
23
24inherit update-alternatives 22inherit update-alternatives
25 23
26ALTERNATIVE_PRIORITY = "100" 24ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/asciidoc/asciidoc_10.2.1.bb b/meta/recipes-extended/asciidoc/asciidoc_10.2.1.bb
index 0360a342b4..848c380363 100644
--- a/meta/recipes-extended/asciidoc/asciidoc_10.2.1.bb
+++ b/meta/recipes-extended/asciidoc/asciidoc_10.2.1.bb
@@ -14,8 +14,6 @@ SRCREV = "21e33efe96ba9a51d99d1150691dae750afd6ed1"
14 14
15DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" 15DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
16 16
17S = "${WORKDIR}/git"
18
19# Tell xmllint where to find the DocBook XML catalogue, because right now it 17# Tell xmllint where to find the DocBook XML catalogue, because right now it
20# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch 18# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch
21export SGML_CATALOG_FILES = "file://${STAGING_ETCDIR_NATIVE}/xml/catalog" 19export SGML_CATALOG_FILES = "file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
diff --git a/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb b/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
index 0e873604a4..80fdf26c05 100644
--- a/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
+++ b/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
@@ -10,8 +10,6 @@ PV = "0.1+git"
10SRC_URI = "git://github.com/ahcbb6/baremetal-helloqemu.git;protocol=https;branch=master" 10SRC_URI = "git://github.com/ahcbb6/baremetal-helloqemu.git;protocol=https;branch=master"
11UPSTREAM_VERSION_UNKNOWN = "1" 11UPSTREAM_VERSION_UNKNOWN = "1"
12 12
13S = "${WORKDIR}/git"
14
15# The following variables should be set to accomodate each application 13# The following variables should be set to accomodate each application
16BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" 14BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}"
17IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" 15IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}"
@@ -23,7 +21,6 @@ IMAGE_NAME_SUFFIX ?= ""
23# firmware from Linux 21# firmware from Linux
24inherit baremetal-image 22inherit baremetal-image
25 23
26
27# startup code for x86 uses NASM syntax 24# startup code for x86 uses NASM syntax
28DEPENDS:qemux86:append = " nasm-native" 25DEPENDS:qemux86:append = " nasm-native"
29 26
diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
index 0d7ff9edcd..5b10821ccb 100644
--- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
+++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
@@ -14,15 +14,15 @@ LICENSE:libbz2 = "bzip2-1.0.6"
14LICENSE:${PN}-ptest = "bzip2-1.0.6 & GPL-3.0-or-later & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib" 14LICENSE:${PN}-ptest = "bzip2-1.0.6 & GPL-3.0-or-later & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
15 15
16LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ 16LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \
17 file://${UNPACKDIR}/git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ 17 file://${UNPACKDIR}/bzip2-tests/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \
18 file://${UNPACKDIR}/git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ 18 file://${UNPACKDIR}/bzip2-tests/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \
19 file://${UNPACKDIR}/git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ 19 file://${UNPACKDIR}/bzip2-tests/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \
20 file://${UNPACKDIR}/git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ 20 file://${UNPACKDIR}/bzip2-tests/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \
21 file://${UNPACKDIR}/git/lbzip2/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ 21 file://${UNPACKDIR}/bzip2-tests/lbzip2/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
22" 22"
23 23
24SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ 24SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
25 git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master;protocol=https \ 25 git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master;protocol=https;destsuffix=bzip2-tests/ \
26 file://configure.ac;subdir=${BP} \ 26 file://configure.ac;subdir=${BP} \
27 file://Makefile.am;subdir=${BP} \ 27 file://Makefile.am;subdir=${BP} \
28 file://run-ptest \ 28 file://run-ptest \
@@ -52,13 +52,13 @@ do_configure:prepend () {
52 52
53do_install_ptest () { 53do_install_ptest () {
54 install -d ${D}${PTEST_PATH}/bzip2-tests 54 install -d ${D}${PTEST_PATH}/bzip2-tests
55 cp -r ${UNPACKDIR}/git/commons-compress ${D}${PTEST_PATH}/bzip2-tests/commons-compress 55 cp -r ${UNPACKDIR}/bzip2-tests/commons-compress ${D}${PTEST_PATH}/bzip2-tests/commons-compress
56 cp -r ${UNPACKDIR}/git/dotnetzip ${D}${PTEST_PATH}/bzip2-tests/dotnetzip 56 cp -r ${UNPACKDIR}/bzip2-tests/dotnetzip ${D}${PTEST_PATH}/bzip2-tests/dotnetzip
57 cp -r ${UNPACKDIR}/git/go ${D}${PTEST_PATH}/bzip2-tests/go 57 cp -r ${UNPACKDIR}/bzip2-tests/go ${D}${PTEST_PATH}/bzip2-tests/go
58 cp -r ${UNPACKDIR}/git/lbzip2 ${D}${PTEST_PATH}/bzip2-tests/lbzip2 58 cp -r ${UNPACKDIR}/bzip2-tests/lbzip2 ${D}${PTEST_PATH}/bzip2-tests/lbzip2
59 cp -r ${UNPACKDIR}/git/pyflate ${D}${PTEST_PATH}/bzip2-tests/pyflate 59 cp -r ${UNPACKDIR}/bzip2-tests/pyflate ${D}${PTEST_PATH}/bzip2-tests/pyflate
60 cp ${UNPACKDIR}/git/README ${D}${PTEST_PATH}/bzip2-tests/ 60 cp ${UNPACKDIR}/bzip2-tests/README ${D}${PTEST_PATH}/bzip2-tests/
61 cp ${UNPACKDIR}/git/run-tests.sh ${D}${PTEST_PATH}/bzip2-tests/ 61 cp ${UNPACKDIR}/bzip2-tests/run-tests.sh ${D}${PTEST_PATH}/bzip2-tests/
62 sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile 62 sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile
63} 63}
64 64
diff --git a/meta/recipes-extended/cracklib/cracklib_2.10.3.bb b/meta/recipes-extended/cracklib/cracklib_2.10.3.bb
index c3396521ff..7feba2c950 100644
--- a/meta/recipes-extended/cracklib/cracklib_2.10.3.bb
+++ b/meta/recipes-extended/cracklib/cracklib_2.10.3.bb
@@ -13,7 +13,7 @@ SRC_URI = "git://github.com/cracklib/cracklib;protocol=https;branch=main \
13 " 13 "
14 14
15SRCREV = "e73d5db1789d198b5f9ec44b68b9c775c3e6c042" 15SRCREV = "e73d5db1789d198b5f9ec44b68b9c775c3e6c042"
16S = "${WORKDIR}/git/src" 16S = "${UNPACKDIR}/${BP}/src"
17 17
18inherit autotools gettext 18inherit autotools gettext
19 19
diff --git a/meta/recipes-extended/ghostscript/ghostscript_10.05.1.bb b/meta/recipes-extended/ghostscript/ghostscript_10.05.1.bb
index cd7087721f..1cd6bacff9 100644
--- a/meta/recipes-extended/ghostscript/ghostscript_10.05.1.bb
+++ b/meta/recipes-extended/ghostscript/ghostscript_10.05.1.bb
@@ -21,7 +21,6 @@ UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
21def gs_verdir(v): 21def gs_verdir(v):
22 return "".join(v.split(".")) 22 return "".join(v.split("."))
23 23
24
25SRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \ 24SRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \
26 file://ghostscript-9.16-Werror-return-type.patch \ 25 file://ghostscript-9.16-Werror-return-type.patch \
27 file://avoid-host-contamination.patch \ 26 file://avoid-host-contamination.patch \
diff --git a/meta/recipes-extended/hdparm/hdparm_9.65.bb b/meta/recipes-extended/hdparm/hdparm_9.65.bb
index 34d50054ab..e541d58fa5 100644
--- a/meta/recipes-extended/hdparm/hdparm_9.65.bb
+++ b/meta/recipes-extended/hdparm/hdparm_9.65.bb
@@ -14,7 +14,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=495d03e50dc6c89d6a30107ab0df5b03 \
14 file://wiper/GPLv2.txt;md5=fcb02dc552a041dee27e4b85c7396067 \ 14 file://wiper/GPLv2.txt;md5=fcb02dc552a041dee27e4b85c7396067 \
15 file://wiper/wiper.sh;beginline=7;endline=31;md5=b7bc642addc152ea307505bf1a296f09" 15 file://wiper/wiper.sh;beginline=7;endline=31;md5=b7bc642addc152ea307505bf1a296f09"
16 16
17
18PACKAGES =+ "wiper" 17PACKAGES =+ "wiper"
19 18
20FILES:wiper = "${bindir}/wiper.sh" 19FILES:wiper = "${bindir}/wiper.sh"
diff --git a/meta/recipes-extended/iputils/iputils_20250605.bb b/meta/recipes-extended/iputils/iputils_20250605.bb
index bb495a7d13..4618fbb29a 100644
--- a/meta/recipes-extended/iputils/iputils_20250605.bb
+++ b/meta/recipes-extended/iputils/iputils_20250605.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://github.com/iputils/iputils;branch=master;protocol=https \
12 " 12 "
13SRCREV = "6e1cb146547eb6fbb127ffc8397a9241be0d33c2" 13SRCREV = "6e1cb146547eb6fbb127ffc8397a9241be0d33c2"
14 14
15S = "${WORKDIR}/git"
16
17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>20\d+)" 15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>20\d+)"
18 16
19CVE_STATUS[CVE-2000-1213] = "fixed-version: Fixed in 2000-10-10, but the versioning of iputils breaks the version order." 17CVE_STATUS[CVE-2000-1213] = "fixed-version: Fixed in 2000-10-10, but the versioning of iputils breaks the version order."
diff --git a/meta/recipes-extended/libaio/libaio_0.3.113.bb b/meta/recipes-extended/libaio/libaio_0.3.113.bb
index 87ab22ed17..2392fd5db2 100644
--- a/meta/recipes-extended/libaio/libaio_0.3.113.bb
+++ b/meta/recipes-extended/libaio/libaio_0.3.113.bb
@@ -11,7 +11,6 @@ SRC_URI = "git://pagure.io/libaio.git;protocol=https;branch=master \
11 file://system-linkage.patch \ 11 file://system-linkage.patch \
12 " 12 "
13SRCREV = "1b18bfafc6a2f7b9fa2c6be77a95afed8b7be448" 13SRCREV = "1b18bfafc6a2f7b9fa2c6be77a95afed8b7be448"
14S = "${WORKDIR}/git"
15 14
16EXTRA_OEMAKE =+ "prefix=${prefix} includedir=${includedir} libdir=${libdir}" 15EXTRA_OEMAKE =+ "prefix=${prefix} includedir=${includedir} libdir=${libdir}"
17 16
diff --git a/meta/recipes-extended/libarchive/libarchive_3.7.9.bb b/meta/recipes-extended/libarchive/libarchive_3.8.1.bb
index d70cdb3d83..472b5820f0 100644
--- a/meta/recipes-extended/libarchive/libarchive_3.7.9.bb
+++ b/meta/recipes-extended/libarchive/libarchive_3.8.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "C library and command-line tools for reading and writing tar, cpi
3HOMEPAGE = "http://www.libarchive.org/" 3HOMEPAGE = "http://www.libarchive.org/"
4SECTION = "devel" 4SECTION = "devel"
5LICENSE = "BSD-2-Clause" 5LICENSE = "BSD-2-Clause"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d499814247adaee08d88080841cb5665" 6LIC_FILES_CHKSUM = "file://COPYING;md5=7ce08437ff7f5e24d72e666313ae4084"
7 7
8DEPENDS = "e2fsprogs-native" 8DEPENDS = "e2fsprogs-native"
9 9
@@ -31,7 +31,7 @@ EXTRA_OECONF += "--enable-largefile --without-iconv"
31 31
32SRC_URI = "https://libarchive.org/downloads/libarchive-${PV}.tar.gz" 32SRC_URI = "https://libarchive.org/downloads/libarchive-${PV}.tar.gz"
33 33
34SRC_URI[sha256sum] = "aa90732c5a6bdda52fda2ad468ac98d75be981c15dde263d7b5cf6af66fd009f" 34SRC_URI[sha256sum] = "bde832a5e3344dc723cfe9cc37f8e54bde04565bfe6f136bc1bd31ab352e9fab"
35 35
36inherit autotools update-alternatives pkgconfig 36inherit autotools update-alternatives pkgconfig
37 37
diff --git a/meta/recipes-extended/libnsl/libnsl2_2.0.1.bb b/meta/recipes-extended/libnsl/libnsl2_2.0.1.bb
index 1b9be620c0..ff4ae6c243 100644
--- a/meta/recipes-extended/libnsl/libnsl2_2.0.1.bb
+++ b/meta/recipes-extended/libnsl/libnsl2_2.0.1.bb
@@ -15,8 +15,6 @@ CVE_PRODUCT = "libnsl_project:libnsl"
15SRC_URI = "git://github.com/thkukuk/libnsl;branch=master;protocol=https" 15SRC_URI = "git://github.com/thkukuk/libnsl;branch=master;protocol=https"
16SRCREV = "d4b22e54b5e6637a69b26eab5faad2a326c9b182" 16SRCREV = "d4b22e54b5e6637a69b26eab5faad2a326c9b182"
17 17
18S = "${WORKDIR}/git"
19
20inherit autotools pkgconfig gettext 18inherit autotools pkgconfig gettext
21 19
22BBCLASSEXTEND = "native nativesdk" 20BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/libnss-nis/libnss-nis.bb b/meta/recipes-extended/libnss-nis/libnss-nis.bb
index f0e687c330..2198606de5 100644
--- a/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -20,8 +20,6 @@ SRCREV = "cd0d391af9535b56e612ed227c1b89be269f3d59"
20SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https \ 20SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https \
21 " 21 "
22 22
23S = "${WORKDIR}/git"
24
25inherit autotools pkgconfig 23inherit autotools pkgconfig
26 24
27BBCLASSEXTEND += "native nativesdk" 25BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-extended/libsolv/libsolv_0.7.33.bb b/meta/recipes-extended/libsolv/libsolv_0.7.33.bb
index 7584251420..13a6df2290 100644
--- a/meta/recipes-extended/libsolv/libsolv_0.7.33.bb
+++ b/meta/recipes-extended/libsolv/libsolv_0.7.33.bb
@@ -16,8 +16,6 @@ SRCREV = "9fb855d872139fb1ebebec4c892b338fccda69ba"
16 16
17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 17UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
18 18
19S = "${WORKDIR}/git"
20
21inherit cmake 19inherit cmake
22 20
23PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}" 21PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}"
diff --git a/meta/recipes-extended/lsof/lsof_4.99.4.bb b/meta/recipes-extended/lsof/lsof_4.99.4.bb
index f1ec650029..b977fc4897 100644
--- a/meta/recipes-extended/lsof/lsof_4.99.4.bb
+++ b/meta/recipes-extended/lsof/lsof_4.99.4.bb
@@ -10,8 +10,6 @@ SRC_URI = "git://github.com/lsof-org/lsof;branch=master;protocol=https \
10 file://remove-host-information.patch" 10 file://remove-host-information.patch"
11SRCREV = "bbf320ce586a848f880bca7b758d50ae4c712624" 11SRCREV = "bbf320ce586a848f880bca7b758d50ae4c712624"
12 12
13S = "${WORKDIR}/git"
14
15inherit update-alternatives autotools pkgconfig manpages 13inherit update-alternatives autotools pkgconfig manpages
16PACKAGECONFIG[manpages] = "" 14PACKAGECONFIG[manpages] = ""
17 15
diff --git a/meta/recipes-extended/ltp/ltp_20250130.bb b/meta/recipes-extended/ltp/ltp_20250130.bb
index f9521acbc6..fc643c2ab9 100644
--- a/meta/recipes-extended/ltp/ltp_20250130.bb
+++ b/meta/recipes-extended/ltp/ltp_20250130.bb
@@ -33,8 +33,6 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=ht
33 file://0001-cve-2015-3290-Disable-AVX-for-x86_64.patch \ 33 file://0001-cve-2015-3290-Disable-AVX-for-x86_64.patch \
34 " 34 "
35 35
36S = "${WORKDIR}/git"
37
38inherit autotools-brokensep pkgconfig 36inherit autotools-brokensep pkgconfig
39 37
40# Version 20220527 added KVM test infrastructure which currently fails to build with lld due to 38# Version 20220527 added KVM test infrastructure which currently fails to build with lld due to
diff --git a/meta/recipes-extended/mdadm/mdadm_4.4.bb b/meta/recipes-extended/mdadm/mdadm_4.4.bb
index db45df43d3..26a60e4c1a 100644
--- a/meta/recipes-extended/mdadm/mdadm_4.4.bb
+++ b/meta/recipes-extended/mdadm/mdadm_4.4.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://mdmon.c;beginline=4;endline=18;md5=af7d8444d9c4d3e5c7caac0d9d34039d \ 8 file://mdmon.c;beginline=4;endline=18;md5=af7d8444d9c4d3e5c7caac0d9d34039d \
9 file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161" 9 file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
10 10
11
12SRC_URI = "git://git.kernel.org/pub/scm/utils/mdadm/mdadm.git;protocol=https;branch=main;tag=mdadm-${PV} \ 11SRC_URI = "git://git.kernel.org/pub/scm/utils/mdadm/mdadm.git;protocol=https;branch=main;tag=mdadm-${PV} \
13 file://run-ptest \ 12 file://run-ptest \
14 file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \ 13 file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \
@@ -20,7 +19,6 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/mdadm/mdadm.git;protocol=https;bra
20 " 19 "
21 20
22SRCREV = "8e56efac9afd7080bb42bae4b77cdad5f345633a" 21SRCREV = "8e56efac9afd7080bb42bae4b77cdad5f345633a"
23S = "${WORKDIR}/git"
24 22
25inherit ptest systemd 23inherit ptest systemd
26 24
diff --git a/meta/recipes-extended/net-tools/net-tools_2.10.bb b/meta/recipes-extended/net-tools/net-tools_2.10.bb
index 547079f4cf..6c8297ba39 100644
--- a/meta/recipes-extended/net-tools/net-tools_2.10.bb
+++ b/meta/recipes-extended/net-tools/net-tools_2.10.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https;branch=master \
15 file://CVE-2025-46836-02.patch \ 15 file://CVE-2025-46836-02.patch \
16" 16"
17 17
18S = "${WORKDIR}/git"
19
20inherit gettext 18inherit gettext
21 19
22# The Makefile is lame, no parallel build 20# The Makefile is lame, no parallel build
diff --git a/meta/recipes-extended/pam/libpam_1.7.0.bb b/meta/recipes-extended/pam/libpam_1.7.0.bb
index 4abc52bd93..dea9ff592b 100644
--- a/meta/recipes-extended/pam/libpam_1.7.0.bb
+++ b/meta/recipes-extended/pam/libpam_1.7.0.bb
@@ -31,7 +31,7 @@ DEPENDS = "bison-native flex-native libxml2-native virtual/crypt"
31 31
32EXTRA_OEMESON = "-Ddocs=disabled -Dsecuredir=${base_libdir}/security" 32EXTRA_OEMESON = "-Ddocs=disabled -Dsecuredir=${base_libdir}/security"
33 33
34S = "${WORKDIR}/Linux-PAM-${PV}" 34S = "${UNPACKDIR}/Linux-PAM-${PV}"
35 35
36inherit meson gettext pkgconfig systemd ptest github-releases 36inherit meson gettext pkgconfig systemd ptest github-releases
37 37
diff --git a/meta/recipes-extended/perl/libconvert-asn1-perl_0.34.bb b/meta/recipes-extended/perl/libconvert-asn1-perl_0.34.bb
index 6e9f881773..7e167d6e67 100644
--- a/meta/recipes-extended/perl/libconvert-asn1-perl_0.34.bb
+++ b/meta/recipes-extended/perl/libconvert-asn1-perl_0.34.bb
@@ -9,7 +9,7 @@ SRC_URI = "https://cpan.metacpan.org/authors/id/T/TI/TIMLEGGE/Convert-ASN1-${PV}
9 9
10SRC_URI[sha256sum] = "a628d7c9d390568fb76359975fa03f626ce57f10dc17980e8e3587d7713e4ee7" 10SRC_URI[sha256sum] = "a628d7c9d390568fb76359975fa03f626ce57f10dc17980e8e3587d7713e4ee7"
11 11
12S = "${WORKDIR}/Convert-ASN1-${PV}" 12S = "${UNPACKDIR}/Convert-ASN1-${PV}"
13 13
14inherit cpan ptest-perl 14inherit cpan ptest-perl
15 15
diff --git a/meta/recipes-extended/perl/libtimedate-perl_2.30.bb b/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
index 3b681225c2..7f9f40d996 100644
--- a/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
+++ b/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://README;beginline=21;md5=576b7cb41e5e821501a01ed66f0f9
8 8
9SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/TimeDate-${PV}.tar.gz" 9SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/TimeDate-${PV}.tar.gz"
10 10
11S = "${WORKDIR}/TimeDate-${PV}" 11S = "${UNPACKDIR}/TimeDate-${PV}"
12 12
13inherit cpan ptest-perl 13inherit cpan ptest-perl
14 14
diff --git a/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb b/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
index ae0e5ad08a..9653cb427b 100644
--- a/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
+++ b/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "47e995859f8dd0413aa3f22d350c4a62da652e854267aa0586ae544ae2
16 16
17UPSTREAM_CHECK_REGEX = "XML\-NamespaceSupport\-(?P<pver>(\d+\.\d+))(?!_\d+).tar" 17UPSTREAM_CHECK_REGEX = "XML\-NamespaceSupport\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
18 18
19S = "${WORKDIR}/${SRCNAME}-${PV}" 19S = "${UNPACKDIR}/${SRCNAME}-${PV}"
20 20
21inherit cpan ptest-perl 21inherit cpan ptest-perl
22 22
diff --git a/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb b/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
index 8e8be93441..8d97e95e83 100644
--- a/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
+++ b/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
@@ -16,7 +16,7 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-Base-${PV}
16 16
17SRC_URI[sha256sum] = "66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0" 17SRC_URI[sha256sum] = "66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0"
18 18
19S = "${WORKDIR}/XML-SAX-Base-${PV}" 19S = "${UNPACKDIR}/XML-SAX-Base-${PV}"
20 20
21inherit cpan ptest-perl 21inherit cpan ptest-perl
22 22
diff --git a/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb b/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
index 218af5c437..67bdac981d 100644
--- a/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
+++ b/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
@@ -19,7 +19,7 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-${PV}.tar.
19 19
20SRC_URI[sha256sum] = "4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a" 20SRC_URI[sha256sum] = "4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a"
21 21
22S = "${WORKDIR}/XML-SAX-${PV}" 22S = "${UNPACKDIR}/XML-SAX-${PV}"
23 23
24inherit cpan ptest-perl 24inherit cpan ptest-perl
25 25
diff --git a/meta/recipes-extended/procps/procps_4.0.5.bb b/meta/recipes-extended/procps/procps_4.0.5.bb
index 3be40c38a4..2b41be3930 100644
--- a/meta/recipes-extended/procps/procps_4.0.5.bb
+++ b/meta/recipes-extended/procps/procps_4.0.5.bb
@@ -17,8 +17,6 @@ SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master \
17 " 17 "
18SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e" 18SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e"
19 19
20S = "${WORKDIR}/git"
21
22# Upstream has a custom autogen.sh which invokes po/update-potfiles as they 20# Upstream has a custom autogen.sh which invokes po/update-potfiles as they
23# don't ship a po/POTFILES.in (which is silly). Without that file gettext 21# don't ship a po/POTFILES.in (which is silly). Without that file gettext
24# doesn't believe po/ is a gettext directory and won't generate po/Makefile. 22# doesn't believe po/ is a gettext directory and won't generate po/Makefile.
diff --git a/meta/recipes-extended/psmisc/psmisc_23.7.bb b/meta/recipes-extended/psmisc/psmisc_23.7.bb
index 4128ca0533..fff1f218f4 100644
--- a/meta/recipes-extended/psmisc/psmisc_23.7.bb
+++ b/meta/recipes-extended/psmisc/psmisc_23.7.bb
@@ -15,7 +15,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
15SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https;branch=master \ 15SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https;branch=master \
16 " 16 "
17SRCREV = "9091d6dbcce3d8fb87adf9249a2eb346d25a562c" 17SRCREV = "9091d6dbcce3d8fb87adf9249a2eb346d25a562c"
18S = "${WORKDIR}/git"
19 18
20inherit autotools gettext 19inherit autotools gettext
21 20
@@ -26,7 +25,6 @@ do_configure:prepend() {
26 ( cd ${S} && po/update-potfiles ) 25 ( cd ${S} && po/update-potfiles )
27} 26}
28 27
29
30PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" 28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
31PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 29PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
32PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" 30PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
diff --git a/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
index 20933153a3..4cb785aa90 100644
--- a/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
+++ b/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
@@ -23,8 +23,6 @@ SRC_URI = "git://github.com/thkukuk/${BPN};branch=master;protocol=https \
23 file://0001-Use-cross-compiled-rpcgen.patch \ 23 file://0001-Use-cross-compiled-rpcgen.patch \
24 " 24 "
25 25
26S = "${WORKDIR}/git"
27
28inherit autotools gettext 26inherit autotools gettext
29 27
30EXTRA_OEMAKE:class-native = " -C rpcgen" 28EXTRA_OEMAKE:class-native = " -C rpcgen"
diff --git a/meta/recipes-extended/scdoc/scdoc_1.11.3.bb b/meta/recipes-extended/scdoc/scdoc_1.11.3.bb
index 7bbedcb66d..5f571c64dd 100644
--- a/meta/recipes-extended/scdoc/scdoc_1.11.3.bb
+++ b/meta/recipes-extended/scdoc/scdoc_1.11.3.bb
@@ -10,8 +10,6 @@ SRC_URI = "git://git.sr.ht/~sircmpwn/scdoc;protocol=https;branch=master \
10 file://0001-Makefile-drop-static.patch " 10 file://0001-Makefile-drop-static.patch "
11SRCREV = "0528bcb993cac6c412acd3ae2e09539e994c0a59" 11SRCREV = "0528bcb993cac6c412acd3ae2e09539e994c0a59"
12 12
13S = "${WORKDIR}/git"
14
15do_install() { 13do_install() {
16 oe_runmake 'DESTDIR=${D}' install 14 oe_runmake 'DESTDIR=${D}' install
17} 15}
diff --git a/meta/recipes-extended/shadow/shadow-securetty_4.6.bb b/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
index 913c159c81..e94e1caf22 100644
--- a/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
@@ -5,11 +5,9 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
5 5
6INHIBIT_DEFAULT_DEPS = "1" 6INHIBIT_DEFAULT_DEPS = "1"
7 7
8
9SRC_URI = "file://securetty" 8SRC_URI = "file://securetty"
10 9
11S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 11
14# Since SERIAL_CONSOLES is likely to be set from the machine configuration 12# Since SERIAL_CONSOLES is likely to be set from the machine configuration
15PACKAGE_ARCH = "${MACHINE_ARCH}" 13PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index 13cfab6aab..d66ef1e6a4 100644
--- a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -7,14 +7,12 @@ LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;endline=1;md5=ceddfb61608e4
7 7
8DEPENDS = "base-passwd" 8DEPENDS = "base-passwd"
9 9
10
11# The sole purpose of this recipe is to provide the /etc/login.defs 10# The sole purpose of this recipe is to provide the /etc/login.defs
12# file for the target sysroot - needed so the shadow-native utilities 11# file for the target sysroot - needed so the shadow-native utilities
13# can add custom users/groups for recipes that use inherit useradd. 12# can add custom users/groups for recipes that use inherit useradd.
14SRC_URI = "file://login.defs_shadow-sysroot" 13SRC_URI = "file://login.defs_shadow-sysroot"
15 14
16S = "${WORKDIR}/sources" 15S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 16
19do_install() { 17do_install() {
20 install -d ${D}${sysconfdir} 18 install -d ${D}${sysconfdir}
diff --git a/meta/recipes-extended/stress-ng/stress-ng_0.18.12.bb b/meta/recipes-extended/stress-ng/stress-ng_0.18.12.bb
index b1cfdc371f..85a0d6a709 100644
--- a/meta/recipes-extended/stress-ng/stress-ng_0.18.12.bb
+++ b/meta/recipes-extended/stress-ng/stress-ng_0.18.12.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
8SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master;tag=V${PV} \ 8SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master;tag=V${PV} \
9 " 9 "
10SRCREV = "d4eef982dc98fe915aa82303c0a24070d0a51b00" 10SRCREV = "d4eef982dc98fe915aa82303c0a24070d0a51b00"
11S = "${WORKDIR}/git"
12 11
13DEPENDS = "coreutils-native libbsd" 12DEPENDS = "coreutils-native libbsd"
14 13
diff --git a/meta/recipes-extended/sysklogd/sysklogd_2.7.2.bb b/meta/recipes-extended/sysklogd/sysklogd_2.7.2.bb
index ba69a7a8b8..c436153d1b 100644
--- a/meta/recipes-extended/sysklogd/sysklogd_2.7.2.bb
+++ b/meta/recipes-extended/sysklogd/sysklogd_2.7.2.bb
@@ -16,8 +16,6 @@ SRC_URI = "git://github.com/troglobit/sysklogd.git;branch=master;protocol=https;
16 16
17SRCREV = "5fb314cb9060afa3bd4eed2f0be3200f02f729e9" 17SRCREV = "5fb314cb9060afa3bd4eed2f0be3200f02f729e9"
18 18
19S = "${WORKDIR}/git"
20
21EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger" 19EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
22 20
23do_install:append () { 21do_install:append () {
diff --git a/meta/recipes-extended/sysstat/sysstat_12.7.7.bb b/meta/recipes-extended/sysstat/sysstat_12.7.7.bb
index 8ea47d7797..0fa4a3c950 100644
--- a/meta/recipes-extended/sysstat/sysstat_12.7.7.bb
+++ b/meta/recipes-extended/sysstat/sysstat_12.7.7.bb
@@ -13,7 +13,6 @@ SRC_URI = "git://github.com/sysstat/sysstat.git;protocol=https;branch=master \
13LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb" 13LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
14 14
15SRCREV = "dac10e13c70d1102aa3beea10135a3ed60520c36" 15SRCREV = "dac10e13c70d1102aa3beea10135a3ed60520c36"
16S = "${WORKDIR}/git"
17 16
18DEPENDS += "base-passwd" 17DEPENDS += "base-passwd"
19 18
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 de5fb3c543..da3ff90891 100644
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -52,7 +52,7 @@ SRC_URI = "http://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
52 52
53SRC_URI[sha256sum] = "9543d7adedf78a6de0b221ccbbd1952e08b5138717f4ade814039bb489a4315d" 53SRC_URI[sha256sum] = "9543d7adedf78a6de0b221ccbbd1952e08b5138717f4ade814039bb489a4315d"
54 54
55S = "${WORKDIR}/tcp_wrappers_${PV}" 55S = "${UNPACKDIR}/tcp_wrappers_${PV}"
56 56
57CFLAGS += "-std=gnu17" 57CFLAGS += "-std=gnu17"
58 58
diff --git a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
index 51d9c92766..9773d134cf 100644
--- a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
+++ b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
@@ -8,8 +8,7 @@ PV = "1.0"
8 8
9SRC_URI = "file://template.py file://COPYING" 9SRC_URI = "file://template.py file://COPYING"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14inherit native 13inherit native
15 14
diff --git a/meta/recipes-extended/timezone/timezone.inc b/meta/recipes-extended/timezone/timezone.inc
index 8f7868f098..9a5105ffd7 100644
--- a/meta/recipes-extended/timezone/timezone.inc
+++ b/meta/recipes-extended/timezone/timezone.inc
@@ -12,7 +12,7 @@ SRC_URI = "http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz
12 http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata;subdir=tz \ 12 http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata;subdir=tz \
13 " 13 "
14 14
15S = "${WORKDIR}/tz" 15S = "${UNPACKDIR}/tz"
16 16
17UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" 17UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
18 18
diff --git a/meta/recipes-extended/unzip/unzip_6.0.bb b/meta/recipes-extended/unzip/unzip_6.0.bb
index b2fed67239..d6289deff7 100644
--- a/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -43,7 +43,7 @@ CVE_STATUS[CVE-2008-0888] = "fixed-version: Patch from https://bugzilla.redhat.c
43# exclude version 5.5.2 which triggers a false positive 43# exclude version 5.5.2 which triggers a false positive
44UPSTREAM_CHECK_REGEX = "unzip(?P<pver>(?!552).+)\.tgz" 44UPSTREAM_CHECK_REGEX = "unzip(?P<pver>(?!552).+)\.tgz"
45 45
46S = "${WORKDIR}/unzip60" 46S = "${UNPACKDIR}/unzip60"
47 47
48# Makefile uses CF_NOOPT instead of CFLAGS. We lifted the values from 48# Makefile uses CF_NOOPT instead of CFLAGS. We lifted the values from
49# Makefile and add CFLAGS. Optimization will be overriden by unzip 49# Makefile and add CFLAGS. Optimization will be overriden by unzip
diff --git a/meta/recipes-extended/watchdog/watchdog-config.bb b/meta/recipes-extended/watchdog/watchdog-config.bb
index 17151ced5e..58c565bd30 100644
--- a/meta/recipes-extended/watchdog/watchdog-config.bb
+++ b/meta/recipes-extended/watchdog/watchdog-config.bb
@@ -13,8 +13,7 @@ SRC_URI = " \
13 file://watchdog.conf \ 13 file://watchdog.conf \
14" 14"
15 15
16S = "${WORKDIR}/sources" 16S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 17
19# The default value is 60 seconds when null. 18# The default value is 60 seconds when null.
20WATCHDOG_TIMEOUT ??= "" 19WATCHDOG_TIMEOUT ??= ""
diff --git a/meta/recipes-extended/which/which_2.21.bb b/meta/recipes-extended/which/which_2.21.bb
index 6e855bca3f..7279a04737 100644
--- a/meta/recipes-extended/which/which_2.21.bb
+++ b/meta/recipes-extended/which/which_2.21.bb
@@ -13,7 +13,6 @@ DEPENDS = "cwautomacros-native"
13 13
14inherit autotools texinfo update-alternatives 14inherit autotools texinfo update-alternatives
15 15
16
17EXTRA_OECONF = "--disable-iberty" 16EXTRA_OECONF = "--disable-iberty"
18 17
19SRC_URI = "${GNU_MIRROR}/which/which-${PV}.tar.gz \ 18SRC_URI = "${GNU_MIRROR}/which/which-${PV}.tar.gz \
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 111c50bdfe..2f727128a5 100644
--- a/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -16,8 +16,6 @@ SRC_URI = "git://github.com/openSUSE/xinetd.git;protocol=https;branch=master \
16 16
17SRCREV = "6a4af7786630ce48747d9687e2f18f45ea6684c4" 17SRCREV = "6a4af7786630ce48747d9687e2f18f45ea6684c4"
18 18
19S = "${WORKDIR}/git"
20
21# https://github.com/xinetd-org/xinetd/pull/10 is merged into this git tree revision 19# https://github.com/xinetd-org/xinetd/pull/10 is merged into this git tree revision
22CVE_STATUS[CVE-2013-4342] = "fixed-version: Fixed directly in git tree revision" 20CVE_STATUS[CVE-2013-4342] = "fixed-version: Fixed directly in git tree revision"
23 21
diff --git a/meta/recipes-extended/zip/zip_3.0.bb b/meta/recipes-extended/zip/zip_3.0.bb
index 27691bd89a..d1092551f7 100644
--- a/meta/recipes-extended/zip/zip_3.0.bb
+++ b/meta/recipes-extended/zip/zip_3.0.bb
@@ -6,8 +6,7 @@ SECTION = "console/utils"
6LICENSE = "Info-ZIP" 6LICENSE = "Info-ZIP"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d"
8 8
9 9S = "${UNPACKDIR}/zip30"
10S = "${WORKDIR}/zip30"
11 10
12SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz \ 11SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz \
13 file://fix-security-format.patch \ 12 file://fix-security-format.patch \
diff --git a/meta/recipes-extended/zstd/zstd_1.5.7.bb b/meta/recipes-extended/zstd/zstd_1.5.7.bb
index d173558a0f..0e872b95aa 100644
--- a/meta/recipes-extended/zstd/zstd_1.5.7.bb
+++ b/meta/recipes-extended/zstd/zstd_1.5.7.bb
@@ -17,8 +17,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
17 17
18CVE_PRODUCT = "zstandard" 18CVE_PRODUCT = "zstandard"
19 19
20S = "${WORKDIR}/git"
21
22PACKAGECONFIG ??= "" 20PACKAGECONFIG ??= ""
23PACKAGECONFIG[lz4] = "HAVE_LZ4=1,HAVE_LZ4=0,lz4" 21PACKAGECONFIG[lz4] = "HAVE_LZ4=1,HAVE_LZ4=0,lz4"
24PACKAGECONFIG[lzma] = "HAVE_LZMA=1,HAVE_LZMA=0,xz" 22PACKAGECONFIG[lzma] = "HAVE_LZMA=1,HAVE_LZMA=0,xz"
diff --git a/meta/recipes-gnome/gi-docgen/gi-docgen_2025.3.bb b/meta/recipes-gnome/gi-docgen/gi-docgen_2025.3.bb
index a16574955f..8651ab8167 100644
--- a/meta/recipes-gnome/gi-docgen/gi-docgen_2025.3.bb
+++ b/meta/recipes-gnome/gi-docgen/gi-docgen_2025.3.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main
12 12
13SRCREV = "9ab2ab8fa3f4a04f5d2cc24b0c8e91e73bc57b51" 13SRCREV = "9ab2ab8fa3f4a04f5d2cc24b0c8e91e73bc57b51"
14 14
15S = "${WORKDIR}/git"
16
17inherit python_setuptools_build_meta 15inherit python_setuptools_build_meta
18 16
19RDEPENDS:${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-typogrify python3-xml" 17RDEPENDS:${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-typogrify python3-xml"
diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index 1e29bd9bb0..54666801c5 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -22,7 +22,7 @@ SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;na
22SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c" 22SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c"
23SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c" 23SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c"
24 24
25S = "${WORKDIR}/GConf-${PV}" 25S = "${UNPACKDIR}/GConf-${PV}"
26 26
27EXTRA_OECONF = "--enable-shared --disable-static \ 27EXTRA_OECONF = "--enable-shared --disable-static \
28 --disable-orbit --with-openldap=no --disable-gtk" 28 --disable-orbit --with-openldap=no --disable-gtk"
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.43.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.43.bb
index 15870dcc08..5892bb3139 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.43.bb
+++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.43.bb
@@ -23,7 +23,7 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar
23 " 23 "
24SRC_URI[sha256sum] = "7e04f0648515034b806b74ae5d774d87cffb1a2a96c468cb5be476d51bf2f3c7" 24SRC_URI[sha256sum] = "7e04f0648515034b806b74ae5d774d87cffb1a2a96c468cb5be476d51bf2f3c7"
25 25
26S = "${WORKDIR}/gtk+-${PV}" 26S = "${UNPACKDIR}/gtk+-${PV}"
27 27
28BBCLASSEXTEND = "native nativesdk" 28BBCLASSEXTEND = "native nativesdk"
29 29
diff --git a/meta/recipes-gnome/gtk+/gtk4_4.18.6.bb b/meta/recipes-gnome/gtk+/gtk4_4.18.6.bb
index 092f8d309f..397277a815 100644
--- a/meta/recipes-gnome/gtk+/gtk4_4.18.6.bb
+++ b/meta/recipes-gnome/gtk+/gtk4_4.18.6.bb
@@ -40,7 +40,7 @@ UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
40SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz" 40SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
41SRC_URI[sha256sum] = "e1817c650ddc3261f9a8345b3b22a26a5d80af154630dedc03cc7becefffd0fa" 41SRC_URI[sha256sum] = "e1817c650ddc3261f9a8345b3b22a26a5d80af154630dedc03cc7becefffd0fa"
42 42
43S = "${WORKDIR}/gtk-${PV}" 43S = "${UNPACKDIR}/gtk-${PV}"
44 44
45CVE_PRODUCT = "gnome:gtk" 45CVE_PRODUCT = "gnome:gtk"
46 46
diff --git a/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
index 7f5f02a7ba..cf2c64f8d0 100644
--- a/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
+++ b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
11 11
12SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-8" 12SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-8"
13SRCREV = "9b0071408ce86a3ef843806fddd723a85f6f2416" 13SRCREV = "9b0071408ce86a3ef843806fddd723a85f6f2416"
14S = "${WORKDIR}/git"
15 14
16UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))" 15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))"
17GIR_MESON_ENABLE_FLAG = 'enabled' 16GIR_MESON_ENABLE_FLAG = 'enabled'
diff --git a/meta/recipes-gnome/libportal/libportal_0.9.1.bb b/meta/recipes-gnome/libportal/libportal_0.9.1.bb
index 970db65bc5..9713f70dbb 100644
--- a/meta/recipes-gnome/libportal/libportal_0.9.1.bb
+++ b/meta/recipes-gnome/libportal/libportal_0.9.1.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
8 8
9SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main" 9SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main"
10SRCREV = "8f5dc8d192f6e31dafe69e35219e3b707bde71ce" 10SRCREV = "8f5dc8d192f6e31dafe69e35219e3b707bde71ce"
11S = "${WORKDIR}/git"
12 11
13inherit meson gi-docgen gobject-introspection vala features_check pkgconfig 12inherit meson gi-docgen gobject-introspection vala features_check pkgconfig
14GIDOCGEN_MESON_OPTION = 'docs' 13GIDOCGEN_MESON_OPTION = 'docs'
diff --git a/meta/recipes-gnome/libsecret/libsecret_0.21.6.bb b/meta/recipes-gnome/libsecret/libsecret_0.21.6.bb
index 4d801105fa..f40b1159eb 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.21.6.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.21.6.bb
@@ -8,7 +8,6 @@ HOMEPAGE = "https://github.com/GNOME/libsecret"
8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues" 8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues"
9LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" 9LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
10 10
11
12inherit gnomebase gi-docgen vala gobject-introspection manpages 11inherit gnomebase gi-docgen vala gobject-introspection manpages
13 12
14DEPENDS += "glib-2.0 libgcrypt gettext-native" 13DEPENDS += "glib-2.0 libgcrypt gettext-native"
diff --git a/meta/recipes-gnome/libxmlb/libxmlb_0.3.22.bb b/meta/recipes-gnome/libxmlb/libxmlb_0.3.22.bb
index 1d6ad58b68..761426148a 100644
--- a/meta/recipes-gnome/libxmlb/libxmlb_0.3.22.bb
+++ b/meta/recipes-gnome/libxmlb/libxmlb_0.3.22.bb
@@ -9,7 +9,6 @@ SRC_URI = " \
9 file://run-ptest \ 9 file://run-ptest \
10" 10"
11SRCREV = "addcce32a3bd6a09303f052bd59fb758621d30fb" 11SRCREV = "addcce32a3bd6a09303f052bd59fb758621d30fb"
12S = "${WORKDIR}/git"
13 12
14DEPENDS = "glib-2.0 xz zstd" 13DEPENDS = "glib-2.0 xz zstd"
15 14
diff --git a/meta/recipes-graphics/builder/builder_0.1.bb b/meta/recipes-graphics/builder/builder_0.1.bb
index 39abaf31ce..b8a7798364 100644
--- a/meta/recipes-graphics/builder/builder_0.1.bb
+++ b/meta/recipes-graphics/builder/builder_0.1.bb
@@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://builder_session.sh;endline=5;md5=84796c3c41785d86100f
7SRC_URI = "file://builder_session.sh \ 7SRC_URI = "file://builder_session.sh \
8 " 8 "
9 9
10S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 11
13RDEPENDS:${PN} = "mini-x-session" 12RDEPENDS:${PN} = "mini-x-session"
14 13
diff --git a/meta/recipes-graphics/cairo/cairo_1.18.4.bb b/meta/recipes-graphics/cairo/cairo_1.18.4.bb
index 81c7aa66f0..3f6d02f8d4 100644
--- a/meta/recipes-graphics/cairo/cairo_1.18.4.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.18.4.bb
@@ -25,7 +25,6 @@ LICENSE:${PN}-src = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFI
25LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \ 25LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
26 ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}" 26 ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
27 27
28
29DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib" 28DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
30 29
31SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \ 30SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
diff --git a/meta/recipes-graphics/glslang/glslang_1.4.313.0.bb b/meta/recipes-graphics/glslang/glslang_1.4.313.0.bb
index 988b2ef2a3..cb754c6ac8 100644
--- a/meta/recipes-graphics/glslang/glslang_1.4.313.0.bb
+++ b/meta/recipes-graphics/glslang/glslang_1.4.313.0.bb
@@ -19,7 +19,6 @@ PE = "1"
19# The tags versions should always be sdk-x.y.z, as this is what 19# The tags versions should always be sdk-x.y.z, as this is what
20# upstream considers a release. 20# upstream considers a release.
21UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" 21UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
22S = "${WORKDIR}/git"
23 22
24inherit cmake python3native 23inherit cmake python3native
25 24
diff --git a/meta/recipes-graphics/graphene/graphene_1.10.8.bb b/meta/recipes-graphics/graphene/graphene_1.10.8.bb
index e2e82b32aa..d14a6403ff 100644
--- a/meta/recipes-graphics/graphene/graphene_1.10.8.bb
+++ b/meta/recipes-graphics/graphene/graphene_1.10.8.bb
@@ -3,7 +3,6 @@ HOMEPAGE = "http://ebassi.github.io/graphene/"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648" 4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648"
5 5
6
7inherit gnomebase gobject-introspection gtk-doc 6inherit gnomebase gobject-introspection gtk-doc
8 7
9SRC_URI += "file://float-div.patch" 8SRC_URI += "file://float-div.patch"
diff --git a/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.30.bb b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.30.bb
index dad752cb19..1eae416c01 100644
--- a/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.30.bb
+++ b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.30.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https;bra
15 file://0001-lib-igt_aux.c-address-procps-4.0.5-compatibility.patch \ 15 file://0001-lib-igt_aux.c-address-procps-4.0.5-compatibility.patch \
16 " 16 "
17 17
18S = "${WORKDIR}/git"
19
20DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 procps libunwind kmod openssl elfutils alsa-lib json-c bison-native" 18DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 procps libunwind kmod openssl elfutils alsa-lib json-c bison-native"
21RDEPENDS:${PN} += "bash perl" 19RDEPENDS:${PN} += "bash perl"
22RDEPENDS:${PN}-tests += "bash" 20RDEPENDS:${PN}-tests += "bash"
diff --git a/meta/recipes-graphics/kmscube/kmscube_git.bb b/meta/recipes-graphics/kmscube/kmscube_git.bb
index 7035dd446b..013fdfb6bf 100644
--- a/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -16,8 +16,6 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=http
16 16
17UPSTREAM_CHECK_COMMITS = "1" 17UPSTREAM_CHECK_COMMITS = "1"
18 18
19S = "${WORKDIR}/git"
20
21BASEPV = "0.0.1" 19BASEPV = "0.0.1"
22PV = "${BASEPV}+git" 20PV = "${BASEPV}+git"
23 21
diff --git a/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb b/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb
index 384afa6907..2427ce3f96 100644
--- a/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb
+++ b/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b"
11 11
12SRC_URI = "git://github.com/anholt/libepoxy;branch=master;protocol=https" 12SRC_URI = "git://github.com/anholt/libepoxy;branch=master;protocol=https"
13SRCREV = "c84bc9459357a40e46e2fec0408d04fbdde2c973" 13SRCREV = "c84bc9459357a40e46e2fec0408d04fbdde2c973"
14S = "${WORKDIR}/git"
15 14
16inherit meson pkgconfig features_check github-releases 15inherit meson pkgconfig features_check github-releases
17 16
diff --git a/meta/recipes-graphics/libfakekey/libfakekey_git.bb b/meta/recipes-graphics/libfakekey/libfakekey_git.bb
index 5f902d3a67..7416b84538 100644
--- a/meta/recipes-graphics/libfakekey/libfakekey_git.bb
+++ b/meta/recipes-graphics/libfakekey/libfakekey_git.bb
@@ -15,8 +15,6 @@ PV = "0.3+git"
15 15
16SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" 16SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
17 17
18S = "${WORKDIR}/git"
19
20inherit autotools pkgconfig gettext features_check 18inherit autotools pkgconfig gettext features_check
21 19
22# The libxtst requires x11 in DISTRO_FEATURES 20# The libxtst requires x11 in DISTRO_FEATURES
diff --git a/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb b/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
new file mode 100644
index 0000000000..1e4c5b860c
--- /dev/null
+++ b/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
@@ -0,0 +1,37 @@
1SUMMARY = "the GL Vendor-Neutral Dispatch library"
2DESCRIPTION = "libglvnd is a vendor-neutral dispatch layer for arbitrating \
3OpenGL API calls between multiple vendors."
4HOMEPAGE = "https://gitlab.freedesktop.org/glvnd/libglvnd"
5LICENSE = "MIT & BSD-1-Clause & BSD-3-Clause & GPL-3.0-with-autoconf-exception"
6LIC_FILES_CHKSUM = "file://README.md;beginline=323;md5=7ac5f0111f648b92fe5427efeb08e8c4"
7
8SRC_URI = "git://gitlab.freedesktop.org/glvnd/libglvnd.git;protocol=https;branch=master"
9
10SRCREV = "faa23f21fc677af5792825dc30cb1ccef4bf33a6"
11
12REQUIRED_DISTRO_FEATURES = "opengl glvnd"
13
14inherit meson pkgconfig features_check
15
16PACKAGECONFIG ?= "\
17 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
18 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl gles1 gles2', '', d)} \
19 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)} \
20 "
21
22PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libx11 libxext xorgproto"
23PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,libx11 libxext xorgproto,,virtual-libglx-icd"
24PACKAGECONFIG[egl] = "-Degl=true,-Degl=false,,virtual-libegl-icd"
25PACKAGECONFIG[gles1] = "-Dgles1=true,-Dgles1=false,"
26PACKAGECONFIG[gles2] = "-Dgles2=true,-Dgles2=false,"
27
28BBCLASSEXTEND = "native nativesdk"
29
30PROVIDES = " \
31 ${@bb.utils.contains('PACKAGECONFIG', 'glx', 'virtual/libgl', '', d)} \
32 ${@bb.utils.contains('PACKAGECONFIG', 'gles1', 'virtual/libgles1', '', d)} \
33 ${@bb.utils.contains('PACKAGECONFIG', 'gles2', 'virtual/libgles2 virtual/libgles3', '', d)} \
34 ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \
35"
36
37RPROVIDES:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'egl', 'libegl', '', d)}"
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_1.14.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_1.14.bb
index 87ec4c812f..9de44d4c95 100644
--- a/meta/recipes-graphics/libmatchbox/libmatchbox_1.14.bb
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox_1.14.bb
@@ -16,8 +16,6 @@ DEPENDS = "virtual/libx11 libxext"
16SRCREV = "04b214a0d5cf8285e196d90bf2332626b12c74ef" 16SRCREV = "04b214a0d5cf8285e196d90bf2332626b12c74ef"
17SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https;tag=${PV}" 17SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https;tag=${PV}"
18 18
19S = "${WORKDIR}/git"
20
21inherit autotools pkgconfig features_check 19inherit autotools pkgconfig features_check
22# depends on virtual/libx11 20# depends on virtual/libx11
23REQUIRED_DISTRO_FEATURES = "x11" 21REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.32.8.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.32.8.bb
index 57758de8b3..c56027d4ab 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.32.8.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.32.8.bb
@@ -23,7 +23,7 @@ PROVIDES = "virtual/libsdl2"
23 23
24SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz" 24SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz"
25 25
26S = "${WORKDIR}/SDL2-${PV}" 26S = "${UNPACKDIR}/SDL2-${PV}"
27 27
28SRC_URI[sha256sum] = "0ca83e9c9b31e18288c7ec811108e58bac1f1bb5ec6577ad386830eac51c787e" 28SRC_URI[sha256sum] = "0ca83e9c9b31e18288c7ec811108e58bac1f1bb5ec6577ad386830eac51c787e"
29 29
diff --git a/meta/recipes-graphics/libva/libva-utils_2.22.0.bb b/meta/recipes-graphics/libva/libva-utils_2.22.0.bb
index 078cd7ea0a..de36f01afd 100644
--- a/meta/recipes-graphics/libva/libva-utils_2.22.0.bb
+++ b/meta/recipes-graphics/libva/libva-utils_2.22.0.bb
@@ -16,7 +16,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
16 16
17SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.22-branch;protocol=https" 17SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.22-branch;protocol=https"
18SRCREV = "1a13ae13382b7b548f3a7e8035e1d7df66662c0a" 18SRCREV = "1a13ae13382b7b548f3a7e8035e1d7df66662c0a"
19S = "${WORKDIR}/git"
20 19
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$" 20UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
22 21
diff --git a/meta/recipes-graphics/libva/libva.inc b/meta/recipes-graphics/libva/libva.inc
index 784ab8b79f..5dda701ed0 100644
--- a/meta/recipes-graphics/libva/libva.inc
+++ b/meta/recipes-graphics/libva/libva.inc
@@ -20,7 +20,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libva-${PV}.tar.bz2"
20LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" 20LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
21SRC_URI[sha256sum] = "e3da2250654c8d52b3f59f8cb3f3d8e7fb1a2ee64378dbc400fbc5663de7edb8" 21SRC_URI[sha256sum] = "e3da2250654c8d52b3f59f8cb3f3d8e7fb1a2ee64378dbc400fbc5663de7edb8"
22 22
23S = "${WORKDIR}/libva-${PV}" 23S = "${UNPACKDIR}/libva-${PV}"
24 24
25GITHUB_BASE_URI = "https://github.com/intel/libva/releases" 25GITHUB_BASE_URI = "https://github.com/intel/libva/releases"
26 26
diff --git a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
index 8a4cfef631..d8be3417cc 100644
--- a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
+++ b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
@@ -11,9 +11,7 @@ RCONFLICTS:${PN} = "matchbox-common"
11 11
12SRC_URI = "file://matchbox-session" 12SRC_URI = "file://matchbox-session"
13 13
14S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
15UNPACKDIR = "${S}"
16
17 15
18inherit update-alternatives 16inherit update-alternatives
19 17
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 c8b6f07ed0..3359193d65 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
@@ -14,8 +14,6 @@ SRCREV = "ce8c1053270d960a7235ab5c3435f707541810a4"
14SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager;branch=master;protocol=https \ 14SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager;branch=master;protocol=https \
15 file://kbdconfig" 15 file://kbdconfig"
16 16
17S = "${WORKDIR}/git"
18
19inherit autotools pkgconfig features_check 17inherit autotools pkgconfig features_check
20# depends on virtual/libx11 18# depends on virtual/libx11
21REQUIRED_DISTRO_FEATURES = "x11" 19REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/mesa/libglu_9.0.3.bb b/meta/recipes-graphics/mesa/libglu_9.0.3.bb
index 9e23ff830f..0e38671e41 100644
--- a/meta/recipes-graphics/mesa/libglu_9.0.3.bb
+++ b/meta/recipes-graphics/mesa/libglu_9.0.3.bb
@@ -16,7 +16,7 @@ SRC_URI = "https://archive.mesa3d.org/glu/glu-${PV}.tar.xz \
16 16
17SRC_URI[sha256sum] = "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f" 17SRC_URI[sha256sum] = "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f"
18 18
19S = "${WORKDIR}/glu-${PV}" 19S = "${UNPACKDIR}/glu-${PV}"
20 20
21DEPENDS = "virtual/libgl" 21DEPENDS = "virtual/libgl"
22 22
diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb
index 2bdabddc28..e2f03c81c4 100644
--- a/meta/recipes-graphics/mesa/mesa-gl.bb
+++ b/meta/recipes-graphics/mesa/mesa-gl.bb
@@ -4,7 +4,7 @@ SUMMARY += " (OpenGL only, no EGL/GLES)"
4 4
5PROVIDES = "virtual/libgl virtual/mesa" 5PROVIDES = "virtual/libgl virtual/mesa"
6 6
7S = "${WORKDIR}/mesa-${PV}" 7S = "${UNPACKDIR}/mesa-${PV}"
8 8
9TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" 9TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm"
10 10
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 56ac18ea53..6b42a238cc 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -81,11 +81,10 @@ EXTRA_OEMESON = " \
81def strip_comma(s): 81def strip_comma(s):
82 return s.strip(',') 82 return s.strip(',')
83 83
84
85PACKAGECONFIG = " \ 84PACKAGECONFIG = " \
86 gallium \ 85 gallium \
87 video-codecs \ 86 video-codecs \
88 ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \ 87 ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \
89 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ 88 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
90 ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ 89 ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
91" 90"
@@ -287,7 +286,7 @@ python __anonymous() {
287 if 'glvnd' in pkgconfig: 286 if 'glvnd' in pkgconfig:
288 for p in ("libegl", "libglx"): 287 for p in ("libegl", "libglx"):
289 fullp = mlprefix + p + "-mesa" + suffix 288 fullp = mlprefix + p + "-mesa" + suffix
290 d.appendVar("RPROVIDES:" + fullp, '%s-icd' % p) 289 d.appendVar("RPROVIDES:" + fullp, ' virtual-%s-icd' % p)
291 else: 290 else:
292 for p in (("egl", "libegl", "libegl1"), 291 for p in (("egl", "libegl", "libegl1"),
293 ("opengl", "libgl", "libgl1"), 292 ("opengl", "libgl", "libgl1"),
diff --git a/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb b/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
index 48d50c8f66..e90786df44 100644
--- a/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
+++ b/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "Simple session manager for X, that provides just the right boiler
3HOMEPAGE = "http://www.yoctoproject.org" 3HOMEPAGE = "http://www.yoctoproject.org"
4BUGTRACKER = "http://bugzilla.pokylinux.org" 4BUGTRACKER = "http://bugzilla.pokylinux.org"
5 5
6
7LICENSE = "GPL-2.0-only" 6LICENSE = "GPL-2.0-only"
8LIC_FILES_CHKSUM = "file://mini-x-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487" 7LIC_FILES_CHKSUM = "file://mini-x-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487"
9 8
@@ -12,8 +11,7 @@ RCONFLICTS:${PN} = "matchbox-common"
12 11
13SRC_URI = "file://mini-x-session" 12SRC_URI = "file://mini-x-session"
14 13
15S = "${WORKDIR}/sources" 14S = "${UNPACKDIR}"
16UNPACKDIR = "${S}"
17 15
18RDEPENDS:${PN} = "sudo" 16RDEPENDS:${PN} = "sudo"
19 17
diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
index 41335cbf6d..f5670cacfb 100644
--- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
+++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
@@ -2,7 +2,6 @@
2# Copyright (C) 2011 Intel Corporation 2# Copyright (C) 2011 Intel Corporation
3# 3#
4 4
5
6inherit packagegroup features_check 5inherit packagegroup features_check
7REQUIRED_DISTRO_FEATURES = "x11" 6REQUIRED_DISTRO_FEATURES = "x11"
8 7
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb
index b3469fabe1..59f014afee 100644
--- a/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/meta/recipes-graphics/piglit/piglit_git.bb
@@ -20,8 +20,6 @@ SRCREV = "a0a27e528f643dfeb785350a1213bfff09681950"
20# (when PV goes above 1.0 remove the trailing r) 20# (when PV goes above 1.0 remove the trailing r)
21PV = "1.0+gitr" 21PV = "1.0+gitr"
22 22
23S = "${WORKDIR}/git"
24
25X11_DEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxrender libglu', '', d)}" 23X11_DEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxrender libglu', '', d)}"
26X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)}" 24X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)}"
27 25
diff --git a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
index ee5173dc83..a30cdd1dcb 100644
--- a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
+++ b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
@@ -10,8 +10,7 @@ SRC_URI = "file://pong-clock-no-flicker.c"
10 10
11LIC_FILES_CHKSUM = "file://pong-clock-no-flicker.c;beginline=1;endline=23;md5=dd248d50f73f746d1ee78586b0b2ebd3" 11LIC_FILES_CHKSUM = "file://pong-clock-no-flicker.c;beginline=1;endline=23;md5=dd248d50f73f746d1ee78586b0b2ebd3"
12 12
13S = "${WORKDIR}/sources" 13S = "${UNPACKDIR}"
14UNPACKDIR = "${S}"
15 14
16do_compile () { 15do_compile () {
17 ${CC} ${CFLAGS} ${LDFLAGS} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp` 16 ${CC} ${CFLAGS} ${LDFLAGS} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp`
diff --git a/meta/recipes-graphics/shaderc/shaderc_2025.2.bb b/meta/recipes-graphics/shaderc/shaderc_2025.2.bb
index 8c451e6e46..9e56b97830 100644
--- a/meta/recipes-graphics/shaderc/shaderc_2025.2.bb
+++ b/meta/recipes-graphics/shaderc/shaderc_2025.2.bb
@@ -12,7 +12,6 @@ SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main;tag=v$
12 file://0002-libshaderc_util-fix-glslang-header-file-location.patch \ 12 file://0002-libshaderc_util-fix-glslang-header-file-location.patch \
13 " 13 "
14UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$" 14UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
15S = "${WORKDIR}/git"
16 15
17inherit cmake python3native pkgconfig 16inherit cmake python3native pkgconfig
18 17
diff --git a/meta/recipes-graphics/spir/spirv-headers_1.4.313.0.bb b/meta/recipes-graphics/spir/spirv-headers_1.4.313.0.bb
index 981c2599ae..a551814689 100644
--- a/meta/recipes-graphics/spir/spirv-headers_1.4.313.0.bb
+++ b/meta/recipes-graphics/spir/spirv-headers_1.4.313.0.bb
@@ -13,7 +13,6 @@ PE = "1"
13# The tags versions should always be sdk-x.y.z, as this is what 13# The tags versions should always be sdk-x.y.z, as this is what
14# upstream considers a release. 14# upstream considers a release.
15UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" 15UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
16S = "${WORKDIR}/git"
17 16
18inherit cmake 17inherit cmake
19 18
diff --git a/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb b/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb
index bc2bebcda8..4952e8ba4f 100644
--- a/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb
+++ b/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb
@@ -14,8 +14,6 @@ SRCREV_spirv = "6dd8f2a1681a27f16c53d932d2765920f312aeb2"
14 14
15UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 15UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
16 16
17S = "${WORKDIR}/git"
18
19DEPENDS = "clang spirv-tools spirv-headers" 17DEPENDS = "clang spirv-tools spirv-headers"
20 18
21inherit cmake pkgconfig python3native 19inherit cmake pkgconfig python3native
diff --git a/meta/recipes-graphics/spir/spirv-tools_1.4.313.0.bb b/meta/recipes-graphics/spir/spirv-tools_1.4.313.0.bb
index 57dce4f3fd..4594a1a942 100644
--- a/meta/recipes-graphics/spir/spirv-tools_1.4.313.0.bb
+++ b/meta/recipes-graphics/spir/spirv-tools_1.4.313.0.bb
@@ -17,7 +17,6 @@ PE = "1"
17# The tags versions should always be sdk-x.y.z, as this is what 17# The tags versions should always be sdk-x.y.z, as this is what
18# upstream considers a release. 18# upstream considers a release.
19UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" 19UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
20S = "${WORKDIR}/git"
21 20
22inherit cmake 21inherit cmake
23 22
diff --git a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
index 55b4065a4a..bdc91d7455 100644
--- a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -13,10 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a2ae2cd47d6d2f238410f5364dfbc0f2 \
13 file://libsn/sn-common.h;endline=23;md5=6d05bc0ebdcf5513a6e77cb26e8cd7e2 \ 13 file://libsn/sn-common.h;endline=23;md5=6d05bc0ebdcf5513a6e77cb26e8cd7e2 \
14 file://test/test-boilerplate.h;endline=23;md5=923e706b2a70586176eead261cc5bb98" 14 file://test/test-boilerplate.h;endline=23;md5=923e706b2a70586176eead261cc5bb98"
15 15
16
17SECTION = "libs" 16SECTION = "libs"
18 17
19
20DEPENDS = "virtual/libx11 libsm xcb-util" 18DEPENDS = "virtual/libx11 libsm xcb-util"
21 19
22inherit autotools pkgconfig features_check 20inherit autotools pkgconfig features_check
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 584a19a42a..7d70c37c46 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
@@ -15,7 +15,7 @@ SRC_URI = "https://github.com/liberationfonts/liberation-fonts/files/7261482/lib
15SRC_URI[sha256sum] = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0" 15SRC_URI[sha256sum] = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0"
16GITHUB_BASE_URI = "https://github.com/liberationfonts/liberation-fonts/releases" 16GITHUB_BASE_URI = "https://github.com/liberationfonts/liberation-fonts/releases"
17 17
18S = "${WORKDIR}/liberation-fonts-ttf-${PV}" 18S = "${UNPACKDIR}/liberation-fonts-ttf-${PV}"
19 19
20inherit allarch fontcache github-releases 20inherit allarch fontcache github-releases
21 21
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_1.1.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_1.1.0.bb
index 07abde1c4f..11c3c8c963 100644
--- a/meta/recipes-graphics/virglrenderer/virglrenderer_1.1.0.bb
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_1.1.0.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;prot
15 file://0001-vrend-Fix-int-conversion-fatal-build-error-with-GCC-.patch \ 15 file://0001-vrend-Fix-int-conversion-fatal-build-error-with-GCC-.patch \
16 " 16 "
17 17
18S = "${WORKDIR}/git"
19
20inherit meson pkgconfig features_check 18inherit meson pkgconfig features_check
21 19
22PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}" 20PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}"
diff --git a/meta/recipes-graphics/vulkan/vulkan-headers_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-headers_1.4.313.0.bb
index 12a6923ac6..1136e4795a 100644
--- a/meta/recipes-graphics/vulkan/vulkan-headers_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-headers_1.4.313.0.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main;protocol
13 13
14SRCREV = "409c16be502e39fe70dd6fe2d9ad4842ef2c9a53" 14SRCREV = "409c16be502e39fe70dd6fe2d9ad4842ef2c9a53"
15 15
16S = "${WORKDIR}/git"
17
18inherit cmake 16inherit cmake
19 17
20FILES:${PN} += "${datadir}/vulkan" 18FILES:${PN} += "${datadir}/vulkan"
diff --git a/meta/recipes-graphics/vulkan/vulkan-loader_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-loader_1.4.313.0.bb
index 73f80d64ff..c739ba15dc 100644
--- a/meta/recipes-graphics/vulkan/vulkan-loader_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-loader_1.4.313.0.bb
@@ -12,8 +12,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
12SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=vulkan-sdk-1.4.313;protocol=https" 12SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=vulkan-sdk-1.4.313;protocol=https"
13SRCREV = "fb78607414e154c7a5c01b23177ba719c8a44909" 13SRCREV = "fb78607414e154c7a5c01b23177ba719c8a44909"
14 14
15S = "${WORKDIR}/git"
16
17REQUIRED_DISTRO_FEATURES = "vulkan" 15REQUIRED_DISTRO_FEATURES = "vulkan"
18 16
19inherit cmake features_check pkgconfig 17inherit cmake features_check pkgconfig
diff --git a/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
index 844e0e6b68..b7c9ddd2fe 100644
--- a/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
@@ -13,7 +13,6 @@ UPSTREAM_CHECK_COMMITS = "1"
13SRCREV = "d27205d14d01ea7d33efc8ba2862478612370182" 13SRCREV = "d27205d14d01ea7d33efc8ba2862478612370182"
14 14
15UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for" 15UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
16S = "${WORKDIR}/git"
17 16
18REQUIRED_DISTRO_FEATURES = 'vulkan' 17REQUIRED_DISTRO_FEATURES = 'vulkan'
19 18
diff --git a/meta/recipes-graphics/vulkan/vulkan-tools_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-tools_1.4.313.0.bb
index 85578df467..c73e5caa13 100644
--- a/meta/recipes-graphics/vulkan/vulkan-tools_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-tools_1.4.313.0.bb
@@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
9SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=vulkan-sdk-1.4.313;protocol=https" 9SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=vulkan-sdk-1.4.313;protocol=https"
10SRCREV = "ad2f0170f9466fadd96e3fdd65fad02cd3a3739b" 10SRCREV = "ad2f0170f9466fadd96e3fdd65fad02cd3a3739b"
11 11
12S = "${WORKDIR}/git"
13
14inherit cmake features_check pkgconfig 12inherit cmake features_check pkgconfig
15ANY_OF_DISTRO_FEATURES = "x11 wayland" 13ANY_OF_DISTRO_FEATURES = "x11 wayland"
16REQUIRED_DISTRO_FEATURES = "vulkan" 14REQUIRED_DISTRO_FEATURES = "vulkan"
diff --git a/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.4.313.0.bb
index 785c6f305b..1b38b6ec3a 100644
--- a/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.4.313.0.bb
@@ -12,8 +12,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=4ca2d6799091aaa98a8520f1b793939b"
12SRC_URI = "git://github.com/KhronosGroup/Vulkan-Utility-Libraries.git;branch=vulkan-sdk-1.4.313;protocol=https" 12SRC_URI = "git://github.com/KhronosGroup/Vulkan-Utility-Libraries.git;branch=vulkan-sdk-1.4.313;protocol=https"
13SRCREV = "4e246c56ec5afb5ad66b9b04374d39ac04675c8e" 13SRCREV = "4e246c56ec5afb5ad66b9b04374d39ac04675c8e"
14 14
15S = "${WORKDIR}/git"
16
17REQUIRED_DISTRO_FEATURES = "vulkan" 15REQUIRED_DISTRO_FEATURES = "vulkan"
18 16
19DEPENDS = "vulkan-headers" 17DEPENDS = "vulkan-headers"
diff --git a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.313.0.bb
index 65cafa359e..63a3aa4ae6 100644
--- a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.4.313.0.bb
@@ -11,8 +11,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b1a17d548e004bfbbfaa0c40988b6b31"
11SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=vulkan-sdk-1.4.313;protocol=https" 11SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=vulkan-sdk-1.4.313;protocol=https"
12SRCREV = "50b87dd4be883b63c10e3c4f7b9c5aac0c82efd3" 12SRCREV = "50b87dd4be883b63c10e3c4f7b9c5aac0c82efd3"
13 13
14S = "${WORKDIR}/git"
15
16REQUIRED_DISTRO_FEATURES = "vulkan" 14REQUIRED_DISTRO_FEATURES = "vulkan"
17 15
18DEPENDS = "vulkan-headers vulkan-loader spirv-headers spirv-tools glslang vulkan-utility-libraries" 16DEPENDS = "vulkan-headers vulkan-loader spirv-headers spirv-tools glslang vulkan-utility-libraries"
diff --git a/meta/recipes-graphics/vulkan/vulkan-volk_1.4.313.0.bb b/meta/recipes-graphics/vulkan/vulkan-volk_1.4.313.0.bb
index 5e661080a0..cde1be1671 100644
--- a/meta/recipes-graphics/vulkan/vulkan-volk_1.4.313.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-volk_1.4.313.0.bb
@@ -12,8 +12,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb3d6e8051a71edca1e54bc38d35e5af"
12SRC_URI = "git://github.com/zeux/volk.git;branch=master;protocol=https" 12SRC_URI = "git://github.com/zeux/volk.git;branch=master;protocol=https"
13SRCREV = "43c29e655cb8117fd9cfb65ad9cefe2d40965102" 13SRCREV = "43c29e655cb8117fd9cfb65ad9cefe2d40965102"
14 14
15S = "${WORKDIR}/git"
16
17REQUIRED_DISTRO_FEATURES = "vulkan" 15REQUIRED_DISTRO_FEATURES = "vulkan"
18 16
19DEPENDS = "vulkan-headers" 17DEPENDS = "vulkan-headers"
diff --git a/meta/recipes-graphics/waffle/waffle_1.8.1.bb b/meta/recipes-graphics/waffle/waffle_1.8.1.bb
index 684124bc4d..606881e0c9 100644
--- a/meta/recipes-graphics/waffle/waffle_1.8.1.bb
+++ b/meta/recipes-graphics/waffle/waffle_1.8.1.bb
@@ -12,7 +12,6 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \
12SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=maint-1.8 \ 12SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=maint-1.8 \
13 " 13 "
14SRCREV = "49abc7cb5f73cc6852136c91da49ea3a338960e4" 14SRCREV = "49abc7cb5f73cc6852136c91da49ea3a338960e4"
15S = "${WORKDIR}/git"
16 15
17inherit meson features_check lib_package bash-completion pkgconfig 16inherit meson features_check lib_package bash-completion pkgconfig
18 17
diff --git a/meta/recipes-graphics/wayland/libinput_1.28.1.bb b/meta/recipes-graphics/wayland/libinput_1.28.1.bb
index c10422bf9b..521a7f9a09 100644
--- a/meta/recipes-graphics/wayland/libinput_1.28.1.bb
+++ b/meta/recipes-graphics/wayland/libinput_1.28.1.bb
@@ -16,7 +16,6 @@ SRC_URI = "git://gitlab.freedesktop.org/libinput/libinput.git;protocol=https;bra
16 file://run-ptest \ 16 file://run-ptest \
17 " 17 "
18SRCREV = "4f7b4ef0e4eb5d569df36be387579858eba349bb" 18SRCREV = "4f7b4ef0e4eb5d569df36be387579858eba349bb"
19S = "${WORKDIR}/git"
20 19
21UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" 20UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
22 21
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb
index 5723655a9b..fc817d113f 100644
--- a/meta/recipes-graphics/wayland/weston-init.bb
+++ b/meta/recipes-graphics/wayland/weston-init.bb
@@ -13,8 +13,7 @@ SRC_URI = "file://init \
13 file://weston-autologin \ 13 file://weston-autologin \
14 file://weston-start" 14 file://weston-start"
15 15
16S = "${WORKDIR}/sources" 16S = "${UNPACKDIR}"
17UNPACKDIR = "${S}"
18 17
19PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" 18PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}"
20PACKAGECONFIG:append:qemuriscv64 = " use-pixman" 19PACKAGECONFIG:append:qemuriscv64 = " use-pixman"
diff --git a/meta/recipes-graphics/wayland/weston_14.0.2.bb b/meta/recipes-graphics/wayland/weston_14.0.2.bb
index 03b49d730e..451fb961a1 100644
--- a/meta/recipes-graphics/wayland/weston_14.0.2.bb
+++ b/meta/recipes-graphics/wayland/weston_14.0.2.bb
@@ -94,7 +94,6 @@ PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipe
94# VNC remote screensharing 94# VNC remote screensharing
95PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc libpam" 95PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc libpam"
96 96
97
98do_install:append() { 97do_install:append() {
99 # Weston doesn't need the .la files to load modules, so wipe them 98 # Weston doesn't need the .la files to load modules, so wipe them
100 rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la 99 rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la
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 cd4acf8155..169269eefb 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
@@ -12,8 +12,7 @@ SRC_URI = "file://xserver-nodm \
12 file://capability.conf \ 12 file://capability.conf \
13" 13"
14 14
15S = "${WORKDIR}/sources" 15S = "${UNPACKDIR}"
16UNPACKDIR = "${S}"
17 16
18# Since we refer to ROOTLESS_X which is normally enabled per-machine 17# Since we refer to ROOTLESS_X which is normally enabled per-machine
19PACKAGE_ARCH = "${MACHINE_ARCH}" 18PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb
index 40b77422bf..e5a0f903f1 100644
--- a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb
+++ b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb
@@ -13,8 +13,6 @@ PV = "0.1.1+git"
13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" 13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
14UPSTREAM_CHECK_COMMITS = "1" 14UPSTREAM_CHECK_COMMITS = "1"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools allarch 16inherit autotools allarch
19 17
20FILES:${PN} = "${datadir}/icons/xcursor-transparent/cursors/*" 18FILES:${PN} = "${datadir}/icons/xcursor-transparent/cursors/*"
diff --git a/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb b/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
index f4516e6975..50c6a120be 100644
--- a/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
+++ b/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
@@ -5,11 +5,9 @@ BUGTRACKER = "https://github.com/tias/xinput_calibrator/issues"
5LICENSE = "MIT" 5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 6LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
7 7
8
9SRC_URI = "file://pointercal.xinput" 8SRC_URI = "file://pointercal.xinput"
10 9
11S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 11
14do_install() { 12do_install() {
15 # Only install file if it has a contents 13 # Only install file if it has a contents
diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_0.8.0.bb b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_0.8.0.bb
index c37b36897b..84bf530077 100644
--- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_0.8.0.bb
+++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_0.8.0.bb
@@ -14,8 +14,6 @@ SRC_URI = "git://gitlab.freedesktop.org/xorg/app/xinput-calibrator;protocol=http
14 file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch \ 14 file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch \
15 " 15 "
16 16
17S = "${WORKDIR}/git"
18
19EXTRA_OECONF += "--with-gui=x11" 17EXTRA_OECONF += "--with-gui=x11"
20 18
21do_install:append() { 19do_install:append() {
diff --git a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
index 828523afb4..3258de79a0 100644
--- a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
+++ b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
@@ -5,7 +5,6 @@ SUMMARY = "X11 server performance test program"
5DESCRIPTION = "The x11perf program runs one or more performance tests \ 5DESCRIPTION = "The x11perf program runs one or more performance tests \
6and reports how fast an X server can execute the tests." 6and reports how fast an X server can execute the tests."
7 7
8
9DEPENDS += "libxmu libxrender libxft libxext fontconfig" 8DEPENDS += "libxmu libxrender libxft libxext fontconfig"
10 9
11LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \ 10LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
index 0a42bd9975..fd8324409e 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
11 11
12SRCREV = "31486f40f8e8f8923ca0799aea84b58799754564" 12SRCREV = "31486f40f8e8f8923ca0799aea84b58799754564"
13PV = "2.99.917+git" 13PV = "2.99.917+git"
14S = "${WORKDIR}/git"
15 14
16SRC_URI = "git://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git;protocol=https;branch=master" 15SRC_URI = "git://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git;protocol=https;branch=master"
17 16
diff --git a/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
index edf7cf7642..a11b8e8ab2 100644
--- a/meta/recipes-graphics/xorg-font/xorg-font-common.inc
+++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -11,7 +11,7 @@ XORG_PN = "${BPN}"
11 11
12SRC_URI_EXT = "bz2" 12SRC_URI_EXT = "bz2"
13SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.${SRC_URI_EXT}" 13SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.${SRC_URI_EXT}"
14S = "${WORKDIR}/${XORG_PN}-${PV}" 14S = "${UNPACKDIR}/${XORG_PN}-${PV}"
15 15
16inherit autotools pkgconfig features_check 16inherit autotools pkgconfig features_check
17 17
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
index e51e3fbc3a..28010f5f22 100644
--- a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -19,7 +19,7 @@ inherit allarch features_check
19# The font-alias requires x11 in DISTRO_FEATURES 19# The font-alias requires x11 in DISTRO_FEATURES
20REQUIRED_DISTRO_FEATURES = "x11" 20REQUIRED_DISTRO_FEATURES = "x11"
21 21
22S = "${WORKDIR}/misc" 22S = "${UNPACKDIR}/misc"
23 23
24PACKAGES = "${PN}" 24PACKAGES = "${PN}"
25FILES:${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/" 25FILES:${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/"
diff --git a/meta/recipes-graphics/xorg-lib/libxcvt_0.1.3.bb b/meta/recipes-graphics/xorg-lib/libxcvt_0.1.3.bb
index 08194e4815..1e2c626143 100644
--- a/meta/recipes-graphics/xorg-lib/libxcvt_0.1.3.bb
+++ b/meta/recipes-graphics/xorg-lib/libxcvt_0.1.3.bb
@@ -9,8 +9,6 @@ SECTION = "x11/libs"
9SRC_URI = "git://gitlab.freedesktop.org/xorg/lib/libxcvt.git;protocol=https;branch=master" 9SRC_URI = "git://gitlab.freedesktop.org/xorg/lib/libxcvt.git;protocol=https;branch=master"
10SRCREV = "dd8631c61465cc0de5e476c7a98e56528d62b163" 10SRCREV = "dd8631c61465cc0de5e476c7a98e56528d62b163"
11 11
12S = "${WORKDIR}/git"
13
14inherit meson 12inherit meson
15 13
16FILES:${PN} = " \ 14FILES:${PN} = " \
diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.10.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.10.0.bb
index e10bbf7af0..79c95cb8ed 100644
--- a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.10.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.10.0.bb
@@ -10,7 +10,6 @@ DEPENDS = "flex-native bison-native"
10SRC_URI = "git://github.com/xkbcommon/libxkbcommon;protocol=https;branch=master;tag=xkbcommon-${PV}" 10SRC_URI = "git://github.com/xkbcommon/libxkbcommon;protocol=https;branch=master;tag=xkbcommon-${PV}"
11 11
12SRCREV = "7888474d0296dcad50c9ba4adfdfdf2be02d35e1" 12SRCREV = "7888474d0296dcad50c9ba4adfdfdf2be02d35e1"
13S = "${WORKDIR}/git"
14 13
15inherit meson pkgconfig bash-completion 14inherit meson pkgconfig bash-completion
16 15
diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb b/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb
index f1a4c3e500..1fa4d196fd 100644
--- a/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb
+++ b/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb
@@ -5,4 +5,3 @@ LIC_FILES_CHKSUM = "file://keysyms/keysyms.c;endline=30;md5=2f8de023ed823bb92f0b
5 " 5 "
6SRC_URI[sha256sum] = "7c260a5294412aed429df1da2f8afd3bd07b7cba3fec772fba15a613a6d5c638" 6SRC_URI[sha256sum] = "7c260a5294412aed429df1da2f8afd3bd07b7cba3fec772fba15a613a6d5c638"
7 7
8
diff --git a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
index 15c7ecf782..ba7fcb7304 100644
--- a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
+++ b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
@@ -10,7 +10,7 @@ XORG_EXT ?= "tar.xz"
10 10
11SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.${XORG_EXT}" 11SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.${XORG_EXT}"
12 12
13S = "${WORKDIR}/${XORG_PN}-${PV}" 13S = "${UNPACKDIR}/${XORG_PN}-${PV}"
14 14
15inherit autotools features_check pkgconfig 15inherit autotools features_check pkgconfig
16 16
diff --git a/meta/recipes-graphics/xorg-util/xorg-util-common.inc b/meta/recipes-graphics/xorg-util/xorg-util-common.inc
index a4c85a4ebc..198921116d 100644
--- a/meta/recipes-graphics/xorg-util/xorg-util-common.inc
+++ b/meta/recipes-graphics/xorg-util/xorg-util-common.inc
@@ -8,6 +8,6 @@ XORG_PN = "${BPN}"
8 8
9SRC_URI = "${XORG_MIRROR}/individual/util/${XORG_PN}-${PV}.tar.gz" 9SRC_URI = "${XORG_MIRROR}/individual/util/${XORG_PN}-${PV}.tar.gz"
10 10
11S = "${WORKDIR}/${XORG_PN}-${PV}" 11S = "${UNPACKDIR}/${XORG_PN}-${PV}"
12 12
13inherit autotools pkgconfig 13inherit autotools pkgconfig
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 d57b3427f8..8f3b9217a0 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
@@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
7SRC_URI = "file://xorg.conf" 7SRC_URI = "file://xorg.conf"
8SRC_URI:append:qemuall = " file://noblank.conf" 8SRC_URI:append:qemuall = " file://noblank.conf"
9 9
10S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 11
13CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf" 12CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf"
14 13
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index 7645f11c14..0dece7bba3 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -30,7 +30,7 @@ impossible or difficult to exploit. There is currently no upstream patch \
30available for this flaw." 30available for this flaw."
31CVE_STATUS[CVE-2022-3553] = "cpe-incorrect: This is specific to XQuartz, which is the macOS X server port" 31CVE_STATUS[CVE-2022-3553] = "cpe-incorrect: This is specific to XQuartz, which is the macOS X server port"
32 32
33S = "${WORKDIR}/${XORG_PN}-${PV}" 33S = "${UNPACKDIR}/${XORG_PN}-${PV}"
34 34
35inherit meson pkgconfig 35inherit meson pkgconfig
36 36
diff --git a/meta/recipes-kernel/blktrace/blktrace_1.3.0.bb b/meta/recipes-kernel/blktrace/blktrace_1.3.0.bb
index 061a7b9784..f053490409 100644
--- a/meta/recipes-kernel/blktrace/blktrace_1.3.0.bb
+++ b/meta/recipes-kernel/blktrace/blktrace_1.3.0.bb
@@ -10,15 +10,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
10 10
11DEPENDS = "libaio" 11DEPENDS = "libaio"
12 12
13
14SRC_URI = "git://git.kernel.dk/blktrace.git;protocol=https;branch=master \ 13SRC_URI = "git://git.kernel.dk/blktrace.git;protocol=https;branch=master \
15 file://0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch \ 14 file://0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch \
16 " 15 "
17 16
18SRCREV = "366d30b9cdb20345c5d064af850d686da79b89eb" 17SRCREV = "366d30b9cdb20345c5d064af850d686da79b89eb"
19 18
20S = "${WORKDIR}/git"
21
22EXTRA_OEMAKE = "\ 19EXTRA_OEMAKE = "\
23 'CC=${CC}' \ 20 'CC=${CC}' \
24 'CFLAGS=${CFLAGS}' \ 21 'CFLAGS=${CFLAGS}' \
diff --git a/meta/recipes-kernel/cryptodev/cryptodev.inc b/meta/recipes-kernel/cryptodev/cryptodev.inc
index 8d0aad4a01..16a8eb610a 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -13,6 +13,4 @@ SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux;branch=master;protoc
13SRCREV = "135cbff90af2ba97d88f1472be595ce78721972c" 13SRCREV = "135cbff90af2ba97d88f1472be595ce78721972c"
14PV = "1.14" 14PV = "1.14"
15 15
16S = "${WORKDIR}/git"
17
18CLEANBROKEN = "1" 16CLEANBROKEN = "1"
diff --git a/meta/recipes-kernel/dtc/dtc_1.7.2.bb b/meta/recipes-kernel/dtc/dtc_1.7.2.bb
index 3df95ec1ee..92e83a9404 100644
--- a/meta/recipes-kernel/dtc/dtc_1.7.2.bb
+++ b/meta/recipes-kernel/dtc/dtc_1.7.2.bb
@@ -15,8 +15,6 @@ SRCREV = "2d10aa2afe35527728db30b35ec491ecb6959e5c"
15 15
16UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 16UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
17 17
18S = "${WORKDIR}/git"
19
20inherit meson pkgconfig 18inherit meson pkgconfig
21 19
22EXTRA_OEMESON = "-Dpython=disabled -Dvalgrind=disabled" 20EXTRA_OEMESON = "-Dpython=disabled -Dvalgrind=disabled"
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 a766b00bef..b19f53e20d 100644
--- a/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
+++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
@@ -7,8 +7,7 @@ SRC_URI = "file://dt-doc-validate \
7 file://dt-mk-schema \ 7 file://dt-mk-schema \
8 file://dt-validate" 8 file://dt-validate"
9 9
10S = "${WORKDIR}/sources" 10S = "${UNPACKDIR}"
11UNPACKDIR = "${S}"
12 11
13do_install() { 12do_install() {
14 install -d ${D}${bindir}/ 13 install -d ${D}${bindir}/
diff --git a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index 20b1bcaf37..84b8b10a26 100644
--- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -17,7 +17,6 @@ PV = "0.3+git"
17inherit native 17inherit native
18 18
19SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git;branch=master;protocol=https" 19SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git;branch=master;protocol=https"
20S = "${WORKDIR}/git"
21 20
22do_configure() { 21do_configure() {
23 : 22 :
diff --git a/meta/recipes-kernel/kernel-signing-keys/kernel-signing-keys-native.bb b/meta/recipes-kernel/kernel-signing-keys/kernel-signing-keys-native.bb
index 704973dffb..f346f1648a 100644
--- a/meta/recipes-kernel/kernel-signing-keys/kernel-signing-keys-native.bb
+++ b/meta/recipes-kernel/kernel-signing-keys/kernel-signing-keys-native.bb
@@ -11,7 +11,6 @@
11# cases. For more advanced or production-grade scenarios, a more robust solution 11# cases. For more advanced or production-grade scenarios, a more robust solution
12# is usually required—such as external signing or re-signing using e.g a HSM. 12# is usually required—such as external signing or re-signing using e.g a HSM.
13 13
14
15SUMMARY = "Signing keys for the kernel FIT image" 14SUMMARY = "Signing keys for the kernel FIT image"
16LICENSE = "MIT" 15LICENSE = "MIT"
17LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" 16LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
@@ -28,7 +27,6 @@ do_patch[noexec] = "1"
28do_configure[noexec] = "1" 27do_configure[noexec] = "1"
29do_install[noexec] = "1" 28do_install[noexec] = "1"
30 29
31
32do_compile() { 30do_compile() {
33 if [ "${UBOOT_SIGN_ENABLE}" = "0" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then 31 if [ "${UBOOT_SIGN_ENABLE}" = "0" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
34 bbwarn "FIT_GENERATE_KEYS is set to 1 even though UBOOT_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used." 32 bbwarn "FIT_GENERATE_KEYS is set to 1 even though UBOOT_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used."
diff --git a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
index 29f34d7f36..5e70e01102 100644
--- a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
+++ b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
@@ -1,8 +1,7 @@
1SUMMARY = "Wrapper script for the Linux kernel module dependency indexer" 1SUMMARY = "Wrapper script for the Linux kernel module dependency indexer"
2LICENSE = "MIT" 2LICENSE = "MIT"
3 3
4S = "${WORKDIR}/sources" 4S = "${UNPACKDIR}"
5UNPACKDIR = "${S}"
6 5
7INHIBIT_DEFAULT_DEPS = "1" 6INHIBIT_DEFAULT_DEPS = "1"
8# The kernel and the staging dir for it is machine specific 7# The kernel and the staging dir for it is machine specific
diff --git a/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.4.bb b/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.4.bb
index 7a33da37c2..75762e4def 100644
--- a/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.4.bb
+++ b/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.4.bb
@@ -12,8 +12,6 @@ SRCREV = "bd47bd544c9ebc9f44bd88c2b2f2049230741058"
12SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git;branch=${BPN};protocol=https \ 12SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git;branch=${BPN};protocol=https \
13 " 13 "
14 14
15S = "${WORKDIR}/git"
16
17inherit meson pkgconfig 15inherit meson pkgconfig
18 16
19EXTRA_OEMESON = "-Ddoc=false" 17EXTRA_OEMESON = "-Ddoc=false"
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20250509.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20250509.bb
index 3883f71781..ea75271af8 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20250509.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20250509.bb
@@ -288,7 +288,6 @@ do_install() {
288 cp wfx/LICEN[CS]E.* ${D}${nonarch_base_libdir}/firmware/wfx/ 288 cp wfx/LICEN[CS]E.* ${D}${nonarch_base_libdir}/firmware/wfx/
289} 289}
290 290
291
292PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \ 291PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \
293 ${PN}-cw1200-license ${PN}-cw1200 \ 292 ${PN}-cw1200-license ${PN}-cw1200 \
294 ${PN}-ralink-license ${PN}-ralink \ 293 ${PN}-ralink-license ${PN}-ralink \
@@ -764,7 +763,6 @@ ALLOW_EMPTY:${PN}-qca = "1"
764# firmwares that are not already included in other -qca- packages. 763# firmwares that are not already included in other -qca- packages.
765ALLOW_EMPTY:${PN}-qca-misc = "1" 764ALLOW_EMPTY:${PN}-qca-misc = "1"
766 765
767
768RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" 766RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license"
769RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" 767RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license"
770RDEPENDS:${PN}-ath10k-qca4019 += "${PN}-ath10k-license" 768RDEPENDS:${PN}-ath10k-qca4019 += "${PN}-ath10k-license"
@@ -1627,7 +1625,6 @@ LICENSE:${PN}-iwlwifi-9260 = "Firmware-iwlwifi_firmware"
1627LICENSE:${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" 1625LICENSE:${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware"
1628LICENSE:${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" 1626LICENSE:${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware"
1629 1627
1630
1631FILES:${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" 1628FILES:${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware"
1632FILES:${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode*" 1629FILES:${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode*"
1633FILES:${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode*" 1630FILES:${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode*"
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index 3a8d32e785..1f5c47f453 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -60,7 +60,7 @@ KORG_ARCHIVE_COMPRESSION ?= "xz"
60SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar.${KORG_ARCHIVE_COMPRESSION}" 60SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar.${KORG_ARCHIVE_COMPRESSION}"
61UPSTREAM_CHECK_URI = "https://www.kernel.org/" 61UPSTREAM_CHECK_URI = "https://www.kernel.org/"
62 62
63S = "${WORKDIR}/linux-${PV}" 63S = "${UNPACKDIR}/linux-${PV}"
64 64
65EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}"" 65EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}""
66 66
diff --git a/meta/recipes-kernel/linux/cve-exclusion_6.12.inc b/meta/recipes-kernel/linux/cve-exclusion_6.12.inc
index 199ea019d5..b6082edf5c 100644
--- a/meta/recipes-kernel/linux/cve-exclusion_6.12.inc
+++ b/meta/recipes-kernel/linux/cve-exclusion_6.12.inc
@@ -3,7 +3,6 @@
3# Generated at 2025-06-05 16:29:20.725105+00:00 for kernel version 6.12.31 3# Generated at 2025-06-05 16:29:20.725105+00:00 for kernel version 6.12.31
4# From cvelistV5 cve_2025-06-05_1600Z 4# From cvelistV5 cve_2025-06-05_1600Z
5 5
6
7python check_kernel_cve_status_version() { 6python check_kernel_cve_status_version() {
8 this_version = "6.12.31" 7 this_version = "6.12.31"
9 kernel_version = d.getVar("LINUX_VERSION") 8 kernel_version = d.getVar("LINUX_VERSION")
diff --git a/meta/recipes-kernel/linux/linux-dummy.bb b/meta/recipes-kernel/linux/linux-dummy.bb
index 3e9a563cad..d7f39a452d 100644
--- a/meta/recipes-kernel/linux/linux-dummy.bb
+++ b/meta/recipes-kernel/linux/linux-dummy.bb
@@ -23,16 +23,13 @@ FILES:kernel-vmlinux = ""
23ALLOW_EMPTY:kernel-vmlinux = "1" 23ALLOW_EMPTY:kernel-vmlinux = "1"
24DESCRIPTION:kernel-vmlinux = "Kernel vmlinux meta package" 24DESCRIPTION:kernel-vmlinux = "Kernel vmlinux meta package"
25 25
26
27INHIBIT_DEFAULT_DEPS = "1" 26INHIBIT_DEFAULT_DEPS = "1"
28 27
29COMPATIBLE_HOST = ".*-linux" 28COMPATIBLE_HOST = ".*-linux"
30 29
31
32SRC_URI = "file://COPYING.GPL" 30SRC_URI = "file://COPYING.GPL"
33 31
34S = "${WORKDIR}/sources" 32S = "${UNPACKDIR}"
35UNPACKDIR = "${S}"
36 33
37do_configure() { 34do_configure() {
38 : 35 :
diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.1.1.bb b/meta/recipes-kernel/lttng/babeltrace2_2.1.1.bb
index fdcb637761..8bab7f677a 100644
--- a/meta/recipes-kernel/lttng/babeltrace2_2.1.1.bb
+++ b/meta/recipes-kernel/lttng/babeltrace2_2.1.1.bb
@@ -17,8 +17,6 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.1;protocol=http
17SRCREV = "7f2f8cd6dac497cbb466efb31219b531c62013f5" 17SRCREV = "7f2f8cd6dac497cbb466efb31219b531c62013f5"
18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" 18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$"
19 19
20S = "${WORKDIR}/git"
21
22inherit autotools pkgconfig ptest python3targetconfig 20inherit autotools pkgconfig ptest python3targetconfig
23 21
24EXTRA_OECONF = "--disable-debug-info --disable-Werror" 22EXTRA_OECONF = "--disable-debug-info --disable-Werror"
diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb
index 2585747fb6..8ec80167a0 100644
--- a/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb
+++ b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5;protocol=http
13SRCREV = "91c00f70884887ff5c4849a8e3d47e311a22ba9d" 13SRCREV = "91c00f70884887ff5c4849a8e3d47e311a22ba9d"
14UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$" 14UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools pkgconfig ptest 16inherit autotools pkgconfig ptest
19 17
20EXTRA_OECONF = "--disable-debug-info" 18EXTRA_OECONF = "--disable-debug-info"
diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 1a20472994..8fcb5e6eb3 100644
--- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -8,8 +8,7 @@ inherit pkgconfig
8 8
9PACKAGE_ARCH = "${MACHINE_ARCH}" 9PACKAGE_ARCH = "${MACHINE_ARCH}"
10 10
11S = "${WORKDIR}/sources" 11S = "${UNPACKDIR}"
12UNPACKDIR = "${S}"
13 12
14do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot" 13do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot"
15do_compile[depends] += "virtual/kernel:do_compile_kernelmodules" 14do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
diff --git a/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.7.bb b/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.7.bb
index 23fcef9569..99393e0984 100644
--- a/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.7.bb
+++ b/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.7.bb
@@ -28,8 +28,6 @@ SRC_URI = "\
28 file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \ 28 file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
29" 29"
30 30
31S = "${WORKDIR}/git"
32
33UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 31UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
34 32
35SECTION = "base" 33SECTION = "base"
diff --git a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
index 49268445a8..fb7b09393a 100644
--- a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
+++ b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
@@ -4,8 +4,7 @@ LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://modutils.sh;beginline=3;endline=3;md5=b2dccaa94b3629a08bfb4f983cad6f89" 4LIC_FILES_CHKSUM = "file://modutils.sh;beginline=3;endline=3;md5=b2dccaa94b3629a08bfb4f983cad6f89"
5SRC_URI = "file://modutils.sh" 5SRC_URI = "file://modutils.sh"
6 6
7S = "${WORKDIR}/sources" 7S = "${UNPACKDIR}"
8UNPACKDIR = "${S}"
9 8
10INITSCRIPT_NAME = "modutils.sh" 9INITSCRIPT_NAME = "modutils.sh"
11INITSCRIPT_PARAMS = "start 06 S ." 10INITSCRIPT_PARAMS = "start 06 S ."
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 6cc5499d8d..157aca4d79 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -66,7 +66,7 @@ include ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perf-perl.inc', '', d)}
66 66
67inherit kernelsrc 67inherit kernelsrc
68 68
69S = "${WORKDIR}/${BP}" 69S = "${UNPACKDIR}/${BP}"
70 70
71# The LDFLAGS is required or some old kernels fails due missing 71# The LDFLAGS is required or some old kernels fails due missing
72# symbols and this is preferred than requiring patches to every old 72# symbols and this is preferred than requiring patches to every old
@@ -391,7 +391,6 @@ python do_package:prepend() {
391 391
392PACKAGE_ARCH = "${MACHINE_ARCH}" 392PACKAGE_ARCH = "${MACHINE_ARCH}"
393 393
394
395PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python" 394PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python"
396 395
397RDEPENDS:${PN} += "elfutils bash" 396RDEPENDS:${PN} += "elfutils bash"
diff --git a/meta/recipes-kernel/powertop/powertop_2.15.bb b/meta/recipes-kernel/powertop/powertop_2.15.bb
index ec81d546a8..a9008b4074 100644
--- a/meta/recipes-kernel/powertop/powertop_2.15.bb
+++ b/meta/recipes-kernel/powertop/powertop_2.15.bb
@@ -11,8 +11,6 @@ SRC_URI = "git://github.com/fenrus75/powertop;protocol=https;branch=master \
11 " 11 "
12SRCREV = "d51ad395436d4d1dcc3ca46e1519ffeb475bf651" 12SRCREV = "d51ad395436d4d1dcc3ca46e1519ffeb475bf651"
13 13
14S = "${WORKDIR}/git"
15
16LDFLAGS += "-pthread" 14LDFLAGS += "-pthread"
17 15
18inherit autotools gettext pkgconfig bash-completion 16inherit autotools gettext pkgconfig bash-completion
diff --git a/meta/recipes-kernel/systemtap/systemtap-native_5.2.bb b/meta/recipes-kernel/systemtap/systemtap-native_5.3.bb
index 8befa7a7ea..8befa7a7ea 100644
--- a/meta/recipes-kernel/systemtap/systemtap-native_5.2.bb
+++ b/meta/recipes-kernel/systemtap/systemtap-native_5.3.bb
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch b/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
index 15a6f2a9a5..7d35f76b29 100644
--- a/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-improve-reproducibility-for-c-compiling.patch
@@ -13,19 +13,16 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
13 stringtable.h | 2 +- 13 stringtable.h | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
15 15
16diff --git a/stringtable.h b/stringtable.h 16Index: git/stringtable.h
17index 5fc42e7..6fd8a1e 100644 17===================================================================
18--- a/stringtable.h 18--- git.orig/stringtable.h
19+++ b/stringtable.h 19+++ git/stringtable.h
20@@ -19,7 +19,7 @@ 20@@ -23,7 +23,7 @@
21 21
22 #if defined(HAVE_BOOST_UTILITY_STRING_REF_HPP) 22 #if 0 && defined(HAVE_BOOST_UTILITY_STRING_REF_HPP)
23 #include <boost/version.hpp> 23 #include <boost/version.hpp>
24-#include <boost/utility/string_ref.hpp> //header with string_ref 24-#include <boost/utility/string_ref.hpp> //header with string_ref
25+#include "@RELATIVE_STAGING_INCDIR@/boost/utility/string_ref.hpp" //header with string_ref 25+#include "@RELATIVE_STAGING_INCDIR@/boost/utility/string_ref.hpp" //header with string_ref
26 26
27 // XXX: experimental tunables 27 // XXX: experimental tunables
28 #define INTERNED_STRING_FIND_MEMMEM 1 /* perf stat indicates a very slight benefit */ 28 #define INTERNED_STRING_FIND_MEMMEM 1 /* perf stat indicates a very slight benefit */
29--
302.7.4
31
diff --git a/meta/recipes-kernel/systemtap/systemtap_5.2.bb b/meta/recipes-kernel/systemtap/systemtap_5.3.bb
index 588b3b8d36..588b3b8d36 100644
--- a/meta/recipes-kernel/systemtap/systemtap_5.2.bb
+++ b/meta/recipes-kernel/systemtap/systemtap_5.3.bb
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index a6688f2604..86336b0779 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,19 +1,17 @@
1LICENSE = "GPL-2.0-only" 1LICENSE = "GPL-2.0-only"
2LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" 2LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
3 3
4SRC_URI = "git://sourceware.org/git/systemtap.git;protocol=https;branch=master \ 4SRC_URI = "git://sourceware.org/git/systemtap.git;protocol=https;branch=master;tag=release-${PV} \
5 file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ 5 file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
6 file://0001-Install-python-modules-to-correct-library-dir.patch \ 6 file://0001-Install-python-modules-to-correct-library-dir.patch \
7 file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \ 7 file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \
8 " 8 "
9 9
10SRCREV = "3a92ffe673c1621309a0b60892114495b651c9de" 10SRCREV = "c4fc655170b534478a6b131292b987630c7c0865"
11 11
12COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64).*-linux' 12COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64).*-linux'
13COMPATIBLE_HOST:libc-musl = 'null' 13COMPATIBLE_HOST:libc-musl = 'null'
14 14
15S = "${WORKDIR}/git"
16
17# systemtap can't be built without optimization, if someone tries to compile an 15# systemtap can't be built without optimization, if someone tries to compile an
18# entire image as -O0, break with fatal. 16# entire image as -O0, break with fatal.
19python () { 17python () {
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb
index 74b36291d6..3cbb9b464b 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.14.bb
@@ -119,7 +119,6 @@ do_install() {
119 rm -rf ${D}/unwanted 119 rm -rf ${D}/unwanted
120} 120}
121 121
122
123PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts" 122PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts"
124 123
125RDEPENDS:${PN}-scripts += "bash" 124RDEPENDS:${PN}-scripts += "bash"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.26.2.bb
index bc043f81c7..33c4119d1a 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.26.2.bb
@@ -14,11 +14,11 @@ SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gstreamer.git;protocol=https;b
14 14
15SRCREV = "100c21e1faf68efe7f3830b6e9f856760697ab48" 15SRCREV = "100c21e1faf68efe7f3830b6e9f856760697ab48"
16 16
17S = "${WORKDIR}/git/subprojects/gst-examples" 17S = "${UNPACKDIR}/${BP}/subprojects/gst-examples"
18 18
19inherit meson pkgconfig features_check 19inherit meson pkgconfig features_check
20 20
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" 21UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
22 22
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24 24
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.2.bb
index 88cc0b530d..e3410f0907 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.26.2.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" 14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "2eceba9cae4c495bb4ea134c27f010356036f1fa1972db5f54833f5f6c9f8db0" 15SRC_URI[sha256sum] = "2eceba9cae4c495bb4ea134c27f010356036f1fa1972db5f54833f5f6c9f8db0"
16 16
17S = "${WORKDIR}/gst-libav-${PV}" 17S = "${UNPACKDIR}/gst-libav-${PV}"
18 18
19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" 19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20 20
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.2.bb
index e0329cd004..b311286cc2 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.26.2.bb
@@ -12,7 +12,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad
12 " 12 "
13SRC_URI[sha256sum] = "cb116bfc3722c2de53838899006cafdb3c7c0bc69cd769b33c992a8421a9d844" 13SRC_URI[sha256sum] = "cb116bfc3722c2de53838899006cafdb3c7c0bc69cd769b33c992a8421a9d844"
14 14
15S = "${WORKDIR}/gst-plugins-bad-${PV}" 15S = "${UNPACKDIR}/gst-plugins-bad-${PV}"
16 16
17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" 17LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 18LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.2.bb
index dc70356940..c264a14ee6 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.26.2.bb
@@ -13,7 +13,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
13 " 13 "
14SRC_URI[sha256sum] = "f4b9fc0be852fe5f65401d18ae6218e4aea3ff7a3c9f8d265939b9c4704915f7" 14SRC_URI[sha256sum] = "f4b9fc0be852fe5f65401d18ae6218e4aea3ff7a3c9f8d265939b9c4704915f7"
15 15
16S = "${WORKDIR}/gst-plugins-base-${PV}" 16S = "${UNPACKDIR}/gst-plugins-base-${PV}"
17 17
18DEPENDS += "iso-codes util-linux zlib" 18DEPENDS += "iso-codes util-linux zlib"
19 19
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.2.bb
index 467ccd9893..7a81a29d95 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.26.2.bb
@@ -8,7 +8,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-go
8 8
9SRC_URI[sha256sum] = "d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339" 9SRC_URI[sha256sum] = "d864b9aec28c3a80895468c909dd303e5f22f92d6e2b1137f80e2a1454584339"
10 10
11S = "${WORKDIR}/gst-plugins-good-${PV}" 11S = "${UNPACKDIR}/gst-plugins-good-${PV}"
12 12
13LICENSE = "LGPL-2.1-or-later" 13LICENSE = "LGPL-2.1-or-later"
14LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 14LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.2.bb
index 106fea361c..fcd97e4245 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.26.2.bb
@@ -17,7 +17,7 @@ SRC_URI = " \
17 17
18SRC_URI[sha256sum] = "ec2d7556c6b8c2694f9b918ab9c4c6c998fb908c6b6a6ad57441702dad14ce73" 18SRC_URI[sha256sum] = "ec2d7556c6b8c2694f9b918ab9c4c6c998fb908c6b6a6ad57441702dad14ce73"
19 19
20S = "${WORKDIR}/gst-plugins-ugly-${PV}" 20S = "${UNPACKDIR}/gst-plugins-ugly-${PV}"
21 21
22DEPENDS += "gstreamer1.0-plugins-base" 22DEPENDS += "gstreamer1.0-plugins-base"
23 23
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.2.bb
index 50ff21c1ef..3c60e09d85 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.26.2.bb
@@ -15,7 +15,7 @@ RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
15 15
16PNREAL = "gst-python" 16PNREAL = "gst-python"
17 17
18S = "${WORKDIR}/${PNREAL}-${PV}" 18S = "${UNPACKDIR}/${PNREAL}-${PV}"
19 19
20EXTRA_OEMESON += "\ 20EXTRA_OEMESON += "\
21 -Dtests=disabled \ 21 -Dtests=disabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.2.bb
index 85b5615550..51085bb3fa 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.26.2.bb
@@ -12,7 +12,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.x
12 12
13SRC_URI[sha256sum] = "f942b2a499ed6d161222868db0e80de45297b4777ff189c6fb890bde698c2dc3" 13SRC_URI[sha256sum] = "f942b2a499ed6d161222868db0e80de45297b4777ff189c6fb890bde698c2dc3"
14 14
15S = "${WORKDIR}/${PNREAL}-${PV}" 15S = "${UNPACKDIR}/${PNREAL}-${PV}"
16 16
17inherit meson pkgconfig upstream-version-is-even gobject-introspection 17inherit meson pkgconfig upstream-version-is-even gobject-introspection
18 18
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.2.bb
index 7079641bc4..9b8aaf09df 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.26.2.bb
@@ -13,7 +13,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.x
13 13
14SRC_URI[sha256sum] = "0e24194236ed3b7f06f90e90efdf17f3f5ee39132e20081189a6c7690601051a" 14SRC_URI[sha256sum] = "0e24194236ed3b7f06f90e90efdf17f3f5ee39132e20081189a6c7690601051a"
15 15
16S = "${WORKDIR}/${REALPN}-${PV}" 16S = "${UNPACKDIR}/${REALPN}-${PV}"
17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" 17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
18 18
19inherit meson pkgconfig features_check upstream-version-is-even 19inherit meson pkgconfig features_check upstream-version-is-even
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.2.bb
index d288236abc..a921e39144 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.2.bb
@@ -13,7 +13,7 @@ inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection p
13LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" 14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
15 15
16S = "${WORKDIR}/gstreamer-${PV}" 16S = "${UNPACKDIR}/gstreamer-${PV}"
17 17
18SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ 18SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
19 file://run-ptest \ 19 file://run-ptest \
diff --git a/meta/recipes-multimedia/libpng/files/run-ptest b/meta/recipes-multimedia/libpng/files/run-ptest
new file mode 100644
index 0000000000..85051a59f5
--- /dev/null
+++ b/meta/recipes-multimedia/libpng/files/run-ptest
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3set -eux
4
5cd src
6
7make check-TESTS
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.48.bb b/meta/recipes-multimedia/libpng/libpng_1.6.48.bb
index 338891c683..e603df1edd 100644
--- a/meta/recipes-multimedia/libpng/libpng_1.6.48.bb
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.48.bb
@@ -10,7 +10,10 @@ DEPENDS = "zlib"
10 10
11LIBV = "16" 11LIBV = "16"
12 12
13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" 13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz \
14 file://run-ptest \
15"
16
14SRC_URI[sha256sum] = "46fd06ff37db1db64c0dc288d78a3f5efd23ad9ac41561193f983e20937ece03" 17SRC_URI[sha256sum] = "46fd06ff37db1db64c0dc288d78a3f5efd23ad9ac41561193f983e20937ece03"
15 18
16MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/" 19MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
@@ -19,7 +22,7 @@ UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
19 22
20BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" 23BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
21 24
22inherit autotools binconfig-disabled pkgconfig 25inherit autotools binconfig-disabled pkgconfig ptest
23 26
24# Work around missing symbols 27# Work around missing symbols
25ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" 28ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}"
@@ -30,4 +33,39 @@ PACKAGES =+ "${PN}-tools"
30 33
31FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" 34FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
32 35
36RDEPENDS:${PN}-ptest += "make bash gawk"
37
38do_install_ptest() {
39 # Install test scripts to ptest path
40 install -d ${D}${PTEST_PATH}/src/tests
41 install -m 755 ${S}/tests/* ${D}${PTEST_PATH}/src/tests
42 install -m 755 ${S}/test-driver ${D}${PTEST_PATH}
43 install -d ${D}${PTEST_PATH}/src/tests/scripts
44 install -m 755 ${S}/scripts/*.awk ${D}${PTEST_PATH}/src/tests/scripts
45 install -m 644 ${S}/scripts/pnglib* ${S}/scripts/*.c ${S}/scripts/*.def ${S}/scripts/macro.lst ${D}${PTEST_PATH}/src/tests/scripts
46 install -m 644 ${S}/scripts/pnglibconf.h.prebuilt ${D}${PTEST_PATH}/src/tests/scripts/pnglibconf.h
47 install -d ${D}${PTEST_PATH}/src/contrib/tools
48 install -m 755 ${S}/contrib/tools/*.sh ${D}${PTEST_PATH}/src/contrib/tools
49 install -m 644 ${S}/contrib/tools/*.c ${S}/contrib/tools/*.h ${D}${PTEST_PATH}/src/contrib/tools
50
51 # Install .libs directory binaries to ptest path
52 install -m 755 ${B}/.libs/pngtest ${B}/.libs/pngstest ${B}/.libs/pngimage ${B}/.libs/pngunknown ${B}/.libs/pngvalid ${D}${PTEST_PATH}/src
53
54 # Copy png files to ptest path
55 cd ${S} && find contrib -name '*.png' | cpio -pd ${D}${PTEST_PATH}/src
56
57 # Install Makefile and png files
58 install -m 644 ${S}/pngtest.png ${D}${PTEST_PATH}/src
59 install -m 644 ${S}/*.png ${S}/*.h ${S}/*.c ${S}/*.dfa ${B}/pnglibconf.out ${S}/Makefile.am ${S}/Makefile.in ${D}${PTEST_PATH}/src/tests
60
61 sed -e 's/^abs_srcdir = ..*/abs_srcdir = \.\./' \
62 -e 's/^top_srcdir = ..*/top_srcdir = \.\./' \
63 -e 's/^srcdir = ..*/srcdir = \./' \
64 -e 's/^Makefile: ..*/Makefile: /' \
65 -e 's/check-TESTS: $(check_PROGRAMS)/check-TESTS:/g' \
66 ${B}/Makefile > ${D}${PTEST_PATH}/src/Makefile
67
68 sed -e 's|#!/bin/awk|#!/usr/bin/awk|g' -i ${D}${PTEST_PATH}/src/tests/scripts/*.awk
69}
70
33BBCLASSEXTEND = "native nativesdk" 71BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
index 29d48fd333..819096878b 100644
--- a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
+++ b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb
@@ -16,7 +16,7 @@ CVE_PRODUCT = "libsamplerate"
16 16
17GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases" 17GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases"
18 18
19S = "${WORKDIR}/libsamplerate-${PV}" 19S = "${UNPACKDIR}/libsamplerate-${PV}"
20 20
21inherit autotools pkgconfig github-releases 21inherit autotools pkgconfig github-releases
22 22
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
index 63c1570621..0ec40dda7a 100644
--- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb
@@ -21,7 +21,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
21 21
22CVE_PRODUCT = "libsndfile" 22CVE_PRODUCT = "libsndfile"
23 23
24S = "${WORKDIR}/libsndfile-${PV}" 24S = "${UNPACKDIR}/libsndfile-${PV}"
25 25
26PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" 26PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
27PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" 27PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb b/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb
index 1a1b5fce06..04de8507fb 100644
--- a/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb
+++ b/meta/recipes-multimedia/libtheora/libtheora_1.2.0.bb
@@ -7,7 +7,6 @@ LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132" 7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
8DEPENDS = "libogg" 8DEPENDS = "libogg"
9 9
10
11SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.xz \ 10SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.xz \
12 file://0001-add-missing-files.patch" 11 file://0001-add-missing-files.patch"
13 12
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index fae88d24d1..3cc3392593 100644
--- a/meta/recipes-multimedia/x264/x264_git.bb
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -16,8 +16,6 @@ SRCREV = "31e19f92f00c7003fa115047ce50978bc98c3a0d"
16 16
17PV = "r3039+git" 17PV = "r3039+git"
18 18
19S = "${WORKDIR}/git"
20
21inherit lib_package pkgconfig 19inherit lib_package pkgconfig
22 20
23X264_DISABLE_ASM = "" 21X264_DISABLE_ASM = ""
diff --git a/meta/recipes-rt/rt-tests/rt-tests.inc b/meta/recipes-rt/rt-tests/rt-tests.inc
index f28258ef58..a2e8558c4c 100644
--- a/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -4,4 +4,3 @@ PE = "1"
4 4
5SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main;protocol=https" 5SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main;protocol=https"
6 6
7S = "${WORKDIR}/git"
diff --git a/meta/recipes-sato/l3afpad/l3afpad_git.bb b/meta/recipes-sato/l3afpad/l3afpad_git.bb
index 3d8c427b69..7e20f9abed 100644
--- a/meta/recipes-sato/l3afpad/l3afpad_git.bb
+++ b/meta/recipes-sato/l3afpad/l3afpad_git.bb
@@ -19,8 +19,6 @@ PV = "0.8.18.1.11+git"
19SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https" 19SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https"
20SRCREV = "3cdccdc9505643e50f8208171d9eee5de11a42ff" 20SRCREV = "3cdccdc9505643e50f8208171d9eee5de11a42ff"
21 21
22S = "${WORKDIR}/git"
23
24inherit autotools pkgconfig features_check mime-xdg 22inherit autotools pkgconfig features_check mime-xdg
25 23
26ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 24ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
index caa34966cc..6286a15798 100644
--- a/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
+++ b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
@@ -15,8 +15,6 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https \
15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
16PV = "0.2+git" 16PV = "0.2+git"
17 17
18S = "${WORKDIR}/git"
19
20inherit autotools pkgconfig features_check 18inherit autotools pkgconfig features_check
21 19
22# The settings-daemon requires x11 in DISTRO_FEATURES 20# The settings-daemon requires x11 in DISTRO_FEATURES
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 ab178f97e6..85e5300520 100644
--- a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb
+++ b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.3.bb
@@ -18,8 +18,6 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}-2;branch=master;protocol=https \
18 18
19EXTRA_OECONF = "--enable-startup-notification --with-dbus" 19EXTRA_OECONF = "--enable-startup-notification --with-dbus"
20 20
21S = "${WORKDIR}/git"
22
23inherit autotools pkgconfig features_check 21inherit autotools pkgconfig features_check
24 22
25# The startup-notification requires x11 in DISTRO_FEATURES 23# The startup-notification requires x11 in DISTRO_FEATURES
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 a1f7862efa..5fc6c67bfc 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
@@ -17,8 +17,6 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1;protoc
17 file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \ 17 file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \
18 file://80matchboxkeyboard.sh" 18 file://80matchboxkeyboard.sh"
19 19
20S = "${WORKDIR}/git"
21
22inherit autotools pkgconfig gettext gtk-immodules-cache features_check 20inherit autotools pkgconfig gettext gtk-immodules-cache features_check
23 21
24# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES 22# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
@@ -44,7 +42,6 @@ FILES:${PN}-im = "${libdir}/gtk-2.0/*/immodules/*.so \
44 42
45FILES:${PN}-applet = "${libdir}/matchbox-panel/*.so" 43FILES:${PN}-applet = "${libdir}/matchbox-panel/*.so"
46 44
47
48do_install:append () { 45do_install:append () {
49 install -d ${D}/${sysconfdir}/X11/Xsession.d/ 46 install -d ${D}/${sysconfdir}/X11/Xsession.d/
50 install -m 755 ${UNPACKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/ 47 install -m 755 ${UNPACKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
diff --git a/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb
index 83425f60fe..a126571ade 100644
--- a/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb
+++ b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb
@@ -28,8 +28,6 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};protocol=https;branch=master \
28EXTRA_OECONF = "--enable-startup-notification --enable-dbus" 28EXTRA_OECONF = "--enable-startup-notification --enable-dbus"
29EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}" 29EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}"
30 30
31S = "${WORKDIR}/git"
32
33FILES:${PN} += "${libdir}/matchbox-panel/*.so \ 31FILES:${PN} += "${libdir}/matchbox-panel/*.so \
34 ${datadir}/matchbox-panel/brightness/*.png \ 32 ${datadir}/matchbox-panel/brightness/*.png \
35 ${datadir}/matchbox-panel/startup/*.png \ 33 ${datadir}/matchbox-panel/startup/*.png \
diff --git a/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
index bb7ddbc7f4..75065163ba 100644
--- a/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
+++ b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -20,8 +20,7 @@ REQUIRED_DISTRO_FEATURES = "x11"
20SRC_URI = "file://session \ 20SRC_URI = "file://session \
21 file://index.theme" 21 file://index.theme"
22 22
23S = "${WORKDIR}/sources" 23S = "${UNPACKDIR}"
24UNPACKDIR = "${S}"
25 24
26FILES:${PN} += "${datadir}/themes/Sato/index.theme" 25FILES:${PN} += "${datadir}/themes/Sato/index.theme"
27 26
diff --git a/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
index c9b01b3cfd..ce1f425b77 100644
--- a/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
+++ b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
@@ -14,8 +14,6 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
14UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 14UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
15PV = "0.2+git" 15PV = "0.2+git"
16 16
17S = "${WORKDIR}/git"
18
19inherit autotools pkgconfig features_check update-alternatives 17inherit autotools pkgconfig features_check update-alternatives
20 18
21ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 19ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
index c60a11c3c0..ece4f25eca 100644
--- a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
@@ -5,4 +5,3 @@ SRCREV = "df085ba9cdaeaf2956890b0e29d7ea1779bf6c78"
5SRC_URI = "git://git.yoctoproject.org/matchbox-sato;branch=master;protocol=https" 5SRC_URI = "git://git.yoctoproject.org/matchbox-sato;branch=master;protocol=https"
6UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 6UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
7 7
8S = "${WORKDIR}/git"
diff --git a/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb
index 20368703c4..65748ee771 100644
--- a/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb
+++ b/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
5 5
6SRC_URI = "file://50-sato.conf" 6SRC_URI = "file://50-sato.conf"
7 7
8S = "${WORKDIR}/sources" 8S = "${UNPACKDIR}"
9UNPACKDIR = "${S}"
10 9
11inherit allarch 10inherit allarch
12 11
diff --git a/meta/recipes-sato/puzzles/puzzles_git.bb b/meta/recipes-sato/puzzles/puzzles_git.bb
index 23eb20d350..253bc53e77 100644
--- a/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -14,8 +14,6 @@ SRCREV = "7fa03051562ee81e2a5371f8b3a6d0bb6e646aa0"
14PE = "2" 14PE = "2"
15PV = "0.0+git" 15PV = "0.0+git"
16 16
17S = "${WORKDIR}/git"
18
19inherit cmake features_check pkgconfig 17inherit cmake features_check pkgconfig
20 18
21DEPENDS += "gtk+3" 19DEPENDS += "gtk+3"
diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
index 1ebbf010f3..83de53c26e 100644
--- a/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
+++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
@@ -12,8 +12,6 @@ SRC_URI = "git://git.yoctoproject.org/sato-icon-theme.git;protocol=https;branch=
12SRCREV = "d23f04ecb0328f655bf195df8eb04c1b734d53a9" 12SRCREV = "d23f04ecb0328f655bf195df8eb04c1b734d53a9"
13UPSTREAM_CHECK_COMMITS = "1" 13UPSTREAM_CHECK_COMMITS = "1"
14 14
15S = "${WORKDIR}/git"
16
17inherit autotools pkgconfig allarch gtk-icon-cache perlnative 15inherit autotools pkgconfig allarch gtk-icon-cache perlnative
18 16
19# The configure script uses pkg-config to find native binaries to execute, so 17# The configure script uses pkg-config to find native binaries to execute, so
diff --git a/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
index de4ab82484..a2af4faed3 100644
--- a/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
+++ b/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -14,8 +14,6 @@ SRCREV = "9250fa5a012d84ff45984e8c4345ee7635227756"
14SRC_URI = "git://git.yoctoproject.org/screenshot;branch=master;protocol=https" 14SRC_URI = "git://git.yoctoproject.org/screenshot;branch=master;protocol=https"
15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 15UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
16 16
17S = "${WORKDIR}/git"
18
19inherit autotools pkgconfig features_check 17inherit autotools pkgconfig features_check
20 18
21FILES:${PN} += "${libdir}/matchbox-panel/*.so" 19FILES:${PN} += "${libdir}/matchbox-panel/*.so"
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 aee89b2f57..3869ab4a02 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
@@ -15,8 +15,6 @@ SRC_URI = "git://git.yoctoproject.org/xsettings-daemon;branch=master;protocol=ht
15 " 15 "
16UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" 16UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
17 17
18S = "${WORKDIR}/git"
19
20inherit autotools pkgconfig gconf features_check 18inherit autotools pkgconfig gconf features_check
21 19
22FILES:${PN} = "${bindir}/* ${sysconfdir}" 20FILES:${PN} = "${bindir}/* ${sysconfdir}"
diff --git a/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb b/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
index 8c6c0edf10..b931495825 100644
--- a/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
+++ b/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
@@ -4,9 +4,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
4 4
5SRC_URI = "file://shutdown.desktop" 5SRC_URI = "file://shutdown.desktop"
6 6
7 7S = "${UNPACKDIR}"
8S = "${WORKDIR}/sources"
9UNPACKDIR = "${S}"
10 8
11do_install() { 9do_install() {
12 install -d ${D}${datadir}/applications 10 install -d ${D}${datadir}/applications
diff --git a/meta/recipes-support/appstream/appstream_1.0.5.bb b/meta/recipes-support/appstream/appstream_1.0.5.bb
index 3e4f8708d8..bb293f76e2 100644
--- a/meta/recipes-support/appstream/appstream_1.0.5.bb
+++ b/meta/recipes-support/appstream/appstream_1.0.5.bb
@@ -32,7 +32,7 @@ SRC_URI = " \
32" 32"
33SRC_URI[sha256sum] = "ce0ed29e89abd5f0cf790ea87d792f1967c3413060beb30e63a979578d975121" 33SRC_URI[sha256sum] = "ce0ed29e89abd5f0cf790ea87d792f1967c3413060beb30e63a979578d975121"
34 34
35S = "${WORKDIR}/AppStream-${PV}" 35S = "${UNPACKDIR}/AppStream-${PV}"
36 36
37PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 37PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
38 38
diff --git a/meta/recipes-support/apr/apr-util_1.6.3.bb b/meta/recipes-support/apr/apr-util_1.6.3.bb
index 291e98e24d..b5e3d2fc8a 100644
--- a/meta/recipes-support/apr/apr-util_1.6.3.bb
+++ b/meta/recipes-support/apr/apr-util_1.6.3.bb
@@ -23,7 +23,6 @@ EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
23 --without-sqlite2 \ 23 --without-sqlite2 \
24 --with-expat=${STAGING_DIR_HOST}${prefix}" 24 --with-expat=${STAGING_DIR_HOST}${prefix}"
25 25
26
27inherit autotools lib_package binconfig multilib_script 26inherit autotools lib_package binconfig multilib_script
28 27
29MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config" 28MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config"
diff --git a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
index 00b6036502..74f53de6d7 100644
--- a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
+++ b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
@@ -12,7 +12,6 @@ SRC_URI = "git://github.com/ericonr/argp-standalone;branch=master;protocol=https
12 file://out_of_tree_build.patch \ 12 file://out_of_tree_build.patch \
13 " 13 "
14SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5" 14SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5"
15S = "${WORKDIR}/git"
16 15
17inherit autotools 16inherit autotools
18 17
diff --git a/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb
index 28750786af..d82ce5ded4 100644
--- a/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb
+++ b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
11 11
12SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https" 12SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https"
13SRCREV = "618a7316102f6f81faa60537503012a419eafa06" 13SRCREV = "618a7316102f6f81faa60537503012a419eafa06"
14S = "${WORKDIR}/git"
15 14
16# TODO: remove when we upgrade to a release past 3.9.0 15# TODO: remove when we upgrade to a release past 3.9.0
17PV .= "+git" 16PV .= "+git"
diff --git a/meta/recipes-support/boost/boost-1.88.0.inc b/meta/recipes-support/boost/boost-1.88.0.inc
index 917f1a9600..96bd986f6a 100644
--- a/meta/recipes-support/boost/boost-1.88.0.inc
+++ b/meta/recipes-support/boost/boost-1.88.0.inc
@@ -17,4 +17,4 @@ SRC_URI[sha256sum] = "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5
17UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" 17UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
18UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/" 18UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
19 19
20S = "${WORKDIR}/${BOOST_P}" 20S = "${UNPACKDIR}/${BOOST_P}"
diff --git a/meta/recipes-support/boost/boost-build-native_1.87.0.bb b/meta/recipes-support/boost/boost-build-native_1.87.0.bb
index 764f410780..5b914b6f88 100644
--- a/meta/recipes-support/boost/boost-build-native_1.87.0.bb
+++ b/meta/recipes-support/boost/boost-build-native_1.87.0.bb
@@ -14,8 +14,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))"
14 14
15inherit native 15inherit native
16 16
17S = "${WORKDIR}/git"
18
19do_compile() { 17do_compile() {
20 ./bootstrap.sh 18 ./bootstrap.sh
21} 19}
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb
index 01f594095e..a11433c9da 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb
+++ b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb
@@ -20,7 +20,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/c/ca-certificates/${BPN}_${PV}.tar.xz \
20 file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \ 20 file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \
21 file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \ 21 file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \
22 " 22 "
23S = "${WORKDIR}/ca-certificates" 23S = "${UNPACKDIR}/ca-certificates"
24inherit allarch 24inherit allarch
25 25
26EXTRA_OEMAKE = "\ 26EXTRA_OEMAKE = "\
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index fc1b985631..acef3483bb 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -22,7 +22,7 @@ SRC_URI = "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${PV}.
22 22
23SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c" 23SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c"
24 24
25S = "${WORKDIR}/ConsoleKit-${PV}" 25S = "${UNPACKDIR}/ConsoleKit-${PV}"
26 26
27PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}" 27PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}"
28 28
diff --git a/meta/recipes-support/debianutils/debianutils_5.23.1.bb b/meta/recipes-support/debianutils/debianutils_5.23.1.bb
index 85955883a4..96ea9063bf 100644
--- a/meta/recipes-support/debianutils/debianutils_5.23.1.bb
+++ b/meta/recipes-support/debianutils/debianutils_5.23.1.bb
@@ -15,14 +15,11 @@ SRCREV = "ab0eaf33b783ba578773af2557753d2b973ba5bb"
15 15
16inherit autotools update-alternatives 16inherit autotools update-alternatives
17 17
18S = "${WORKDIR}/git"
19
20# Disable po4a (translated manpages) sub-directory, as that requires po4a to build 18# Disable po4a (translated manpages) sub-directory, as that requires po4a to build
21do_configure:prepend() { 19do_configure:prepend() {
22 sed -i -e 's:po4a::g' ${S}/Makefile.am 20 sed -i -e 's:po4a::g' ${S}/Makefile.am
23} 21}
24 22
25
26do_install:append() { 23do_install:append() {
27 if [ "${base_bindir}" != "${bindir}" ]; then 24 if [ "${base_bindir}" != "${bindir}" ]; then
28 # Debian places some utils into ${base_bindir} as does busybox 25 # Debian places some utils into ${base_bindir} as does busybox
diff --git a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
index 06338dd62f..c3803f457b 100644
--- a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
+++ b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
@@ -13,7 +13,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "dos2unix-(?P<pver>(\d+(\.\d+)+))"
13 13
14SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993" 14SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993"
15 15
16S = "${WORKDIR}/git/dos2unix" 16S = "${UNPACKDIR}/${BP}/dos2unix"
17 17
18inherit gettext perlnative 18inherit gettext perlnative
19 19
diff --git a/meta/recipes-support/enchant/enchant2_2.8.6.bb b/meta/recipes-support/enchant/enchant2_2.8.6.bb
index 66de313d9d..2696fc0f81 100644
--- a/meta/recipes-support/enchant/enchant2_2.8.6.bb
+++ b/meta/recipes-support/enchant/enchant2_2.8.6.bb
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "c4cd0889d8aff8248fc3913de5a83907013962f0e1895030a3836468cd
16 16
17GITHUB_BASE_URI = "https://github.com/rrthomas/enchant/releases" 17GITHUB_BASE_URI = "https://github.com/rrthomas/enchant/releases"
18 18
19S = "${WORKDIR}/enchant-${PV}" 19S = "${UNPACKDIR}/enchant-${PV}"
20 20
21PACKAGECONFIG ??= "aspell" 21PACKAGECONFIG ??= "aspell"
22PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" 22PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell"
diff --git a/meta/recipes-support/gdbm/gdbm_1.24.bb b/meta/recipes-support/gdbm/gdbm_1.24.bb
index 8e3cec4295..f400462a7a 100644
--- a/meta/recipes-support/gdbm/gdbm_1.24.bb
+++ b/meta/recipes-support/gdbm/gdbm_1.24.bb
@@ -7,7 +7,6 @@ SECTION = "libs"
7LICENSE = "GPL-3.0-only" 7LICENSE = "GPL-3.0-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24" 8LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
9 9
10
11SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \ 10SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
12 file://run-ptest \ 11 file://run-ptest \
13 file://ptest.patch \ 12 file://ptest.patch \
diff --git a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
index 1173dd4af3..4fcad4814b 100644
--- a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
+++ b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
@@ -16,8 +16,6 @@ SRCREV = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7"
16 16
17DEPENDS = "glib-2.0" 17DEPENDS = "glib-2.0"
18 18
19S = "${WORKDIR}/git"
20
21inherit autotools pkgconfig 19inherit autotools pkgconfig
22 20
23PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 21PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
diff --git a/meta/recipes-support/hwdata/hwdata_0.396.bb b/meta/recipes-support/hwdata/hwdata_0.396.bb
index 291a4ef85d..bf6dd9889e 100644
--- a/meta/recipes-support/hwdata/hwdata_0.396.bb
+++ b/meta/recipes-support/hwdata/hwdata_0.396.bb
@@ -10,8 +10,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
10SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https;tag=v${PV}" 10SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https;tag=v${PV}"
11SRCREV = "736513dfc1d44c5fb48bead62af7e91c4e1d1dd2" 11SRCREV = "736513dfc1d44c5fb48bead62af7e91c4e1d1dd2"
12 12
13S = "${WORKDIR}/git"
14
15inherit allarch 13inherit allarch
16 14
17do_configure() { 15do_configure() {
diff --git a/meta/recipes-support/icu/icu_77-1.bb b/meta/recipes-support/icu/icu_77-1.bb
index 90af2cdc27..e655b18ad2 100644
--- a/meta/recipes-support/icu/icu_77-1.bb
+++ b/meta/recipes-support/icu/icu_77-1.bb
@@ -10,7 +10,7 @@ DEPENDS = "icu-native autoconf-archive-native"
10 10
11CVE_PRODUCT = "international_components_for_unicode" 11CVE_PRODUCT = "international_components_for_unicode"
12 12
13S = "${WORKDIR}/icu/source" 13S = "${UNPACKDIR}/icu/source"
14STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" 14STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
15 15
16ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}" 16ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}"
diff --git a/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb
index c737cfd59f..1ee9f5a8f5 100644
--- a/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb
+++ b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb
@@ -15,8 +15,6 @@ SRCREV = "5be4d112d420706eacd913a3ebd85549fe9eeae4"
15# are inhibited by allarch 15# are inhibited by allarch
16DEPENDS = "gettext-native" 16DEPENDS = "gettext-native"
17 17
18S = "${WORKDIR}/git"
19
20inherit allarch autotools 18inherit allarch autotools
21 19
22FILES:${PN} += "${datadir}/xml/" 20FILES:${PN} += "${datadir}/xml/"
diff --git a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
index 569da16510..00994dfae0 100644
--- a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
+++ b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
@@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2
15 15
16CVE_PRODUCT = "libatomic_ops" 16CVE_PRODUCT = "libatomic_ops"
17 17
18S = "${WORKDIR}/libatomic_ops-${PV}" 18S = "${UNPACKDIR}/libatomic_ops-${PV}"
19 19
20ALLOW_EMPTY:${PN} = "1" 20ALLOW_EMPTY:${PN} = "1"
21 21
diff --git a/meta/recipes-support/libcap-ng/libcap-ng.inc b/meta/recipes-support/libcap-ng/libcap-ng.inc
index 4c8ffd41c2..ed8712bf2b 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -11,7 +11,6 @@ SRC_URI = "git://github.com/stevegrubb/libcap-ng.git;protocol=https;branch=maste
11 file://0001-Fix-python-path-when-invoking-py-compile-54.patch \ 11 file://0001-Fix-python-path-when-invoking-py-compile-54.patch \
12 " 12 "
13SRCREV = "f5d39702622208b3ada064d7b2eaeaf1454c9bd3" 13SRCREV = "f5d39702622208b3ada064d7b2eaeaf1454c9bd3"
14S = "${WORKDIR}/git"
15 14
16inherit lib_package autotools 15inherit lib_package autotools
17 16
diff --git a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch b/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch
deleted file mode 100644
index 3c7572700d..0000000000
--- a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Do not echo compiler info in a comment line to check_stdint.h which causes
2multilib install file conflict.
3
4Upstream-Status: Pending
5
6Signed-off-by: Kai Kang <kai.kang@windriver.com>
7
8diff --git a/m4/ax_create_stdint_h.m4 b/m4/ax_create_stdint_h.m4
9index 33a21f8..eacc37a 100644
10--- a/m4/ax_create_stdint_h.m4
11+++ b/m4/ax_create_stdint_h.m4
12@@ -272,7 +272,6 @@ echo "#ifndef" $_ac_stdint_h >$ac_stdint
13 echo "#define" $_ac_stdint_h "1" >>$ac_stdint
14 echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
15 echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
16-echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
17 if test "_$ac_cv_header_stdint_t" != "_" ; then
18 echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
19 echo "#include <stdint.h>" >>$ac_stdint
diff --git a/meta/recipes-support/libcheck/libcheck/subunit.patch b/meta/recipes-support/libcheck/libcheck/subunit.patch
new file mode 100644
index 0000000000..29c4b15601
--- /dev/null
+++ b/meta/recipes-support/libcheck/libcheck/subunit.patch
@@ -0,0 +1,43 @@
1From a6cd376b9ebcb4afc9ab06bce23b9bd909811ece Mon Sep 17 00:00:00 2001
2From: Christopher Obbard <christopher.obbard@linaro.org>
3Date: Thu, 13 Jun 2024 09:49:53 +0100
4Subject: [PATCH] Allow disabling autodetection of subunit library
5
6It can be useful to avoid linking to subunit when we are building the check
7library for the host, e.g. in a buildroot recipe, where the built check is
8linked into other applications which are used on the host to build images.
9
10These applications are built with the host's cross-compiler and can use
11the host's pkgconfig to determine if libraries are available. When check
12is linked against other libraries, it can fail this check for subunit.
13
14Allow disabling the autodetection of subunit with a configure flag
15-DENABLE_SUBUNIT_EXT=OFF
16
17Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
18
19Upstream-Status: Submitted [https://github.com/libcheck/check/pull/353/]
20Signed-off-by: Ross Burton <ross.burton@arm.com>
21---
22 CMakeLists.txt | 8 +++++++-
23 1 file changed, 7 insertions(+), 1 deletion(-)
24
25diff --git a/CMakeLists.txt b/CMakeLists.txt
26index 2ee580bc..6b36015b 100644
27--- a/CMakeLists.txt
28+++ b/CMakeLists.txt
29@@ -393,7 +393,13 @@ if (HAVE_LIBRT)
30 ADD_DEFINITIONS(-DHAVE_LIBRT=1)
31 endif (HAVE_LIBRT)
32
33-check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
34+# Allow disabling subunit
35+IF(ENABLE_SUBUNIT_EXT)
36+ check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
37+ELSE(ENABLE_SUBUNIT_EXT)
38+ set(HAVE_SUBUNIT, false)
39+ENDIF(ENABLE_SUBUNIT_EXT)
40+
41 if (HAVE_SUBUNIT)
42 set(SUBUNIT "subunit")
43 set(ENABLE_SUBUNIT 1)
diff --git a/meta/recipes-support/libcheck/libcheck_0.15.2.bb b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
index 8455f2c748..33f8f54888 100644
--- a/meta/recipes-support/libcheck/libcheck_0.15.2.bb
+++ b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
@@ -12,17 +12,18 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
12 12
13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \ 13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \
14 file://automake-output.patch \ 14 file://automake-output.patch \
15 file://not-echo-compiler-info-to-check_stdint.h.patch" 15 file://subunit.patch"
16SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a" 16SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
17GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/" 17GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/"
18 18
19S = "${WORKDIR}/check-${PV}" 19S = "${UNPACKDIR}/check-${PV}"
20 20
21inherit cmake pkgconfig texinfo github-releases 21inherit cmake pkgconfig texinfo github-releases
22 22
23RREPLACES:${PN} = "check (<= 0.9.5)" 23RREPLACES:${PN} = "check (<= 0.9.5)"
24 24
25EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk" 25EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk"
26EXTRA_OECMAKE = "-DENABLE_SUBUNIT_EXT=OFF"
26 27
27do_install:append:class-native() { 28do_install:append:class-native() {
28 create_cmdline_shebang_wrapper ${D}${bindir}/checkmk 29 create_cmdline_shebang_wrapper ${D}${bindir}/checkmk
@@ -35,4 +36,3 @@ PACKAGES =+ "checkmk"
35FILES:checkmk = "${bindir}/checkmk" 36FILES:checkmk = "${bindir}/checkmk"
36 37
37RDEPENDS:checkmk = "gawk" 38RDEPENDS:checkmk = "gawk"
38
diff --git a/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb
index f5156cc9f7..812a30495e 100644
--- a/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb
+++ b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb
@@ -11,6 +11,4 @@ DEPENDS = "hwdata-native"
11SRC_URI = "git://gitlab.freedesktop.org/emersion/libdisplay-info.git;branch=main;protocol=https" 11SRC_URI = "git://gitlab.freedesktop.org/emersion/libdisplay-info.git;branch=main;protocol=https"
12SRCREV = "66b802d05b374cd8f388dc6ad1e7ae4f08cb3300" 12SRCREV = "66b802d05b374cd8f388dc6ad1e7ae4f08cb3300"
13 13
14S = "${WORKDIR}/git"
15
16inherit meson pkgconfig lib_package 14inherit meson pkgconfig lib_package
diff --git a/meta/recipes-support/libevent/libevent_2.1.12.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb
index 25388fb4d7..2fadf10943 100644
--- a/meta/recipes-support/libevent/libevent_2.1.12.bb
+++ b/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -23,7 +23,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/release-${PV}-stable/${BP}-stable.tar.gz
23SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" 23SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
24UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable" 24UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable"
25 25
26S = "${WORKDIR}/${BPN}-${PV}-stable" 26S = "${UNPACKDIR}/${BPN}-${PV}-stable"
27 27
28PACKAGECONFIG ??= "" 28PACKAGECONFIG ??= ""
29PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" 29PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
diff --git a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
index b7a9b25f86..5bf2f0f502 100644
--- a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
+++ b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
@@ -14,7 +14,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/libfm-${PV}.tar.xz \
14 14
15SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" 15SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5"
16 16
17S = "${WORKDIR}/libfm-${PV}" 17S = "${UNPACKDIR}/libfm-${PV}"
18 18
19EXTRA_OECONF = "--with-extra-only --with-gtk=no" 19EXTRA_OECONF = "--with-extra-only --with-gtk=no"
20 20
diff --git a/meta/recipes-support/libfm/libfm_1.3.2.bb b/meta/recipes-support/libfm/libfm_1.3.2.bb
index e3cf751716..ab29ce4b40 100644
--- a/meta/recipes-support/libfm/libfm_1.3.2.bb
+++ b/meta/recipes-support/libfm/libfm_1.3.2.bb
@@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b \
9 file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \ 9 file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \
10 file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd" 10 file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd"
11 11
12
13SECTION = "x11/libs" 12SECTION = "x11/libs"
14DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra" 13DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra"
15 14
diff --git a/meta/recipes-support/libgit2/libgit2_1.9.0.bb b/meta/recipes-support/libgit2/libgit2_1.9.0.bb
index 47a63ca286..66ec62f17a 100644
--- a/meta/recipes-support/libgit2/libgit2_1.9.0.bb
+++ b/meta/recipes-support/libgit2/libgit2_1.9.0.bb
@@ -10,8 +10,6 @@ SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main;protocol=https \
10 " 10 "
11SRCREV = "338e6fb681369ff0537719095e22ce9dc602dbf0" 11SRCREV = "338e6fb681369ff0537719095e22ce9dc602dbf0"
12 12
13S = "${WORKDIR}/git"
14
15inherit cmake 13inherit cmake
16 14
17EXTRA_OECMAKE = "\ 15EXTRA_OECMAKE = "\
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb
index 96dac49aae..842f54b0ff 100644
--- a/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb
+++ b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb
@@ -10,7 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
10 file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \ 10 file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \
11 " 11 "
12 12
13
14SECTION = "libs" 13SECTION = "libs"
15 14
16UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 15UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
diff --git a/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb
index e2df844202..7890dfa5c7 100644
--- a/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb
+++ b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e01027c4ad1fe5a4768f8488c945d491 \
11 " 11 "
12SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https;tag=v${PV}" 12SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https;tag=v${PV}"
13SRCREV = "c90ff465dcdb6a6949542c72a26a8ab496daa8cb" 13SRCREV = "c90ff465dcdb6a6949542c72a26a8ab496daa8cb"
14S = "${WORKDIR}/git"
15 14
16do_configure[noexec] = "1" 15do_configure[noexec] = "1"
17 16
diff --git a/meta/recipes-support/libmpc/libmpc_1.3.1.bb b/meta/recipes-support/libmpc/libmpc_1.3.1.bb
index ed57396c0a..b3853fc964 100644
--- a/meta/recipes-support/libmpc/libmpc_1.3.1.bb
+++ b/meta/recipes-support/libmpc/libmpc_1.3.1.bb
@@ -7,6 +7,6 @@ SRC_URI = "${GNU_MIRROR}/mpc/mpc-${PV}.tar.gz"
7 7
8SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8" 8SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8"
9 9
10S = "${WORKDIR}/mpc-${PV}" 10S = "${UNPACKDIR}/mpc-${PV}"
11BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
12 12
diff --git a/meta/recipes-support/libpcre/libpcre2_10.45.bb b/meta/recipes-support/libpcre/libpcre2_10.45.bb
index e82de0fa5b..4fbb8921c5 100644
--- a/meta/recipes-support/libpcre/libpcre2_10.45.bb
+++ b/meta/recipes-support/libpcre/libpcre2_10.45.bb
@@ -19,7 +19,7 @@ SRC_URI[sha256sum] = "21547f3516120c75597e5b30a992e27a592a31950b5140e7b8bfde3f19
19 19
20CVE_PRODUCT = "pcre2" 20CVE_PRODUCT = "pcre2"
21 21
22S = "${WORKDIR}/pcre2-${PV}" 22S = "${UNPACKDIR}/pcre2-${PV}"
23 23
24PROVIDES += "pcre2" 24PROVIDES += "pcre2"
25DEPENDS += "bzip2 zlib" 25DEPENDS += "bzip2 zlib"
diff --git a/meta/recipes-support/libpcre/libpcre_8.45.bb b/meta/recipes-support/libpcre/libpcre_8.45.bb
index 933bb00de6..67327065e4 100644
--- a/meta/recipes-support/libpcre/libpcre_8.45.bb
+++ b/meta/recipes-support/libpcre/libpcre_8.45.bb
@@ -17,7 +17,7 @@ SRC_URI[sha256sum] = "4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e321
17 17
18CVE_PRODUCT = "pcre" 18CVE_PRODUCT = "pcre"
19 19
20S = "${WORKDIR}/pcre-${PV}" 20S = "${UNPACKDIR}/pcre-${PV}"
21 21
22PROVIDES += "pcre" 22PROVIDES += "pcre"
23DEPENDS += "bzip2 zlib" 23DEPENDS += "bzip2 zlib"
diff --git a/meta/recipes-support/libproxy/libproxy_0.5.9.bb b/meta/recipes-support/libproxy/libproxy_0.5.9.bb
index e6192a6960..ed8a4df2a8 100644
--- a/meta/recipes-support/libproxy/libproxy_0.5.9.bb
+++ b/meta/recipes-support/libproxy/libproxy_0.5.9.bb
@@ -15,7 +15,6 @@ DEPENDS = "glib-2.0"
15 15
16SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main" 16SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main"
17SRCREV = "77e2a2b88a319974cf099c8eaaaa03030bc4c0d4" 17SRCREV = "77e2a2b88a319974cf099c8eaaaa03030bc4c0d4"
18S = "${WORKDIR}/git"
19 18
20inherit meson pkgconfig gobject-introspection vala gi-docgen 19inherit meson pkgconfig gobject-introspection vala gi-docgen
21GIDOCGEN_MESON_OPTION = 'docs' 20GIDOCGEN_MESON_OPTION = 'docs'
diff --git a/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb
index 949799fc82..97988afa27 100644
--- a/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb
+++ b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.6;protocol=h
13 file://run-ptest \ 13 file://run-ptest \
14 " 14 "
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools-brokensep pkgconfig ptest features_check 16inherit autotools-brokensep pkgconfig ptest features_check
19 17
20inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} 18inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
diff --git a/meta/recipes-support/libsoup/libsoup_3.6.5.bb b/meta/recipes-support/libsoup/libsoup_3.6.5.bb
index fbe9a79b0f..29e45dfb97 100644
--- a/meta/recipes-support/libsoup/libsoup_3.6.5.bb
+++ b/meta/recipes-support/libsoup/libsoup_3.6.5.bb
@@ -17,7 +17,7 @@ SRC_URI[sha256sum] = "6891765aac3e949017945c3eaebd8cc8216df772456dc9f460976fbdb7
17PROVIDES = "libsoup-3.0" 17PROVIDES = "libsoup-3.0"
18CVE_PRODUCT = "libsoup" 18CVE_PRODUCT = "libsoup"
19 19
20S = "${WORKDIR}/libsoup-${PV}" 20S = "${UNPACKDIR}/libsoup-${PV}"
21 21
22inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala 22inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala
23 23
diff --git a/meta/recipes-support/liburcu/liburcu_0.15.3.bb b/meta/recipes-support/liburcu/liburcu_0.15.3.bb
index fb4e457719..fdbd79e016 100644
--- a/meta/recipes-support/liburcu/liburcu_0.15.3.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.15.3.bb
@@ -11,12 +11,11 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c2a92498b6e88e276f986877995425b8 \
11 file://include/urcu/uatomic/x86.h;beginline=1;endline=6;md5=358d69272ba7b5f85e29e342430d440c \ 11 file://include/urcu/uatomic/x86.h;beginline=1;endline=6;md5=358d69272ba7b5f85e29e342430d440c \
12 " 12 "
13 13
14
15SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" 14SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
16 15
17SRC_URI[sha256sum] = "26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d" 16SRC_URI[sha256sum] = "26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d"
18 17
19S = "${WORKDIR}/userspace-rcu-${PV}" 18S = "${UNPACKDIR}/userspace-rcu-${PV}"
20inherit autotools multilib_header 19inherit autotools multilib_header
21 20
22CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT" 21CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
diff --git a/meta/recipes-support/libusb/libusb1_1.0.29.bb b/meta/recipes-support/libusb/libusb1_1.0.29.bb
index bae5e2c09f..2f43ee68b7 100644
--- a/meta/recipes-support/libusb/libusb1_1.0.29.bb
+++ b/meta/recipes-support/libusb/libusb1_1.0.29.bb
@@ -21,7 +21,7 @@ UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
21 21
22SRC_URI[sha256sum] = "5977fc950f8d1395ccea9bd48c06b3f808fd3c2c961b44b0c2e6e29fc3a70a85" 22SRC_URI[sha256sum] = "5977fc950f8d1395ccea9bd48c06b3f808fd3c2c961b44b0c2e6e29fc3a70a85"
23 23
24S = "${WORKDIR}/libusb-${PV}" 24S = "${UNPACKDIR}/libusb-${PV}"
25 25
26inherit autotools pkgconfig ptest github-releases 26inherit autotools pkgconfig ptest github-releases
27 27
diff --git a/meta/recipes-support/libxslt/libxslt_1.1.43.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb
index d251fa8122..c0699cbce8 100644
--- a/meta/recipes-support/libxslt/libxslt_1.1.43.bb
+++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb
@@ -21,7 +21,7 @@ UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
21 21
22CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled." 22CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled."
23 23
24S = "${WORKDIR}/libxslt-${PV}" 24S = "${UNPACKDIR}/libxslt-${PV}"
25 25
26BINCONFIG = "${bindir}/xslt-config" 26BINCONFIG = "${bindir}/xslt-config"
27 27
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.5.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
index b1f516f7fe..9b77e7cfc8 100644
--- a/meta/recipes-support/libyaml/libyaml_0.2.5.bb
+++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d"
10SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz" 10SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz"
11SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" 11SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
12 12
13S = "${WORKDIR}/yaml-${PV}" 13S = "${UNPACKDIR}/yaml-${PV}"
14 14
15inherit autotools 15inherit autotools
16 16
diff --git a/meta/recipes-support/lz4/lz4_1.10.0.bb b/meta/recipes-support/lz4/lz4_1.10.0.bb
index f77a2e7bb9..9bd3cfc27b 100644
--- a/meta/recipes-support/lz4/lz4_1.10.0.bb
+++ b/meta/recipes-support/lz4/lz4_1.10.0.bb
@@ -17,8 +17,6 @@ SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \
17 file://run-ptest" 17 file://run-ptest"
18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" 18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
19 19
20S = "${WORKDIR}/git"
21
22inherit ptest 20inherit ptest
23 21
24CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version." 22CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version."
diff --git a/meta/recipes-support/lzo/lzo_2.10.bb b/meta/recipes-support/lzo/lzo_2.10.bb
index 2132f1c27f..dbe789b4e6 100644
--- a/meta/recipes-support/lzo/lzo_2.10.bb
+++ b/meta/recipes-support/lzo/lzo_2.10.bb
@@ -30,5 +30,4 @@ do_install_ptest() {
30 done 30 done
31} 31}
32 32
33
34BBCLASSEXTEND = "native nativesdk" 33BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/numactl/numactl_2.0.19.bb b/meta/recipes-support/numactl/numactl_2.0.19.bb
index 62f3020fef..5ac9380c6c 100644
--- a/meta/recipes-support/numactl/numactl_2.0.19.bb
+++ b/meta/recipes-support/numactl/numactl_2.0.19.bb
@@ -19,8 +19,6 @@ SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \
19 file://0001-define-run-test-target.patch \ 19 file://0001-define-run-test-target.patch \
20 " 20 "
21 21
22S = "${WORKDIR}/git"
23
24LDFLAGS:append:riscv64 = " -latomic" 22LDFLAGS:append:riscv64 = " -latomic"
25LDFLAGS:append:riscv32 = " -latomic" 23LDFLAGS:append:riscv32 = " -latomic"
26 24
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb
index 8c2f56be44..d60e4abdaf 100644
--- a/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb
+++ b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb
@@ -13,7 +13,6 @@ DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''
13SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \ 13SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \
14 " 14 "
15SRCREV = "0dd113361057e477f40ff4d8788f3e7e400af5f9" 15SRCREV = "0dd113361057e477f40ff4d8788f3e7e400af5f9"
16S = "${WORKDIR}/git"
17 16
18PACKAGECONFIG ??= "" 17PACKAGECONFIG ??= ""
19PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" 18PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native"
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb
index 9f6bb399b4..89f85e2455 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb
@@ -12,8 +12,6 @@ SRCREV = "c99e8c2737ff802f110612cc2d90c60233c33255"
12SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \ 12SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \
13" 13"
14 14
15S = "${WORKDIR}/git"
16
17FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data" 15FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data"
18 16
19EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" 17EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\"""
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.17.bb b/meta/recipes-support/rng-tools/rng-tools_6.17.bb
index fc141a984c..c979a91640 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.17.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.17.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
13 " 13 "
14SRCREV = "bd00c08b0c3c6a880b0988befe97fd35b315468c" 14SRCREV = "bd00c08b0c3c6a880b0988befe97fd35b315468c"
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools update-rc.d systemd pkgconfig 16inherit autotools update-rc.d systemd pkgconfig
19 17
20EXTRA_OECONF = "--without-rtlsdr" 18EXTRA_OECONF = "--without-rtlsdr"
diff --git a/meta/recipes-support/sass/libsass_3.6.6.bb b/meta/recipes-support/sass/libsass_3.6.6.bb
index 3878072cf1..de608f0a6b 100644
--- a/meta/recipes-support/sass/libsass_3.6.6.bb
+++ b/meta/recipes-support/sass/libsass_3.6.6.bb
@@ -10,6 +10,4 @@ SRC_URI = "git://github.com/sass/libsass.git;protocol=https;branch=master \
10 10
11SRCREV = "7037f03fabeb2b18b5efa84403f5a6d7a990f460" 11SRCREV = "7037f03fabeb2b18b5efa84403f5a6d7a990f460"
12 12
13S = "${WORKDIR}/git"
14
15BBCLASSEXTEND = "native" 13BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/sass/sassc_3.6.2.bb b/meta/recipes-support/sass/sassc_3.6.2.bb
index 4d4dbc03fe..1de02f44b6 100644
--- a/meta/recipes-support/sass/sassc_3.6.2.bb
+++ b/meta/recipes-support/sass/sassc_3.6.2.bb
@@ -11,7 +11,6 @@ SRC_URI = "git://github.com/sass/sassc.git;protocol=https;branch=master \
11 file://0001-Remove-sassc_version.h-from-source-directory.patch" 11 file://0001-Remove-sassc_version.h-from-source-directory.patch"
12 12
13SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0" 13SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0"
14S = "${WORKDIR}/git"
15 14
16CVE_STATUS[CVE-2022-43357] = "cpe-incorrect: this is CVE for libsass, not sassc wrapper" 15CVE_STATUS[CVE-2022-43357] = "cpe-incorrect: this is CVE for libsass, not sassc wrapper"
17 16
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
index b8a377e2b2..8790a9dc11 100644
--- a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
+++ b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;
13 file://0002-Handle-build-with-older-versions-of-GCC.patch" 13 file://0002-Handle-build-with-older-versions-of-GCC.patch"
14SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" 14SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada"
15 15
16S = "${WORKDIR}/git"
17
18inherit meson pkgconfig gettext python3native mime 16inherit meson pkgconfig gettext python3native mime
19 17
20EXTRA_OEMESON = "-Dupdate-mimedb=true" 18EXTRA_OEMESON = "-Dupdate-mimedb=true"
diff --git a/meta/recipes-support/sqlite/sqlite3.inc b/meta/recipes-support/sqlite/sqlite3.inc
index d093ec5859..28a33282ae 100644
--- a/meta/recipes-support/sqlite/sqlite3.inc
+++ b/meta/recipes-support/sqlite/sqlite3.inc
@@ -13,7 +13,7 @@ def sqlite_download_version(d):
13 13
14SQLITE_PV = "${@sqlite_download_version(d)}" 14SQLITE_PV = "${@sqlite_download_version(d)}"
15 15
16S = "${WORKDIR}/sqlite-autoconf-${SQLITE_PV}" 16S = "${UNPACKDIR}/sqlite-autoconf-${SQLITE_PV}"
17 17
18UPSTREAM_CHECK_URI = "http://www.sqlite.org/" 18UPSTREAM_CHECK_URI = "http://www.sqlite.org/"
19UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html" 19UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html"
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 80a429c6d3..04f506e7a3 100644
--- a/meta/recipes-support/user-creation/xuser-account_0.1.bb
+++ b/meta/recipes-support/user-creation/xuser-account_0.1.bb
@@ -6,8 +6,7 @@ SRC_URI = "file://system-xuser.conf"
6 6
7inherit allarch useradd 7inherit allarch useradd
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12do_configure() { 11do_configure() {
13 : 12 :
diff --git a/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb
index 21f1879c4f..344f270158 100644
--- a/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb
+++ b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb
@@ -9,8 +9,6 @@ SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master"
9 9
10SRCREV = "b26a5f718f4f370af1852a0d5c6ae8fa031ba7d0" 10SRCREV = "b26a5f718f4f370af1852a0d5c6ae8fa031ba7d0"
11 11
12S = "${WORKDIR}/git"
13
14inherit cmake 12inherit cmake
15 13
16FILES:${PN}-dev += "${datadir}/utf8cpp/cmake" 14FILES:${PN}-dev += "${datadir}/utf8cpp/cmake"
diff --git a/meta/recipes-support/vim/vim.inc b/meta/recipes-support/vim/vim.inc
index b39cfadaad..278a5baeb2 100644
--- a/meta/recipes-support/vim/vim.inc
+++ b/meta/recipes-support/vim/vim.inc
@@ -26,8 +26,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
26# Ignore that the upstream version .z in x.y.z is always newer 26# Ignore that the upstream version .z in x.y.z is always newer
27UPSTREAM_VERSION_UNKNOWN = "1" 27UPSTREAM_VERSION_UNKNOWN = "1"
28 28
29S = "${WORKDIR}/git"
30
31VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" 29VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
32 30
33inherit autotools-brokensep update-alternatives mime-xdg pkgconfig 31inherit autotools-brokensep update-alternatives mime-xdg pkgconfig
diff --git a/meta/recipes-support/xxhash/xxhash_0.8.3.bb b/meta/recipes-support/xxhash/xxhash_0.8.3.bb
index 227649854e..15436113b1 100644
--- a/meta/recipes-support/xxhash/xxhash_0.8.3.bb
+++ b/meta/recipes-support/xxhash/xxhash_0.8.3.bb
@@ -12,8 +12,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
12 12
13SRCREV = "e626a72bc2321cd320e953a0ccf1584cad60f363" 13SRCREV = "e626a72bc2321cd320e953a0ccf1584cad60f363"
14 14
15S = "${WORKDIR}/git"
16
17CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" 15CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}"
18 16
19do_compile () { 17do_compile () {
diff --git a/scripts/contrib/improve_kernel_cve_report.py b/scripts/contrib/improve_kernel_cve_report.py
new file mode 100755
index 0000000000..829cc4cd30
--- /dev/null
+++ b/scripts/contrib/improve_kernel_cve_report.py
@@ -0,0 +1,467 @@
1#! /usr/bin/env python3
2#
3# Copyright OpenEmbedded Contributors
4#
5# The script uses another source of CVE information from linux-vulns
6# to enrich the cve-summary from cve-check or vex.
7# It can also use the list of compiled files from the kernel spdx to ignore CVEs
8# that are not affected since the files are not compiled.
9#
10# It creates a new json file with updated CVE information
11#
12# Compiled files can be extracted adding the following in local.conf
13# SPDX_INCLUDE_COMPILED_SOURCES:pn-linux-yocto = "1"
14#
15# Tested with the following CVE sources:
16# - https://git.kernel.org/pub/scm/linux/security/vulns.git
17# - https://github.com/CVEProject/cvelistV5
18#
19# Example:
20# python3 ./openembedded-core/scripts/contrib/improve_kernel_cve_report.py --spdx tmp/deploy/spdx/3.0.1/qemux86_64/recipes/recipe-linux-yocto.spdx.json --kernel-version 6.12.27 --datadir ./vulns
21# python3 ./openembedded-core/scripts/contrib/improve_kernel_cve_report.py --spdx tmp/deploy/spdx/3.0.1/qemux86_64/recipes/recipe-linux-yocto.spdx.json --datadir ./vulns --old-cve-report build/tmp/log/cve/cve-summary.json
22#
23# SPDX-License-Identifier: GPLv2
24
25import argparse
26import json
27import sys
28import logging
29import glob
30import os
31import pathlib
32from packaging.version import Version
33
34def is_linux_cve(cve_info):
35 '''Return true is the CVE belongs to Linux'''
36 if not "affected" in cve_info["containers"]["cna"]:
37 return False
38 for affected in cve_info["containers"]["cna"]["affected"]:
39 if not "product" in affected:
40 return False
41 if affected["product"] == "Linux" and affected["vendor"] == "Linux":
42 return True
43 return False
44
45def get_kernel_cves(datadir, compiled_files, version):
46 """
47 Get CVEs for the kernel
48 """
49 cves = {}
50
51 check_config = len(compiled_files) > 0
52
53 base_version = Version(f"{version.major}.{version.minor}")
54
55 # Check all CVES from kernel vulns
56 pattern = os.path.join(datadir, '**', "CVE-*.json")
57 cve_files = glob.glob(pattern, recursive=True)
58 not_applicable_config = 0
59 fixed_as_later_backport = 0
60 vulnerable = 0
61 not_vulnerable = 0
62 for cve_file in sorted(cve_files):
63 cve_info = {}
64 with open(cve_file, "r", encoding='ISO-8859-1') as f:
65 cve_info = json.load(f)
66
67 if len(cve_info) == 0:
68 logging.error("Not valid data in %s. Aborting", cve_file)
69 break
70
71 if not is_linux_cve(cve_info):
72 continue
73 cve_id = os.path.basename(cve_file)[:-5]
74 description = cve_info["containers"]["cna"]["descriptions"][0]["value"]
75 if cve_file.find("rejected") >= 0:
76 logging.debug("%s is rejected by the CNA", cve_id)
77 cves[cve_id] = {
78 "id": cve_id,
79 "status": "Ignored",
80 "detail": "rejected",
81 "summary": description,
82 "description": f"Rejected by CNA"
83 }
84 continue
85 if any(elem in cve_file for elem in ["review", "reverved", "testing"]):
86 continue
87
88 is_vulnerable, first_affected, last_affected, better_match_first, better_match_last, affected_versions = get_cpe_applicability(cve_info, version)
89
90 logging.debug("%s: %s (%s - %s) (%s - %s)", cve_id, is_vulnerable, better_match_first, better_match_last, first_affected, last_affected)
91
92 if is_vulnerable is None:
93 logging.warning("%s doesn't have good metadata", cve_id)
94 if is_vulnerable:
95 is_affected = True
96 affected_files = []
97 if check_config:
98 is_affected, affected_files = check_kernel_compiled_files(compiled_files, cve_info)
99
100 if not is_affected and len(affected_files) > 0:
101 logging.debug(
102 "%s - not applicable configuration since affected files not compiled: %s",
103 cve_id, affected_files)
104 cves[cve_id] = {
105 "id": cve_id,
106 "status": "Ignored",
107 "detail": "not-applicable-config",
108 "summary": description,
109 "description": f"Source code not compiled by config. {affected_files}"
110 }
111 not_applicable_config +=1
112 # Check if we have backport
113 else:
114 if not better_match_last:
115 fixed_in = last_affected
116 else:
117 fixed_in = better_match_last
118 logging.debug("%s needs backporting (fixed from %s)", cve_id, fixed_in)
119 cves[cve_id] = {
120 "id": cve_id,
121 "status": "Unpatched",
122 "detail": "version-in-range",
123 "summary": description,
124 "description": f"Needs backporting (fixed from {fixed_in})"
125 }
126 vulnerable += 1
127 if (better_match_last and
128 Version(f"{better_match_last.major}.{better_match_last.minor}") == base_version):
129 fixed_as_later_backport += 1
130 # Not vulnerable
131 else:
132 if not first_affected:
133 logging.debug("%s - not known affected %s",
134 cve_id,
135 better_match_last)
136 cves[cve_id] = {
137 "id": cve_id,
138 "status": "Patched",
139 "detail": "version-not-in-range",
140 "summary": description,
141 "description": "No CPE match"
142 }
143 not_vulnerable += 1
144 continue
145 backport_base = Version(f"{better_match_last.major}.{better_match_last.minor}")
146 if version < first_affected:
147 logging.debug('%s - fixed-version: only affects %s onwards',
148 cve_id,
149 first_affected)
150 cves[cve_id] = {
151 "id": cve_id,
152 "status": "Patched",
153 "detail": "fixed-version",
154 "summary": description,
155 "description": f"only affects {first_affected} onwards"
156 }
157 not_vulnerable += 1
158 elif last_affected <= version:
159 logging.debug("%s - fixed-version: Fixed from version %s",
160 cve_id,
161 last_affected)
162 cves[cve_id] = {
163 "id": cve_id,
164 "status": "Patched",
165 "detail": "fixed-version",
166 "summary": description,
167 "description": f"fixed-version: Fixed from version {last_affected}"
168 }
169 not_vulnerable += 1
170 elif backport_base == base_version:
171 logging.debug("%s - cpe-stable-backport: Backported in %s",
172 cve_id,
173 better_match_last)
174 cves[cve_id] = {
175 "id": cve_id,
176 "status": "Patched",
177 "detail": "cpe-stable-backport",
178 "summary": description,
179 "description": f"Backported in {better_match_last}"
180 }
181 not_vulnerable += 1
182 else:
183 logging.debug("%s - version not affected %s", cve_id, str(affected_versions))
184 cves[cve_id] = {
185 "id": cve_id,
186 "status": "Patched",
187 "detail": "version-not-in-range",
188 "summary": description,
189 "description": f"Range {affected_versions}"
190 }
191 not_vulnerable += 1
192
193 logging.info("Total CVEs ignored due to not applicable config: %d", not_applicable_config)
194 logging.info("Total CVEs not vulnerable due version-not-in-range: %d", not_vulnerable)
195 logging.info("Total vulnerable CVEs: %d", vulnerable)
196
197 logging.info("Total CVEs already backported in %s: %s", base_version,
198 fixed_as_later_backport)
199 return cves
200
201def read_spdx(spdx_file):
202 '''Open SPDX file and extract compiled files'''
203 with open(spdx_file, 'r', encoding='ISO-8859-1') as f:
204 spdx = json.load(f)
205 if "spdxVersion" in spdx:
206 if spdx["spdxVersion"] == "SPDX-2.2":
207 return read_spdx2(spdx)
208 if "@graph" in spdx:
209 return read_spdx3(spdx)
210 return []
211
212def read_spdx2(spdx):
213 '''
214 Read spdx2 compiled files from spdx
215 '''
216 cfiles = set()
217 if 'files' not in spdx:
218 return cfiles
219 for item in spdx['files']:
220 for ftype in item['fileTypes']:
221 if ftype == "SOURCE":
222 filename = item["fileName"][item["fileName"].find("/")+1:]
223 cfiles.add(filename)
224 return cfiles
225
226def read_spdx3(spdx):
227 '''
228 Read spdx3 compiled files from spdx
229 '''
230 cfiles = set()
231 for item in spdx["@graph"]:
232 if "software_primaryPurpose" not in item:
233 continue
234 if item["software_primaryPurpose"] == "source":
235 filename = item['name'][item['name'].find("/")+1:]
236 cfiles.add(filename)
237 return cfiles
238
239def check_kernel_compiled_files(compiled_files, cve_info):
240 """
241 Return if a CVE affected us depending on compiled files
242 """
243 files_affected = set()
244 is_affected = False
245
246 for item in cve_info['containers']['cna']['affected']:
247 if "programFiles" in item:
248 for f in item['programFiles']:
249 if f not in files_affected:
250 files_affected.add(f)
251
252 if len(files_affected) > 0:
253 for f in files_affected:
254 if f in compiled_files:
255 logging.debug("File match: %s", f)
256 is_affected = True
257 return is_affected, files_affected
258
259def get_cpe_applicability(cve_info, v):
260 '''
261 Check if version is affected and return affected versions
262 '''
263 base_branch = Version(f"{v.major}.{v.minor}")
264 affected = []
265 if not 'cpeApplicability' in cve_info["containers"]["cna"]:
266 return None, None, None, None, None, None
267
268 for nodes in cve_info["containers"]["cna"]["cpeApplicability"]:
269 for node in nodes.values():
270 vulnerable = False
271 matched_branch = False
272 first_affected = Version("5000")
273 last_affected = Version("0")
274 better_match_first = Version("0")
275 better_match_last = Version("5000")
276
277 if len(node[0]['cpeMatch']) == 0:
278 first_affected = None
279 last_affected = None
280 better_match_first = None
281 better_match_last = None
282
283 for cpe_match in node[0]['cpeMatch']:
284 version_start_including = Version("0")
285 version_end_excluding = Version("0")
286 if 'versionStartIncluding' in cpe_match:
287 version_start_including = Version(cpe_match['versionStartIncluding'])
288 else:
289 version_start_including = Version("0")
290 # if versionEndExcluding is missing we are in a branch, which is not fixed.
291 if "versionEndExcluding" in cpe_match:
292 version_end_excluding = Version(cpe_match["versionEndExcluding"])
293 else:
294 # if versionEndExcluding is missing we are in a branch, which is not fixed.
295 version_end_excluding = Version(
296 f"{version_start_including.major}.{version_start_including.minor}.5000"
297 )
298 affected.append(f" {version_start_including}-{version_end_excluding}")
299 # Detect if versionEnd is in fixed in base branch. It has precedence over the rest
300 branch_end = Version(f"{version_end_excluding.major}.{version_end_excluding.minor}")
301 if branch_end == base_branch:
302 if version_start_including <= v < version_end_excluding:
303 vulnerable = cpe_match['vulnerable']
304 # If we don't match in our branch, we are not vulnerable,
305 # since we have a backport
306 matched_branch = True
307 better_match_first = version_start_including
308 better_match_last = version_end_excluding
309 if version_start_including <= v < version_end_excluding and not matched_branch:
310 if version_end_excluding < better_match_last:
311 better_match_first = max(version_start_including, better_match_first)
312 better_match_last = min(better_match_last, version_end_excluding)
313 vulnerable = cpe_match['vulnerable']
314 matched_branch = True
315
316 first_affected = min(version_start_including, first_affected)
317 last_affected = max(version_end_excluding, last_affected)
318 # Not a better match, we use the first and last affected instead of the fake .5000
319 if vulnerable and better_match_last == Version(f"{base_branch}.5000"):
320 better_match_last = last_affected
321 better_match_first = first_affected
322 return vulnerable, first_affected, last_affected, better_match_first, better_match_last, affected
323
324def copy_data(old, new):
325 '''Update dictionary with new entries, while keeping the old ones'''
326 for k in new.keys():
327 old[k] = new[k]
328 return old
329
330# Function taken from cve_check.bbclass. Adapted to cve fields
331def cve_update(cve_data, cve, entry):
332 # If no entry, just add it
333 if cve not in cve_data:
334 cve_data[cve] = entry
335 return
336 # If we are updating, there might be change in the status
337 if cve_data[cve]['status'] == "Unknown":
338 cve_data[cve] = copy_data(cve_data[cve], entry)
339 return
340 if cve_data[cve]['status'] == entry['status']:
341 return
342 if entry['status'] == "Unpatched" and cve_data[cve]['status'] == "Patched":
343 logging.warning("CVE entry %s update from Patched to Unpatched from the scan result", cve)
344 cve_data[cve] = copy_data(cve_data[cve], entry)
345 return
346 if entry['status'] == "Patched" and cve_data[cve]['status'] == "Unpatched":
347 logging.warning("CVE entry %s update from Unpatched to Patched from the scan result", cve)
348 cve_data[cve] = copy_data(cve_data[cve], entry)
349 return
350 # If we have an "Ignored", it has a priority
351 if cve_data[cve]['status'] == "Ignored":
352 logging.debug("CVE %s not updating because Ignored", cve)
353 return
354 # If we have an "Ignored", it has a priority
355 if entry['status'] == "Ignored":
356 cve_data[cve] = copy_data(cve_data[cve], entry)
357 logging.debug("CVE entry %s updated from Unpatched to Ignored", cve)
358 return
359 logging.warning("Unhandled CVE entry update for %s %s from %s %s to %s",
360 cve, cve_data[cve]['status'], cve_data[cve]['detail'], entry['status'], entry['detail'])
361
362def main():
363 parser = argparse.ArgumentParser(
364 description="Update cve-summary with kernel compiled files and kernel CVE information"
365 )
366 parser.add_argument(
367 "-s",
368 "--spdx",
369 help="SPDX2/3 for the kernel. Needs to include compiled sources",
370 )
371 parser.add_argument(
372 "--datadir",
373 type=pathlib.Path,
374 help="Directory where CVE data is",
375 required=True
376 )
377 parser.add_argument(
378 "--old-cve-report",
379 help="CVE report to update. (Optional)",
380 )
381 parser.add_argument(
382 "--kernel-version",
383 help="Kernel version. Needed if old cve_report is not provided (Optional)",
384 type=Version
385 )
386 parser.add_argument(
387 "--new-cve-report",
388 help="Output file",
389 default="cve-summary-enhance.json"
390 )
391 parser.add_argument(
392 "-D",
393 "--debug",
394 help='Enable debug ',
395 action="store_true")
396
397 args = parser.parse_args()
398
399 if args.debug:
400 log_level=logging.DEBUG
401 else:
402 log_level=logging.INFO
403 logging.basicConfig(format='[%(filename)s:%(lineno)d] %(message)s', level=log_level)
404
405 if not args.kernel_version and not args.old_cve_report:
406 parser.error("either --kernel-version or --old-cve-report are needed")
407 return -1
408
409 # by default we don't check the compiled files, unless provided
410 compiled_files = []
411 if args.spdx:
412 compiled_files = read_spdx(args.spdx)
413 logging.info("Total compiled files %d", len(compiled_files))
414
415 if args.old_cve_report:
416 with open(args.old_cve_report, encoding='ISO-8859-1') as f:
417 cve_report = json.load(f)
418 else:
419 #If summary not provided, we create one
420 cve_report = {
421 "version": "1",
422 "package": [
423 {
424 "name": "linux-yocto",
425 "version": str(args.kernel_version),
426 "products": [
427 {
428 "product": "linux_kernel",
429 "cvesInRecord": "Yes"
430 }
431 ],
432 "issue": []
433 }
434 ]
435 }
436
437 for pkg in cve_report['package']:
438 is_kernel = False
439 for product in pkg['products']:
440 if product['product'] == "linux_kernel":
441 is_kernel=True
442 if not is_kernel:
443 continue
444
445 kernel_cves = get_kernel_cves(args.datadir,
446 compiled_files,
447 Version(pkg["version"]))
448 logging.info("Total kernel cves from kernel CNA: %s", len(kernel_cves))
449 cves = {issue["id"]: issue for issue in pkg["issue"]}
450 logging.info("Total kernel before processing cves: %s", len(cves))
451
452 for cve in kernel_cves:
453 cve_update(cves, cve, kernel_cves[cve])
454
455 pkg["issue"] = []
456 for cve in sorted(cves):
457 pkg["issue"].extend([cves[cve]])
458 logging.info("Total kernel cves after processing: %s", len(pkg['issue']))
459
460 with open(args.new_cve_report, "w", encoding='ISO-8859-1') as f:
461 json.dump(cve_report, f, indent=2)
462
463 return 0
464
465if __name__ == "__main__":
466 sys.exit(main())
467
diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index f8cf65f4a8..931408fa74 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -334,7 +334,7 @@ class RecipeModified:
334 self.srctree = workspace[workspacepn]['srctree'] 334 self.srctree = workspace[workspacepn]['srctree']
335 # Need to grab this here in case the source is within a subdirectory 335 # Need to grab this here in case the source is within a subdirectory
336 self.real_srctree = get_real_srctree( 336 self.real_srctree = get_real_srctree(
337 self.srctree, recipe_d.getVar('S'), recipe_d.getVar('WORKDIR')) 337 self.srctree, recipe_d.getVar('S'), recipe_d.getVar('UNPACKDIR'))
338 self.bbappend = workspace[workspacepn]['bbappend'] 338 self.bbappend = workspace[workspacepn]['bbappend']
339 339
340 self.ide_sdk_dir = os.path.join( 340 self.ide_sdk_dir = os.path.join(
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index cdfdba43ee..1fd5947c41 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -625,7 +625,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
625 srcsubdir = f.read() 625 srcsubdir = f.read()
626 except FileNotFoundError as e: 626 except FileNotFoundError as e:
627 raise DevtoolError('Something went wrong with source extraction - the devtool-source class was not active or did not function correctly:\n%s' % str(e)) 627 raise DevtoolError('Something went wrong with source extraction - the devtool-source class was not active or did not function correctly:\n%s' % str(e))
628 srcsubdir_rel = os.path.relpath(srcsubdir, os.path.join(tempdir, 'workdir')) 628 srcsubdir_rel = os.path.relpath(srcsubdir, os.path.join(tempdir, 'workdir', os.path.relpath(d.getVar('UNPACKDIR'), d.getVar('WORKDIR'))))
629 629
630 # Check if work-shared is empty, if yes 630 # Check if work-shared is empty, if yes
631 # find source and copy to work-shared 631 # find source and copy to work-shared
@@ -742,13 +742,13 @@ def get_staging_kbranch(srcdir):
742 staging_kbranch = "".join(branch.split('\n')[0]) 742 staging_kbranch = "".join(branch.split('\n')[0])
743 return staging_kbranch 743 return staging_kbranch
744 744
745def get_real_srctree(srctree, s, workdir): 745def get_real_srctree(srctree, s, unpackdir):
746 # Check that recipe isn't using a shared workdir 746 # Check that recipe isn't using a shared workdir
747 s = os.path.abspath(s) 747 s = os.path.abspath(s)
748 workdir = os.path.abspath(workdir) 748 unpackdir = os.path.abspath(unpackdir)
749 if s.startswith(workdir) and s != workdir and os.path.dirname(s) != workdir: 749 if s.startswith(unpackdir) and s != unpackdir and os.path.dirname(s) != unpackdir:
750 # Handle if S is set to a subdirectory of the source 750 # Handle if S is set to a subdirectory of the source
751 srcsubdir = os.path.relpath(s, workdir).split(os.sep, 1)[1] 751 srcsubdir = os.path.relpath(s, unpackdir).split(os.sep, 1)[1]
752 srctree = os.path.join(srctree, srcsubdir) 752 srctree = os.path.join(srctree, srcsubdir)
753 return srctree 753 return srctree
754 754
@@ -907,7 +907,7 @@ def modify(args, config, basepath, workspace):
907 907
908 # Need to grab this here in case the source is within a subdirectory 908 # Need to grab this here in case the source is within a subdirectory
909 srctreebase = srctree 909 srctreebase = srctree
910 srctree = get_real_srctree(srctree, rd.getVar('S'), rd.getVar('WORKDIR')) 910 srctree = get_real_srctree(srctree, rd.getVar('S'), rd.getVar('UNPACKDIR'))
911 911
912 bb.utils.mkdirhier(os.path.dirname(appendfile)) 912 bb.utils.mkdirhier(os.path.dirname(appendfile))
913 with open(appendfile, 'w') as f: 913 with open(appendfile, 'w') as f:
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index 0dace1fb24..d9aca6e2db 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -571,7 +571,7 @@ def upgrade(args, config, basepath, workspace):
571 else: 571 else:
572 srctree = standard.get_default_srctree(config, pn) 572 srctree = standard.get_default_srctree(config, pn)
573 573
574 srctree_s = standard.get_real_srctree(srctree, rd.getVar('S'), rd.getVar('WORKDIR')) 574 srctree_s = standard.get_real_srctree(srctree, rd.getVar('S'), rd.getVar('UNPACKDIR'))
575 575
576 # try to automatically discover latest version and revision if not provided on command line 576 # try to automatically discover latest version and revision if not provided on command line
577 if not args.version and not args.srcrev: 577 if not args.version and not args.srcrev:
diff --git a/scripts/lib/recipetool/append.py b/scripts/lib/recipetool/append.py
index 10945d6008..041d79f162 100644
--- a/scripts/lib/recipetool/append.py
+++ b/scripts/lib/recipetool/append.py
@@ -317,7 +317,7 @@ def appendsrc(args, files, rd, extralines=None):
317 import oe.recipeutils 317 import oe.recipeutils
318 318
319 srcdir = rd.getVar('S') 319 srcdir = rd.getVar('S')
320 workdir = rd.getVar('WORKDIR') 320 unpackdir = rd.getVar('UNPACKDIR')
321 321
322 import bb.fetch 322 import bb.fetch
323 simplified = {} 323 simplified = {}
@@ -336,10 +336,10 @@ def appendsrc(args, files, rd, extralines=None):
336 src_destdir = os.path.dirname(srcfile) 336 src_destdir = os.path.dirname(srcfile)
337 if not args.use_workdir: 337 if not args.use_workdir:
338 if rd.getVar('S') == rd.getVar('STAGING_KERNEL_DIR'): 338 if rd.getVar('S') == rd.getVar('STAGING_KERNEL_DIR'):
339 srcdir = os.path.join(workdir, 'git') 339 srcdir = os.path.join(unpackdir, rd.getVar('BB_GIT_DEFAULT_DESTSUFFIX'))
340 if not bb.data.inherits_class('kernel-yocto', rd): 340 if not bb.data.inherits_class('kernel-yocto', rd):
341 logger.warning('S == STAGING_KERNEL_DIR and non-kernel-yocto, unable to determine path to srcdir, defaulting to ${WORKDIR}/git') 341 logger.warning('S == STAGING_KERNEL_DIR and non-kernel-yocto, unable to determine path to srcdir, defaulting to ${UNPACKDIR}/${BB_GIT_DEFAULT_DESTSUFFIX}')
342 src_destdir = os.path.join(os.path.relpath(srcdir, workdir), src_destdir) 342 src_destdir = os.path.join(os.path.relpath(srcdir, unpackdir), src_destdir)
343 src_destdir = os.path.normpath(src_destdir) 343 src_destdir = os.path.normpath(src_destdir)
344 344
345 if src_destdir and src_destdir != '.': 345 if src_destdir and src_destdir != '.':
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 3c6ef6719f..edb6467103 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -638,7 +638,6 @@ def create_recipe(args):
638 if len(splitline) > 1: 638 if len(splitline) > 1:
639 if splitline[0] == 'origin' and scriptutils.is_src_url(splitline[1]): 639 if splitline[0] == 'origin' and scriptutils.is_src_url(splitline[1]):
640 srcuri = reformat_git_uri(splitline[1]) + ';branch=master' 640 srcuri = reformat_git_uri(splitline[1]) + ';branch=master'
641 srcsubdir = 'git'
642 break 641 break
643 642
644 if args.src_subdir: 643 if args.src_subdir:
@@ -736,7 +735,7 @@ def create_recipe(args):
736 if srcsubdir and not args.binary: 735 if srcsubdir and not args.binary:
737 # (for binary packages we explicitly specify subdir= when fetching to 736 # (for binary packages we explicitly specify subdir= when fetching to
738 # match the default value of S, so we don't need to set it in that case) 737 # match the default value of S, so we don't need to set it in that case)
739 lines_before.append('S = "${WORKDIR}/%s"' % srcsubdir) 738 lines_before.append('S = "${UNPACKDIR}/%s"' % srcsubdir)
740 lines_before.append('') 739 lines_before.append('')
741 740
742 if pkgarch: 741 if pkgarch:
@@ -840,7 +839,7 @@ def create_recipe(args):
840 line = line.replace(realpv, '${PV}') 839 line = line.replace(realpv, '${PV}')
841 if pn: 840 if pn:
842 line = line.replace(pn, '${BPN}') 841 line = line.replace(pn, '${BPN}')
843 if line == 'S = "${WORKDIR}/${BPN}-${PV}"': 842 if line == 'S = "${UNPACKDIR}/${BPN}-${PV}"' or 'tmp-recipetool-' in line:
844 skipblank = True 843 skipblank = True
845 continue 844 continue
846 elif line.startswith('SRC_URI = '): 845 elif line.startswith('SRC_URI = '):
diff --git a/scripts/test-remote-image b/scripts/test-remote-image
index d209d22854..1d018992b0 100755
--- a/scripts/test-remote-image
+++ b/scripts/test-remote-image
@@ -152,8 +152,7 @@ class AutoTargetProfile(BaseTargetProfile):
152 return controller 152 return controller
153 153
154 def set_kernel_file(self): 154 def set_kernel_file(self):
155 postconfig = "QA_GET_MACHINE = \"${MACHINE}\"" 155 machine = get_bb_var('MACHINE')
156 machine = get_bb_var('QA_GET_MACHINE', postconfig=postconfig)
157 self.kernel_file = self.kernel_type + '-' + machine + '.bin' 156 self.kernel_file = self.kernel_type + '-' + machine + '.bin'
158 157
159 def set_rootfs_file(self): 158 def set_rootfs_file(self):
@@ -215,13 +214,11 @@ class PublicAB(BaseRepoProfile):
215 def get_repo_path(self): 214 def get_repo_path(self):
216 path = '/machines/' 215 path = '/machines/'
217 216
218 postconfig = "QA_GET_MACHINE = \"${MACHINE}\"" 217 machine = get_bb_var('MACHINE')
219 machine = get_bb_var('QA_GET_MACHINE', postconfig=postconfig)
220 if 'qemu' in machine: 218 if 'qemu' in machine:
221 path += 'qemu/' 219 path += 'qemu/'
222 220
223 postconfig = "QA_GET_DISTRO = \"${DISTRO}\"" 221 distro = get_bb_var('DISTRO')
224 distro = get_bb_var('QA_GET_DISTRO', postconfig=postconfig)
225 path += distro.replace('poky', machine) + '/' 222 path += distro.replace('poky', machine) + '/'
226 return path 223 return path
227 224
diff --git a/scripts/wic b/scripts/wic
index 06e0b48db0..9137208f5e 100755
--- a/scripts/wic
+++ b/scripts/wic
@@ -237,6 +237,13 @@ def wic_ls_subcommand(args, usage_str):
237 Command-line handling for list content of images. 237 Command-line handling for list content of images.
238 The real work is done by engine.wic_ls() 238 The real work is done by engine.wic_ls()
239 """ 239 """
240
241 if args.image_name:
242 BB_VARS.default_image = args.image_name
243
244 if args.vars_dir:
245 BB_VARS.vars_dir = args.vars_dir
246
240 engine.wic_ls(args, args.native_sysroot) 247 engine.wic_ls(args, args.native_sysroot)
241 248
242def wic_cp_subcommand(args, usage_str): 249def wic_cp_subcommand(args, usage_str):
@@ -244,6 +251,12 @@ def wic_cp_subcommand(args, usage_str):
244 Command-line handling for copying files/dirs to images. 251 Command-line handling for copying files/dirs to images.
245 The real work is done by engine.wic_cp() 252 The real work is done by engine.wic_cp()
246 """ 253 """
254 if args.image_name:
255 BB_VARS.default_image = args.image_name
256
257 if args.vars_dir:
258 BB_VARS.vars_dir = args.vars_dir
259
247 engine.wic_cp(args, args.native_sysroot) 260 engine.wic_cp(args, args.native_sysroot)
248 261
249def wic_rm_subcommand(args, usage_str): 262def wic_rm_subcommand(args, usage_str):
@@ -251,6 +264,12 @@ def wic_rm_subcommand(args, usage_str):
251 Command-line handling for removing files/dirs from images. 264 Command-line handling for removing files/dirs from images.
252 The real work is done by engine.wic_rm() 265 The real work is done by engine.wic_rm()
253 """ 266 """
267 if args.image_name:
268 BB_VARS.default_image = args.image_name
269
270 if args.vars_dir:
271 BB_VARS.vars_dir = args.vars_dir
272
254 engine.wic_rm(args, args.native_sysroot) 273 engine.wic_rm(args, args.native_sysroot)
255 274
256def wic_write_subcommand(args, usage_str): 275def wic_write_subcommand(args, usage_str):
@@ -258,6 +277,12 @@ def wic_write_subcommand(args, usage_str):
258 Command-line handling for writing images. 277 Command-line handling for writing images.
259 The real work is done by engine.wic_write() 278 The real work is done by engine.wic_write()
260 """ 279 """
280 if args.image_name:
281 BB_VARS.default_image = args.image_name
282
283 if args.vars_dir:
284 BB_VARS.vars_dir = args.vars_dir
285
261 engine.wic_write(args, args.native_sysroot) 286 engine.wic_write(args, args.native_sysroot)
262 287
263def wic_help_subcommand(args, usage_str): 288def wic_help_subcommand(args, usage_str):
@@ -390,6 +415,12 @@ def wic_init_parser_ls(subparser):
390 help="image spec: <image>[:<vfat partition>[<path>]]") 415 help="image spec: <image>[:<vfat partition>[<path>]]")
391 subparser.add_argument("-n", "--native-sysroot", 416 subparser.add_argument("-n", "--native-sysroot",
392 help="path to the native sysroot containing the tools") 417 help="path to the native sysroot containing the tools")
418 subparser.add_argument("-e", "--image-name", dest="image_name",
419 help="name of the image to use the artifacts from "
420 "e.g. core-image-sato")
421 subparser.add_argument("-v", "--vars", dest='vars_dir',
422 help="directory with <image>.env files that store "
423 "bitbake variables")
393 424
394def imgpathtype(arg): 425def imgpathtype(arg):
395 img = imgtype(arg) 426 img = imgtype(arg)
@@ -404,6 +435,12 @@ def wic_init_parser_cp(subparser):
404 help="image spec: <image>:<vfat partition>[<path>] or <file>") 435 help="image spec: <image>:<vfat partition>[<path>] or <file>")
405 subparser.add_argument("-n", "--native-sysroot", 436 subparser.add_argument("-n", "--native-sysroot",
406 help="path to the native sysroot containing the tools") 437 help="path to the native sysroot containing the tools")
438 subparser.add_argument("-e", "--image-name", dest="image_name",
439 help="name of the image to use the artifacts from "
440 "e.g. core-image-sato")
441 subparser.add_argument("-v", "--vars", dest='vars_dir',
442 help="directory with <image>.env files that store "
443 "bitbake variables")
407 444
408def wic_init_parser_rm(subparser): 445def wic_init_parser_rm(subparser):
409 subparser.add_argument("path", type=imgpathtype, 446 subparser.add_argument("path", type=imgpathtype,
@@ -413,6 +450,12 @@ def wic_init_parser_rm(subparser):
413 subparser.add_argument("-r", dest="recursive_delete", action="store_true", default=False, 450 subparser.add_argument("-r", dest="recursive_delete", action="store_true", default=False,
414 help="remove directories and their contents recursively, " 451 help="remove directories and their contents recursively, "
415 " this only applies to ext* partition") 452 " this only applies to ext* partition")
453 subparser.add_argument("-e", "--image-name", dest="image_name",
454 help="name of the image to use the artifacts from "
455 "e.g. core-image-sato")
456 subparser.add_argument("-v", "--vars", dest='vars_dir',
457 help="directory with <image>.env files that store "
458 "bitbake variables")
416 459
417def expandtype(rules): 460def expandtype(rules):
418 """ 461 """
@@ -454,6 +497,12 @@ def wic_init_parser_write(subparser):
454 help="expand rules: auto or <partition>:<size>[,<partition>:<size>]") 497 help="expand rules: auto or <partition>:<size>[,<partition>:<size>]")
455 subparser.add_argument("-n", "--native-sysroot", 498 subparser.add_argument("-n", "--native-sysroot",
456 help="path to the native sysroot containing the tools") 499 help="path to the native sysroot containing the tools")
500 subparser.add_argument("--image-name", dest="image_name",
501 help="name of the image to use the artifacts from "
502 "e.g. core-image-sato")
503 subparser.add_argument("-v", "--vars", dest='vars_dir',
504 help="directory with <image>.env files that store "
505 "bitbake variables")
457 506
458def wic_init_parser_help(subparser): 507def wic_init_parser_help(subparser):
459 helpparsers = subparser.add_subparsers(dest='help_topic', help=hlp.wic_usage) 508 helpparsers = subparser.add_subparsers(dest='help_topic', help=hlp.wic_usage)