summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/bin/bitbake-worker6
-rw-r--r--bitbake/lib/bb/cooker.py30
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py14
-rw-r--r--bitbake/lib/bb/fetch2/git.py4
-rw-r--r--bitbake/lib/bb/fetch2/perforce.py2
-rw-r--r--bitbake/lib/bb/fetch2/wget.py2
-rw-r--r--bitbake/lib/bb/runqueue.py34
-rw-r--r--bitbake/lib/bb/tests/fetch.py49
-rw-r--r--bitbake/lib/bb/tests/runqueue.py2
-rw-r--r--bitbake/lib/bb/utils.py6
-rw-r--r--documentation/conf.py2
-rw-r--r--documentation/migration-guides/migration-3.1.rst5
-rw-r--r--documentation/migration-guides/migration-3.4.rst217
-rw-r--r--documentation/migration-guides/migration-general.rst26
-rw-r--r--documentation/poky.yaml27
-rw-r--r--documentation/ref-manual/classes.rst37
-rw-r--r--documentation/ref-manual/system-requirements.rst9
-rw-r--r--documentation/ref-manual/variables.rst39
-rw-r--r--documentation/releases.rst23
-rw-r--r--documentation/sphinx-static/switchers.js5
-rw-r--r--documentation/test-manual/reproducible-builds.rst12
-rw-r--r--meta-poky/conf/distro/poky.conf2
-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/git-submodule-test/git-submodule-test.bb2
-rw-r--r--meta/classes/buildhistory.bbclass21
-rw-r--r--meta/classes/create-spdx.bbclass50
-rw-r--r--meta/classes/cross-canadian.bbclass2
-rw-r--r--meta/classes/devupstream.bbclass2
-rw-r--r--meta/classes/go.bbclass3
-rw-r--r--meta/classes/insane.bbclass30
-rw-r--r--meta/classes/meson.bbclass12
-rw-r--r--meta/classes/mirrors.bbclass2
-rw-r--r--meta/classes/nativesdk.bbclass2
-rw-r--r--meta/classes/patch.bbclass7
-rw-r--r--meta/classes/populate_sdk_base.bbclass4
-rw-r--r--meta/classes/sstate.bbclass18
-rw-r--r--meta/classes/staging.bbclass2
-rw-r--r--meta/classes/testimage.bbclass7
-rw-r--r--meta/classes/uninative.bbclass2
-rw-r--r--meta/conf/bitbake.conf5
-rw-r--r--meta/conf/distro/include/default-distrovars.inc2
-rw-r--r--meta/conf/distro/include/yocto-uninative.inc3
-rw-r--r--meta/conf/documentation.conf2
-rw-r--r--meta/lib/oe/package_manager/__init__.py2
-rw-r--r--meta/lib/oe/spdx.py6
-rw-r--r--meta/lib/oeqa/runtime/cases/parselogs.py2
-rw-r--r--meta/lib/oeqa/sdk/buildtools-cases/build.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/eSDK.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/fetch.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/recipetool.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/sstatetests.py14
-rw-r--r--meta/lib/oeqa/selftest/context.py2
-rw-r--r--meta/recipes-bsp/efibootmgr/efibootmgr_17.bb2
-rw-r--r--meta/recipes-bsp/efivar/efivar_37.bb2
-rw-r--r--meta/recipes-bsp/opensbi/opensbi_0.9.bb2
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc2
-rw-r--r--meta/recipes-connectivity/avahi/files/local-ping.patch1
-rw-r--r--meta/recipes-connectivity/connman/connman-gnome_0.7.bb2
-rw-r--r--meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb2
-rw-r--r--meta/recipes-connectivity/libuv/libuv_1.42.0.bb2
-rw-r--r--meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb2
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb2
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.34.1.bb (renamed from meta/recipes-core/busybox/busybox-inittab_1.34.0.bb)0
-rw-r--r--meta/recipes-core/busybox/busybox_1.34.1.bb (renamed from meta/recipes-core/busybox/busybox_1.34.0.bb)2
-rw-r--r--meta/recipes-core/dbus-wait/dbus-wait_git.bb2
-rw-r--r--meta/recipes-core/fts/fts_1.2.7.bb2
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.34.bb2
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2021-43396.patch184
-rw-r--r--meta/recipes-core/glibc/glibc_2.34.bb1
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.36.bb2
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb2
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.60.bb2
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc2
-rw-r--r--meta/recipes-core/libxml/libxml2_2.9.12.bb2
-rw-r--r--meta/recipes-core/musl/libucontext_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/ovmf/ovmf_git.bb4
-rw-r--r--meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb2
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb2
-rw-r--r--meta/recipes-core/systemd/systemd.inc2
-rw-r--r--meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch16
-rw-r--r--meta/recipes-core/update-rc.d/update-rc.d_0.8.bb2
-rw-r--r--meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb8
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_5.13.1.bb2
-rw-r--r--meta/recipes-devtools/createrepo-c/createrepo-c_0.17.4.bb2
-rw-r--r--meta/recipes-devtools/distcc/distcc_3.4.bb2
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.8.0.bb2
-rw-r--r--meta/recipes-devtools/dpkg/dpkg.inc4
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs.inc2
-rw-r--r--meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb2
-rw-r--r--meta/recipes-devtools/file/file_5.40.bb2
-rw-r--r--meta/recipes-devtools/glide/glide_0.13.3.bb2
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb2
-rw-r--r--meta/recipes-devtools/go/go-1.16.8.inc (renamed from meta/recipes-devtools/go/go-1.16.7.inc)4
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.16.8.bb (renamed from meta/recipes-devtools/go/go-binary-native_1.16.7.bb)4
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian_1.16.8.bb (renamed from meta/recipes-devtools/go/go-cross-canadian_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/go/go-cross_1.16.8.bb (renamed from meta/recipes-devtools/go/go-cross_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/go/go-crosssdk_1.16.8.bb (renamed from meta/recipes-devtools/go/go-crosssdk_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/go/go-native_1.16.8.bb (renamed from meta/recipes-devtools/go/go-native_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/go/go-runtime_1.16.8.bb (renamed from meta/recipes-devtools/go/go-runtime_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/go/go_1.16.8.bb (renamed from meta/recipes-devtools/go/go_1.16.7.bb)0
-rw-r--r--meta/recipes-devtools/libcomps/libcomps_0.1.17.bb2
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.63.1.bb2
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.14.1.bb2
-rw-r--r--meta/recipes-devtools/llvm/llvm_git.bb2
-rwxr-xr-xmeta/recipes-devtools/meson/meson/meson-setup.py8
-rwxr-xr-xmeta/recipes-devtools/meson/meson/meson-wrapper1
-rw-r--r--meta/recipes-devtools/meson/nativesdk-meson_0.58.1.bb52
-rw-r--r--meta/recipes-devtools/mtd/mtd-utils_git.bb2
-rw-r--r--meta/recipes-devtools/ninja/ninja_1.10.2.bb2
-rw-r--r--meta/recipes-devtools/opkg/opkg_0.4.5.bb2
-rw-r--r--meta/recipes-devtools/patchelf/patchelf_0.13.bb2
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb2
-rw-r--r--meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch34
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_57.4.0.bb5
-rw-r--r--meta/recipes-devtools/python/python3_3.9.7.bb (renamed from meta/recipes-devtools/python/python3_3.9.6.bb)2
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc8
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.16.1.3.bb2
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-1.patch135
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-2.patch108
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072-requisite-3.patch326
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools/CVE-2021-41072.patch329
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb6
-rw-r--r--meta/recipes-devtools/strace/strace/0001-Avoid-relying-on-presence-of-ipx.h.patch151
-rwxr-xr-xmeta/recipes-devtools/strace/strace/run-ptest9
-rw-r--r--meta/recipes-devtools/strace/strace_5.14.bb1
-rw-r--r--meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb2
-rw-r--r--meta/recipes-devtools/tcf-agent/tcf-agent_git.bb2
-rw-r--r--meta/recipes-devtools/unfs3/unfs3_git.bb2
-rw-r--r--meta/recipes-example/rust-hello-world/rust-hello-world_git.bb2
-rw-r--r--meta/recipes-extended/bzip2/bzip2_1.0.8.bb2
-rw-r--r--meta/recipes-extended/cups/cups.inc2
-rw-r--r--meta/recipes-extended/go-examples/go-helloworld_0.1.bb2
-rw-r--r--meta/recipes-extended/iputils/iputils_20210722.bb2
-rw-r--r--meta/recipes-extended/libaio/libaio_0.3.112.bb2
-rw-r--r--meta/recipes-extended/libnsl/libnsl2_git.bb2
-rw-r--r--meta/recipes-extended/libnss-nis/libnss-nis.bb2
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.7.19.bb2
-rw-r--r--meta/recipes-extended/ltp/ltp_20210524.bb2
-rw-r--r--meta/recipes-extended/net-tools/net-tools_2.10.bb2
-rw-r--r--meta/recipes-extended/newt/libnewt_0.52.21.bb2
-rw-r--r--meta/recipes-extended/procps/procps_3.3.17.bb2
-rw-r--r--meta/recipes-extended/psmisc/psmisc_23.4.bb2
-rw-r--r--meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb2
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng/0001-Makefile-do-not-write-the-timestamp-into-compressed-.patch26
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.13.00.bb8
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb2
-rw-r--r--meta/recipes-extended/tar/tar_1.34.bb6
-rw-r--r--meta/recipes-extended/timezone/timezone.inc7
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb2
-rw-r--r--meta/recipes-extended/zstd/zstd_1.5.0.bb2
-rw-r--r--meta/recipes-gnome/libportal/libportal_0.4.bb2
-rw-r--r--meta/recipes-graphics/glslang/glslang_11.5.0.bb2
-rw-r--r--meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb2
-rw-r--r--meta/recipes-graphics/libfakekey/libfakekey_git.bb2
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb2
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.12.0.bb2
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb2
-rw-r--r--meta/recipes-graphics/mesa/files/without-neon.patch53
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_21.2.4.bb (renamed from meta/recipes-graphics/mesa/mesa-gl_21.2.1.bb)0
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc7
-rw-r--r--meta/recipes-graphics/mesa/mesa_21.2.4.bb (renamed from meta/recipes-graphics/mesa/mesa_21.2.1.bb)0
-rw-r--r--meta/recipes-graphics/spir/spirv-headers_1.5.4.bb2
-rw-r--r--meta/recipes-graphics/spir/spirv-tools_2021.2.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.2.182.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.2.182.0.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples_git.bb2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.2.182.0.bb2
-rw-r--r--meta/recipes-graphics/waffle/waffle_1.6.1.bb10
-rw-r--r--meta/recipes-graphics/wayland/wayland_1.19.0.bb6
-rw-r--r--meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb2
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb2
-rw-r--r--meta/recipes-kernel/blktrace/blktrace_git.bb2
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev.inc2
-rw-r--r--meta/recipes-kernel/dtc/dtc.inc2
-rw-r--r--meta/recipes-kernel/kern-tools/kern-tools-native_git.bb2
-rw-r--r--meta/recipes-kernel/kmod/kmod.inc2
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20211027.bb (renamed from meta/recipes-kernel/linux-firmware/linux-firmware_20210818.bb)4
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb10
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-dev.bb1
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.14.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.14.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.10.bb24
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.14.bb28
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-Fix-Tests-race-condition-in-test_event_tracker.patch221
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-tests-wait-some-more-before-analysing-traces-or-star.patch88
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0002-Fix-Tests-race-condition-in-test_ns_contexts_change.patch46
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.13.0.bb3
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.14.bb2
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc2
-rw-r--r--meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.08.28.bb (renamed from meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.07.14.bb)2
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38114.patch67
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb3
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gst-devtools_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gst-examples_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch50
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb)3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch100
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.4.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch14
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb)2
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb2
-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.2.bb2
-rw-r--r--meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb2
-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.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-support/bmap-tools/bmap-tools_3.6.bb2
-rw-r--r--meta/recipes-support/boost/boost-build-native_4.4.1.bb2
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch80
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/sbindir.patch26
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/update-ca-certificates-support-Toybox.patch33
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates_20211016.bb (renamed from meta/recipes-support/ca-certificates/ca-certificates_20210119.bb)7
-rw-r--r--meta/recipes-support/curl/curl/cve-2021-22945.patch34
-rw-r--r--meta/recipes-support/curl/curl/cve-2021-22946.patch332
-rw-r--r--meta/recipes-support/curl/curl/cve-2021-22947.patch355
-rw-r--r--meta/recipes-support/curl/curl_7.78.0.bb3
-rw-r--r--meta/recipes-support/dos2unix/dos2unix_7.4.2.bb2
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb2
-rw-r--r--meta/recipes-support/libgit2/libgit2_1.1.1.bb2
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_3.1.0.bb2
-rw-r--r--meta/recipes-support/libpcre/libpcre2_10.37.bb4
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.45.bb2
-rw-r--r--meta/recipes-support/libseccomp/libseccomp_2.5.1.bb2
-rw-r--r--meta/recipes-support/libunistring/libunistring_0.9.10.bb1
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.3.bb2
-rw-r--r--meta/recipes-support/numactl/numactl_git.bb2
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.24.0.bb2
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb2
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_6.14.bb2
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_git.bb2
-rw-r--r--meta/recipes-support/vim/files/0002-patch-8.2.3428-using-freed-memory-when-replacing.patch83
-rw-r--r--meta/recipes-support/vim/files/0003-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch86
-rw-r--r--meta/recipes-support/vim/files/0004-patch-8.2.3489-ml_get-error-after-search-with-range.patch72
-rw-r--r--meta/recipes-support/vim/files/0005-patch-8.2.3564-invalid-memory-access-when-scrolling-.patch97
-rw-r--r--meta/recipes-support/vim/files/CVE-2021-3778.patch37
-rw-r--r--meta/recipes-support/vim/vim.inc10
-rw-r--r--meta/recipes-support/xxhash/xxhash_0.8.0.bb2
-rwxr-xr-xscripts/contrib/convert-srcuri.py77
-rw-r--r--scripts/lib/recipetool/create.py3
-rw-r--r--scripts/lib/wic/help.py4
-rwxr-xr-xscripts/oe-pkgdata-browser8
263 files changed, 3815 insertions, 819 deletions
diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker
index 6a12e1f..7fde688 100755
--- a/bitbake/bin/bitbake-worker
+++ b/bitbake/bin/bitbake-worker
@@ -417,7 +417,11 @@ class BitbakeWorker(object):
417 if self.queue.startswith(b"<" + item + b">"): 417 if self.queue.startswith(b"<" + item + b">"):
418 index = self.queue.find(b"</" + item + b">") 418 index = self.queue.find(b"</" + item + b">")
419 while index != -1: 419 while index != -1:
420 func(self.queue[(len(item) + 2):index]) 420 try:
421 func(self.queue[(len(item) + 2):index])
422 except pickle.UnpicklingError:
423 workerlog_write("Unable to unpickle data: %s\n" % ":".join("{:02x}".format(c) for c in self.queue))
424 raise
421 self.queue = self.queue[(index + len(item) + 3):] 425 self.queue = self.queue[(index + len(item) + 3):]
422 index = self.queue.find(b"</" + item + b">") 426 index = self.queue.find(b"</" + item + b">")
423 427
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index af794b4..3688aa0 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -388,12 +388,22 @@ class BBCooker:
388 # Create a new hash server bound to a unix domain socket 388 # Create a new hash server bound to a unix domain socket
389 if not self.hashserv: 389 if not self.hashserv:
390 dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db" 390 dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
391 upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None
392 if upstream:
393 import socket
394 try:
395 sock = socket.create_connection(upstream.split(":"), 5)
396 sock.close()
397 except socket.error as e:
398 bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s"
399 % (upstream, repr(e)))
400
391 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR") 401 self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
392 self.hashserv = hashserv.create_server( 402 self.hashserv = hashserv.create_server(
393 self.hashservaddr, 403 self.hashservaddr,
394 dbfile, 404 dbfile,
395 sync=False, 405 sync=False,
396 upstream=self.data.getVar("BB_HASHSERVE_UPSTREAM") or None, 406 upstream=upstream,
397 ) 407 )
398 self.hashserv.serve_as_process() 408 self.hashserv.serve_as_process()
399 self.data.setVar("BB_HASHSERVE", self.hashservaddr) 409 self.data.setVar("BB_HASHSERVE", self.hashservaddr)
@@ -804,7 +814,9 @@ class BBCooker:
804 for dep in rq.rqdata.runtaskentries[tid].depends: 814 for dep in rq.rqdata.runtaskentries[tid].depends:
805 (depmc, depfn, _, deptaskfn) = bb.runqueue.split_tid_mcfn(dep) 815 (depmc, depfn, _, deptaskfn) = bb.runqueue.split_tid_mcfn(dep)
806 deppn = self.recipecaches[depmc].pkg_fn[deptaskfn] 816 deppn = self.recipecaches[depmc].pkg_fn[deptaskfn]
807 depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep))) 817 if depmc:
818 depmc = "mc:" + depmc + ":"
819 depend_tree["tdepends"][dotname].append("%s%s.%s" % (depmc, deppn, bb.runqueue.taskname_from_tid(dep)))
808 if taskfn not in seen_fns: 820 if taskfn not in seen_fns:
809 seen_fns.append(taskfn) 821 seen_fns.append(taskfn)
810 packages = [] 822 packages = []
@@ -2208,21 +2220,33 @@ class CookerParser(object):
2208 yield not cached, mc, infos 2220 yield not cached, mc, infos
2209 2221
2210 def parse_generator(self): 2222 def parse_generator(self):
2211 while True: 2223 empty = False
2224 while self.processes or not empty:
2225 for process in self.processes.copy():
2226 if not process.is_alive():
2227 process.join()
2228 self.processes.remove(process)
2229
2212 if self.parsed >= self.toparse: 2230 if self.parsed >= self.toparse:
2213 break 2231 break
2214 2232
2215 try: 2233 try:
2216 result = self.result_queue.get(timeout=0.25) 2234 result = self.result_queue.get(timeout=0.25)
2217 except queue.Empty: 2235 except queue.Empty:
2236 empty = True
2218 pass 2237 pass
2219 else: 2238 else:
2239 empty = False
2220 value = result[1] 2240 value = result[1]
2221 if isinstance(value, BaseException): 2241 if isinstance(value, BaseException):
2222 raise value 2242 raise value
2223 else: 2243 else:
2224 yield result 2244 yield result
2225 2245
2246 if not (self.parsed >= self.toparse):
2247 raise bb.parse.ParseError("Not all recipes parsed, parser thread killed/died? Exiting.", None)
2248
2249
2226 def parse_next(self): 2250 def parse_next(self):
2227 result = [] 2251 result = []
2228 parsed = None 2252 parsed = None
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 259b263..25179bc 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -430,6 +430,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
430 uri_replace_decoded = list(decodeurl(uri_replace)) 430 uri_replace_decoded = list(decodeurl(uri_replace))
431 logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded)) 431 logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
432 result_decoded = ['', '', '', '', '', {}] 432 result_decoded = ['', '', '', '', '', {}]
433 # 0 - type, 1 - host, 2 - path, 3 - user, 4- pswd, 5 - params
433 for loc, i in enumerate(uri_find_decoded): 434 for loc, i in enumerate(uri_find_decoded):
434 result_decoded[loc] = uri_decoded[loc] 435 result_decoded[loc] = uri_decoded[loc]
435 regexp = i 436 regexp = i
@@ -449,6 +450,9 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
449 for l in replacements: 450 for l in replacements:
450 uri_replace_decoded[loc][k] = uri_replace_decoded[loc][k].replace(l, replacements[l]) 451 uri_replace_decoded[loc][k] = uri_replace_decoded[loc][k].replace(l, replacements[l])
451 result_decoded[loc][k] = uri_replace_decoded[loc][k] 452 result_decoded[loc][k] = uri_replace_decoded[loc][k]
453 elif (loc == 3 or loc == 4) and uri_replace_decoded[loc]:
454 # User/password in the replacement is just a straight replacement
455 result_decoded[loc] = uri_replace_decoded[loc]
452 elif (re.match(regexp, uri_decoded[loc])): 456 elif (re.match(regexp, uri_decoded[loc])):
453 if not uri_replace_decoded[loc]: 457 if not uri_replace_decoded[loc]:
454 result_decoded[loc] = "" 458 result_decoded[loc] = ""
@@ -466,9 +470,13 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
466 # Kill parameters, they make no sense for mirror tarballs 470 # Kill parameters, they make no sense for mirror tarballs
467 uri_decoded[5] = {} 471 uri_decoded[5] = {}
468 elif ud.localpath and ud.method.supports_checksum(ud): 472 elif ud.localpath and ud.method.supports_checksum(ud):
469 basename = os.path.basename(uri_decoded[loc]) 473 basename = os.path.basename(ud.localpath)
470 if basename and not result_decoded[loc].endswith(basename): 474 if basename:
471 result_decoded[loc] = os.path.join(result_decoded[loc], basename) 475 uri_basename = os.path.basename(uri_decoded[loc])
476 if uri_basename and basename != uri_basename and result_decoded[loc].endswith(uri_basename):
477 result_decoded[loc] = result_decoded[loc].replace(uri_basename, basename)
478 elif not result_decoded[loc].endswith(basename):
479 result_decoded[loc] = os.path.join(result_decoded[loc], basename)
472 else: 480 else:
473 return None 481 return None
474 result = encodeurl(result_decoded) 482 result = encodeurl(result_decoded)
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index e8ddf2c..0a708ac 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -142,6 +142,10 @@ class Git(FetchMethod):
142 ud.proto = 'file' 142 ud.proto = 'file'
143 else: 143 else:
144 ud.proto = "git" 144 ud.proto = "git"
145 if ud.host == "github.com" and ud.proto == "git":
146 # github stopped supporting git protocol
147 # https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
148 ud.proto = "https"
145 149
146 if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'): 150 if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
147 raise bb.fetch2.ParameterError("Invalid protocol type", ud.url) 151 raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
diff --git a/bitbake/lib/bb/fetch2/perforce.py b/bitbake/lib/bb/fetch2/perforce.py
index e2a41a4..3b6fa4b 100644
--- a/bitbake/lib/bb/fetch2/perforce.py
+++ b/bitbake/lib/bb/fetch2/perforce.py
@@ -134,7 +134,7 @@ class Perforce(FetchMethod):
134 134
135 ud.setup_revisions(d) 135 ud.setup_revisions(d)
136 136
137 ud.localfile = d.expand('%s_%s_%s_%s.tar.gz' % (cleanedhost, cleanedpath, cleandedmodule, ud.revision)) 137 ud.localfile = d.expand('%s_%s_%s_%s.tar.gz' % (cleanedhost, cleanedpath, cleanedmodule, ud.revision))
138 138
139 def _buildp4command(self, ud, d, command, depot_filename=None): 139 def _buildp4command(self, ud, d, command, depot_filename=None):
140 """ 140 """
diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py
index 349891e..fd9b304 100644
--- a/bitbake/lib/bb/fetch2/wget.py
+++ b/bitbake/lib/bb/fetch2/wget.py
@@ -356,7 +356,7 @@ class Wget(FetchMethod):
356 except (TypeError, ImportError, IOError, netrc.NetrcParseError): 356 except (TypeError, ImportError, IOError, netrc.NetrcParseError):
357 pass 357 pass
358 358
359 with opener.open(r) as response: 359 with opener.open(r, timeout=30) as response:
360 pass 360 pass
361 except urllib.error.URLError as e: 361 except urllib.error.URLError as e:
362 if try_again: 362 if try_again:
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 10511a0..cd10da8 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -926,38 +926,36 @@ class RunQueueData:
926 # 926 #
927 # Once all active tasks are marked, prune the ones we don't need. 927 # Once all active tasks are marked, prune the ones we don't need.
928 928
929 delcount = {}
930 for tid in list(self.runtaskentries.keys()):
931 if tid not in runq_build:
932 delcount[tid] = self.runtaskentries[tid]
933 del self.runtaskentries[tid]
934
935 # Handle --runall 929 # Handle --runall
936 if self.cooker.configuration.runall: 930 if self.cooker.configuration.runall:
937 # re-run the mark_active and then drop unused tasks from new list 931 # re-run the mark_active and then drop unused tasks from new list
932 reduced_tasklist = set(self.runtaskentries.keys())
933 for tid in list(self.runtaskentries.keys()):
934 if tid not in runq_build:
935 reduced_tasklist.remove(tid)
938 runq_build = {} 936 runq_build = {}
939 937
940 for task in self.cooker.configuration.runall: 938 for task in self.cooker.configuration.runall:
941 if not task.startswith("do_"): 939 if not task.startswith("do_"):
942 task = "do_{0}".format(task) 940 task = "do_{0}".format(task)
943 runall_tids = set() 941 runall_tids = set()
944 for tid in list(self.runtaskentries): 942 for tid in reduced_tasklist:
945 wanttid = "{0}:{1}".format(fn_from_tid(tid), task) 943 wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
946 if wanttid in delcount:
947 self.runtaskentries[wanttid] = delcount[wanttid]
948 if wanttid in self.runtaskentries: 944 if wanttid in self.runtaskentries:
949 runall_tids.add(wanttid) 945 runall_tids.add(wanttid)
950 946
951 for tid in list(runall_tids): 947 for tid in list(runall_tids):
952 mark_active(tid,1) 948 mark_active(tid, 1)
953 if self.cooker.configuration.force: 949 if self.cooker.configuration.force:
954 invalidate_task(tid, False) 950 invalidate_task(tid, False)
955 951
956 for tid in list(self.runtaskentries.keys()): 952 delcount = set()
957 if tid not in runq_build: 953 for tid in list(self.runtaskentries.keys()):
958 delcount[tid] = self.runtaskentries[tid] 954 if tid not in runq_build:
959 del self.runtaskentries[tid] 955 delcount.add(tid)
956 del self.runtaskentries[tid]
960 957
958 if self.cooker.configuration.runall:
961 if len(self.runtaskentries) == 0: 959 if len(self.runtaskentries) == 0:
962 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) 960 bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets)))
963 961
@@ -971,16 +969,16 @@ class RunQueueData:
971 for task in self.cooker.configuration.runonly: 969 for task in self.cooker.configuration.runonly:
972 if not task.startswith("do_"): 970 if not task.startswith("do_"):
973 task = "do_{0}".format(task) 971 task = "do_{0}".format(task)
974 runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task } 972 runonly_tids = [k for k in self.runtaskentries.keys() if taskname_from_tid(k) == task]
975 973
976 for tid in list(runonly_tids): 974 for tid in runonly_tids:
977 mark_active(tid,1) 975 mark_active(tid, 1)
978 if self.cooker.configuration.force: 976 if self.cooker.configuration.force:
979 invalidate_task(tid, False) 977 invalidate_task(tid, False)
980 978
981 for tid in list(self.runtaskentries.keys()): 979 for tid in list(self.runtaskentries.keys()):
982 if tid not in runq_build: 980 if tid not in runq_build:
983 delcount[tid] = self.runtaskentries[tid] 981 delcount.add(tid)
984 del self.runtaskentries[tid] 982 del self.runtaskentries[tid]
985 983
986 if len(self.runtaskentries) == 0: 984 if len(self.runtaskentries) == 0:
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index c20f746..a85ebdf 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -431,6 +431,11 @@ class MirrorUriTest(FetcherTest):
431 ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://git.openembedded.org/bitbake;protocol=http") 431 ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://git.openembedded.org/bitbake;protocol=http")
432 : "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http", 432 : "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
433 433
434 ("git://user1@someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://user2@git.openembedded.org/bitbake;protocol=http")
435 : "git://user2@git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
436
437 ("gitsm://git.qemu.org/git/seabios.git/;protocol=https;name=roms/seabios;subpath=roms/seabios;bareclone=1;nobranch=1;rev=1234567890123456789012345678901234567890", "gitsm://.*/.*", "http://petalinux.xilinx.com/sswreleases/rel-v${XILINX_VER_MAIN}/downloads") : "http://petalinux.xilinx.com/sswreleases/rel-v%24%7BXILINX_VER_MAIN%7D/downloads/git2_git.qemu.org.git.seabios.git..tar.gz",
438
434 #Renaming files doesn't work 439 #Renaming files doesn't work
435 #("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz" 440 #("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"
436 #("file://sstate-xyz.tgz", "file://.*/.*", "file:///somewhere/1234/sstate-cache") : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz", 441 #("file://sstate-xyz.tgz", "file://.*/.*", "file:///somewhere/1234/sstate-cache") : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
@@ -491,7 +496,7 @@ class GitDownloadDirectoryNamingTest(FetcherTest):
491 super(GitDownloadDirectoryNamingTest, self).setUp() 496 super(GitDownloadDirectoryNamingTest, self).setUp()
492 self.recipe_url = "git://git.openembedded.org/bitbake" 497 self.recipe_url = "git://git.openembedded.org/bitbake"
493 self.recipe_dir = "git.openembedded.org.bitbake" 498 self.recipe_dir = "git.openembedded.org.bitbake"
494 self.mirror_url = "git://github.com/openembedded/bitbake.git" 499 self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
495 self.mirror_dir = "github.com.openembedded.bitbake.git" 500 self.mirror_dir = "github.com.openembedded.bitbake.git"
496 501
497 self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40') 502 self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
@@ -539,7 +544,7 @@ class TarballNamingTest(FetcherTest):
539 super(TarballNamingTest, self).setUp() 544 super(TarballNamingTest, self).setUp()
540 self.recipe_url = "git://git.openembedded.org/bitbake" 545 self.recipe_url = "git://git.openembedded.org/bitbake"
541 self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz" 546 self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz"
542 self.mirror_url = "git://github.com/openembedded/bitbake.git" 547 self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
543 self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz" 548 self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz"
544 549
545 self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1') 550 self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1')
@@ -573,7 +578,7 @@ class GitShallowTarballNamingTest(FetcherTest):
573 super(GitShallowTarballNamingTest, self).setUp() 578 super(GitShallowTarballNamingTest, self).setUp()
574 self.recipe_url = "git://git.openembedded.org/bitbake" 579 self.recipe_url = "git://git.openembedded.org/bitbake"
575 self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz" 580 self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz"
576 self.mirror_url = "git://github.com/openembedded/bitbake.git" 581 self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
577 self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz" 582 self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz"
578 583
579 self.d.setVar('BB_GIT_SHALLOW', '1') 584 self.d.setVar('BB_GIT_SHALLOW', '1')
@@ -875,17 +880,25 @@ class FetcherNetworkTest(FetcherTest):
875 @skipIfNoNetwork() 880 @skipIfNoNetwork()
876 def test_fetch_premirror_specify_downloadfilename_regex_uri(self): 881 def test_fetch_premirror_specify_downloadfilename_regex_uri(self):
877 self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake/") 882 self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake/")
878 fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d) 883 fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
879 fetcher.download() 884 fetcher.download()
880 self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749) 885 self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
881 886
882 @skipIfNoNetwork() 887 @skipIfNoNetwork()
883 # BZ13039 888 # BZ13039
884 def test_fetch_premirror_specify_downloadfilename_specific_uri(self): 889 def test_fetch_premirror_specify_downloadfilename_specific_uri(self):
885 self.d.setVar("PREMIRRORS", "http://invalid.yoctoproject.org/releases/bitbake https://downloads.yoctoproject.org/releases/bitbake") 890 self.d.setVar("PREMIRRORS", "http://invalid.yoctoproject.org/releases/bitbake https://downloads.yoctoproject.org/releases/bitbake")
886 fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d) 891 fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
887 fetcher.download() 892 fetcher.download()
888 self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749) 893 self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
894
895 @skipIfNoNetwork()
896 def test_fetch_premirror_use_downloadfilename_to_fetch(self):
897 # Ensure downloadfilename is used when fetching from premirror.
898 self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake")
899 fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
900 fetcher.download()
901 self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
889 902
890 @skipIfNoNetwork() 903 @skipIfNoNetwork()
891 def gitfetcher(self, url1, url2): 904 def gitfetcher(self, url1, url2):
@@ -996,7 +1009,7 @@ class FetcherNetworkTest(FetcherTest):
996 def test_git_submodule_dbus_broker(self): 1009 def test_git_submodule_dbus_broker(self):
997 # The following external repositories have show failures in fetch and unpack operations 1010 # The following external repositories have show failures in fetch and unpack operations
998 # We want to avoid regressions! 1011 # We want to avoid regressions!
999 url = "gitsm://github.com/bus1/dbus-broker;protocol=git;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main" 1012 url = "gitsm://github.com/bus1/dbus-broker;protocol=https;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main"
1000 fetcher = bb.fetch.Fetch([url], self.d) 1013 fetcher = bb.fetch.Fetch([url], self.d)
1001 fetcher.download() 1014 fetcher.download()
1002 # Previous cwd has been deleted 1015 # Previous cwd has been deleted
@@ -1012,7 +1025,7 @@ class FetcherNetworkTest(FetcherTest):
1012 1025
1013 @skipIfNoNetwork() 1026 @skipIfNoNetwork()
1014 def test_git_submodule_CLI11(self): 1027 def test_git_submodule_CLI11(self):
1015 url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf" 1028 url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
1016 fetcher = bb.fetch.Fetch([url], self.d) 1029 fetcher = bb.fetch.Fetch([url], self.d)
1017 fetcher.download() 1030 fetcher.download()
1018 # Previous cwd has been deleted 1031 # Previous cwd has been deleted
@@ -1027,12 +1040,12 @@ class FetcherNetworkTest(FetcherTest):
1027 @skipIfNoNetwork() 1040 @skipIfNoNetwork()
1028 def test_git_submodule_update_CLI11(self): 1041 def test_git_submodule_update_CLI11(self):
1029 """ Prevent regression on update detection not finding missing submodule, or modules without needed commits """ 1042 """ Prevent regression on update detection not finding missing submodule, or modules without needed commits """
1030 url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714" 1043 url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
1031 fetcher = bb.fetch.Fetch([url], self.d) 1044 fetcher = bb.fetch.Fetch([url], self.d)
1032 fetcher.download() 1045 fetcher.download()
1033 1046
1034 # CLI11 that pulls in a newer nlohmann-json 1047 # CLI11 that pulls in a newer nlohmann-json
1035 url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca" 1048 url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
1036 fetcher = bb.fetch.Fetch([url], self.d) 1049 fetcher = bb.fetch.Fetch([url], self.d)
1037 fetcher.download() 1050 fetcher.download()
1038 # Previous cwd has been deleted 1051 # Previous cwd has been deleted
@@ -1046,7 +1059,7 @@ class FetcherNetworkTest(FetcherTest):
1046 1059
1047 @skipIfNoNetwork() 1060 @skipIfNoNetwork()
1048 def test_git_submodule_aktualizr(self): 1061 def test_git_submodule_aktualizr(self):
1049 url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=git;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44" 1062 url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=https;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
1050 fetcher = bb.fetch.Fetch([url], self.d) 1063 fetcher = bb.fetch.Fetch([url], self.d)
1051 fetcher.download() 1064 fetcher.download()
1052 # Previous cwd has been deleted 1065 # Previous cwd has been deleted
@@ -1066,7 +1079,7 @@ class FetcherNetworkTest(FetcherTest):
1066 """ Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """ 1079 """ Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
1067 1080
1068 # This repository also has submodules where the module (name), path and url do not align 1081 # This repository also has submodules where the module (name), path and url do not align
1069 url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699" 1082 url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699"
1070 fetcher = bb.fetch.Fetch([url], self.d) 1083 fetcher = bb.fetch.Fetch([url], self.d)
1071 fetcher.download() 1084 fetcher.download()
1072 # Previous cwd has been deleted 1085 # Previous cwd has been deleted
@@ -1124,7 +1137,7 @@ class SVNTest(FetcherTest):
1124 1137
1125 bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir) 1138 bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir)
1126 # Github will emulate SVN. Use this to check if we're downloding... 1139 # Github will emulate SVN. Use this to check if we're downloding...
1127 bb.process.run("svn propset svn:externals 'bitbake svn://vcs.pcre.org/pcre2/code' .", 1140 bb.process.run("svn propset svn:externals 'bitbake https://github.com/PhilipHazel/pcre2.git' .",
1128 cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) 1141 cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
1129 bb.process.run("svn commit --non-interactive -m 'Add external'", 1142 bb.process.run("svn commit --non-interactive -m 'Add external'",
1130 cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) 1143 cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
@@ -1242,7 +1255,7 @@ class FetchLatestVersionTest(FetcherTest):
1242 1255
1243 test_git_uris = { 1256 test_git_uris = {
1244 # version pattern "X.Y.Z" 1257 # version pattern "X.Y.Z"
1245 ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4", "9b1db6b8060bd00b121a692f942404a24ae2960f", "") 1258 ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4;protocol=https", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
1246 : "1.99.4", 1259 : "1.99.4",
1247 # version pattern "vX.Y" 1260 # version pattern "vX.Y"
1248 # mirror of git.infradead.org since network issues interfered with testing 1261 # mirror of git.infradead.org since network issues interfered with testing
@@ -1269,9 +1282,9 @@ class FetchLatestVersionTest(FetcherTest):
1269 : "0.4.3", 1282 : "0.4.3",
1270 ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))") 1283 ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))")
1271 : "11.0.0", 1284 : "11.0.0",
1272 ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))") 1285 ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot;protocol=https", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
1273 : "1.3.59", 1286 : "1.3.59",
1274 ("remake", "git://github.com/rocky/remake.git", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))") 1287 ("remake", "git://github.com/rocky/remake.git;protocol=https", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
1275 : "3.82+dbg0.9", 1288 : "3.82+dbg0.9",
1276 } 1289 }
1277 1290
@@ -2058,7 +2071,7 @@ class GitShallowTest(FetcherTest):
2058 2071
2059 @skipIfNoNetwork() 2072 @skipIfNoNetwork()
2060 def test_bitbake(self): 2073 def test_bitbake(self):
2061 self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir) 2074 self.git('remote add --mirror=fetch origin https://github.com/openembedded/bitbake', cwd=self.srcdir)
2062 self.git('config core.bare true', cwd=self.srcdir) 2075 self.git('config core.bare true', cwd=self.srcdir)
2063 self.git('fetch', cwd=self.srcdir) 2076 self.git('fetch', cwd=self.srcdir)
2064 2077
diff --git a/bitbake/lib/bb/tests/runqueue.py b/bitbake/lib/bb/tests/runqueue.py
index 3d51779..4f335b8 100644
--- a/bitbake/lib/bb/tests/runqueue.py
+++ b/bitbake/lib/bb/tests/runqueue.py
@@ -361,7 +361,7 @@ class RunQueueTests(unittest.TestCase):
361 361
362 def shutdown(self, tempdir): 362 def shutdown(self, tempdir):
363 # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup 363 # Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup
364 while os.path.exists(tempdir + "/hashserve.sock"): 364 while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal")):
365 time.sleep(0.5) 365 time.sleep(0.5)
366 366
367 367
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index 7063491..d890ea8 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -451,6 +451,10 @@ def lockfile(name, shared=False, retry=True, block=False):
451 consider the possibility of sending a signal to the process to break 451 consider the possibility of sending a signal to the process to break
452 out - at which point you want block=True rather than retry=True. 452 out - at which point you want block=True rather than retry=True.
453 """ 453 """
454 if len(name) > 255:
455 root, ext = os.path.splitext(name)
456 name = root[:255 - len(ext)] + ext
457
454 dirname = os.path.dirname(name) 458 dirname = os.path.dirname(name)
455 mkdirhier(dirname) 459 mkdirhier(dirname)
456 460
@@ -487,7 +491,7 @@ def lockfile(name, shared=False, retry=True, block=False):
487 return lf 491 return lf
488 lf.close() 492 lf.close()
489 except OSError as e: 493 except OSError as e:
490 if e.errno == errno.EACCES: 494 if e.errno == errno.EACCES or e.errno == errno.ENAMETOOLONG:
491 logger.error("Unable to acquire lock '%s', %s", 495 logger.error("Unable to acquire lock '%s', %s",
492 e.strerror, name) 496 e.strerror, name)
493 sys.exit(1) 497 sys.exit(1)
diff --git a/documentation/conf.py b/documentation/conf.py
index 8e08479..104b49e 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -16,7 +16,7 @@ import os
16import sys 16import sys
17import datetime 17import datetime
18 18
19current_version = "dev" 19current_version = "3.4"
20 20
21# String used in sidebar 21# String used in sidebar
22version = 'Version: ' + current_version 22version = 'Version: ' + current_version
diff --git a/documentation/migration-guides/migration-3.1.rst b/documentation/migration-guides/migration-3.1.rst
index 80b8f6b..a7614e5 100644
--- a/documentation/migration-guides/migration-3.1.rst
+++ b/documentation/migration-guides/migration-3.1.rst
@@ -55,8 +55,9 @@ Reproducible builds now enabled by default
55 55
56In order to avoid unnecessary differences in output files (aiding binary 56In order to avoid unnecessary differences in output files (aiding binary
57reproducibility), the Poky distribution configuration 57reproducibility), the Poky distribution configuration
58(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by 58(``DISTRO = "poky"``) now inherits the
59default. 59:ref:`reproducible-build <ref-classes-reproducible-build>` class
60by default.
60 61
61.. _migration-3.1-ptest-feature-impact: 62.. _migration-3.1-ptest-feature-impact:
62 63
diff --git a/documentation/migration-guides/migration-3.4.rst b/documentation/migration-guides/migration-3.4.rst
index e83e936..6105015 100644
--- a/documentation/migration-guides/migration-3.4.rst
+++ b/documentation/migration-guides/migration-3.4.rst
@@ -7,17 +7,18 @@ Project 3.4 Release (codename "honister") from the prior release.
7Override syntax changes 7Override syntax changes
8----------------------- 8-----------------------
9 9
10This release requires changes to the metadata to indicate where overrides are 10In this release, the ``:`` character replaces the use of ``_`` to
11being used in variable key names. This is done with the ``:`` character replacing 11refer to an override, most commonly when making a conditional assignment
12the use of ``_`` previously. This means that an entry like:: 12of a variable. This means that an entry like::
13 13
14 SRC_URI_qemux86 = "file://somefile" 14 SRC_URI_qemux86 = "file://somefile"
15 15
16becomes:: 16now becomes::
17 17
18 SRC_URI:qemux86 = "file://somefile" 18 SRC_URI:qemux86 = "file://somefile"
19 19
20since ``qemux86`` is an override. This applies to any use of override syntax so:: 20since ``qemux86`` is an override. This applies to any use of override
21syntax, so the following::
21 22
22 SRC_URI_append = " file://somefile" 23 SRC_URI_append = " file://somefile"
23 SRC_URI_append_qemux86 = " file://somefile2" 24 SRC_URI_append_qemux86 = " file://somefile2"
@@ -29,7 +30,7 @@ since ``qemux86`` is an override. This applies to any use of override syntax so:
29 SRCREV_pn-bash = "abc" 30 SRCREV_pn-bash = "abc"
30 BB_TASK_NICE_LEVEL_task-testimage = '0' 31 BB_TASK_NICE_LEVEL_task-testimage = '0'
31 32
32becomes:: 33would now become::
33 34
34 SRC_URI:append = " file://somefile" 35 SRC_URI:append = " file://somefile"
35 SRC_URI:append:qemux86 = " file://somefile2" 36 SRC_URI:append:qemux86 = " file://somefile2"
@@ -63,8 +64,8 @@ suffix to variables in ``layer.conf`` files such as :term:`BBFILE_PATTERN`,
63may be the same as a :term:`DISTRO` override causing some confusion. We do 64may be the same as a :term:`DISTRO` override causing some confusion. We do
64plan to try and improve consistency as these issues are identified. 65plan to try and improve consistency as these issues are identified.
65 66
66To help with migration of layers there is a script in OE-Core. Once configured 67To help with migration of layers, a script has been provided in OE-Core.
67with the overrides used by a layer, this can be run as:: 68Once configured with the overrides used by a layer, this can be run as::
68 69
69 <oe-core>/scripts/contrib/convert-overrides.py <layerdir> 70 <oe-core>/scripts/contrib/convert-overrides.py <layerdir>
70 71
@@ -74,10 +75,198 @@ with the overrides used by a layer, this can be run as::
74 expected to handle every case. In particular, it needs to be told which overrides 75 expected to handle every case. In particular, it needs to be told which overrides
75 the layer uses (usually machine and distro names/overrides) and the result should 76 the layer uses (usually machine and distro names/overrides) and the result should
76 be carefully checked since it can be a little enthusiastic and will convert 77 be carefully checked since it can be a little enthusiastic and will convert
77 references to ``_append``, ``_remove`` and ``_prepend`` in function and variables names. 78 references to ``_append``, ``_remove`` and ``_prepend`` in function and variable
79 names.
78 80
79For reference, this conversion is important as it allows BitBake to know what is 81For reference, this conversion is important as it allows BitBake to more reliably
80an override and what is not. This should allow us to proceed with other syntax 82determine what is an override and what is not, as underscores are also used in
81improvements and simplifications for usability. It also means bitbake no longer 83variable names without intending to be overrides. This should allow us to proceed
82has to guess and maintain large lookup lists just in case ``functionname`` in 84with other syntax improvements and simplifications for usability. It also means
83``my_functionname`` is an override and this should improve efficiency. 85BitBake no longer has to guess and maintain large lookup lists just in case
86e.g. ``functionname`` in ``my_functionname`` is an override, and thus should improve
87efficiency.
88
89
90New host dependencies
91---------------------
92
93The ``lz4c``, ``pzstd`` and ``zstd`` commands are now required to be
94installed on the build host to support LZ4 and Zstandard compression
95functionality. These are typically provided by ``lz4`` and ``zstd``
96packages in most Linux distributions. Alternatively they are available
97as part of ``buildtools-tarball`` if your distribution does not provide
98them. For more information see
99:ref:`ref-manual/system-requirements:required packages for the build host`.
100
101
102Removed recipes
103---------------
104
105The following recipes have been removed in this release:
106
107- ``assimp``: problematic from a licensing perspective and no longer
108 needed by anything else
109- ``clutter-1.0``: legacy component moved to meta-gnome
110- ``clutter-gst-3.0``: legacy component moved to meta-gnome
111- ``clutter-gtk-1.0``: legacy component moved to meta-gnome
112- ``cogl-1.0``: legacy component moved to meta-gnome
113- ``core-image-clutter``: removed along with clutter
114- ``linux-yocto``: removed version 5.4 recipes (5.14 and 5.10 still
115 provided)
116- ``mklibs-native``: not actively tested and upstream mklibs still
117 requires Python 2
118- ``mx-1.0``: obsolete (last release 2012) and isn't used by anything in
119 any known layer
120- ``packagegroup-core-clutter``: removed along with clutter
121
122
123Removed classes
124---------------
125
126- ``clutter``: moved to meta-gnome along with clutter itself
127- ``image-mklibs``: not actively tested and upstream mklibs still
128 requires Python 2
129- ``meta``: no longer useful. Recipes that need to skip installing
130 packages should inherit ``nopackages`` instead.
131
132
133Prelinking disabled by default
134------------------------------
135
136Recent tests have shown that prelinking works only when PIE is not
137enabled (see `here <https://rlbl.me/prelink-1>`__ and `here <https://rlbl.me/prelink-2>`__),
138and as PIE is both a desirable security feature, and the only
139configuration provided and tested by the Yocto Project, there is
140simply no sense in continuing to enable prelink.
141
142There's also a concern that no one is maintaining the code, and there
143are open bugs (including `this serious one <https://bugzilla.yoctoproject.org/show_bug.cgi?id=14429>`__).
144Given that prelink does intricate address arithmetic and rewriting
145of binaries the best option is to disable the feature. It is recommended
146that you consider disabling this feature in your own configuration if
147it is currently enabled.
148
149
150Virtual runtime provides
151------------------------
152
153Recipes shouldn't use the ``virtual/`` string in :term:`RPROVIDES` and
154:term:`RDEPENDS` - it is confusing because ``virtual/`` has no special
155meaning in :term:`RPROVIDES` and :term:`RDEPENDS` (unlike in the
156corresponding build-time :term:`PROVIDES` and :term:`DEPENDS`).
157
158
159Tune files moved to architecture-specific directories
160-----------------------------------------------------
161
162The tune files found in ``conf/machine/include`` have now been moved
163into their respective architecture name directories under that same
164location; e.g. x86 tune files have moved into an ``x86`` subdirectory,
165MIPS tune files have moved into a ``mips`` subdirectory, etc.
166The ARM tunes have an extra level (``armv8a``, ``armv8m``, etc.) and
167some have been renamed to make them uniform with the rest of the tunes.
168See `this commit <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=1d381f21f5f13aa0c4e1a45683ed656ebeedd37d>`__
169for reference.
170
171If you have any references to tune files (e.g. in custom machine
172configuration files) they will need to be updated.
173
174
175Extensible SDK host extension
176-----------------------------
177
178For a normal SDK, some layers append to :term:`TOOLCHAIN_HOST_TASK`
179unconditionally which is fine, until the eSDK tries to override the
180variable to its own values. Instead of installing packages specified
181in this variable it uses native recipes instead - a very different
182approach. This has led to confusing errors when binaries are added
183to the SDK but not relocated.
184
185To avoid these issues, a new :term:`TOOLCHAIN_HOST_TASK_ESDK` variable has
186been created. If you wish to extend what is installed in the host
187portion of the eSDK then you will now need to set this variable.
188
189
190Package/recipe splitting
191------------------------
192
193- ``perl-cross`` has been split out from the main ``perl`` recipe to
194 its own ``perlcross`` recipe for maintenance reasons. If you have
195 bbappends for the perl recipe then these may need extending.
196
197- The ``wayland`` recipe now packages its binaries in a
198 ``wayland-tools`` package rather than putting them into
199 ``wayland-dev``.
200
201- Xwayland has been split out of the xserver-xorg tree and thus is now
202 in its own ``xwayland`` recipe. If you need Xwayland in your image
203 then you may now need to add it explicitly.
204
205- The ``rpm`` package no longer has ``rpm-build`` in its :term:`RRECOMMENDS`;
206 if by chance you still need rpm package building functionality in
207 your image and you have not already done so then you should add
208 ``rpm-build`` to your image explicitly.
209
210- The Python ``statistics`` standard module is now packaged in its own
211 ``python3-statistics`` package instead of ``python3-misc`` as
212 previously.
213
214
215Image / SDK generation changes
216------------------------------
217
218- Recursive dependencies on the ``do_build`` task are now disabled when
219 building SDKs. These are generally not needed; in the unlikely event
220 that you do encounter problems then it will probably be as a result of
221 missing explicit dependencies that need to be added.
222
223- Errors during "complementary" package installation (e.g. for ``*-dbg``
224 and ``*-dev`` packages) during image construction are no longer
225 ignored. Historically some of these packages had installation problems,
226 that is no longer the case. In the unlikely event that you see errors
227 as a result, you will need to fix the installation/packaging issues.
228
229- When building an image, only packages that will be used in building
230 the image (i.e. the first entry in :term:`PACKAGE_CLASSES`) will be
231 produced if multiple package types are enabled (which is not a typical
232 configuration). If in your CI system you need to have the original
233 behaviour, use ``bitbake --runall build <target>``.
234
235- The ``-lic`` package is no longer automatically added to
236 :term:`RRECOMMENDS` for every other package when
237 :term:`LICENSE_CREATE_PACKAGE` is set to "1". If you wish all license
238 packages to be installed corresponding to packages in your image, then
239 you should instead add the new ``lic-pkgs`` feature to
240 :term:`IMAGE_FEATURES`.
241
242
243Miscellaneous
244-------------
245
246- Certificates are now properly checked when bitbake fetches sources
247 over HTTPS. If you receive errors as a result for your custom recipes,
248 you will need to use a mirror or address the issue with the operators
249 of the server in question.
250
251- ``avahi`` has had its GTK+ support disabled by default. If you wish to
252 re-enable it, set ``AVAHI_GTK = "gtk3"`` in a bbappend for the
253 ``avahi`` recipe or in your custom distro configuration file.
254
255- Setting the :term:`BUILD_REPRODUCIBLE_BINARIES` variable to "0" no longer
256 uses a strangely old fallback date of April 2011, it instead disables
257 building reproducible binaries as you would logically expect.
258
259- Setting noexec/nostamp/fakeroot varflags to any value besides "1" will
260 now trigger a warning. These should be either set to "1" to enable, or
261 not set at all to disable.
262
263- The previously deprecated ``COMPRESS_CMD`` and
264 ``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use
265 ``CONVERSION_CMD`` and :term:`CVE_CHECK_WHITELIST` respectively
266 instead.
267
268- The obsolete ``oe_machinstall`` function previously provided in the
269 :ref:`utils <ref-classes-utils>` class has been removed. For
270 machine-specific installation it is recommended that you use the
271 built-in override support in the fetcher or overrides in general
272 instead.
diff --git a/documentation/migration-guides/migration-general.rst b/documentation/migration-guides/migration-general.rst
index 182482e..9eecf69 100644
--- a/documentation/migration-guides/migration-general.rst
+++ b/documentation/migration-guides/migration-general.rst
@@ -1,5 +1,17 @@
1Introduction
2============
3
4This guide provides a list of the backwards-incompatible changes you
5might need to adapt to in your existing Yocto Project configuration
6when upgrading to a new release.
7
8If you are upgrading over multiple releases, you will need to follow
9the sections from the version following the one you were previously
10using up to the new version you are upgrading to.
11
12
1General Migration Considerations 13General Migration Considerations
2================================ 14--------------------------------
3 15
4Some considerations are not tied to a specific Yocto Project release. 16Some considerations are not tied to a specific Yocto Project release.
5This section presents information you should consider when migrating to 17This section presents information you should consider when migrating to
@@ -26,16 +38,17 @@ any new Yocto Project release.
26 38
27 The better solution (where practical) is to use append files 39 The better solution (where practical) is to use append files
28 (``*.bbappend``) to capture any customizations you want to make to a 40 (``*.bbappend``) to capture any customizations you want to make to a
29 recipe. Doing so, isolates your changes from the main recipe making 41 recipe. Doing so isolates your changes from the main recipe, making
30 them much more manageable. However, sometimes it is not practical to 42 them much more manageable. However, sometimes it is not practical to
31 use an append file. A good example of this is when introducing a 43 use an append file. A good example of this is when introducing a
32 newer or older version of a recipe in another layer. 44 newer or older version of a recipe in another layer.
33 45
46
34- *Updating Append Files*: 47- *Updating Append Files*:
35 48
36 Since append files generally only contain 49 Since append (``.bbappend``) files generally only contain
37 your customizations, they often do not need to be adjusted for new 50 your customizations, they often do not need to be adjusted for new
38 releases. However, if the ``.bbappend`` file is specific to a 51 releases. However, if the append file is specific to a
39 particular version of the recipe (i.e. its name does not use the % 52 particular version of the recipe (i.e. its name does not use the %
40 wildcard) and the version of the recipe to which it is appending has 53 wildcard) and the version of the recipe to which it is appending has
41 changed, then you will at a minimum need to rename the append file to 54 changed, then you will at a minimum need to rename the append file to
@@ -50,5 +63,10 @@ any new Yocto Project release.
50 this is the case and assuming the patch is still needed, you must 63 this is the case and assuming the patch is still needed, you must
51 modify the patch file so that it does apply. 64 modify the patch file so that it does apply.
52 65
66 .. tip::
67
68 You can list all append files used in your configuration by running:
69
70 bitbake-layers show-appends
53 71
54 72
diff --git a/documentation/poky.yaml b/documentation/poky.yaml
index feb792f..392e3bd 100644
--- a/documentation/poky.yaml
+++ b/documentation/poky.yaml
@@ -1,12 +1,12 @@
1DISTRO : "3.3.3" 1DISTRO : "3.4"
2DISTRO_NAME_NO_CAP : "hardknott" 2DISTRO_NAME_NO_CAP : "honister"
3DISTRO_NAME : "Hardknott" 3DISTRO_NAME : "Honister"
4DISTRO_NAME_NO_CAP_MINUS_ONE : "gatesgarth" 4DISTRO_NAME_NO_CAP_MINUS_ONE : "hardknott"
5DISTRO_NAME_NO_CAP_LTS : "dunfell" 5DISTRO_NAME_NO_CAP_LTS : "dunfell"
6YOCTO_DOC_VERSION : "3.3.3" 6YOCTO_DOC_VERSION : "3.4"
7YOCTO_DOC_VERSION_MINUS_ONE : "3.2.4" 7YOCTO_DOC_VERSION_MINUS_ONE : "3.3.4"
8DISTRO_REL_TAG : "yocto-3.3.3" 8DISTRO_REL_TAG : "yocto-3.4"
9POKYVERSION : "25.0.3" 9POKYVERSION : "26.0.0"
10YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;" 10YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
11YOCTO_DL_URL : "https://downloads.yoctoproject.org" 11YOCTO_DL_URL : "https://downloads.yoctoproject.org"
12YOCTO_AB_URL : "https://autobuilder.yoctoproject.org" 12YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
@@ -14,23 +14,24 @@ YOCTO_RELEASE_DL_URL : "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;"
14UBUNTU_HOST_PACKAGES_ESSENTIAL : "gawk wget git diffstat unzip texinfo gcc \ 14UBUNTU_HOST_PACKAGES_ESSENTIAL : "gawk wget git diffstat unzip texinfo gcc \
15 build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ 15 build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
16 xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ 16 xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
17 pylint3 xterm python3-subunit mesa-common-dev" 17 pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool"
18FEDORA_HOST_PACKAGES_ESSENTIAL : "gawk make wget tar bzip2 gzip python3 unzip perl patch \ 18FEDORA_HOST_PACKAGES_ESSENTIAL : "gawk make wget tar bzip2 gzip python3 unzip perl patch \
19 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ 19 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
20 ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \ 20 ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
21 python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \ 21 python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \
22 python3-jinja2 SDL-devel xterm rpcgen mesa-libGL-devel perl-FindBin perl-File-Compare \ 22 python3-jinja2 SDL-devel xterm rpcgen mesa-libGL-devel perl-FindBin perl-File-Compare \
23 perl-File-Copy perl-locale" 23 perl-File-Copy perl-locale zstd lz4"
24OPENSUSE_HOST_PACKAGES_ESSENTIAL : "python gcc gcc-c++ git chrpath make wget python-xml \ 24OPENSUSE_HOST_PACKAGES_ESSENTIAL : "python gcc gcc-c++ git chrpath make wget python-xml \
25 diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \ 25 diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \
26 python3-pexpect xz which python3-Jinja2 Mesa-libEGL1 libSDL-devel xterm rpcgen Mesa-dri-devel 26 python3-pexpect xz which python3-Jinja2 Mesa-libEGL1 libSDL-devel xterm rpcgen Mesa-dri-devel \
27 zstd lz4
27 \n\ $ sudo pip3 install GitPython" 28 \n\ $ sudo pip3 install GitPython"
28CENTOS7_HOST_PACKAGES_ESSENTIAL : "-y epel-release 29CENTOS7_HOST_PACKAGES_ESSENTIAL : "-y epel-release
29 \n\ $ sudo yum makecache 30 \n\ $ sudo yum makecache
30 \n\ $ sudo yum install gawk make wget tar bzip2 gzip python3 unzip perl patch \ 31 \n\ $ sudo yum install gawk make wget tar bzip2 gzip python3 unzip perl patch \
31 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \ 32 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
32 perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python36-pip xz \ 33 perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python36-pip xz \
33 which SDL-devel xterm mesa-libGL-devel 34 which SDL-devel xterm mesa-libGL-devel zstd lz4
34 \n\ $ sudo pip3 install GitPython jinja2" 35 \n\ $ sudo pip3 install GitPython jinja2"
35CENTOS8_HOST_PACKAGES_ESSENTIAL : "-y epel-release 36CENTOS8_HOST_PACKAGES_ESSENTIAL : "-y epel-release
36 \n\ $ sudo dnf config-manager --set-enabled PowerTools 37 \n\ $ sudo dnf config-manager --set-enabled PowerTools
@@ -39,7 +40,7 @@ CENTOS8_HOST_PACKAGES_ESSENTIAL : "-y epel-release
39 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache \ 40 diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache \
40 socat perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip \ 41 socat perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip \
41 python3-GitPython python3-jinja2 python3-pexpect xz which SDL-devel xterm \ 42 python3-GitPython python3-jinja2 python3-pexpect xz which SDL-devel xterm \
42 rpcgen mesa-libGL-devel" 43 rpcgen mesa-libGL-devel zstd lz4"
43PIP3_HOST_PACKAGES_DOC : "$ sudo pip3 install sphinx sphinx_rtd_theme pyyaml" 44PIP3_HOST_PACKAGES_DOC : "$ sudo pip3 install sphinx sphinx_rtd_theme pyyaml"
44MIN_PYTHON_VERSION : "3.6.0" 45MIN_PYTHON_VERSION : "3.6.0"
45MIN_TAR_VERSION : "1.28" 46MIN_TAR_VERSION : "1.28"
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index ffaad9b..694e20e 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -590,19 +590,25 @@ Here is an example that uses this class in an image recipe::
590 " 590 "
591 591
592Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns 592Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
593passwords:: 593passwords. First on host, create the password hash::
594
595 mkpasswd -m sha256crypt tester01
596
597The resulting hash is set to a variable and used in ``useradd`` command parameters.
598Remember to escape the character ``$``::
594 599
595 inherit extrausers 600 inherit extrausers
601 PASSWD = "\$X\$ABC123\$A-Long-Hash"
596 EXTRA_USERS_PARAMS = "\ 602 EXTRA_USERS_PARAMS = "\
597 useradd -P tester01 tester-jim; \ 603 useradd -p '${PASSWD}' tester-jim; \
598 useradd -P tester01 tester-sue; \ 604 useradd -p '${PASSWD}' tester-sue; \
599 " 605 "
600 606
601Finally, here is an example that sets the root password to "1876*18":: 607Finally, here is an example that sets the root password::
602 608
603 inherit extrausers 609 inherit extrausers
604 EXTRA_USERS_PARAMS = "\ 610 EXTRA_USERS_PARAMS = "\
605 usermod -P 1876*18 root; \ 611 usermod -p '${PASSWD}' root; \
606 " 612 "
607 613
608.. _ref-classes-features_check: 614.. _ref-classes-features_check:
@@ -1494,15 +1500,6 @@ messages for various BitBake severity levels (i.e. ``bbplain``,
1494This class is enabled by default since it is inherited by the ``base`` 1500This class is enabled by default since it is inherited by the ``base``
1495class. 1501class.
1496 1502
1497.. _ref-classes-meta:
1498
1499``meta.bbclass``
1500================
1501
1502The ``meta`` class is inherited by recipes that do not build any output
1503packages themselves, but act as a "meta" target for building other
1504recipes.
1505
1506.. _ref-classes-metadata_scm: 1503.. _ref-classes-metadata_scm:
1507 1504
1508``metadata_scm.bbclass`` 1505``metadata_scm.bbclass``
@@ -2218,6 +2215,18 @@ commit, and log. From the information, report files using a JSON format
2218are created and stored in 2215are created and stored in
2219``${``\ :term:`LOG_DIR`\ ``}/error-report``. 2216``${``\ :term:`LOG_DIR`\ ``}/error-report``.
2220 2217
2218.. _ref-classes-reproducible-build:
2219
2220``reproducible_build.bbclass``
2221==============================
2222
2223The ``reproducible_build.bbclass`` class enables
2224:ref:`test-manual/reproducible-builds:reproducible builds` by computing
2225a :term:`SOURCE_DATE_EPOCH` value in each component's build environment, so
2226that the build is independent from the time when the component was built.
2227
2228Poky inherits this class by default since version 3.1.
2229
2221.. _ref-classes-rm-work: 2230.. _ref-classes-rm-work:
2222 2231
2223``rm_work.bbclass`` 2232``rm_work.bbclass``
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index d12e8df..5c15b6d 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -37,17 +37,13 @@ Supported Linux Distributions
37Currently, the Yocto Project is supported on the following 37Currently, the Yocto Project is supported on the following
38distributions: 38distributions:
39 39
40- Ubuntu 16.04 (LTS)
41
42- Ubuntu 18.04 (LTS) 40- Ubuntu 18.04 (LTS)
43 41
44- Ubuntu 20.04 (LTS) 42- Ubuntu 20.04 (LTS)
45 43
46- Fedora 30 44- Fedora 33
47
48- Fedora 31
49 45
50- Fedora 32 46- Fedora 34
51 47
52- CentOS 7.x 48- CentOS 7.x
53 49
@@ -61,6 +57,7 @@ distributions:
61 57
62- openSUSE Leap 15.1 58- openSUSE Leap 15.1
63 59
60- openSUSE Leap 15.2
64 61
65.. note:: 62.. note::
66 63
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 85f65ca..fd796fd 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -906,6 +906,19 @@ system and gives an overview of their function and contents.
906 :term:`TARGET_PREFIX` when building for 906 :term:`TARGET_PREFIX` when building for
907 ``native`` recipes. 907 ``native`` recipes.
908 908
909 :term:`BUILD_REPRODUCIBLE_BINARIES`
910 This variable allows the image building classes and recipes to produce
911 :ref:`reproducible binaries <test-manual/reproducible-builds:reproducible builds>`
912
913 If you inherit the
914 :ref:`reproducible-build <ref-classes-reproducible-build>` class,
915 which is the case of the Poky reference distribution, this sets this
916 variable to "1".
917
918 If your build inherits this classs but you wish to disable reproducible
919 binary generation for specific packages or images, you can set this
920 variable to "0" in the corresponding recipes.
921
909 :term:`BUILD_STRIP` 922 :term:`BUILD_STRIP`
910 Specifies the command to be used to strip debugging symbols from 923 Specifies the command to be used to strip debugging symbols from
911 binaries produced for the build host. By default, :term:`BUILD_STRIP` 924 binaries produced for the build host. By default, :term:`BUILD_STRIP`
@@ -6925,6 +6938,23 @@ system and gives an overview of their function and contents.
6925 You will see this variable referenced in the default values of 6938 You will see this variable referenced in the default values of
6926 ``FILES:${PN}-dev``. 6939 ``FILES:${PN}-dev``.
6927 6940
6941 :term:`SOURCE_DATE_EPOCH`
6942 This defines a date expressed in number of seconds since
6943 the UNIX EPOCH (01 Jan 1970 00:00:00 UTC), which is used by
6944 multiple build systems to force a timestamp in built binaries.
6945 Many upstream projects already support this variable.
6946
6947 You will find more details in the `official specifications
6948 <https://reproducible-builds.org/specs/source-date-epoch/>`__.
6949
6950 A value for each recipe is computed from the sources by
6951 the :ref:`reproducible-build <ref-classes-reproducible-build>` class.
6952
6953 If a recipe wishes to override the default behavior, it should set its
6954 own :term:`SOURCE_DATE_EPOCH` value::
6955
6956 SOURCE_DATE_EPOCH = "1613559011"
6957
6928 :term:`SOURCE_MIRROR_FETCH` 6958 :term:`SOURCE_MIRROR_FETCH`
6929 When you are fetching files to create a mirror of sources (i.e. 6959 When you are fetching files to create a mirror of sources (i.e.
6930 creating a source mirror), setting :term:`SOURCE_MIRROR_FETCH` to "1" in 6960 creating a source mirror), setting :term:`SOURCE_MIRROR_FETCH` to "1" in
@@ -8158,6 +8188,15 @@ system and gives an overview of their function and contents.
8158 information on setting up a cross-development environment, see the 8188 information on setting up a cross-development environment, see the
8159 :doc:`/sdk-manual/index` manual. 8189 :doc:`/sdk-manual/index` manual.
8160 8190
8191 Note that this variable applies to building an SDK, not an eSDK,
8192 in which case the term:`TOOLCHAIN_HOST_TASK_ESDK` setting should be
8193 used instead.
8194
8195 :term:`TOOLCHAIN_HOST_TASK_ESDK`
8196 This variable allows to extend what is installed in the host
8197 portion of an eSDK. This is similar to :term:`TOOLCHAIN_HOST_TASK`
8198 applying to SDKs.
8199
8161 :term:`TOOLCHAIN_OUTPUTNAME` 8200 :term:`TOOLCHAIN_OUTPUTNAME`
8162 This variable defines the name used for the toolchain output. The 8201 This variable defines the name used for the toolchain output. The
8163 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets 8202 :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class sets
diff --git a/documentation/releases.rst b/documentation/releases.rst
index bb881a2..a6c9a47 100644
--- a/documentation/releases.rst
+++ b/documentation/releases.rst
@@ -11,17 +11,8 @@ Release Series 3.3 (hardknott)
11- :yocto_docs:`3.3 Documentation </3.3>` 11- :yocto_docs:`3.3 Documentation </3.3>`
12- :yocto_docs:`3.3.1 Documentation </3.3.1>` 12- :yocto_docs:`3.3.1 Documentation </3.3.1>`
13- :yocto_docs:`3.3.2 Documentation </3.3.2>` 13- :yocto_docs:`3.3.2 Documentation </3.3.2>`
14- :yocto_docs:`3.3.2 Documentation </3.3.3>` 14- :yocto_docs:`3.3.3 Documentation </3.3.3>`
15 15- :yocto_docs:`3.3.4 Documentation </3.3.4>`
16*******************************
17Release Series 3.2 (gatesgarth)
18*******************************
19
20- :yocto_docs:`3.2 Documentation </3.2>`
21- :yocto_docs:`3.2.1 Documentation </3.2.1>`
22- :yocto_docs:`3.2.2 Documentation </3.2.2>`
23- :yocto_docs:`3.2.3 Documentation </3.2.3>`
24- :yocto_docs:`3.2.4 Documentation </3.2.4>`
25 16
26**************************** 17****************************
27Release Series 3.1 (dunfell) 18Release Series 3.1 (dunfell)
@@ -44,6 +35,16 @@ Release Series 3.1 (dunfell)
44 Outdated Release Manuals 35 Outdated Release Manuals
45========================== 36==========================
46 37
38*******************************
39Release Series 3.2 (gatesgarth)
40*******************************
41
42- :yocto_docs:`3.2 Documentation </3.2>`
43- :yocto_docs:`3.2.1 Documentation </3.2.1>`
44- :yocto_docs:`3.2.2 Documentation </3.2.2>`
45- :yocto_docs:`3.2.3 Documentation </3.2.3>`
46- :yocto_docs:`3.2.4 Documentation </3.2.4>`
47
47************************* 48*************************
48Release Series 3.0 (zeus) 49Release Series 3.0 (zeus)
49************************* 50*************************
diff --git a/documentation/sphinx-static/switchers.js b/documentation/sphinx-static/switchers.js
index 1e37b62..b15f5b3 100644
--- a/documentation/sphinx-static/switchers.js
+++ b/documentation/sphinx-static/switchers.js
@@ -2,8 +2,9 @@
2 'use strict'; 2 'use strict';
3 3
4 var all_versions = { 4 var all_versions = {
5 'dev': 'dev (3.4)', 5 'dev': 'dev (3.5)',
6 '3.3.3': '3.3.3', 6 '3.4': '3.4',
7 '3.3.4': '3.3.4',
7 '3.2.4': '3.2.4', 8 '3.2.4': '3.2.4',
8 '3.1.11': '3.1.11', 9 '3.1.11': '3.1.11',
9 '3.0.4': '3.0.4', 10 '3.0.4': '3.0.4',
diff --git a/documentation/test-manual/reproducible-builds.rst b/documentation/test-manual/reproducible-builds.rst
index 349cd19..01980d0 100644
--- a/documentation/test-manual/reproducible-builds.rst
+++ b/documentation/test-manual/reproducible-builds.rst
@@ -44,6 +44,18 @@ same.
44 before finalizing your production images. It would be too late if you 44 before finalizing your production images. It would be too late if you
45 only address this issue when the first updates are required. 45 only address this issue when the first updates are required.
46 46
47================
48How to enable it
49================
50
51You can enable build reproducibility by inheriting the
52:ref:`reproducible-build <ref-classes-reproducible-build>` class
53in the configuration for your distribution.
54
55This is what the Poky reference distribution does::
56
57 INHERIT += "reproducible_build"
58
47=================== 59===================
48How we implement it 60How we implement it
49=================== 61===================
diff --git a/meta-poky/conf/distro/poky.conf b/meta-poky/conf/distro/poky.conf
index da6cc86..1884fd1 100644
--- a/meta-poky/conf/distro/poky.conf
+++ b/meta-poky/conf/distro/poky.conf
@@ -1,6 +1,6 @@
1DISTRO = "poky" 1DISTRO = "poky"
2DISTRO_NAME = "Poky (Yocto Project Reference Distro)" 2DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
3DISTRO_VERSION = "3.4" 3DISTRO_VERSION = "3.4.1"
4DISTRO_CODENAME = "honister" 4DISTRO_CODENAME = "honister"
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')}"
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 07b8327..8a27e3a 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test2_git.bb
@@ -11,7 +11,7 @@ SRCREV = "1a3e1343761b30750bed70e0fd688f6d3c7b3717"
11PV = "0.1+git${SRCPV}" 11PV = "0.1+git${SRCPV}"
12PR = "r2" 12PR = "r2"
13 13
14SRC_URI = "git://git.yoctoproject.org/dbus-wait" 14SRC_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
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 32ec4b1..fbe90d6 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
@@ -10,7 +10,7 @@ DEPENDS = "dbus"
10SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517" 10SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517"
11PV = "0.1+git${SRCPV}" 11PV = "0.1+git${SRCPV}"
12 12
13SRC_URI = "git://git.yoctoproject.org/dbus-wait" 13SRC_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
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 9429564..cc5d7ea 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
@@ -5,5 +5,5 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
5 5
6INHIBIT_DEFAULT_DEPS = "1" 6INHIBIT_DEFAULT_DEPS = "1"
7 7
8SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test" 8SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master"
9SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee" 9SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee"
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index a613306..7c44fec 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -442,11 +442,16 @@ def buildhistory_list_installed(d, rootfs_type="image"):
442 else: 442 else:
443 pkgs = sdk_list_installed_packages(d, rootfs_type == "sdk_target") 443 pkgs = sdk_list_installed_packages(d, rootfs_type == "sdk_target")
444 444
445 if rootfs_type == "sdk_host":
446 pkgdata_dir = d.getVar('PKGDATA_DIR_SDK')
447 else:
448 pkgdata_dir = d.getVar('PKGDATA_DIR')
449
445 for output_type, output_file in process_list: 450 for output_type, output_file in process_list:
446 output_file_full = os.path.join(d.getVar('WORKDIR'), output_file) 451 output_file_full = os.path.join(d.getVar('WORKDIR'), output_file)
447 452
448 with open(output_file_full, 'w') as output: 453 with open(output_file_full, 'w') as output:
449 output.write(format_pkg_list(pkgs, output_type, d.getVar('PKGDATA_DIR'))) 454 output.write(format_pkg_list(pkgs, output_type, pkgdata_dir))
450 455
451python buildhistory_list_installed_image() { 456python buildhistory_list_installed_image() {
452 buildhistory_list_installed(d) 457 buildhistory_list_installed(d)
@@ -496,13 +501,19 @@ buildhistory_get_installed() {
496 echo "}" >> $1/depends.dot 501 echo "}" >> $1/depends.dot
497 rm $1/depends.tmp 502 rm $1/depends.tmp
498 503
504 # Set correct pkgdatadir
505 pkgdatadir=${PKGDATA_DIR}
506 if [ "$2" == "sdk" ] && [ "$3" == "host" ]; then
507 pkgdatadir="${PKGDATA_DIR_SDK}"
508 fi
509
499 # Produce installed package sizes list 510 # Produce installed package sizes list
500 oe-pkgdata-util -p ${PKGDATA_DIR} read-value "PKGSIZE" -n -f $pkgcache > $1/installed-package-sizes.tmp 511 oe-pkgdata-util -p $pkgdatadir read-value "PKGSIZE" -n -f $pkgcache > $1/installed-package-sizes.tmp
501 cat $1/installed-package-sizes.tmp | awk '{print $2 "\tKiB\t" $1}' | sort -n -r > $1/installed-package-sizes.txt 512 cat $1/installed-package-sizes.tmp | awk '{print $2 "\tKiB\t" $1}' | sort -n -r > $1/installed-package-sizes.txt
502 rm $1/installed-package-sizes.tmp 513 rm $1/installed-package-sizes.tmp
503 514
504 # Produce package info: runtime_name, buildtime_name, recipe, version, size 515 # Produce package info: runtime_name, buildtime_name, recipe, version, size
505 oe-pkgdata-util -p ${PKGDATA_DIR} read-value "PACKAGE,PN,PV,PKGSIZE" -n -f $pkgcache > $1/installed-package-info.tmp 516 oe-pkgdata-util -p $pkgdatadir read-value "PACKAGE,PN,PV,PKGSIZE" -n -f $pkgcache > $1/installed-package-info.tmp
506 cat $1/installed-package-info.tmp | sort -n -r -k 5 > $1/installed-package-info.txt 517 cat $1/installed-package-info.tmp | sort -n -r -k 5 > $1/installed-package-info.txt
507 rm $1/installed-package-info.tmp 518 rm $1/installed-package-info.tmp
508 519
@@ -542,7 +553,7 @@ buildhistory_get_sdk_installed() {
542 return 553 return
543 fi 554 fi
544 555
545 buildhistory_get_installed ${BUILDHISTORY_DIR_SDK}/$1 sdk 556 buildhistory_get_installed ${BUILDHISTORY_DIR_SDK}/$1 sdk $1
546} 557}
547 558
548buildhistory_get_sdk_installed_host() { 559buildhistory_get_sdk_installed_host() {
@@ -773,7 +784,7 @@ def buildhistory_get_imagevars(d):
773def buildhistory_get_sdkvars(d): 784def buildhistory_get_sdkvars(d):
774 if d.getVar('BB_WORKERCONTEXT') != '1': 785 if d.getVar('BB_WORKERCONTEXT') != '1':
775 return "" 786 return ""
776 sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE" 787 sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES TOOLCHAIN_HOST_TASK TOOLCHAIN_TARGET_TASK BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE"
777 if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext': 788 if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
778 # Extensible SDK uses some additional variables 789 # Extensible SDK uses some additional variables
779 sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL SDK_EXT_TYPE SDK_RECRDEP_TASKS SDK_INCLUDE_PKGDATA SDK_INCLUDE_TOOLCHAIN" 790 sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL SDK_EXT_TYPE SDK_RECRDEP_TASKS SDK_INCLUDE_PKGDATA SDK_INCLUDE_TOOLCHAIN"
diff --git a/meta/classes/create-spdx.bbclass b/meta/classes/create-spdx.bbclass
index 739b46e..0a4db80 100644
--- a/meta/classes/create-spdx.bbclass
+++ b/meta/classes/create-spdx.bbclass
@@ -28,6 +28,8 @@ SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdoc"
28 28
29SPDX_LICENSES ??= "${COREBASE}/meta/files/spdx-licenses.json" 29SPDX_LICENSES ??= "${COREBASE}/meta/files/spdx-licenses.json"
30 30
31SPDX_ORG ??= "OpenEmbedded ()"
32
31do_image_complete[depends] = "virtual/kernel:do_create_spdx" 33do_image_complete[depends] = "virtual/kernel:do_create_spdx"
32 34
33def get_doc_namespace(d, doc): 35def get_doc_namespace(d, doc):
@@ -35,15 +37,24 @@ def get_doc_namespace(d, doc):
35 namespace_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, d.getVar("SPDX_UUID_NAMESPACE")) 37 namespace_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, d.getVar("SPDX_UUID_NAMESPACE"))
36 return "%s/%s-%s" % (d.getVar("SPDX_NAMESPACE_PREFIX"), doc.name, str(uuid.uuid5(namespace_uuid, doc.name))) 38 return "%s/%s-%s" % (d.getVar("SPDX_NAMESPACE_PREFIX"), doc.name, str(uuid.uuid5(namespace_uuid, doc.name)))
37 39
40def create_annotation(d, comment):
41 from datetime import datetime, timezone
42
43 creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
44 annotation = oe.spdx.SPDXAnnotation()
45 annotation.annotationDate = creation_time
46 annotation.annotationType = "OTHER"
47 annotation.annotator = "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION"))
48 annotation.comment = comment
49 return annotation
50
38def recipe_spdx_is_native(d, recipe): 51def recipe_spdx_is_native(d, recipe):
39 return any(a.annotationType == "OTHER" and 52 return any(a.annotationType == "OTHER" and
40 a.annotator == "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION")) and 53 a.annotator == "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION")) and
41 a.comment == "isNative" for a in recipe.annotations) 54 a.comment == "isNative" for a in recipe.annotations)
42 55
43def is_work_shared(d): 56def is_work_shared_spdx(d):
44 pn = d.getVar('PN') 57 return bb.data.inherits_class('kernel', d) or ('work-shared' in d.getVar('WORKDIR'))
45 return bb.data.inherits_class('kernel', d) or pn.startswith('gcc-source')
46
47 58
48python() { 59python() {
49 import json 60 import json
@@ -81,7 +92,7 @@ def convert_license_to_spdx(lic, document, d, existing={}):
81 extracted_info.extractedText = "Software released to the public domain" 92 extracted_info.extractedText = "Software released to the public domain"
82 elif name in available_licenses: 93 elif name in available_licenses:
83 # This license can be found in COMMON_LICENSE_DIR or LICENSE_PATH 94 # This license can be found in COMMON_LICENSE_DIR or LICENSE_PATH
84 for directory in [d.getVar('COMMON_LICENSE_DIR')] + d.getVar('LICENSE_PATH').split(): 95 for directory in [d.getVar('COMMON_LICENSE_DIR')] + (d.getVar('LICENSE_PATH') or '').split():
85 try: 96 try:
86 with (Path(directory) / name).open(errors="replace") as f: 97 with (Path(directory) / name).open(errors="replace") as f:
87 extracted_info.extractedText = f.read() 98 extracted_info.extractedText = f.read()
@@ -134,7 +145,6 @@ def convert_license_to_spdx(lic, document, d, existing={}):
134 145
135 return ' '.join(convert(l) for l in lic_split) 146 return ' '.join(convert(l) for l in lic_split)
136 147
137
138def process_sources(d): 148def process_sources(d):
139 pn = d.getVar('PN') 149 pn = d.getVar('PN')
140 assume_provided = (d.getVar("ASSUME_PROVIDED") or "").split() 150 assume_provided = (d.getVar("ASSUME_PROVIDED") or "").split()
@@ -404,20 +414,15 @@ python do_create_spdx() {
404 doc.creationInfo.comment = "This document was created by analyzing recipe files during the build." 414 doc.creationInfo.comment = "This document was created by analyzing recipe files during the build."
405 doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"] 415 doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
406 doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass") 416 doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
407 doc.creationInfo.creators.append("Organization: OpenEmbedded ()") 417 doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
408 doc.creationInfo.creators.append("Person: N/A ()") 418 doc.creationInfo.creators.append("Person: N/A ()")
409 419
410 recipe = oe.spdx.SPDXPackage() 420 recipe = oe.spdx.SPDXPackage()
411 recipe.name = d.getVar("PN") 421 recipe.name = d.getVar("PN")
412 recipe.versionInfo = d.getVar("PV") 422 recipe.versionInfo = d.getVar("PV")
413 recipe.SPDXID = oe.sbom.get_recipe_spdxid(d) 423 recipe.SPDXID = oe.sbom.get_recipe_spdxid(d)
414 if bb.data.inherits_class("native", d): 424 if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d):
415 annotation = oe.spdx.SPDXAnnotation() 425 recipe.annotations.append(create_annotation(d, "isNative"))
416 annotation.annotationDate = creation_time
417 annotation.annotationType = "OTHER"
418 annotation.annotator = "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION"))
419 annotation.comment = "isNative"
420 recipe.annotations.append(annotation)
421 426
422 for s in d.getVar('SRC_URI').split(): 427 for s in d.getVar('SRC_URI').split():
423 if not s.startswith("file://"): 428 if not s.startswith("file://"):
@@ -513,7 +518,7 @@ python do_create_spdx() {
513 package_doc.creationInfo.comment = "This document was created by analyzing packages created during the build." 518 package_doc.creationInfo.comment = "This document was created by analyzing packages created during the build."
514 package_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"] 519 package_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
515 package_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass") 520 package_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
516 package_doc.creationInfo.creators.append("Organization: OpenEmbedded ()") 521 package_doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
517 package_doc.creationInfo.creators.append("Person: N/A ()") 522 package_doc.creationInfo.creators.append("Person: N/A ()")
518 package_doc.externalDocumentRefs.append(recipe_ref) 523 package_doc.externalDocumentRefs.append(recipe_ref)
519 524
@@ -608,7 +613,7 @@ python do_create_runtime_spdx() {
608 613
609 deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX")) 614 deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX"))
610 spdx_deploy = Path(d.getVar("SPDXRUNTIMEDEPLOY")) 615 spdx_deploy = Path(d.getVar("SPDXRUNTIMEDEPLOY"))
611 is_native = bb.data.inherits_class("native", d) 616 is_native = bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d)
612 617
613 creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") 618 creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
614 619
@@ -647,7 +652,7 @@ python do_create_runtime_spdx() {
647 runtime_doc.creationInfo.comment = "This document was created by analyzing package runtime dependencies." 652 runtime_doc.creationInfo.comment = "This document was created by analyzing package runtime dependencies."
648 runtime_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"] 653 runtime_doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
649 runtime_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass") 654 runtime_doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
650 runtime_doc.creationInfo.creators.append("Organization: OpenEmbedded ()") 655 runtime_doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
651 runtime_doc.creationInfo.creators.append("Person: N/A ()") 656 runtime_doc.creationInfo.creators.append("Person: N/A ()")
652 657
653 package_ref = oe.spdx.SPDXExternalDocumentRef() 658 package_ref = oe.spdx.SPDXExternalDocumentRef()
@@ -670,6 +675,9 @@ python do_create_runtime_spdx() {
670 if dep in seen_deps: 675 if dep in seen_deps:
671 continue 676 continue
672 677
678 if dep not in providers:
679 continue
680
673 dep = providers[dep] 681 dep = providers[dep]
674 682
675 if not oe.packagedata.packaged(dep, localdata): 683 if not oe.packagedata.packaged(dep, localdata):
@@ -739,7 +747,7 @@ def spdx_get_src(d):
739 747
740 try: 748 try:
741 # The kernel class functions require it to be on work-shared, so we dont change WORKDIR 749 # The kernel class functions require it to be on work-shared, so we dont change WORKDIR
742 if not is_work_shared(d): 750 if not is_work_shared_spdx(d):
743 # Change the WORKDIR to make do_unpack do_patch run in another dir. 751 # Change the WORKDIR to make do_unpack do_patch run in another dir.
744 d.setVar('WORKDIR', spdx_workdir) 752 d.setVar('WORKDIR', spdx_workdir)
745 # Restore the original path to recipe's native sysroot (it's relative to WORKDIR). 753 # Restore the original path to recipe's native sysroot (it's relative to WORKDIR).
@@ -752,7 +760,7 @@ def spdx_get_src(d):
752 760
753 bb.build.exec_func('do_unpack', d) 761 bb.build.exec_func('do_unpack', d)
754 # Copy source of kernel to spdx_workdir 762 # Copy source of kernel to spdx_workdir
755 if is_work_shared(d): 763 if is_work_shared_spdx(d):
756 d.setVar('WORKDIR', spdx_workdir) 764 d.setVar('WORKDIR', spdx_workdir)
757 d.setVar('STAGING_DIR_NATIVE', spdx_sysroot_native) 765 d.setVar('STAGING_DIR_NATIVE', spdx_sysroot_native)
758 src_dir = spdx_workdir + "/" + d.getVar('PN')+ "-" + d.getVar('PV') + "-" + d.getVar('PR') 766 src_dir = spdx_workdir + "/" + d.getVar('PN')+ "-" + d.getVar('PV') + "-" + d.getVar('PR')
@@ -768,7 +776,7 @@ def spdx_get_src(d):
768 shutils.rmtree(git_path) 776 shutils.rmtree(git_path)
769 777
770 # Make sure gcc and kernel sources are patched only once 778 # Make sure gcc and kernel sources are patched only once
771 if not (d.getVar('SRC_URI') == "" or is_work_shared(d)): 779 if not (d.getVar('SRC_URI') == "" or is_work_shared_spdx(d)):
772 bb.build.exec_func('do_patch', d) 780 bb.build.exec_func('do_patch', d)
773 781
774 # Some userland has no source. 782 # Some userland has no source.
@@ -807,7 +815,7 @@ python image_combine_spdx() {
807 doc.creationInfo.comment = "This document was created by analyzing the source of the Yocto recipe during the build." 815 doc.creationInfo.comment = "This document was created by analyzing the source of the Yocto recipe during the build."
808 doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"] 816 doc.creationInfo.licenseListVersion = d.getVar("SPDX_LICENSE_DATA")["licenseListVersion"]
809 doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass") 817 doc.creationInfo.creators.append("Tool: OpenEmbedded Core create-spdx.bbclass")
810 doc.creationInfo.creators.append("Organization: OpenEmbedded ()") 818 doc.creationInfo.creators.append("Organization: %s" % d.getVar("SPDX_ORG"))
811 doc.creationInfo.creators.append("Person: N/A ()") 819 doc.creationInfo.creators.append("Person: N/A ()")
812 820
813 image = oe.spdx.SPDXPackage() 821 image = oe.spdx.SPDXPackage()
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index ffbc216..ac82e86 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -169,7 +169,7 @@ USE_NLS = "${SDKUSE_NLS}"
169# and not any particular tune that is enabled. 169# and not any particular tune that is enabled.
170TARGET_ARCH[vardepsexclude] = "TUNE_ARCH" 170TARGET_ARCH[vardepsexclude] = "TUNE_ARCH"
171 171
172PKGDATA_DIR = "${TMPDIR}/pkgdata/${SDK_SYS}" 172PKGDATA_DIR = "${PKGDATA_DIR_SDK}"
173# If MLPREFIX is set by multilib code, shlibs 173# If MLPREFIX is set by multilib code, shlibs
174# points to the wrong place so force it 174# points to the wrong place so force it
175SHLIBSDIRS = "${PKGDATA_DIR}/nativesdk-shlibs2" 175SHLIBSDIRS = "${PKGDATA_DIR}/nativesdk-shlibs2"
diff --git a/meta/classes/devupstream.bbclass b/meta/classes/devupstream.bbclass
index dc9a947..facc46f 100644
--- a/meta/classes/devupstream.bbclass
+++ b/meta/classes/devupstream.bbclass
@@ -4,7 +4,7 @@
4# 4#
5# Usage: 5# Usage:
6# BBCLASSEXTEND = "devupstream:target" 6# BBCLASSEXTEND = "devupstream:target"
7# SRC_URI:class-devupstream = "git://git.example.com/example" 7# SRC_URI:class-devupstream = "git://git.example.com/example;branch=master"
8# SRCREV:class-devupstream = "abcdef" 8# SRCREV:class-devupstream = "abcdef"
9# 9#
10# If the first entry in SRC_URI is a git: URL then S is rewritten to 10# If the first entry in SRC_URI is a git: URL then S is rewritten to
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 0dd0c5f..aa54b4a 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -41,7 +41,8 @@ GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} ${LDFLAGS
41GO_LINKMODE ?= "" 41GO_LINKMODE ?= ""
42GO_LINKMODE:class-nativesdk = "--linkmode=external" 42GO_LINKMODE:class-nativesdk = "--linkmode=external"
43GO_LINKMODE:class-native = "--linkmode=external" 43GO_LINKMODE:class-native = "--linkmode=external"
44GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"' 44GO_EXTRA_LDFLAGS ?= ""
45GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} ${GO_EXTRA_LDFLAGS} -extldflags '${GO_EXTLDFLAGS}'"'
45export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath" 46export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
46export GOPATH_OMIT_IN_ACTIONID ?= "1" 47export GOPATH_OMIT_IN_ACTIONID ?= "1"
47export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c" 48export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c"
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index f2d2ca3..bfaf257 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -50,6 +50,20 @@ ALL_QA = "${WARN_QA} ${ERROR_QA}"
50 50
51UNKNOWN_CONFIGURE_WHITELIST ?= "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static" 51UNKNOWN_CONFIGURE_WHITELIST ?= "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static"
52 52
53# This is a list of directories that are expected to be empty.
54QA_EMPTY_DIRS ?= " \
55 /dev/pts \
56 /media \
57 /proc \
58 /run \
59 /tmp \
60 ${localstatedir}/run \
61"
62# It is possible to specify why a directory is expected to be empty by defining
63# QA_EMPTY_DIRS_RECOMMENDATION:<path>, which will then be included in the error
64# message if the directory is not empty. If it is not specified for a directory,
65# then "but it is expected to be empty" will be used.
66
53def package_qa_clean_path(path, d, pkg=None): 67def package_qa_clean_path(path, d, pkg=None):
54 """ 68 """
55 Remove redundant paths from the path for display. If pkg isn't set then 69 Remove redundant paths from the path for display. If pkg isn't set then
@@ -917,6 +931,22 @@ def package_qa_check_unlisted_pkg_lics(package, d, messages):
917 "listed in LICENSE" % (package, ' '.join(unlisted))) 931 "listed in LICENSE" % (package, ' '.join(unlisted)))
918 return False 932 return False
919 933
934QAPKGTEST[empty-dirs] = "package_qa_check_empty_dirs"
935def package_qa_check_empty_dirs(pkg, d, messages):
936 """
937 Check for the existence of files in directories that are expected to be
938 empty.
939 """
940
941 pkgd = oe.path.join(d.getVar('PKGDEST'), pkg)
942 for dir in (d.getVar('QA_EMPTY_DIRS') or "").split():
943 empty_dir = oe.path.join(pkgd, dir)
944 if os.path.exists(empty_dir) and os.listdir(empty_dir):
945 recommendation = (d.getVar('QA_EMPTY_DIRS_RECOMMENDATION:' + dir) or
946 "but it is expected to be empty")
947 msg = "%s installs files in %s, %s" % (pkg, dir, recommendation)
948 oe.qa.add_message(messages, "empty-dirs", msg)
949
920def package_qa_check_encoding(keys, encode, d): 950def package_qa_check_encoding(keys, encode, d):
921 def check_encoding(key, enc): 951 def check_encoding(key, enc):
922 sane = True 952 sane = True
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index e124d18..4ba70de 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -48,6 +48,7 @@ ar = ${@meson_array('AR', d)}
48nm = ${@meson_array('NM', d)} 48nm = ${@meson_array('NM', d)}
49strip = ${@meson_array('STRIP', d)} 49strip = ${@meson_array('STRIP', d)}
50readelf = ${@meson_array('READELF', d)} 50readelf = ${@meson_array('READELF', d)}
51objcopy = ${@meson_array('OBJCOPY', d)}
51pkgconfig = 'pkg-config' 52pkgconfig = 'pkg-config'
52llvm-config = 'llvm-config${LLVMVERSION}' 53llvm-config = 'llvm-config${LLVMVERSION}'
53cups-config = 'cups-config' 54cups-config = 'cups-config'
@@ -85,6 +86,7 @@ ar = ${@meson_array('BUILD_AR', d)}
85nm = ${@meson_array('BUILD_NM', d)} 86nm = ${@meson_array('BUILD_NM', d)}
86strip = ${@meson_array('BUILD_STRIP', d)} 87strip = ${@meson_array('BUILD_STRIP', d)}
87readelf = ${@meson_array('BUILD_READELF', d)} 88readelf = ${@meson_array('BUILD_READELF', d)}
89objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
88pkgconfig = 'pkg-config-native' 90pkgconfig = 'pkg-config-native'
89 91
90[built-in options] 92[built-in options]
@@ -103,6 +105,16 @@ meson_do_configure() {
103 # https://github.com/mesonbuild/meson/commit/ef9aeb188ea2bc7353e59916c18901cde90fa2b3 105 # https://github.com/mesonbuild/meson/commit/ef9aeb188ea2bc7353e59916c18901cde90fa2b3
104 unset LD 106 unset LD
105 107
108 # sstate.bbclass no longer removes empty directories to avoid a race (see
109 # commit 4f94d929 "sstate/staging: Handle directory creation race issue").
110 # Unfortunately Python apparently treats an empty egg-info directory as if
111 # the version it previously contained still exists and fails if a newer
112 # version is required, which Meson does. To avoid this, make sure there are
113 # no empty egg-info directories from previous versions left behind. Ignore
114 # all errors from rmdir since the egg-info may be a file rather than a
115 # directory.
116 rmdir ${STAGING_LIBDIR_NATIVE}/${PYTHON_DIR}/site-packages/*.egg-info 2>/dev/null || :
117
106 # Work around "Meson fails if /tmp is mounted with noexec #2972" 118 # Work around "Meson fails if /tmp is mounted with noexec #2972"
107 mkdir -p "${B}/meson-private/tmp" 119 mkdir -p "${B}/meson-private/tmp"
108 export TMPDIR="${B}/meson-private/tmp" 120 export TMPDIR="${B}/meson-private/tmp"
diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass
index ba325a6..49685d2 100644
--- a/meta/classes/mirrors.bbclass
+++ b/meta/classes/mirrors.bbclass
@@ -62,6 +62,8 @@ ftp://.*/.* http://sources.openembedded.org/ \n \
62npm://.*/?.* http://sources.openembedded.org/ \n \ 62npm://.*/?.* http://sources.openembedded.org/ \n \
63${CPAN_MIRROR} http://cpan.metacpan.org/ \n \ 63${CPAN_MIRROR} http://cpan.metacpan.org/ \n \
64${CPAN_MIRROR} http://search.cpan.org/CPAN/ \n \ 64${CPAN_MIRROR} http://search.cpan.org/CPAN/ \n \
65https?$://downloads.yoctoproject.org/releases/uninative/ https://mirrors.kernel.org/yocto/uninative/ \n \
66https?://downloads.yoctoproject.org/mirror/sources/ https://mirrors.kernel.org/yocto-sources/ \
65" 67"
66 68
67# Use MIRRORS to provide git repo fallbacks using the https protocol, for cases 69# Use MIRRORS to provide git repo fallbacks using the https protocol, for cases
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index c66de8c..14e2105 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -31,7 +31,7 @@ PACKAGE_ARCHS = "${SDK_PACKAGE_ARCHS}"
31DEPENDS:append = " chrpath-replacement-native" 31DEPENDS:append = " chrpath-replacement-native"
32EXTRANATIVEPATH += "chrpath-native" 32EXTRANATIVEPATH += "chrpath-native"
33 33
34PKGDATA_DIR = "${TMPDIR}/pkgdata/${SDK_SYS}" 34PKGDATA_DIR = "${PKGDATA_DIR_SDK}"
35 35
36HOST_ARCH = "${SDK_ARCH}" 36HOST_ARCH = "${SDK_ARCH}"
37HOST_VENDOR = "${SDK_VENDOR}" 37HOST_VENDOR = "${SDK_VENDOR}"
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
index 388773a..87bcaf9 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -131,6 +131,9 @@ python patch_do_patch() {
131 patchdir = parm["patchdir"] 131 patchdir = parm["patchdir"]
132 if not os.path.isabs(patchdir): 132 if not os.path.isabs(patchdir):
133 patchdir = os.path.join(s, patchdir) 133 patchdir = os.path.join(s, patchdir)
134 if not os.path.isdir(patchdir):
135 bb.fatal("Target directory '%s' not found, patchdir '%s' is incorrect in patch file '%s'" %
136 (patchdir, parm["patchdir"], parm['patchname']))
134 else: 137 else:
135 patchdir = s 138 patchdir = s
136 139
@@ -147,12 +150,12 @@ python patch_do_patch() {
147 patchset.Import({"file":local, "strippath": parm['striplevel']}, True) 150 patchset.Import({"file":local, "strippath": parm['striplevel']}, True)
148 except Exception as exc: 151 except Exception as exc:
149 bb.utils.remove(process_tmpdir, True) 152 bb.utils.remove(process_tmpdir, True)
150 bb.fatal(str(exc)) 153 bb.fatal("Importing patch '%s' with striplevel '%s'\n%s" % (parm['patchname'], parm['striplevel'], str(exc)))
151 try: 154 try:
152 resolver.Resolve() 155 resolver.Resolve()
153 except bb.BBHandledException as e: 156 except bb.BBHandledException as e:
154 bb.utils.remove(process_tmpdir, True) 157 bb.utils.remove(process_tmpdir, True)
155 bb.fatal(str(e)) 158 bb.fatal("Applying patch '%s' on target directory '%s'\n%s" % (parm['patchname'], patchdir, str(e)))
156 159
157 bb.utils.remove(process_tmpdir, True) 160 bb.utils.remove(process_tmpdir, True)
158 del os.environ['TMPDIR'] 161 del os.environ['TMPDIR']
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 49e166e..fafdd96 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -179,6 +179,10 @@ do_populate_sdk[cleandirs] = "${SDKDEPLOYDIR}"
179do_populate_sdk[sstate-inputdirs] = "${SDKDEPLOYDIR}" 179do_populate_sdk[sstate-inputdirs] = "${SDKDEPLOYDIR}"
180do_populate_sdk[sstate-outputdirs] = "${SDK_DEPLOY}" 180do_populate_sdk[sstate-outputdirs] = "${SDK_DEPLOY}"
181do_populate_sdk[stamp-extra-info] = "${MACHINE_ARCH}${SDKMACHINE}" 181do_populate_sdk[stamp-extra-info] = "${MACHINE_ARCH}${SDKMACHINE}"
182python do_populate_sdk_setscene () {
183 sstate_setscene(d)
184}
185addtask do_populate_sdk_setscene
182 186
183PSEUDO_IGNORE_PATHS .= ",${SDKDEPLOYDIR},${WORKDIR}/oe-sdk-repo,${WORKDIR}/sstate-build-populate_sdk" 187PSEUDO_IGNORE_PATHS .= ",${SDKDEPLOYDIR},${WORKDIR}/oe-sdk-repo,${WORKDIR}/sstate-build-populate_sdk"
184 188
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 701a19b..ba2c9fe 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -20,7 +20,7 @@ def generate_sstatefn(spec, hash, taskname, siginfo, d):
20 components = spec.split(":") 20 components = spec.split(":")
21 # Fields 0,5,6 are mandatory, 1 is most useful, 2,3,4 are just for information 21 # Fields 0,5,6 are mandatory, 1 is most useful, 2,3,4 are just for information
22 # 7 is for the separators 22 # 7 is for the separators
23 avail = (254 - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) // 3 23 avail = (limit - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) // 3
24 components[2] = components[2][:avail] 24 components[2] = components[2][:avail]
25 components[3] = components[3][:avail] 25 components[3] = components[3][:avail]
26 components[4] = components[4][:avail] 26 components[4] = components[4][:avail]
@@ -825,7 +825,7 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
825sstate_create_package () { 825sstate_create_package () {
826 # Exit early if it already exists 826 # Exit early if it already exists
827 if [ -e ${SSTATE_PKG} ]; then 827 if [ -e ${SSTATE_PKG} ]; then
828 [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG} 828 touch ${SSTATE_PKG} 2>/dev/null || true
829 return 829 return
830 fi 830 fi
831 831
@@ -859,7 +859,7 @@ sstate_create_package () {
859 else 859 else
860 rm $TFILE 860 rm $TFILE
861 fi 861 fi
862 [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG} 862 touch ${SSTATE_PKG} 2>/dev/null || true
863} 863}
864 864
865python sstate_sign_package () { 865python sstate_sign_package () {
@@ -888,12 +888,12 @@ python sstate_report_unihash() {
888# 888#
889sstate_unpack_package () { 889sstate_unpack_package () {
890 tar -xvzf ${SSTATE_PKG} 890 tar -xvzf ${SSTATE_PKG}
891 # update .siginfo atime on local/NFS mirror 891 # update .siginfo atime on local/NFS mirror if it is a symbolic link
892 [ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo 892 [ ! -h ${SSTATE_PKG}.siginfo ] || touch -a ${SSTATE_PKG}.siginfo 2>/dev/null || true
893 # Use "! -w ||" to return true for read only files 893 # update each symbolic link instead of any referenced file
894 [ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG} 894 touch --no-dereference ${SSTATE_PKG} 2>/dev/null || true
895 [ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 895 [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig 2>/dev/null || true
896 [ ! -w ${SSTATE_PKG}.siginfo ] || [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo 896 [ ! -e ${SSTATE_PKG}.siginfo ] || touch --no-dereference ${SSTATE_PKG}.siginfo 2>/dev/null || true
897} 897}
898 898
899BB_HASHCHECK_FUNCTION = "sstate_checkhashes" 899BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 65a6cd5..25f77c7 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -620,7 +620,7 @@ python staging_taskhandler() {
620 for task in bbtasks: 620 for task in bbtasks:
621 deps = d.getVarFlag(task, "depends") 621 deps = d.getVarFlag(task, "depends")
622 if task == "do_configure" or (deps and "populate_sysroot" in deps): 622 if task == "do_configure" or (deps and "populate_sysroot" in deps):
623 d.appendVarFlag(task, "prefuncs", " extend_recipe_sysroot") 623 d.prependVarFlag(task, "prefuncs", "extend_recipe_sysroot ")
624} 624}
625staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess" 625staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess"
626addhandler staging_taskhandler 626addhandler staging_taskhandler
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass
index a76e773..4db05a4 100644
--- a/meta/classes/testimage.bbclass
+++ b/meta/classes/testimage.bbclass
@@ -235,9 +235,10 @@ def testimage_main(d):
235 235
236 tdname = "%s.testdata.json" % image_name 236 tdname = "%s.testdata.json" % image_name
237 try: 237 try:
238 td = json.load(open(tdname, "r")) 238 with open(tdname, "r") as f:
239 except (FileNotFoundError) as err: 239 td = json.load(f)
240 bb.fatal('File %s Not Found. Have you built the image with INHERIT+="testimage" in the conf/local.conf?' % tdname) 240 except FileNotFoundError as err:
241 bb.fatal('File %s not found (%s).\nHave you built the image with INHERIT += "testimage" in the conf/local.conf?' % (tdname, err))
241 242
242 # Some variables need to be updates (mostly paths) with the 243 # Some variables need to be updates (mostly paths) with the
243 # ones of the current environment because some tests require them. 244 # ones of the current environment because some tests require them.
diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass
index 3c7ccd6..4412d7c 100644
--- a/meta/classes/uninative.bbclass
+++ b/meta/classes/uninative.bbclass
@@ -2,7 +2,7 @@ UNINATIVE_LOADER ?= "${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux/lib/
2UNINATIVE_STAGING_DIR ?= "${STAGING_DIR}" 2UNINATIVE_STAGING_DIR ?= "${STAGING_DIR}"
3 3
4UNINATIVE_URL ?= "unset" 4UNINATIVE_URL ?= "unset"
5UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc.tar.xz" 5UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc-${UNINATIVE_VERSION}.tar.xz"
6# Example checksums 6# Example checksums
7#UNINATIVE_CHECKSUM[aarch64] = "dead" 7#UNINATIVE_CHECKSUM[aarch64] = "dead"
8#UNINATIVE_CHECKSUM[i686] = "dead" 8#UNINATIVE_CHECKSUM[i686] = "dead"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index f3ff5b7..c2cb2f0 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -415,6 +415,7 @@ DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
415DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools" 415DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
416 416
417PKGDATA_DIR = "${TMPDIR}/pkgdata/${MACHINE}" 417PKGDATA_DIR = "${TMPDIR}/pkgdata/${MACHINE}"
418PKGDATA_DIR_SDK = "${TMPDIR}/pkgdata/${SDK_SYS}"
418 419
419################################################################## 420##################################################################
420# SDK variables. 421# SDK variables.
@@ -849,8 +850,8 @@ DISTRO_FEATURES_NATIVESDK ?= "x11"
849 850
850# Normally target distro features will not be applied to native builds: 851# Normally target distro features will not be applied to native builds:
851# Native distro features on this list will use the target feature value 852# Native distro features on this list will use the target feature value
852DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl" 853DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
853DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl" 854DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
854 855
855DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" 856DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
856MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" 857MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
index f91df63..fb0f109 100644
--- a/meta/conf/distro/include/default-distrovars.inc
+++ b/meta/conf/distro/include/default-distrovars.inc
@@ -53,5 +53,5 @@ KERNEL_IMAGETYPES ??= "${KERNEL_IMAGETYPE}"
53# The CONNECTIVITY_CHECK_URIS are used to test whether we can succesfully 53# The CONNECTIVITY_CHECK_URIS are used to test whether we can succesfully
54# fetch from the network (and warn you if not). To disable the test set 54# fetch from the network (and warn you if not). To disable the test set
55# the variable to be empty. 55# the variable to be empty.
56# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master 56# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master;branch=master
57CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/" 57CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"
diff --git a/meta/conf/distro/include/yocto-uninative.inc b/meta/conf/distro/include/yocto-uninative.inc
index 3165fc9..6833072 100644
--- a/meta/conf/distro/include/yocto-uninative.inc
+++ b/meta/conf/distro/include/yocto-uninative.inc
@@ -7,8 +7,9 @@
7# 7#
8 8
9UNINATIVE_MAXGLIBCVERSION = "2.34" 9UNINATIVE_MAXGLIBCVERSION = "2.34"
10UNINATIVE_VERSION = "3.4"
10 11
11UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.4/" 12UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
12UNINATIVE_CHECKSUM[aarch64] ?= "3013cdda8f0dc6639ce1c80f33eabce66f06b890bd5b58739a6d7a92a0bb7100" 13UNINATIVE_CHECKSUM[aarch64] ?= "3013cdda8f0dc6639ce1c80f33eabce66f06b890bd5b58739a6d7a92a0bb7100"
13UNINATIVE_CHECKSUM[i686] ?= "abed500de584aad63ec237546db20cdd0c69d8870a6f8e94ac31721ace64b376" 14UNINATIVE_CHECKSUM[i686] ?= "abed500de584aad63ec237546db20cdd0c69d8870a6f8e94ac31721ace64b376"
14UNINATIVE_CHECKSUM[x86_64] ?= "126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2" 15UNINATIVE_CHECKSUM[x86_64] ?= "126f4f7f6f21084ee140dac3eb4c536b963837826b7c38599db0b512c3377ba2"
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index c5a38b0..d38a88f 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -345,6 +345,8 @@ PYPI_SRC_URI[doc] = "The URI to use to fetch from pypi, default uses pythonhoste
345 345
346#Q 346#Q
347 347
348QA_EMPTY_DIRS[doc] = "A list of directories that are expected to be empty."
349QA_EMPTY_DIRS_RECOMMENDATION[doc] = "This specifies a recommendation for a directory why it must be empty, which will be included in the error message if the directory is not empty."
348QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake." 350QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake."
349 351
350#R 352#R
diff --git a/meta/lib/oe/package_manager/__init__.py b/meta/lib/oe/package_manager/__init__.py
index 8f7b60e..80bc1a6 100644
--- a/meta/lib/oe/package_manager/__init__.py
+++ b/meta/lib/oe/package_manager/__init__.py
@@ -321,7 +321,7 @@ class PackageManager(object, metaclass=ABCMeta):
321 # TODO don't have sdk here but have a property on the superclass 321 # TODO don't have sdk here but have a property on the superclass
322 # (and respect in install_complementary) 322 # (and respect in install_complementary)
323 if sdk: 323 if sdk:
324 pkgdatadir = self.d.expand("${TMPDIR}/pkgdata/${SDK_SYS}") 324 pkgdatadir = self.d.getVar("PKGDATA_DIR_SDK")
325 else: 325 else:
326 pkgdatadir = self.d.getVar("PKGDATA_DIR") 326 pkgdatadir = self.d.getVar("PKGDATA_DIR")
327 327
diff --git a/meta/lib/oe/spdx.py b/meta/lib/oe/spdx.py
index 4416194..9e7ced5 100644
--- a/meta/lib/oe/spdx.py
+++ b/meta/lib/oe/spdx.py
@@ -196,6 +196,7 @@ class SPDXRelationship(SPDXObject):
196 relatedSpdxElement = _String() 196 relatedSpdxElement = _String()
197 relationshipType = _String() 197 relationshipType = _String()
198 comment = _String() 198 comment = _String()
199 annotations = _ObjectList(SPDXAnnotation)
199 200
200 201
201class SPDXExternalReference(SPDXObject): 202class SPDXExternalReference(SPDXObject):
@@ -300,7 +301,7 @@ class SPDXDocument(SPDXObject):
300 def from_json(cls, f): 301 def from_json(cls, f):
301 return cls(**json.load(f)) 302 return cls(**json.load(f))
302 303
303 def add_relationship(self, _from, relationship, _to, *, comment=None): 304 def add_relationship(self, _from, relationship, _to, *, comment=None, annotation=None):
304 if isinstance(_from, SPDXObject): 305 if isinstance(_from, SPDXObject):
305 from_spdxid = _from.SPDXID 306 from_spdxid = _from.SPDXID
306 else: 307 else:
@@ -320,6 +321,9 @@ class SPDXDocument(SPDXObject):
320 if comment is not None: 321 if comment is not None:
321 r.comment = comment 322 r.comment = comment
322 323
324 if annotation is not None:
325 r.annotations.append(annotation)
326
323 self.relationships.append(r) 327 self.relationships.append(r)
324 328
325 def find_by_spdxid(self, spdxid): 329 def find_by_spdxid(self, spdxid):
diff --git a/meta/lib/oeqa/runtime/cases/parselogs.py b/meta/lib/oeqa/runtime/cases/parselogs.py
index 2b8893d..50101b7 100644
--- a/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -32,7 +32,7 @@ common_errors = [
32 "Failed to load module \"fbdev\"", 32 "Failed to load module \"fbdev\"",
33 "Failed to load module fbdev", 33 "Failed to load module fbdev",
34 "Failed to load module glx", 34 "Failed to load module glx",
35 "[drm] Cannot find any crtc or sizes - going 1024x768", 35 "[drm] Cannot find any crtc or sizes",
36 "_OSC failed (AE_NOT_FOUND); disabling ASPM", 36 "_OSC failed (AE_NOT_FOUND); disabling ASPM",
37 "Open ACPI failed (/var/run/acpid.socket) (No such file or directory)", 37 "Open ACPI failed (/var/run/acpid.socket) (No such file or directory)",
38 "NX (Execute Disable) protection cannot be enabled: non-PAE kernel!", 38 "NX (Execute Disable) protection cannot be enabled: non-PAE kernel!",
diff --git a/meta/lib/oeqa/sdk/buildtools-cases/build.py b/meta/lib/oeqa/sdk/buildtools-cases/build.py
index 9c9a84b..aee2e5a 100644
--- a/meta/lib/oeqa/sdk/buildtools-cases/build.py
+++ b/meta/lib/oeqa/sdk/buildtools-cases/build.py
@@ -25,6 +25,6 @@ class BuildTests(OESDKTestCase):
25 self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir)) 25 self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir))
26 finally: 26 finally:
27 delay = 10 27 delay = 10
28 while delay and os.path.exists(testdir + "/bitbake.lock"): 28 while delay and (os.path.exists(testdir + "/bitbake.lock") or os.path.exists(testdir + "/cache/hashserv.db-wal")):
29 time.sleep(1) 29 time.sleep(1)
30 delay = delay - 1 30 delay = delay - 1
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py
index f495e84..d2b31af 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -340,7 +340,7 @@ class DevtoolAddTests(DevtoolBase):
340 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263' 340 checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263'
341 checkvars['S'] = '${WORKDIR}/git' 341 checkvars['S'] = '${WORKDIR}/git'
342 checkvars['PV'] = '0.1+git${SRCPV}' 342 checkvars['PV'] = '0.1+git${SRCPV}'
343 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https' 343 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https;branch=master'
344 checkvars['SRCREV'] = srcrev 344 checkvars['SRCREV'] = srcrev
345 checkvars['DEPENDS'] = set(['dbus']) 345 checkvars['DEPENDS'] = set(['dbus'])
346 self._test_recipe_contents(recipefile, checkvars, []) 346 self._test_recipe_contents(recipefile, checkvars, [])
@@ -904,7 +904,7 @@ class DevtoolUpdateTests(DevtoolBase):
904 self._check_repo_status(os.path.dirname(recipefile), expected_status) 904 self._check_repo_status(os.path.dirname(recipefile), expected_status)
905 905
906 result = runCmd('git diff %s' % os.path.basename(recipefile), cwd=os.path.dirname(recipefile)) 906 result = runCmd('git diff %s' % os.path.basename(recipefile), cwd=os.path.dirname(recipefile))
907 addlines = ['SRCREV = ".*"', 'SRC_URI = "git://git.infradead.org/mtd-utils.git"'] 907 addlines = ['SRCREV = ".*"', 'SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master"']
908 srcurilines = src_uri.split() 908 srcurilines = src_uri.split()
909 srcurilines[0] = 'SRC_URI = "' + srcurilines[0] 909 srcurilines[0] = 'SRC_URI = "' + srcurilines[0]
910 srcurilines.append('"') 910 srcurilines.append('"')
diff --git a/meta/lib/oeqa/selftest/cases/eSDK.py b/meta/lib/oeqa/selftest/cases/eSDK.py
index 862849a..d0c402b 100644
--- a/meta/lib/oeqa/selftest/cases/eSDK.py
+++ b/meta/lib/oeqa/selftest/cases/eSDK.py
@@ -100,7 +100,7 @@ SSTATE_MIRRORS = "file://.* file://%s/PATH"
100 @classmethod 100 @classmethod
101 def tearDownClass(cls): 101 def tearDownClass(cls):
102 for i in range(0, 10): 102 for i in range(0, 10):
103 if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')): 103 if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')) or os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'cache/hashserv.db-wal')):
104 time.sleep(1) 104 time.sleep(1)
105 else: 105 else:
106 break 106 break
diff --git a/meta/lib/oeqa/selftest/cases/fetch.py b/meta/lib/oeqa/selftest/cases/fetch.py
index 9aa91e5..be14272 100644
--- a/meta/lib/oeqa/selftest/cases/fetch.py
+++ b/meta/lib/oeqa/selftest/cases/fetch.py
@@ -99,7 +99,7 @@ class Dependencies(OESelftestTestCase):
99 99
100 r = """ 100 r = """
101 LICENSE="CLOSED" 101 LICENSE="CLOSED"
102 SRC_URI="git://example.com/repo" 102 SRC_URI="git://example.com/repo;branch=master"
103 """ 103 """
104 f = self.write_recipe(textwrap.dedent(r), tempdir) 104 f = self.write_recipe(textwrap.dedent(r), tempdir)
105 d = tinfoil.parse_recipe_file(f) 105 d = tinfoil.parse_recipe_file(f)
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py
index c2a5381..8dc00ac 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -357,7 +357,7 @@ class RecipetoolTests(RecipetoolBase):
357 tempsrc = os.path.join(self.tempdir, 'srctree') 357 tempsrc = os.path.join(self.tempdir, 'srctree')
358 os.makedirs(tempsrc) 358 os.makedirs(tempsrc)
359 recipefile = os.path.join(self.tempdir, 'libmatchbox.bb') 359 recipefile = os.path.join(self.tempdir, 'libmatchbox.bb')
360 srcuri = 'git://git.yoctoproject.org/libmatchbox' 360 srcuri = 'git://git.yoctoproject.org/libmatchbox;branch=master'
361 result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri + ";rev=9f7cf8895ae2d39c465c04cc78e918c157420269", '-x', tempsrc]) 361 result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri + ";rev=9f7cf8895ae2d39c465c04cc78e918c157420269", '-x', tempsrc])
362 self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output) 362 self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
363 checkvars = {} 363 checkvars = {}
@@ -447,7 +447,7 @@ class RecipetoolTests(RecipetoolBase):
447 self.assertTrue(os.path.isfile(recipefile)) 447 self.assertTrue(os.path.isfile(recipefile))
448 checkvars = {} 448 checkvars = {}
449 checkvars['LICENSE'] = set(['Apache-2.0']) 449 checkvars['LICENSE'] = set(['Apache-2.0'])
450 checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https' 450 checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https;branch=master'
451 inherits = ['setuptools3'] 451 inherits = ['setuptools3']
452 self._test_recipe_contents(recipefile, checkvars, inherits) 452 self._test_recipe_contents(recipefile, checkvars, inherits)
453 453
@@ -514,7 +514,7 @@ class RecipetoolTests(RecipetoolBase):
514 self.assertTrue(os.path.isfile(recipefile)) 514 self.assertTrue(os.path.isfile(recipefile))
515 checkvars = {} 515 checkvars = {}
516 checkvars['LICENSE'] = set(['GPLv2']) 516 checkvars['LICENSE'] = set(['GPLv2'])
517 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/matchbox-terminal;protocol=http' 517 checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/matchbox-terminal;protocol=http;branch=master'
518 inherits = ['pkgconfig', 'autotools'] 518 inherits = ['pkgconfig', 'autotools']
519 self._test_recipe_contents(recipefile, checkvars, inherits) 519 self._test_recipe_contents(recipefile, checkvars, inherits)
520 520
diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py
index 17a1545..7e0ed0d 100644
--- a/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -39,7 +39,7 @@ class SStateTests(SStateBase):
39 39
40 recipefile = os.path.join(tempdir, "recipes-test", "dbus-wait-test", 'dbus-wait-test_git.bb') 40 recipefile = os.path.join(tempdir, "recipes-test", "dbus-wait-test", 'dbus-wait-test_git.bb')
41 os.makedirs(os.path.dirname(recipefile)) 41 os.makedirs(os.path.dirname(recipefile))
42 srcuri = 'git://' + srcdir + ';protocol=file' 42 srcuri = 'git://' + srcdir + ';protocol=file;branch=master'
43 result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri]) 43 result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri])
44 self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output) 44 self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
45 45
@@ -137,7 +137,7 @@ class SStateTests(SStateBase):
137 filtered_results.append(r) 137 filtered_results.append(r)
138 self.assertTrue(filtered_results == [], msg="Found distro non-specific sstate for: %s (%s)" % (', '.join(map(str, targets)), str(filtered_results))) 138 self.assertTrue(filtered_results == [], msg="Found distro non-specific sstate for: %s (%s)" % (', '.join(map(str, targets)), str(filtered_results)))
139 file_tracker_1 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) 139 file_tracker_1 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False)
140 self.assertTrue(len(file_tracker_1) >= len(targets), msg = "Not all sstate files ware created for: %s" % ', '.join(map(str, targets))) 140 self.assertTrue(len(file_tracker_1) >= len(targets), msg = "Not all sstate files were created for: %s" % ', '.join(map(str, targets)))
141 141
142 self.track_for_cleanup(self.distro_specific_sstate + "_old") 142 self.track_for_cleanup(self.distro_specific_sstate + "_old")
143 shutil.copytree(self.distro_specific_sstate, self.distro_specific_sstate + "_old") 143 shutil.copytree(self.distro_specific_sstate, self.distro_specific_sstate + "_old")
@@ -146,13 +146,13 @@ class SStateTests(SStateBase):
146 bitbake(['-cclean'] + targets) 146 bitbake(['-cclean'] + targets)
147 bitbake(targets) 147 bitbake(targets)
148 file_tracker_2 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) 148 file_tracker_2 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False)
149 self.assertTrue(len(file_tracker_2) >= len(targets), msg = "Not all sstate files ware created for: %s" % ', '.join(map(str, targets))) 149 self.assertTrue(len(file_tracker_2) >= len(targets), msg = "Not all sstate files were created for: %s" % ', '.join(map(str, targets)))
150 150
151 not_recreated = [x for x in file_tracker_1 if x not in file_tracker_2] 151 not_recreated = [x for x in file_tracker_1 if x not in file_tracker_2]
152 self.assertTrue(not_recreated == [], msg="The following sstate files ware not recreated: %s" % ', '.join(map(str, not_recreated))) 152 self.assertTrue(not_recreated == [], msg="The following sstate files were not recreated: %s" % ', '.join(map(str, not_recreated)))
153 153
154 created_once = [x for x in file_tracker_2 if x not in file_tracker_1] 154 created_once = [x for x in file_tracker_2 if x not in file_tracker_1]
155 self.assertTrue(created_once == [], msg="The following sstate files ware created only in the second run: %s" % ', '.join(map(str, created_once))) 155 self.assertTrue(created_once == [], msg="The following sstate files were created only in the second run: %s" % ', '.join(map(str, created_once)))
156 156
157 def test_rebuild_distro_specific_sstate_cross_native_targets(self): 157 def test_rebuild_distro_specific_sstate_cross_native_targets(self):
158 self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch, 'binutils-native'], temp_sstate_location=True) 158 self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch, 'binutils-native'], temp_sstate_location=True)
@@ -202,9 +202,9 @@ class SStateTests(SStateBase):
202 actual_remaining_sstate = [x for x in self.search_sstate(target + r'.*?\.tgz$') if not any(pattern in x for pattern in ignore_patterns)] 202 actual_remaining_sstate = [x for x in self.search_sstate(target + r'.*?\.tgz$') if not any(pattern in x for pattern in ignore_patterns)]
203 203
204 actual_not_expected = [x for x in actual_remaining_sstate if x not in expected_remaining_sstate] 204 actual_not_expected = [x for x in actual_remaining_sstate if x not in expected_remaining_sstate]
205 self.assertFalse(actual_not_expected, msg="Files should have been removed but ware not: %s" % ', '.join(map(str, actual_not_expected))) 205 self.assertFalse(actual_not_expected, msg="Files should have been removed but were not: %s" % ', '.join(map(str, actual_not_expected)))
206 expected_not_actual = [x for x in expected_remaining_sstate if x not in actual_remaining_sstate] 206 expected_not_actual = [x for x in expected_remaining_sstate if x not in actual_remaining_sstate]
207 self.assertFalse(expected_not_actual, msg="Extra files ware removed: %s" ', '.join(map(str, expected_not_actual))) 207 self.assertFalse(expected_not_actual, msg="Extra files were removed: %s" ', '.join(map(str, expected_not_actual)))
208 208
209 def test_sstate_cache_management_script_using_pr_1(self): 209 def test_sstate_cache_management_script_using_pr_1(self):
210 global_config = [] 210 global_config = []
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py
index 1659926..78c7a46 100644
--- a/meta/lib/oeqa/selftest/context.py
+++ b/meta/lib/oeqa/selftest/context.py
@@ -39,7 +39,7 @@ class NonConcurrentTestSuite(unittest.TestSuite):
39 39
40def removebuilddir(d): 40def removebuilddir(d):
41 delay = 5 41 delay = 5
42 while delay and os.path.exists(d + "/bitbake.lock"): 42 while delay and (os.path.exists(d + "/bitbake.lock") or os.path.exists(d + "/cache/hashserv.db-wal")):
43 time.sleep(1) 43 time.sleep(1)
44 delay = delay - 1 44 delay = delay - 1
45 # Deleting these directories takes a lot of time, use autobuilder 45 # Deleting these directories takes a lot of time, use autobuilder
diff --git a/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
index 5d6f200..e9dfa07 100644
--- a/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
+++ b/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
@@ -10,7 +10,7 @@ DEPENDS = "efivar popt"
10 10
11COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" 11COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
12 12
13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ 13SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=master \
14 file://0001-remove-extra-decl.patch \ 14 file://0001-remove-extra-decl.patch \
15 file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \ 15 file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \
16 " 16 "
diff --git a/meta/recipes-bsp/efivar/efivar_37.bb b/meta/recipes-bsp/efivar/efivar_37.bb
index b11f153..fc36913 100644
--- a/meta/recipes-bsp/efivar/efivar_37.bb
+++ b/meta/recipes-bsp/efivar/efivar_37.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
7 7
8COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" 8COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
9 9
10SRC_URI = "git://github.com/rhinstaller/efivar.git \ 10SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=master;protocol=https \
11 file://determinism.patch \ 11 file://determinism.patch \
12 file://no-werror.patch" 12 file://no-werror.patch"
13SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10" 13SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10"
diff --git a/meta/recipes-bsp/opensbi/opensbi_0.9.bb b/meta/recipes-bsp/opensbi/opensbi_0.9.bb
index cb9f346..1956fbf 100644
--- a/meta/recipes-bsp/opensbi/opensbi_0.9.bb
+++ b/meta/recipes-bsp/opensbi/opensbi_0.9.bb
@@ -9,7 +9,7 @@ require opensbi-payloads.inc
9inherit autotools-brokensep deploy 9inherit autotools-brokensep deploy
10 10
11SRCREV = "234ed8e427f4d92903123199f6590d144e0d9351" 11SRCREV = "234ed8e427f4d92903123199f6590d144e0d9351"
12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \ 12SRC_URI = "git://github.com/riscv/opensbi.git;branch=master;protocol=https \
13 file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ 13 file://0001-Makefile-Don-t-specify-mabi-or-march.patch \
14 " 14 "
15 15
diff --git a/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb b/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
index ce14bc4..6906e53 100644
--- a/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
+++ b/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1"
10LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c" 10LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c"
11SECTION = "libs" 11SECTION = "libs"
12 12
13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https" 13SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master"
14SRCREV = "ba7564f5006d09bec51058cf4f5ac90d4dc18b3c" 14SRCREV = "ba7564f5006d09bec51058cf4f5ac90d4dc18b3c"
15 15
16S = "${WORKDIR}/git" 16S = "${WORKDIR}/git"
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index 6b92538..2423e9c 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -14,7 +14,7 @@ PE = "1"
14# repo during parse 14# repo during parse
15SRCREV = "840658b093976390e9537724f802281c9c8439f5" 15SRCREV = "840658b093976390e9537724f802281c9c8439f5"
16 16
17SRC_URI = "git://git.denx.de/u-boot.git \ 17SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
18 " 18 "
19 19
20S = "${WORKDIR}/git" 20S = "${WORKDIR}/git"
diff --git a/meta/recipes-connectivity/avahi/files/local-ping.patch b/meta/recipes-connectivity/avahi/files/local-ping.patch
index 94116ad..29c192d 100644
--- a/meta/recipes-connectivity/avahi/files/local-ping.patch
+++ b/meta/recipes-connectivity/avahi/files/local-ping.patch
@@ -1,4 +1,5 @@
1CVE: CVE-2021-36217 1CVE: CVE-2021-36217
2CVE: CVE-2021-3502
2Upstream-Status: Backport 3Upstream-Status: Backport
3Signed-off-by: Ross Burton <ross.burton@arm.com> 4Signed-off-by: Ross Burton <ross.burton@arm.com>
4 5
diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index 55c6879..7e1619a 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -10,7 +10,7 @@ DEPENDS = "gtk+3 dbus-glib dbus-glib-native intltool-native gettext-native"
10 10
11# 0.7 tag 11# 0.7 tag
12SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143" 12SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143"
13SRC_URI = "git://github.com/connectivity/connman-gnome.git \ 13SRC_URI = "git://github.com/connectivity/connman-gnome.git;branch=master;protocol=https \
14 file://0001-Removed-icon-from-connman-gnome-about-applet.patch \ 14 file://0001-Removed-icon-from-connman-gnome-about-applet.patch \
15 file://null_check_for_ipv4_config.patch \ 15 file://null_check_for_ipv4_config.patch \
16 file://images/ \ 16 file://images/ \
diff --git a/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
index e455a60..f5c87f7 100644
--- a/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
+++ b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
8 8
9DEPENDS = "avahi" 9DEPENDS = "avahi"
10 10
11SRC_URI = "git://github.com/lathiat/nss-mdns \ 11SRC_URI = "git://github.com/lathiat/nss-mdns;branch=master;protocol=https \
12 " 12 "
13 13
14SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633" 14SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633"
diff --git a/meta/recipes-connectivity/libuv/libuv_1.42.0.bb b/meta/recipes-connectivity/libuv/libuv_1.42.0.bb
index 169bd62..2dfbb8b 100644
--- a/meta/recipes-connectivity/libuv/libuv_1.42.0.bb
+++ b/meta/recipes-connectivity/libuv/libuv_1.42.0.bb
@@ -6,7 +6,7 @@ LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
7 7
8SRCREV = "6ce14710da7079eb248868171f6343bc409ea3a4" 8SRCREV = "6ce14710da7079eb248868171f6343bc409ea3a4"
9SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" 9SRC_URI = "git://github.com/libuv/libuv;branch=v1.x;protocol=https"
10 10
11S = "${WORKDIR}/git" 11S = "${WORKDIR}/git"
12 12
diff --git a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
index 837490f..4246f4d 100644
--- a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
+++ b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
@@ -8,7 +8,7 @@ SRCREV = "11f2247eccd3c161b8fd9b41143862e9fb81193c"
8PV = "20210805" 8PV = "20210805"
9PE = "1" 9PE = "1"
10 10
11SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https" 11SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=master"
12S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
13 13
14inherit autotools 14inherit autotools
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
index 33b1495..25cd8ef 100644
--- a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -108,7 +108,7 @@ do_install () {
108 install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles 108 install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles
109} 109}
110 110
111pkg_postinst:wpa-supplicant () { 111pkg_postinst:${PN} () {
112 # If we're offline, we don't need to do this. 112 # If we're offline, we don't need to do this.
113 if [ "x$D" = "x" ]; then 113 if [ "x$D" = "x" ]; then
114 killall -q -HUP dbus-daemon || true 114 killall -q -HUP dbus-daemon || true
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.34.0.bb b/meta/recipes-core/busybox/busybox-inittab_1.34.1.bb
index be8c063..be8c063 100644
--- a/meta/recipes-core/busybox/busybox-inittab_1.34.0.bb
+++ b/meta/recipes-core/busybox/busybox-inittab_1.34.1.bb
diff --git a/meta/recipes-core/busybox/busybox_1.34.0.bb b/meta/recipes-core/busybox/busybox_1.34.1.bb
index 51df1df..6aed0f0 100644
--- a/meta/recipes-core/busybox/busybox_1.34.0.bb
+++ b/meta/recipes-core/busybox/busybox_1.34.1.bb
@@ -51,4 +51,4 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
51 " 51 "
52SRC_URI:append:libc-musl = " file://musl.cfg " 52SRC_URI:append:libc-musl = " file://musl.cfg "
53 53
54SRC_URI[tarball.sha256sum] = "ec8d1615edb045b83b81966604759c4d4ac921434ab4011da604f629c06074ce" 54SRC_URI[tarball.sha256sum] = "415fbd89e5344c96acf449d94a6f956dbed62e18e835fc83e064db33a34bd549"
diff --git a/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 677768d..b39f752 100644
--- a/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -11,7 +11,7 @@ SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517"
11PV = "0.1+git${SRCPV}" 11PV = "0.1+git${SRCPV}"
12PR = "r2" 12PR = "r2"
13 13
14SRC_URI = "git://git.yoctoproject.org/${BPN}" 14SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master"
15UPSTREAM_CHECK_COMMITS = "1" 15UPSTREAM_CHECK_COMMITS = "1"
16 16
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
diff --git a/meta/recipes-core/fts/fts_1.2.7.bb b/meta/recipes-core/fts/fts_1.2.7.bb
index ea820cb..d3b0f31 100644
--- a/meta/recipes-core/fts/fts_1.2.7.bb
+++ b/meta/recipes-core/fts/fts_1.2.7.bb
@@ -10,7 +10,7 @@ SECTION = "libs"
10 10
11SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472" 11SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472"
12 12
13SRC_URI = "git://github.com/pullmoll/musl-fts.git" 13SRC_URI = "git://github.com/pullmoll/musl-fts.git;branch=master;protocol=https"
14 14
15S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
16 16
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.34.bb b/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
index 6100f3d..482e53c 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.34.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 \ 23 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/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 \
diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch b/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch
new file mode 100644
index 0000000..ebea5ef
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/CVE-2021-43396.patch
@@ -0,0 +1,184 @@
1From ff012870b2c02a62598c04daa1e54632e020fd7d Mon Sep 17 00:00:00 2001
2From: Nikita Popov <npv1310@gmail.com>
3Date: Tue, 2 Nov 2021 13:21:42 +0500
4Subject: [PATCH] gconv: Do not emit spurious NUL character in ISO-2022-JP-3
5 (bug 28524)
6
7Bugfix 27256 has introduced another issue:
8In conversion from ISO-2022-JP-3 encoding, it is possible
9to force iconv to emit extra NUL character on internal state reset.
10To do this, it is sufficient to feed iconv with escape sequence
11which switches active character set.
12The simplified check 'data->__statep->__count != ASCII_set'
13introduced by the aforementioned bugfix picks that case and
14behaves as if '\0' character has been queued thus emitting it.
15
16To eliminate this issue, these steps are taken:
17* Restore original condition
18'(data->__statep->__count & ~7) != ASCII_set'.
19It is necessary since bits 0-2 may contain
20number of buffered input characters.
21* Check that queued character is not NUL.
22Similar step is taken for main conversion loop.
23
24Bundled test case follows following logic:
25* Try to convert ISO-2022-JP-3 escape sequence
26switching active character set
27* Reset internal state by providing NULL as input buffer
28* Ensure that nothing has been converted.
29
30Signed-off-by: Nikita Popov <npv1310@gmail.com>
31
32CVE: CVE-2021-43396
33Upstream-Status: Backport [ff012870b2c02a62598c04daa1e54632e020fd7d]
34---
35 iconvdata/Makefile | 5 +++-
36 iconvdata/bug-iconv15.c | 60 +++++++++++++++++++++++++++++++++++++++
37 iconvdata/iso-2022-jp-3.c | 28 ++++++++++++------
38 3 files changed, 84 insertions(+), 9 deletions(-)
39 create mode 100644 iconvdata/bug-iconv15.c
40
41Index: git/iconvdata/Makefile
42===================================================================
43--- git.orig/iconvdata/Makefile
44+++ git/iconvdata/Makefile
45@@ -1,4 +1,5 @@
46 # Copyright (C) 1997-2021 Free Software Foundation, Inc.
47+# Copyright (C) The GNU Toolchain Authors.
48 # This file is part of the GNU C Library.
49
50 # The GNU C Library is free software; you can redistribute it and/or
51@@ -74,7 +75,7 @@ ifeq (yes,$(build-shared))
52 tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \
53 tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \
54 bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \
55- bug-iconv13 bug-iconv14
56+ bug-iconv13 bug-iconv14 bug-iconv15
57 ifeq ($(have-thread-library),yes)
58 tests += bug-iconv3
59 endif
60@@ -327,6 +328,8 @@ $(objpfx)bug-iconv12.out: $(addprefix $(
61 $(addprefix $(objpfx),$(modules.so))
62 $(objpfx)bug-iconv14.out: $(addprefix $(objpfx), $(gconv-modules)) \
63 $(addprefix $(objpfx),$(modules.so))
64+$(objpfx)bug-iconv15.out: $(addprefix $(objpfx), $(gconv-modules)) \
65+ $(addprefix $(objpfx),$(modules.so))
66
67 $(objpfx)iconv-test.out: run-iconv-test.sh \
68 $(addprefix $(objpfx), $(gconv-modules)) \
69Index: git/iconvdata/bug-iconv15.c
70===================================================================
71--- /dev/null
72+++ git/iconvdata/bug-iconv15.c
73@@ -0,0 +1,60 @@
74+/* Bug 28524: Conversion from ISO-2022-JP-3 with iconv
75+ may emit spurious NUL character on state reset.
76+ Copyright (C) The GNU Toolchain Authors.
77+ This file is part of the GNU C Library.
78+
79+ The GNU C Library is free software; you can redistribute it and/or
80+ modify it under the terms of the GNU Lesser General Public
81+ License as published by the Free Software Foundation; either
82+ version 2.1 of the License, or (at your option) any later version.
83+
84+ The GNU C Library is distributed in the hope that it will be useful,
85+ but WITHOUT ANY WARRANTY; without even the implied warranty of
86+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
87+ Lesser General Public License for more details.
88+
89+ You should have received a copy of the GNU Lesser General Public
90+ License along with the GNU C Library; if not, see
91+ <https://www.gnu.org/licenses/>. */
92+
93+#include <stddef.h>
94+#include <iconv.h>
95+#include <support/check.h>
96+
97+static int
98+do_test (void)
99+{
100+ char in[] = "\x1b(I";
101+ char *inbuf = in;
102+ size_t inleft = sizeof (in) - 1;
103+ char out[1];
104+ char *outbuf = out;
105+ size_t outleft = sizeof (out);
106+ iconv_t cd;
107+
108+ cd = iconv_open ("UTF8", "ISO-2022-JP-3");
109+ TEST_VERIFY_EXIT (cd != (iconv_t) -1);
110+
111+ /* First call to iconv should alter internal state.
112+ Now, JISX0201_Kana_set is selected and
113+ state value != ASCII_set. */
114+ TEST_VERIFY (iconv (cd, &inbuf, &inleft, &outbuf, &outleft) != (size_t) -1);
115+
116+ /* No bytes should have been added to
117+ the output buffer at this point. */
118+ TEST_VERIFY (outbuf == out);
119+ TEST_VERIFY (outleft == sizeof (out));
120+
121+ /* Second call shall emit spurious NUL character in unpatched glibc. */
122+ TEST_VERIFY (iconv (cd, NULL, NULL, &outbuf, &outleft) != (size_t) -1);
123+
124+ /* No characters are expected to be produced. */
125+ TEST_VERIFY (outbuf == out);
126+ TEST_VERIFY (outleft == sizeof (out));
127+
128+ TEST_VERIFY_EXIT (iconv_close (cd) != -1);
129+
130+ return 0;
131+}
132+
133+#include <support/test-driver.c>
134Index: git/iconvdata/iso-2022-jp-3.c
135===================================================================
136--- git.orig/iconvdata/iso-2022-jp-3.c
137+++ git/iconvdata/iso-2022-jp-3.c
138@@ -1,5 +1,6 @@
139 /* Conversion module for ISO-2022-JP-3.
140 Copyright (C) 1998-2021 Free Software Foundation, Inc.
141+ Copyright (C) The GNU Toolchain Authors.
142 This file is part of the GNU C Library.
143 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
144 and Bruno Haible <bruno@clisp.org>, 2002.
145@@ -81,20 +82,31 @@ enum
146 the output state to the initial state. This has to be done during the
147 flushing. */
148 #define EMIT_SHIFT_TO_INIT \
149- if (data->__statep->__count != ASCII_set) \
150+ if ((data->__statep->__count & ~7) != ASCII_set) \
151 { \
152 if (FROM_DIRECTION) \
153 { \
154- if (__glibc_likely (outbuf + 4 <= outend)) \
155+ uint32_t ch = data->__statep->__count >> 6; \
156+ \
157+ if (__glibc_unlikely (ch != 0)) \
158 { \
159- /* Write out the last character. */ \
160- *((uint32_t *) outbuf) = data->__statep->__count >> 6; \
161- outbuf += sizeof (uint32_t); \
162- data->__statep->__count = ASCII_set; \
163+ if (__glibc_likely (outbuf + 4 <= outend)) \
164+ { \
165+ /* Write out the last character. */ \
166+ put32u (outbuf, ch); \
167+ outbuf += 4; \
168+ data->__statep->__count &= 7; \
169+ data->__statep->__count |= ASCII_set; \
170+ } \
171+ else \
172+ /* We don't have enough room in the output buffer. */ \
173+ status = __GCONV_FULL_OUTPUT; \
174 } \
175 else \
176- /* We don't have enough room in the output buffer. */ \
177- status = __GCONV_FULL_OUTPUT; \
178+ { \
179+ data->__statep->__count &= 7; \
180+ data->__statep->__count |= ASCII_set; \
181+ } \
182 } \
183 else \
184 { \
diff --git a/meta/recipes-core/glibc/glibc_2.34.bb b/meta/recipes-core/glibc/glibc_2.34.bb
index 6dc315c..7206477 100644
--- a/meta/recipes-core/glibc/glibc_2.34.bb
+++ b/meta/recipes-core/glibc/glibc_2.34.bb
@@ -58,6 +58,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
58 file://0001-CVE-2021-38604.patch \ 58 file://0001-CVE-2021-38604.patch \
59 file://0002-CVE-2021-38604.patch \ 59 file://0002-CVE-2021-38604.patch \
60 file://0001-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \ 60 file://0001-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
61 file://CVE-2021-43396.patch \
61 " 62 "
62S = "${WORKDIR}/git" 63S = "${WORKDIR}/git"
63B = "${WORKDIR}/build-${TARGET_SYS}" 64B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
index 1d01701..48a7b8f 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.36.bb
@@ -7,7 +7,7 @@ the file /etc/network/interfaces."
7LICENSE = "GPLv2" 7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" 8LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
9 9
10SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \ 10SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https;branch=master \
11 file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \ 11 file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \
12 file://99_network \ 12 file://99_network \
13 file://0001-Define-FNM_EXTMATCH-for-musl.patch \ 13 file://0001-Define-FNM_EXTMATCH-for-musl.patch \
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 9001d3e..0a6a33b 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
@@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx"
24 24
25inherit core-image setuptools3 25inherit core-image setuptools3
26 26
27SRCREV ?= "fafe050714f68fd09706198d2d3c46d0a26d4e32" 27SRCREV ?= "3837e8bb9faac630d1207b172eca5526946f2a59"
28SRC_URI = "git://git.yoctoproject.org/poky;branch=honister \ 28SRC_URI = "git://git.yoctoproject.org/poky;branch=honister \
29 file://Yocto_Build_Appliance.vmx \ 29 file://Yocto_Build_Appliance.vmx \
30 file://Yocto_Build_Appliance.vmxf \ 30 file://Yocto_Build_Appliance.vmxf \
diff --git a/meta/recipes-core/initscripts/init-system-helpers_1.60.bb b/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
index 165f37c..46952e4 100644
--- a/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
+++ b/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
@@ -17,7 +17,7 @@ LICENSE = "BSD-3-Clause & GPLv2"
17LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072" 17LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072"
18 18
19SRCREV = "dbd9197569c0935029acd5c9b02b84c68fd937ee" 19SRCREV = "dbd9197569c0935029acd5c9b02b84c68fd937ee"
20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https" 20SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master"
21 21
22S = "${WORKDIR}/git" 22S = "${WORKDIR}/git"
23 23
diff --git a/meta/recipes-core/libxcrypt/libxcrypt.inc b/meta/recipes-core/libxcrypt/libxcrypt.inc
index 29b941d..0411de3 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSING;md5=afed27a72ae2a8075978299eebaa1f5d \
9 9
10inherit autotools pkgconfig 10inherit autotools pkgconfig
11 11
12SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" 12SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH};protocol=https"
13SRCREV = "b9116ef2245abb128a22a975d187b1272312a80c" 13SRCREV = "b9116ef2245abb128a22a975d187b1272312a80c"
14SRCBRANCH ?= "develop" 14SRCBRANCH ?= "develop"
15 15
diff --git a/meta/recipes-core/libxml/libxml2_2.9.12.bb b/meta/recipes-core/libxml/libxml2_2.9.12.bb
index 3105889..c387587 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.12.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.12.bb
@@ -36,7 +36,7 @@ PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
36 36
37inherit autotools pkgconfig binconfig-disabled ptest 37inherit autotools pkgconfig binconfig-disabled ptest
38 38
39inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} 39inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)}
40 40
41RDEPENDS:${PN}-ptest += "bash make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}" 41RDEPENDS:${PN}-ptest += "bash make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
42 42
diff --git a/meta/recipes-core/musl/libucontext_git.bb b/meta/recipes-core/musl/libucontext_git.bb
index d8ae824..9061cf0 100644
--- a/meta/recipes-core/musl/libucontext_git.bb
+++ b/meta/recipes-core/musl/libucontext_git.bb
@@ -10,7 +10,7 @@ DEPENDS = ""
10 10
11PV = "1.1+${SRCPV}" 11PV = "1.1+${SRCPV}"
12SRCREV = "335ee864ef6f4a5d4b525453fd9dbfb3507cfecc" 12SRCREV = "335ee864ef6f4a5d4b525453fd9dbfb3507cfecc"
13SRC_URI = "git://github.com/kaniini/libucontext \ 13SRC_URI = "git://github.com/kaniini/libucontext;branch=master;protocol=https \
14 file://0001-meson-Add-option-to-pass-cpu.patch \ 14 file://0001-meson-Add-option-to-pass-cpu.patch \
15 " 15 "
16 16
diff --git a/meta/recipes-core/musl/musl-obstack.bb b/meta/recipes-core/musl/musl-obstack.bb
index 3003935..74de48c 100644
--- a/meta/recipes-core/musl/musl-obstack.bb
+++ b/meta/recipes-core/musl/musl-obstack.bb
@@ -10,7 +10,7 @@ SECTION = "libs"
10 10
11PV = "1.1" 11PV = "1.1"
12SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4" 12SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4"
13SRC_URI = "git://github.com/pullmoll/musl-obstack" 13SRC_URI = "git://github.com/pullmoll/musl-obstack;branch=master;protocol=https"
14 14
15UPSTREAM_CHECK_COMMITS = "1" 15UPSTREAM_CHECK_COMMITS = "1"
16 16
diff --git a/meta/recipes-core/musl/musl-utils.bb b/meta/recipes-core/musl/musl-utils.bb
index 4f99d43..00d088d 100644
--- a/meta/recipes-core/musl/musl-utils.bb
+++ b/meta/recipes-core/musl/musl-utils.bb
@@ -11,7 +11,7 @@ SECTION = "utils"
11PV = "20170421" 11PV = "20170421"
12 12
13SRCREV = "fb5630138ccabbbc14a19d372096a04e42573c7d" 13SRCREV = "fb5630138ccabbbc14a19d372096a04e42573c7d"
14SRC_URI = "git://github.com/boltlinux/musl-utils" 14SRC_URI = "git://github.com/boltlinux/musl-utils;branch=master;protocol=https"
15 15
16UPSTREAM_CHECK_COMMITS = "1" 16UPSTREAM_CHECK_COMMITS = "1"
17 17
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index 06b0e06..a2f96f1 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -12,7 +12,7 @@ PV = "${BASEVER}+git${SRCPV}"
12 12
13# mirror is at git://github.com/kraj/musl.git 13# mirror is at git://github.com/kraj/musl.git
14 14
15SRC_URI = "git://git.musl-libc.org/musl \ 15SRC_URI = "git://git.musl-libc.org/musl;branch=master \
16 file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ 16 file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
17 file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ 17 file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
18 " 18 "
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index cbb12ca..64cce32 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -13,7 +13,7 @@ BINCONFIG = "${bindir}/ncurses5-config ${bindir}/ncursesw5-config \
13inherit autotools binconfig-disabled multilib_header pkgconfig 13inherit autotools binconfig-disabled multilib_header pkgconfig
14 14
15# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/ 15# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/
16SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https" 16SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https;branch=master"
17 17
18EXTRA_AUTORECONF = "-I m4" 18EXTRA_AUTORECONF = "-I m4"
19 19
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 5d54bad..ce3b650 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -25,8 +25,8 @@ SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
25 file://0001-Fix-VLA-parameter-warning.patch \ 25 file://0001-Fix-VLA-parameter-warning.patch \
26 " 26 "
27 27
28PV = "edk2-stable202105" 28PV = "edk2-stable202108"
29SRCREV = "e1999b264f1f9d7230edf2448f757c73da567832" 29SRCREV = "7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
30UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)" 30UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
31 31
32inherit deploy 32inherit deploy
diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
index 39e5002..9166a08 100644
--- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
+++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -25,7 +25,7 @@ RDEPENDS:${PN} = "\
25 nativesdk-makedevs \ 25 nativesdk-makedevs \
26 nativesdk-cmake \ 26 nativesdk-cmake \
27 nativesdk-meson \ 27 nativesdk-meson \
28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ 28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland-tools nativesdk-wayland-dev', '', d)} \
29 nativesdk-sdk-provides-dummy \ 29 nativesdk-sdk-provides-dummy \
30 nativesdk-bison \ 30 nativesdk-bison \
31 nativesdk-flex \ 31 nativesdk-flex \
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 1be7ece..6525378 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -10,7 +10,7 @@ SRCREV = "0a902f7cd875ccf018456451be369f05fa55f962"
10PV = "0.1+git${SRCPV}" 10PV = "0.1+git${SRCPV}"
11PR = "r15" 11PR = "r15"
12 12
13SRC_URI = "git://git.yoctoproject.org/${BPN} \ 13SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master \
14 file://psplash-init \ 14 file://psplash-init \
15 file://psplash-start.service \ 15 file://psplash-start.service \
16 file://psplash-systemd.service \ 16 file://psplash-systemd.service \
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index 0534172..13b8b61 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
16 16
17SRCREV = "090378dcb1de5ca66900503210e85d63075fa70a" 17SRCREV = "090378dcb1de5ca66900503210e85d63075fa70a"
18SRCBRANCH = "v249-stable" 18SRCBRANCH = "v249-stable"
19SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} \ 19SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
20" 20"
21 21
22S = "${WORKDIR}/git" 22S = "${WORKDIR}/git"
diff --git a/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch b/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
index 1de7ccf..444e123 100644
--- a/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -10,10 +10,10 @@ This is to avoid build failures like below for musl.
10Upstream-Status: Inappropriate [musl specific] 10Upstream-Status: Inappropriate [musl specific]
11 11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13
14--- 13---
15 src/basic/missing_type.h | 20 ++++++++++++++++++++ 14 src/basic/missing_type.h | 20 ++++++++++++++++++++
16 1 file changed, 20 insertions(+) 15 src/shared/mount-setup.c | 1 +
16 2 files changed, 21 insertions(+)
17 17
18diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h 18diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
19index aeaf6ad5ec..3df1084ef2 100644 19index aeaf6ad5ec..3df1084ef2 100644
@@ -43,3 +43,15 @@ index aeaf6ad5ec..3df1084ef2 100644
43+#ifndef FTW_SKIP_SIBLINGS 43+#ifndef FTW_SKIP_SIBLINGS
44+#define FTW_SKIP_SIBLINGS 3 44+#define FTW_SKIP_SIBLINGS 3
45+#endif 45+#endif
46diff --git a/src/shared/mount-setup.c b/src/shared/mount-setup.c
47index ef3527e9a7..c1cab40eb8 100644
48--- a/src/shared/mount-setup.c
49+++ b/src/shared/mount-setup.c
50@@ -32,6 +32,7 @@
51 #include "strv.h"
52 #include "user-util.h"
53 #include "virt.h"
54+#include "missing_type.h"
55
56 typedef enum MountMode {
57 MNT_NONE = 0,
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 da71667..daee5c2 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
@@ -6,7 +6,7 @@ SECTION = "base"
6LICENSE = "GPLv2+" 6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f535425934bb5001f2037d9" 7LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f535425934bb5001f2037d9"
8 8
9SRC_URI = "git://git.yoctoproject.org/update-rc.d" 9SRC_URI = "git://git.yoctoproject.org/update-rc.d;branch=master"
10SRCREV = "8636cf478d426b568c1be11dbd9346f67e03adac" 10SRCREV = "8636cf478d426b568c1be11dbd9346f67e03adac"
11 11
12UPSTREAM_CHECK_COMMITS = "1" 12UPSTREAM_CHECK_COMMITS = "1"
diff --git a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index 974faa3..59fcd8c 100644
--- a/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -90,7 +90,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=44ac4678311254db62edf8fd39cb8124"
90 90
91UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)" 91UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
92 92
93SRC_URI = "git://github.com/xrmx/bootchart.git \ 93SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \
94 file://bootchartd_stop.sh \ 94 file://bootchartd_stop.sh \
95 file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ 95 file://0001-collector-Allocate-space-on-heap-for-chunks.patch \
96 file://0001-bootchart2-support-usrmerge.patch \ 96 file://0001-bootchart2-support-usrmerge.patch \
@@ -99,6 +99,10 @@ SRC_URI = "git://github.com/xrmx/bootchart.git \
99S = "${WORKDIR}/git" 99S = "${WORKDIR}/git"
100SRCREV = "868a2afab9da34f32c007d773b77253c93104636" 100SRCREV = "868a2afab9da34f32c007d773b77253c93104636"
101 101
102# remove at next version upgrade or when output changes
103PR = "r1"
104HASHEQUIV_HASH_VERSION .= ".1"
105
102inherit systemd update-rc.d python3native update-alternatives 106inherit systemd update-rc.d python3native update-alternatives
103 107
104ALTERNATIVE:${PN} = "bootchartd" 108ALTERNATIVE:${PN} = "bootchartd"
@@ -131,7 +135,7 @@ do_install () {
131 export PKGLIBDIR="${base_libdir}/bootchart" 135 export PKGLIBDIR="${base_libdir}/bootchart"
132 export SYSTEMD_UNIT_DIR="${systemd_system_unitdir}" 136 export SYSTEMD_UNIT_DIR="${systemd_system_unitdir}"
133 137
134 oe_runmake install 138 oe_runmake install NO_PYTHON_COMPILE=1
135 install -d ${D}${sysconfdir}/init.d 139 install -d ${D}${sysconfdir}/init.d
136 install -m 0755 ${WORKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d 140 install -m 0755 ${WORKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d
137 141
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.13.1.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.13.1.bb
index 5288978..9b28528 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.13.1.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.13.1.bb
@@ -16,7 +16,7 @@ SECTION = "base"
16DEPENDS = "lzo util-linux zlib" 16DEPENDS = "lzo util-linux zlib"
17DEPENDS:append:class-target = " udev" 17DEPENDS:append:class-target = " udev"
18 18
19SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ 19SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
20 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ 20 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
21 file://0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch \ 21 file://0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch \
22 " 22 "
diff --git a/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.4.bb b/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.4.bb
index 500b508..7a9656b 100644
--- a/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.4.bb
+++ b/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.4.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki"
4LICENSE = "GPLv2" 4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" 5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
6 6
7SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ 7SRC_URI = "git://github.com/rpm-software-management/createrepo_c;branch=master;protocol=https \
8 file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ 8 file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
9 " 9 "
10 10
diff --git a/meta/recipes-devtools/distcc/distcc_3.4.bb b/meta/recipes-devtools/distcc/distcc_3.4.bb
index 7adf8a8..93983f6 100644
--- a/meta/recipes-devtools/distcc/distcc_3.4.bb
+++ b/meta/recipes-devtools/distcc/distcc_3.4.bb
@@ -15,7 +15,7 @@ PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt"
15 15
16RRECOMMENDS:${PN}-server = "avahi-daemon" 16RRECOMMENDS:${PN}-server = "avahi-daemon"
17 17
18SRC_URI = "git://github.com/distcc/distcc.git \ 18SRC_URI = "git://github.com/distcc/distcc.git;branch=master;protocol=https \
19 file://default \ 19 file://default \
20 file://distcc \ 20 file://distcc \
21 file://distcc.service \ 21 file://distcc.service \
diff --git a/meta/recipes-devtools/dnf/dnf_4.8.0.bb b/meta/recipes-devtools/dnf/dnf_4.8.0.bb
index f51d747..9070077 100644
--- a/meta/recipes-devtools/dnf/dnf_4.8.0.bb
+++ b/meta/recipes-devtools/dnf/dnf_4.8.0.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ 8 file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \
9 " 9 "
10 10
11SRC_URI = "git://github.com/rpm-software-management/dnf.git \ 11SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protocol=https \
12 file://0001-Corretly-install-tmpfiles.d-configuration.patch \ 12 file://0001-Corretly-install-tmpfiles.d-configuration.patch \
13 file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ 13 file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \
14 file://0005-Do-not-prepend-installroot-to-logdir.patch \ 14 file://0005-Do-not-prepend-installroot-to-logdir.patch \
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index b6807b0..74074cf 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -15,7 +15,7 @@ inherit autotools gettext perlnative pkgconfig perl-version update-alternatives
15 15
16PERL:class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" 16PERL:class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
17 17
18export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}" 18export PERL_LIBDIR = "${libdir}/perl5/${@get_perl_version(d)}"
19PERL_LIBDIR:class-native = "${libdir}/perl-native/perl/${@get_perl_version(d)}" 19PERL_LIBDIR:class-native = "${libdir}/perl-native/perl/${@get_perl_version(d)}"
20 20
21EXTRA_OECONF = "\ 21EXTRA_OECONF = "\
@@ -66,7 +66,7 @@ FILES:update-alternatives-dpkg = "${bindir}/update-alternatives ${localstatedir}
66RPROVIDES:update-alternatives-dpkg += "update-alternatives" 66RPROVIDES:update-alternatives-dpkg += "update-alternatives"
67 67
68PACKAGES += "${PN}-perl" 68PACKAGES += "${PN}-perl"
69FILES:${PN}-perl = "${libdir}/perl/${@get_perl_version(d)}" 69FILES:${PN}-perl = "${libdir}/perl5/${@get_perl_version(d)}"
70 70
71RDEPENDS:${PN}-perl += "perl-module-carp perl-module-constant \ 71RDEPENDS:${PN}-perl += "perl-module-carp perl-module-constant \
72 perl-module-cwd perl-module-digest \ 72 perl-module-cwd perl-module-digest \
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
index bcffa77..a030fa6 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
@@ -19,7 +19,7 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=d50be0580c0b0a7fbc7a4830bbe6c12b \
19SECTION = "base" 19SECTION = "base"
20DEPENDS = "util-linux attr autoconf-archive" 20DEPENDS = "util-linux attr autoconf-archive"
21 21
22SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git" 22SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master"
23S = "${WORKDIR}/git" 23S = "${WORKDIR}/git"
24 24
25inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest 25inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest
diff --git a/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb b/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb
index d07d5c4..77cce2f 100644
--- a/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb
+++ b/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848"
5HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README" 5HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
6 6
7SRCREV = "2cd522105ea771ec30b269cd4c57e2265a4d6349" 7SRCREV = "2cd522105ea771ec30b269cd4c57e2265a4d6349"
8SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git" 8SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master"
9 9
10UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))" 10UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
11 11
diff --git a/meta/recipes-devtools/file/file_5.40.bb b/meta/recipes-devtools/file/file_5.40.bb
index 32b61f4..0360eb5 100644
--- a/meta/recipes-devtools/file/file_5.40.bb
+++ b/meta/recipes-devtools/file/file_5.40.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdd
11DEPENDS = "file-replacement-native" 11DEPENDS = "file-replacement-native"
12DEPENDS:class-native = "bzip2-replacement-native" 12DEPENDS:class-native = "bzip2-replacement-native"
13 13
14SRC_URI = "git://github.com/file/file.git" 14SRC_URI = "git://github.com/file/file.git;branch=master;protocol=https"
15 15
16SRCREV = "f49fda6f52a9477d817dbd9c06afab02daf025f8" 16SRCREV = "f49fda6f52a9477d817dbd9c06afab02daf025f8"
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/glide/glide_0.13.3.bb b/meta/recipes-devtools/glide/glide_0.13.3.bb
index e943dc1..db703c2 100644
--- a/meta/recipes-devtools/glide/glide_0.13.3.bb
+++ b/meta/recipes-devtools/glide/glide_0.13.3.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc350c35b2" 5LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc350c35b2"
6 6
7GO_IMPORT = "github.com/Masterminds/glide" 7GO_IMPORT = "github.com/Masterminds/glide"
8SRC_URI = "git://${GO_IMPORT}" 8SRC_URI = "git://${GO_IMPORT};branch=master;protocol=https"
9SRCREV = "8ed5b9292379d86c39592a7e6a58eb9c903877cf" 9SRCREV = "8ed5b9292379d86c39592a7e6a58eb9c903877cf"
10 10
11inherit go 11inherit go
diff --git a/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index 34b4250..794e395 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -12,7 +12,7 @@ INHIBIT_DEFAULT_DEPS = "1"
12SRCREV = "805517123cbfe33d17c989a18e78c5789fab0437" 12SRCREV = "805517123cbfe33d17c989a18e78c5789fab0437"
13PV = "20210722+git${SRCPV}" 13PV = "20210722+git${SRCPV}"
14 14
15SRC_URI = "git://git.savannah.gnu.org/config.git \ 15SRC_URI = "git://git.savannah.gnu.org/config.git;branch=master \
16 file://gnu-configize.in" 16 file://gnu-configize.in"
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
18UPSTREAM_CHECK_COMMITS = "1" 18UPSTREAM_CHECK_COMMITS = "1"
diff --git a/meta/recipes-devtools/go/go-1.16.7.inc b/meta/recipes-devtools/go/go-1.16.8.inc
index 02a9268..925bf46 100644
--- a/meta/recipes-devtools/go/go-1.16.7.inc
+++ b/meta/recipes-devtools/go/go-1.16.8.inc
@@ -1,7 +1,7 @@
1require go-common.inc 1require go-common.inc
2 2
3GO_BASEVERSION = "1.16" 3GO_BASEVERSION = "1.16"
4PV = "1.16.7" 4PV = "1.16.8"
5FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" 5FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
6 6
7LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
@@ -17,7 +17,7 @@ SRC_URI += "\
17 file://0008-use-GOBUILDMODE-to-set-buildmode.patch \ 17 file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
18 file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \ 18 file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
19" 19"
20SRC_URI[main.sha256sum] = "1a9f2894d3d878729f7045072f30becebe243524cf2fce4e0a7b248b1e0654ac" 20SRC_URI[main.sha256sum] = "8f2a8c24b793375b3243df82fdb0c8387486dcc8a892ca1c991aa99ace086b98"
21 21
22# Upstream don't believe it is a signifiant real world issue and will only 22# Upstream don't believe it is a signifiant real world issue and will only
23# fix in 1.17 onwards where we can drop this. 23# fix in 1.17 onwards where we can drop this.
diff --git a/meta/recipes-devtools/go/go-binary-native_1.16.7.bb b/meta/recipes-devtools/go/go-binary-native_1.16.8.bb
index cb54c28..9262220 100644
--- a/meta/recipes-devtools/go/go-binary-native_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-binary-native_1.16.8.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
8PROVIDES = "go-native" 8PROVIDES = "go-native"
9 9
10SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" 10SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
11SRC_URI[go_linux_amd64.sha256sum] = "7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04" 11SRC_URI[go_linux_amd64.sha256sum] = "f32501aeb8b7b723bc7215f6c373abb6981bbc7e1c7b44e9f07317e1a300dce2"
12SRC_URI[go_linux_arm64.sha256sum] = "63d6b53ecbd2b05c1f0e9903c92042663f2f68afdbb67f4d0d12700156869bac" 12SRC_URI[go_linux_arm64.sha256sum] = "430dbe185417204f6788913197ab3b189b6deae9c9b524f262858e53dab239c2"
13 13
14UPSTREAM_CHECK_URI = "https://golang.org/dl/" 14UPSTREAM_CHECK_URI = "https://golang.org/dl/"
15UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux" 15UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.16.7.bb b/meta/recipes-devtools/go/go-cross-canadian_1.16.8.bb
index 7ac9449..7ac9449 100644
--- a/meta/recipes-devtools/go/go-cross-canadian_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-cross-canadian_1.16.8.bb
diff --git a/meta/recipes-devtools/go/go-cross_1.16.7.bb b/meta/recipes-devtools/go/go-cross_1.16.8.bb
index 80b5a03..80b5a03 100644
--- a/meta/recipes-devtools/go/go-cross_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-cross_1.16.8.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.16.7.bb b/meta/recipes-devtools/go/go-crosssdk_1.16.8.bb
index 1857c8a..1857c8a 100644
--- a/meta/recipes-devtools/go/go-crosssdk_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-crosssdk_1.16.8.bb
diff --git a/meta/recipes-devtools/go/go-native_1.16.7.bb b/meta/recipes-devtools/go/go-native_1.16.8.bb
index ffe4ef3..ffe4ef3 100644
--- a/meta/recipes-devtools/go/go-native_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-native_1.16.8.bb
diff --git a/meta/recipes-devtools/go/go-runtime_1.16.7.bb b/meta/recipes-devtools/go/go-runtime_1.16.8.bb
index 63464a1..63464a1 100644
--- a/meta/recipes-devtools/go/go-runtime_1.16.7.bb
+++ b/meta/recipes-devtools/go/go-runtime_1.16.8.bb
diff --git a/meta/recipes-devtools/go/go_1.16.7.bb b/meta/recipes-devtools/go/go_1.16.8.bb
index 34dc89b..34dc89b 100644
--- a/meta/recipes-devtools/go/go_1.16.7.bb
+++ b/meta/recipes-devtools/go/go_1.16.8.bb
diff --git a/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb b/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb
index 502bc46..09861d9 100644
--- a/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb
+++ b/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Libcomps is alternative for