summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--bitbake/README2
-rwxr-xr-xbitbake/bin/bitbake2
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst3
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst37
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst13
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst111
-rw-r--r--bitbake/lib/bb/__init__.py4
-rw-r--r--bitbake/lib/bb/build.py17
-rw-r--r--bitbake/lib/bb/cache.py3
-rw-r--r--bitbake/lib/bb/codeparser.py6
-rw-r--r--bitbake/lib/bb/cooker.py34
-rw-r--r--bitbake/lib/bb/event.py31
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py4
-rw-r--r--bitbake/lib/bb/fetch2/az.py93
-rw-r--r--bitbake/lib/bb/providers.py84
-rw-r--r--bitbake/lib/bb/runqueue.py106
-rw-r--r--bitbake/lib/bb/tests/color.py2
-rw-r--r--bitbake/lib/bb/tests/fetch.py2
-rw-r--r--bitbake/lib/bb/tinfoil.py2
-rw-r--r--bitbake/lib/bblayers/query.py2
-rw-r--r--documentation/README32
-rw-r--r--documentation/bitbake.rst19
-rw-r--r--documentation/boilerplate.rst2
-rw-r--r--documentation/brief-yoctoprojectqs/index.rst83
-rw-r--r--documentation/bsp-guide/bsp.rst6
-rw-r--r--documentation/dev-manual/common-tasks.rst343
-rw-r--r--documentation/dev-manual/qemu.rst10
-rw-r--r--documentation/dev-manual/start.rst23
-rw-r--r--documentation/index.rst2
-rw-r--r--documentation/kernel-dev/advanced.rst42
-rw-r--r--documentation/kernel-dev/common.rst93
-rw-r--r--documentation/kernel-dev/intro.rst3
-rw-r--r--documentation/kernel-dev/maint-appx.rst2
-rw-r--r--documentation/overview-manual/concepts.rst96
-rw-r--r--documentation/overview-manual/development-environment.rst17
-rw-r--r--documentation/overview-manual/intro.rst13
-rw-r--r--documentation/overview-manual/yp-intro.rst133
-rw-r--r--documentation/poky.yaml14
-rw-r--r--documentation/profile-manual/usage.rst30
-rw-r--r--documentation/ref-manual/TODO6
-rw-r--r--documentation/ref-manual/classes.rst69
-rw-r--r--documentation/ref-manual/devtool-reference.rst4
-rw-r--r--documentation/ref-manual/faq.rst4
-rw-r--r--documentation/ref-manual/kickstart.rst4
-rw-r--r--documentation/ref-manual/migration-1.3.rst6
-rw-r--r--documentation/ref-manual/migration-1.4.rst6
-rw-r--r--documentation/ref-manual/migration-1.5.rst8
-rw-r--r--documentation/ref-manual/migration-1.6.rst6
-rw-r--r--documentation/ref-manual/migration-1.7.rst8
-rw-r--r--documentation/ref-manual/migration-1.8.rst6
-rw-r--r--documentation/ref-manual/migration-2.0.rst6
-rw-r--r--documentation/ref-manual/migration-2.1.rst13
-rw-r--r--documentation/ref-manual/migration-2.2.rst14
-rw-r--r--documentation/ref-manual/migration-2.3.rst6
-rw-r--r--documentation/ref-manual/migration-2.4.rst6
-rw-r--r--documentation/ref-manual/migration-2.5.rst6
-rw-r--r--documentation/ref-manual/migration-2.6.rst10
-rw-r--r--documentation/ref-manual/migration-2.7.rst6
-rw-r--r--documentation/ref-manual/migration-3.0.rst6
-rw-r--r--documentation/ref-manual/migration-3.1.rst6
-rw-r--r--documentation/ref-manual/migration-3.2.rst8
-rw-r--r--documentation/ref-manual/migration-3.3.rst168
-rw-r--r--documentation/ref-manual/migration.rst1
-rw-r--r--documentation/ref-manual/release-process.rst7
-rw-r--r--documentation/ref-manual/resources.rst4
-rw-r--r--documentation/ref-manual/structure.rst2
-rw-r--r--documentation/ref-manual/system-requirements.rst23
-rw-r--r--documentation/ref-manual/terms.rst11
-rw-r--r--documentation/ref-manual/variables.rst131
-rw-r--r--documentation/releases.rst2
-rw-r--r--documentation/sdk-manual/appendix-customizing.rst27
-rw-r--r--documentation/sdk-manual/appendix-obtain.rst22
-rw-r--r--documentation/sdk-manual/extensible.rst21
-rw-r--r--documentation/sdk-manual/intro.rst4
-rw-r--r--documentation/sdk-manual/using.rst22
-rw-r--r--documentation/sdk-manual/working-projects.rst9
-rw-r--r--documentation/sphinx-static/switchers.js2
-rw-r--r--documentation/test-manual/intro.rst10
-rw-r--r--documentation/test-manual/test-process.rst6
-rw-r--r--documentation/test-manual/understand-autobuilder.rst16
-rw-r--r--documentation/toaster-manual/reference.rst4
-rw-r--r--documentation/toaster-manual/setup-and-use.rst18
-rw-r--r--meta-poky/conf/distro/include/poky-world-exclude.inc2
-rw-r--r--meta-poky/conf/distro/poky-tiny.conf2
-rw-r--r--meta-poky/conf/distro/poky.conf11
-rw-r--r--meta-poky/conf/layer.conf2
-rw-r--r--meta-poky/conf/local.conf.sample2
-rw-r--r--meta-poky/conf/local.conf.sample.extended5
-rw-r--r--meta-selftest/conf/layer.conf2
-rw-r--r--meta-selftest/recipes-test/aspell/aspell_0.0.0.1.bb1
-rw-r--r--meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb1
-rw-r--r--meta-selftest/recipes-test/poison/poison.bb16
-rw-r--r--meta-skeleton/conf/layer.conf2
-rw-r--r--meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb1
-rw-r--r--meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb1
-rw-r--r--meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb2
-rw-r--r--meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb3
-rw-r--r--meta-skeleton/recipes-skeleton/service/service_0.1.bb1
-rw-r--r--meta-yocto-bsp/conf/layer.conf2
-rw-r--r--meta-yocto-bsp/conf/machine/beaglebone-yocto.conf4
-rw-r--r--meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend16
-rw-r--r--meta-yocto-bsp/wic/beaglebone-yocto.wks2
-rw-r--r--meta/classes/base.bbclass14
-rw-r--r--meta/classes/buildhistory.bbclass3
-rw-r--r--meta/classes/buildstats.bbclass42
-rw-r--r--meta/classes/cmake.bbclass5
-rw-r--r--meta/classes/core-image.bbclass2
-rw-r--r--meta/classes/devshell.bbclass1
-rw-r--r--meta/classes/externalsrc.bbclass16
-rw-r--r--meta/classes/godep.bbclass8
-rw-r--r--meta/classes/image-live.bbclass2
-rw-r--r--meta/classes/image.bbclass10
-rw-r--r--meta/classes/insane.bbclass22
-rw-r--r--meta/classes/kernel-fitimage.bbclass92
-rw-r--r--meta/classes/kernel-yocto.bbclass10
-rw-r--r--meta/classes/license.bbclass9
-rw-r--r--meta/classes/linux-dummy.bbclass26
-rw-r--r--meta/classes/meson.bbclass54
-rw-r--r--meta/classes/metadata_scm.bbclass10
-rw-r--r--meta/classes/multilib_global.bbclass67
-rw-r--r--meta/classes/populate_sdk_base.bbclass7
-rw-r--r--meta/classes/populate_sdk_ext.bbclass32
-rw-r--r--meta/classes/qemuboot.bbclass6
-rw-r--r--meta/classes/rootfs-postcommands.bbclass2
-rw-r--r--meta/classes/sanity.bbclass2
-rw-r--r--meta/classes/sstate.bbclass72
-rw-r--r--meta/classes/testimage.bbclass1
-rw-r--r--meta/classes/toolchain-scripts.bbclass3
-rw-r--r--meta/classes/uboot-config.bbclass58
-rw-r--r--meta/classes/uboot-sign.bbclass419
-rw-r--r--meta/conf/bitbake.conf12
-rw-r--r--meta/conf/distro/include/maintainers.inc3
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc2
-rw-r--r--meta/conf/image-uefi.conf2
-rw-r--r--meta/conf/layer.conf4
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc64.inc3
-rw-r--r--meta/conf/machine/include/qemuboot-mips.inc2
-rw-r--r--meta/conf/machine/include/riscv/qemuriscv.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa32.inc6
-rw-r--r--meta/conf/machine/qemuarm.conf6
-rw-r--r--meta/conf/machine/qemuarm64.conf6
-rw-r--r--meta/conf/machine/qemuarmv5.conf2
-rw-r--r--meta/conf/machine/qemuppc64.conf24
-rw-r--r--meta/conf/machine/qemuriscv32.conf16
-rw-r--r--meta/files/ext-sdk-prepare.py17
-rw-r--r--meta/lib/bblayers/create.py6
-rw-r--r--meta/lib/bblayers/templates/layer.conf10
-rw-r--r--meta/lib/oe/copy_buildsystem.py6
-rw-r--r--meta/lib/oe/cve_check.py7
-rw-r--r--meta/lib/oe/rootfs.py8
-rw-r--r--meta/lib/oe/utils.py31
-rw-r--r--meta/lib/oeqa/core/target/qemu.py4
-rw-r--r--meta/lib/oeqa/core/utils/concurrencytest.py53
-rw-r--r--meta/lib/oeqa/runtime/cases/parselogs.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/weston.py6
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py12
-rw-r--r--meta/lib/oeqa/selftest/cases/cve_check.py8
-rw-r--r--meta/lib/oeqa/selftest/cases/distrodata.py36
-rw-r--r--meta/lib/oeqa/selftest/cases/fetch.py54
-rw-r--r--meta/lib/oeqa/selftest/cases/fitimage.py468
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/wic.py18
-rw-r--r--meta/lib/oeqa/targetcontrol.py2
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py8
-rw-r--r--meta/lib/oeqa/utils/qemutinyrunner.py6
-rwxr-xr-xmeta/recipes-bsp/formfactor/files/qemuppc64/machconfig10
-rw-r--r--meta/recipes-bsp/grub/files/0001-RISC-V-Restore-the-typcast-to-long.patch39
-rw-r--r--meta/recipes-bsp/grub/files/6643507ce30f775008e093580f0c9499dfb2c485.patch47
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-10713.patch73
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-14308-calloc-Use-calloc-at-most-places.patch1863
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-14309-CVE-2020-14310-CVE-2020-14311-malloc-Use-overflow-checking-primitives-where-we-do-.patch1330
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-15706-script-Avoid-a-use-after-free-when-redefining-a-func.patch117
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-15707-linux-Fix-integer-overflows-in-initrd-size-handling.patch177
-rw-r--r--meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch15
-rw-r--r--meta/recipes-bsp/grub/files/calloc-Make-sure-we-always-have-an-overflow-checking.patch246
-rw-r--r--meta/recipes-bsp/grub/files/determinism.patch58
-rw-r--r--meta/recipes-bsp/grub/files/lvm-Add-LVM-cache-logical-volume-handling.patch287
-rw-r--r--meta/recipes-bsp/grub/files/safemath-Add-some-arithmetic-primitives-that-check-f.patch94
-rw-r--r--meta/recipes-bsp/grub/files/script-Remove-unused-fields-from-grub_script_functio.patch37
-rw-r--r--meta/recipes-bsp/grub/grub-efi_git.bb (renamed from meta/recipes-bsp/grub/grub-efi_2.04.bb)2
-rw-r--r--meta/recipes-bsp/grub/grub2.inc25
-rw-r--r--meta/recipes-bsp/grub/grub_git.bb (renamed from meta/recipes-bsp/grub/grub_2.04.bb)0
-rw-r--r--meta/recipes-bsp/u-boot/files/0001-add-valid-fdt-check.patch36
-rw-r--r--meta/recipes-bsp/u-boot/files/0001-riscv32-Use-double-float-ABI-for-rv32.patch42
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27097-1.patch71
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27097-2.patch419
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27097-3.patch105
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27097-4.patch73
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27138-1.patch245
-rw-r--r--meta/recipes-bsp/u-boot/files/CVE-2021-27138-2.patch109
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc7
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc46
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2021.01.bb2
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/0001-avoid-start-failure-with-bind-user.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/0001-avoid-start-failure-with-bind-user.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/0001-named-lwresd-V-and-start-log-hide-build-options.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/0001-named-lwresd-V-and-start-log-hide-build-options.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/bind-ensure-searching-for-json-headers-searches-sysr.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/bind-ensure-searching-for-json-headers-searches-sysr.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/bind9 (renamed from meta/recipes-connectivity/bind/bind-9.16.11/bind9)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/conf.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/conf.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/generate-rndc-key.sh (renamed from meta/recipes-connectivity/bind/bind-9.16.11/generate-rndc-key.sh)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/init.d-add-support-for-read-only-rootfs.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/init.d-add-support-for-read-only-rootfs.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/make-etc-initd-bind-stop-work.patch (renamed from meta/recipes-connectivity/bind/bind-9.16.11/make-etc-initd-bind-stop-work.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.12/named.service (renamed from meta/recipes-connectivity/bind/bind-9.16.11/named.service)0
-rw-r--r--meta/recipes-connectivity/bind/bind_9.16.12.bb (renamed from meta/recipes-connectivity/bind/bind_9.16.11.bb)7
-rw-r--r--meta/recipes-connectivity/openssh/openssh/0f90440ca70abab947acbd77795e9f130967956c.patch28
-rw-r--r--meta/recipes-connectivity/openssh/openssh_8.5p1.bb (renamed from meta/recipes-connectivity/openssh/openssh_8.4p1.bb)7
-rw-r--r--meta/recipes-connectivity/openssl/openssl/0003-Add-support-for-io_pgetevents_time64-syscall.patch62
-rw-r--r--meta/recipes-connectivity/openssl/openssl/0004-Fixup-support-for-io_pgetevents_time64-syscall.patch99
-rw-r--r--meta/recipes-connectivity/openssl/openssl_1.1.1k.bb (renamed from meta/recipes-connectivity/openssl/openssl_1.1.1j.bb)7
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/CVE-2021-27803.patch58
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb1
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.33.0.bb (renamed from meta/recipes-core/busybox/busybox-inittab_1.32.0.bb)3
-rw-r--r--meta/recipes-core/busybox/busybox/defconfig133
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch403
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch44
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch90
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch93
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch702
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch35
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch111
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch95
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch207
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0010-kqueue-Fix-unlocked-access-to-shared-variable.patch51
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch126
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch103
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch180
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch56
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch169
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch126
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch44
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch35
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch44
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch33
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch51
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch38
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch33
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0024-tests-Add-comment-to-volatile-atomic-tests.patch49
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch77
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0026-gtype-Fix-some-typos-in-comments.patch47
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch76
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch29
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0029-docs-Document-not-to-use-volatile-qualifiers.patch258
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb37
-rw-r--r--meta/recipes-core/glibc/glibc/0001-nptl-Remove-private-futex-optimization-BZ-27304.patch49
-rw-r--r--meta/recipes-core/glibc/glibc/0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch185
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2021-27645.patch51
-rw-r--r--meta/recipes-core/glibc/glibc_2.33.bb3
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb10
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/rootfs17
-rw-r--r--meta/recipes-core/libxcrypt/files/0001-configure.ac-do-not-use-compute-symver-floor.patch32
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc4
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb12
-rw-r--r--meta/recipes-core/meta/uninative-tarball.bb1
-rw-r--r--meta/recipes-core/musl/libucontext_git.bb2
-rw-r--r--meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch28
-rw-r--r--meta/recipes-core/ovmf/ovmf/zero.patch84
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb6
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-nfs.bb1
-rw-r--r--meta/recipes-core/systemd/systemd-boot_247.4.bb (renamed from meta/recipes-core/systemd/systemd-boot_247.3.bb)0
-rw-r--r--meta/recipes-core/systemd/systemd-conf/wired.network1
-rw-r--r--meta/recipes-core/systemd/systemd-conf_247.3.bb3
-rw-r--r--meta/recipes-core/systemd/systemd.inc2
-rw-r--r--meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch9
-rw-r--r--meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch28
-rw-r--r--meta/recipes-core/systemd/systemd_247.4.bb (renamed from meta/recipes-core/systemd/systemd_247.3.bb)9
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb4
-rw-r--r--meta/recipes-core/util-linux/util-linux-libuuid_2.36.2.bb16
-rw-r--r--meta/recipes-core/util-linux/util-linux.inc41
-rw-r--r--meta/recipes-core/util-linux/util-linux/Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch49
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.36.2.bb57
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch8
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Do-not-configure-packages-on-installation.patch48
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch4
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch10
-rw-r--r--meta/recipes-devtools/apt/apt/0001-cmake-Do-not-build-po-files.patch37
-rw-r--r--meta/recipes-devtools/apt/apt/0001-srvrec-Keep-support-for-older-resolver.patch44
-rw-r--r--meta/recipes-devtools/apt/apt/0001-test-libapt-do-not-use-gtest-from-the-host.patch40
-rw-r--r--meta/recipes-devtools/apt/apt_2.2.2.bb (renamed from meta/recipes-devtools/apt/apt_1.8.2.2.bb)16
-rw-r--r--meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch60
-rw-r--r--meta/recipes-devtools/automake/automake/python-libdir.patch16
-rw-r--r--meta/recipes-devtools/automake/automake_1.16.3.bb (renamed from meta/recipes-devtools/automake/automake_1.16.2.bb)18
-rw-r--r--meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch23
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.6.0.bb (renamed from meta/recipes-devtools/dnf/dnf_4.5.2.bb)2
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.183.bb1
-rw-r--r--meta/recipes-devtools/elfutils/files/0004-Disable-the-test-to-convert-euc-jp.patch42
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb (renamed from meta/recipes-devtools/fdisk/gptfdisk_1.0.6.bb)2
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross.inc2
-rw-r--r--meta/recipes-devtools/gcc/gcc-sanitizers.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-target.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch73
-rw-r--r--meta/recipes-devtools/git/git.inc3
-rw-r--r--meta/recipes-devtools/git/git_2.31.1.bb (renamed from meta/recipes-devtools/git/git_2.30.1.bb)4
-rw-r--r--meta/recipes-devtools/go/go-1.16.2.inc (renamed from meta/recipes-devtools/go/go-1.16.inc)4
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.16.2.bb (renamed from meta/recipes-devtools/go/go-binary-native_1.16.bb)4
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian_1.16.2.bb (renamed from meta/recipes-devtools/go/go-cross-canadian_1.16.bb)0
-rw-r--r--meta/recipes-devtools/go/go-cross_1.16.2.bb (renamed from meta/recipes-devtools/go/go-cross_1.16.bb)0
-rw-r--r--meta/recipes-devtools/go/go-crosssdk_1.16.2.bb (renamed from meta/recipes-devtools/go/go-crosssdk_1.16.bb)0
-rw-r--r--meta/recipes-devtools/go/go-dep/0001-Add-support-for-mips-mips64.patch54
-rw-r--r--meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch145574
-rw-r--r--meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch33
-rw-r--r--meta/recipes-devtools/go/go-dep_0.5.4.bb30
-rw-r--r--meta/recipes-devtools/go/go-native_1.16.2.bb (renamed from meta/recipes-devtools/go/go-native_1.16.bb)0
-rw-r--r--meta/recipes-devtools/go/go-runtime_1.16.2.bb (renamed from meta/recipes-devtools/go/go-runtime_1.16.bb)0
-rw-r--r--meta/recipes-devtools/go/go_1.16.2.bb (renamed from meta/recipes-devtools/go/go_1.16.bb)0
-rw-r--r--meta/recipes-devtools/help2man/help2man_1.48.2.bb (renamed from meta/recipes-devtools/help2man/help2man_1.48.1.bb)2
-rw-r--r--meta/recipes-devtools/jquery/jquery_3.6.0.bb (renamed from meta/recipes-devtools/jquery/jquery_3.5.1.bb)8
-rw-r--r--meta/recipes-devtools/libdnf/libdnf/0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch31
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.58.0.bb (renamed from meta/recipes-devtools/libdnf/libdnf_0.55.2.bb)3
-rw-r--r--meta/recipes-devtools/libedit/libedit_20210216-3.1.bb (renamed from meta/recipes-devtools/libedit/libedit_20191231-3.1.bb)3
-rw-r--r--meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch38
-rw-r--r--meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch8
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.13.0.bb (renamed from meta/recipes-devtools/librepo/librepo_1.12.1.bb)2
-rw-r--r--meta/recipes-devtools/libtool/libtool-2.4.6.inc1
-rw-r--r--meta/recipes-devtools/libtool/libtool/0001-Makefile.am-make-sure-autoheader-run-before-autoconf.patch35
-rw-r--r--meta/recipes-devtools/meson/meson.inc16
-rw-r--r--meta/recipes-devtools/meson/meson/0001-minstall-Correctly-set-uid-gid-of-installed-files.patch28
-rw-r--r--meta/recipes-devtools/meson/meson/gi-target-dep.patch41
-rw-r--r--meta/recipes-devtools/perl/files/perl-rdepends.txt8
-rw-r--r--meta/recipes-devtools/perl/liburi-perl_5.08.bb (renamed from meta/recipes-devtools/perl/liburi-perl_1.74.bb)4
-rw-r--r--meta/recipes-devtools/perl/perl_5.32.1.bb7
-rw-r--r--meta/recipes-devtools/python/python-cython.inc2
-rw-r--r--meta/recipes-devtools/python/python3-cython_0.29.22.bb9
-rw-r--r--meta/recipes-devtools/python/python3-dbusmock_0.22.0.bb1
-rw-r--r--meta/recipes-devtools/python/python3-iniconfig_1.1.1.bb1
-rw-r--r--meta/recipes-devtools/python/python3-jinja2_2.11.3.bb3
-rw-r--r--meta/recipes-devtools/python/python3-pygments_2.8.1.bb (renamed from meta/recipes-devtools/python/python3-pygments_2.8.0.bb)2
-rw-r--r--meta/recipes-devtools/python/python3-pygobject_3.38.0.bb2
-rw-r--r--meta/recipes-devtools/python/python3-pytest_6.2.2.bb2
-rw-r--r--meta/recipes-devtools/python/python3-scons_3.1.2.bb1
-rw-r--r--meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb2
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_54.1.1.bb (renamed from meta/recipes-devtools/python/python3-setuptools_53.0.0.bb)2
-rw-r--r--meta/recipes-devtools/python/python3-zipp_3.4.1.bb (renamed from meta/recipes-devtools/python/python3-zipp_3.4.0.bb)4
-rw-r--r--meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch53
-rw-r--r--meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch10
-rw-r--r--meta/recipes-devtools/python/python3_3.9.2.bb2
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc1
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2021-20203.patch73
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.16.1.2.bb39
-rwxr-xr-xmeta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts10
-rw-r--r--meta/recipes-devtools/strace/strace/Makefile-ptest.patch19
-rw-r--r--meta/recipes-devtools/strace/strace/disable-git-version-gen.patch37
-rw-r--r--meta/recipes-devtools/strace/strace/update-gawk-paths.patch44
-rw-r--r--meta/recipes-devtools/strace/strace_5.11.bb (renamed from meta/recipes-devtools/strace/strace_5.10.bb)18
-rw-r--r--meta/recipes-devtools/vala/vala_0.50.4.bb (renamed from meta/recipes-devtools/vala/vala_0.50.3.bb)2
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-Fix-nlcontrolc.vgtest-hanging-on-newer-glibc-and-or-.patch200
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-gdbserver_tests-Disable-nlcontrolc.vgtest-for-x86-64.patch36
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-lmw-lswi-and-related-PowerPC-insns-aren-t-allowed-on.patch62
-rwxr-xr-xmeta/recipes-devtools/valgrind/valgrind/run-ptest10
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.16.1.bb3
-rw-r--r--meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch53
-rw-r--r--meta/recipes-extended/asciidoc/asciidoc_9.1.0.bb (renamed from meta/recipes-extended/asciidoc/asciidoc_9.0.4.bb)5
-rw-r--r--meta/recipes-extended/bash/bash.inc1
-rw-r--r--meta/recipes-extended/bc/bc_1.07.1.bb1
-rw-r--r--meta/recipes-extended/cracklib/cracklib_2.9.5.bb3
-rw-r--r--meta/recipes-extended/cwautomacros/cwautomacros_20110201.bb1
-rw-r--r--meta/recipes-extended/ed/ed_1.17.bb1
-rw-r--r--meta/recipes-extended/go-examples/go-helloworld_0.1.bb5
-rw-r--r--meta/recipes-extended/grep/grep_3.6.bb1
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.7.17.bb1
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.59.bb1
-rw-r--r--meta/recipes-extended/logrotate/logrotate_3.18.0.bb3
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch40
-rw-r--r--meta/recipes-extended/ltp/ltp/0002-Makefile-Avoid-wildcard-determinism-issues.patch310
-rw-r--r--meta/recipes-extended/ltp/ltp/0003-syscalls-swapon-swapoff-Move-common-library-to-libs.patch133
-rw-r--r--meta/recipes-extended/ltp/ltp/libswapon.patch368
-rw-r--r--meta/recipes-extended/ltp/ltp_20210121.bb15
-rw-r--r--meta/recipes-extended/lzip/lzip_1.22.bb1
-rw-r--r--meta/recipes-extended/man-db/man-db_2.9.4.bb1
-rw-r--r--meta/recipes-extended/mc/mc_4.8.26.bb1
-rw-r--r--meta/recipes-extended/mdadm/mdadm_4.1.bb1
-rw-r--r--meta/recipes-extended/mingetty/mingetty_1.08.bb1
-rw-r--r--meta/recipes-extended/msmtp/msmtp_1.8.15.bb (renamed from meta/recipes-extended/msmtp/msmtp_1.8.14.bb)2
-rw-r--r--meta/recipes-extended/parted/parted_3.4.bb1
-rw-r--r--meta/recipes-extended/perl/libconvert-asn1-perl_0.27.bb2
-rw-r--r--meta/recipes-extended/perl/libtimedate-perl_2.30.bb1
-rw-r--r--meta/recipes-extended/procps/procps/0001-w.c-correct-musl-builds.patch44
-rw-r--r--meta/recipes-extended/procps/procps/0002-proc-escape.c-add-missing-include.patch23
-rw-r--r--meta/recipes-extended/procps/procps_3.3.17.bb (renamed from meta/recipes-extended/procps/procps_3.3.16.bb)4
-rw-r--r--meta/recipes-extended/quota/quota_4.06.bb1
-rw-r--r--meta/recipes-extended/sed/sed_4.8.bb1
-rw-r--r--meta/recipes-extended/shadow/shadow.inc1
-rw-r--r--meta/recipes-extended/shadow/shadow_4.8.1.bb5
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.12.05.bb (renamed from meta/recipes-extended/stress-ng/stress-ng_0.12.03.bb)2
-rw-r--r--meta/recipes-extended/sudo/sudo.inc2
-rw-r--r--meta/recipes-extended/sudo/sudo_1.9.6p1.bb (renamed from meta/recipes-extended/sudo/sudo_1.9.5p2.bb)2
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.2.2.bb (renamed from meta/recipes-extended/sysklogd/sysklogd_2.2.1.bb)2
-rw-r--r--meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb1
-rw-r--r--meta/recipes-extended/unzip/unzip_6.0.bb1
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb1
-rw-r--r--meta/recipes-extended/xz/xz_5.2.5.bb1
-rw-r--r--meta/recipes-extended/zip/zip_3.0.bb1
-rw-r--r--meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch19
-rw-r--r--meta/recipes-extended/zstd/zstd_1.4.9.bb (renamed from meta/recipes-extended/zstd/zstd_1.4.8.bb)2
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_3.38.2.bb3
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.38.1.bb7
-rw-r--r--meta/recipes-gnome/libhandy/libhandy/determinism.patch35
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.2.0.bb (renamed from meta/recipes-gnome/libhandy/libhandy_1.0.3.bb)5
-rw-r--r--meta/recipes-graphics/images/core-image-weston.bb8
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.0.14.bb1
-rw-r--r--meta/recipes-graphics/mesa/files/0001-anv-fix-a-build-race-between-generating-a-header-and.patch31
-rw-r--r--meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch12
-rw-r--r--meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch14
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_21.0.1.bb (renamed from meta/recipes-graphics/mesa/mesa-gl_20.3.4.bb)9
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc16
-rw-r--r--meta/recipes-graphics/mesa/mesa_20.3.4.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa_21.0.1.bb4
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb15
-rw-r--r--meta/recipes-graphics/shaderc/files/0003-cmake-add-option-to-skip-build-the-examples.patch47
-rw-r--r--meta/recipes-graphics/shaderc/shaderc_2020.5.bb (renamed from meta/recipes-graphics/shaderc/shaderc_2020.4.bb)3
-rw-r--r--meta/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch35
-rw-r--r--meta/recipes-graphics/spir/files/0001-fix-strncpy-bound-error.patch30
-rw-r--r--meta/recipes-graphics/spir/spirv-headers_1.5.4.bb3
-rw-r--r--meta/recipes-graphics/spir/spirv-tools_2020.7.bb (renamed from meta/recipes-graphics/spir/spirv-tools_2020.6.bb)8
-rw-r--r--meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb1
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.2.170.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-headers_1.2.162.0.bb)2
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader/0001-Rename-LIB_SUFFIX-to-VULKAN_LIB_SUFFIX.patch40
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.2.170.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-loader_1.2.162.0.bb)5
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.2.170.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-tools_1.2.162.1.bb)4
-rw-r--r--meta/recipes-graphics/wayland/libinput/run-ptest2
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb1
-rw-r--r--meta/recipes-graphics/wayland/weston-init/init1
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcb_1.14.bb4
-rw-r--r--meta/recipes-kernel/kern-tools/kern-tools-native_git.bb2
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb42
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc1
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb1
-rw-r--r--meta/recipes-kernel/linux/linux-dummy.bb2
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-dev.bb2
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.4.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.4.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.10.bb26
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.4.bb22
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch58
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch159
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch91
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch41
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.12.5.bb (renamed from meta/recipes-kernel/lttng/lttng-modules_2.12.4.bb)11
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb (renamed from meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb)2
-rw-r--r--meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb2
-rw-r--r--meta/recipes-kernel/perf/perf.bb57
-rwxr-xr-xmeta/recipes-kernel/perf/perf/sort-pmuevents.py93
-rw-r--r--meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb2
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch52
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch75
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch35
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.2.bb (renamed from meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb)7
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb)2
-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_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.3.bb)3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb)3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb)3
-rw-r--r--meta/recipes-rt/rt-tests/rt-tests_1.10.bb3
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch77
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch36
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/include_array.patch15
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch74
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch22
-rw-r--r--meta/recipes-sato/webkit/webkitgtk_2.30.5.bb7
-rw-r--r--meta/recipes-support/apr/apr_1.7.0.bb8
-rw-r--r--meta/recipes-support/argp-standalone/argp-standalone_1.3.bb1
-rw-r--r--meta/recipes-support/aspell/aspell_0.60.8.bb13
-rw-r--r--meta/recipes-support/atk/at-spi2-atk_2.38.0.bb2
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.38.0.bb6
-rw-r--r--meta/recipes-support/atk/atk_2.36.0.bb1
-rw-r--r--meta/recipes-support/attr/acl_2.2.53.bb5
-rw-r--r--meta/recipes-support/attr/attr.inc6
-rw-r--r--meta/recipes-support/attr/attr_2.4.48.bb6
-rw-r--r--meta/recipes-support/attr/attr_2.5.1.bb5
-rw-r--r--meta/recipes-support/bash-completion/bash-completion_2.11.bb7
-rw-r--r--meta/recipes-support/bmap-tools/bmap-tools_3.6.bb (renamed from meta/recipes-support/bmap-tools/bmap-tools_3.5.bb)5
-rw-r--r--meta/recipes-support/boost/boost-build-native_4.3.0.bb2
-rw-r--r--meta/recipes-support/boost/boost.inc4
-rw-r--r--meta/recipes-support/consolekit/consolekit_0.4.6.bb2
-rw-r--r--meta/recipes-support/curl/curl_7.75.0.bb4
-rw-r--r--meta/recipes-support/db/db_5.3.28.bb1
-rw-r--r--meta/recipes-support/debianutils/debianutils_4.11.2.bb5
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_172.bb (renamed from meta/recipes-support/diffoscope/diffoscope_168.bb)7
-rw-r--r--meta/recipes-support/enchant/enchant2_2.2.15.bb3
-rw-r--r--meta/recipes-support/fribidi/fribidi_1.0.10.bb6
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.19.bb3
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2018.1.bb4
-rw-r--r--meta/recipes-support/gnupg/gnupg_2.2.27.bb5
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.7.1.bb (renamed from meta/recipes-support/gnutls/gnutls_3.7.0.bb)6
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.16.0.bb2
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.6.0.bb (renamed from meta/recipes-support/iso-codes/iso-codes_4.5.0.bb)7
-rw-r--r--meta/recipes-support/itstool/itstool_2.0.6.bb4
-rw-r--r--meta/recipes-support/libassuan/libassuan_2.5.4.bb3
-rw-r--r--meta/recipes-support/libatomic-ops/libatomic-ops_7.6.10.bb1
-rw-r--r--meta/recipes-support/libcap/libcap_2.48.bb4
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb5
-rw-r--r--meta/recipes-support/libcroco/libcroco_0.6.13.bb3
-rw-r--r--meta/recipes-support/libdaemon/libdaemon_0.14.bb4
-rw-r--r--meta/recipes-support/libevdev/libevdev_1.11.0.bb3
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb5
-rw-r--r--meta/recipes-support/libexif/libexif_0.6.22.bb3
-rw-r--r--meta/recipes-support/libfm/libfm-extra_1.3.2.bb1
-rw-r--r--meta/recipes-support/libfm/libfm_1.3.1.bb2
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.9.2.bb3
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.41.bb1
-rw-r--r--meta/recipes-support/libical/libical/0001-Fix-build-with-icu-68.1.patch81
-rw-r--r--meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch33
-rw-r--r--meta/recipes-support/libical/libical_3.0.9.bb (renamed from meta/recipes-support/libical/libical_3.0.8.bb)26
-rw-r--r--meta/recipes-support/libksba/libksba_1.5.0.bb5
-rw-r--r--meta/recipes-support/libnl/libnl_3.5.0.bb5
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.4.17.bb4
-rw-r--r--meta/recipes-support/libpsl/libpsl_0.21.1.bb6
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.72.0.bb2
-rw-r--r--meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch56
-rw-r--r--meta/recipes-support/libunistring/libunistring_0.9.10.bb1
-rw-r--r--meta/recipes-support/libunwind/libunwind.inc1
-rw-r--r--meta/recipes-support/libunwind/libunwind/0001-configure-Do-not-enforce-libdir-for-ppc64.patch35
-rw-r--r--meta/recipes-support/libunwind/libunwind_1.5.0.bb2
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.12.2.bb3
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.24.bb2
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.34.bb5
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.3.bb1
-rw-r--r--meta/recipes-support/lzo/lzo_2.10.bb2
-rw-r--r--meta/recipes-support/lzop/lzop_1.04.bb1
-rw-r--r--meta/recipes-support/mpfr/mpfr_4.1.0.bb1
-rw-r--r--meta/recipes-support/nettle/nettle_3.7.1.bb1
-rw-r--r--meta/recipes-support/npth/npth_1.6.bb1
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.23.22.bb2
-rw-r--r--meta/recipes-support/popt/popt_1.18.bb1
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb (renamed from meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb)3
-rw-r--r--meta/recipes-support/re2c/re2c_2.0.3.bb4
-rw-r--r--meta/recipes-support/serf/serf_1.3.9.bb5
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_git.bb1
-rw-r--r--meta/recipes-support/sqlite/sqlite3.inc1
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.35.0.bb (renamed from meta/recipes-support/sqlite/sqlite3_3.34.1.bb)2
-rw-r--r--meta/recipes-support/taglib/taglib/CVE-2017-12678.patch40
-rw-r--r--meta/recipes-support/taglib/taglib/CVE-2018-11439.patch51
-rw-r--r--meta/recipes-support/taglib/taglib_1.12.bb (renamed from meta/recipes-support/taglib/taglib_1.11.1.bb)10
-rw-r--r--meta/recipes-support/vim/vim.inc4
-rw-r--r--meta/recipes-support/vte/vte_0.62.2.bb2
-rw-r--r--meta/recipes-support/xxhash/xxhash_0.8.0.bb23
-rw-r--r--meta/site/common-linux3
-rwxr-xr-xscripts/bitbake-whatchanged2
-rwxr-xr-xscripts/contrib/documentation-audit.sh2
-rwxr-xr-xscripts/contrib/list-packageconfig-flags.py2
-rw-r--r--scripts/lib/devtool/standard.py7
-rwxr-xr-xscripts/oe-time-dd-test.sh28
-rwxr-xr-xscripts/runqemu151
-rwxr-xr-xscripts/sstate-diff-machines.sh4
-rwxr-xr-xscripts/verify-bashisms2
555 files changed, 11782 insertions, 152877 deletions
diff --git a/.gitignore b/.gitignore
index 6dde540..4bfe022 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,4 +30,5 @@ hob-image-*.bb
30pull-*/ 30pull-*/
31bitbake/lib/toaster/contrib/tts/backlog.txt 31bitbake/lib/toaster/contrib/tts/backlog.txt
32bitbake/lib/toaster/contrib/tts/log/* 32bitbake/lib/toaster/contrib/tts/log/*
33bitbake/lib/toaster/contrib/tts/.cache/* \ No newline at end of file 33bitbake/lib/toaster/contrib/tts/.cache/*
34bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log \ No newline at end of file
diff --git a/bitbake/README b/bitbake/README
index 479c376..96e6007 100644
--- a/bitbake/README
+++ b/bitbake/README
@@ -11,7 +11,7 @@ For information about Bitbake, see the OpenEmbedded website:
11 11
12Bitbake plain documentation can be found under the doc directory or its integrated 12Bitbake plain documentation can be found under the doc directory or its integrated
13html version at the Yocto Project website: 13html version at the Yocto Project website:
14 http://yoctoproject.org/documentation 14 https://docs.yoctoproject.org
15 15
16Contributing 16Contributing
17------------ 17------------
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index bc762bf..7127550 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
26if sys.getfilesystemencoding() != "utf-8": 26if sys.getfilesystemencoding() != "utf-8":
27 sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") 27 sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
28 28
29__version__ = "1.49.2" 29__version__ = "1.50.0"
30 30
31if __name__ == "__main__": 31if __name__ == "__main__":
32 if __version__ != bb.__version__: 32 if __version__ != bb.__version__:
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index d74e768..56abf77 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -244,7 +244,8 @@ want upstream. Here is an example: ::
244 BBFILE_COLLECTIONS = "upstream local" 244 BBFILE_COLLECTIONS = "upstream local"
245 BBFILE_PATTERN_upstream = "^/stuff/openembedded/" 245 BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
246 BBFILE_PATTERN_local = "^/stuff/openembedded.modified/" 246 BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
247 BBFILE_PRIORITY_upstream = "5" BBFILE_PRIORITY_local = "10" 247 BBFILE_PRIORITY_upstream = "5"
248 BBFILE_PRIORITY_local = "10"
248 249
249.. note:: 250.. note::
250 251
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index 6760b10..bd6cc0e 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -441,6 +441,15 @@ Here are some example URLs: ::
441 SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1" 441 SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
442 SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http" 442 SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
443 443
444.. note::
445
446 Specifying passwords directly in ``git://`` urls is not supported.
447 There are several reasons: ``SRC_URI`` is often written out to logs and
448 other places, and that could easily leak passwords; it is also all too
449 easy to share metadata without removing passwords. SSH keys, ``~/.netrc``
450 and ``~/.ssh/config`` files can be used as alternatives.
451
452
444.. _gitsm-fetcher: 453.. _gitsm-fetcher:
445 454
446Git Submodule Fetcher (``gitsm://``) 455Git Submodule Fetcher (``gitsm://``)
@@ -624,6 +633,34 @@ Here are some example URLs: ::
624 SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml" 633 SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
625 SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml" 634 SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
626 635
636.. _az-fetcher:
637
638Az Fetcher (``az://``)
639--------------------------
640
641This submodule fetches data from an
642`Azure Storage account <https://docs.microsoft.com/en-us/azure/storage/>`__ ,
643it inherits its functionality from the HTTP wget fetcher, but modifies its
644behavior to accomodate the usage of a
645`Shared Access Signature (SAS) <https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview>`__
646for non-public data.
647
648Such functionality is set by the variable:
649
650- :term:`AZ_SAS`: The Azure Storage Shared Access Signature provides secure
651 delegate access to resources, if this variable is set, the Az Fetcher will
652 use it when fetching artifacts from the cloud.
653
654You can specify the AZ_SAS variable as shown below: ::
655
656 AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
657
658Here is an example URL: ::
659
660 SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
661
662It can also be used when setting mirrors definitions using the :term:`PREMIRRORS` variable.
663
627Other Fetchers 664Other Fetchers
628-------------- 665--------------
629 666
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
index 7ea68ad..d4190c2 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
@@ -1296,6 +1296,17 @@ For more information on task dependencies, see the
1296See the ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`" section for information 1296See the ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`" section for information
1297on variable flags you can use with tasks. 1297on variable flags you can use with tasks.
1298 1298
1299.. note::
1300
1301 While it's infrequent, it's possible to define multiple tasks as
1302 dependencies when calling ``addtask``. For example, here's a snippet
1303 from the OpenEmbedded class file ``package_tar.bbclass``::
1304
1305 addtask package_write_tar before do_build after do_packagedata do_package
1306
1307 Note how the ``package_write_tar`` task has to wait until both of
1308 ``do_packagedata`` and ``do_package`` complete.
1309
1299Deleting a Task 1310Deleting a Task
1300--------------- 1311---------------
1301 1312
@@ -1569,7 +1580,7 @@ might have an interest in viewing:
1569 events when each of the workers parse the base configuration or if 1580 events when each of the workers parse the base configuration or if
1570 the server changes configuration and reparses. Any given datastore 1581 the server changes configuration and reparses. Any given datastore
1571 only has one such event executed against it, however. If 1582 only has one such event executed against it, however. If
1572 ```BB_INVALIDCONF`` <#>`__ is set in the datastore by the event 1583 :term:`BB_INVALIDCONF` is set in the datastore by the event
1573 handler, the configuration is reparsed and a new event triggered, 1584 handler, the configuration is reparsed and a new event triggered,
1574 allowing the metadata to update configuration. 1585 allowing the metadata to update configuration.
1575 1586
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index 6469f9d..489fa15 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -39,6 +39,19 @@ overview of their function and contents.
39 when specified allows for the Git binary from the host to be used 39 when specified allows for the Git binary from the host to be used
40 rather than building ``git-native``. 40 rather than building ``git-native``.
41 41
42 :term:`AZ_SAS`
43 Azure Storage Shared Access Signature, when using the
44 :ref:`Azure Storage fetcher <bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
45 This variable can be defined to be used by the fetcher to authenticate
46 and gain access to non-public artifacts.
47 ::
48
49 AZ_SAS = ""se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>""
50
51 For more information see Microsoft's Azure Storage documentation at
52 https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
53
54
42 :term:`B` 55 :term:`B`
43 The directory in which BitBake executes functions during a recipe's 56 The directory in which BitBake executes functions during a recipe's
44 build process. 57 build process.
@@ -257,45 +270,6 @@ overview of their function and contents.
257 ``my-recipe.bb`` is executing, the ``BB_FILENAME`` variable contains 270 ``my-recipe.bb`` is executing, the ``BB_FILENAME`` variable contains
258 "/foo/path/my-recipe.bb". 271 "/foo/path/my-recipe.bb".
259 272
260 :term:`BBFILES_DYNAMIC`
261 Activates content depending on presence of identified layers. You
262 identify the layers by the collections that the layers define.
263
264 Use the ``BBFILES_DYNAMIC`` variable to avoid ``.bbappend`` files whose
265 corresponding ``.bb`` file is in a layer that attempts to modify other
266 layers through ``.bbappend`` but does not want to introduce a hard
267 dependency on those other layers.
268
269 Additionally you can prefix the rule with "!" to add ``.bbappend`` and
270 ``.bb`` files in case a layer is not present. Use this avoid hard
271 dependency on those other layers.
272
273 Use the following form for ``BBFILES_DYNAMIC``: ::
274
275 collection_name:filename_pattern
276
277 The following example identifies two collection names and two filename
278 patterns: ::
279
280 BBFILES_DYNAMIC += "\
281 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
282 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
283 "
284
285 When the collection name is prefixed with "!" it will add the file pattern in case
286 the layer is absent: ::
287
288 BBFILES_DYNAMIC += "\
289 !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
290 "
291
292 This next example shows an error message that occurs because invalid
293 entries are found, which cause parsing to abort: ::
294
295 ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
296 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
297 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
298
299 :term:`BB_GENERATE_MIRROR_TARBALLS` 273 :term:`BB_GENERATE_MIRROR_TARBALLS`
300 Causes tarballs of the Git repositories, including the Git metadata, 274 Causes tarballs of the Git repositories, including the Git metadata,
301 to be placed in the :term:`DL_DIR` directory. Anyone 275 to be placed in the :term:`DL_DIR` directory. Anyone
@@ -671,6 +645,45 @@ overview of their function and contents.
671 For details on the syntax, see the documentation by following the 645 For details on the syntax, see the documentation by following the
672 previous link. 646 previous link.
673 647
648 :term:`BBFILES_DYNAMIC`
649 Activates content depending on presence of identified layers. You
650 identify the layers by the collections that the layers define.
651
652 Use the ``BBFILES_DYNAMIC`` variable to avoid ``.bbappend`` files whose
653 corresponding ``.bb`` file is in a layer that attempts to modify other
654 layers through ``.bbappend`` but does not want to introduce a hard
655 dependency on those other layers.
656
657 Additionally you can prefix the rule with "!" to add ``.bbappend`` and
658 ``.bb`` files in case a layer is not present. Use this avoid hard
659 dependency on those other layers.
660
661 Use the following form for ``BBFILES_DYNAMIC``: ::
662
663 collection_name:filename_pattern
664
665 The following example identifies two collection names and two filename
666 patterns: ::
667
668 BBFILES_DYNAMIC += "\
669 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
670 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
671 "
672
673 When the collection name is prefixed with "!" it will add the file pattern in case
674 the layer is absent: ::
675
676 BBFILES_DYNAMIC += "\
677 !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
678 "
679
680 This next example shows an error message that occurs because invalid
681 entries are found, which cause parsing to abort: ::
682
683 ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
684 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
685 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
686
674 :term:`BBINCLUDED` 687 :term:`BBINCLUDED`
675 Contains a space-separated list of all of all files that BitBake's 688 Contains a space-separated list of all of all files that BitBake's
676 parser included during parsing of the current file. 689 parser included during parsing of the current file.
@@ -1083,8 +1096,8 @@ overview of their function and contents.
1083 PREFERRED_PROVIDER_aaa = "bbb" 1096 PREFERRED_PROVIDER_aaa = "bbb"
1084 1097
1085 :term:`PREFERRED_VERSION` 1098 :term:`PREFERRED_VERSION`
1086 If there are multiple versions of recipes available, this variable 1099 If there are multiple versions of a recipe available, this variable
1087 determines which recipe should be given preference. You must always 1100 determines which version should be given preference. You must always
1088 suffix the variable with the :term:`PN` you want to 1101 suffix the variable with the :term:`PN` you want to
1089 select, and you should set :term:`PV` accordingly for 1102 select, and you should set :term:`PV` accordingly for
1090 precedence. 1103 precedence.
@@ -1104,6 +1117,10 @@ overview of their function and contents.
1104 end of the string. You cannot use the wildcard character in any other 1117 end of the string. You cannot use the wildcard character in any other
1105 location of the string. 1118 location of the string.
1106 1119
1120 If a recipe with the specified version is not available, a warning
1121 message will be shown. See :term:`REQUIRED_VERSION` if you want this
1122 to be an error instead.
1123
1107 :term:`PREMIRRORS` 1124 :term:`PREMIRRORS`
1108 Specifies additional paths from which BitBake gets source code. When 1125 Specifies additional paths from which BitBake gets source code. When
1109 the build system searches for source code, it first tries the local 1126 the build system searches for source code, it first tries the local
@@ -1214,6 +1231,16 @@ overview of their function and contents.
1214 The directory in which a local copy of a ``google-repo`` directory is 1231 The directory in which a local copy of a ``google-repo`` directory is
1215 stored when it is synced. 1232 stored when it is synced.
1216 1233
1234 :term:`REQUIRED_VERSION`
1235 If there are multiple versions of a recipe available, this variable
1236 determines which version should be given preference. ``REQUIRED_VERSION``
1237 works in exactly the same manner as :term:`PREFERRED_VERSION`, except
1238 that if the specified version is not available then an error message
1239 is shown and the build fails immediately.
1240
1241 If both ``REQUIRED_VERSION`` and ``PREFERRED_VERSION`` are set for
1242 the same recipe, the ``REQUIRED_VERSION`` value applies.
1243
1217 :term:`RPROVIDES` 1244 :term:`RPROVIDES`
1218 A list of package name aliases that a package also provides. These 1245 A list of package name aliases that a package also provides. These
1219 aliases are useful for satisfying runtime dependencies of other 1246 aliases are useful for satisfying runtime dependencies of other
@@ -1303,6 +1330,8 @@ overview of their function and contents.
1303 - ``svn://`` : Fetches files from a Subversion (``svn``) revision 1330 - ``svn://`` : Fetches files from a Subversion (``svn``) revision
1304 control repository. 1331 control repository.
1305 1332
1333 - ``az://`` : Fetches files from an Azure Storage account using HTTPS.
1334
1306 Here are some additional options worth mentioning: 1335 Here are some additional options worth mentioning:
1307 1336
1308 - ``unpack`` : Controls whether or not to unpack the file if it is 1337 - ``unpack`` : Controls whether or not to unpack the file if it is
diff --git a/bitbake/lib/bb/__init__.py b/bitbake/lib/bb/__init__.py
index 84a9051..9f61dae 100644
--- a/bitbake/lib/bb/__init__.py
+++ b/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
9# SPDX-License-Identifier: GPL-2.0-only 9# SPDX-License-Identifier: GPL-2.0-only
10# 10#
11 11
12__version__ = "1.49.2" 12__version__ = "1.50.0"
13 13
14import sys 14import sys
15if sys.version_info < (3, 5, 0): 15if sys.version_info < (3, 5, 0):
@@ -58,7 +58,7 @@ class BBLoggerMixin(object):
58 if not bb.event.worker_pid: 58 if not bb.event.worker_pid:
59 if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]): 59 if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
60 return 60 return
61 if loglevel > bb.msg.loggerDefaultLogLevel: 61 if loglevel < bb.msg.loggerDefaultLogLevel:
62 return 62 return
63 return self.log(loglevel, msg, *args, **kwargs) 63 return self.log(loglevel, msg, *args, **kwargs)
64 64
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index f4f897e..b2715fc 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -854,6 +854,23 @@ def make_stamp(task, d, file_name = None):
854 file_name = d.getVar('BB_FILENAME') 854 file_name = d.getVar('BB_FILENAME')
855 bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True) 855 bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True)
856 856
857def find_stale_stamps(task, d, file_name=None):
858 current = stamp_internal(task, d, file_name)
859 current2 = stamp_internal(task + "_setscene", d, file_name)
860 cleanmask = stamp_cleanmask_internal(task, d, file_name)
861 found = []
862 for mask in cleanmask:
863 for name in glob.glob(mask):
864 if "sigdata" in name or "sigbasedata" in name:
865 continue
866 if name.endswith('.taint'):
867 continue
868 if name == current or name == current2:
869 continue
870 logger.debug2("Stampfile %s does not match %s or %s" % (name, current, current2))
871 found.append(name)
872 return found
873
857def del_stamp(task, d, file_name = None): 874def del_stamp(task, d, file_name = None):
858 """ 875 """
859 Removes a stamp for a given task 876 Removes a stamp for a given task
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index aea2b8b..27eb271 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -126,6 +126,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
126 self.inherits = self.getvar('__inherit_cache', metadata, expand=False) 126 self.inherits = self.getvar('__inherit_cache', metadata, expand=False)
127 self.fakerootenv = self.getvar('FAKEROOTENV', metadata) 127 self.fakerootenv = self.getvar('FAKEROOTENV', metadata)
128 self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata) 128 self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata)
129 self.fakerootlogs = self.getvar('FAKEROOTLOGS', metadata)
129 self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata) 130 self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata)
130 self.extradepsfunc = self.getvar('calculate_extra_depends', metadata) 131 self.extradepsfunc = self.getvar('calculate_extra_depends', metadata)
131 132
@@ -163,6 +164,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
163 cachedata.fakerootenv = {} 164 cachedata.fakerootenv = {}
164 cachedata.fakerootnoenv = {} 165 cachedata.fakerootnoenv = {}
165 cachedata.fakerootdirs = {} 166 cachedata.fakerootdirs = {}
167 cachedata.fakerootlogs = {}
166 cachedata.extradepsfunc = {} 168 cachedata.extradepsfunc = {}
167 169
168 def add_cacheData(self, cachedata, fn): 170 def add_cacheData(self, cachedata, fn):
@@ -231,6 +233,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
231 cachedata.fakerootenv[fn] = self.fakerootenv 233 cachedata.fakerootenv[fn] = self.fakerootenv
232 cachedata.fakerootnoenv[fn] = self.fakerootnoenv 234 cachedata.fakerootnoenv[fn] = self.fakerootnoenv
233 cachedata.fakerootdirs[fn] = self.fakerootdirs 235 cachedata.fakerootdirs[fn] = self.fakerootdirs
236 cachedata.fakerootlogs[fn] = self.fakerootlogs
234 cachedata.extradepsfunc[fn] = self.extradepsfunc 237 cachedata.extradepsfunc[fn] = self.extradepsfunc
235 238
236def virtualfn2realfn(virtualfn): 239def virtualfn2realfn(virtualfn):
diff --git a/bitbake/lib/bb/codeparser.py b/bitbake/lib/bb/codeparser.py
index 25a7ac6..0cec452 100644
--- a/bitbake/lib/bb/codeparser.py
+++ b/bitbake/lib/bb/codeparser.py
@@ -212,9 +212,9 @@ class PythonParser():
212 funcstr = codegen.to_source(func) 212 funcstr = codegen.to_source(func)
213 argstr = codegen.to_source(arg) 213 argstr = codegen.to_source(arg)
214 except TypeError: 214 except TypeError:
215 self.log.debug(2, 'Failed to convert function and argument to source form') 215 self.log.debug2('Failed to convert function and argument to source form')
216 else: 216 else:
217 self.log.debug(1, self.unhandled_message % (funcstr, argstr)) 217 self.log.debug(self.unhandled_message % (funcstr, argstr))
218 218
219 def visit_Call(self, node): 219 def visit_Call(self, node):
220 name = self.called_node_name(node.func) 220 name = self.called_node_name(node.func)
@@ -450,7 +450,7 @@ class ShellParser():
450 450
451 cmd = word[1] 451 cmd = word[1]
452 if cmd.startswith("$"): 452 if cmd.startswith("$"):
453 self.log.debug(1, self.unhandled_template % cmd) 453 self.log.debug(self.unhandled_template % cmd)
454 elif cmd == "eval": 454 elif cmd == "eval":
455 command = " ".join(word for _, word in words[1:]) 455 command = " ".join(word for _, word in words[1:])
456 self._parse_shell(command) 456 self._parse_shell(command)
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index f4ab797..39e10e6 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -502,22 +502,30 @@ class BBCooker:
502 502
503 def showVersions(self): 503 def showVersions(self):
504 504
505 (latest_versions, preferred_versions) = self.findProviders() 505 (latest_versions, preferred_versions, required) = self.findProviders()
506 506
507 logger.plain("%-35s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version") 507 logger.plain("%-35s %25s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version", "Required Version")
508 logger.plain("%-35s %25s %25s\n", "===========", "==============", "=================") 508 logger.plain("%-35s %25s %25s %25s\n", "===========", "==============", "=================", "================")
509 509
510 for p in sorted(self.recipecaches[''].pkg_pn): 510 for p in sorted(self.recipecaches[''].pkg_pn):
511 pref = preferred_versions[p] 511 preferred = preferred_versions[p]
512 latest = latest_versions[p] 512 latest = latest_versions[p]
513 requiredstr = ""
514 preferredstr = ""
515 if required[p]:
516 if preferred[0] is not None:
517 requiredstr = preferred[0][0] + ":" + preferred[0][1] + '-' + preferred[0][2]
518 else:
519 bb.fatal("REQUIRED_VERSION of package %s not available" % p)
520 else:
521 preferredstr = preferred[0][0] + ":" + preferred[0][1] + '-' + preferred[0][2]
513 522
514 prefstr = pref[0][0] + ":" + pref[0][1] + '-' + pref[0][2]
515 lateststr = latest[0][0] + ":" + latest[0][1] + "-" + latest[0][2] 523 lateststr = latest[0][0] + ":" + latest[0][1] + "-" + latest[0][2]
516 524
517 if pref == latest: 525 if preferred == latest:
518 prefstr = "" 526 preferredstr = ""
519 527
520 logger.plain("%-35s %25s %25s", p, lateststr, prefstr) 528 logger.plain("%-35s %25s %25s %25s", p, lateststr, preferredstr, requiredstr)
521 529
522 def showEnvironment(self, buildfile=None, pkgs_to_build=None): 530 def showEnvironment(self, buildfile=None, pkgs_to_build=None):
523 """ 531 """
@@ -1063,10 +1071,16 @@ class BBCooker:
1063 if pn in self.recipecaches[mc].providers: 1071 if pn in self.recipecaches[mc].providers:
1064 filenames = self.recipecaches[mc].providers[pn] 1072 filenames = self.recipecaches[mc].providers[pn]
1065 eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.databuilder.mcdata[mc], self.recipecaches[mc]) 1073 eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.databuilder.mcdata[mc], self.recipecaches[mc])
1066 filename = eligible[0] 1074 if eligible is not None:
1075 filename = eligible[0]
1076 else:
1077 filename = None
1067 return None, None, None, filename 1078 return None, None, None, filename
1068 elif pn in self.recipecaches[mc].pkg_pn: 1079 elif pn in self.recipecaches[mc].pkg_pn:
1069 return bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn) 1080 (latest, latest_f, preferred_ver, preferred_file, required) = bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
1081 if required and preferred_file is None:
1082 return None, None, None, None
1083 return (latest, latest_f, preferred_ver, preferred_file)
1070 else: 1084 else:
1071 return None, None, None, None 1085 return None, None, None, None
1072 1086
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 23e1f31..0454c75 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -118,7 +118,7 @@ def fire_class_handlers(event, d):
118 if _eventfilter: 118 if _eventfilter:
119 if not _eventfilter(name, handler, event, d): 119 if not _eventfilter(name, handler, event, d):
120 continue 120 continue
121 if d and not name in (d.getVar("__BBHANDLERS_MC") or []): 121 if d is not None and not name in (d.getVar("__BBHANDLERS_MC") or set()):
122 continue 122 continue
123 execute_handler(name, handler, event, d) 123 execute_handler(name, handler, event, d)
124 124
@@ -232,12 +232,16 @@ noop = lambda _: None
232def register(name, handler, mask=None, filename=None, lineno=None, data=None): 232def register(name, handler, mask=None, filename=None, lineno=None, data=None):
233 """Register an Event handler""" 233 """Register an Event handler"""
234 234
235 if data and data.getVar("BB_CURRENT_MC"): 235 if data is not None and data.getVar("BB_CURRENT_MC"):
236 mc = data.getVar("BB_CURRENT_MC") 236 mc = data.getVar("BB_CURRENT_MC")
237 name = '%s%s' % (mc.replace('-', '_'), name) 237 name = '%s%s' % (mc.replace('-', '_'), name)
238 238
239 # already registered 239 # already registered
240 if name in _handlers: 240 if name in _handlers:
241 if data is not None:
242 bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
243 bbhands_mc.add(name)
244 data.setVar("__BBHANDLERS_MC", bbhands_mc)
241 return AlreadyRegistered 245 return AlreadyRegistered
242 246
243 if handler is not None: 247 if handler is not None:
@@ -274,16 +278,16 @@ def register(name, handler, mask=None, filename=None, lineno=None, data=None):
274 _event_handler_map[m] = {} 278 _event_handler_map[m] = {}
275 _event_handler_map[m][name] = True 279 _event_handler_map[m][name] = True
276 280
277 if data: 281 if data is not None:
278 bbhands_mc = (data.getVar("__BBHANDLERS_MC") or []) 282 bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
279 bbhands_mc.append(name) 283 bbhands_mc.add(name)
280 data.setVar("__BBHANDLERS_MC", bbhands_mc) 284 data.setVar("__BBHANDLERS_MC", bbhands_mc)
281 285
282 return Registered 286 return Registered
283 287
284def remove(name, handler, data=None): 288def remove(name, handler, data=None):
285 """Remove an Event handler""" 289 """Remove an Event handler"""
286 if data: 290 if data is not None:
287 if data.getVar("BB_CURRENT_MC"): 291 if data.getVar("BB_CURRENT_MC"):
288 mc = data.getVar("BB_CURRENT_MC") 292 mc = data.getVar("BB_CURRENT_MC")
289 name = '%s%s' % (mc.replace('-', '_'), name) 293 name = '%s%s' % (mc.replace('-', '_'), name)
@@ -295,8 +299,8 @@ def remove(name, handler, data=None):
295 if name in _event_handler_map[event]: 299 if name in _event_handler_map[event]:
296 _event_handler_map[event].pop(name) 300 _event_handler_map[event].pop(name)
297 301
298 if data: 302 if data is not None:
299 bbhands_mc = (data.getVar("__BBHANDLERS_MC") or []) 303 bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
300 if name in bbhands_mc: 304 if name in bbhands_mc:
301 bbhands_mc.remove(name) 305 bbhands_mc.remove(name)
302 data.setVar("__BBHANDLERS_MC", bbhands_mc) 306 data.setVar("__BBHANDLERS_MC", bbhands_mc)
@@ -666,6 +670,17 @@ class ReachableStamps(Event):
666 Event.__init__(self) 670 Event.__init__(self)
667 self.stamps = stamps 671 self.stamps = stamps
668 672
673class StaleSetSceneTasks(Event):
674 """
675 An event listing setscene tasks which are 'stale' and will
676 be rerun. The metadata may use to clean up stale data.
677 tasks is a mapping of tasks and matching stale stamps.
678 """
679
680 def __init__(self, tasks):
681 Event.__init__(self)
682 self.tasks = tasks
683
669class FilesMatchingFound(Event): 684class FilesMatchingFound(Event):
670 """ 685 """
671 Event when a list of files matching the supplied pattern has 686 Event when a list of files matching the supplied pattern has
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 19169d7..cf0201c 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1243,7 +1243,7 @@ class FetchData(object):
1243 1243
1244 if checksum_name in self.parm: 1244 if checksum_name in self.parm:
1245 checksum_expected = self.parm[checksum_name] 1245 checksum_expected = self.parm[checksum_name]
1246 elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]: 1246 elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3", "az"]:
1247 checksum_expected = None 1247 checksum_expected = None
1248 else: 1248 else:
1249 checksum_expected = d.getVarFlag("SRC_URI", checksum_name) 1249 checksum_expected = d.getVarFlag("SRC_URI", checksum_name)
@@ -1908,6 +1908,7 @@ from . import repo
1908from . import clearcase 1908from . import clearcase
1909from . import npm 1909from . import npm
1910from . import npmsw 1910from . import npmsw
1911from . import az
1911 1912
1912methods.append(local.Local()) 1913methods.append(local.Local())
1913methods.append(wget.Wget()) 1914methods.append(wget.Wget())
@@ -1927,3 +1928,4 @@ methods.append(repo.Repo())
1927methods.append(clearcase.ClearCase()) 1928methods.append(clearcase.ClearCase())
1928methods.append(npm.Npm()) 1929methods.append(npm.Npm())
1929methods.append(npmsw.NpmShrinkWrap()) 1930methods.append(npmsw.NpmShrinkWrap())
1931methods.append(az.Az())
diff --git a/bitbake/lib/bb/fetch2/az.py b/bitbake/lib/bb/fetch2/az.py
new file mode 100644
index 0000000..3ccc594
--- /dev/null
+++ b/bitbake/lib/bb/fetch2/az.py
@@ -0,0 +1,93 @@
1"""
2BitBake 'Fetch' Azure Storage implementation
3
4"""
5
6# Copyright (C) 2021 Alejandro Hernandez Samaniego
7#
8# Based on bb.fetch2.wget:
9# Copyright (C) 2003, 2004 Chris Larson
10#
11# SPDX-License-Identifier: GPL-2.0-only
12#
13# Based on functions from the base bb module, Copyright 2003 Holger Schurig
14
15import shlex
16import os
17import bb
18from bb.fetch2 import FetchError
19from bb.fetch2 import logger
20from bb.fetch2.wget import Wget
21
22
23class Az(Wget):
24
25 def supports(self, ud, d):
26 """
27 Check to see if a given url can be fetched from Azure Storage
28 """
29 return ud.type in ['az']
30
31
32 def checkstatus(self, fetch, ud, d, try_again=True):
33
34 # checkstatus discards parameters either way, we need to do this before adding the SAS
35 ud.url = ud.url.replace('az://','https://').split(';')[0]
36
37 az_sas = d.getVar('AZ_SAS')
38 if az_sas and az_sas not in ud.url:
39 ud.url += az_sas
40
41 return Wget.checkstatus(self, fetch, ud, d, try_again)
42
43 # Override download method, include retries
44 def download(self, ud, d, retries=3):
45 """Fetch urls"""
46
47 # If were reaching the account transaction limit we might be refused a connection,
48 # retrying allows us to avoid false negatives since the limit changes over time
49 fetchcmd = self.basecmd + ' --retry-connrefused --waitretry=5'
50
51 # We need to provide a localpath to avoid wget using the SAS
52 # ud.localfile either has the downloadfilename or ud.path
53 localpath = os.path.join(d.getVar("DL_DIR"), ud.localfile)
54 bb.utils.mkdirhier(os.path.dirname(localpath))
55 fetchcmd += " -O %s" % shlex.quote(localpath)
56
57
58 if ud.user and ud.pswd:
59 fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
60
61 # Check if a Shared Access Signature was given and use it
62 az_sas = d.getVar('AZ_SAS')
63
64 if az_sas:
65 azuri = '%s%s%s%s' % ('https://', ud.host, ud.path, az_sas)
66 else:
67 azuri = '%s%s%s' % ('https://', ud.host, ud.path)
68
69 if os.path.exists(ud.localpath):
70 # file exists, but we didnt complete it.. trying again.
71 fetchcmd += d.expand(" -c -P ${DL_DIR} '%s'" % azuri)
72 else:
73 fetchcmd += d.expand(" -P ${DL_DIR} '%s'" % azuri)
74
75 try:
76 self._runwget(ud, d, fetchcmd, False)
77 except FetchError as e:
78 # Azure fails on handshake sometimes when using wget after some stress, producing a
79 # FetchError from the fetcher, if the artifact exists retyring should succeed
80 if 'Unable to establish SSL connection' in str(e):
81 logger.debug2('Unable to establish SSL connection: Retries remaining: %s, Retrying...' % retries)
82 self.download(ud, d, retries -1)
83
84 # Sanity check since wget can pretend it succeed when it didn't
85 # Also, this used to happen if sourceforge sent us to the mirror page
86 if not os.path.exists(ud.localpath):
87 raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (azuri, ud.localpath), azuri)
88
89 if os.path.getsize(ud.localpath) == 0:
90 os.remove(ud.localpath)
91 raise FetchError("The fetch of %s resulted in a zero size file?! Deleting and failing since this isn't right." % (azuri), azuri)
92
93 return True
diff --git a/bitbake/lib/bb/providers.py b/bitbake/lib/bb/providers.py
index b5a6cd0..3ec11a4 100644
--- a/bitbake/lib/bb/providers.py
+++ b/bitbake/lib/bb/providers.py
@@ -38,16 +38,17 @@ def findProviders(cfgData, dataCache, pkg_pn = None):
38 localdata = data.createCopy(cfgData) 38 localdata = data.createCopy(cfgData)
39 bb.data.expandKeys(localdata) 39 bb.data.expandKeys(localdata)
40 40
41 required = {}
41 preferred_versions = {} 42 preferred_versions = {}
42 latest_versions = {} 43 latest_versions = {}
43 44
44 for pn in pkg_pn: 45 for pn in pkg_pn:
45 (last_ver, last_file, pref_ver, pref_file) = findBestProvider(pn, localdata, dataCache, pkg_pn) 46 (last_ver, last_file, pref_ver, pref_file, req) = findBestProvider(pn, localdata, dataCache, pkg_pn)
46 preferred_versions[pn] = (pref_ver, pref_file) 47 preferred_versions[pn] = (pref_ver, pref_file)
47 latest_versions[pn] = (last_ver, last_file) 48 latest_versions[pn] = (last_ver, last_file)
49 required[pn] = req
48 50
49 return (latest_versions, preferred_versions) 51 return (latest_versions, preferred_versions, required)
50
51 52
52def allProviders(dataCache): 53def allProviders(dataCache):
53 """ 54 """
@@ -59,7 +60,6 @@ def allProviders(dataCache):
59 all_providers[pn].append((ver, fn)) 60 all_providers[pn].append((ver, fn))
60 return all_providers 61 return all_providers
61 62
62
63def sortPriorities(pn, dataCache, pkg_pn = None): 63def sortPriorities(pn, dataCache, pkg_pn = None):
64 """ 64 """
65 Reorder pkg_pn by file priority and default preference 65 Reorder pkg_pn by file priority and default preference
@@ -87,6 +87,21 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
87 87
88 return tmp_pn 88 return tmp_pn
89 89
90def versionVariableMatch(cfgData, keyword, pn):
91 """
92 Return the value of the <keyword>_VERSION variable if set.
93 """
94
95 # pn can contain '_', e.g. gcc-cross-x86_64 and an override cannot
96 # hence we do this manually rather than use OVERRIDES
97 ver = cfgData.getVar("%s_VERSION_pn-%s" % (keyword, pn))
98 if not ver:
99 ver = cfgData.getVar("%s_VERSION_%s" % (keyword, pn))
100 if not ver:
101 ver = cfgData.getVar("%s_VERSION" % keyword)
102
103 return ver
104
90def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r): 105def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
91 """ 106 """
92 Check if the version pe,pv,pr is the preferred one. 107 Check if the version pe,pv,pr is the preferred one.
@@ -102,19 +117,28 @@ def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
102 117
103def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): 118def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
104 """ 119 """
105 Find the first provider in pkg_pn with a PREFERRED_VERSION set. 120 Find the first provider in pkg_pn with REQUIRED_VERSION or PREFERRED_VERSION set.
106 """ 121 """
107 122
108 preferred_file = None 123 preferred_file = None
109 preferred_ver = None 124 preferred_ver = None
125 required = False
110 126
111 # pn can contain '_', e.g. gcc-cross-x86_64 and an override cannot 127 required_v = versionVariableMatch(cfgData, "REQUIRED", pn)
112 # hence we do this manually rather than use OVERRIDES 128 preferred_v = versionVariableMatch(cfgData, "PREFERRED", pn)
113 preferred_v = cfgData.getVar("PREFERRED_VERSION_pn-%s" % pn) 129
114 if not preferred_v: 130 itemstr = ""
115 preferred_v = cfgData.getVar("PREFERRED_VERSION_%s" % pn) 131 if item:
116 if not preferred_v: 132 itemstr = " (for item %s)" % item
117 preferred_v = cfgData.getVar("PREFERRED_VERSION") 133
134 if required_v is not None:
135 if preferred_v is not None:
136 logger.warn("REQUIRED_VERSION and PREFERRED_VERSION for package %s%s are both set using REQUIRED_VERSION %s", pn, itemstr, required_v)
137 else:
138 logger.debug("REQUIRED_VERSION is set for package %s%s", pn, itemstr)
139 # REQUIRED_VERSION always takes precedence over PREFERRED_VERSION
140 preferred_v = required_v
141 required = True
118 142
119 if preferred_v: 143 if preferred_v:
120 m = re.match(r'(\d+:)*(.*)(_.*)*', preferred_v) 144 m = re.match(r'(\d+:)*(.*)(_.*)*', preferred_v)
@@ -147,11 +171,9 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
147 pv_str = preferred_v 171 pv_str = preferred_v
148 if not (preferred_e is None): 172 if not (preferred_e is None):
149 pv_str = '%s:%s' % (preferred_e, pv_str) 173 pv_str = '%s:%s' % (preferred_e, pv_str)
150 itemstr = ""
151 if item:
152 itemstr = " (for item %s)" % item
153 if preferred_file is None: 174 if preferred_file is None:
154 logger.warn("preferred version %s of %s not available%s", pv_str, pn, itemstr) 175 if not required:
176 logger.warn("preferred version %s of %s not available%s", pv_str, pn, itemstr)
155 available_vers = [] 177 available_vers = []
156 for file_set in pkg_pn: 178 for file_set in pkg_pn:
157 for f in file_set: 179 for f in file_set:
@@ -164,11 +186,15 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
164 if available_vers: 186 if available_vers:
165 available_vers.sort() 187 available_vers.sort()
166 logger.warn("versions of %s available: %s", pn, ' '.join(available_vers)) 188 logger.warn("versions of %s available: %s", pn, ' '.join(available_vers))
189 if required:
190 logger.error("required version %s of %s not available%s", pv_str, pn, itemstr)
167 else: 191 else:
168 logger.debug("selecting %s as PREFERRED_VERSION %s of package %s%s", preferred_file, pv_str, pn, itemstr) 192 if required:
169 193 logger.debug("selecting %s as REQUIRED_VERSION %s of package %s%s", preferred_file, pv_str, pn, itemstr)
170 return (preferred_ver, preferred_file) 194 else:
195 logger.debug("selecting %s as PREFERRED_VERSION %s of package %s%s", preferred_file, pv_str, pn, itemstr)
171 196
197 return (preferred_ver, preferred_file, required)
172 198
173def findLatestProvider(pn, cfgData, dataCache, file_set): 199def findLatestProvider(pn, cfgData, dataCache, file_set):
174 """ 200 """
@@ -189,7 +215,6 @@ def findLatestProvider(pn, cfgData, dataCache, file_set):
189 215
190 return (latest, latest_f) 216 return (latest, latest_f)
191 217
192
193def findBestProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): 218def findBestProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
194 """ 219 """
195 If there is a PREFERRED_VERSION, find the highest-priority bbfile 220 If there is a PREFERRED_VERSION, find the highest-priority bbfile
@@ -198,17 +223,16 @@ def findBestProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
198 """ 223 """
199 224
200 sortpkg_pn = sortPriorities(pn, dataCache, pkg_pn) 225 sortpkg_pn = sortPriorities(pn, dataCache, pkg_pn)
201 # Find the highest priority provider with a PREFERRED_VERSION set 226 # Find the highest priority provider with a REQUIRED_VERSION or PREFERRED_VERSION set
202 (preferred_ver, preferred_file) = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn, item) 227 (preferred_ver, preferred_file, required) = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn, item)
203 # Find the latest version of the highest priority provider 228 # Find the latest version of the highest priority provider
204 (latest, latest_f) = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[0]) 229 (latest, latest_f) = findLatestProvider(pn, cfgData, dataCache, sortpkg_pn[0])
205 230
206 if preferred_file is None: 231 if not required and preferred_file is None:
207 preferred_file = latest_f 232 preferred_file = latest_f
208 preferred_ver = latest 233 preferred_ver = latest
209 234
210 return (latest, latest_f, preferred_ver, preferred_file) 235 return (latest, latest_f, preferred_ver, preferred_file, required)
211
212 236
213def _filterProviders(providers, item, cfgData, dataCache): 237def _filterProviders(providers, item, cfgData, dataCache):
214 """ 238 """
@@ -234,10 +258,13 @@ def _filterProviders(providers, item, cfgData, dataCache):
234 258
235 logger.debug("providers for %s are: %s", item, list(sorted(pkg_pn.keys()))) 259 logger.debug("providers for %s are: %s", item, list(sorted(pkg_pn.keys())))
236 260
237 # First add PREFERRED_VERSIONS 261 # First add REQUIRED_VERSIONS or PREFERRED_VERSIONS
238 for pn in sorted(pkg_pn): 262 for pn in sorted(pkg_pn):
239 sortpkg_pn[pn] = sortPriorities(pn, dataCache, pkg_pn) 263 sortpkg_pn[pn] = sortPriorities(pn, dataCache, pkg_pn)
240 preferred_versions[pn] = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item) 264 preferred_ver, preferred_file, required = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item)
265 if required and preferred_file is None:
266 return eligible
267 preferred_versions[pn] = (preferred_ver, preferred_file)
241 if preferred_versions[pn][1]: 268 if preferred_versions[pn][1]:
242 eligible.append(preferred_versions[pn][1]) 269 eligible.append(preferred_versions[pn][1])
243 270
@@ -249,7 +276,6 @@ def _filterProviders(providers, item, cfgData, dataCache):
249 eligible.append(preferred_versions[pn][1]) 276 eligible.append(preferred_versions[pn][1])
250 277
251 if not eligible: 278 if not eligible:
252 logger.error("no eligible providers for %s", item)
253 return eligible 279 return eligible
254 280
255 # If pn == item, give it a slight default preference 281 # If pn == item, give it a slight default preference
@@ -266,7 +292,6 @@ def _filterProviders(providers, item, cfgData, dataCache):
266 292
267 return eligible 293 return eligible
268 294
269
270def filterProviders(providers, item, cfgData, dataCache): 295def filterProviders(providers, item, cfgData, dataCache):
271 """ 296 """
272 Take a list of providers and filter/reorder according to the 297 Take a list of providers and filter/reorder according to the
@@ -388,7 +413,6 @@ def getRuntimeProviders(dataCache, rdepend):
388 413
389 return rproviders 414 return rproviders
390 415
391
392def buildWorldTargetList(dataCache, task=None): 416def buildWorldTargetList(dataCache, task=None):
393 """ 417 """
394 Build package list for "bitbake world" 418 Build package list for "bitbake world"
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 54ef245..cd56a55 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1242,6 +1242,7 @@ class RunQueue:
1242 magic = "decafbad" 1242 magic = "decafbad"
1243 if self.cooker.configuration.profile: 1243 if self.cooker.configuration.profile:
1244 magic = "decafbadbad" 1244 magic = "decafbadbad"
1245 fakerootlogs = None
1245 if fakeroot: 1246 if fakeroot:
1246 magic = magic + "beef" 1247 magic = magic + "beef"
1247 mcdata = self.cooker.databuilder.mcdata[mc] 1248 mcdata = self.cooker.databuilder.mcdata[mc]
@@ -1251,10 +1252,11 @@ class RunQueue:
1251 for key, value in (var.split('=') for var in fakerootenv): 1252 for key, value in (var.split('=') for var in fakerootenv):
1252 env[key] = value 1253 env[key] = value
1253 worker = subprocess.Popen(fakerootcmd + ["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env) 1254 worker = subprocess.Popen(fakerootcmd + ["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
1255 fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs
1254 else: 1256 else:
1255 worker = subprocess.Popen(["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE) 1257 worker = subprocess.Popen(["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
1256 bb.utils.nonblockingfd(worker.stdout) 1258 bb.utils.nonblockingfd(worker.stdout)
1257 workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec) 1259 workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec, fakerootlogs=fakerootlogs)
1258 1260
1259 workerdata = { 1261 workerdata = {
1260 "taskdeps" : self.rqdata.dataCaches[mc].task_deps, 1262 "taskdeps" : self.rqdata.dataCaches[mc].task_deps,
@@ -1772,7 +1774,7 @@ class RunQueueExecute:
1772 self.sqdata = SQData() 1774 self.sqdata = SQData()
1773 build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self) 1775 build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
1774 1776
1775 def runqueue_process_waitpid(self, task, status): 1777 def runqueue_process_waitpid(self, task, status, fakerootlog=None):
1776 1778
1777 # self.build_stamps[pid] may not exist when use shared work directory. 1779 # self.build_stamps[pid] may not exist when use shared work directory.
1778 if task in self.build_stamps: 1780 if task in self.build_stamps:
@@ -1787,7 +1789,7 @@ class RunQueueExecute:
1787 self.sq_live.remove(task) 1789 self.sq_live.remove(task)
1788 else: 1790 else:
1789 if status != 0: 1791 if status != 0:
1790 self.task_fail(task, status) 1792 self.task_fail(task, status, fakerootlog=fakerootlog)
1791 else: 1793 else:
1792 self.task_complete(task) 1794 self.task_complete(task)
1793 return True 1795 return True
@@ -1908,14 +1910,31 @@ class RunQueueExecute:
1908 self.task_completeoutright(task) 1910 self.task_completeoutright(task)
1909 self.runq_tasksrun.add(task) 1911 self.runq_tasksrun.add(task)
1910 1912
1911 def task_fail(self, task, exitcode): 1913 def task_fail(self, task, exitcode, fakerootlog=None):
1912 """ 1914 """
1913 Called when a task has failed 1915 Called when a task has failed
1914 Updates the state engine with the failure 1916 Updates the state engine with the failure
1915 """ 1917 """
1916 self.stats.taskFailed() 1918 self.stats.taskFailed()
1917 self.failed_tids.append(task) 1919 self.failed_tids.append(task)
1918 bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq), self.cfgData) 1920
1921 fakeroot_log = ""
1922 if fakerootlog and os.path.exists(fakerootlog):
1923 with open(fakerootlog) as fakeroot_log_file:
1924 fakeroot_failed = False
1925 for line in reversed(fakeroot_log_file.readlines()):
1926 for fakeroot_error in ['mismatch', 'error', 'fatal']:
1927 if fakeroot_error in line.lower():
1928 fakeroot_failed = True
1929 if 'doing new pid setup and server start' in line:
1930 break
1931 fakeroot_log = line + fakeroot_log
1932
1933 if not fakeroot_failed:
1934 fakeroot_log = None
1935
1936 bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=fakeroot_log), self.cfgData)
1937
1919 if self.rqdata.taskData[''].abort: 1938 if self.rqdata.taskData[''].abort:
1920 self.rq.state = runQueueCleanUp 1939 self.rq.state = runQueueCleanUp
1921 1940
@@ -1943,6 +1962,10 @@ class RunQueueExecute:
1943 logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks)) 1962 logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks))
1944 err = True 1963 err = True
1945 1964
1965 for tid in self.scenequeue_covered.intersection(self.scenequeue_notcovered):
1966 # No task should end up in both covered and uncovered, that is a bug.
1967 logger.error("Setscene task %s in both covered and notcovered." % tid)
1968
1946 for tid in self.rqdata.runq_setscene_tids: 1969 for tid in self.rqdata.runq_setscene_tids:
1947 if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered: 1970 if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered:
1948 err = True 1971 err = True
@@ -2431,6 +2454,12 @@ class RunQueueExecute:
2431 2454
2432 for dep in sorted(self.sqdata.sq_deps[task]): 2455 for dep in sorted(self.sqdata.sq_deps[task]):
2433 if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]: 2456 if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]:
2457 if dep in self.scenequeue_covered or dep in self.scenequeue_notcovered:
2458 # dependency could be already processed, e.g. noexec setscene task
2459 continue
2460 noexec, stamppresent = check_setscene_stamps(dep, self.rqdata, self.rq, self.stampcache)
2461 if noexec or stamppresent:
2462 continue
2434 logger.debug2("%s was unavailable and is a hard dependency of %s so skipping" % (task, dep)) 2463 logger.debug2("%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
2435 self.sq_task_failoutright(dep) 2464 self.sq_task_failoutright(dep)
2436 continue 2465 continue
@@ -2755,6 +2784,40 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
2755 2784
2756 update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True) 2785 update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True)
2757 2786
2787 # Compute a list of 'stale' sstate tasks where the current hash does not match the one
2788 # in any stamp files. Pass the list out to metadata as an event.
2789 found = {}
2790 for tid in rqdata.runq_setscene_tids:
2791 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
2792 stamps = bb.build.find_stale_stamps(taskname, rqdata.dataCaches[mc], taskfn)
2793 if stamps:
2794 if mc not in found:
2795 found[mc] = {}
2796 found[mc][tid] = stamps
2797 for mc in found:
2798 event = bb.event.StaleSetSceneTasks(found[mc])
2799 bb.event.fire(event, cooker.databuilder.mcdata[mc])
2800
2801def check_setscene_stamps(tid, rqdata, rq, stampcache, noexecstamp=False):
2802
2803 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
2804
2805 taskdep = rqdata.dataCaches[mc].task_deps[taskfn]
2806
2807 if 'noexec' in taskdep and taskname in taskdep['noexec']:
2808 bb.build.make_stamp(taskname + "_setscene", rqdata.dataCaches[mc], taskfn)
2809 return True, False
2810
2811 if rq.check_stamp_task(tid, taskname + "_setscene", cache=stampcache):
2812 logger.debug2('Setscene stamp current for task %s', tid)
2813 return False, True
2814
2815 if rq.check_stamp_task(tid, taskname, recurse = True, cache=stampcache):
2816 logger.debug2('Normal stamp current for task %s', tid)
2817 return False, True
2818
2819 return False, False
2820
2758def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True): 2821def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True):
2759 2822
2760 tocheck = set() 2823 tocheck = set()
@@ -2765,24 +2828,14 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
2765 if tid in sqdata.valid: 2828 if tid in sqdata.valid:
2766 sqdata.valid.remove(tid) 2829 sqdata.valid.remove(tid)
2767 2830
2768 (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) 2831 noexec, stamppresent = check_setscene_stamps(tid, rqdata, rq, stampcache, noexecstamp=True)
2769
2770 taskdep = rqdata.dataCaches[mc].task_deps[taskfn]
2771 2832
2772 if 'noexec' in taskdep and taskname in taskdep['noexec']: 2833 if noexec:
2773 sqdata.noexec.add(tid) 2834 sqdata.noexec.add(tid)
2774 sqrq.sq_task_skip(tid) 2835 sqrq.sq_task_skip(tid)
2775 bb.build.make_stamp(taskname + "_setscene", rqdata.dataCaches[mc], taskfn)
2776 continue 2836 continue
2777 2837
2778 if rq.check_stamp_task(tid, taskname + "_setscene", cache=stampcache): 2838 if stamppresent:
2779 logger.debug2('Setscene stamp current for task %s', tid)
2780 sqdata.stamppresent.add(tid)
2781 sqrq.sq_task_skip(tid)
2782 continue
2783
2784 if rq.check_stamp_task(tid, taskname, recurse = True, cache=stampcache):
2785 logger.debug2('Normal stamp current for task %s', tid)
2786 sqdata.stamppresent.add(tid) 2839 sqdata.stamppresent.add(tid)
2787 sqrq.sq_task_skip(tid) 2840 sqrq.sq_task_skip(tid)
2788 continue 2841 continue
@@ -2876,12 +2929,16 @@ class runQueueTaskFailed(runQueueEvent):
2876 """ 2929 """
2877 Event notifying a task failed 2930 Event notifying a task failed
2878 """ 2931 """
2879 def __init__(self, task, stats, exitcode, rq): 2932 def __init__(self, task, stats, exitcode, rq, fakeroot_log=None):
2880 runQueueEvent.__init__(self, task, stats, rq) 2933 runQueueEvent.__init__(self, task, stats, rq)
2881 self.exitcode = exitcode 2934 self.exitcode = exitcode
2935 self.fakeroot_log = fakeroot_log
2882 2936
2883 def __str__(self): 2937 def __str__(self):
2884 return "Task (%s) failed with exit code '%s'" % (self.taskstring, self.exitcode) 2938 if self.fakeroot_log:
2939 return "Task (%s) failed with exit code '%s' \nPseudo log:\n%s" % (self.taskstring, self.exitcode, self.fakeroot_log)
2940 else:
2941 return "Task (%s) failed with exit code '%s'" % (self.taskstring, self.exitcode)
2885 2942
2886class sceneQueueTaskFailed(sceneQueueEvent): 2943class sceneQueueTaskFailed(sceneQueueEvent):
2887 """ 2944 """
@@ -2933,7 +2990,7 @@ class runQueuePipe():
2933 """ 2990 """
2934 Abstraction for a pipe between a worker thread and the server 2991 Abstraction for a pipe between a worker thread and the server
2935 """ 2992 """
2936 def __init__(self, pipein, pipeout, d, rq, rqexec): 2993 def __init__(self, pipein, pipeout, d, rq, rqexec, fakerootlogs=None):
2937 self.input = pipein 2994 self.input = pipein
2938 if pipeout: 2995 if pipeout:
2939 pipeout.close() 2996 pipeout.close()
@@ -2942,6 +2999,7 @@ class runQueuePipe():
2942 self.d = d 2999 self.d = d
2943 self.rq = rq 3000 self.rq = rq
2944 self.rqexec = rqexec 3001 self.rqexec = rqexec
3002 self.fakerootlogs = fakerootlogs
2945 3003
2946 def setrunqueueexec(self, rqexec): 3004 def setrunqueueexec(self, rqexec):
2947 self.rqexec = rqexec 3005 self.rqexec = rqexec
@@ -2987,7 +3045,11 @@ class runQueuePipe():
2987 task, status = pickle.loads(self.queue[10:index]) 3045 task, status = pickle.loads(self.queue[10:index])
2988 except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e: 3046 except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e:
2989 bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[10:index])) 3047 bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[10:index]))
2990 self.rqexec.runqueue_process_waitpid(task, status) 3048 (_, _, _, taskfn) = split_tid_mcfn(task)
3049 fakerootlog = None
3050 if self.fakerootlogs and taskfn and taskfn in self.fakerootlogs:
3051 fakerootlog = self.fakerootlogs[taskfn]
3052 self.rqexec.runqueue_process_waitpid(task, status, fakerootlog=fakerootlog)
2991 found = True 3053 found = True
2992 self.queue = self.queue[index+11:] 3054 self.queue = self.queue[index+11:]
2993 index = self.queue.find(b"</exitcode>") 3055 index = self.queue.find(b"</exitcode>")
diff --git a/bitbake/lib/bb/tests/color.py b/bitbake/lib/bb/tests/color.py
index bf03750..88dd278 100644
--- a/bitbake/lib/bb/tests/color.py
+++ b/bitbake/lib/bb/tests/color.py
@@ -31,7 +31,7 @@ class ColorCodeTests(unittest.TestCase):
31 def setUp(self): 31 def setUp(self):
32 self.d = bb.data.init() 32 self.d = bb.data.init()
33 self._progress_watcher = ProgressWatcher() 33 self._progress_watcher = ProgressWatcher()
34 bb.event.register("bb.build.TaskProgress", self._progress_watcher.handle_event) 34 bb.event.register("bb.build.TaskProgress", self._progress_watcher.handle_event, data=self.d)
35 35
36 def tearDown(self): 36 def tearDown(self):
37 bb.event.remove("bb.build.TaskProgress", None) 37 bb.event.remove("bb.build.TaskProgress", None)
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index 7b2dac7..ddf6e97 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -1345,7 +1345,7 @@ class FetchCheckStatusTest(FetcherTest):
1345 "http://downloads.yoctoproject.org/releases/sato/sato-engine-0.2.tar.gz", 1345 "http://downloads.yoctoproject.org/releases/sato/sato-engine-0.2.tar.gz",
1346 "http://downloads.yoctoproject.org/releases/sato/sato-engine-0.3.tar.gz", 1346 "http://downloads.yoctoproject.org/releases/sato/sato-engine-0.3.tar.gz",
1347 "https://yoctoproject.org/", 1347 "https://yoctoproject.org/",
1348 "https://yoctoproject.org/documentation", 1348 "https://docs.yoctoproject.org",
1349 "http://downloads.yoctoproject.org/releases/opkg/opkg-0.1.7.tar.gz", 1349 "http://downloads.yoctoproject.org/releases/opkg/opkg-0.1.7.tar.gz",
1350 "http://downloads.yoctoproject.org/releases/opkg/opkg-0.3.0.tar.gz", 1350 "http://downloads.yoctoproject.org/releases/opkg/opkg-0.3.0.tar.gz",
1351 "ftp://sourceware.org/pub/libffi/libffi-1.20.tar.gz", 1351 "ftp://sourceware.org/pub/libffi/libffi-1.20.tar.gz",
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 763c329..796a98f 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -440,7 +440,7 @@ class Tinfoil:
440 to initialise Tinfoil and use it with config_only=True first and 440 to initialise Tinfoil and use it with config_only=True first and
441 then conditionally call this function to parse recipes later. 441 then conditionally call this function to parse recipes later.
442 """ 442 """
443 config_params = TinfoilConfigParameters(config_only=False) 443 config_params = TinfoilConfigParameters(config_only=False, quiet=self.quiet)
444 self.run_actions(config_params) 444 self.run_actions(config_params)
445 self.recipes_parsed = True 445 self.recipes_parsed = True
446 446
diff --git a/bitbake/lib/bblayers/query.py b/bitbake/lib/bblayers/query.py
index f5e3c84..947422a 100644
--- a/bitbake/lib/bblayers/query.py
+++ b/bitbake/lib/bblayers/query.py
@@ -128,7 +128,7 @@ skipped recipes will also be listed, with a " (skipped)" suffix.
128 sys.exit(1) 128 sys.exit(1)
129 129
130 pkg_pn = self.tinfoil.cooker.recipecaches[mc].pkg_pn 130 pkg_pn = self.tinfoil.cooker.recipecaches[mc].pkg_pn
131 (latest_versions, preferred_versions) = self.tinfoil.find_providers(mc) 131 (latest_versions, preferred_versions, required_versions) = self.tinfoil.find_providers(mc)
132 allproviders = self.tinfoil.get_all_providers(mc) 132 allproviders = self.tinfoil.get_all_providers(mc)
133 133
134 # Ensure we list skipped recipes 134 # Ensure we list skipped recipes
diff --git a/documentation/README b/documentation/README
index be03bb1..176c6db 100644
--- a/documentation/README
+++ b/documentation/README
@@ -47,7 +47,7 @@ Folders exist for individual manuals as follows:
47Each folder is self-contained regarding content and figures. 47Each folder is self-contained regarding content and figures.
48 48
49If you want to find HTML versions of the Yocto Project manuals on the web, 49If you want to find HTML versions of the Yocto Project manuals on the web,
50go to https://www.yoctoproject.org and click on the "Documentation" tab. From 50go to https://www.yoctoproject.org and click on the "Docs" tab. From
51there you have access to archived documentation from previous releases, current 51there you have access to archived documentation from previous releases, current
52documentation for the latest release, and "Docs in Progress" for the release 52documentation for the latest release, and "Docs in Progress" for the release
53currently being developed. 53currently being developed.
@@ -91,13 +91,13 @@ Yocto Project documentation website
91A new website has been created to host the Yocto Project 91A new website has been created to host the Yocto Project
92documentation, it can be found at: https://docs.yoctoproject.org/. 92documentation, it can be found at: https://docs.yoctoproject.org/.
93 93
94The entire Yocto Project documentation, as well as the BitBake manual 94The entire Yocto Project documentation, as well as the BitBake manual,
95is published on this website, including all previously released 95is published on this website, including all previously released
96versions. A version switcher was added, as a drop-down menu on the top 96versions. A version switcher was added, as a drop-down menu on the top
97of the page to switch back and forth between the various versions of 97of the page to switch back and forth between the various versions of
98the current active Yocto Project releases. 98the current active Yocto Project releases.
99 99
100Transition pages have been added (as rst file) to show links to old 100Transition pages have been added (as rst files) to show links to old
101versions of the Yocto Project documentation with links to each manual 101versions of the Yocto Project documentation with links to each manual
102generated with DocBook. 102generated with DocBook.
103 103
@@ -109,7 +109,7 @@ obvious reasons, we will only support building the Yocto Project
109documentation with Python3. 109documentation with Python3.
110 110
111Sphinx might be available in your Linux distro packages repositories, 111Sphinx might be available in your Linux distro packages repositories,
112however it is not recommend using distro packages, as they might be 112however it is not recommended to use distro packages, as they might be
113old versions, especially if you are using an LTS version of your 113old versions, especially if you are using an LTS version of your
114distro. The recommended method to install Sphinx and all required 114distro. The recommended method to install Sphinx and all required
115dependencies is to use the Python Package Index (pip). 115dependencies is to use the Python Package Index (pip).
@@ -185,7 +185,7 @@ Sphinx has a glossary directive. From
185https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#glossary: 185https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#glossary:
186 186
187 This directive must contain a reST definition list with terms and 187 This directive must contain a reST definition list with terms and
188 definitions. The definitions will then be referencable with the 188 definitions. It's then possible to refer to each definition through the
189 [https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-term 189 [https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-term
190 'term' role]. 190 'term' role].
191 191
@@ -206,7 +206,7 @@ however there are important shortcomings. For example they cannot be
206used/nested inside code-block sections. 206used/nested inside code-block sections.
207 207
208A Sphinx extension was implemented to support variable substitutions 208A Sphinx extension was implemented to support variable substitutions
209to mimic the DocBook based documentation behavior. Variabes 209to mimic the DocBook based documentation behavior. Variable
210substitutions are done while reading/parsing the .rst files. The 210substitutions are done while reading/parsing the .rst files. The
211pattern for variables substitutions is the same as with DocBook, 211pattern for variables substitutions is the same as with DocBook,
212e.g. `&VAR;`. 212e.g. `&VAR;`.
@@ -222,7 +222,7 @@ For example, the following .rst content will produce the 'expected'
222content: 222content:
223 223
224 .. code-block:: 224 .. code-block::
225 $ mkdir ~/poky-&DISTRO; 225 $ mkdir poky-&DISTRO;
226 or 226 or
227 $ git clone &YOCTO_GIT_URL;/git/poky -b &DISTRO_NAME_NO_CAP; 227 $ git clone &YOCTO_GIT_URL;/git/poky -b &DISTRO_NAME_NO_CAP;
228 228
@@ -237,14 +237,14 @@ Note directive
237Sphinx has a builtin 'note' directive that produces clean Note section 237Sphinx has a builtin 'note' directive that produces clean Note section
238in the output file. There are various types of directives such as 238in the output file. There are various types of directives such as
239"attention", "caution", "danger", "error", "hint", "important", "tip", 239"attention", "caution", "danger", "error", "hint", "important", "tip",
240"warning", "admonition" that are supported, and additional directive 240"warning", "admonition" that are supported, and additional directives
241can be added as Sphinx extension if needed. 241can be added as Sphinx extension if needed.
242 242
243Figures 243Figures
244======= 244=======
245 245
246The Yocto Project documentation has many figures/images. Sphinx has a 246The Yocto Project documentation has many figures/images. Sphinx has a
247'figure' directive which is straight forward to use. To include a 247'figure' directive which is straightforward to use. To include a
248figure in the body of the documentation: 248figure in the body of the documentation:
249 249
250 .. image:: figures/YP-flow-diagram.png 250 .. image:: figures/YP-flow-diagram.png
@@ -259,10 +259,13 @@ websites.
259More information can be found here: 259More information can be found here:
260https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html. 260https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html.
261 261
262Anchor (<#link>) links are forbidden as they are not checked by Sphinx during
263the build and may be broken without knowing about it.
264
262References 265References
263========== 266==========
264 267
265The following extension is enabed by default: 268The following extension is enabled by default:
266sphinx.ext.autosectionlabel 269sphinx.ext.autosectionlabel
267(https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html). 270(https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html).
268 271
@@ -271,7 +274,7 @@ autosectionlabel_prefix_document is enabled by default, so that we can
271insert references from any document. 274insert references from any document.
272 275
273For example, to insert an HTML link to a section from 276For example, to insert an HTML link to a section from
274documentaion/manual/intro.rst, use: 277documentation/manual/intro.rst, use:
275 278
276 Please check this :ref:`manual/intro:Cross-References to Locations in the Same Document` 279 Please check this :ref:`manual/intro:Cross-References to Locations in the Same Document`
277 280
@@ -294,7 +297,8 @@ Extlinks
294 297
295The sphinx.ext.extlinks extension is enabled by default 298The sphinx.ext.extlinks extension is enabled by default
296(https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html#use-the-external-links-extension), 299(https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html#use-the-external-links-extension),
297and it is configured with: 300and it is configured with the 'extlinks' definitions in
301the 'documentation/conf.py' file:
298 302
299 'yocto_home': ('https://yoctoproject.org%s', None), 303 'yocto_home': ('https://yoctoproject.org%s', None),
300 'yocto_wiki': ('https://wiki.yoctoproject.org%s', None), 304 'yocto_wiki': ('https://wiki.yoctoproject.org%s', None),
@@ -306,6 +310,10 @@ and it is configured with:
306 'yocto_git': ('https://git.yoctoproject.org%s', None), 310 'yocto_git': ('https://git.yoctoproject.org%s', None),
307 'oe_home': ('https://www.openembedded.org%s', None), 311 'oe_home': ('https://www.openembedded.org%s', None),
308 'oe_lists': ('https://lists.openembedded.org%s', None), 312 'oe_lists': ('https://lists.openembedded.org%s', None),
313 'oe_git': ('https://git.openembedded.org%s', None),
314 'oe_wiki': ('https://www.openembedded.org/wiki%s', None),
315 'oe_layerindex': ('https://layers.openembedded.org%s', None),
316 'oe_layer': ('https://layers.openembedded.org/layerindex/branch/master/layer%s', None),
309 317
310It creates convenient shortcuts which can be used throughout the 318It creates convenient shortcuts which can be used throughout the
311documentation rst files, as: 319documentation rst files, as:
diff --git a/documentation/bitbake.rst b/documentation/bitbake.rst
new file mode 100644
index 0000000..7702f93
--- /dev/null
+++ b/documentation/bitbake.rst
@@ -0,0 +1,19 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3=====================
4BitBake Documentation
5=====================
6
7|
8
9BitBake was originally a part of the OpenEmbedded project. It was inspired by
10the Portage package management system used by the Gentoo Linux distribution. In
112004, the OpenEmbedded project was split the project into two distinct pieces:
12
13- BitBake, a generic task executor
14- OpenEmbedded, a metadata set utilized by BitBake
15
16Today, BitBake is the primary build tool of OpenEmbedded based projects, such as
17the Yocto Project.
18
19The BitBake documentation can be found :doc:`here <bitbake:index>`.
diff --git a/documentation/boilerplate.rst b/documentation/boilerplate.rst
index 2ad60eb..baccc9f 100644
--- a/documentation/boilerplate.rst
+++ b/documentation/boilerplate.rst
@@ -14,5 +14,5 @@ Commons.
14To report any inaccuracies or problems with this (or any other Yocto Project) 14To report any inaccuracies or problems with this (or any other Yocto Project)
15manual, or to send additions or changes, please send email/patches to the Yocto 15manual, or to send additions or changes, please send email/patches to the Yocto
16Project documentation mailing list at ``docs@lists.yoctoproject.org`` or 16Project documentation mailing list at ``docs@lists.yoctoproject.org`` or
17log into the freenode ``#yocto`` channel. 17log into the Freenode ``#yocto`` channel.
18 18
diff --git a/documentation/brief-yoctoprojectqs/index.rst b/documentation/brief-yoctoprojectqs/index.rst
index 63083cb..974ae5e 100644
--- a/documentation/brief-yoctoprojectqs/index.rst
+++ b/documentation/brief-yoctoprojectqs/index.rst
@@ -60,10 +60,10 @@ following requirements:
60 60
61- 61-
62 62
63 - Git 1.8.3.1 or greater 63 - Git &MIN_GIT_VERSION; or greater
64 - tar 1.28 or greater 64 - tar &MIN_TAR_VERSION; or greater
65 - Python 3.5.0 or greater. 65 - Python &MIN_PYTHON_VERSION; or greater.
66 - gcc 5.0 or greater. 66 - gcc &MIN_GCC_VERSION; or greater.
67 67
68If your build host does not meet any of these three listed version 68If your build host does not meet any of these three listed version
69requirements, you can take steps to prepare the system so that you 69requirements, you can take steps to prepare the system so that you
@@ -106,42 +106,57 @@ commands to clone the Poky repository.
106 Resolving deltas: 100% (323116/323116), done. 106 Resolving deltas: 100% (323116/323116), done.
107 Checking connectivity... done. 107 Checking connectivity... done.
108 108
109Move to the ``poky`` directory and take a look at the tags: 109Go to :yocto_wiki:`Releases wiki page </Releases>`, and choose a release
110codename (such as ``&DISTRO_NAME_NO_CAP;``), corresponding to either the
111latest stable release or a Long Term Support release.
112
113Then move to the ``poky`` directory and take a look at existing branches:
110 114
111.. code-block:: shell 115.. code-block:: shell
112 116
113 $ cd poky 117 $ cd poky
114 $ git fetch --tags 118 $ git branch -a
115 $ git tag 119 .
116 1.1_M1.final 120 .
117 1.1_M1.rc1 121 .
118 1.1_M1.rc2 122 remotes/origin/HEAD -> origin/master
119 1.1_M2.final 123 remotes/origin/dunfell
120 1.1_M2.rc1 124 remotes/origin/dunfell-next
125 .
126 .
127 .
128 remotes/origin/gatesgarth
129 remotes/origin/gatesgarth-next
130 .
131 .
121 . 132 .
133 remotes/origin/master
134 remotes/origin/master-next
122 . 135 .
123 . 136 .
124 yocto-2.5 137 .
125 yocto-2.5.1 138
126 yocto-2.5.2 139
127 yocto-2.6 140For this example, check out the ``&DISTRO_NAME_NO_CAP;`` branch based on the
128 yocto-2.6.1 141``&DISTRO_NAME;`` release:
129 yocto-2.6.2
130 yocto-2.7
131 yocto_1.5_M5.rc8
132
133For this example, check out the branch based on the
134``&DISTRO_REL_TAG;`` release:
135 142
136.. code-block:: shell 143.. code-block:: shell
137 144
138 $ git checkout tags/&DISTRO_REL_TAG; -b my-&DISTRO_REL_TAG; 145 $ git checkout -t origin/&DISTRO_NAME_NO_CAP; -b my-&DISTRO_NAME_NO_CAP;
139 Switched to a new branch 'my-&DISTRO_REL_TAG;' 146 Branch 'my-&DISTRO_NAME_NO_CAP;' set up to track remote branch '&DISTRO_NAME_NO_CAP;' from 'origin'.
147 Switched to a new branch 'my-&DISTRO_NAME_NO_CAP;'
140 148
141The previous Git checkout command creates a local branch named 149The previous Git checkout command creates a local branch named
142``my-&DISTRO_REL_TAG;``. The files available to you in that branch exactly 150``my-&DISTRO_NAME_NO_CAP;``. The files available to you in that branch
143match the repository's files in the ``&DISTRO_NAME_NO_CAP;`` development 151exactly match the repository's files in the ``&DISTRO_NAME_NO_CAP;``
144branch at the time of the Yocto Project &DISTRO_REL_TAG; release. 152release branch.
153
154Note that you can regularly type the following command in the same directory
155to keep your local files in sync with the release branch:
156
157.. code-block:: shell
158
159 $ git pull
145 160
146For more options and information about accessing Yocto Project related 161For more options and information about accessing Yocto Project related
147repositories, see the 162repositories, see the
@@ -176,7 +191,7 @@ an entire Linux distribution, including the toolchain, from source.
176 191
177 .. code-block:: shell 192 .. code-block:: shell
178 193
179 $ cd ~/poky 194 $ cd poky
180 $ source oe-init-build-env 195 $ source oe-init-build-env
181 You had no conf/local.conf file. This configuration file has therefore been 196 You had no conf/local.conf file. This configuration file has therefore been
182 created for you with some default values. You may wish to edit it to, for 197 created for you with some default values. You may wish to edit it to, for
@@ -189,7 +204,7 @@ an entire Linux distribution, including the toolchain, from source.
189 204
190 The Yocto Project has extensive documentation about OE including a reference 205 The Yocto Project has extensive documentation about OE including a reference
191 manual which can be found at: 206 manual which can be found at:
192 http://yoctoproject.org/documentation 207 https://docs.yoctoproject.org
193 208
194 For more information about OpenEmbedded see their website: 209 For more information about OpenEmbedded see their website:
195 http://www.openembedded.org/ 210 http://www.openembedded.org/
@@ -204,7 +219,7 @@ an entire Linux distribution, including the toolchain, from source.
204 meta-toolchain 219 meta-toolchain
205 meta-ide-support 220 meta-ide-support
206 221
207 You can also run generated qemu images with a command like 'runqemu qemux86-64' 222 You can also run generated QEMU images with a command like 'runqemu qemux86-64'
208 223
209 Among other things, the script creates the :term:`Build Directory`, which is 224 Among other things, the script creates the :term:`Build Directory`, which is
210 ``build`` in this case and is located in the :term:`Source Directory`. After 225 ``build`` in this case and is located in the :term:`Source Directory`. After
@@ -293,7 +308,7 @@ Follow these steps to add a hardware layer:
293 308
294 .. code-block:: shell 309 .. code-block:: shell
295 310
296 $ cd ~/poky 311 $ cd poky
297 $ git clone https://github.com/kraj/meta-altera.git 312 $ git clone https://github.com/kraj/meta-altera.git
298 Cloning into 'meta-altera'... 313 Cloning into 'meta-altera'...
299 remote: Counting objects: 25170, done. 314 remote: Counting objects: 25170, done.
@@ -337,7 +352,7 @@ Follow these steps to add a hardware layer:
337 352
338 .. code-block:: shell 353 .. code-block:: shell
339 354
340 $ cd ~/poky/build 355 $ cd poky/build
341 $ bitbake-layers add-layer ../meta-altera 356 $ bitbake-layers add-layer ../meta-altera
342 NOTE: Starting bitbake server... 357 NOTE: Starting bitbake server...
343 Parsing recipes: 100% |##################################################################| Time: 0:00:32 358 Parsing recipes: 100% |##################################################################| Time: 0:00:32
@@ -374,7 +389,7 @@ The following commands run the tool to create a layer named
374 389
375.. code-block:: shell 390.. code-block:: shell
376 391
377 $ cd ~/poky 392 $ cd poky
378 $ bitbake-layers create-layer meta-mylayer 393 $ bitbake-layers create-layer meta-mylayer
379 NOTE: Starting bitbake server... 394 NOTE: Starting bitbake server...
380 Add your new layer with 'bitbake-layers add-layer meta-mylayer' 395 Add your new layer with 'bitbake-layers add-layer meta-mylayer'
diff --git a/documentation/bsp-guide/bsp.rst b/documentation/bsp-guide/bsp.rst
index 93e9182..89f1564 100644
--- a/documentation/bsp-guide/bsp.rst
+++ b/documentation/bsp-guide/bsp.rst
@@ -250,7 +250,7 @@ standardization of software support for hardware.
250The proposed form described in this section does have elements that are 250The proposed form described in this section does have elements that are
251specific to the OpenEmbedded build system. It is intended that 251specific to the OpenEmbedded build system. It is intended that
252developers can use this structure with other build systems besides the 252developers can use this structure with other build systems besides the
253OpenEmbedded build system. It is also intended that it will be be simple 253OpenEmbedded build system. It is also intended that it will be simple
254to extract information and convert it to other formats if required. The 254to extract information and convert it to other formats if required. The
255OpenEmbedded build system, through its standard :ref:`layers mechanism 255OpenEmbedded build system, through its standard :ref:`layers mechanism
256<overview-manual/yp-intro:the yocto project layer model>`, can 256<overview-manual/yp-intro:the yocto project layer model>`, can
@@ -289,7 +289,7 @@ individual BSPs could differ. ::
289 meta-bsp_root_name/recipes-kernel/linux/linux-yocto_kernel_rev.bbappend 289 meta-bsp_root_name/recipes-kernel/linux/linux-yocto_kernel_rev.bbappend
290 290
291Below is an example of the Raspberry Pi BSP layer that is available from 291Below is an example of the Raspberry Pi BSP layer that is available from
292the :yocto_git:`Source Respositories <>`: 292the :yocto_git:`Source Repositories <>`:
293 293
294.. code-block:: none 294.. code-block:: none
295 295
@@ -1036,7 +1036,7 @@ the following:
1036 to reside in a machine-specific directory. 1036 to reside in a machine-specific directory.
1037 1037
1038Following is a specific example to help you better understand the 1038Following is a specific example to help you better understand the
1039process. This example customizes customizes a recipe by adding a 1039process. This example customizes a recipe by adding a
1040BSP-specific configuration file named ``interfaces`` to the 1040BSP-specific configuration file named ``interfaces`` to the
1041``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer 1041``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer
1042also supports several other machines: 1042also supports several other machines:
diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst
index 65db4ae..176025f 100644
--- a/documentation/dev-manual/common-tasks.rst
+++ b/documentation/dev-manual/common-tasks.rst
@@ -155,8 +155,8 @@ Follow these general steps to create your layer without using tools:
1555. *Optionally Test for Compatibility:* If you want permission to use 1555. *Optionally Test for Compatibility:* If you want permission to use
156 the Yocto Project Compatibility logo with your layer or application 156 the Yocto Project Compatibility logo with your layer or application
157 that uses your layer, perform the steps to apply for compatibility. 157 that uses your layer, perform the steps to apply for compatibility.
158 See the "`Making Sure Your Layer is Compatible With Yocto 158 See the
159 Project <#making-sure-your-layer-is-compatible-with-yocto-project>`__" 159 ":ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project`"
160 section for more information. 160 section for more information.
161 161
162Following Best Practices When Creating Layers 162Following Best Practices When Creating Layers
@@ -282,9 +282,8 @@ following list:
282- *Perform Steps to Apply for Yocto Project Compatibility:* If you want 282- *Perform Steps to Apply for Yocto Project Compatibility:* If you want
283 permission to use the Yocto Project Compatibility logo with your 283 permission to use the Yocto Project Compatibility logo with your
284 layer or application that uses your layer, perform the steps to apply 284 layer or application that uses your layer, perform the steps to apply
285 for compatibility. See the "`Making Sure Your Layer is Compatible 285 for compatibility. See the
286 With Yocto 286 ":ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project`"
287 Project <#making-sure-your-layer-is-compatible-with-yocto-project>`__"
288 section for more information. 287 section for more information.
289 288
290- *Follow the Layer Naming Convention:* Store custom layers in a Git 289- *Follow the Layer Naming Convention:* Store custom layers in a Git
@@ -1247,8 +1246,7 @@ the recipe.
1247 your layer such that it can be found. 1246 your layer such that it can be found.
1248 1247
1249 You can find more information on how layers are structured in the 1248 You can find more information on how layers are structured in the
1250 "`Understanding and Creating 1249 ":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
1251 Layers <#understanding-and-creating-layers>`__" section.
1252 1250
1253- *Naming Your Recipe:* When you name your recipe, you need to follow 1251- *Naming Your Recipe:* When you name your recipe, you need to follow
1254 this naming convention: 1252 this naming convention:
@@ -1364,7 +1362,7 @@ extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so
1364forth), are automatically extracted during the 1362forth), are automatically extracted during the
1365:ref:`ref-tasks-unpack` task. For 1363:ref:`ref-tasks-unpack` task. For
1366another example that specifies these types of files, see the 1364another example that specifies these types of files, see the
1367"`Autotooled Package <#new-recipe-autotooled-package>`__" section. 1365":ref:`dev-manual/common-tasks:autotooled package`" section.
1368 1366
1369Another way of specifying source is from an SCM. For Git repositories, 1367Another way of specifying source is from an SCM. For Git repositories,
1370you must specify :term:`SRCREV` and 1368you must specify :term:`SRCREV` and
@@ -1445,15 +1443,14 @@ and searches specific directories in a certain order:
1445``${``\ :term:`BPN`\ ``}``, and 1443``${``\ :term:`BPN`\ ``}``, and
1446``files``. The directories are assumed to be subdirectories of the 1444``files``. The directories are assumed to be subdirectories of the
1447directory in which the recipe or append file resides. For another 1445directory in which the recipe or append file resides. For another
1448example that specifies these types of files, see the "`Single .c File 1446example that specifies these types of files, see the
1449Package (Hello 1447":ref:`dev-manual/common-tasks:single .c file package (hello world!)`" section.
1450World!) <#new-recipe-single-c-file-package-hello-world>`__" section.
1451 1448
1452The previous example also specifies a patch file. Patch files are files 1449The previous example also specifies a patch file. Patch files are files
1453whose names usually end in ``.patch`` or ``.diff`` but can end with 1450whose names usually end in ``.patch`` or ``.diff`` but can end with
1454compressed suffixes such as ``diff.gz`` and ``patch.bz2``, for example. 1451compressed suffixes such as ``diff.gz`` and ``patch.bz2``, for example.
1455The build system automatically applies patches as described in the 1452The build system automatically applies patches as described in the
1456"`Patching Code <#new-recipe-patching-code>`__" section. 1453":ref:`dev-manual/common-tasks:patching code`" section.
1457 1454
1458Unpacking Code 1455Unpacking Code
1459-------------- 1456--------------
@@ -1543,7 +1540,7 @@ variables:
1543 appropriate files in the ``LIC_FILES_CHKSUM`` variable with incorrect 1540 appropriate files in the ``LIC_FILES_CHKSUM`` variable with incorrect
1544 md5 strings, attempt to build the software, and then note the 1541 md5 strings, attempt to build the software, and then note the
1545 resulting error messages that will report the correct md5 strings. 1542 resulting error messages that will report the correct md5 strings.
1546 See the "`Fetching Code <#new-recipe-fetching-code>`__" section for 1543 See the ":ref:`dev-manual/common-tasks:fetching code`" section for
1547 additional information. 1544 additional information.
1548 1545
1549 Here is an example that assumes the software has a ``COPYING`` file: 1546 Here is an example that assumes the software has a ``COPYING`` file:
@@ -1787,8 +1784,8 @@ Here are some common issues that cause failures.
1787 1784
1788 PARALLEL_MAKE = "" 1785 PARALLEL_MAKE = ""
1789 1786
1790 For information on parallel Makefile issues, see the "`Debugging 1787 For information on parallel Makefile issues, see the
1791 Parallel Make Races <#debugging-parallel-make-races>`__" section. 1788 ":ref:`dev-manual/common-tasks:debugging parallel make races`" section.
1792 1789
1793- *Improper host path usage:* This failure applies to recipes building 1790- *Improper host path usage:* This failure applies to recipes building
1794 for the target or ``nativesdk`` only. The failure occurs when the 1791 for the target or ``nativesdk`` only. The failure occurs when the
@@ -1854,8 +1851,7 @@ the software being built:
1854 ``PREFIX=${D}``, ``INSTALLROOT=${D}``, and so forth). 1851 ``PREFIX=${D}``, ``INSTALLROOT=${D}``, and so forth).
1855 1852
1856 For an example recipe using ``make install``, see the 1853 For an example recipe using ``make install``, see the
1857 "`Makefile-Based Package <#new-recipe-makefile-based-package>`__" 1854 ":ref:`dev-manual/common-tasks:makefile-based package`" section.
1858 section.
1859 1855
1860- *Manual:* You need to define a ``do_install`` function in your 1856- *Manual:* You need to define a ``do_install`` function in your
1861 recipe. The function must first use ``install -d`` to create the 1857 recipe. The function must first use ``install -d`` to create the
@@ -1990,14 +1986,13 @@ take. The following list describes the process:
1990 ``do_install(_append)``, and so forth as needed. 1986 ``do_install(_append)``, and so forth as needed.
1991 1987
1992- *Splitting an Application into Multiple Packages*: If you need to 1988- *Splitting an Application into Multiple Packages*: If you need to
1993 split an application into several packages, see the "`Splitting an 1989 split an application into several packages, see the
1994 Application into Multiple 1990 ":ref:`dev-manual/common-tasks:splitting an application into multiple packages`"
1995 Packages <#splitting-an-application-into-multiple-packages>`__"
1996 section for an example. 1991 section for an example.
1997 1992
1998- *Installing a Post-Installation Script*: For an example showing how 1993- *Installing a Post-Installation Script*: For an example showing how
1999 to install a post-installation script, see the "`Post-Installation 1994 to install a post-installation script, see the
2000 Scripts <#new-recipe-post-installation-scripts>`__" section. 1995 ":ref:`dev-manual/common-tasks:post-installation scripts`" section.
2001 1996
2002- *Marking Package Architecture*: Depending on what your recipe is 1997- *Marking Package Architecture*: Depending on what your recipe is
2003 building and how it is configured, it might be important to mark the 1998 building and how it is configured, it might be important to mark the
@@ -2061,16 +2056,12 @@ sysroot are cataloged in manifests in order to ensure the files can be
2061removed later when a recipe is either modified or removed. Thus, the 2056removed later when a recipe is either modified or removed. Thus, the
2062sysroot is able to remain free from stale files. 2057sysroot is able to remain free from stale files.
2063 2058
2064A subset of the files installed by the 2059A subset of the files installed by the :ref:`ref-tasks-install` task are
2065:ref:`ref-tasks-install` task are 2060used by the :ref:`ref-tasks-populate_sysroot` task as defined by the the
2066used by the 2061:term:`SYSROOT_DIRS` variable to automatically populate the sysroot. It
2067:ref:`ref-tasks-populate_sysroot` 2062is possible to modify the list of directories that populate the sysroot.
2068task as defined by the the 2063The following example shows how you could add the ``/opt`` directory to
2069:term:`SYSROOT_DIRS` variable to 2064the list of directories within a recipe:
2070automatically populate the sysroot. It is possible to modify the list of
2071directories that populate the sysroot. The following example shows how
2072you could add the ``/opt`` directory to the list of directories within a
2073recipe:
2074:: 2065::
2075 2066
2076 SYSROOT_DIRS += "/opt" 2067 SYSROOT_DIRS += "/opt"
@@ -2081,8 +2072,7 @@ recipe:
2081 that are not included in the target filesystem, allowing them to share 2072 that are not included in the target filesystem, allowing them to share
2082 these artifacts without needing to use the ``DEPLOY_DIR``. 2073 these artifacts without needing to use the ``DEPLOY_DIR``.
2083 2074
2084For a more complete description of the 2075For a more complete description of the :ref:`ref-tasks-populate_sysroot`
2085:ref:`ref-tasks-populate_sysroot`
2086task and its associated functions, see the 2076task and its associated functions, see the
2087:ref:`staging <ref-classes-staging>` class. 2077:ref:`staging <ref-classes-staging>` class.
2088 2078
@@ -2177,9 +2167,8 @@ Properly Versioning Pre-Release Recipes
2177Sometimes the name of a recipe can lead to versioning problems when the 2167Sometimes the name of a recipe can lead to versioning problems when the
2178recipe is upgraded to a final release. For example, consider the 2168recipe is upgraded to a final release. For example, consider the
2179``irssi_0.8.16-rc1.bb`` recipe file in the list of example recipes in 2169``irssi_0.8.16-rc1.bb`` recipe file in the list of example recipes in
2180the "`Storing and Naming the 2170the ":ref:`dev-manual/common-tasks:storing and naming the recipe`" section.
2181Recipe <#new-recipe-storing-and-naming-the-recipe>`__" section. This 2171This recipe is at a release candidate stage (i.e. "rc1"). When the recipe is
2182recipe is at a release candidate stage (i.e. "rc1"). When the recipe is
2183released, the recipe filename becomes ``irssi_0.8.16.bb``. The version 2172released, the recipe filename becomes ``irssi_0.8.16.bb``. The version
2184change from ``0.8.16-rc1`` to ``0.8.16`` is seen as a decrease by the 2173change from ``0.8.16-rc1`` to ``0.8.16`` is seen as a decrease by the
2185build system and package managers, so the resulting packages will not 2174build system and package managers, so the resulting packages will not
@@ -2263,8 +2252,7 @@ software you built runs correctly. To accomplish runtime testing, add
2263the build's output packages to your image and test them on the target. 2252the build's output packages to your image and test them on the target.
2264 2253
2265For information on how to customize your image by adding specific 2254For information on how to customize your image by adding specific
2266packages, see the "`Customizing 2255packages, see ":ref:`dev-manual/common-tasks:customizing images`" section.
2267Images <#usingpoky-extend-customimage>`__" section.
2268 2256
2269Examples 2257Examples
2270-------- 2258--------
@@ -2314,8 +2302,8 @@ directory BitBake uses for the build.
2314 2302
2315By default, the ``helloworld``, ``helloworld-dbg``, and 2303By default, the ``helloworld``, ``helloworld-dbg``, and
2316``helloworld-dev`` packages are built. For information on how to 2304``helloworld-dev`` packages are built. For information on how to
2317customize the packaging process, see the "`Splitting an Application into 2305customize the packaging process, see the
2318Multiple Packages <#splitting-an-application-into-multiple-packages>`__" 2306":ref:`dev-manual/common-tasks:splitting an application into multiple packages`"
2319section. 2307section.
2320 2308
2321Autotooled Package 2309Autotooled Package
@@ -3007,7 +2995,7 @@ The following steps describe how to set up the AUH utility:
3007 running the AUH utility: 2995 running the AUH utility:
3008 :: 2996 ::
3009 2997
3010 $ cd ~/poky 2998 $ cd poky
3011 $ source oe-init-build-env your_AUH_build_directory 2999 $ source oe-init-build-env your_AUH_build_directory
3012 3000
3013 Re-using an existing build directory and its configurations is not 3001 Re-using an existing build directory and its configurations is not
@@ -3428,9 +3416,8 @@ Follow these general steps:
34281. *Find the Source Code:* Temporary source code used by the 34161. *Find the Source Code:* Temporary source code used by the
3429 OpenEmbedded build system is kept in the 3417 OpenEmbedded build system is kept in the
3430 :term:`Build Directory`. See the 3418 :term:`Build Directory`. See the
3431 "`Finding Temporary Source 3419 ":ref:`dev-manual/common-tasks:finding temporary source code`" section to
3432 Code <#finding-the-temporary-source-code>`__" section to learn how to 3420 learn how to locate the directory that has the temporary source code for a
3433 locate the directory that has the temporary source code for a
3434 particular package. 3421 particular package.
3435 3422
34362. *Change Your Working Directory:* You need to be in the directory that 34232. *Change Your Working Directory:* You need to be in the directory that
@@ -3999,24 +3986,21 @@ perform to create distributions with smaller root filesystems, achieve
3999faster boot times, maintain your critical functionality, and avoid 3986faster boot times, maintain your critical functionality, and avoid
4000initial RAM disks: 3987initial RAM disks:
4001 3988
4002- `Determine your goals and guiding 3989- :ref:`Determine your goals and guiding principles
4003 principles. <#goals-and-guiding-principles>`__ 3990 <dev-manual/common-tasks:goals and guiding principles>`
4004 3991
4005- `Understand what contributes to your image 3992- :ref:`dev-manual/common-tasks:understand what contributes to your image size`
4006 size. <#understand-what-gives-your-image-size>`__
4007 3993
4008- `Reduce the size of the root 3994- :ref:`Reduce the size of the root filesystem
4009 filesystem. <#trim-the-root-filesystem>`__ 3995 <dev-manual/common-tasks:trim the root filesystem>`
4010 3996
4011- `Reduce the size of the kernel. <#trim-the-kernel>`__ 3997- :ref:`Reduce the size of the kernel <dev-manual/common-tasks:trim the kernel>`
4012 3998
4013- `Eliminate packaging 3999- :ref:`dev-manual/common-tasks:remove package management requirements`
4014 requirements. <#remove-package-management-requirements>`__
4015 4000
4016- `Look for other ways to minimize 4001- :ref:`dev-manual/common-tasks:look for other ways to minimize size`
4017 size. <#look-for-other-ways-to-minimize-size>`__
4018 4002
4019- `Iterate on the process. <#iterate-on-the-process>`__ 4003- :ref:`dev-manual/common-tasks:iterate on the process`
4020 4004
4021Goals and Guiding Principles 4005Goals and Guiding Principles
4022~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4006~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -4036,8 +4020,8 @@ very small distributions:
4036- Leverage the device-specific options. 4020- Leverage the device-specific options.
4037 4021
4038- Work in a separate layer so that you keep changes isolated. For 4022- Work in a separate layer so that you keep changes isolated. For
4039 information on how to create layers, see the "`Understanding and 4023 information on how to create layers, see the
4040 Creating Layers <#understanding-and-creating-layers>`__" section. 4024 ":ref:`dev-manual/common-tasks:understanding and creating layers`" section.
4041 4025
4042Understand What Contributes to Your Image Size 4026Understand What Contributes to Your Image Size
4043~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4027~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -4581,17 +4565,17 @@ directory:
4581 If you do have recipes that use ``AUTOREV``, you can take steps to 4565 If you do have recipes that use ``AUTOREV``, you can take steps to
4582 still use the recipes in an offline build. Do the following: 4566 still use the recipes in an offline build. Do the following:
4583 4567
4584 1. Use a configuration generated by enabling `build 4568 1. Use a configuration generated by enabling :ref:`build
4585 history <#maintaining-build-output-quality>`__. 4569 history <dev-manual/common-tasks:maintaining build output quality>`.
4586 4570
4587 2. Use the ``buildhistory-collect-srcrevs`` command to collect the 4571 2. Use the ``buildhistory-collect-srcrevs`` command to collect the
4588 stored ``SRCREV`` values from the build's history. For more 4572 stored ``SRCREV`` values from the build's history. For more
4589 information on collecting these values, see the "`Build History 4573 information on collecting these values, see the
4590 Package Information <#build-history-package-information>`__" 4574 ":ref:`dev-manual/common-tasks:build history package information`"
4591 section. 4575 section.
4592 4576
4593 3. Once you have the correct source revisions, you can modify 4577 3. Once you have the correct source revisions, you can modify
4594 those recipes to to set ``SRCREV`` to specific versions of the 4578 those recipes to set ``SRCREV`` to specific versions of the
4595 software. 4579 software.
4596 4580
4597Speeding Up a Build 4581Speeding Up a Build
@@ -4711,16 +4695,16 @@ Libraries are an integral part of your system. This section describes
4711some common practices you might find helpful when working with libraries 4695some common practices you might find helpful when working with libraries
4712to build your system: 4696to build your system:
4713 4697
4714- `How to include static library 4698- :ref:`How to include static library files
4715 files <#including-static-library-files>`__ 4699 <dev-manual/common-tasks:including static library files>`
4716 4700
4717- `How to use the Multilib feature to combine multiple versions of 4701- :ref:`How to use the Multilib feature to combine multiple versions of
4718 library files into a single 4702 library files into a single image
4719 image <#combining-multiple-versions-library-files-into-one-image>`__ 4703 <dev-manual/common-tasks:combining multiple versions of library files into one image>`
4720 4704
4721- `How to install multiple versions of the same library in parallel on 4705- :ref:`How to install multiple versions of the same library in parallel on
4722 the same 4706 the same system
4723 system <#installing-multiple-versions-of-the-same-library>`__ 4707 <dev-manual/common-tasks:installing multiple versions of the same library>`
4724 4708
4725Including Static Library Files 4709Including Static Library Files
4726------------------------------ 4710------------------------------
@@ -5058,7 +5042,7 @@ because the library is produced for the target architecture, but its
5058code needs to be executed on the build host. This problem is solved with 5042code needs to be executed on the build host. This problem is solved with
5059the OpenEmbedded build system by running the code through QEMU, which 5043the OpenEmbedded build system by running the code through QEMU, which
5060allows precisely that. Unfortunately, QEMU does not always work 5044allows precisely that. Unfortunately, QEMU does not always work
5061perfectly as mentioned in the "`Known Issues <#known-issues>`__" 5045perfectly as mentioned in the ":ref:`dev-manual/common-tasks:known issues`"
5062section. 5046section.
5063 5047
5064Enabling the Generation of Introspection Data 5048Enabling the Generation of Introspection Data
@@ -5230,11 +5214,11 @@ OpenEmbedded build artifacts. Image generation is driven by partitioning
5230commands contained in an Openembedded kickstart file (``.wks``) 5214commands contained in an Openembedded kickstart file (``.wks``)
5231specified either directly on the command line or as one of a selection 5215specified either directly on the command line or as one of a selection
5232of canned kickstart files as shown with the ``wic list images`` command 5216of canned kickstart files as shown with the ``wic list images`` command
5233in the "`Using an Existing Kickstart 5217in the
5234File <#using-a-provided-kickstart-file>`__" section. When you apply the 5218":ref:`dev-manual/common-tasks:generate an image using an existing kickstart file`"
5235command to a given set of build artifacts, the result is an image or set 5219section. When you apply the command to a given set of build artifacts, the
5236of images that can be directly written onto media and used on a 5220result is an image or set of images that can be directly written onto media and
5237particular system. 5221used on a particular system.
5238 5222
5239.. note:: 5223.. note::
5240 5224
@@ -5245,8 +5229,8 @@ particular system.
5245The ``wic`` command and the infrastructure it is based on is by 5229The ``wic`` command and the infrastructure it is based on is by
5246definition incomplete. The purpose of the command is to allow the 5230definition incomplete. The purpose of the command is to allow the
5247generation of customized images, and as such, was designed to be 5231generation of customized images, and as such, was designed to be
5248completely extensible through a plugin interface. See the "`Using the 5232completely extensible through a plugin interface. See the
5249Wic PlugIn Interface <#wic-using-the-wic-plugin-interface>`__" section 5233":ref:`dev-manual/common-tasks:using the wic plugin interface`" section
5250for information on these plugins. 5234for information on these plugins.
5251 5235
5252This section provides some background information on Wic, describes what 5236This section provides some background information on Wic, describes what
@@ -5362,7 +5346,7 @@ command to return the available Wic images as follows:
5362 genericx86 Create an EFI disk image for genericx86* 5346 genericx86 Create an EFI disk image for genericx86*
5363 beaglebone-yocto Create SD card image for Beaglebone 5347 beaglebone-yocto Create SD card image for Beaglebone
5364 edgerouter Create SD card image for Edgerouter 5348 edgerouter Create SD card image for Edgerouter
5365 qemux86-directdisk Create a qemu machine 'pcbios' direct disk image 5349 qemux86-directdisk Create a QEMU machine 'pcbios' direct disk image
5366 directdisk-gpt Create a 'pcbios' direct disk image 5350 directdisk-gpt Create a 'pcbios' direct disk image
5367 mkefidisk Create an EFI disk image 5351 mkefidisk Create an EFI disk image
5368 directdisk Create a 'pcbios' direct disk image 5352 directdisk Create a 'pcbios' direct disk image
@@ -5509,7 +5493,7 @@ Use the following command to list the available kickstart files:
5509 genericx86 Create an EFI disk image for genericx86* 5493 genericx86 Create an EFI disk image for genericx86*
5510 beaglebone-yocto Create SD card image for Beaglebone 5494 beaglebone-yocto Create SD card image for Beaglebone
5511 edgerouter Create SD card image for Edgerouter 5495 edgerouter Create SD card image for Edgerouter
5512 qemux86-directdisk Create a qemu machine 'pcbios' direct disk image 5496 qemux86-directdisk Create a QEMU machine 'pcbios' direct disk image
5513 directdisk-gpt Create a 'pcbios' direct disk image 5497 directdisk-gpt Create a 'pcbios' direct disk image
5514 mkefidisk Create an EFI disk image 5498 mkefidisk Create an EFI disk image
5515 directdisk Create a 'pcbios' direct disk image 5499 directdisk Create a 'pcbios' direct disk image
@@ -5683,7 +5667,7 @@ Wic Examples
5683 5667
5684This section provides several examples that show how to use the Wic 5668This section provides several examples that show how to use the Wic
5685utility. All the examples assume the list of requirements in the 5669utility. All the examples assume the list of requirements in the
5686"`Requirements <#wic-requirements>`__" section have been met. The 5670":ref:`dev-manual/common-tasks:requirements`" section have been met. The
5687examples assume the previously generated image is 5671examples assume the previously generated image is
5688``core-image-minimal``. 5672``core-image-minimal``.
5689 5673
@@ -5908,7 +5892,7 @@ the existing kernel, and then inserts a new kernel:
5908 $ wic help ls 5892 $ wic help ls
5909 5893
5910 5894
5911 The following command shows what is in Partition one: 5895 The following command shows what is in partition one:
5912 :: 5896 ::
5913 5897
5914 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1 5898 $ wic ls tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1
@@ -5956,8 +5940,8 @@ the existing kernel, and then inserts a new kernel:
5956 kernel: 5940 kernel:
5957 :: 5941 ::
5958 5942
5959 cp ~/poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \ 5943 $ wic cp poky_sdk/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+git999-r0/linux-yocto-4.12.12+git999/arch/x86/boot/bzImage \
5960 ~/poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz 5944 poky/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86.wic:1/vmlinuz
5961 5945
5962 Once the new kernel is added back into the image, you can use the 5946 Once the new kernel is added back into the image, you can use the
5963 ``dd`` command or :ref:`bmaptool 5947 ``dd`` command or :ref:`bmaptool
@@ -6098,8 +6082,7 @@ more secure:
6098 6082
6099- Ensure you remove or disable debugging functionality before producing 6083- Ensure you remove or disable debugging functionality before producing
6100 the final image. For information on how to do this, see the 6084 the final image. For information on how to do this, see the
6101 "`Considerations Specific to the OpenEmbedded Build 6085 ":ref:`dev-manual/common-tasks:considerations specific to the openembedded build system`"
6102 System <#considerations-specific-to-the-openembedded-build-system>`__"
6103 section. 6086 section.
6104 6087
6105- Ensure you have no network services listening that are not needed. 6088- Ensure you have no network services listening that are not needed.
@@ -6280,17 +6263,17 @@ layer. The following steps provide some more detail:
6280 distro-specific configuration files that are included by an 6263 distro-specific configuration files that are included by an
6281 existing recipe, you should add an append file (``.bbappend``) for 6264 existing recipe, you should add an append file (``.bbappend``) for
6282 those. For general information and recommendations on how to add 6265 those. For general information and recommendations on how to add
6283 recipes to your layer, see the "`Creating Your Own 6266 recipes to your layer, see the
6284 Layer <#creating-your-own-layer>`__" and "`Following Best 6267 ":ref:`dev-manual/common-tasks:creating your own layer`" and
6285 Practices When Creating 6268 ":ref:`dev-manual/common-tasks:following best practices when creating layers`"
6286 Layers <#best-practices-to-follow-when-creating-layers>`__"
6287 sections. 6269 sections.
6288 6270
6289 - Add any image recipes that are specific to your distribution. 6271 - Add any image recipes that are specific to your distribution.
6290 6272
6291 - Add a ``psplash`` append file for a branded splash screen. For 6273 - Add a ``psplash`` append file for a branded splash screen. For
6292 information on append files, see the "`Using .bbappend Files in 6274 information on append files, see the
6293 Your Layer <#using-bbappend-files>`__" section. 6275 ":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
6276 section.
6294 6277
6295 - Add any other append files to make custom changes that are 6278 - Add any other append files to make custom changes that are
6296 specific to individual recipes. 6279 specific to individual recipes.
@@ -6388,29 +6371,22 @@ Working with Packages
6388 6371
6389This section describes a few tasks that involve packages: 6372This section describes a few tasks that involve packages:
6390 6373
6391- `Excluding packages from an 6374- :ref:`dev-manual/common-tasks:excluding packages from an image`
6392 image <#excluding-packages-from-an-image>`__
6393 6375
6394- `Incrementing a binary package 6376- :ref:`dev-manual/common-tasks:incrementing a package version`
6395 version <#incrementing-a-binary-package-version>`__
6396 6377
6397- `Handling optional module 6378- :ref:`dev-manual/common-tasks:handling optional module packaging`
6398 packaging <#handling-optional-module-packaging>`__
6399 6379
6400- `Using runtime package 6380- :ref:`dev-manual/common-tasks:using runtime package management`
6401 management <#using-runtime-package-management>`__
6402 6381
6403- `Generating and using signed 6382- :ref:`dev-manual/common-tasks:generating and using signed packages`
6404 packages <#generating-and-using-signed-packages>`__
6405 6383
6406- `Setting up and running package test 6384- :ref:`Setting up and running package test
6407 (ptest) <#testing-packages-with-ptest>`__ 6385 (ptest) <dev-manual/common-tasks:testing packages with ptest>`
6408 6386
6409- `Creating node package manager (NPM) 6387- :ref:`dev-manual/common-tasks:creating node package manager (npm) packages`
6410 packages <#creating-node-package-manager-npm-packages>`__
6411 6388
6412- `Adding custom metadata to 6389- :ref:`dev-manual/common-tasks:adding custom metadata to packages`
6413 packages <#adding-custom-metadata-to-packages>`__
6414 6390
6415Excluding Packages from an Image 6391Excluding Packages from an Image
6416-------------------------------- 6392--------------------------------
@@ -6499,9 +6475,8 @@ much preferred over a manual system. In either system, the main
6499requirement is that binary package version numbering increases in a 6475requirement is that binary package version numbering increases in a
6500linear fashion and that a number of version components exist that 6476linear fashion and that a number of version components exist that
6501support that linear progression. For information on how to ensure 6477support that linear progression. For information on how to ensure
6502package revisioning remains linear, see the "`Automatically Incrementing 6478package revisioning remains linear, see the
6503a Binary Package Revision 6479":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
6504Number <#automatically-incrementing-a-binary-package-revision-number>`__"
6505section. 6480section.
6506 6481
6507The following three sections provide related information on the PR 6482The following three sections provide related information on the PR
@@ -6592,14 +6567,14 @@ each building system's ``local.conf`` file:
6592 BUILDHISTORY_COMMIT = "1" 6567 BUILDHISTORY_COMMIT = "1"
6593 6568
6594For information on build 6569For information on build
6595history, see the "`Maintaining Build Output 6570history, see the
6596Quality <#maintaining-build-output-quality>`__" section. 6571":ref:`dev-manual/common-tasks:maintaining build output quality`" section.
6597 6572
6598.. note:: 6573.. note::
6599 6574
6600 The OpenEmbedded build system does not maintain ``PR`` information as 6575 The OpenEmbedded build system does not maintain ``PR`` information as
6601 part of the shared state (sstate) packages. If you maintain an sstate 6576 part of the shared state (sstate) packages. If you maintain an sstate
6602 feed, its expected that either all your building systems that 6577 feed, it's expected that either all your building systems that
6603 contribute to the sstate feed use a shared PR Service, or you do not 6578 contribute to the sstate feed use a shared PR Service, or you do not
6604 run a PR Service on any of your building systems. Having some systems 6579 run a PR Service on any of your building systems. Having some systems
6605 use a PR Service while others do not leads to obvious problems. 6580 use a PR Service while others do not leads to obvious problems.
@@ -6956,7 +6931,7 @@ variable to specify the format:
6956 6931
69571. Open the ``local.conf`` file inside your 69321. Open the ``local.conf`` file inside your
6958 :term:`Build Directory` (e.g. 6933 :term:`Build Directory` (e.g.
6959 ``~/poky/build/conf/local.conf``). 6934 ``poky/build/conf/local.conf``).
6960 6935
69612. Select the desired package format as follows: 69362. Select the desired package format as follows:
6962 :: 6937 ::
@@ -7048,11 +7023,11 @@ From within the build directory where you have built an image based on
7048your packaging choice (i.e. the 7023your packaging choice (i.e. the
7049:term:`PACKAGE_CLASSES` 7024:term:`PACKAGE_CLASSES`
7050setting), simply start the server. The following example assumes a build 7025setting), simply start the server. The following example assumes a build
7051directory of ``~/poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES`` 7026directory of ``poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES``
7052setting of "package_rpm": 7027setting of "package_rpm":
7053:: 7028::
7054 7029
7055 $ cd ~/poky/build/tmp/deploy/rpm 7030 $ cd poky/build/tmp/deploy/rpm
7056 $ python3 -m http.server 7031 $ python3 -m http.server
7057 7032
7058Target Setup 7033Target Setup
@@ -7070,7 +7045,7 @@ runtime package management of RPM packages. In order to use DNF for
7070runtime package management, you must perform an initial setup on the 7045runtime package management, you must perform an initial setup on the
7071target machine for cases where the ``PACKAGE_FEED_*`` variables were not 7046target machine for cases where the ``PACKAGE_FEED_*`` variables were not
7072set as part of the image that is running on the target. This means if 7047set as part of the image that is running on the target. This means if
7073you built your image and did not not use these variables as part of the 7048you built your image and did not use these variables as part of the
7074build and your image is now running on the target, you need to perform 7049build and your image is now running on the target, you need to perform
7075the steps in this section if you want to use runtime package management. 7050the steps in this section if you want to use runtime package management.
7076 7051
@@ -8409,7 +8384,7 @@ that queries the Git repository and prints just the differences that
8409might be significant in human-readable form. Here is an example: 8384might be significant in human-readable form. Here is an example:
8410:: 8385::
8411 8386
8412 $ ~/poky/poky/scripts/buildhistory-diff . HEAD^ 8387 $ poky/poky/scripts/buildhistory-diff . HEAD^
8413 Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt): 8388 Changes to images/qemux86_64/glibc/core-image-minimal (files-in-image.txt):
8414 /etc/anotherpkg.conf was added 8389 /etc/anotherpkg.conf was added
8415 /sbin/anotherpkg was added 8390 /sbin/anotherpkg was added
@@ -8522,7 +8497,7 @@ In order to run tests, you need to do the following:
8522 8497
8523 - Ubuntu and Debian: ``sysstat`` and ``iproute2`` 8498 - Ubuntu and Debian: ``sysstat`` and ``iproute2``
8524 8499
8525 - OpenSUSE: ``sysstat`` and ``iproute2`` 8500 - openSUSE: ``sysstat`` and ``iproute2``
8526 8501
8527 - Fedora: ``sysstat`` and ``iproute`` 8502 - Fedora: ``sysstat`` and ``iproute``
8528 8503
@@ -8596,8 +8571,8 @@ options exist:
8596 it the same IP address for each reboot. 8571 it the same IP address for each reboot.
8597 8572
8598 If you choose "SystemdbootTarget", there are additional requirements 8573 If you choose "SystemdbootTarget", there are additional requirements
8599 and considerations. See the "`Selecting 8574 and considerations. See the
8600 SystemdbootTarget <#selecting-systemdboottarget>`__" section, which 8575 ":ref:`dev-manual/common-tasks:selecting systemdboottarget`" section, which
8601 follows, for more information. 8576 follows, for more information.
8602 8577
8603- *"BeagleBoneTarget":* Choose "BeagleBoneTarget" if you are deploying 8578- *"BeagleBoneTarget":* Choose "BeagleBoneTarget" if you are deploying
@@ -8629,7 +8604,7 @@ Selecting SystemdbootTarget
8629 8604
8630If you did not set ``TEST_TARGET`` to "SystemdbootTarget", then you do 8605If you did not set ``TEST_TARGET`` to "SystemdbootTarget", then you do
8631not need any information in this section. You can skip down to the 8606not need any information in this section. You can skip down to the
8632"`Running Tests <#qemu-image-running-tests>`__" section. 8607":ref:`dev-manual/common-tasks:running tests`" section.
8633 8608
8634If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to 8609If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to
8635perform a one-time setup of your master image by doing the following: 8610perform a one-time setup of your master image by doing the following:
@@ -8648,7 +8623,7 @@ perform a one-time setup of your master image by doing the following:
8648 8623
8649 - Inherits ``core-image`` so that kernel modules are installed. 8624 - Inherits ``core-image`` so that kernel modules are installed.
8650 8625
8651 - Installs normal linux utilities not busybox ones (e.g. ``bash``, 8626 - Installs normal linux utilities not BusyBox ones (e.g. ``bash``,
8652 ``coreutils``, ``tar``, ``gzip``, and ``kmod``). 8627 ``coreutils``, ``tar``, ``gzip``, and ``kmod``).
8653 8628
8654 - Uses a custom Initial RAM Disk (initramfs) image with a custom 8629 - Uses a custom Initial RAM Disk (initramfs) image with a custom
@@ -9095,13 +9070,11 @@ situations.
9095The following list shows the debugging topics in the remainder of this 9070The following list shows the debugging topics in the remainder of this
9096section: 9071section:
9097 9072
9098- "`Viewing Logs from Failed 9073- ":ref:`dev-manual/common-tasks:viewing logs from failed tasks`" describes
9099 Tasks <#dev-debugging-viewing-logs-from-failed-tasks>`__" describes
9100 how to find and view logs from tasks that failed during the build 9074 how to find and view logs from tasks that failed during the build
9101 process. 9075 process.
9102 9076
9103- "`Viewing Variable 9077- ":ref:`dev-manual/common-tasks:viewing variable values`" describes how to
9104 Values <#dev-debugging-viewing-variable-values>`__" describes how to
9105 use the BitBake ``-e`` option to examine variable values after a 9078 use the BitBake ``-e`` option to examine variable values after a
9106 recipe has been parsed. 9079 recipe has been parsed.
9107 9080
@@ -9110,51 +9083,47 @@ section:
9110 :term:`PKGDATA_DIR` and 9083 :term:`PKGDATA_DIR` and
9111 display package-related information for built packages. 9084 display package-related information for built packages.
9112 9085
9113- "`Viewing Dependencies Between Recipes and 9086- ":ref:`dev-manual/common-tasks:viewing dependencies between recipes and tasks`"
9114 Tasks <#dev-viewing-dependencies-between-recipes-and-tasks>`__"
9115 describes how to use the BitBake ``-g`` option to display recipe 9087 describes how to use the BitBake ``-g`` option to display recipe
9116 dependency information used during the build. 9088 dependency information used during the build.
9117 9089
9118- "`Viewing Task Variable 9090- ":ref:`dev-manual/common-tasks:viewing task variable dependencies`" describes
9119 Dependencies <#dev-viewing-task-variable-dependencies>`__" describes
9120 how to use the ``bitbake-dumpsig`` command in conjunction with key 9091 how to use the ``bitbake-dumpsig`` command in conjunction with key
9121 subdirectories in the 9092 subdirectories in the
9122 :term:`Build Directory` to determine 9093 :term:`Build Directory` to determine
9123 variable dependencies. 9094 variable dependencies.
9124 9095
9125- "`Running Specific Tasks <#dev-debugging-taskrunning>`__" describes 9096- ":ref:`dev-manual/common-tasks:running specific tasks`" describes
9126 how to use several BitBake options (e.g. ``-c``, ``-C``, and ``-f``) 9097 how to use several BitBake options (e.g. ``-c``, ``-C``, and ``-f``)
9127 to run specific tasks in the build chain. It can be useful to run 9098 to run specific tasks in the build chain. It can be useful to run
9128 tasks "out-of-order" when trying isolate build issues. 9099 tasks "out-of-order" when trying isolate build issues.
9129 9100
9130- "`General BitBake Problems <#dev-debugging-bitbake>`__" describes how 9101- ":ref:`dev-manual/common-tasks:general bitbake problems`" describes how
9131 to use BitBake's ``-D`` debug output option to reveal more about what 9102 to use BitBake's ``-D`` debug output option to reveal more about what
9132 BitBake is doing during the build. 9103 BitBake is doing during the build.
9133 9104
9134- "`Building with No Dependencies <#dev-debugging-buildfile>`__" 9105- ":ref:`dev-manual/common-tasks:building with no dependencies`"
9135 describes how to use the BitBake ``-b`` option to build a recipe 9106 describes how to use the BitBake ``-b`` option to build a recipe
9136 while ignoring dependencies. 9107 while ignoring dependencies.
9137 9108
9138- "`Recipe Logging Mechanisms <#recipe-logging-mechanisms>`__" 9109- ":ref:`dev-manual/common-tasks:recipe logging mechanisms`"
9139 describes how to use the many recipe logging functions to produce 9110 describes how to use the many recipe logging functions to produce
9140 debugging output and report errors and warnings. 9111 debugging output and report errors and warnings.
9141 9112
9142- "`Debugging Parallel Make Races <#debugging-parallel-make-races>`__" 9113- ":ref:`dev-manual/common-tasks:debugging parallel make races`"
9143 describes how to debug situations where the build consists of several 9114 describes how to debug situations where the build consists of several
9144 parts that are run simultaneously and when the output or result of 9115 parts that are run simultaneously and when the output or result of
9145 one part is not ready for use with a different part of the build that 9116 one part is not ready for use with a different part of the build that
9146 depends on that output. 9117 depends on that output.
9147 9118
9148- "`Debugging With the GNU Project Debugger (GDB) 9119- ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`"
9149 Remotely <#platdev-gdb-remotedebug>`__" describes how to use GDB to 9120 describes how to use GDB to allow you to examine running programs, which can
9150 allow you to examine running programs, which can help you fix 9121 help you fix problems.
9151 problems.
9152 9122
9153- "`Debugging with the GNU Project Debugger (GDB) on the 9123- ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) on the target`"
9154 Target <#debugging-with-the-gnu-project-debugger-gdb-on-the-target>`__"
9155 describes how to use GDB directly on target hardware for debugging. 9124 describes how to use GDB directly on target hardware for debugging.
9156 9125
9157- "`Other Debugging Tips <#dev-other-debugging-others>`__" describes 9126- ":ref:`dev-manual/common-tasks:other debugging tips`" describes
9158 miscellaneous debugging tips that can be useful. 9127 miscellaneous debugging tips that can be useful.
9159 9128
9160Viewing Logs from Failed Tasks 9129Viewing Logs from Failed Tasks
@@ -9462,8 +9431,8 @@ state (sstate) task can be a useful debugging aid. This information is
9462available in signature information (``siginfo``) files in 9431available in signature information (``siginfo``) files in
9463:term:`SSTATE_DIR`. For 9432:term:`SSTATE_DIR`. For
9464information on how to view and interpret information in ``siginfo`` 9433information on how to view and interpret information in ``siginfo``
9465files, see the "`Viewing Task Variable 9434files, see the
9466Dependencies <#dev-viewing-task-variable-dependencies>`__" section. 9435":ref:`dev-manual/common-tasks:viewing task variable dependencies`" section.
9467 9436
9468For conceptual information on shared state, see the 9437For conceptual information on shared state, see the
9469":ref:`overview-manual/concepts:shared state`" 9438":ref:`overview-manual/concepts:shared state`"
@@ -9882,9 +9851,8 @@ Once the local build for "neard" completes, start a ``devshell`` build:
9882 9851
9883 $ bitbake neard -c devshell 9852 $ bitbake neard -c devshell
9884 9853
9885For information on how to use a 9854For information on how to use a ``devshell``, see the
9886``devshell``, see the "`Using a Development 9855":ref:`dev-manual/common-tasks:using a development shell`" section.
9887Shell <#platdev-appdev-devshell>`__" section.
9888 9856
9889In the ``devshell``, do the following: 9857In the ``devshell``, do the following:
9890:: 9858::
@@ -9926,7 +9894,7 @@ to patch the ``Makefile.am`` file, which is generated from
9926 File Makefile.am added to patch patches/parallelmake.patch 9894 File Makefile.am added to patch patches/parallelmake.patch
9927 9895
9928For more information on using Quilt, see the 9896For more information on using Quilt, see the
9929"`Using Quilt in Your Workflow <#using-a-quilt-workflow>`__" section. 9897":ref:`dev-manual/common-tasks:using quilt in your workflow`" section.
9930 9898
9931At this point you need to make the edits to ``Makefile.am`` to add the 9899At this point you need to make the edits to ``Makefile.am`` to add the
9932missing dependency. For our example, you have to add the following line 9900missing dependency. For our example, you have to add the following line
@@ -9992,9 +9960,9 @@ The build should work without issue.
9992 9960
9993As with all solved problems, if they originated upstream, you need to 9961As with all solved problems, if they originated upstream, you need to
9994submit the fix for the recipe in OE-Core and upstream so that the 9962submit the fix for the recipe in OE-Core and upstream so that the
9995problem is taken care of at its source. See the "`Submitting a Change to 9963problem is taken care of at its source. See the
9996the Yocto Project <#how-to-submit-a-change>`__" section for more 9964":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
9997information. 9965section for more information.
9998 9966
9999Debugging With the GNU Project Debugger (GDB) Remotely 9967Debugging With the GNU Project Debugger (GDB) Remotely
10000------------------------------------------------------ 9968------------------------------------------------------
@@ -10023,7 +9991,52 @@ before starting the debugging process. These extra computations place
10023more load on the target system and can alter the characteristics of the 9991more load on the target system and can alter the characteristics of the
10024program being debugged. 9992program being debugged.
10025 9993
10026To help get past the previously mentioned constraints, you can use 9994To help get past the previously mentioned constraints, there are two
9995methods you can use: running a debuginfod server and using gdbserver.
9996
9997Using the debuginfod server method
9998~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9999
10000"debuginfod" from "elfutils" is a way to distribute "debuginfo" files.
10001Running a "debuginfod" server makes debug symbols readily available,
10002which means you don't need to download debugging information
10003and the binaries of the process being debugged. You can just fetch
10004debug symbols from the server.
10005
10006To run a debuginfod server, you need to do the following:
10007
10008- Ensure that this variable is set in your ``local.conf`` file:
10009 ::
10010
10011 PACKAGECONFIG_pn-elfutils-native = "debuginfod libdebuginfod"
10012
10013 This :term:`PACKAGECONFIG` option enables debuginfod and libdebuginfod for
10014 "elfutils-native".
10015
10016- Run the following commands to set up the "debuginfod" server:
10017 ::
10018
10019 $ oe-debuginfod
10020
10021
10022To use debuginfod on the target, you need the following:
10023
10024- Ensure that this variable is set in your ``local.conf`` file:
10025 ::
10026
10027 DEBUGINFOD_URLS = "http://localhost:8002/"
10028
10029 This :term:`DEBUGINFOD_URLS` option does the client configuration.
10030
10031 ::
10032
10033 PACKAGECONFIG_pn-gdb = "debuginfod"
10034
10035 This :term:`PACKAGECONFIG` option enables "debuginfod" for "gdb".
10036
10037Using the gdbserver method
10038~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10039
10027gdbserver, which runs on the remote target and does not load any 10040gdbserver, which runs on the remote target and does not load any
10028debugging information from the debugged process. Instead, a GDB instance 10041debugging information from the debugged process. Instead, a GDB instance
10029processes the debugging information that is run on a remote computer - 10042processes the debugging information that is run on a remote computer -
@@ -10323,8 +10336,9 @@ Here are some other tips that you might find useful:
10323 :yocto_bugs:`Bugzilla <>`. For information on 10336 :yocto_bugs:`Bugzilla <>`. For information on
10324 how to submit a bug against the Yocto Project, see the Yocto Project 10337 how to submit a bug against the Yocto Project, see the Yocto Project
10325 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 10338 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
10326 and the "`Submitting a Defect Against the Yocto 10339 and the
10327 Project <#submitting-a-defect-against-the-yocto-project>`__" section. 10340 ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
10341 section.
10328 10342
10329 .. note:: 10343 .. note::
10330 10344
@@ -10579,8 +10593,9 @@ Using Email to Submit a Patch
10579 10593
10580Depending on the components changed, you need to submit the email to a 10594Depending on the components changed, you need to submit the email to a
10581specific mailing list. For some guidance on which mailing list to use, 10595specific mailing list. For some guidance on which mailing list to use,
10582see the `list <#figuring-out-the-mailing-list-to-use>`__ at the 10596see the
10583beginning of this section. For a description of all the available 10597:ref:`list <dev-manual/common-tasks:submitting a change to the yocto project>`
10598at the beginning of this section. For a description of all the available
10584mailing lists, see the ":ref:`Mailing Lists <resources-mailinglist>`" section in the 10599mailing lists, see the ":ref:`Mailing Lists <resources-mailinglist>`" section in the
10585Yocto Project Reference Manual. 10600Yocto Project Reference Manual.
10586 10601
@@ -10738,7 +10753,7 @@ been followed:
10738 are ``create-pull-request`` and ``send-pull-request``. You can find 10753 are ``create-pull-request`` and ``send-pull-request``. You can find
10739 these scripts in the ``scripts`` directory within the 10754 these scripts in the ``scripts`` directory within the
10740 :term:`Source Directory` (e.g. 10755 :term:`Source Directory` (e.g.
10741 ``~/poky/scripts``). 10756 ``poky/scripts``).
10742 10757
10743 Using these scripts correctly formats the requests without 10758 Using these scripts correctly formats the requests without
10744 introducing any whitespace or HTML formatting. The maintainer that